Privalumai:
- Visą meniu galima suformatuoti kaip norima. Be jokių apribojimų.
- Galima nustatyti laiką, po kelių sekundžių meniu žaidėjui pradings.
- Sudėtingesnis formatavimas.
- Sudėtinga kurti puslapiavimą.
\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 }}