[DUDA] Definir killerid en una callback.
#1

Hola a todos amigos, necesito de su ayuda estoy atrapado aquн, tengo una callback donde quiero usar killerid para adaptar la funciуn al personaje que mata, entonces para esto tendria que obtener 'killerid' para esa callback y poder usarla en OnPlayerDeath como FuncionCualquiera(killerid); pero ya que en la callback no esta definido no es posible hacerlo.

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{

if(killerid != INVALID_PLAYER_ID)
{
GivePlayerMoney(killerid, 100);
FuncionCualquiera(); // Aqui tendria que quedar como FuncionCualquiera(killerid);
}

    return 1;
}
pawn Код:
forward FuncionCualquiera();
public FuncionCualquiera() // Callback donde hay que definir killerid
{
// FUNCION
return 1;
}
Una ayudita? gracias de antemano.
Reply
#2

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{

if(killerid != INVALID_PLAYER_ID)
{
GivePlayerMoney(killerid, 100);
FuncionCualquiera(killerid); // Aqui tendria que quedar como FuncionCualquiera(killerid);
}

    return 1;
}
aqui colocas el nombre del parametro como quieras, por ejemplo:

pawn Код:
forward FuncionCualquiera(playerid);
public FuncionCualquiera(playerid) // Callback donde hay que definir killerid
{
// FUNCION
return 1;
}
es lo mismo hacer

pawn Код:
forward FuncionCualquiera(jugadorid);
public FuncionCualquiera(jugadorid) // Callback donde hay que definir killerid
{
// FUNCION
return 1;
}
Reply
#3

Quote:
Originally Posted by Adoniiz
Посмотреть сообщение
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{

if(killerid != INVALID_PLAYER_ID)
{
GivePlayerMoney(killerid, 100);
FuncionCualquiera(killerid); // Aqui tendria que quedar como FuncionCualquiera(killerid);
}

    return 1;
}
aqui colocas el nombre del parametro como quieras, por ejemplo:

pawn Код:
forward FuncionCualquiera(playerid);
public FuncionCualquiera(playerid) // Callback donde hay que definir killerid
{
// FUNCION
return 1;
}
es lo mismo hacer

pawn Код:
forward FuncionCualquiera(jugadorid);
public FuncionCualquiera(jugadorid) // Callback donde hay que definir killerid
{
// FUNCION
return 1;
}
Lo que dices es que puedo colocar:

pawn Код:
forward FuncionCualquiera(killerid);
public FuncionCualquiera(killerid)
Y poder utilizar 'killerid' sin definir nada antes?, gracias por la ayuda espero respuesta.
Reply
#4

Exacto, puedes ponerle el nombre que quieras, ya que eso simplemente serб un parбmetro de la funciуn. A la hora de ejecutar la misma, se debe especificar bien el argumento, siendo que el mismo debe estar definido.

Es decir, tъ puedes poner "public FuncionCualquiera(loquesea)", y a la hora de ejecutarla usar un argumento vбlido, como "FuncionCualquiera(issuerid);" (si estamos hablando de OnPlayerTakeDamage), o lo que fuese.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)