#include <a_samp>
#define TEMPO 5 //TEMPO EM MINUTOS (TROCAR O "5")
new BigEar[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" FS by CidadeNovaRP ¬¬");
print("--------------------------------------\n");
return 1;
}
public OnGameModeInit()
{
SetTimer("Ganhou", TEMPO*60000, true);
return 1;
}
forward Ganhou();
public Ganhou()
{
new Players = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
Players++;
}
}
if(Players >= 15)
{
new PlayerWin = random(Players);
if(!IsPlayerConnected(PlayerWin)) return Ganhou();
new Moneys = 100 + random(1900);
new PlayerName[64], string[128];
GivePlayerMoney(PlayerWin, Moneys);
GetPlayerName(PlayerWin, PlayerName, sizeof(PlayerName));
format(string, sizeof(string), "* %s achou R$%d no chгo.", PlayerName, Moneys);
ProxDetector(30.0, PlayerWin, string, -1, -1, -1, -1, -1);
return 1;
}
return 1;
}
stock ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!BigEar[i])
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
SendClientMessage(i, col5, string);
}
}
else
{
SendClientMessage(i, col1, string);
}
}
}
}
return true;
}


|
pawn Code:
|
|
pawn Code:
Um jeito bom: pawn Code:
- Ele irб procurar o maior ID online e adicionar + 1 nisso. (Imaginemos que seja 54 o maior, ou seja, 55). - Ele irб procurar, no while, um ID online com o ID mбximo pego no processo a cima. - Ao achar ele marcarб o ID na variбvel 'achou' - Esta variбvel (achou) serб o ID do ganhador. Obs: Caso nгo tenha ninguйm online irб retornar -1. ObsІ: Claro que pode ser otimizado para obter o resultado mais rбpido, mas tome cuidado para nгo cair no memso erro de antes. |
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" FS by CidadeNovaRP ¬¬");
print("--------------------------------------\n");
return 1;
}
public OnGameModeInit()
{
SetTimer("Ganhou", 60000, true);
return 1;
}



for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
Players++;
}
}
new max_id=-1,achou=-1;
for(id=0;id<MAX_PLAYERS;id++)
if(IsPlayerConnected(id))
max_id=id+1;
if(max_id!=-1)
while(achou==-1)
{
new id_f=random(max_id);
if(IsPlayerConnected(id_f)) achou=id_f;
}
}