Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- enum pInfo
- {
- pEstrellas,
- pEnCarcel,
- pTiempo
- };
- new PlayerInfo[MAX_PLAYERS][pInfo];
- new DetectarJail;
- #define Rojo 0xa80707FF
- public OnFilterScriptInit()
- {
- DetectarJail = SetTimer("SacarDeLaCarcel", 1000, 1);
- return 1;
- }
- #if defined FILTERSCRIPT
- #else
- main(){}
- #endif
- public OnPlayerConnect(playerid)
- {
- if(PlayerInfo[playerid][pEstrellas] > 0) return MetenEnJail(playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- KillTimer(DetectarJail);
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[256];
- new idx;
- cmd = strtok(cmdtext, idx);
- new tmp[256];
- if(strcmp(cmd, "/Estrellas", true) == 0)
- {
- new IdIndicada;
- new Estrellas;
- new MaximoEstrellas;
- if(IsPlayerConnected(playerid))
- {
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp)) return SendClientMessage(playerid, Rojo, "[Uso:] /Estrellas [Id/Nombre] [Cantidad]");
- if(MaximoEstrellas < 0 || MaximoEstrellas > 6) return SendClientMessage(playerid, Rojo, "[Error] Minimo 0 maximo 6");
- IdIndicada = ReturnUser(tmp);
- tmp = strtok(cmdtext, idx);
- Estrellas = strval(tmp);
- if(IsPlayerConnected(IdIndicada))
- {
- if(IdIndicada != INVALID_PLAYER_ID)
- {
- SetPlayerWantedLevel(IdIndicada, Estrellas);
- PlayerInfo[IdIndicada][pEstrellas] = Estrellas;
- }
- }
- }
- return 1;
- }
- return 0;
- }
- forward MetenEnJail(playerid);
- public MetenEnJail(playerid)
- {
- new tmp[64];
- format(tmp, sizeof(tmp), "Desconectaste con un nivel de %d estrellas", PlayerInfo[playerid][pEstrellas]);
- SendClientMessage(playerid, 0xFF0000FF, tmp);
- ResetPlayerWeapons(playerid);
- PlayerInfo[playerid][pEnCarcel] = 1;
- SetPlayerInterior(playerid, 0);
- SetPlayerPos(playerid, 3058.5444,2999.5657,0.9986);
- new Tiempo = PlayerInfo[playerid][pEstrellas] *= 600000;
- PlayerInfo[playerid][pTiempo] = Tiempo ;
- return 1;
- }
- forward SacarDeLaCarcel();
- public SacarDeLaCarcel()
- {
- new string[10];
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][pEnCarcel] > 0)
- {
- if(PlayerInfo[i][pTiempo] > 0) return PlayerInfo[i][pTiempo]--;
- if(PlayerInfo[i][pTiempo] <= 0)
- {
- PlayerInfo[i][pTiempo] = 0;
- PlayerInfo[i][pEnCarcel] = 0;
- format(string, sizeof(string), "~g~Libre");
- }
- }
- }
- return 1;
- }
- strtok(string[],&idx,seperator = ' ')
- {
- new ret[128], i = 0, len = strlen(string);
- while(string[idx] == seperator && idx < len) idx++;
- while(string[idx] != seperator && idx < len)
- {
- ret[i] = string[idx];
- i++;
- idx++;
- }
- while(string[idx] == seperator && idx < len) idx++;
- return ret;
- }
- ReturnUser(text[], playerid = INVALID_PLAYER_ID)
- {
- new pos = 0;
- while (text[pos] < 0x21)
- {
- if (text[pos] == 0) return INVALID_PLAYER_ID;
- pos++;
- }
- new userid = INVALID_PLAYER_ID;
- if (IsNumeric(text[pos]))
- {
- userid = strval(text[pos]);
- if (userid >=0 && userid < MAX_PLAYERS)
- {
- if(!IsPlayerConnected(userid))
- {
- userid = INVALID_PLAYER_ID;
- }
- else
- {
- return userid;
- }
- }
- }
- new len = strlen(text[pos]);
- new count = 0;
- new name[MAX_PLAYER_NAME];
- for (new i = 0; i < MAX_PLAYERS; i++)
- {
- if (IsPlayerConnected(i))
- {
- GetPlayerName(i, name, sizeof (name));
- if (strcmp(name, text[pos], true, len) == 0)
- {
- if (len == strlen(name))
- {
- return i;
- }
- else
- {
- count++;
- userid = i;
- }
- }
- }
- }
- if (count != 1)
- {
- if (playerid != INVALID_PLAYER_ID)
- {
- if (count)
- {
- SendClientMessage(playerid, Rojo, "[Error] Muchos jugadores alrededor.");
- }
- else
- {
- SendClientMessage(playerid, Rojo, "[Error] NingĂșn jugador concordante.");
- }
- }
- userid = INVALID_PLAYER_ID;
- }
- return userid;
- }
- IsNumeric(const string[])
- {
- for (new i = 0, j = strlen(string); i < j; i++)
- {
- if (string[i] > '9' || string[i] < '0') return 0;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment