Pirma išmeta mano meniu paskui žaidimo

Š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

Pirma išmeta mano meniu paskui žaidimo

Post by xFrostas »

Kaip padaryti, kad atėjusiam į serverį, tik ką prisijungusiam išmestu mano meniu, kai iš ten kažką pasirenka tada meta tuos kitus, motd ir kur komandą pasirinkti.

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: Pirma išmeta mano meniu paskui žaidimo

Post by newb »

Nemanau kad taip galima.

User avatar
beast
AMX Mod X ekspertai
Posts: 509
Joined: 2011 Jan 08 18:44
Skype: thefurious4
Contact:

Re: Pirma išmeta mano meniu paskui žaidimo

Post by beast »

Užblokuoti motd: http://forums.alliedmods.net/showpost.p ... ostcount=3 ; parodyti motd: show_motd(id, "motd.txt")

Užblokuot team meniu:

Code: Select all

public plugin_init() {   register_message( get_user_msgid( "VGUIMenu" ), "hook_VGUIMenu" );}public hook_VGUIMenu() {   if(get_msg_arg_int(1) == 2)    return PLUGIN_HANDLED;}
Parodyt team meniu: set_pdata_int(id, 125, get_pdata_int(id, 125, 5) & ~(1<<8), 5) arba tiesiog client_cmd(id, "choosteam")

Belieka žaist su duotu kodu, derint kada atitinkami msg bus blokuojami...

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

Re: Pirma išmeta mano meniu paskui žaidimo

Post by xFrostas »

Aišku, o dar čia vienas toks nedidelis klausimėlis, kaip padaryti pvz, jei yra trys klasės

Kareivis
Pestininkas
Zmogus

dabar darau meniu ir jei esi pvz Pestininkas tai būna

Skill Kareiviui < Pilkas, neleidžia paspausti.
Skill Pestininkui < Spalvotas, leidžia paspausti.
Skill Zmogui < Pilkas, neleidžia paspausti.

Ir su kitom taipat, bet man reikia, kuo mažesnio kodo ir geresnio varianto.

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: Pirma išmeta mano meniu paskui žaidimo

Post by newb »

Reikia daryti callbacka. Gali paziuret pavyzdi, gal suprasi kaip veikia.
Attachments
test.sma
(4.65 KiB) Downloaded 740 times

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

Re: Pirma išmeta mano meniu paskui žaidimo

Post by aaarnas »

Visai dar geras dalykas yra sena meniu sistema. Jos privalumas tas, kad visą meniu gali suformatuoti pats + galima nustatyti po kelių sekundžių meniu dings automatiškai. Naujas meniu geresnis paprastesniu formatavimu.

Code: Select all

 #include <amxmodx>public plugin_init() {    register_menu("Meniu", MENU_KEY_2|MENU_KEY_0, "funkcija") // Registruojam tik 0 ir 2 mygtukus, nes reikia, kad 1 nesispaustų.} public rodyti_meniu(id) { // Šita funkcija parodys žaidėjui meniu        new menu_body[300], len // Meniu visą nuo pradžios iki pabaigos reikia formatuotis patiems.    len += formatex(menu_body[len], charsmax(menu_body) - len, "\rMeniu title:^n^n")  // Meniu pavadinimas    len += formatex(menu_body[len], charsmax(menu_body) - len, "\r1. \dPirmas punktas (nesispaudzia)^n") // Pirmas punktas. Jis bus permatomas ir nesispaus.    len += formatex(menu_body[len], charsmax(menu_body) - len, "\r2. \wAntras punktas (spaudziasi)^n") // Antras bus normalus.    len += formatex(menu_body[len], charsmax(menu_body) - len, "^n\r0. \wIseiti") // Tieisog išėjimas.        show_menu(id, MENU_KEY_2|MENU_KEY_0, menu_body, -1, "Meniu") // Taip pat, kaip ir meniu registravime neregistruojam 1 mygtuko. -1 - Čia galima nustatyti po kelių sekundžių žaidėjui automatiškai dings meniu (jei reikia). "Meniu" - kurį meniu iškviesim. Čia atitinka pavadinimą to menių kurį registravom plugin_init.} public funkcija(id, key) { // Iškviečiama kai paspaudžiamas mygtukas.        if(key == 0) return; // Paspaudė 0        if(key == 2) { } // darom kažką        return;}
Beje primennu, kad čia yra senoji meniu sistema. Pas newb naujoji. Naudoti galima tiek vieną, tiek kitą. Viskas priklauso kuri tau patogiau tam tikru atveju.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: Pirma išmeta mano meniu paskui žaidimo

Post by newb »

Bet jam reikia, kad tie kareivei negaletu spausti 1, o pestininkai 2. O taip kaip pas tave, tai niekas negales paspaust to neuzregistroto key.

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

Re: Pirma išmeta mano meniu paskui žaidimo

Post by aaarnas »

Code: Select all

#include <amxmodx>#include <amxmisc> #define KAR_MYG MENU_KEY_1|MENU_KEY_0#define PEST_MYG MENU_KEY_2|MENU_KEY_0 enum Klase:klases {        kareivis,    pestininkas} new Klase:zaidejo_klase[33] public plugin_init() {    register_plugin("Plugin", "1.0", "aaarnas")    register_menu("Meniu", MENU_KEY_1|MENU_KEY_2|MENU_KEY_0, "funkcija")} public rodyti_meniu(id) {        new menu_body[300], len    len += formatex(menu_body[len], charsmax(menu_body) - len, "\rMeniu title:^n^n")    len += formatex(menu_body[len], charsmax(menu_body) - len, "\r1. %sKareivis^n", zaidejo_klase[id] == kareivis ? "/w" : "/d")    len += formatex(menu_body[len], charsmax(menu_body) - len, "\r2. %sPestininkas^n", zaidejo_klase[id] == pestininkas ? "/w" : "/d")    len += formatex(menu_body[len], charsmax(menu_body) - len, "^n\r0. \wIseiti")        show_menu(id, zaidejo_klase[id] == kareivis ? KAR_MYG : PEST_MYG, menu_body, -1, "Meniu")} public funkcija(id, key) { // Iškviečiama kai paspaudžiamas mygtukas.        if(key == 0) return; // Paspaudė 0        switch(key) {        case 1: { } // Kareivis        case 2: { } // Pestininkas    }        return;}
Palikau CS pasaulį ;/ . Nebepasiekiamas.

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

Re: Pirma išmeta mano meniu paskui žaidimo

Post by psychical »

Sakykim as turiu toki koduka:

Code: Select all

public days(id){    if(is_user_alive(id) && get_user_team(id) == 2 && !lr_prasidejo() && active_players(CS_TEAM_T, true) != 1)    {            new gmenu = menu_create("\w~:\rD\ways \rM\wenu:~" , "days1");            menu_additem(gmenu ,"Gaudynes", "1" , 0);            menu_additem(gmenu ,"AGaudynes", "5" , 0);            menu_additem(gmenu ,"Freeday menu", "2" , 0);            menu_additem(gmenu ,"Slepynes", "3" , 0);            menu_additem(gmenu ,"Gunday", "4" , 0);            menu_additem(gmenu ,"Sparta", "6" , 0);            menu_additem(gmenu ,"Atidaryti kameras", "9" , 0);            menu_additem(gmenu ,"Baigti diena", "10" , 0);             menu_setprop(gmenu , MPROP_EXIT , MEXIT_ALL);             menu_display(id , gmenu , 0);    }    return PLUGIN_CONTINUE} 
Ir noreciau padaryti, kad jei "day == 2" tada man nerodytu PVZ.: Gaudyniu, bet kie kspeju tai cia bus su newb duotu kodu, bet kai ten jau yra padaryta, tai bent jau man nk neina suprast...

newb
Pluginų patvirtintojas
Posts: 1047
Joined: 2010 Sep 23 21:43
Location: Wonderland
Contact:

Re: Pirma išmeta mano meniu paskui žaidimo

Post by newb »

Su callbacku disablint geriau, nes jeigu padarysi koki

Code: Select all

if(day != 2) menu_additem(Menu ,"Gaudynes")
Tai reikes dar ir funkcijas keist.

Post Reply

Who is online

Users browsing this forum: No registered users and 29 guests