Random gyvybės

Š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 gyvybės

Post by xFrostas »

Taigi turiu tokį kodą

Code: Select all

#include <amxmodx>#include <hamsandwich>#include <fun> new const Health[] = { 100, 110, 120, 130 } new bool: Assigned[4] new Class[33] public plugin_init(){    register_event("HLTV", "Event_HLTV", "a", "1=0", "2=0")     RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn", 1)} public Event_HLTV(){    arrayset(Assigned, false, sizeof(Assigned))} public Fwd_PlayerSpawn(id){    if (!is_user_alive(id))        return     if (get_user_team(id) == 2)    {        new Rand        while (Assigned[(Rand = random(3))])         Class[id] = Rand        Assigned[Rand] = true    }     set_user_health(id, Health[Class[id]])}  
Aš esu padaręs max 3 CT komandoje žaidėjus ir noriu, kad kiekvienam iš jų paskirtų random hp iš Health[], bet negali būti dviejų pvz su 120 HP, šitas kodas kažkaip keistai veikia, t.y. kartais hp duoda tik 2 žaidėjam, o kitas būna su 100 (kas reiškia, kad klasė yra neparenkama - 0). Kartais išvis neduoda.


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

Re: Random gyvybės

Post by xFrostas »

žinau šitą, bet kas iš to?

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Random gyvybės

Post by psychical »

xFrostas wrote:žinau šitą, bet kas iš to?
Atsakymas į tavo klausimą iš kur atsiranda neparinkta klasė - 0

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

Re: Random gyvybės

Post by xFrostas »

Ai jo. Dėkui :) Dabar, kodėl kartais parenka pvz 2 CT ir duoda po 130HP?

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Random gyvybės

Post by psychical »

xFrostas wrote:Ai jo. Dėkui :) Dabar, kodėl kartais parenka pvz 2 CT ir duoda po 130HP?
Todėl nes Class[id] yra nuo 0 iki 3 ATSITIKTINAI tai reiškia, kad tau gali būt ir visi trys 3 ir visi trys 2 ir pnš.

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

Re: Random gyvybės

Post by xFrostas »

Tai nesuprantu, kaip daryti tada? Čia bandžiau su senu Arno pavyzdžiu, kažkada buvo parašęs šitam forume.

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Random gyvybės

Post by psychical »

xFrostas wrote:Tai nesuprantu, kaip daryti tada? Čia bandžiau su senu Arno pavyzdžiu, kažkada buvo parašęs šitam forume.
Jo, parašiau, bežiūrėdamas filmą suvokiau, kad truputį sumaišiau :A:

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: Random gyvybės

Post by hleV »

Jei while ciklas tuščias, reikia po jo pridėt {}, nes dabar veikia taip:

Code: Select all

while (Assigned[(Rand = random(3))])    Class[id] = Rand Assigned[Rand] = true
Nesuprantu, kodėl nustatai HP už if sąlygos ribų.

Kodas apskritai absurdiškas ir man net nekyla ranka su juo kažką daryt.
psychical wrote:random(3) == random_num(0, 3)

Jei bus aiškiau
Tai kad random(3) == random_num(0, 2).
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Random gyvybės

Post by psychical »

hleV wrote:Tai kad random(3) == random_num(0, 2).
Tai kad iki 3, ne 2, na nebent čia tik pas mane taip :D

-- 2013 Lap 30 00:39 --

Code: Select all

native random(max);
Pagal include failą tai ir gaunasi nuo 0 iki to max skaičiaus, kurį tu įrašei.

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 2 guests