Greitis

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

Greitis

Post by xFrostas »

Ar taip gerai? Veiks viskas normaliai?

Code: Select all

public Event_CurWeapon(id){    if (!is_user_alive(id))        return PLUGIN_HANDLED     new Float: Speed     if (get_user_team(id) == 2)    {        switch (Class[id])        {            case CTClass1: Speed = get_pcvar_float(CTClass1_Speed)            case CTClass2: Speed = get_pcvar_float(CTClass2_Speed)            case CTClass3: Speed = get_pcvar_float(CTClass3_Speed)            case CTClass4: Speed = get_pcvar_float(CTClass4_Speed)            case CTClass5: Speed = get_pcvar_float(CTClass5_Speed)        }         switch (SpecialClass[id])        {            case Special1: Speed = get_pcvar_float(CTSpec1_Speed)            case Special2: Speed = get_pcvar_float(CTSpec2_Speed)        }        set_user_maxspeed(id, Speed)    }}

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

Re: Greitis

Post by aaarnas »

Na kaip ir teisingai, bet jei nori maksimaliai teisingai, tai Speed reikėtų inicializuoti IF sąlygos bloke, arba padaryti jį static, bet tai nieko nepakeistų.
Dar šiuos cvar'us galima ir chace daryti, nes vis tiek nekeisi jų kas minutę.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

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

Re: Greitis

Post by xFrostas »

aaarnas wrote:inicializuoti IF sąlygos bloke
Tai if (Speed) būtų ar pan.?
aaarnas wrote:Dar šiuos cvar'us galima ir chace daryti
Kaip suprasti cache? Tipo new Speed[5] ir poto nustatinėti Speed[0] = register_cvar..?

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

Re: Greitis

Post by aaarnas »

Ta prasme

Code: Select all

    if (get_user_team(id) == 2)    {          new Float: Speed
Logika ta, kad kintamąjį Speed naudoji tik sąlygoje (get_user_team(id) == 2). Tai jei sąlyga nebus patenkinama, tai kintamasis kuriamas be tikslo. Kam taip daryti? Tai įkeliam į bloko vidų ir kuriam tada, kada reikia.
Kitaip sakant - tas blokas, kuriame kintamasis yra sukuriamas, nebūtinai jame bus panaudojamas (pagal tavo atvejį).

cache, tai kai pvz kokiam plugins_cfg() forwarde visų pcvar reikšmes priskiri į kokį masyvą ar kintamuosius ir po to vietoje get_pcvar_[] naudoji tuos kintamuosius. Šitai naudinga tada, kai funkcija yra iškviečiama gana dažnai. Tokiu būdu sutaupom laiką, per kurį pluginas kreipiasi į modulius ir iš ten gauna informaciją. Tai apsimoka daryti tokiuose forward kaip prethink, server_frame ir panašiuose. curWeapon irgi gana dažnai kviečiamas.

Pliusas - mažiau kreipiamasi į modulius, sutaupom laiko.
Minusas - prarandam (kintamųjų sk)*32 baitų ramų ir pakeitus cvar reikšmę, įtakos plugine tai neturės, nes reikės atnaujinti informaciją kintamajame. Galima kas raundą atnaujinti informaciją iš cvar'ų. Priklausomai nuo poreikio čia jau.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

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

Re: Greitis

Post by xFrostas »

Dabar suprantu, ačiū.

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests