09.04.2012, 01:05
(
Last edited by CidadeNovaRP; 29/04/2012 at 02:23 AM.
)
MUUUUUUUUITO SIMPLES! Fiz em menos de 5 Minutos... Ficou legalzinho e irei utilizar em meu Servidor, espero que gostem:


-------------------------------------------------------------------------------------------------
Editado, nem percebi...
Atualizado e otimizado... (Apenas acha dinheiro se tiver mais de 15 Players Online, caso queria mais ou menos basta alterar ao seu gosto...
pawn Code:
#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;
}



-------------------------------------------------------------------------------------------------
Quote:
pawn Code:
|
Quote:
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. |
