/sorsol 1 2 3 5 6 10
Úgy érted, hogy plha beleszólhatok szerintem úgy gondolja, hogy például fentvannak 13-an, beírja hogy /sorsol 13, és akkor a 13 player (0,1,2,3,4,5,6,7,8,9,10,11,12,13) között sorsol egyet, és az kap valamit.
/sorsol 1 2 3 5 6 10
És akkor az 1, 2, 3, 5, 6, 10-es ID közül választ egyet véletlenszerûen?
new playerek[MAX_PLAYERS];
CMD:sorsol(playerid, params)
{
if(IsPlayerConnected(playerid))
{
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(playerid))
{
playerek[playerid] ++;
}
}
new rand = random(playerek[playerid]);
new str[256];
new name[64];
GetPlayerName(rand, name, sizeof (name));
format(str, 256, \"Kisorsolt ID: %d, Játékos neve: %s\", rand, name );
SendClientMessage(playerid, COLOR_WHITE, str);
}
}
Mód elejére:Pár indexet nem jól adtál meg!
new playerek[MAX_PLAYERS];
CMD:sorsol(playerid, params)
{
if(IsPlayerConnected(playerid))
{
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(playerid))
{
playerek[playerid] ++;
}
}
new rand = random(playerek[playerid]);
new str[256];
new name[64];
GetPlayerName(rand, name, sizeof (name));
format(str, 256, \"Kisorsolt ID: %d, Játékos neve: %s\", rand, name );
SendClientMessage(playerid, COLOR_WHITE, str);
}
}
Pawno nem ír hibát, de nem teszteltem!
én azt számoltam hogy hány player van online. Nem idket. Ha egy játékos bevan lépve akkor rakja feljebb a változót szóval amit írtam ilyen szempontból helyesHa lefuttatsz egy for ciklust i változóval jelölve, akkor ne playeridet használj!
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(playerid))
{
playerek[playerid] ++;
}
}
[/quote]
Helyesen:
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
playerek ++;
}
}
De most így végig gondolva még jobban az egész úgy ahogy van rossz, hamár bizonygatod hogy helyes. :angel:
Edit:
Írtam egy kis kódot amit itt postoltam, sokat nem tudtam tesztelni de a bot játékosokkal a házi szerveren jól mûködött, talán ez hasznos lesz számodra, ha meg használsz foreach.inc-t akkor egyszerûbb a dolgod \"Itter_Random(Player)\".