Page 1 of 1

True, false. Pluginas.

Posted: 2013 Jun 11 21:57
by Froza
Sveiki,

Turiu pluginą kuriame galima nusipirkti awp, bet noriu, kad ne visuose žemėlapiuose jį leistu nusipirkti. Problema tame, kad jeigu su šitu darau, tai pagal cs_, de_ žiuri, o ne pagal visa pavadinimą. Gal galit ką nors patarti? "False" surašyti visi žemėlapiai kuriuose noriu, kad neduotu, o "True" surašyti visi žemėlapių tipai kuriuose noriu, kad duotu. Tai "False" noriu, kad pagal visa pavadinimą tikrintu.

Code: Select all

      new mapname[32]      get_mapname(mapname, 31)       if (equali(mapname, "35hp_2", 3) || equali(mapname, "aim_ak_thc", 3) || equali(mapname, "awp_", 3) || equali(mapname, "cs_deagle5", 3) || equali(mapname, "aim_deaglemaze", 3) || equali(mapname, "aimtrain", 3) || equali(mapname, "aim_dgl", 3))      {    g_awp = false      }          if (equali(mapname, "cs_", 3) || equali(mapname, "de_", 3) || equali(mapname, "fy_", 3) || equali(mapname, "mini_", 3) || equali(mapname, "32_", 3) || equali(mapname, "3d_", 3) || equali(mapname, "aa_", 3) || equali(mapname, "aim_", 3) || equali(mapname, "$1000$", 3))      {    g_awp = true      }  }

Visas kodas.

Code: Select all

 new bool:g_awp    public plugin_init() {      register_clcmd("say /awp", "CmdAwp");      g_pCvar_Price = register_cvar("awp_price", "15000");           new mapname[32]      get_mapname(mapname, 31)       if (equali(mapname, "35hp_2", 3) || equali(mapname, "aim_ak_thc", 3) || equali(mapname, "awp_", 3) || equali(mapname, "cs_deagle5", 3) || equali(mapname, "aim_deaglemaze", 3) || equali(mapname, "aimtrain", 3) || equali(mapname, "aim_dgl", 3))      {    g_awp = false      }          if (equali(mapname, "cs_", 3) || equali(mapname, "de_", 3) || equali(mapname, "fy_", 3) || equali(mapname, "mini_", 3) || equali(mapname, "32_", 3) || equali(mapname, "3d_", 3) || equali(mapname, "aa_", 3) || equali(mapname, "aim_", 3) || equali(mapname, "$1000$", 3))      {    g_awp = true      }  }    public CmdAwp(id)    {    if (g_awp)    {        new iMoney = cs_get_user_money(id);        new iPrice = get_pcvar_num(g_pCvar_Price);            if( !is_user_alive(id) )        {        echo_colored( id, "!g[!tParduotuve!y]!g Jus turite buti gyvas!");        return PLUGIN_HANDLED;        }            if( iMoney < iPrice )        {        echo_colored( id, "!y[!gParduotuve!y]!g Jums reikia daugiau pinigu! ($%i)", iPrice);        return PLUGIN_HANDLED;        }            give_item(id, "weapon_awp");        give_item(id, "weapon_knife");        cs_set_user_bpammo(id, CSW_AWP, 30);             echo_colored( id, "!y[!gParduotuve!y]!g Jus nusipirkote !tAWP! $%i !", iPrice);        cs_set_user_money(id, iMoney - iPrice, true);            }    return PLUGIN_HANDLED;    }  
 Kad nekurti dar vienos temos turiu dar vieną prašymą. Galit pataisyti pluginą taip, kad surinkus reikiama sumą nužudymų duotu vipą tiek laiko kiek nurodyta cvaruose, nes dabar duoda tik vienam map... Skaičius kuris yra nurodytas turi būti dienos. Pluginą prisegu.

Re: True, false. Pluginas.

Posted: 2013 Jun 12 10:39
by Unkolix
Jeigu nori pagal visą pavadinimą, naudok equal, jeigu pagal dalį - equali.

Re: True, false. Pluginas.

Posted: 2013 Jun 12 11:16
by Froza
Neveikia... Bandžiau pirma kartą šitaip:

Code: Select all

      new mapname[32]      get_mapname(mapname, 31)       if (equali(mapname, "35hp_", 3) || equali(mapname, "awp_", 3) || (equal(mapname, "aim_ak_thc", 3) || equal(mapname, "cs_deagle5", 3) || equal(mapname, "aim_deaglemaze", 3) || equal(mapname, "aimtrain", 3) || equal(mapname, "aim_dgl", 3))      {    g_awp = false      }       if (equali(mapname, "cs_", 3) || equali(mapname, "de_", 3) || equali(mapname, "fy_", 3) || equali(mapname, "mini_", 3) || equali(mapname, "32_", 3) || equali(mapname, "3d_", 3) || equali(mapname, "aa_", 3) || equali(mapname, "aim_", 3))      {    g_awp = true      }  }
Po to atskyriau equal ir equali, bet vis tiek duoda žemėlapiuose su pilnu pavadinimu....

Code: Select all

      new mapname[32]      get_mapname(mapname, 31)       if (equal(mapname, "aim_ak_thc", 3) || equal(mapname, "cs_deagle5", 3) || equal(mapname, "aim_deaglemaze", 3) || equal(mapname, "aimtrain", 3) || equal(mapname, "aim_dgl", 3))      {    g_awp = false      }       if (equali(mapname, "35hp_2", 3) || equali(mapname, "awp_", 3))      {    g_awp = false      }          if (equali(mapname, "cs_", 3) || equali(mapname, "de_", 3) || equali(mapname, "fy_", 3) || equali(mapname, "mini_", 3) || equali(mapname, "32_", 3) || equali(mapname, "3d_", 3) || equali(mapname, "aa_", 3) || equali(mapname, "aim_", 3))      {    g_awp = true      }  }

Re: True, false. Pluginas.

Posted: 2013 Jun 12 11:58
by MPD

Code: Select all

equal(mapname, "aim_deaglemaze", 3)
Tu nurodei, kad palygintų tau tik 3 simbolius

Code: Select all

equal ( const a[], const b[], [ c ] )//If c is specified, c characters are compared only.
Be to, kam tau tiek daug tikrinimų? galėtum tikrinti arba vieną, arba kitą, o ne abu kartu.

Code: Select all

g_awp = true; if (equal(mapname, "de_barsukas")) g_awp = false;
automatiškai su kitais mapais liktų true