Pagalbos!

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
CrenarkitOriginal
Naujokas apylinkėse
Posts: 4
Joined: 2018 Mar 26 20:14

Pagalbos!

Post by CrenarkitOriginal »

Sveiki! ^.^ Žodžiu turiu problemą kurią norėčiau įspręsti. Norėčiau pavyzdžio ar kažko. Yra taip, kad vieną kartą per round'ą pirmas CT komandoje žaidėjes parašęs komandą, jam išmestų meniu ir daugiau niekam neišmestų. Trumpiau, kad pirmam žaidėjui parašiusiam specifinę komandą išmestų meniu, o daugiau kas ir be rašytų - neišmestų. Tikiuosi supratote xd

User avatar
likux35
Ar jis surinks 50 žinučių?
Posts: 41
Joined: 2015 May 29 22:41
Skype: likux35
Contact:

Re: Pagalbos!

Post by likux35 »

CrenarkitOriginal wrote:Sveiki! ^.^ Žodžiu turiu problemą kurią norėčiau įspręsti. Norėčiau pavyzdžio ar kažko. Yra taip, kad vieną kartą per round'ą pirmas CT komandoje žaidėjes parašęs komandą, jam išmestų meniu ir daugiau niekam neišmestų. Trumpiau, kad pirmam žaidėjui parašiusiam specifinę komandą išmestų meniu, o daugiau kas ir be rašytų - neišmestų. Tikiuosi supratote xd
Kaip supratau, tau reikia kažko panašaus. Testuokis :)
Padaryta kaip minėjai : išmetamas meniu su specifine komanda "/komanda" (veikia tik CT komandai), taip pat pridėtas vienintelis komandos panaudojimas CT komandai per rounda :)

Kodas: Select all

#include <amxmodx>#include <hamsandwich>#include <cstrike>#include <fun> new naudota = 0; public plugin_init(){    register_plugin("Specifine komanda", "1.0", "saimon");        register_clcmd("say /komanda", "ijungti_komanda");    register_clcmd("say komanda", "ijungti_komanda");        RegisterHam(Ham_Spawn, "player", "spawnas", 1);} public ijungti_komanda(id){    if(naudota == 1)    {        print_colorchat(id, "!g[!tNUOSTABUSIS ZAIDIMAS!g] !y Jau kazkas zaide siame zaidime, pabandyk kita rounda !");        return PLUGIN_HANDLED;    }           else if(!(is_user_alive(id)))    {        print_colorchat(id, "!g[!tNUOSTABUSIS ZAIDIMAS!g] !y Tu privalai buti gyvas !");        return PLUGIN_HANDLED;    }    else if((!(get_user_team(id) == 2)))    {        print_colorchat(id, "!g[!tNUOSTABUSIS ZAIDIMAS!g] !y Tu privalai buti CT komandoje !");        return PLUGIN_HANDLED;    }    else    {        new menu = menu_create("\yPasirinkite Priza", "prizo_handleris");         menu_additem(menu, "\wAK47 + DEAGLE", "1");        menu_additem(menu, "\wAWP + DEAGLE", "2");           menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);        menu_display(id, menu, 0);    }         return PLUGIN_CONTINUE;} public prizo_handleris(id, menu, item){    if(item == MENU_EXIT)    {        naudota = 1;        menu_destroy(menu);        return PLUGIN_HANDLED;    }     new data[6], iName[64];    new access, callback;    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);     new key = str_to_num(data);     switch(key)    {        case 1:        {            strip_user_weapons(id);            give_item(id, "weapon_knife");            give_item(id, "weapon_ak47");            give_item(id, "weapon_deagle");            cs_set_user_bpammo(id, CSW_AK47, 90);            cs_set_user_bpammo(id, CSW_DEAGLE, 35);                        print_colorchat(id, "!g[!tNUOSTABUSIS ZAIDIMAS!g] !y Jus gavote ak47 + deagle !");                        naudota = 1;        }        case 2:        {            strip_user_weapons(id);            give_item(id, "weapon_knife");            give_item(id, "weapon_awp");            give_item(id, "weapon_deagle");            cs_set_user_bpammo(id, CSW_AWP, 60);            cs_set_user_bpammo(id, CSW_DEAGLE, 35);                          print_colorchat(id, "!g[!tNUOSTABUSIS ZAIDIMAS!g] !y Jus gavote awp + deagle !");                        naudota = 1;        }    }     menu_destroy(menu);    return PLUGIN_HANDLED;} public spawnas(id){    naudota = 0;}        stock print_colorchat(const id, const input[], any:...){    new count = 1, players[32];    static msg[191];    vformat(msg,190,input,3);    replace_all(msg,190,"!g","^4");// green txt    replace_all(msg,190,"!y","^1");// orange txt    replace_all(msg,190,"!t","^3");// team txt    replace_all(msg,190,"!w","^0");// team txt    if (id) players[0] = id; else get_players(players,count,"ch");    for (new i=0;i<count;i++)        if (is_user_connected(players[i]))        {            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);            write_byte(players[i]);            write_string(msg);            message_end();        }}
Attachments
specifine_komanda.sma
Prisegtas failas su tuo pačiu turiniu kaip nurodyta.
(2.84 KiB) Downloaded 350 times

CrenarkitOriginal
Naujokas apylinkėse
Posts: 4
Joined: 2018 Mar 26 20:14

Re: Pagalbos!

Post by CrenarkitOriginal »

Čia kaip supratau veiks vienam žaidėjui? Nebent tas kintamasis "new naudota = 0;" padaro visiems žaidėjams. Jeigu neklystu ;/ Man reikia tik pirmam parašiusiam! T.y pirmam parašiusiam, o visiem kitiem rašytų, kad jau kažkas yra jau panaudojęs. Man reikia būtent to. Pataisyk mane jeigu klystu :3
Paskutinį kartą redagavo CrenarkitOriginal 2019 Mar 24 13:52. Iš viso redaguota 2019 kartus.

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

Re: Pagalbos!

Post by psychical »

O jeigu paimtum ir pabandytum susikompiliuoti tau pateiktą failą ir pamatytum pats, kaip tau žmogus pasiūlė? Sutaupytum mūsų laiką, o pats iš karto žinotum atsakymą.

Esame tam, kad padėtum, o ne tam, kad viską padarytume už jus... Ir šiaip, mažai čia žmonių belikę, reikia džiaugtis, manau, kad iš vis kažkas dar čia sugeba atsakyti rimtai, parašiau ir rimtai pagalvojau, kad keista... :D

Kintamasis be priskyrimo yra taikomas viskam, ne vienam žaidėjui.

CrenarkitOriginal
Naujokas apylinkėse
Posts: 4
Joined: 2018 Mar 26 20:14

Re: Pagalbos!

Post by CrenarkitOriginal »

Ačiū, kad paaiškinai. Nenorėjau nieko blogo ypač kai tik metus su viršum programuoju :d Bet turbūt pats supranti, kad tokio dalyko vienam ištestuot neįmanoma. Peace :bounce:

User avatar
likux35
Ar jis surinks 50 žinučių?
Posts: 41
Joined: 2015 May 29 22:41
Skype: likux35
Contact:

Re: Pagalbos!

Post by likux35 »

CrenarkitOriginal wrote:Ačiū, kad paaiškinai. Nenorėjau nieko blogo ypač kai tik metus su viršum programuoju :d Bet turbūt pats supranti, kad tokio dalyko vienam ištestuot neįmanoma. Peace :bounce:
Įmanoma, tačiau reikia kažkiek suprasti, kaip sukurta pati sistema. Tau belieka tik įsidėti ir matysi rezultatą :) P.s kaip sakė Psychical nepriskirtas kintamasis yra taikomas visiems, o ne vienam žaidėjui. Šiuo atveju padaryta taip, jog panaudojus menu reiksme tampa naudota = 1, virsuje ideta net if, kuris tikrina, ar reikšmė yra 1, jeigu vienas, meniu langas nėra iškviečiamas tiesiog printinamas tekstas, kad meniu jau yra panaudotas. Tokiu atveju šis meniu veikti keliems žaidėjams ir nebus įmanomas, kadangi po vieno panaudojimo reikšmė visiems bus priskirta vienetui, o prasidėjus naujam roundui anuliuojama.

CrenarkitOriginal
Naujokas apylinkėse
Posts: 4
Joined: 2018 Mar 26 20:14

Re: Pagalbos!

Post by CrenarkitOriginal »

Tiek man ir reikėjo :d Ačiūūū <3

Post Reply

Who is online

Users browsing this forum: No registered users and 12 guests