Kako riješiti pogreške Metin2 Quest?
Vodič za ponovno učitavanje zadataka, nereagiranje NPC-a, pogreške u radu i probleme s kompilacijom zadataka.
Zadaci, NPC razgovori, sustavi događaja, biolog, teleportacija, tržište, praćenje šefova, dnevne nagrade i mnogi posebni sustavi na Metin2 poslužiteljima. potraga Radi preko datoteka. Stoga, čak i mala pogreška učinjena na strani misije može uzrokovati da NPC ne reagira, da se događaj ne pokrene ili da datoteka kanala syserr neprestano proizvodi pogreške.
Najveći problem s pogreškama u misiji je taj što se pogreška često čini općenitom, poput "NPC ne radi". Ali pravi razlog može biti pogrešan vnum, funkcija koja nedostaje, pokvarena sintaksa, pogrešna struktura stanja ili potraga koja se uopće ne kompajlira.
1. Gdje pronaći Quest datoteke?
Putanja Quest datoteka može se razlikovati ovisno o infrastrukturi poslužitelja. Često korišteni imenici su:
/usr/game/share/locale/turkey/quest/ /home/game/share/locale/turkey/quest/ /usr/metin2/share/locale/turkey/quest/
Datoteke zadataka obično su .potraga s produžetkom. Datoteke stvorene nakon kompilacije objekt Čuva se pod mapom.
2. Prvo provjerite kako biste razumjeli pogrešku potrage
Ako potraga ne radi, najprije treba provjeriti odgovarajuću datoteku kanala syserr.
cd /usr/game/channel1/core1 tail -n 100 syserr
Za gledanje pogrešaka uživo koje se javljaju nakon ponovnog učitavanja misije:
tail -f syserr
Primjeri uobičajenih pogrešaka u potrazi:
no such quest function attempt to call field syntax error unexpected symbol quest not found when condition error
3. Kako sastaviti Quest?
Kada dodate novu datoteku potrage, nije dovoljno samo baciti datoteku u mapu. Potragu je potrebno sastaviti.
Prvo unesite direktorij zadataka:
cd /usr/game/share/locale/turkey/quest
Primjer sastavljanja jedne misije:
./qc quest_adi.quest
QC put može biti drugačiji na nekim sustavima:
/usr/game/share/locale/turkey/quest/qc quest_adi.quest
Naziv skripte koji se koristi za sastavljanje svih zadataka razlikuje se ovisno o infrastrukturi. Primjer:
sh make.sh
4. Kako ponovno učitati Quest?
Nakon što je potraga sastavljena, može se ponovno učitati u igri s GM likom.
/reload q
U nekim slučajevima samo ponovno učitavanje nije dovoljno. Osobito ako su se struktura stanja, zastavica misije ili početni uvjeti promijenili, možda će biti potrebno ponovno unijeti lik ili ponovno pokrenuti kanal.
Opći redoslijed bi trebao biti sljedeći:
- Uredi datoteku potrage
- Provjerite sintaksu
- Kompajlirajte Quest datoteku s qc
- Izvršite /reload q u igri
- Provjerite Syserr
- Testirajte ponašanje NPC-a ili događaja
5. NPC Quest ne radi problem
Ako se ništa ne dogodi kada kliknete na NPC, treba provjeriti sljedeće točke:
- Je li NPC vnum korišten u misiji točan?
- Pojavljuju li se NPC-i stvarno na karti na strani poslužitelja?
- Je li Quest sastavljen?
- Je li se syserr pojavio nakon /reload q?
- Je li početak stanja potrage točan?
- Prestaje li se izvršavati kôd zbog pogrešnog stanja u Questu?
Primjer NPC strukture okidača:
quest ornek_npc begin
state start begin
when 20011.chat."Ornek Menu" begin
say_title("Ornek NPC")
say("Bu bir test mesajidir.")
end
end
endovdje 20011 NPC vnum vrijednost. Ako je NPC vnum netočan, zadatak neće raditi.
6. nema takve pogreške funkcije potrage
u Syserru nema takve funkcije potrage Ako se vidi, funkcija korištena u potrazi nije definirana na poslužitelju.
Razlozi:
- Potraga je preuzeta iz druge infrastrukture.
- Relevantna funkcija potrage nije dodana na strani izvora.
- Nedostaje pomoćna funkcija koja bi trebala biti u questlib.lua.
- Naziv funkcije je pogrešno napisan.
U ovom slučaju rješenje je provjeriti postoji li funkcija na poslužitelju. Zadatke preuzete iz drugih datoteka ne treba smatrati izravno kompatibilnima.
7. Pogreške u sintaksi potrage
Najčešće greške pri upisu u Quest datotekama su:
- kraj premalo ili prekomjerno korištenje
- Bez zatvaranja navodnika
- Pogrešno kada je napisan uvjet
- Korištenje turskih znakova ili loše kodiranje
- Korištenje funkcija preuzetih iz drugog sustava bez prilagodbe
Primjer neispravne strukture:
say("Merhaba oyuncu)Ispravna struktura:
say("Merhaba oyuncu")8. Problemi sa zastavicom zadataka
Neki zadaci drže oznaku na liku ili računu. Potraga ne počinje ili se može činiti da je dovršena zbog netočne vrijednosti zastavice.
Na primjer, ako je misija već završena, NPC možda više neće prikazati izbornik. U tom slučaju treba provjeriti relevantnu oznaku potrage.
Uobičajene greške
- Zaboravio sam staviti Quest datoteku u mapu i kompajlirati je
- Radi /reload q iako postoji greška kompilacije
- Pogrešna vrijednost NPC vnum
- Korištenje zadataka preuzetih iz drugih datoteka bez njihove prilagodbe
- Misleći da NPC ne radi bez provjere oznake misije
- Čini se da je potraga ispravna, ali ne radi jer je kodiranje oštećeno.
FAQ
Uradio sam /reload q, ali potraga nije uspjela, zašto?
Potraga možda uopće nije kompilirana, možda je dala pogrešku tijekom kompilacije ili možda nije vidljiva u playeru zbog stanja/stanja zastave.
Kliknem na NPC i meni se ne pojavi. Je li problem u NPC-u?
Ne uvijek. Čak i ako je NPC vnum točan, potraga možda neće biti sastavljena, pogrešno napisana ili pokrenuta zbog uvjeta.
Zašto zadatak koji sam primio s drugog poslužitelja daje pogrešku?
Budući da korištene funkcije, questlib struktura ili izvorne podrške možda neće biti dostupne u vašoj infrastrukturi.
Preporuke za sigurnost i rad
- Napravite sigurnosnu kopiju datoteke prije uređivanja Questa.
- Implementirajte velike promjene zadataka na poslužitelju uživo tijekom malog broja sati za igrače.
- Provjerite syserr nakon svake kompilacije misije.
- Obratite pozornost na turski karakter i izobličenja kodiranja.
- Napravite sigurnosnu kopiju prije masovnog brisanja operacija zastavica potrage koje se odnose na podatke igrača.
Ovaj članak je posebno pripremljen za PvPServer.