Ayuda con OnPlayerTakeDamage
#1

Hola todos, bueno mi problema es el siguiente..

pawn Код:
[debug] Run time error 4: "Array index out of bounds"
[debug] AMX backtrace:
[debug] #0 0004ed00 in public OnPlayerTakeDamage (playerid=0, issuerid=65535, Float:amount=22.57237, weaponid=54, bodypart=3) at C:\Users\Richard\Documents\Server FreeRoam\gamemodes\MegaXtreme.pwn:1334
Linea:

pawn Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
   if(JugadorInfo[playerid][EventoSl] == 1) {
   new Silah = GetPlayerWeapon(issuerid);
   if(Silah == 23 || Silah == 25 || Silah == 34)
   {
   SetPlayerHealth(playerid,0.0);
   }
   }

   if(JugadorInfo[playerid][pGod] == false && JugadorInfo[issuerid][TieneBateMortal] == 1) { //<--- Linea del Error
   new Silah = GetPlayerWeapon(issuerid);
   if(Silah == 5)
   {
   SetPlayerHealth(playerid, 0.0);
   }
   }
   return 1;
}
Bueno explicare en "TieneBateMortal" es para cuando compran un bate le den un batazo obviamente muera al momento de pegarle, ahora cuando en "issuerid" le pongo "playerid" ya no sale ese error, pero cuando compro el bate no muere o solo cuando el usuario que tenia el bate muere, cuando le dan un bate por decir "Normal" cuando da un golpe a otro, el usuario que fue golpeado muere :S ._. y en OnPlayerDeath ya puse el "JugadorInfo[playerid][TieneBateMortal] = 0; para que lo desactive pero aun asн nd, el otro de "EventoSl" ese si funciona 1 disparo = 1 muerte y es de un evento Automatico.. y cuando muere, el user ya no puede matar con las armas definida hay osea me entienden ._.? pero mi problema es el "TieneBateMortal" x'D por el error...
Reply
#2

Aсade

if(issuerid != INVALID_PLAYER_ID)
{

al principio de la callback.
Reply
#3

Quote:
Originally Posted by p0isoN
Посмотреть сообщение
Aсade

if(issuerid != INVALID_PLAYER_ID)
{

al principio de la callback.
Anteriormente lo habнa aсadido eso, pero igual salia saliendo pero creo que lo aсadн mal, de igual lo puse asн y ya no me da el error.

pawn Код:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
   if(issuerid != INVALID_PLAYER_ID)
   {
   if(JugadorInfo[issuerid][EventoSl] == 1) {
   new Silah = GetPlayerWeapon(issuerid);
   if(Silah == 23 || Silah == 25 || Silah == 34)
   {
   SetPlayerHealth(playerid,0.0);
   }
   }
   if(JugadorInfo[playerid][pGod] == false && JugadorInfo[issuerid][TieneBateMortal] == 1) {
   new Silah = GetPlayerWeapon(issuerid);
   if(Silah == 5)
   {
   SetPlayerHealth(playerid, 0.0);
   }
   }
   }
   return 1;
}
Esta vez me toca testear y te Aviso Editando este Post Saludos!

EDIT: listo funciona correctamente muchas gracias Bro, veo que era solo agregarle eso, que obvio ya se lo habнa agregado yo pero lo agregue en otra forma de igual forma gracias +REP
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)