[SERVICE] Die Questkontrolle

12/22/2011 20:28 |Freddy|#4306
Hab keinen direkten Fehler sondern eher eine Frage.
Ich habe mir folgende Quest zusammen gestellt:
PHP Code:
quest white_lion begin  
    state start begin  
        when 71124.
use with pc.is_mount() begin  
            pc
.mount(0)  
            
affect.remove_collect()  
        
end  
        when 71124.
use begin  
            pc
.mount(20114,999999)  
            
pc.mount_bonus(apply.EXP_GRADE_BONUS,30,999999)  
        
end  
    end  
end 
Nun möchte ich wenn ich mit STR+G absteige das, das Siegel oben (da wo der XP-Ring ist) wieder runter ins Inventar geht.
12/22/2011 23:09 [Cyberos]#4307
Also, mir fehlen die Befehle um der Quest irgendwie zu sagen , das er die Daten anderer Spieler speichern soll und nicht die der eigenen

Kann sich jemand bitte bei mir per PN melden
12/23/2011 17:39 lolor2#4308
würde mir vll jemand bei der quest helfen ?
ist komplett selbst geschrieben aber mein problem ist das der codeblock: if horse.is_riding() == 1 then
nicht funktionert aber der rest funktioniert wie wegschicken rufen vom boden aus


PHP Code:
quest phoenix begin 
    state start begin
        when 29008.
use with pc.getqf("pet") == 0 begin
        
if horse.is_riding() == 1 then
        local pferdlvl 
= {
                {
lvl ="1"pferd ="20099"},
                {
lvl ="2"pferd ="20099"},
                {
lvl ="3"pferd ="20099"},
                {
lvl ="4"pferd ="20099"},
                {
lvl ="5"pferd ="20099"},
                {
lvl ="6"pferd ="20099"},
                {
lvl ="7"pferd ="20099"},
                {
lvl ="8"pferd ="20099"},
                {
lvl ="9"pferd ="20099"},
                {
lvl ="10"pferd ="20099"},
                {
lvl ="11"pferd ="20102"},
                {
lvl ="12"pferd ="20102"},
                {
lvl ="13"pferd ="20102"},
                {
lvl ="14"pferd ="20102"},
                {
lvl ="15"pferd ="20102"},
                {
lvl ="16"pferd ="20102"},
                {
lvl ="17"pferd ="20102"},
                {
lvl ="18"pferd ="20102"},
                {
lvl ="19"pferd ="20102"},
                {
lvl ="20"pferd ="20102"},
                {
lvl ="21"pferd ="20105"},
            }
            
local grade horse.get_grade()
            
local lvls horse.get_level()
            if 
lvls == pferdlvl[lvlthen
                chat
("Dein Phoenix wurde gerufen!"
                
pc.unmount()
                
horse.unsummon() 
                
horse.set_level("22"
                
horse.summon() 
                
horse.set_level(lvl)
                
pc.mount(pferdlvl[pferd] + grade)
                
pc.setqf("pet""1")
                
pc.setqf("reiten""1")
                
affect.add_collect(apply.CON,25,60*60*24*365*60)         
                
affect.add_collect(apply.INT,10,60*60*24*365*60
                
affect.add_collect(apply.STR,10,60*60*24*365*60
                
affect.add_collect(apply.DEX,10,60*60*24*365*60
                
affect.add_collect(apply.MAX_HP,5000,60*60*24*365*60)
            
end


        
elseif horse.is_riding() == 0 then
            chat
("Dein Phoenix wurde gerufen!"
            
horse.set_level ("22")
            
horse.summon() 
            
horse.set_level ("21")
            
pc.setqf("pet""1")
            
pc.setqf("reiten""0")
            
cmdchat("Pet_System TRUE")

            
affect.add_collect(apply.CON,25,60*60*24*365*60)         
            
affect.add_collect(apply.INT,10,60*60*24*365*60
            
affect.add_collect(apply.STR,10,60*60*24*365*60
            
affect.add_collect(apply.DEX,10,60*60*24*365*60
            
affect.add_collect(apply.MAX_HP,5000,60*60*24*365*60)

            
end
        end
        when 29008.
use with pc.getqf("pet") == 1 begin
        
if pc.getqf("reiten") == 0 then
            horse
.unsummon()
            
horse.unride()
            
horse.unsummon() 
            
horse.set_level("21")
            
pc.setqf("pet""0")
            
cmdchat("Pet_System FALSE")
            
chat("Dein Phoenix wurde weggeschickt!"
            
affect.remove_collect(apply.CON,25,60*60*24*365*60)         
            
affect.remove_collect(apply.INT,10,60*60*24*365*60
            
affect.remove_collect(apply.STR,10,60*60*24*365*60
            
affect.remove_collect(apply.DEX,10,60*60*24*365*60
            
affect.remove_collect(apply.MAX_HP,5000,60*60*24*365*60
        else
            
chat("Dein Phoenix wurde weggeschickt!"
            
affect.remove_collect(apply.CON,25,60*60*24*365*60)         
            
affect.remove_collect(apply.INT,10,60*60*24*365*60
            
affect.remove_collect(apply.STR,10,60*60*24*365*60
            
affect.remove_collect(apply.DEX,10,60*60*24*365*60
            
affect.remove_collect(apply.MAX_HP,5000,60*60*24*365*60
            
horse.unsummon()
            
horse.unride()
            
horse.unsummon() 
            
horse.set_level("21")
            
horse.summon() 
            
horse.ride()
            
pc.setqf("reiten""0")
            
pc.setqf("pet""0")
            
end
        end
    end
end 
mfg lolor2
12/24/2011 10:03 .HC'Destrox#4309
Ich weiß nicht, aber ich glaube es geht so:
Code:
if horse.is_riding() then
also ohne
Code:
== 1
Mfg
12/24/2011 11:39 miguelmig#4310
Code:
pc.setqf("pet" , "1")
is wrong
Code:
pc.setqf("pet" , 1 )
And more, that quest has a lot of errors , add me in skype so I can send to you the correct one:
SKYPE: habbopt97
12/24/2011 11:57 lolor2#4311
but the quest flags has worked
and if horse.is_riding() == 1 then
too
i have added u in skype
12/24/2011 12:10 .HC'Destrox#4312
I think you can also write "1", the " can you write, but you have only to write it when there are strings.

mfg
12/24/2011 12:13 lolor2#4313
o_0 u cant save strings in a questflag only numeric but "" works also :D ^^
12/24/2011 14:48 Fear *_*#4314
Heyho Leute,
Da mir langweilig war habe ich ma ne eigene quest geschrieben,
hoffe mir kann einer sagen ob die funktionieren würde :D

Code:
quest sensi begin
	state start begin
		when login or levelup with pc.level = 80 begin
			set_state(information)
		end
	end
	
	state information begin
		when letter begin
			local v=find_npc_by_vnum(20016)
			if v !=0 then
				target.vid("__TARGET__", v, "Schmied")
			end
			send_letter("Der Held des Schmieds")
		end
		
		when button or info begin
			say_title("Der Held des Schmieds")
			say("")
			say("Der Schmied hat eine sehr wichtige Aufgabe für dich!")
			say("Begib dich schnellst möglich zu ihm!")
			say("")
			say("")
		end
		
		when __TARGET__.target.click or
			20016.chat."Aufgabe" begin
			target.delete("__TARGET__")
			say("Schmied:")
			say("")
			say("Oh, Vielen Dank das du so schnell gekommen bist.")
			say("Ich habe eine sehr wichtige Aufgabe für dich!")
			say("Mir wurden wichtige Materialien geklaut.")
			say("Du siehst sehr stark aus, daher hoffe ich das du mir helfen kannst.")
			say("Der Anführer des Dämonenturms hat mir meine Truhe geklaut.")
			say("Töte ihn bitte!")
			wait()
			say("Der Sensenmann beklaut mich jedes mal aufs neue!")
			say("TÖTE IHN!")
			say("Und beeile dich!")
			set_state(Sensenmann)
		end
	end
	
	state Sensenmann begin
		when letter begin
			send_letter("Die Aufgabe des Schmieds!")
		end
		
		when button or info begin
			say_title("Töte 3 Sensenmänner!")
            say_reward( "Es fehlen noch ".." "..3 - pc.getqf("state").." Sensenmänner .")
            say("")
		end
		
		when 1093.kill begin
			local count = pc.getqf("state") + 1
			
			if count <= 3 then
                pc.setqf("state", count)
                q.set_counter("Verbleibend", 3 - count)
				
				if count == 3 then
					say_title("Aufgabe abgeschlossen!")
					say("Du hast es geschaft...."
					say("Du hast für den Schmied 3 Sensenmänner getötet!")
					say("Solch einem Helden gebührt eine große Belohnung!")
					wait()
					say("Das Paket vom Schmied ist da!")
					say("Du erhälst eine tolle Belohnung:")
					say_reward("Weiße Perle")
					say_reward("Blaue Perle")
					say_reward("Rote Perle")
					say_reward("50.000.000 Yang")
					pc.give_gold(50000000)
					pc.give_item(29992,1)
					pc.give_item(29993,1)
                                        pc.give_item(29994,1)
					set_state(_COMPLETE_)
				end
			end
		end
	end
	state _COMPLETE_ begin
	end
end
12/24/2011 17:54 miguelmig#4315
Quote:
Originally Posted by Fear *_* View Post
Code:
when login or levelup with pc.level = 80 begin
"with pc.level = 80 begin" ????
Fixxed:
Code:
when login or levelup with pc.level == 80 begin
12/25/2011 02:44 D'Arti#4316
PHP Code:
quest farmrw_warp begin
    state start begin
        when 20011.chat
."Farm-Map" begin
            
if pc.get_level() < 80 then
                say_title
(""..mob_name(20011)..":")
                
say("bla bla bla")
                
say("bla bla bla")
                
say("Komm wieder wenn du Stufe 80 erreicht hast.")
            elseif 
pc.get_level() >= 80 then
                say_title
(""..mob_name(20011)..":")
                
say("bla bla bla")
                
say("bla bla bla")
                
say("bla bla bla")
                
say("Möchtest du die Farm-Map besuchen?")
                
local s select("Ja""Nein")
                if 
and empire == 1 then
                    pc
.warp(85200,0)
                elseif 
and empire == 2 then
                    pc
.warp(84200,0)
                elseif 
and empire == 3 then
                    pc
.warp(83200,0)
                elseif 
s==2 then
                    say
("Komm wieder bla bla bla")
                
end
            end
        end
    end
end 
12/25/2011 03:01 fgruy01#4317
Code:
quest BRAIN.EXE begin
    state start begin
        when 20011.chat."BRAIN.EXE " begin
            if pc.get_level() < 80 then
                say_title(""..mob_name(20011)..":")
                say("Möchtest du BRAIN.EXE einschalten?")
                local s = select("Ja", "Nein")
                if s and empire == 1 then
                    pc.warp(85200,0)
                elseif s and empire == 2 then
                    pc.warp(84200,0)
                elseif s and empire == 3 then
                    pc.warp(83200,0)
                elseif s==2 then
                    say("Komm wieder wenn du BRAIN.EXE hast.")
                end
            end
        end
    end
end
12/25/2011 03:57 £αšεℜ™#4318
Quote:
Originally Posted by fgruy01 View Post
Code:
quest BRAIN.EXE begin
    state start begin
        when 20011.chat."BRAIN.EXE " begin
            if pc.get_level() < 80 then
                say_title(""..mob_name(20011)..":")
                say("Möchtest du BRAIN.EXE einschalten?")
                local s = select("Ja", "Nein")
                if s and empire == 1 then
                    pc.warp(85200,0)
                elseif s and empire == 2 then
                    pc.warp(84200,0)
                elseif s and empire == 3 then
                    pc.warp(83200,0)
                elseif s==2 then
                    say("Komm wieder wenn du BRAIN.EXE hast.")
                end
            end
        end
    end
end
kuhl aber selbst da versagst du das wird nie klappen :D
12/25/2011 04:20 Kriegergeist^^#4319
Abend auch,

Zu erst die Quest:
Wen ich auf "Belohnung abholen" klicke und dan auf "Ja, fortfahren", dan werden mir die jeweiligen rangpunkte abgezogen und sogar pc.setqf("rangpunkte") steigt an, aber ich bekomme keine Belohnung ins Inventar :(
Weiß einer den grund für dieses kleine Problem?
Wär nett wen ihr mir helfen könntet :handsdown:

MfG
Kriegergeist^^
12/25/2011 11:49 Sp0ngeb0b ist cool#4320
PHP Code:
quest item_for_rang begin
    state start begin
        when 20355.chat
."Die Rangpunkte" begin
            say_title
(""..mob_name(20355).."")
            
say("")
            
say("Du hast doch bestimmt von den Rangpunkte")
            
say("gehört, die dein Charakter sammeln kann oder?")
            
say("")
            
say("Wenn du eine gewisse Anzahl Rangpunkte")
            
say("erreicht hast, kann ich dir eine")
            
say("Belohnung überreichen.")
            
say("")
            
local p select("Mehr Informationen.""Belohnung abholen.""Abbrechen.")
            if 
== 1 then
                say_title
(""..mob_name(20355).."")
                
say("")
                
say("1000 Rang (Freundlich):")
                
say("1x - "..item_name(ONE_THOUSAND_RANG_REWARD).."")
                
say_item_vnum(ONE_THOUSAND_RANG_REWARD)
                
say("")
                
wait()
                
say_title(""..mob_name(20355).."")
                
say("")
                
say("4000 Rang (Gut):")
                
say("1x - "..item_name(FOUR_THOUSAND_RANG_REWARD).."")
                
say_item_vnum(FOUR_THOUSAND_RANG_REWARD)
                
say("")
                
wait()
                
say_title(""..mob_name(20355).."")
                
say("")
                
say("8000 Rang (Edel):")
                
say("1x - "..item_name(EIGHT_THOUSAND_RANG_REWARD).."")
                
say_item_vnum(EIGHT_THOUSAND_RANG_REWARD)
                
say("")
                
wait()
                
say_title(""..mob_name(20355).."")
                
say("")
                
say("12000 Rang (Ritterlich):")
                
say("1x - "..item_name(TWELVE_THOUSAND_RANG_REWARD).."")
                
say_item_vnum(TWELVE_THOUSAND_RANG_REWARD)
                
say("")
                
wait()
                
say_title(""..mob_name(20355).."")
                
say("")
                
say("20000 Rang (Barmherzig):")
                
say("1x - "..item_name(TWENTY_THOUSAND_RANG_REWARD).." (Schneelöwe)")
                
say_item_vnum(TWENTY_THOUSAND_RANG_REWARD)
                
say("")
                
wait()
                
say_title(""..mob_name(20355).."")
                
say("")
                
say("Und die letzte Stufe!")
                
say("30000 Rang (Legendär):")
                
say("1x - "..item_name(THREE_THOUSAND_RANG_REWARD).." (200 Angriffswert)")
                
say_item_vnum(THREE_THOUSAND_RANG_REWARD)
                
say("")
            elseif 
== 2 then
                local ONE_THOUSAND_RANG_REWARD 
= {19}
                
local FOUR_THOUSAND_RANG_REWARD = {70024}
                
local EIGHT_THOUSAND_RANG_REWARD = {50082}
                
local TWELVE_THOUSAND_RANG_REWARD = {28537}
                
local TWENTY_THOUSAND_RANG_REWARD = {71122}
                
local THREE_THOUSAND_RANG_REWARD = {71196}
                
local ITEMS
                
if pc.getqf("rangpunkte") == and pc.get_alignment() >= 1000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 1000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(ONE_THOUSAND_RANG_REWARD).." zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local w select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-1000)
                        
ITEMS ONE_THOUSAND_RANG_REWARD[number(1table.getn(ONE_THOUSAND_RANG_REWARD))]
                        
pc.give_item2("ITEMS"1)
                        
pc.setqf("rangpunkte"1)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpunkte") == and pc.get_alignment() >= 4000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 4000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(FOUR_THOUSAND_RANG_REWARD).." zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local s select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-4000)
                        
ITEMS FOUR_THOUSAND_RANG_REWARD[number(1table.getn(FOUR_THOUSAND_RANG_REWARD))]
                        
pc.give_item2("ITEMS"1)
                        
pc.setqf("rangpunkte"2)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpunkte") == and pc.get_alignment() >= 8000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 8000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(EIGHT_THOUSAND_RANG_REWARD).." zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local m select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-8000)
                        
ITEMS EIGHT_THOUSAND_RANG_REWARD[number(1table.getn(EIGHT_THOUSAND_RANG_REWARD))]
                        
pc.give_item2("ITEMS"1)
                        
pc.setqf("rangpunkte"3)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpunkte") == and pc.get_alignment() >= 12000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 12000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(TWELVE_THOUSAND_RANG_REWARD).." zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local g select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-12000)
                        
ITEMS TWELVE_THOUSAND_RANG_REWARD[number(1table.getn(TWELVE_THOUSAND_RANG_REWARD))]
                        
pc.give_item2("ITEMS"1)
                        
pc.setqf("rangpunkte"4)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpunkte") == and pc.get_alignment() >= 20000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 20000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(TWENTY_THOUSAND_RANG_REWARD).." (Schneelöwe) zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local e select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-20000)
                        
ITEMS TWENTY_THOUSAND_RANG_REWARD[number(1table.getn(TWENTY_THOUSAND_RANG_REWARD))]
                        
pc.give_item2("ITEMS"1)
                        
pc.setqf("rangpunkte"5)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpunkte") == and pc.get_alignment() >= 30000 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("Du wirst 30000 Rangpunkte verlieren dafür,")
                    
say("um 1x - "..item_name(THREE_THOUSAND_RANG_REWARD).." (200 AW) zu bekommen.")
                    
say("")
                    
say_reward("Fortfahren?")
                    
local l select("Ja, fortfahren.""Nein, doch nicht.")
                    if 
== 1 then
                        pc
.change_alignment(-30000)
                        
ITEMS THREE_THOUSAND_RANG_REWARD[number(1table.getn(THREE_THOUSAND_RANG_REWARD))]
                        
pc.give_item2("ITEMS"1)
                        
pc.setqf("rangpunkte"6)
                    elseif 
== 2 then
                        
return
                    
end
                
elseif pc.getqf("rangpunkte") == 6 then
                    say_title
(""..mob_name(20355).."")
                    
say("")
                    
say("So leid es mir auch tut, du hast schon alle")
                    
say("Belohnungen erhalten, die es im Moment gibt.")
                    
say("")
                else
                    
say_title(""..mob_name(20355).."")
                    
say("")
                    
say("Es steht zur Zeit keine Belohnung zur Verfügung.")
                    
say_reward("Du hast zu wenig Rangpunkte!")
                
end    
            end
        end
    end
end 
PHP Code:
quest farmrw_warp begin
    state start begin
        when 20011.chat
."Farm-Map" begin
            
if pc.get_level() < 80 then
                say_title
(""..mob_name(20011)..":")
                
say("bla bla bla")
                
say("bla bla bla")
                
say("Komm wieder wenn du Stufe 80 erreicht hast.")
            elseif 
pc.get_level() >= 80 then
                say_title
(""..mob_name(20011)..":")
                
say("bla bla bla")
                
say("bla bla bla")
                
say("bla bla bla")
                
say("Möchtest du die Farm-Map besuchen?")
                
local s select("Ja""Nein")
                if 
== 1 then
                    
if pc.get_empire() == 1 then
                        pc
.warp(852000)
                    elseif 
pc.get_empire() == 2 then
                        pc
.warp(842000)
                    elseif 
pc.get_empire() == 3 then
                        pc
.warp(832000)
                    
end    
                
elseif s==2 then
                    say
("Komm wieder bla bla bla")
                
end
            end
        end
    end
end