Sн, pero tienen una estructura muy compleja y gastarнas mucho tiempo en hacerlo.
Lo mejor serнa hacerlo como
****** ha dicho anteriormente:
Quote:
Originally Posted by ******, traducido
...Pon tu cуdigo en una funciуn separada y llama esa funciуn desde el comando y otros lugares donde la necesites.
|
Supongamos que tienes este comando:
pawn Код:
YCMD:salir(playerid, params[], help)
{
#pragma unused params, help
if(!MiVariable[playerid]) return SendClientMessage(playerid, 0xFF0000FF, "ЎError!");
SpawnPlayer(playerid);
MiVariable[playerid]=false;
return 1;
}
Haciendo lo que ****** dijo, lo cambiarнamos a esto:
pawn Код:
forward Salir(playerid);
public Salir(playerid)
{
//Cualquier cambio que hagas aquн afectarб a otros comandos/funciones que utilicen esta funciуn.
if(!MiVariable[playerid]) return SendClientMessage(playerid, 0xFF0000FF, "ЎError!");
SpawnPlayer(playerid);
MiVariable[playerid]=false;
}
YCMD:salir(playerid, params[], help)
{
#pragma unused params, help
Salir(playerid);
return 1;
}
Y ahora un ejemplo:
Iniciar un evento y al agotarse el tiempo del evento, forzar a todos los jugadores a salir.
pawn Код:
YCMD:iniciarevento(playerid, params[], help)
{
#pragma unused params, help
SetTimer("TerminarEvento", 20000, false);
foreach(new i : Player)
{
MiVariable[i] = true;
}
return 1;
}
forward TerminarEvento();
public TerminarEvento()
{
SendClientMessageToAll(-1, "ЎSe ha agotado el tiempo, el evento ha terminado!");
foreach(new i : Player)
{
Salir(i);
}
return 1;
}
forward Salir(playerid);
public Salir(playerid)
{
if(!MiVariable[playerid]) return SendClientMessage(playerid, 0xFF0000FF, "ЎError!");
SpawnPlayer(playerid);
MiVariable[playerid]=false;
}