GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: mefi88 - 2014. március 19. - 15:49:34

Cím: Random helyett X % esély?
Írta: mefi88 - 2014. március 19. - 15:49:34
Üdv.
Olyan kérdésem volna, hogy lehet-e olyat csinálni, hogy van mondjuk egy /xy parancsom és abban 2 féle lefutási verzió szerepel.
Na most mondjuk az elsõ verziónak 70% az esélye, hogy lefut a másodiknak értelemszerûen 30%.
Tehát százalékos alapon dönt véletlenszerûen, hogy melyik fut le.
Remélem érthetõ a dolog, még elég kezdõ vagyok.
Elõre is köszönöm.
Cím: Random helyett X % esély?
Írta: BoOy - 2014. március 19. - 15:57:36

new verzio1 = random(100);
new verzio2 = 100-verzio1;
Cím: Random helyett X % esély?
Írta: mefi88 - 2014. március 19. - 18:29:25
Mint mondtam elég kezdõ vagyok, ezt a kódrészletet nem teljesen értem.
Egyébként köszi, hogy próbálsz segíteni. ^-^
Cím: Random helyett X % esély?
Írta: Dfoglalo - 2014. március 19. - 18:44:57
new verzio1 = random(100); // Egy random számot generál, maximum 100-ig, amelyet a verzio1 változóba tárol el - pl. ha 70-et generál, vehetjük 70%-nak
new verzio2 = 100 - verzio1; // Kivonja a random számot a 100-ból, amit a verzio2 változóba tárol el - ha 70-et generált az elõbbi, akkor kizárásos alapon ezzel a kis 100-ból való kivonással a verzio2 változó értéke 30 lesz, amit vehetünk 30%-nak

 
Erre írta BoOy:
 
Na most mondjuk az elsõ verziónak 70% az esélye, hogy lefut a másodiknak értelemszerûen 30%.[/quote]
De igazi %-ot nem lehet generálni, fõleg nem véletlenszerûen.
Cím: Random helyett X % esély?
Írta: mefi88 - 2014. március 19. - 18:54:31
Értem.
Nekem úgy kellene, hogy megadom, hogy az elsõ 70% a második pedig 30%.
Tehát nem véletlenszerûen x % hanem általam megadott.
Ilyet nem lehet?  :-[
Cím: Random helyett X % esély?
Írta: rhassi - 2014. március 19. - 18:56:07
if(random(100)<70) elso(); // generál egy számot 0-99-ig és egybõl ellenõrzi is, hogy beesik-e a 70%-ba
else masodik(); // ide pedig a maradék eset..
Cím: Random helyett X % esély?
Írta: mefi88 - 2014. március 19. - 19:11:07
Idézetet írta: rhassi date=1395251767\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47244\" data-ipsquote-contentclass=\"forums_Topic

if(random(100)<70) elso(); // generál egy számot 0-99-ig és egybõl ellenõrzi is, hogy beesik-e a 70%-ba
else masodik(); // ide pedig a maradék eset..

 

Hmmm... Ez remek, ezer köszönet!  :thumbsup:
Adnék +t de sajnos nincs ilyen funkcióm  :D
Cím: Random helyett X % esély?
Írta: Dfoglalo - 2014. március 19. - 19:28:42
Habár ki lehetett következtetni, hogy mit is szeretnél, de ha egy kicsit pontosabban fogalmaztál volna, akkor rögtön rájövünk, hogy neked egy elágazásra van szükséged, amelynek az igaz ága akkor fut le, ha egy 101-nél kisebb random szám kisebb, mint 70. Egyébként érdemes blokkokat használni, mert ha sok mindent akarsz lefuttatni a feltétel ágaiban, túl hosszú lesz a sorod és a compiler nem fogja tudni lefordítani azt.
 
if(radnom(101) < 70)
{
    // Ha 70-nél kisebb
}
else
{
    // Ha 70, vagy 70-nél nagyobb
}

 
[mod]Viszont ha jól látom, meg van oldva, így zárok. Legközelebb zárj magadtól.[/mod]
Cím: Random helyett X % esély?
Írta: mefi88 - 2014. március 19. - 15:49:34
Üdv.
Olyan kérdésem volna, hogy lehet-e olyat csinálni, hogy van mondjuk egy /xy parancsom és abban 2 féle lefutási verzió szerepel.
Na most mondjuk az elsõ verziónak 70% az esélye, hogy lefut a másodiknak értelemszerûen 30%.
Tehát százalékos alapon dönt véletlenszerûen, hogy melyik fut le.
Remélem érthetõ a dolog, még elég kezdõ vagyok.
Elõre is köszönöm.
Cím: Random helyett X % esély?
Írta: BoOy - 2014. március 19. - 15:57:36

new verzio1 = random(100);
new verzio2 = 100-verzio1;
Cím: Random helyett X % esély?
Írta: mefi88 - 2014. március 19. - 18:29:25
Mint mondtam elég kezdõ vagyok, ezt a kódrészletet nem teljesen értem.
Egyébként köszi, hogy próbálsz segíteni. ^-^
Cím: Random helyett X % esély?
Írta: Dfoglalo - 2014. március 19. - 18:44:57
new verzio1 = random(100); // Egy random számot generál, maximum 100-ig, amelyet a verzio1 változóba tárol el - pl. ha 70-et generál, vehetjük 70%-nak
new verzio2 = 100 - verzio1; // Kivonja a random számot a 100-ból, amit a verzio2 változóba tárol el - ha 70-et generált az elõbbi, akkor kizárásos alapon ezzel a kis 100-ból való kivonással a verzio2 változó értéke 30 lesz, amit vehetünk 30%-nak

 
Erre írta BoOy:
 
Na most mondjuk az elsõ verziónak 70% az esélye, hogy lefut a másodiknak értelemszerûen 30%.[/quote]
De igazi %-ot nem lehet generálni, fõleg nem véletlenszerûen.
Cím: Random helyett X % esély?
Írta: mefi88 - 2014. március 19. - 18:54:31
Értem.
Nekem úgy kellene, hogy megadom, hogy az elsõ 70% a második pedig 30%.
Tehát nem véletlenszerûen x % hanem általam megadott.
Ilyet nem lehet?  :-[
Cím: Random helyett X % esély?
Írta: rhassi - 2014. március 19. - 18:56:07
if(random(100)<70) elso(); // generál egy számot 0-99-ig és egybõl ellenõrzi is, hogy beesik-e a 70%-ba
else masodik(); // ide pedig a maradék eset..
Cím: Random helyett X % esély?
Írta: mefi88 - 2014. március 19. - 19:11:07
Idézetet írta: rhassi date=1395251767\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47244\" data-ipsquote-contentclass=\"forums_Topic

if(random(100)<70) elso(); // generál egy számot 0-99-ig és egybõl ellenõrzi is, hogy beesik-e a 70%-ba
else masodik(); // ide pedig a maradék eset..

 

Hmmm... Ez remek, ezer köszönet!  :thumbsup:
Adnék +t de sajnos nincs ilyen funkcióm  :D
Cím: Random helyett X % esély?
Írta: Dfoglalo - 2014. március 19. - 19:28:42
Habár ki lehetett következtetni, hogy mit is szeretnél, de ha egy kicsit pontosabban fogalmaztál volna, akkor rögtön rájövünk, hogy neked egy elágazásra van szükséged, amelynek az igaz ága akkor fut le, ha egy 101-nél kisebb random szám kisebb, mint 70. Egyébként érdemes blokkokat használni, mert ha sok mindent akarsz lefuttatni a feltétel ágaiban, túl hosszú lesz a sorod és a compiler nem fogja tudni lefordítani azt.
 
if(radnom(101) < 70)
{
    // Ha 70-nél kisebb
}
else
{
    // Ha 70, vagy 70-nél nagyobb
}

 
[mod]Viszont ha jól látom, meg van oldva, így zárok. Legközelebb zárj magadtól.[/mod]