Senosios meniu sistemos naudojimas

Šiame forume galima rasti pamokas, patarimus, skriptus ir kitą naudingą informciją.
User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Senosios meniu sistemos naudojimas

Post by aaarnas »

Išmoksime naudoti senąją amxmodx meniu sistemą.

Privalumai:
  • Visą meniu galima suformatuoti kaip norima. Be jokių apribojimų.
  • Galima nustatyti laiką, po kelių sekundžių meniu žaidėjui pradings.
Trūkumai:
  • Sudėtingesnis formatavimas.
  • Sudėtinga kurti puslapiavimą.
Meniu formatavimui naudojami simboliai. Visas tekstas, kuris eis po jų pasikeis pagal jų reikšmę:
\w - Baltas tekstas
\r - Raudonas tekstas
\y - Geltonas tekstas
\d - Permatomas tekstas
\R - Tekstas lygiuojamas dešinėje.

Code: Select all

#include <amxmodx>#include <amxmisc> // Reikės amxmisc modulio, nes jame yra reikalingos meniu funkcijos. public plugin_init() {    register_plugin("Meniu", "1.0", "aaarnas")    register_menu("Meniu", MENU_KEY_2|MENU_KEY_0, "meniu_funkcija")    /* Funkcija registruoja meniu, kurį mes ruošiamės naudoti. Tokių menių galima registruoti daug.    1 argumentas ("Meniu") - Tai yra meniu ID adresas. Pagal jį parodysime į kurį meniu kreiptis kai norime jį parodyti.         Čia gali būti bet koks string tipo žodis, žodžių junginys. Su funkcionavimu pavadinimas nesusijęs.         Žinoma pavadinkime tuo, ką šis meniu atlikinės. Taip bus paprasčiau susigaudyti.    2 argumentas (MENU_KEY_2|MENU_KEY_0) - Čia registruojami mygtukai, kuriuos bus galima paspausti.         Tiksliau kuriuos persiųs į funkciją. Key skaičiai atitinka skaičius, kuriuos spaudžiame norėdami naudotis meniu žaidime.         MENU_KEY_1 - 1, MENU_KEY_2 - 2 ir tt.    3 argumentas ("meniu_funkcija") - funkcijos pavadinimas, kuri bus iškviesta, kai bus paspaustas kuris nors meniu punktas. */} 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.    // Sukursim tokį meniu, kur būtų meniu pavadinimas, du punktai ir išėjimas. Pirmas punktas bus permatomas ir jį spaudžiant nieko nevyks. Jis tieisog nepasispaus.    len += formatex(menu_body[len], charsmax(menu_body) - len, "\rMeniu pavadinimas:^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. Kad jis būtų permatomas, naudojame simbolį - \d.    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")     /* Turime funkciją, su kuria iškviesime meniu žaidėjui.    1 argumentas (id) - Nurodome kuriam žaidėjui bus iškviečiamas meniu. Įrašius 0 - bus iškviečiamas visiems žaidėjams.    2 argumentas (MENU_KEY_2|MENU_KEY_0) - registruojame tik mygtukus 0 ir 2, nes norime, kad 1 nesispaustų.    3 argumentas (menu_body) - Perduodame kintamąjį, kuriame yra visas mūsų suformatuotas meniu.    4 argumentas (-1) - Čia galima įrašyti po kelių sekundžių žaidėjui meniu dings automatiškai, jei jis nieko nepaspaus. -1 reiškia, kad meniu automatiškai nepradings.    5 argumentas ("Meniu") - nurodome į kurį meniu kreipiamės. Įrašome id atitinkamą tam, kurį registravome. */} public meniu_funkcija(id, key) { // Iškviečiama kai paspaudžiamas mygtukas.       switch (key) {       case 0: {           // Meniu punktas 1        }        case 1: {           // Meniu punktas 2        }        case 2: {           // Meniu punktas 3        }        case 9: return  // Meniu uzdaromas    }} 
Tai pagrindai senosios meniu sistemos naudojimo. Jei reikia papildyti ar plačiau paaiškinti - rašykite.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

User avatar
zirualas
Gana aktyvus vartotojas
Posts: 216
Joined: 2010 Oct 16 21:33
Skype: zirual
Location: Vilnius
Contact:

Re: Senosios meniu sistemos naudojimas

Post by zirualas »

O kaip pvz padaryti, nū pvz turiu 2 lenteles, ir ten kai jau registruoju keys, kas ką padaro, tai kaip patikrinti ar ten ta menių ar kita?

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

Re: Senosios meniu sistemos naudojimas

Post by aaarnas »

Teks rišliau parašyti ko nori, nes nieko nesupratau.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

User avatar
zirualas
Gana aktyvus vartotojas
Posts: 216
Joined: 2010 Oct 16 21:33
Skype: zirual
Location: Vilnius
Contact:

Re: Senosios meniu sistemos naudojimas

Post by zirualas »

Kodėl man rašo taip? Čia consoleje:
L 05/11/2011 - 10:36:01: Function "meniu_funkcija" was not found

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

Re: Senosios meniu sistemos naudojimas

Post by aaarnas »

Pataisiau pamoką. Funkcijos pavadinimo nepakeičiau.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

User avatar
zirualas
Gana aktyvus vartotojas
Posts: 216
Joined: 2010 Oct 16 21:33
Skype: zirual
Location: Vilnius
Contact:

Re: Senosios meniu sistemos naudojimas

Post by zirualas »

Dbr turiu klausima:
Įrašiau šita i plugin_init

Code: Select all

register_menu("CtMeniu", MENU_KEY_1|MENU_KEY_2|MENU_KEY_0, "meniu_funkcija")
Šita kai iškviečiama lentelė:

Code: Select all

new menu_body[300], len                len += formatex(menu_body[len], charsmax(menu_body) - len, "\r1. \w M4A1^n")        len += formatex(menu_body[len], charsmax(menu_body) - len, "\r2. \w AK47^n")        len += formatex(menu_body[len], charsmax(menu_body) - len, "^n\r0. \w Iseiti")                show_menu(id, MENU_KEY_1|MENU_KEY_2|MENU_KEY_0, menu_body, -1, "CtMeniu")
ir šitas:

Code: Select all

public meniu_funkcija(id, key){       if(key == 1)    {        give_item(id, "weapon_m4a1")    }    if(key == 2)    {        give_item(id, "weapon_ak47")    }        if(key == 0) return;        return;}
Bet galiausiai sukompilinęs ir iėjas į game, paspaudžio 1, neivyksta nieko, tik dingsta menu, paspaudžiu 2, duoda m4a1, paspaudžiu 0 išeina iš menu, kame problema?

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: Senosios meniu sistemos naudojimas

Post by hleV »

Naudokit naują meniu ir viskas. Visas spalvas ir ten galima keist, nebent kažką žiauriai įmantraus (kuo abejoju) norit daryt su tuo meniu.
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

User avatar
zirualas
Gana aktyvus vartotojas
Posts: 216
Joined: 2010 Oct 16 21:33
Skype: zirual
Location: Vilnius
Contact:

Re: Senosios meniu sistemos naudojimas

Post by zirualas »

hleV wrote:Naudokit naują meniu ir viskas. Visas spalvas ir ten galima keist, nebent kažką žiauriai įmantraus (kuo abejoju) norit daryt su tuo meniu.
Na gerai :/

Keistas
Jau po truputį tampa savu
Posts: 144
Joined: 2011 Feb 23 19:44
Skype: mindzekas.nu

Re: Senosios meniu sistemos naudojimas

Post by Keistas »

Kaip suprast meniu? Čia amxmodx? Ar čia kaip sukurt meniu?

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

Re: Senosios meniu sistemos naudojimas

Post by aaarnas »

Paprastas meniu kurį matai žaidime ir spaudžioji ginklų mygtukus, kad pasirinkti kažką. Yra jo kūrimo 2 būdai. Nauja sistema ir sena. Jos kiek skiriasi. Čia senoji aprašyta. Naująją gal irgi kada aprašysiu.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests