Quote:
Originally Posted by Marllun
Obrigado cara, nгo sabia sobre isso entгo acabei de criar um comando pequeno de test.
link com id das armas: https://sampwiki.blast.hk/wiki/Weapons
lembrando algumas nгo tem skill
Mudar a skill de um player especifico
PHP код:
CMD:mudarskill(playerid, params[])
{
new id;
new SS[80];
new mudarskill;
new armaid;
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(sscanf(params, "udd",id,armaid,mudarskill)) return SendClientMessage(playerid,-1,"Use: /MudarSkill [Nome/ID] [Arma] [Quantidade]");
if(mudarskill > 100 ||mudarskill < 0) return SendClientMessage(playerid, -1,"Mбximo 100 minimo 0");
SetPlayerSkillLevel(id, armaid, mudarskill);
format(SS, sizeof(SS), "Vocк mudou a skill do %s para %d",name,mudarskill);
SendClientMessageToAll(0x4169E1,SS);
return 1;
}
Mudar a skill de todos de uma vez
PHP код:
CMD:setarskilldetodos(playerid, params[])
{
new mudarskill;
new armaid;
new SS[80];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
for(new i=0; i<MAX_PLAYERS; i++)
{
SetPlayerSkillLevel(i, armaid, mudarskill);
}
if(sscanf(params, "udd",id,armaid,mudarskill)) return SendClientMessage(playerid,-1,"Use: /MudarSkill [Arma] [Quantidade]");
if(mudarskill > 100 ||mudarskill < 0) return SendClientMessage(playerid, -1,"Maximo 100 minimo 0");
format(SS, sizeof(SS), "O administrador(a) %s mudou a skill de todos para %i ",name,mudarskill);
SendClientMessageToAll(-1,SS);
return 1;
}
|
A sua funзгo estб errada, vou retratar de uma forma mais coerente e legнvel para o amigo...
Estude um pouco sobre a regra de nomenclatura das variбveis, encontrei um site que й bem resumido se tratando do mesmo. Entгo, aconselho dar uma olhadinha, a explicaзгo se passa em C, mas pawn й uma linguagem semelhante a C, e vocк pode se basear...
Link -
NOMENCLATURA DE VARIБVEIS EM C
@Topic
A funзгo que vocк deseja, simplesmente se retrata em uma funзгo nativa jб existente dentro da linguagem,
a
SetPlayerSkillLevel.
Agora irei citar um exemplo para vocк compreender um pouco melhor...
Primeiro de tudo, vamos entender a descriзгo da funзгo.:
"
Set the skill level of a certain weapon type for a player."/"
Defina o nнvel de habilidade de um certo tipo de arma para um jogador."
Ou seja, a funзгo irб definir o nнvel de habilidade de uma arma especнfica para o jogador.
Agora, vamos entender os parвmetros da funзгo.
- 'playerid' - O ID do jogador para setar a habilidade da arma.
- 'skill' - O nome/id da skill para se definir. (Pode se encontrar no link: Weapon Skills)
- 'level' - A quantidade do nнvel que o autor poderб setar. (Vбlido de 0 atй 999)
Por fim, a conclusгo dos parвmetros serб a seguinte:
PHP код:
SetPlayerSkillLevel(playerid, skill, level);
Um exemplo, й o do prуprio Wiki-SAMP:
PHP код:
public OnPlayerSpawn(playerid)
{
SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 1);
// Isso farб com que o jogador utilize, duas espingardas, uma em cada mгo.
return 1;
}
Na callback, eu estou dando a funзгo de que, ao player spawnar, automaticamente ele serб setado com essa habilidade.
Agora, vamos para um exemplo um pouco mais "avanзado", nй?
Utilizando sscanf2 e pawn.cmd, vou desenvolver um simples comando para setar o skill de um jogador especнfico. Й semelhante ao do amigo acima, mas nгo igualado.
PHP код:
CMD:setskill(playerid, params[])
{
new id, id_weapon, value_of_skill;
if(!sscanf(params, "udd", id, id_weapon, value_of_skill))
{
if(value_of_skill < 0 || value_of_skill > 999)
return SendClientMessage(playerid, -1, "[AVISO] - A quantidade de nнvel, somente vбlida de 0 atй 999.");
SendClientMessage(playerid, -1, "[AVISO] - Comando executado com sucesso!");
SetPlayerSkillLevel(id, id_weapon, value_of_skill);
}
else
return SendClientMessage(playerid, -1, "[AVISO] - A regra de utilizaзгo й: '/setskill' [ID do jogador] [ID da arma] [Quantidade de nнvel]");
return true;
}
Primeiro, eu criei variбveis para armazenar os valores dos parвmetros, do qual, o mesmo serб decidido pelo autor da execuзгo do comando. (No caso, 'playerid'.)
Apуs, fiz uma condicional do sscanf utilizando o operador de negaзгo para retornar com uma mensagem ao final.
Abri brackets e por fim, executei todas as funзхes adicionais.
Ajudei? Retribua com uma reputaзгo!