21.02.2019, 17:02
(
Последний раз редактировалось DiegoCosta; 22.02.2019 в 16:19.
Причина: Solved
)
Boa tarde, galera.
Estou com uma pequena dъvida. Hб tempos venho tentando aprender mais sobre Pawn, nгo cheguei ainda ao ponto de "criar" algo, mas jб consigo me virar para implementar algumas coisas, criar comandos e etc. Mas agora me deparei com algo que atй agora nгo consegui resolver.
Apуs a escolha da Classe, o player seleciona o ponto de Spawn, e ao confirmar ele spawna com um "kit" de armas. Conforme trecho abaixo:
Aqui comeзam os problemas. Durante o Spawn o codigo acima funciona perfeitamente ingame, sem nenhum erro ou "warning" no compilador. Entгo decidi transformar isso em um "comando" para que o player escolha se quer ou nгo "portar" as armas constantemente.
O comando novamente funciona perfeitamente ingame, sem nenhum erro ou "warning" no compilador, porйm retorna "Comando Inexistente" (mensagem que defini em OnPlayerCommandPerformed para comandos inexistentes ou restritos).
Decidi compilar em modo Debug e usar o CrashDetect para verificar qual poderia ser o problema, e retornou o seguinte:
Alguem poderia, por gentileza, apontar quais possнveis erros eu cometi, ou me indicar uma forma de fazer com que o comando funcional pare de retornar "Comando Inexistente"?
Sei que seria possivel fazer isso colocando um "GivePlayerWeapon" para cada arma, porйm achei mais prбtico manter as armas reunidas em forma de "Kit" dentro de APlayerWeapon.
Desde jб, agradeзo.
EDIT:
Resolvido graзas а ajuda de FerrariL
(https://forum.sa-mp.com/showpost.php...04&postcount=3)
Estou com uma pequena dъvida. Hб tempos venho tentando aprender mais sobre Pawn, nгo cheguei ainda ao ponto de "criar" algo, mas jб consigo me virar para implementar algumas coisas, criar comandos e etc. Mas agora me deparei com algo que atй agora nгo consegui resolver.
Apуs a escolha da Classe, o player seleciona o ponto de Spawn, e ao confirmar ele spawna com um "kit" de armas. Conforme trecho abaixo:
PHP код:
/* Lista de armas
0 = Desarmado
24 = Desert Slot 2
25 = Shotgun Slot 3
32 = Tec9 Slot 4
31 = M4 Slot 5
33 = Rifle Slot 6
46 = Paraquedas Slot 11 */
new APlayerWeapons[7] = {46, 33, 31, 32, 25, 24, 0};//Lista de armas
new PlayerWeaponsAmmo = 99999;//Muniзгo infinita
//Sendo assim:
if (APlayerData[playerid][WeaponLicense] == 1)// Se o player tem a licenзa para portar armas...
{
for (new i; i < 12; i++)
GivePlayerWeapon(playerid, APlayerWeapons[i], PlayerWeaponsAmmo);// ele recebe automaticamente a lista de armas com muniзгo infinita
}
PHP код:
COMMAND:arma(playerid, params[])
{
SendAdminText(playerid, "/arma", params);
if (APlayerData[playerid][LoggedIn] == true)
{
if (APlayerData[playerid][WeaponLicense] == 1)//Checa se o player tem a licenзa
{
for (new i; i < 12; i++)
GivePlayerWeapon(playerid, APlayerWeapons[i], PlayerWeaponsAmmo);//Se tem licenзa, recebe a lista de armas
}
else
SendClientMessage(playerid, 0xFFFFFFFF, "Voce nao pode usar armas sem licenзa");
}
else
return 0;
//Retorna que o comando existe
return 1;
}
Decidi compilar em modo Debug e usar o CrashDetect para verificar qual poderia ser o problema, e retornou o seguinte:
Quote:
[13:37:02] Diego_Bueno: /arma [13:37:02] [debug] Run time error 4: "Array index out of bounds" [13:37:02] [debug] Attempted to read/write array element at index 7 in array of size 7 [13:37:02] [debug] AMX backtrace: [13:37:02] [debug] #0 0007f8c0 in public cmd_arma (playerid=0, params[]=@006c2b60 "") at C:\Users\...\pawno\include\PPC_PlayerCommands.inc:960 [13:37:02] [debug] #1 native CallLocalFunction () in samp-server.exe [13:37:02] [debug] #2 00000694 in public OnPlayerCommandText (playerid=0, cmdtext[]=@006c2b48 "/arma") at C:\Users\...\pawno\include\zcmd.inc:102 PHP код:
|
Sei que seria possivel fazer isso colocando um "GivePlayerWeapon" para cada arma, porйm achei mais prбtico manter as armas reunidas em forma de "Kit" dentro de APlayerWeapon.
Desde jб, agradeзo.
EDIT:
Resolvido graзas а ajuda de FerrariL
(https://forum.sa-mp.com/showpost.php...04&postcount=3)
PHP код:
for (new i = 0; i < sizeof(APlayerWeapons); i++)