Hur löser man Metin2 Quest-fel?
Guide för omladdning av uppdrag, att NPC inte svarar, funktionsfel och problem med uppdragskompilering.
Uppdrag, NPC-konversationer, händelsesystem, biolog, teleportering, marknad, chefsspårning, dagliga belöningar och många specialsystem på Metin2-servrar. uppdrag Det fungerar genom filer. Därför kan även ett litet misstag som görs på uppdragssidan göra att NPC inte reagerar, händelsen inte startar eller att kanalsyserr-filen ständigt producerar fel.
Det största problemet med uppdragsfel är att felet ofta verkar allmänt, till exempel "NPC fungerar inte". Men den verkliga orsaken kan vara fel vnum, saknad funktion, trasig syntax, felaktig tillståndsstruktur eller att uppdraget inte kompileras alls.
1. Var hittar jag Quest-filer?
Sökvägen till Quest-filer kan variera beroende på serverns infrastruktur. Vanligt använda kataloger är:
/usr/game/share/locale/turkey/quest/ /home/game/share/locale/turkey/quest/ /usr/metin2/share/locale/turkey/quest/
Quest-filer är vanligtvis .quest med förlängning. Filer skapade efter kompilering objekt Den förvaras under mappen.
2. Kontrollera först för att förstå Quest Error
Om ett uppdrag inte fungerar bör den relevanta kanalsyserr-filen kontrolleras först.
cd /usr/game/channel1/core1 tail -n 100 syserr
Så här tittar du på livefel som uppstår efter att du har laddat om uppdraget:
tail -f syserr
Vanliga quest-exempel:
no such quest function attempt to call field syntax error unexpected symbol quest not found when condition error
3. Hur kompilerar man Quest?
När du lägger till en ny uppdragsfil räcker det inte att bara slänga filen i mappen. Uppdraget måste kompileras.
Ange först uppdragskatalogen:
cd /usr/game/share/locale/turkey/quest
Exempel för att kompilera ett enskilt uppdrag:
./qc quest_adi.quest
qc-sökvägen kan vara annorlunda på vissa system:
/usr/game/share/locale/turkey/quest/qc quest_adi.quest
Skriptnamnet som används för att kompilera alla uppdrag varierar beroende på infrastrukturen. Exempel:
sh make.sh
4. Hur laddar jag om Quest?
Efter att uppdraget har kompilerats kan det laddas om i spelet med en GM-karaktär.
/reload q
I vissa fall räcker det inte att bara ladda om. Speciellt om tillståndsstrukturen, uppdragsflaggan eller startvillkoren har ändrats, kan det vara nödvändigt att skriva in karaktären igen eller starta om kanalen.
Den allmänna ordningen bör vara följande:
- Redigera uppdragsfil
- Kontrollera syntaxen
- Kompilera Quest-fil med qc
- Kör / ladda om q i spelet
- Kolla in Syserr
- Testa NPC- eller händelsebeteende
5. NPC Quest fungerar inte Problem
Om inget händer när du klickar på NPC, bör följande punkter kontrolleras:
- Är NPC-vnummet som används i uppdraget korrekt?
- Spawnar NPC:er verkligen på kartan på serversidan?
- Är Quest kompilerad?
- Uppstod syserr efter /reload q?
- Är början av uppdraget korrekt?
- Slutar koden att köras på grund av fel tillstånd i Quest?
Exempel på NPC-triggerstruktur:
quest ornek_npc begin
state start begin
when 20011.chat."Ornek Menu" begin
say_title("Ornek NPC")
say("Bu bir test mesajidir.")
end
end
endhär 20011 NPC vnum-värde. Om NPC vnum är felaktigt kommer uppdraget inte att fungera.
6. inget sådant uppdragsfunktionsfel
i Syserr ingen sådan uppdragsfunktion Om den visas är funktionen som används i uppdraget inte definierad på servern.
Orsaker:
- Quest är hämtat från en annan infrastruktur.
- Den relevanta uppdragsfunktionen läggs inte till på källsidan.
- Hjälpfunktionen som borde finnas i questlib.lua saknas.
- Funktionsnamnet är felstavat.
I det här fallet är lösningen att kontrollera om funktionen faktiskt finns på servern. Uppdrag hämtade från andra filer bör inte anses vara direkt kompatibla.
7. Quest-syntaxfel
De vanligaste stavfelen i Quest-filer är:
- slut under- eller överanvändning
- Inte avslutande citattecken
- Fel när skick skrevs
- Använder turkiska tecken eller dålig kodning
- Använda funktioner hämtade från ett annat system utan anpassning
Exempel på felaktig struktur:
say("Merhaba oyuncu)Rätt struktur:
say("Merhaba oyuncu")8. Quest Flag Problem
Vissa uppdrag har en flagga på karaktären eller kontot. Uppdraget startar inte eller kan se ut att vara avslutat på grund av felaktigt flaggvärde.
Till exempel, om ett uppdrag redan har slutförts, kanske NPC inte visar menyn igen. I detta fall bör den relevanta uppdragsflaggan kontrolleras.
Vanliga misstag
- Glömde att lägga Quest-filen i en mapp och kompilera den
- Gör /reload q trots att det finns ett kompileringsfel
- Fel NPC vnum-värde
- Använda uppdrag hämtade från andra filer utan att anpassa dem
- Tänker att en NPC inte fungerar utan att kolla questflaggan
- Uppdraget verkar vara korrekt men fungerar inte eftersom kodningen är skadad.
FAQ
Jag /laddade om q men uppdraget fungerade inte, varför?
Uppdraget kanske inte har kompilerats alls, det kan ha gett ett fel under kompileringen, eller så är det kanske inte synligt i spelaren på grund av tillståndet/flaggan.
Jag klickar på NPC och menyn visas inte. Är problemet med NPC?
Inte alltid. Även om NPC vnum är korrekt, kanske uppdraget inte kompileras, skrivet felaktigt eller körs på grund av ett tillstånd.
Varför ger uppdraget jag fick från en annan server ett fel?
Eftersom funktionerna som används, kanske inte stöd för questlib-struktur eller källkod är tillgängliga i din infrastruktur.
Säkerhets- och driftsrekommendationer
- Gör en säkerhetskopia av filen innan du redigerar Quest.
- Implementera stora uppdragsförändringar på liveservern under låga spelartimmar.
- Kontrollera syserr efter varje uppdragskompilering.
- Var uppmärksam på turkiska tecken och kodningsförvrängningar.
- Ta en säkerhetskopia innan du massraderar uppdragsflagga operationer relaterade till spelardata.
Den här artikeln är speciellt förberedd för PvPServer.