Earth nature field

VIP rendszer quest alapú

Minden ami szerverkészítéshez tartozik (szerverfájlok, src, kliensek stb)
Válasz küldése
serverfan
Tapasztalt Harcos

Tapasztalt Harcos
Hozzászólások: 21
Csatlakozott: 2025.08.29. 17:27

VIP rendszer quest alapú

Hozzászólás Szerző: serverfan »

🌟 VIP Rendszer – Kilroy release (VIP questek + VIP itemek) – Részletes bemutató és telepítés
A Kilroy által készített VIP rendszer egy komplett megoldás Metin2 privát szerverekhez:
– VIP státusz a játékosoknak,
– VIP-hez kötött questek,
– VIP-only tárgyak és vizuális megkülönböztetés (emotikon/effekt).
Célja, hogy jutalmazd az aktív/támogató játékosokat, és extra tartalmat adj a közösségnek.

Letöltés:
[Please login or register to view this link]
  • VIP státusz – kijelölhető és visszavonható; akár időtartamhoz is köthető (pl. 30 nap).
  • VIP questek – csak VIP játékosok számára elérhető küldetések, jutalmak.
  • VIP itemek – külön tárgyak, amikkel VIP-be lehet lépni / VIP bónuszt lehet aktiválni.
  • Vizuális megkülönböztetés – a kliensben VIP emotikon/effekt, egyedi megjelenítés (pl. [VIP] tag a névben).
  • Közösségi/üzemeltetési előny – motiváció a támogatásra, stabilabb gazdaság, különleges események VIP-eknek.

🧰 Előkészületek
  • Biztonsági mentés a kliens és szerver fájlokról (root***, pack, quest, item_proto/mob_proto, adatbázis).
  • A csomagban található vip_pack.eix/epk és a kapcsolódó fájlok kéznél legyenek.
  • Szövegszerkesztő, ami mutatja a behúzásokat (TAB/space).
  • Figyelem: A Python fájlok végén legyen 1 üres sor, és ügyelj a TAB-okra (keveredés Python-hibát okoz!).

🖥 KLIENS oldali telepítés

1) root*** kicsomagolása
Csomagold ki a kliens root.*** állományait szerkesztéshez.

2) VIP csomag feltétele
Másold a vip_pack.eix/epk fájlokat a kliensed pack mappájába, majd vedd fel a pack/index állományba a meglévő sorok mintájára (különben nem tölti be a kliens).

3) VIP emotikon/effekt regisztrálása – playersettingmodule.py
Nyisd meg: root/playersettingmodule.py és keresd meg:

Kód: Egész kijelölése

net.RegisterEmoticonString("(fish)")
Alatta add hozzá:

Kód: Egész kijelölése

chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON + 18, "", EmoticonStr + "vip.mse")
net.RegisterEmoticonString("(vip)")
Megjegyzés: ha a +18 már foglalt, használj következő szabad számot (pl. +19/+20). Ezt a számot a továbbiakban VIP_EFFECT_NUM-ként fogjuk használni.

4) Kilépési parancs (opcionális) – game.py
Nyisd meg: root/game.py, keresd meg:

Kód: Egész kijelölése

def __ServerCommand_Build(self)
A parancslista végére illeszd be:

Kód: Egész kijelölése

"exit" : self.__exit,
Görgess a fájl legvégére és add hozzá:

Kód: Egész kijelölése

def __exit(self):
    app.Exit()
5) Állapotváltozók és OnUpdate – game.py
Keresd:

Kód: Egész kijelölése

def __init__(self, stream):
A függvény végére tedd:

Kód: Egész kijelölése

self.lastupdate = 0
self.lastupdatee = 0
Keresd:

Kód: Egész kijelölése

def OnUpdate(self):
Az app.UpdateGame() után illeszd:

Kód: Egész kijelölése

import player
findvip = player.GetName()
Maradva az OnUpdate-ben, keresd:

Kód: Egész kijelölése

self.interface.BUILD_OnUpdate()
Alá illeszd:

Kód: Egész kijelölése

if app.GetGlobalTimeStamp() - self.lastupdate < 0:
    self.lastupdate = app.GetGlobalTimeStamp()
if app.GetGlobalTimeStamp() - self.lastupdatee < 0:
    self.lastupdatee = app.GetGlobalTimeStamp()

# VIP névtag figyelés + időzített effekt
if findvip.find("[VIP]") != -1:
    if self.lastupdate == 0:
        self.lastupdate = app.GetGlobalTimeStamp()
    if app.GetGlobalTimeStamp() - self.lastupdate >= 5:
        self.lastupdate = app.GetGlobalTimeStamp()
        net.SendEmoticon(28)  # <- IDE írd a VIP_EFFECT_NUM értékét!
Fontos: A 28-at cseréld le a VIP_EFFECT_NUM számodra (amit a playersettingmodule.py-ben választottál).

6) Mentés és visszacsomagolás
Mentsd a módosításokat, ügyelj az 1 üres sorra a fájlok végén és a TAB-okra. Csomagold vissza a root.***-t, indítsd a klienst és tesztelj.


🗄 SZERVER oldali teendők (ajánlott keretrendszer)

1) Itemek – item_proto
  • Vedd fel a VIP-hez tartozó tárgyakat (pl. VIP Card, VIP Chest stb.) a item_proto-ba (server + client oldal).
  • Ütközést kerülj: ellenőrizd, hogy a felvett VNUM-ok nem foglaltak.
  • Kliens oldalon frissítsd a item_list-et és a szükséges ikon/mesh bejegyzéseket (ha a csomag hozza, használd onnan).
2) Quest(ek) – quest/
  • Tedd be a csomag VIP-hez tartozó questjeit a quest mappába.
  • Fordítás: qc <questnev.quest> vagy tömbösen qc.
  • reload q (vagy csatorna/servert restart) és ellenőrzés.
  • Ha a VIP státuszt item aktiválja: a quest when use item triggerrel állítsa be a VIP flaget/időtartamot.
3) NPC/regen
  • Ha VIP NPC szükséges (pl. VIP shop/átalakítás), vedd fel a mob_proto-ba, és helyezd el regen-ben vagy npc.txt-ben.
  • Kliens oldali mob_proto-t is frissítsd, ha új NPC-t hozol.
4) Jogosultság/ellenőrzés a questben
  • Minden VIP-only funkciónál ellenőrizd a státuszt (pl. pc.getqf("vip") == 1 vagy időbélyeg alapú vizsgálat).
  • VIP lejáratát kezeld (timestamp összevetés – ha lejárt, vedd el a jogot).
5) Tesztelés
  • Adj magadnak VIP itemet → használd/aktiváld → nézd, hogy a státusz és a vizuális jelzés is él-e.
  • VIP-only quest elérhető-e VIP-ként, és tiltott-e nem VIP-nek?
  • Szükség esetén logolj (syslog/syserr) – hibánál questből `syschat`/`say` segítséggel debuggolj.

🧪 Gyakori hibák és megoldások
  • VIP effekt nem fut: rossz vagy foglalt VIP_EFFECT_NUM; a vip.mse útvonala hibás; a vip_pack nincs indexelve.
  • Python hiba a kliensben: TAB/behúzás hiba vagy hiányzó üres sor a fájl végén. Nézd át editorral, ami mutatja a whitespace-t.
  • Quest nem fut: nem fordítottad le (qc); nincs reload q; rossz feltétel (pl. item VNUM).
  • Item nem látszik: item_proto (szerver és kliens) nincs szinkronban, hiányzik ikon/mesh, vagy VNUM ütközés.
  • VIP státusz „bentragad”: gondold át a lejárati logikát (timestamp), és írd vissza a státuszt rendszeresen.

💡 Használati ötletek
  • VIP Shop – csak VIP-ek láthatják/nyithatják (npc.open_shop előtt VIP ellenőrzés).
  • VIP Eventek – külön boss/raid/vadászat VIP-eknek.
  • VIP bónuszok – kíméletes, de érezhető előnyök (pl. +kis drop/exp, külön „teleport menü” VIP-nek).
  • VIP tag a névben – automatikus [VIP] prefix a névre (vizuális megkülönböztetés).
✅ Összefoglalva
A Kilroy-féle VIP rendszer egyszerre ad tartalmat és motivációt a játékosoknak. A kliens módosítás (emotikon/effekt), a VIP item/quest logika és az indexelés után azonnal használható.
Ha elakadsz, írj a témába – szívesen segít a közösség!
Válasz küldése