Random - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Random (
/showthread.php?tid=570878)
Random -
AlexBlack - 14.04.2015
Hi , i need some helps today i'am making a Wanted system , so i have make a code on a callback "OnPlayerDisconnect" if the player is a wanted and he disconnect One of the random players will be the new wanted, but this didn't work , check my code
OnPlayerDisconnect :
PHP код:
if(WantedPlayer == playerid)
{
for(new i; i < MAX_PLAYERS; ++i)
{
if(IsPlayerConnected(i) && WantedPlayer != i)
{
RRandom = random(i);
new coordsstring[124];
WantedPlayer = RRandom;
format(coordsstring, sizeof(coordsstring), "{FF0000}[WANTED]{FFFFFF} %s is now the new wanted.", pName(WantedPlayer));
SendClientMessageToAll(COLOR_WHITE ,coordsstring);
TextDrawHideForAll(wanted3);
format(coordsstring, sizeof(coordsstring), "%s", pName(WantedPlayer));
TextDrawSetString(wanted4, coordsstring);
TextDrawShowForAll(wanted3);
}
else if(i == 0)
{
Wanted = 0;
PlayerWanted[playerid] = 0;
WantedPlayer = -1;
TextDrawHideForAll(wanted);
TextDrawHideForAll(wanted1);
TextDrawHideForAll(wanted2);
TextDrawHideForAll(wanted3);
TextDrawHideForAll(wanted4);
TextDrawHideForAll(wanted5);
TextDrawHideForAll(wanted6);
TextDrawHideForAll(wanted7);
TextDrawHideForAll(wanted8);
printf("The wanted have been disable ( 0 players connected ).");
}
}
return 1;
}
the problem is when i'am the wanted and i'am disconnect , i will reconnect after the wanted timer finished i will won the wanted.
The wanted timer :
PHP код:
forward WantedTimer();
public WantedTimer()
{
new string[256];
Secondes--;
if(Minutes == 0 && Secondes == 1)
{
KillTimer(WTimer);
WantedG(WantedPlayer);
}
if(Secondes == 0)
{
Minutes--;
Secondes = 59;
}
for(new i; i < MAX_PLAYERS; ++i)
{
if(PlayerInSafe[i] != 1)
{
format(string, sizeof(string), "~r~%02d:%02d", Minutes, Secondes);
TextDrawSetString(wanted5, string);
}
}
return 1;
}
when the wanted finished
PHP код:
forward WantedG(playerid);
public WantedG(playerid)
{
for(new i; i < MAX_PLAYERS; ++i)
{
if(WantedPlayer == i)
{
new string[256];
GiveArgent(i, 5000);
pInfo[i][pExp] += 100;
pInfo[i][pWanted] ++;
format(string, sizeof(string), "{FE0101}[WANTED] {FFFFFF}%s won the wanted and take 5000$ and 100EXP", pName(i));
SendClientMessageToAll(0x9EC73DAA,string);
SetPlayerWantedLevel(i, 0);
PlayerWanted[i] = 0;
WantedPlayer = -1;
TextDrawHideForAll(wanted);
TextDrawHideForAll(wanted1);
TextDrawHideForAll(wanted2);
TextDrawHideForAll(wanted3);
TextDrawHideForAll(wanted4);
TextDrawHideForAll(wanted5);
TextDrawHideForAll(wanted6);
TextDrawHideForAll(wanted7);
TextDrawHideForAll(wanted8);
}
}
}
Re: Random -
R0 - 14.04.2015
pawn Код:
if(WantedPlayer == playerid)
{
if(GetPlayersOnServer() != 0)
{
RRandom = SelectRandomPlayer();
new coordsstring[124];
WantedPlayer = RRandom;
format(coordsstring, sizeof(coordsstring), "{FF0000}[WANTED]{FFFFFF} %s is now the new wanted.", pName(WantedPlayer));
SendClientMessageToAll(COLOR_WHITE ,coordsstring);
TextDrawHideForAll(wanted3);
format(coordsstring, sizeof(coordsstring), "%s", pName(WantedPlayer));
TextDrawSetString(wanted4, coordsstring);
TextDrawShowForAll(wanted3);
}
else if(RRandom == 0)
{
Wanted = 0;
PlayerWanted[playerid] = 0;
WantedPlayer = -1;
TextDrawHideForAll(wanted);
TextDrawHideForAll(wanted1);
TextDrawHideForAll(wanted2);
TextDrawHideForAll(wanted3);
TextDrawHideForAll(wanted4);
TextDrawHideForAll(wanted5);
TextDrawHideForAll(wanted6);
TextDrawHideForAll(wanted7);
TextDrawHideForAll(wanted8);
printf("The wanted have been disable ( 0 players connected ).");
}
return 1;
}
and add this:
pawn Код:
stock SelectRandomPlayer()
{
new random = Random(MAX_PLAYERS);
if(IsPlayerConnected(random))
{
return random;
}
else
{
SelectRandomPlayer();
}
}
and
pawn Код:
GetPlayersOnServer() {
new count;
for(new x=0; x< MAX_PLAYERS; x++) { //x = MAX_PLAYERS
if(IsPlayerConnected(x))) {
count++;
}
}
return count;
}