GTA Közösség - A magyar GTA fórum
San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Tomee - 2011. május 31. - 14:15:23
-
Hello!
Hogy csinálhatnék, olyan randomot, aminél nem 50-50% esély van valamire, hanem 60-40% vagy 30-70%?
-
Nem teszteltem,remélem jó!
[pawn]if(!strcmp(cmdtext, \"/randomhealth\", true))
{
new randomhealth;
randomhealth = random(3);
switch(randomhealth)
{
case 0:
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid ,0x5465 \"Az felvittük maxra!\"
}
case 1:
{
SetPlayerHealth(playerid, 0);
SendClientMessage(playerid ,0x5465 \"Az életedet levittük 0-ra!\"
}
case 2:
{
SetPlayerHealth(playerid, 50);
SendClientMessage(playerid ,0x5465 \"Az átálítottuk 0-ra!\"
}
return 1;
}[/pawn]
-
Ilyent elvileg Pawnba nem lehet.
Mivel ha 3 véletlenszerût generálsz azoknak egyenkénti esélye 33,333%...
Másképp nem lehet.
-
#define IsInProcent(%1) (random(100)<%1)
Használat:
Ezt a kódot a bemásolod a szkripted elejére (a beágyazások alá).
Használati példa:
[pawn] if (strcmp(\"/test\", cmdtext, true) == 0)
{
if(IsProcent(22))
{
SendclientMessage(playerid,0xFFFFFFFF,\"22 százalék esélye volt, hogy ezt a szöveget megkapod.\");
return 1;
} else
{
SendclientMessage(playerid,0xFFFFFFFF,\"78 százalék esélye volt, hogy ezt a szöveget megkapod.\");
return 1;
}
}[/pawn]
Mûködés:
Generál egy véletlenszerû számot 100 alatt, és azt vizsgálja, hogy a szám kisebb vagy nagyobb(egyenlõ) a megadott százaléklábnál (a példában 22) .
Erre pont annyi esély van, amilyen számhoz viszonyítva vizsgál (a példában 22 -> 22% esély van rá.)