hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 15:02



Jelenlévő felhasználók

Jelenleg 223 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 222 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 13 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
 Hozzászólás témája: menü könnyebb listázás
HozzászólásElküldve: 2015.12.05. 14:53 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.04.10. 15:32
Hozzászólások: 776
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 60 alkalommal
Arra volnék kíváncsi ,hogy menüben lehet-e valami könnyebb módszerrel egymás alá kiíratni.
Erre gondoltam:

SMA Forráskód: [ Mindet kijelol ]
  1. formatex( szText, charsmax( szText ), "\y%s \d[%d]" , chest_names[0][0], lada[0][id])
  2. menu_additem(menu, szText, "0", 0)
  3.  
  4. formatex( szText, charsmax( szText ), "\y%s \d[%d]" , chest_names[1][0], lada[1][id])
  5. menu_additem(menu, szText, "1", 0)


Ezt lehetne-e könnyebben kiíratni egymás alá + az értékeivel?

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: menü könnyebb listázás
HozzászólásElküldve: 2015.12.05. 15:49 
Offline
Lelkes

Csatlakozott: 2015.10.18. 01:27
Hozzászólások: 27
Megköszönt másnak: 1 alkalommal
alfaanero írta:
Arra volnék kíváncsi ,hogy menüben lehet-e valami könnyebb módszerrel egymás alá kiíratni.
Erre gondoltam:

SMA Forráskód: [ Mindet kijelol ]formatex( szText, charsmax( szText ), "\y%s \d[%d]" , chest_names[0][0], lada[0][id]) menu_additem(menu, szText, "0", 0)  formatex( szText, charsmax( szText ), "\y%s \d[%d]" , chest_names[1][0], lada[1][id]) menu_additem(menu, szText, "1", 0)

Ezt lehetne-e könnyebben kiíratni egymás alá + az értékeivel?

Nem lehet :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: menü könnyebb listázás
HozzászólásElküldve: 2015.12.05. 16:51 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Ciklus? Bár ezt meghatározatlan számú menü elemnél használom, de végülis egy könyebb módja... :D

SMA Forráskód: [ Mindet kijelol ]
  1. for(new i=0;i<sizeof chest_names;i++)
  2. {
  3. format(szText,charsmax(szText),"\y%s \d[%d db]",chest_names[i][0],lada[i][id])
  4. menu_additem(menu,szText)
  5. }

Ők köszönték meg LyleChriss nek ezt a hozzászólást: alfaanero (2015.12.05. 17:01)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: menü könnyebb listázás
HozzászólásElküldve: 2015.12.05. 16:58 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
format vs formatex

format- lassú és visszacsatoló funkcióval rendelkezik
formatex- gyors

Lyle pls
https://www.amxmodx.org/api/string/format
https://www.amxmodx.org/api/string/formatex

_________________
GitHub - mforce

Ők köszönték meg mforce nek ezt a hozzászólást (összesen 2): alfaanero (2015.12.05. 17:01) • LyleChriss (2015.12.05. 17:09)
  Népszerűség: 4.55%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: menü könnyebb listázás
HozzászólásElküldve: 2015.12.05. 17:09 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Mindig keverem... Majd belekarcolom a monitorba, hogy tudjam ;) :lol:


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: menü könnyebb listázás
HozzászólásElküldve: 2015.12.11. 11:17 
Offline
Újonc

Csatlakozott: 2015.12.11. 10:13
Hozzászólások: 7
LyleChriss írta:
Ciklus? Bár ezt meghatározatlan számú menü elemnél használom, de végülis egy könyebb módja... :D

SMA Forráskód: [ Mindet kijelol ]for(new i=0;i<sizeof chest_names;i++){ format(szText,charsmax(szText),"\y%s \d[%d db]",chest_names[i][0],lada[i][id]) menu_additem(menu,szText)}

es ez alatt mit irjak ?

SMA Forráskód: [ Mindet kijelol ]
  1. public ladamenuH(id, menu, item)
  2. {
  3. if( item == MENU_EXIT )
  4. {
  5. menu_destroy(menu);
  6. return PLUGIN_HANDLED;
  7. }
  8. new data[9], access, callback, szName[64]
  9. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  10. new key = str_to_num(data)
  11.  
  12. switch(key)
  13. {


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: menü könnyebb listázás
HozzászólásElküldve: 2015.12.11. 11:20 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.04.10. 15:32
Hozzászólások: 776
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 60 alkalommal
Ha haza értem ide leírom és frissítem a posztot.
KB 7-8 körül

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: menü könnyebb listázás
HozzászólásElküldve: 2015.12.11. 11:31 
Offline
Újonc

Csatlakozott: 2015.12.11. 10:13
Hozzászólások: 7
alfaanero írta:
Ha haza értem ide leírom és frissítem a posztot.
KB 7-8 körül

azt nagyon meg koszonem :D


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: menü könnyebb listázás
HozzászólásElküldve: 2015.12.11. 13:47 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Na már most. A "key" változóba kéred le a menüpont információit, azaz azt is, hanyadik menüpont. Ez által nincs szükséged case-ekre, amíg minden menüpont ugyan azt csinálja. Itt egy gyakorlati példa.

Ugyebár a fent leírt for ciklussal megcsináltuk a menüpontokat. Most akármelyiket választjuk ki, ahol a for ciklusban az "i" változó volt, oda "key"-t kell írnunk.

SMA Forráskód: [ Mindet kijelol ]
  1. public ladamenuH(id, menu, item)
  2. {
  3. if( item == MENU_EXIT )
  4. {
  5. menu_destroy(menu);
  6. return PLUGIN_HANDLED;
  7. }
  8. new data[9], access, callback, szName[64]
  9. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  10. new key = str_to_num(data)
  11.  
  12. if(lada[key][0] >= 1 && kulcs[id] >= 1)
  13. {
  14. lada[key][0] --
  15. kulcs[id] --
  16. ladanyit(id) //GYK: Ez a láda nyitó funkció
  17. }
  18. else
  19. {
  20. client_print(id, print_chat, "Ládából vagy kulcsból nincs elegendő mennyiséged.")
  21. }
  22.  
  23. return PLUGIN_CONTINUE
  24. }


Ismétlem, a for ciklusos menüt akkor ajánlanám, ha a menü valamelyik adatát külső fájlból töltöd be, vagy egyszerűbbé akarod tenni a későbbi szerkesztést.

Amennyiben az egyik menüelem mást csinál mint a többi, azt külön kell kezelni.
Erre a példa legyen az, hogy a 3. menüpont (esetünkben ez az, ahol a key változó egyenlő 2-vel, mert a ciklus 0-val
kezdődött,) eldob egy kulcsot.

SMA Forráskód: [ Mindet kijelol ]
  1. public ladamenuH(id, menu, item)
  2. {
  3. if( item == MENU_EXIT )
  4. {
  5. menu_destroy(menu);
  6. return PLUGIN_HANDLED;
  7. }
  8. new data[9], access, callback, szName[64]
  9. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  10. new key = str_to_num(data)
  11.  
  12. if(key == 2)
  13. {
  14. if(kulcs[id] >= 1)
  15. {
  16. client_print(id, print_chat, "Eldobtál egy kulcsot.")
  17. }
  18. else
  19. {
  20. client_print(id, print_chat, "Nincs elegendő kulcsod ehhez.")
  21. }
  22. }
  23. if(lada[key][0] >= 1 && kulcs[id] >= 1)
  24. {
  25. lada[key][0] --
  26. kulcs[id] --
  27. ladanyit(id) //GYK: Ez a láda nyitó funkció
  28. }
  29. else
  30. {
  31. client_print(id, print_chat, "Ládából vagy kulcsból nincs elegendő mennyiséged.")
  32. }
  33.  
  34. return PLUGIN_CONTINUE
  35. }


Én a külön menüpontokat, amik nem azt csinálják, mint a többi, növekvő sorrendben írnám else if-fel a "tömeggyártott" menüpontok elé. :)

Remélem érthető volt a magyarázat, és jól írtam le mindent. :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: menü könnyebb listázás
HozzászólásElküldve: 2015.12.11. 14:31 
Offline
Újonc

Csatlakozott: 2015.12.11. 10:13
Hozzászólások: 7
LyleChriss írta:
Na már most. A "key" változóba kéred le a menüpont információit, azaz azt is, hanyadik menüpont. Ez által nincs szükséged case-ekre, amíg minden menüpont ugyan azt csinálja. Itt egy gyakorlati példa.

Ugyebár a fent leírt for ciklussal megcsináltuk a menüpontokat. Most akármelyiket választjuk ki, ahol a for ciklusban az "i" változó volt, oda "key"-t kell írnunk.

SMA Forráskód: [ Mindet kijelol ]public ladamenuH(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[9], access, callback, szName[64] menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback) new key = str_to_num(data)  if(lada[key][0] >= 1 && kulcs[id] >= 1) { lada[key][0] -- kulcs[id] -- ladanyit(id) //GYK: Ez a láda nyitó funkció } else { client_print(id, print_chat, "Ládából vagy kulcsból nincs elegendő mennyiséged.") }  return PLUGIN_CONTINUE}

Ismétlem, a for ciklusos menüt akkor ajánlanám, ha a menü valamelyik adatát külső fájlból töltöd be, vagy egyszerűbbé akarod tenni a későbbi szerkesztést.

Amennyiben az egyik menüelem mást csinál mint a többi, azt külön kell kezelni.
Erre a példa legyen az, hogy a 3. menüpont (esetünkben ez az, ahol a key változó egyenlő 2-vel, mert a ciklus 0-val
kezdődött,) eldob egy kulcsot.

SMA Forráskód: [ Mindet kijelol ]public ladamenuH(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[9], access, callback, szName[64] menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback) new key = str_to_num(data)  if(key == 2) { if(kulcs[id] >= 1) { client_print(id, print_chat, "Eldobtál egy kulcsot.") } else { client_print(id, print_chat, "Nincs elegendő kulcsod ehhez.") } } if(lada[key][0] >= 1 && kulcs[id] >= 1) { lada[key][0] -- kulcs[id] -- ladanyit(id) //GYK: Ez a láda nyitó funkció } else { client_print(id, print_chat, "Ládából vagy kulcsból nincs elegendő mennyiséged.") }  return PLUGIN_CONTINUE}

Én a külön menüpontokat, amik nem azt csinálják, mint a többi, növekvő sorrendben írnám else if-fel a "tömeggyártott" menüpontok elé. :)

Remélem érthető volt a magyarázat, és jól írtam le mindent. :)

nem jo :)


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 13 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 33 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole