Ya lo terminй, es asн: Un admin RCON usa el comando /evento, entonces su posiciуn queda guardada, es enviado un mensaje global avisando que se activу el evento, entonces un jugador usa /participar, y es enviado al evento, es decir, a la posiciуn del admin RCON que lo activу, sуlo que con un pequeсo cambio de posiciуn debido a un cбlculo de su ID. Cuando un admin RCON desactiva el evento, el jugador es enviado a la comisarнa de Los Santos, por simplemente elegir yo un lugar donde enviarlo.
La posiciуn donde va a spawnear el jugador va a ser cercana pero NUNCA se va a repetir, ya que utilicй mъltiplos o divisores (no me acuerdo quй serнan xdd) diferentes.
pawn Код:
#include <a_samp>
#include <zcmd>
new EstadoEvento = 0;
new EstaEnEvento[MAX_PLAYERS];
new Float:PosEvento[3];
CMD:evento(playerid, params[]){
if(IsPlayerAdmin(playerid)){
new string[128];
if(EstadoEvento == 0){
EstadoEvento = 1;
SendClientMessage(playerid, 0xFFFFFFAA, "Has activado el modo evento, para desactivarlo, utiliza nuevamente el comando '/evento'.");
format(string, sizeof(string), "El administrador %s [ID: %d] activу el modo evento, utiliza el comando '/participar' para entrar.", Nombre(playerid), playerid);
SendClientMessageToAll(0x21DD00FF, string);
GetPlayerPos(playerid, PosEvento[0], PosEvento[1], PosEvento[2]);
}
else{
EstadoEvento = 0;
SendClientMessage(playerid, 0xFFFFFFAA, "Has desactivado el modo evento, para activarlo, utiliza nuevamente el comando '/evento'.");
format(string, sizeof(string), "El administrador %s [ID: %d] desactivу el modo evento.", Nombre(playerid), playerid);
SendClientMessageToAll(0xBF0000FF, string);
static jugadores;
jugadores = GetMaxPlayers();
for(new j; j < jugadores; j++){
if(EstaEnEvento[j] == 1){
EstaEnEvento[j] = 0;
SetPlayerPos(j, 1529.6, -1691.2, 13.3);
}
}
}
}else SendClientMessage(playerid, 0xBFC0C2FF, "[ERROR] No estбs autorizado para utilizar este comando administrativo.");
return 1;
}
CMD:participar(playerid, params[]){
if(EstadoEvento == 1){
if(EstaEnEvento[playerid] == 0){
switch(playerid){
case 0..20: SetPlayerPos(playerid, PosEvento[0]+playerid, PosEvento[1], PosEvento[2]);
case 21..40: SetPlayerPos(playerid, PosEvento[0]+playerid/2, PosEvento[1], PosEvento[2]);
case 41..100: SetPlayerPos(playerid, PosEvento[0]+playerid/5, PosEvento[1], PosEvento[2]);
case 101..500: SetPlayerPos(playerid, PosEvento[0]+playerid/9, PosEvento[1], PosEvento[2]);
}
EstaEnEvento[playerid] = 1;
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
ResetPlayerWeapons(playerid);
SendClientMessage(playerid, 0xFFFFFFAA, "Has ingresado al modo evento, sigue las instrucciones del organizador.");
}else SendClientMessage(playerid, 0xBFC0C2FF, "[ERROR] Ya estбs dentro del evento.");
}else SendClientMessage(playerid, 0xBFC0C2FF, "[ERROR] El modo evento no se encuentra activado.");
return 1;
}
stock Nombre(playerid){
new string[32];
GetPlayerName(playerid, string, 32);
return string;
}
Si me explicбs mбs como lo querйs lo puedo modificar y hacer eso de derby de no se quй, y me podйs decir si usбs el procesador de comandos zcmd o lo paso a la funciуn strcmp.