hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2026.03.14. 22:23



Jelenlévő felhasználók

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

A legtöbb felhasználó (2883 fő) 2025.07.30. 16:00-kor tartózkodott itt.

Regisztrált felhasználók: Bing [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  [12 hozzászólás ]  OldalElőző12
Szerző Üzenet
 Hozzászólás témája:
HozzászólásElküldve:Ma, 06:44 
Offline
Fanatikus
Avatar

Csatlakozott:2020.05.14. 11:32
Hozzászólások:183
Megköszönt másnak: 14 alkalommal
Megköszönték neki: 68 alkalommal
A menük kilépésnél már jobbak, viszont:
- ha rámegyek egy menüpontra kilép és nem nyitja meg újra azt. Ez pl. fegyvervásárlásnál idegesítő lehet, én vennék egy AK-t, Deagle-t és valamilyen gránátot is egyszerre.
- a handlernél mindig menu_destroyt illetve return PLUGIN_HANDLED-et illik használni, hogy elkerüld a memóriaszivárgást és a felesleges hívásláncot, pl:
  1. public weapon_shop_menu(id)
  2. {
  3.     if(!is_user_alive(id))
  4.     {
  5.         client_print_color(id, print_team_default, "^4[Bank]^1 Halottként nem vásárolhatsz!")
  6.         return
  7.     }
  8.  
  9.     new m = menu_create("\yFEGYVER BOLT", "weapon_shop_handler")
  10.  
  11.     menu_additem(m, "AK47 \r~\y 300 kredit")
  12.     menu_additem(m, "M4A1 \r~\y 300 kredit")
  13.     menu_additem(m, "AWP \r~\y 500 kredit")
  14.     menu_additem(m, "Deagle \r~\y 200 kredit")
  15.     menu_additem(m, "USP \r~\y 150 kredit")
  16.     menu_additem(m, "HE Gránát \r~\y 100 kredit")
  17.     menu_additem(m, "Villanó \r~\y 80 kredit")
  18.     menu_additem(m, "Füst \r~\y 80 kredit")
  19.  
  20.     menu_setprop(m, MPROP_EXIT, MEXIT_ALL)
  21.     menu_display(id, m)
  22. }
  23.  
  24. public weapon_shop_handler(id, menu, item)
  25. {
  26.     if(item == MENU_EXIT)
  27.     {
  28.         menu_destroy(menu)
  29.         bank_menu(id)
  30.         return PLUGIN_HANDLED
  31.     }
  32.  
  33.     new price
  34.     new weapon[32]
  35.  
  36.     switch(item)
  37.     {
  38.         case 0: { price = AK47_PRICE; copy(weapon,31,"weapon_ak47"); }
  39.         case 1: { price = M4A1_PRICE; copy(weapon,31,"weapon_m4a1"); }
  40.         case 2: { price = AWP_PRICE; copy(weapon,31,"weapon_awp"); }
  41.         case 3: { price = DEAGLE_PRICE; copy(weapon,31,"weapon_deagle"); }
  42.         case 4: { price = USP_PRICE; copy(weapon,31,"weapon_usp"); }
  43.         case 5: { price = HE_PRICE; copy(weapon,31,"weapon_hegrenade"); }
  44.         case 6: { price = FLASH_PRICE; copy(weapon,31,"weapon_flashbang"); }
  45.         case 7: { price = SMOKE_PRICE; copy(weapon,31,"weapon_smokegrenade"); }
  46.     }
  47.  
  48.     if(credits[id] < price)
  49.     {
  50.         client_print_color(id, print_team_default,"^4[Bank] ^1Nincs elég kredited!")
  51.         weapon_shop_menu(id)
  52.         menu_destroy(menu)
  53.         return PLUGIN_HANDLED
  54.     }
  55.  
  56.     credits[id] -= price
  57.     give_item(id, weapon)
  58.  
  59.    
  60.     switch(item)
  61.     {
  62.         case 0: cs_set_user_bpammo(id, CSW_AK47, 90)
  63.         case 1: cs_set_user_bpammo(id, CSW_M4A1, 90)
  64.         case 2: cs_set_user_bpammo(id, CSW_AWP, 30)
  65.         case 3: cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  66.         case 4: cs_set_user_bpammo(id, CSW_USP, 60)
  67.     }
  68.  
  69.     client_print_color(id, print_team_default,"^4[Bank]^1 Vásárlás sikeres! Maradt kredit:^3 %d", credits[id])
  70.  
  71.     menu_destroy(menu)
  72.     weapon_shop_menu(id)
  73.     return PLUGIN_HANDLED
  74. }


A chatből lemaradt, hogyha egy parancsot írok be azt se írja ki a chatre (hacsak ez nem szándékos volt a részedről, akkor ok)

  1. public vip_handler(id, menu, item)
  2. {
  3.     if(item == MENU_EXIT)
  4.     {
  5.         bank_menu(id)
  6.         return
  7.     }
  8.  
  9.     if(item == 0 && credits[id] >= VIP_MONTH_PRICE)
  10.     {
  11.         credits[id] -= VIP_MONTH_PRICE
  12.         vip_type[id] = 1
  13.         vip_expire[id] = get_systime() + VIP_MONTH_TIME
  14.         client_print_color(id, print_team_default, "^4[Bank]^1 1 hónapos VIP aktiválva!")
  15.     }
  16.     else if(item == 1 && credits[id] >= VIP_FOREVER_PRICE)
  17.     {
  18.         credits[id] -= VIP_FOREVER_PRICE
  19.         vip_type[id] = 2
  20.         vip_expire[id] = 0
  21.         client_print_color(id, print_team_default, "^4[Bank]^1 ÖRÖK VIP aktiválva!")
  22.     }
  23.     else
  24.     {
  25.         client_print_color(id, print_team_default, "^4[Bank]^1 Nincs elég kredit!")
  26.     }
  27. }

Ez kicsit problémás lehet, tekintettel arra hogyha örökös vipem van és veszek rá 1 hónapot véletlenül, akkor ment a kukába, valamint ha már van egy hónapom, akkor az egyszerűen csak felülírja az előzőt (az utóbbi inkább csak figyelmeztető, ha nem így akartad volna).

_________________
[TUT] Hatékony scriptelés

Zombie Mutation

Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája:
HozzászólásElküldve:Ma, 10:11 
Offline
Jómunkásember
Avatar

Csatlakozott:2019.11.03. 22:00
Hozzászólások:428
Megköszönt másnak: 40 alkalommal
Megköszönték neki: 33 alkalommal
DexoN írta:
A menük kilépésnél már jobbak, viszont:
- ha rámegyek egy menüpontra kilép és nem nyitja meg újra azt. Ez pl. fegyvervásárlásnál idegesítő lehet, én vennék egy AK-t, Deagle-t és valamilyen gránátot is egyszerre.
- a handlernél mindig menu_destroyt illetve return PLUGIN_HANDLED-et illik használni, hogy elkerüld a memóriaszivárgást és a felesleges hívásláncot, pl:
  1. public weapon_shop_menu(id)
  2. {
  3.     if(!is_user_alive(id))
  4.     {
  5.         client_print_color(id, print_team_default, "^4[Bank]^1 Halottként nem vásárolhatsz!")
  6.         return
  7.     }
  8.  
  9.     new m = menu_create("\yFEGYVER BOLT", "weapon_shop_handler")
  10.  
  11.     menu_additem(m, "AK47 \r~\y 300 kredit")
  12.     menu_additem(m, "M4A1 \r~\y 300 kredit")
  13.     menu_additem(m, "AWP \r~\y 500 kredit")
  14.     menu_additem(m, "Deagle \r~\y 200 kredit")
  15.     menu_additem(m, "USP \r~\y 150 kredit")
  16.     menu_additem(m, "HE Gránát \r~\y 100 kredit")
  17.     menu_additem(m, "Villanó \r~\y 80 kredit")
  18.     menu_additem(m, "Füst \r~\y 80 kredit")
  19.  
  20.     menu_setprop(m, MPROP_EXIT, MEXIT_ALL)
  21.     menu_display(id, m)
  22. }
  23.  
  24. public weapon_shop_handler(id, menu, item)
  25. {
  26.     if(item == MENU_EXIT)
  27.     {
  28.         menu_destroy(menu)
  29.         bank_menu(id)
  30.         return PLUGIN_HANDLED
  31.     }
  32.  
  33.     new price
  34.     new weapon[32]
  35.  
  36.     switch(item)
  37.     {
  38.         case 0: { price = AK47_PRICE; copy(weapon,31,"weapon_ak47"); }
  39.         case 1: { price = M4A1_PRICE; copy(weapon,31,"weapon_m4a1"); }
  40.         case 2: { price = AWP_PRICE; copy(weapon,31,"weapon_awp"); }
  41.         case 3: { price = DEAGLE_PRICE; copy(weapon,31,"weapon_deagle"); }
  42.         case 4: { price = USP_PRICE; copy(weapon,31,"weapon_usp"); }
  43.         case 5: { price = HE_PRICE; copy(weapon,31,"weapon_hegrenade"); }
  44.         case 6: { price = FLASH_PRICE; copy(weapon,31,"weapon_flashbang"); }
  45.         case 7: { price = SMOKE_PRICE; copy(weapon,31,"weapon_smokegrenade"); }
  46.     }
  47.  
  48.     if(credits[id] < price)
  49.     {
  50.         client_print_color(id, print_team_default,"^4[Bank] ^1Nincs elég kredited!")
  51.         weapon_shop_menu(id)
  52.         menu_destroy(menu)
  53.         return PLUGIN_HANDLED
  54.     }
  55.  
  56.     credits[id] -= price
  57.     give_item(id, weapon)
  58.  
  59.    
  60.     switch(item)
  61.     {
  62.         case 0: cs_set_user_bpammo(id, CSW_AK47, 90)
  63.         case 1: cs_set_user_bpammo(id, CSW_M4A1, 90)
  64.         case 2: cs_set_user_bpammo(id, CSW_AWP, 30)
  65.         case 3: cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  66.         case 4: cs_set_user_bpammo(id, CSW_USP, 60)
  67.     }
  68.  
  69.     client_print_color(id, print_team_default,"^4[Bank]^1 Vásárlás sikeres! Maradt kredit:^3 %d", credits[id])
  70.  
  71.     menu_destroy(menu)
  72.     weapon_shop_menu(id)
  73.     return PLUGIN_HANDLED
  74. }


A chatből lemaradt, hogyha egy parancsot írok be azt se írja ki a chatre (hacsak ez nem szándékos volt a részedről, akkor ok)

  1. public vip_handler(id, menu, item)
  2. {
  3.     if(item == MENU_EXIT)
  4.     {
  5.         bank_menu(id)
  6.         return
  7.     }
  8.  
  9.     if(item == 0 && credits[id] >= VIP_MONTH_PRICE)
  10.     {
  11.         credits[id] -= VIP_MONTH_PRICE
  12.         vip_type[id] = 1
  13.         vip_expire[id] = get_systime() + VIP_MONTH_TIME
  14.         client_print_color(id, print_team_default, "^4[Bank]^1 1 hónapos VIP aktiválva!")
  15.     }
  16.     else if(item == 1 && credits[id] >= VIP_FOREVER_PRICE)
  17.     {
  18.         credits[id] -= VIP_FOREVER_PRICE
  19.         vip_type[id] = 2
  20.         vip_expire[id] = 0
  21.         client_print_color(id, print_team_default, "^4[Bank]^1 ÖRÖK VIP aktiválva!")
  22.     }
  23.     else
  24.     {
  25.         client_print_color(id, print_team_default, "^4[Bank]^1 Nincs elég kredit!")
  26.     }
  27. }

Ez kicsit problémás lehet, tekintettel arra hogyha örökös vipem van és veszek rá 1 hónapot véletlenül, akkor ment a kukába, valamint ha már van egy hónapom, akkor az egyszerűen csak felülírja az előzőt (az utóbbi inkább csak figyelmeztető, ha nem így akartad volna).

Javítva!

_________________
~ bigbrotherz.hu
~ BiG BrotherZ AWP


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  [12 hozzászólás ]  OldalElőző12


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 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