[SERVICE] Die Questkontrolle

07/25/2011 12:02 .Metz#2866
Quote:
quest militaergaul begin
state start begin
when 30024.use begin
say_title("Pferdeschwanz:")
say("Hiermit bekommst du ein Militärpferd")
say("Dieser Vorgang kann nicht Rückgängig gemacht werden.")
local s = select("Benutzen!", "Lieber nicht!")

if s == 1 then
if pc.count_item(30024) >= 1 then
pc.removeitem("30024", 1)
pc.give_item2("50053", 1)
horse.set_level(21)
end
end
end
end
Kriege einen Fehler, habe in locale_list eingetragen, in den Quest Ordner --> 777 Rechte.

Was ist fail?
07/25/2011 12:28 .Delta#2867
PHP Code:
quest militaergaul begin
    state start begin
        when 30024.
use begin
            say_title
("Pferdeschwanz:")
            
say("Hiermit bekommst du ein Militärpferd")
            
say("Dieser Vorgang kann nicht Rückgängig gemacht werden.")
            
local s select("Benutzen!""Lieber nicht!")
            if 
== 1 then
                
if pc.count_item(30024) >= 1 then
                    pc
.removeitem(300241)
                    
pc.give_item2(500531)
                    
horse.set_level(21)
                
end
            
else
                return
            
end
        end
    end
end 
ein end hat gefehlt ;)
07/25/2011 14:30 'oShet#2868
man bekommt kein reward (sry hab deutsch word vergessen xD)

Quote:
quest subquest_34 begin
state start begin
when login or levelup or enter with pc.get_level() >=75 begin
set_state( information )
end
end

state information begin
when letter begin

local v = find_npc_by_vnum(20355)

if v != 0 then
target.vid("__TARGET__", v, "Waechter")
end
end


when __TARGET__.target.click or
20355.chat."Schwarzwind Clan" with pc.level >= 75 begin
target.delete("__TARGET__")

say("Hauptmann:")
say("Aloa,")
say("Ich habe eine neue")
say("Idee gegen den Schwarzwind Clan.")
say("Bitte Töte ")
say(""..mob_name(454)..", "..mob_name(455).." und "..mob_name(456).."")
say("")
wait()
say("Hauptmann:")
say("Ich glaube")
say("Die Anführer des Schwarzind Clan")
say("sind "..mob_name(454)..", "..mob_name(455).." und"..mob_name(456)..".")
say("Deshalb müssen sie sterben.")
say("Die Sicherheit des Dorfes")
say("hängt davon ab.")
say("")
say("")
local s=select("Ich mach es sofort.","Wayne?")
if 2==s then
say("Quest beenden?")
local a=select("Ja","Nein")
if 2==a then
say("Hauptmann:")
say("Melde dich wenn du Zeit hast.")
say("")
return
end
say("Hauptmann:")
say("Verräter!")
say("")
set_state(__GIVEUP__)
return
end
say("Hauptmann:")
say("Ich wünsche dir")
say("Viel Erfolg.")
say("")
say("")
set_state(bye_blackwind)
end
end
state bye_blackwind begin
when letter begin
send_letter("Tot dem Schwarzwind Clan")
end

when info or button begin
say(locale.NOTICE_COLOR.."Tot dem Schwarzwind Clan"..locale.NORMAL_COLOR)
say("Der Hauptmann hat dich gebeten")
say(""..mob_name(454)..", "..mob_name(455).." und "..mob_name(456).."")
say("zu töten.")

end
when 20355.chat."Schwarzwind Clan" with pc.level >=32 begin
say("Noch hier?")
local s=select("Ich bin auf dem Weg","Kla ich mach es nicht.")
if 2==s then
say("Quest beenden?")
local a=select("Ja","Nein")
if 2==a then
say("Hauptmann:")
say("Melde dich wenn du Zeit hast.")
say("")
return
end
say("Hauptmann:")
say("Verräter!")
say("")
set_state(__GIVEUP__)
return
end
say("Hauptmann:")
say("Ich wünsche dir")
say("Viel Erfolg.")
say("")
say("")
end


when 454.kill begin
pc.setqf("kill_m1",1)

if pc.getqf("kill_m1")==1 and pc.getqf("kill_m2")==1 and pc.getqf("kill_m3")==1 then
set_state(hunt_reward)
end
return
end
when 455.kill begin
pc.setqf("kill_m2",1)

if pc.getqf("kill_m1")==1 and pc.getqf("kill_m2")==1 and pc.getqf("kill_m3")==1 then
set_state(hunt_reward)
end
return

end

when 456.kill begin
pc.setqf("kill_m3",1)

if pc.getqf("kill_m1")==1 and pc.getqf("kill_m2")==1 and pc.getqf("kill_m3")==1 then
set_state(hunt_reward)
end
return

end


end

state hunt_reward begin
when letter begin
setskin(NOWINDOW)
makequestbutton("Rückkehr zum Hauptmann")
q.set_title("Rückkehr zum Hauptmann")
q.start()

local v = find_npc_by_vnum(20355)

if v != 0 then
target.vid("__TARGET__", v, "Waechter")
end
end

when info or button begin
say(locale.NOTICE_COLOR.."Rückkehr zum Hauptmann"..locale.NORMAL_COLOR)
say("Du hast die Anführer getötet.")
say("Sage es dem Hauptmann.")
say("")
end

when __TARGET__.target.click or
20355.chat."Die Anführer" begin
target.delete("__TARGET__")
say("Hauptmann:")
say("Gut gemacht.")
say("Dank dir ist das Dorf")
say("vorerst in Sicherheit.")
say("Deine Belohnung!")
say("")
say_reward("Du erhälst " ..item_name(70024).."")
pc.give_item2(70024, 1)
say_reward("Du erhältst 10.000.000 Ehrfahrung.")
pc.give_exp2(10000000)
set_quest_state("levelup","run")
say_reward("Du erhältst 100.000.000 Yang.")
pc.change_money(100000000)
say_reward("Du erhältst eine Gegenangriffsstrategie.")
pc.give_item2(70031, 1)
say_reward("Du erhältst eine Pferdemedaille.")
pc.give_item2(50050, 1)

set_state(THEEND)
clear_letter()

pc.setqf("kill_m1",0)
pc.setqf("kill_m2",0)
pc.setqf("kill_m3",0)
end

end
state __GIVEUP__ begin
end
state THEEND begin
end
end
07/25/2011 15:02 Zwawo#2869
Hm...wieso kann nicht alles so laufen wie man es sich vorstellt..
Hier ein Ausschnitt meiner quest
PHP Code:
        when ueberleben3.timer begin
                mob
.spawn(2413,112,105,1)
                
mob.spawn(2413,124,103,1)
                
mob.spawn(2413,140,107,1)
                
mob.spawn(2413,141,130,1)
                
mob.spawn(2413,123,147,1)
                
mob.spawn(2413,104,146,1)
                
mob.spawn(2413,100,127,1)
                
mob.spawn(2413,102,116,1)
        
end
        when 2413.kill with pc
.get_map_index()==199 begin
                game
.set_event_flag("killen2"game.get_event_flag("killen2")+1)
                
local count2 game.get_event_flag("killen2")
            if 
count2 7 then 
                timer
("ueberleben4"5)
                
notice_all("Runde 4 geschafft. Die nächste Runde startet nun.")
                
game.set_event_flag("killen2"0)
            
end
        end 
nur handelt die quest table nach Lust und Laune: Ich kille 8 von den mobs und in der quest table steht manchmal 4 manchmal 5(zählt also nicht richtig)... wenn es dann i.wann über 7 also 8 wie es sein sollte passiert nix, erst wenns dann 9 - 10 sind..
was mach ich falsch?
07/25/2011 16:42 metinbob09#2870
PHP Code:
quest give_basic_weapon begin
    state start begin
        when 20011.chat
."Teleportieren" begin
            say_title
("Uriel")
            
say("")
            
say("Es gibt Gebiete die viel")
            
say("stärker von den Metinsteinen")
            
say("befallen. Und in anderen Ländern")
            
say("warten noch viel dunklere Geheimnisse")
            
say("auf dich.")
            
say("Überlebe oder sterbe!")
            
say("")
            
say_reward("Möchtest du teleportiert werden?")
            
local s2=select("Ja bitte.","Nein ich möchte hier bleiben.")
            
            if 
s2 == 1 then
                local s7
=select("Eisgipfel","Land der Brutalen","Zermonie der Esotheriker","Tal von Askaria","Wüsteninsel","Steinkeise","Nein, lieber nicht.")
                    
                if 
s7 == 1 then
                    pc
.warp(19400,10400)
                    
                if 
s7 == 2 then
                    pc
.warp(19400,10400)
                    
                if 
s7 == 3 then
                    pc
.warp(19400,10400)    
                    
                if 
s7 == 4 then
                    pc
.warp(19400,10400)

                if 
s7 == 5 then
                    pc
.warp(19400,10400)    
                    
                if 
s7 == 6 then
                    pc
.warp(19400,10400)
                    
                else
                    return
            else
                return
                
                
end
            end
        end
    end
end 
Es kommt immer Fehler wenn ich make.sh aus führe.
was ist an der quest falsch so ähnlich wo man nur zu einer map porten konnte geht.
07/25/2011 16:58 Zwawo#2871
ggf. noch den questnamen in der 1. Zeile ändern
PHP Code:
quest give_basic_weapon begin
    state start begin
        when 20011.chat
."Teleportieren" begin
            say_title
("Uriel")
            
say("")
            
say("Es gibt Gebiete die viel")
            
say("stärker von den Metinsteinen")
            
say("befallen. Und in anderen Ländern")
            
say("warten noch viel dunklere Geheimnisse")
            
say("auf dich.")
            
say("Überlebe oder sterbe!")
            
say("")
            
say_reward("Möchtest du teleportiert werden?")
            
local s2 select("Ja bitte.""Nein ich möchte hier bleiben.")
            
            if 
s2 == 1 then
                local s7 
select("Eisgipfel""Land der Brutalen""Zermonie der Esotheriker""Tal von Askaria""Wüsteninsel""Steinkeise""Nein, lieber nicht.")
                    
                if 
s7 == 1 then
                    pc
.warp(19400,10400)
                    
                elseif 
s7 == 2 then
                    pc
.warp(19400,10400)
                    
                elseif 
s7 == 3 then
                    pc
.warp(19400,10400)    
                    
                elseif 
s7 == 4 then
                    pc
.warp(19400,10400)

                elseif 
s7 == 5 then
                    pc
.warp(19400,10400)    
                    
                elseif 
s7 == 6 then
                    pc
.warp(19400,10400)
                    
                else
                    return
                
end
            
else
                return
            
end
        end
    end
end 
07/25/2011 17:08 Deathmachinex3#2872
hab das gleiche problem wie Silfro95.
habe auch die quest und man erhält keine belohnung. finde den fehler aber nicht. =S
nochmal die quest:

PHP Code:
--------------------------------------------
--
SUB quest
--LV 48
--¦Ñ®üµsªºªvÀøÃÄ
--------------------------------------------
quest subquest_21 begin
    state start begin
        when login 
or levelup with pc.level >= 48 and pc.level <= 99 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            local v
=find_npc_by_vnum(20020)
            if 
0==v then
            
else
                
target.vid("__TARGET__"v" ¦Ñ®üµs?")
            
end
        end

        when __TARGET__
.target.click or
            
20020.chat."Hilf mir"  begin
            target
.delete("__TARGET__")
            
say("Balso:")
            
say("Hallo Fremder")
            
say("Alle hier im Dorf haben")
            
say("mich verstoßen.")
            
say("Sie glauben das ich einmal")
            
say("was mit Ariyoung hatte.")
            
say("Doch das stimmt nicht.")
            
say("")
            
say("")
            
wait()
            
say("Balso:")
            
say("Ich bin leider sehr Krank")
            
say("und keiner möchte mir helfen.")
            
say("Ich war neulich auf ")
            
say("Berg Sohan und habe mich")
            
say("Infiziert.")
            
say("¦Aber ich habe von einem")
            
say("Gegenmittel gehört.")
            
say("Töte "..mob_name(933).." nur sie besitzten")
            
say("das Heilmittel.")
            
say(""
            
say("")
            
local s=select("Ja, ich mach es.","Geh selber!!!")
            if 
2==s then
                say
("Quest beenden?")
                
local a=select("Ja","Nein")
                if 
2==a then
                    say
("Balso:")
                    
say("Danke.")
                    
say("Komm wieder sobald")
                    
say("du Zeit hast für mich.")
                    
say("")
                    return
                
end
                say
("Balso:")
                
say("Du bist so ein NOOB")
                
set_state(__GIVEUP__)
                return
            
end
            say
("Balso:")
            
say("Danke.")
            
say("")
            
say("")
            
set_state(accept_request)


            
end

        end


    state accept_request begin

        when letter begin
            send_letter
("Heilmittel für Balso")
            
            if 
pc.count_item("30114")>0 then
                local v
=find_npc_by_vnum(20020)
                if 
0!= v then
                    target
.vid("__TARGET__",v,"¥h§ä¦Ñ®üµs")
                
end 
            end

        end        
            
    
        when info 
or  button begin
            
if pc.count_item("30114") >=1 then
                say
(locale.NOTICE_COLOR..  "Du hast das Heilmittel" ..locale.NORMAL_COLOR)
                
say("")
                
say("Blaso hatte Recht.")
                
say("Die "..mob_name(933).."")
                
say("Hatten wirklich ein Heilmittel.")
                
say("Bring es Balso.")
                
say("")
                return
            
end
                
            say
(locale.NOTICE_COLOR..  "Töte "..mob_name(933).."" ..locale.NORMAL_COLOR)
            
say("")
            
say("Balso vermutet ein Heilmittel bei")
            
say(""..mob_name(933)..".")
            
say("Töte solang "..mob_name(933).." bis")
            
say("du ein Heilmittel hast.")
            
say("")

        
end


                    
        when 933.kill  begin
            
            local s 
number(1100)
            if 
<= and  pc.count_item("30114") ==0  then
                pc
.give_item2(301141)

            
end
        end

    
        
        when  __TARGET__
.target.click or
            
20020.chat."Das Heilmittel" with pc.count_item("30114") >=1  begin
            target
.delete("__TARGET__")
            
say("Balso:")
            
say("Danke.")
            
say("Ich dachte du glaubst mir")
            
say("auch nicht oder lässt mich")
            
say("im Stich...")
            
say("Wenigstens einer der mir Hilft.")
            
say("")
            
pc.remove_item("30114",1)
            
           
say_reward("Du erhältst 19.000.000 Ehrfahrung.")
           
say_reward("Du erhältst 300.000.000 Yang")
           
pc.change_money(300000000)
           
pc.give_exp2(19000000)    
             
set_quest_state("levelup","run")
        
            
pc.give_item2("50050"1)
            
say_reward("Du erhältst eine Pferdemedaille.")
            
pc.give_item2("70024"1)
            
say_reward("Du erhälst " ..item_name(70024).."")
            
            
clear_letter()
            
set_state(COMPLETE)

        
end

end

    state __GIVEUP__ begin
    end

    state COMPLETE begin
    end


end 


danke für eure hilfe im vorraus :)
07/25/2011 17:14 Sp0ngeb0b ist cool#2873
Quote:
Originally Posted by Silfro95 View Post
man bekommt kein reward (sry hab deutsch word vergessen xD)
Villeicht fehlt unter den rewards ein end ?
(denn das when musst du ja auch beenden
falls es beendet wird, sorry..bin nicht zuhause und hab deshalb keinen editor und sämtliche zusatz programme hier) :(
und ich bin nicht wirklich erfahren..es ist ledigtlich eine vermutung ;)


mfg sp0nge
07/25/2011 17:24 Zwawo#2874
edit: ehh was rede ich , nach hinten verschoben werden aber nicht ganz nachhinten.^^
wtf jetzt ist es ja eine ganz andre quest. xD
07/25/2011 22:23 Killermen123#2875
so leute ich wieder mal mit einer quest da delta nicht anwortet :0

also delta hat mir schon den bonus eingebaut doch wenn ich aufs reittier geh macht der mit 20% gegen monster gleichviel dmg wie ein mg o.o

hier die quest:

PHP Code:
quest kriegskeiler begin 
    state start begin 
        when 71125.
use begin
            
if pc.is_mount() then    
                    pc
.unmount(201153600000)
            
end        
            
if not pc.is_mount() then
                pc
.mount(201153600000
                if 
get_time() > pc.getqf("reitbonus"then
                    pc
.mount_bonus(apply.ATT_BONUS_TO_MONSTER,20,3600000)
                    
pc.setqf("reitbonus"3600000)
                
end
            end
        end 
    end 
end 
mfg
07/26/2011 12:47 AtzeDamon#2876
Quote:
quest mobspawn begin
state start begin
when 70028.use begin
say_title("Notiz des Weisen")
say("Mit dieser Notiz,")
say("Kannst du den gefürchteten Roten Drachen spawnen.")
say("Willst du den Roten Drachen spawnen?")
local a= select("Ja","Nein")
if a==1 then
mob.spawn("2291", 1)
elseif a==2 then
say("Hast du wohl zu viel Angst.")
end
end
Hmm was ist da falsch ;D
07/26/2011 13:03 Zwawo#2877
So müsste es gehn..ansonsten hab ich was übersehn^^
PHP Code:
quest mobspawn begin
    state start begin
        when 70028.
use begin
                say_title
("Notiz des Weisen")
                
say("Mit dieser Notiz,")
                
say("Kannst du den gefürchteten Roten Drachen spawnen.")
                
say("Willst du den Roten Drachen spawnen?")
                
local a select("Ja""Nein")
            if 
a==1 then
                mob
.spawn(2291,xkoordinate,ykoordinate,1) -- alles ohne leerzeichen
            
elseif a==2 then
                say
("Hast du wohl zu viel Angst.")
                return
            
end
        end
    end
end 
07/26/2011 13:27 AtzeDamon#2878
Leider funksoniert sie nicht zu 100%.

Wenn ich dann auf ja klicke passiert nichts :/

Und behalte auch noch das Item im Inventar o.o
07/26/2011 13:31 Zwawo#2879
Hast du bei xkoordinate und y... beispielsweise (2291,800,250,1) geschrieben?
und hier jetzt verschwindet das item auch^^
PHP Code:
quest mobspawn begin
    state start begin
        when 70028.
use begin
                say_title
("Notiz des Weisen")
                
say("Mit dieser Notiz,")
                
say("Kannst du den gefürchteten Roten Drachen spawnen.")
                
say("Willst du den Roten Drachen spawnen?")
                
local a select("Ja""Nein")
            if 
a==1 then
                mob
.spawn(2291,xkoordinate,ykoordinate,1) -- alles ohne leerzeichen
                pc
.remove_item(70028,1)
            elseif 
a==2 then
                say
("Hast du wohl zu viel Angst.")
                return
            
end
        end
    end
end 
07/26/2011 13:36 .Delta#2880
machs so, dann spawnt der direkt neben dir...
PHP Code:
quest mobspawn begin
    state start begin
        when 70028.
use begin
                say_title
("Notiz des Weisen")
                
say("Mit dieser Notiz,")
                
say("Kannst du den gefürchteten Roten Drachen spawnen.")
                
say("Willst du den Roten Drachen spawnen?")
                
local a select("Ja""Nein")
            if 
a==1 then
                mob
.spawn(2291,pc.get_local_x(),pc.get_local_y(),1)
                
pc.remove_item(70028,1)
            elseif 
a==2 then
                say
("Hast du wohl zu viel Angst.")
                return
            
end
        end
    end
end