Random

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
User avatar
xFrostas
Flooderis arba specialistas
Posts: 660
Joined: 2010 Sep 02 15:47
Skype: frost.lt

Random

Post by xFrostas »

Sveiki, reikia truputį pagalbos su random, kaip paprasčiausią pavizdį paimsiu 3 klases. Tarkim komandoje yra trys žaidėjai, ir jiem parenka random klasę, o kaip padaryti, kad ji nesikartotų? Turiu omenyje tai, kad visi 3 žaidėjai gautų po skirtingą klasę, nes paprastu būdu gali būti 2 tokios pačios ar net 3.

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Random

Post by aaarnas »

Papildomam masyve pažymėk, kad ta klasė jau panaudota ir pastoviai tikrini ar klasė nepanaudota.

Code: Select all

 new player_class[33]new classes[3]new bool:used_classes[3]get_random_class(id) {        new rand    while (used_classes[(rand=random(3))])        ;            player_class[id] = rand    used_classes[rand] = true} 
Na vienas iš būtų. Bet turi prieš tai įsitikinti, kad bent viena klasė nėra užimta, nes kitaip amžinas ciklas susidarys ten.
Jei po to norėsi visą masyvą išvalyti, tai:

Code: Select all

arrayset(used_classes, false, sizeof(used_classes))
Palikau CS pasaulį ;/ . Nebepasiekiamas.

User avatar
xFrostas
Flooderis arba specialistas
Posts: 660
Joined: 2010 Sep 02 15:47
Skype: frost.lt

Re: Random

Post by xFrostas »

Ačiū už pagalbą

alfre
Gana aktyvus vartotojas
Posts: 259
Joined: 2011 May 13 14:01
Skype: alfredasxl996
Contact:

Re: Random

Post by alfre »

paprasciau galima.... true false uzmeti ir viskas..

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: Random

Post by InvIs »

O tai arno pavyzdyje ne taip padaryta?
ISVYKES

alfre
Gana aktyvus vartotojas
Posts: 259
Joined: 2011 May 13 14:01
Skype: alfredasxl996
Contact:

Re: Random

Post by alfre »

Gerai padaryta,bet kodo daugiau

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: Random

Post by InvIs »

O leisk paklausti, kaip tu nieko nedarydamas patikrinsi ar klasė užimta?
ISVYKES

alfre
Gana aktyvus vartotojas
Posts: 259
Joined: 2011 May 13 14:01
Skype: alfredasxl996
Contact:

Re: Random

Post by alfre »

Jau sakiau.

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Random

Post by aaarnas »

alfre wrote:Jau sakiau.
Tai jau pasigirk kodu, kad taip geriau žinai. Keli variantai geriau nei vienas.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

sss
Flooderis arba specialistas
Posts: 621
Joined: 2010 Dec 22 20:00
Location: ey b0s

Re: Random

Post by sss »

galima ir taip, bet kartais pasikartos ;p, pagal logika jei yra tik 3 klases, o zmoniu daugiau nei 3, bet kuriuo atveju kartosis, su arno kodu kiek maziau, nes yra atmintine padaryta, kad nesikartotu, bet jei nori optimalesnio varianto naudok sita

Code: Select all

enum _:classes {    A = 0,    B = 1,    C = 2} stock get_random_class() { new ran = random_num(A, C) return ran }
"Give me control of a nation's money and I care not who makes it's laws" — Mayer Amschel Bauer Rothschild
Image

Locked

Who is online

Users browsing this forum: Google [Bot] and 1 guest