hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2026.01.23. 14:01



Jelenlévő felhasználók

Jelenleg 316 felhasználó van jelen :: 4 regisztrált, 0 rejtett és 312 vendég

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

Regisztrált felhasználók: Baidu [Spider], Bing [Bot], Google [Bot], saxxoaz 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  [2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: beraktam egy plugint ami nem müködik .
HozzászólásElküldve:2026.01.17. 18:38 
Offline
Újonc

Csatlakozott:2026.01.17. 18:30
Hozzászólások:1
Megköszönt másnak: 1 alkalommal
Üdv.
teszteltem BOT felhasználásával és saját magammal(egyszerre 2 cst inditottam(identiti csere)
nem számol hiába ölök . pontot.)
viewtopic.php?f=29&t=26693&p=191098&hilit=deathrun#p191098
pedig az van irva cxsak mentest kell hozzá írni.. nem írtam hozzá, mivel elsőnek is érdekelne , hogy megy e. Segítenétek a hiba megfejtésében öléskor miért nem ad pontot vagy más egyebet? Köszönöm előre.





módot csatoltam.


Csatolmányok:
drmodes.sma [71.66KiB]
Letöltve 7 alkalommal.
Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája:
HozzászólásElküldve:2026.01.19. 15:24 
Offline
Senior Tag
Avatar

Csatlakozott:2017.08.09. 17:01
Hozzászólások:270
Megköszönt másnak: 63 alkalommal
Megköszönték neki: 77 alkalommal
Szia!
Jujj, de régen voltam már ezen az oldalon :lol:

Több logikai hiba is van a pontrendszer (public Halal) részben, ami miatt nem úgy számol, ahogy azt az ember elvárná.

Kezdeném az elején.

Első probléma

  1. if(tamado != aldozat)
  2. oles[tamado] ++
  3. ezust[tamado] += 3
  4. elet[tamado] ++


Ez eleve hibás, mert ilyen lehetőség nincs Pawnban.
Ez a kód valójában azt jelenti, hogy suicide / worldspawn / bot esetén is ad pontot.

Tehát a valóságban így fut le:

  1. if(tamado != aldozat)
  2. oles[tamado]++
  3.  
  4. ezust[tamado] += 3
  5. elet[tamado]++


Ez nyilván teljesen felborítja a logikát.

Helyes megoldás szerintem ez:

  1. if (tamado == 0 || tamado == aldozat)
  2. return PLUGIN_CONTINUE
  3.  
  4. if (!is_user_connected(tamado))
  5. return PLUGIN_CONTINUE
  6.  
  7. oles[tamado]++
  8. ezust[tamado] += 3
  9. elet[tamado]++


Második probléma – szintlépés (matematikailag hibás)

  1. xp[tamado] += 3
  2. if(xp[tamado] == 100)
  3. {
  4. xp[tamado] = 0
  5. szint[tamado]++
  6. }


Mivel az XP nem 1-esével nő (3, 4, 5 stb.), ezért az XP értéke szinte soha nem lesz pontosan 100, így nem történik szintlépés.

Helyes megoldás:

  1. xp[tamado] += 3
  2.  
  3. while (xp[tamado] >= 100)
  4. {
  5. xp[tamado] -= 100
  6. szint[tamado]++
  7. }


Harmadik probléma – BOT kezelés

BOT-oknál gyakran előfordul, hogy a támadó értéke 0.
Ha ezt nem kezeled, akkor BOT esetén nem fog számolni semmit.

Megoldás:

  1. if (tamado == 0)
  2. return PLUGIN_CONTINUE


Negyedik probléma – random_float

A random_float() többször egymás után van meghívva, ami nem egyenletes esélyeket ad.

Helyes megoldás:

  1. new r = random_num(1,100)
  2.  
  3. if (r <= 5) dobozt_kap(tamado)
  4. else if (r <= 10) dollart_kap(tamado)
  5. else if (r <= 15) gyemantot_kap(tamado)
  6. else if (r <= 20) bambuszt_kap(tamado)
  7. else if (r <= 25) tokot_kap(tamado)
  8. else if (r <= 30) hogolyot_kap(tamado)


Ötödik probléma – ADMIN ellenőrzés

  1. if(vasarolt[id] == 3 && ADMIN)


Ez a feltétel hibás, mert az ADMIN egy konstans, nem flag ellenőrzés.

Helyes megoldás:

  1. if (vasarolt[id] == 3 && (get_user_flags(id) & ADMIN))


Ha sok az olvasni való, és lusta vagy --->
  1. public Halal()
  2. {
  3.     new tamado = read_data(1)
  4.     new aldozat = read_data(2)
  5.  
  6.     if (tamado == 0 || tamado == aldozat)
  7.         return PLUGIN_CONTINUE
  8.  
  9.     if (!is_user_connected(tamado))
  10.         return PLUGIN_CONTINUE
  11.  
  12.     oles[tamado]++
  13.     ezust[tamado] += 3
  14.     elet[tamado]++
  15.  
  16.     if (vippont[tamado])
  17.     {
  18.         ezust[tamado] += 2
  19.         xp[tamado] += 1
  20.     }
  21.  
  22.     if (vasarolt[tamado] == 3)
  23.     {
  24.         ezust[tamado] += 4
  25.         xp[tamado] += 4
  26.     }
  27.  
  28.     xp[tamado] += 3
  29.  
  30.     while (xp[tamado] >= 100)
  31.     {
  32.         xp[tamado] -= 100
  33.         szint[tamado]++
  34.     }
  35.  
  36.     new r = random_num(1,100)
  37.  
  38.     if (r <= 5) dobozt_kap(tamado)
  39.     else if (r <= 10) dollart_kap(tamado)
  40.     else if (r <= 15) gyemantot_kap(tamado)
  41.     else if (r <= 20) bambuszt_kap(tamado)
  42.     else if (r <= 25) tokot_kap(tamado)
  43.     else if (r <= 30) hogolyot_kap(tamado)
  44.  
  45.     return PLUGIN_CONTINUE
  46. }

_________________
"Szeretek aludni... mert az álmaim szebbek, mint a valóság."

Ők köszönték meg HellEnergY nek ezt a hozzászólást: ZOR (2026.01.20. 14:49)
  Népszerűség: 2.27%


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  [2 hozzászólás ] 


Ki van itt

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