Page 1 of 1

Greitis

Posted: 2013 Jul 06 12:06
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)    }}

Re: Greitis

Posted: 2013 Jul 07 19:45
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ę.

Re: Greitis

Posted: 2013 Jul 07 22:09
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..?

Re: Greitis

Posted: 2013 Jul 07 23:06
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.

Re: Greitis

Posted: 2013 Jul 07 23:15
by xFrostas
Dabar suprantu, ačiū.