Questfehler dringendes Problem

10/12/2017 09:10 IzeBreakzz#1
Abend zusammen,

haben mit folgender Quest das Problem, dass die Quest nach dem abschließen nicht verschwindet.

Aufgabe abgeschlossen bleibt stehen und nach einem Relog kann man sie wieder abgeben.

Dieser Fehler kommt soweit ich sehe nur bei Kill quests. Bei Laufquests (von NPC zu NPC) kommt es nicht vor.

PHP Code:
quest auftrag_10_haendler begin
        state start begin
            
function checkStats()
                -- 
proudly fixed by .PolluX TeamQuantum
                
--  [MENTION=4257258]Benni[/MENTION]: lulululululu :P
                local count1 
pc.getqf("state1")
                
local count2 pc.getqf("state2")
                
                if 
count1 == 100 and count2 == 50 then 
                    
return true
                end
                
return false
            end
        end
        state start begin
                when login 
or levelup or enter with pc.get_level() >= 32 begin
                                set_state
(gemischt)
                
end

        end

        state gemischt begin
                when letter begin
                        send_letter
("Dringende bitte um Hilfe")
                        
local v=find_npc_by_vnum(9003)
                        if 
0==v then
                        
else
                                
target.vid("__TARGET__"v"Dringende bitte um Hilfe")
                        
end
                end
                when button 
or info begin
                    
----"123456789012345678901234567890123456789012345678901234567890"|
                        
say_title("Die Gemischtwarenhändlerin braucht Hilfe")
                        
say("")
                        
say("Suche die Gemischtwarenhändlerin auf.")
                        
say("")
                
end
                when __TARGET__
.target.click begin
                        target
.delete("__TARGET__")
                        
say_title("Gemischtwarenhändlerin:")
                        
say("")
                        
say("Hey, da bist du ja endlich!")
                        
say("Wir haben ein großes Problem!")
                        
say("")
            ----
"123456789012345678901234567890123456789012345678901234567890"|
                        
say("Seit die Spinnenkönigin tot ist laufen die Spinnen")
                        
say("Amok und bedrohen unsere Handels Wege.")
                        
wait()
                        
say_title("Gemischtwarenhändlerin:")
                        
say("")
                        ----
"123456789012345678901234567890123456789012345678901234567890"|
                        
say("So fehlen uns jetzt wichtige Waren die wir")
                        
say("dringend benötigen.")
                        
say("Du musst dich darum kümmern.")
                        
say("")
                        
say("Du wirst die Spinnen in der Wüste finden.")
                        
wait()
                        
say_title("Gemischtwarenhändlerin:")
                        
say("")
                        
say("Töte alle den sie stören den Handel.")
                        
say("")
                        
say_reward("Töte 100 Klauenspinnen")
                        
say_reward("Töte 50 Soldatenspinnen")
                        
set_state(Spinnen)
                        
pc.setqf("kill_count2",0)
                        
pc.setqf("kill_count",0)
                
end

        end
        state Spinnen begin
            when letter begin
                send_letter
("Spinnenplage")

                if 
auftrag_10_haendler.checkStats() == true then
                    say_title
("Du hast alle Gegner erledigt.")
                    
say("")
                    
say("Glückwunsch.")
                    
say("")
                    
set_state(fertig)
                
end
            end

            when info 
or button begin
                    say_title
("Spinnenplage")
                    
say("Jage und töte die Spinnen:")
                    
say_reward("Du hast schon "..pc.getqf("state1").." von 100 x Klauenspinnen getötet.")
                    
say_reward("Du hast schon "..pc.getqf("state2").." von 50 x Soldatenspinnen getötet")
            
end
        
            when 2004.kill begin
                local count1 
pc.getqf("state1") + 1
                
if count1 <= 100 then
                    pc
.setqf("state1"count1)
                    
q.set_counter("Klauenspinnen"count1)
                
end
                
if auftrag_10_haendler.checkStats() == true then
                    say_title
("Du hast alle Gegner erledigt.")
                    
say("")
                    
say("Glückwunsch.")
                    
say("")
                    
set_state(fertig)
                
end
            end
        
            when 2005.kill begin
                local count2 
pc.getqf("state2") + 1
                
if count2 <= 50 then
                    pc
.setqf("state2"count2)
                    
q.set_counter("Soldatenspinnen"count2)
                
end
                
if auftrag_10_haendler.checkStats() == true then
                    say_title
("Du hast alle Gegner erledigt.")
                    
say("")
                    
say("Glückwunsch.")
                    
say("")
                    
set_state(fertig)
                
end
            end
        end

        state fertig begin
            when letter begin
                local v
=find_npc_by_vnum(9003)
                if 
0==v then
                
else
                        
target.vid("__TARGET__"v"Aufgabe abgeschlossen")
                
end
            end
            when letter begin
                        send_letter
("Aufgabe abgeschlossen")
            
end
                when button 
or info begin
                    say_title
("Alle Spinnen getötet")
                    
say("")
                    
say("Du hast deine Aufgabe erfolgreich erfüllt.")
                    
say("Suche die Gemischtwarenhändlerin auf und")
                    
say("berichte ihr von deinem Erfolg.")
                    
say("")
                
end
                when __TARGET__
.target.click begin
                    target
.delete("__TARGET__")
                    
say_title("Gemischtwarenhändlerin:")
                    
say("")
                    ----
"123456789012345678901234567890123456789012345678901234567890"|
                    
say("Hey da bist du ja wieder."..pc.get_name()..".")
                    
say("")
                    
say("Wie man sieht hast du alle Spinnen getötet!")
                    
say("Ich empfehle dir nehme ein Bad du riechst ein wenig!")
                    
say("")
                    
wait()
                    
say_title("Gemischtwarenhändlerin:")
                    
say("")
                    ----
"123456789012345678901234567890123456789012345678901234567890"|
                    
say("Wir sind dir zu großem Dank verpflichtet.")
                    
say("")
                    
say("Schaue gerne mal wieder vorbei vielleicht lohnt")
                    
say("es sich ja mal für dich oder für mich.")
                    
say("")
                    
say("Natürlich habe ich noch")
                    
say("eine Belohnung für dich.")
                    
say("")
                    
wait()
                    
say_title("Gemischtwarenhändlerin:")
                    
say("")
                    ----
"123456789012345678901234567890123456789012345678901234567890"|
                    
say_title("Belohnung:")
                    
say("")
                    
say_reward("Du erhältst 1000 Ruf bei den Händlern.")
                    
say_reward("Du bekommst 100.000 Yang.")
                    
pc.change_money(100000)
                    
say("")
                    
mysql_query("UPDATE player.player SET RufHaendler = RufHaendler+1000 WHERE id ='"..pc.get_player_id().."'")
                    
send_client_stats()
                    
clear_letter()
                    
set_quest_state("auftrag_11_haendler""haendler11")
                    
set_state(__complete)
                
end
        end
        state __complete begin
        end
end 
Kann mir da jemand helfen?
10/12/2017 12:14 x_Core_x#2
Hast du die Quest selbst geschrieben?

Die questflags sind etwas unübersichtlich, müsste man sich mal genauer angucken, ob da ein Fehler ist, ansonsten ist mir nix aufgefallen.

€: Würde versuchen bei dem Abgeben der Quest noch ne Questflag mit reinzunehmen.
10/12/2017 14:39 IzeBreakzz#3
Teils, teils. Etwas abgeschaut etwas selbst geschrieben.

Werde mal probieren am Ende eine Questflag einzubauen. Schreibe hier noch mal wenns es geklappt hat, oder eben nicht. Aber Danke schon mal ;)
10/12/2017 16:32 andii#4
Für solche Themen, haben wir einen Sammelthread:
[Only registered and activated users can see links. Click Here To Register...]
10/12/2017 16:41 IzeBreakzz#5
Quote:
Originally Posted by αи∂ιι View Post
Für solche Themen, haben wir einen Sammelthread:
[Only registered and activated users can see links. Click Here To Register...]
Problem ist mittlerweile gelöst. Lag komsicher Weise and der questing bzw. der questlib.lua

Und ja weiß ich. Sorry dafür. Ich wollte es mla hier probieren, da dort keiner geantwortet hatte.

#kann geclosed werden
10/13/2017 20:28 Jinbei#6
#closed :)