hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 175 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 174 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  [17 hozzászólás ]  OldalElőző12
Szerző Üzenet
 Hozzászólás témája:
HozzászólásElküldve:Tegnap, 06:44 
Offline
Fanatikus
Avatar

Csatlakozott:2020.05.14. 11:32
Hozzászólások:182
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:Tegnap, 10:11 
Offline
Jómunkásember
Avatar

Csatlakozott:2019.11.03. 22:00
Hozzászólások:430
Megköszönt másnak: 41 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ás témája:
HozzászólásElküldve:Ma, 15:49 
Offline
Nagyúr
Avatar

Csatlakozott:2019.08.20. 18:19
Hozzászólások:523
Megköszönt másnak: 256 alkalommal
Megköszönték neki: 48 alkalommal
norbee.16 írta:
[mod=norbee.16]Jóváhagyni nem fogom egyenlőre, de itt lesz az sma[


Talált hibák

1. Hiányzó include a színes chathez

A plugin használja a client_print_color függvényt, viszont nincs hozzá include fájl betöltve.
Ez fordítási hibát okozhat.

2. Hibás SQL CREATE TABLE lekérdezés

A tábla létrehozásánál túl sok escape karakter van használva a backtick (`) karakterek előtt.
Ez miatt a SQL lekérdezés hibás lehet, és a tábla nem biztos hogy létrejön.

3. SQL injection lehetőség

A SteamID közvetlenül kerül bele az SQL lekérdezésekbe escape nélkül.
Non-steam szerveren ez SQL injection lehetőséget jelenthet.

4. Hibás SteamID string kezelés

A get_user_authid függvény használatánál a charsmax paraméter nem megfelelően van használva, ami string kezelési hibákat okozhat.

5. SQL thread mentés miatt adatvesztés

A mentés SQL thread query-vel történik.
Ha egy játékos gyorsan kilép a szerverről, előfordulhat, hogy az adatmentés nem fut le, így a kredit vagy egyéb adatok elveszhetnek.

6. Loan rendszer logikai hiba

Az automatikus tartozás levonásnál, ha a játékosnak kevesebb kreditje van mint a tartozása, akkor a rendszer lenullázza a kreditjét és törli a teljes tartozást.
Ez azt eredményezi, hogy a játékos nem fizeti vissza teljesen a kölcsönt.

7. Weapon shop ellenőrzés hiánya

A fegyver bolt nem ellenőrzi, hogy a játékos már rendelkezik-e az adott fegyverrel.
Ez lehetővé teszi ugyanannak a fegyvernek a többszöri megvásárlását.

8. VIP rendszer nem ad tényleges VIP jogot

A plugin csak változóban tárolja a VIP státuszt (vip_type), de nem ad admin flaget.
Így a játékos nem kap valódi VIP jogosultságokat a szerveren.

9. Chat hook konfliktus

A plugin átveszi a say és say_team parancsokat, ami konfliktust okozhat más chat vagy admin pluginokkal.

10. Folyamatos HUD frissítés

A HUD minden játékosnak 5 másodpercenként frissül.
Nagyobb játékosszámnál ez felesleges terhelést jelenthet.

11. MySQL reconnect hiánya

Ha a MySQL kapcsolat megszakad, a plugin nem próbál újra csatlakozni, így az SQL funkciók leállhatnak.

Ha kell, segítek a plugin javításában

A plugint egy ingyenes AI (ChatGPT free verzió) generálta. Emiatt előfordulhatnak benne hibák vagy nem teljesen megfelelő megoldások. Az ilyen AI által írt kódok gyakran első ránézésre működnek, de tartalmazhatnak logikai hibákat, biztonsági problémákat vagy optimalizálási hiányosságokat.

Az AI nem mindig ismeri teljesen az AMX Mod X környezet sajátosságait, ezért például előfordulhat hibás SQL kezelés, hiányzó include fájlok, vagy olyan megoldások, amelyek nagyobb szervereken teljesítmény problémát okozhatnak.

Ezért a plugin inkább egy alap verziónak vagy kiindulási pontnak tekinthető, amit érdemes még átnézni és javítani használat előtt.

_________________
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, 16:07 
Offline
Jómunkásember
Avatar

Csatlakozott:2019.11.03. 22:00
Hozzászólások:430
Megköszönt másnak: 41 alkalommal
Megköszönték neki: 33 alkalommal
8mTNNe írta:
norbee.16 írta:
[mod=norbee.16]Jóváhagyni nem fogom egyenlőre, de itt lesz az sma[


Talált hibák

1. Hiányzó include a színes chathez

A plugin használja a client_print_color függvényt, viszont nincs hozzá include fájl betöltve.
Ez fordítási hibát okozhat.

2. Hibás SQL CREATE TABLE lekérdezés

A tábla létrehozásánál túl sok escape karakter van használva a backtick (`) karakterek előtt.
Ez miatt a SQL lekérdezés hibás lehet, és a tábla nem biztos hogy létrejön.

3. SQL injection lehetőség

A SteamID közvetlenül kerül bele az SQL lekérdezésekbe escape nélkül.
Non-steam szerveren ez SQL injection lehetőséget jelenthet.

4. Hibás SteamID string kezelés

A get_user_authid függvény használatánál a charsmax paraméter nem megfelelően van használva, ami string kezelési hibákat okozhat.

5. SQL thread mentés miatt adatvesztés

A mentés SQL thread query-vel történik.
Ha egy játékos gyorsan kilép a szerverről, előfordulhat, hogy az adatmentés nem fut le, így a kredit vagy egyéb adatok elveszhetnek.

6. Loan rendszer logikai hiba

Az automatikus tartozás levonásnál, ha a játékosnak kevesebb kreditje van mint a tartozása, akkor a rendszer lenullázza a kreditjét és törli a teljes tartozást.
Ez azt eredményezi, hogy a játékos nem fizeti vissza teljesen a kölcsönt.

7. Weapon shop ellenőrzés hiánya

A fegyver bolt nem ellenőrzi, hogy a játékos már rendelkezik-e az adott fegyverrel.
Ez lehetővé teszi ugyanannak a fegyvernek a többszöri megvásárlását.

8. VIP rendszer nem ad tényleges VIP jogot

A plugin csak változóban tárolja a VIP státuszt (vip_type), de nem ad admin flaget.
Így a játékos nem kap valódi VIP jogosultságokat a szerveren.

9. Chat hook konfliktus

A plugin átveszi a say és say_team parancsokat, ami konfliktust okozhat más chat vagy admin pluginokkal.

10. Folyamatos HUD frissítés

A HUD minden játékosnak 5 másodpercenként frissül.
Nagyobb játékosszámnál ez felesleges terhelést jelenthet.

11. MySQL reconnect hiánya

Ha a MySQL kapcsolat megszakad, a plugin nem próbál újra csatlakozni, így az SQL funkciók leállhatnak.

Ha kell, segítek a plugin javításában

A plugint egy ingyenes AI (ChatGPT free verzió) generálta. Emiatt előfordulhatnak benne hibák vagy nem teljesen megfelelő megoldások. Az ilyen AI által írt kódok gyakran első ránézésre működnek, de tartalmazhatnak logikai hibákat, biztonsági problémákat vagy optimalizálási hiányosságokat.

Az AI nem mindig ismeri teljesen az AMX Mod X környezet sajátosságait, ezért például előfordulhat hibás SQL kezelés, hiányzó include fájlok, vagy olyan megoldások, amelyek nagyobb szervereken teljesítmény problémát okozhatnak.

Ezért a plugin inkább egy alap verziónak vagy kiindulási pontnak tekinthető, amit érdemes még átnézni és javítani használat előtt.

Na ezt legalább AI-generálta ezt a szöveget ugye?

_________________
~ bigbrotherz.hu
~ BiG BrotherZ AWP


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája:
HozzászólásElküldve:Ma, 16:09 
Offline
Nagyúr
Avatar

Csatlakozott:2019.08.20. 18:19
Hozzászólások:523
Megköszönt másnak: 256 alkalommal
Megköszönték neki: 48 alkalommal
Csabika20034 írta:
Na ezt legalább AI-generálta ezt a szöveget ugye?


Igen! Annyira AI generálta mint a te saját írású pluginjaid!

_________________
Kép


A hozzászólást 2 alkalommal szerkesztették, utoljára 8mTNNe 2026.03.15. 16:13-kor.

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

Csatlakozott:2019.11.03. 22:00
Hozzászólások:430
Megköszönt másnak: 41 alkalommal
Megköszönték neki: 33 alkalommal
8mTNNe írta:
Csabika20034 írta:
Na ezt legalább AI-generálta ezt a szöveget ugye?


Igen! Annyira AI generálta mint a te saját írású pluginjaid!

BOHÓC VAGY

_________________
~ bigbrotherz.hu
~ BiG BrotherZ AWP


A hozzászólást 1 alkalommal szerkesztették, utoljára Csabika20034 2026.03.15. 16:14-kor.

Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája:
HozzászólásElküldve:Ma, 16:13 
Offline
Nagyúr
Avatar

Csatlakozott:2019.08.20. 18:19
Hozzászólások:523
Megköszönt másnak: 256 alkalommal
Megköszönték neki: 48 alkalommal
Csabika20034 írta:
8mTNNe írta:
Csabika20034 írta:
Na ezt legalább AI-generálta ezt a szöveget ugye?


Igen! Annyira AI generálta mint a te saját írású pluginjaid!

BOHÓC VAGY


Hát jó. legyen így. :lol:
BoHóC

_________________
Kép


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  [17 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