[SERVICE] Die Questkontrolle

02/22/2011 22:43 .Risan.#1531
Fehler sollte nun behoben sein, wenn nicht muss Counter umarbeiten, aber dann muss man halt immer Questrolle anklicken um zu sehen wie viele man bereits get飆et hat. so muss man nur Auftragsfenster offen haben (eine neue Methode f�r mich :S)

HTML Code:
----------------------------------------------
-- Bio Quest Level30
----------------------------------------------
quest Bio_Quest_30 begin
    state start begin
        when login or levelup with pc.level >= 30 begin
            set_state(login)
        end
    end

    state login begin
        when letter begin
		send_letter("Probleme mit Monstern 1")
            local v = find_npc_by_vnum(20084)
            if v != 0 then
                target.vid("__TARGET__", v, "生物學者梁柏年")
            end
        end

        when button or info begin
            say_title("Probleme mit Monstern")
            say("")
            say("Die Biologin braucht deine Hilfe!")
            say("Gehe zu ihr.")
            say("")
            say("")
        end


		        when __TARGET__.target.click or 20084.chat."Probleme mit Monstern 1" begin
            target.delete("__TARGET__")
            say("Biologin:")
            ---                                                   l
            say("Oh!!! Du hilfst mir?")
            say("Gut ...")
            say("Ich bin �brigens die Biologin")
            say("ich habe Probleme mit ein paar Monstern.")
            say("Wenn du mir bei meinen Problemen hilfst,")
            say("werde ich dich Reich Belohnen")
            say("")
            wait()
            say("Biologin:")
            
            say("")
            say("")
            say("")
            say("")
            wait()
            say("T飆e Spinnen im Spinnendungeon")
            
            pc.setqf("spinne", 0)
            q.set_counter("Spinnen", 200)
			set_state(killing)
        end
	end
	state killing begin
	   when 2051.kill or 2052.kill or 2053.kill or 2054.kill or 2055.kill begin
			local spinne = pc.getqf("spinne") + 1
			if spinne <= 200 then
			pc.setqf("spinne", spinne)
			q.set_counter("Spinnen", 200 - spinne)
			end
			if pc.getqf("spinne") >= 200 then
			say("Auftrag erf�llt du hast 200 Spinnen get飆et.")
			set_state(belohnung)
            end
		end
	end
	state belohnung begin
            when letter begin
            local v = find_npc_by_vnum(20084)
            if v != 0 then
            target.vid("__TARGET__", v, "生物學者梁柏年")
            end
            send_letter("Auftrag erf�llt")
        end
        when button or info begin
            say_title("Auftrag erf�llt")
            say("")
            say("Die Biologin hat eine Belohnung f�r dich.")
            say("Gehe zu ihr.")
            say("")
            say("")
        end
        when __TARGET__.target.click  or 20084.chat."Belohnung der Biologin"  begin
        target.delete("__TARGET__")
        say("Du erh鄟st dauerhaft 10 Bewegungsgeschwindigkeit:")
        say("Bewegungsspeed +10%")
        
        affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60) --60年 
        
        clear_letter()
        set_quest_state("collect_quest_lv40", "run")
        set_state(__complete)
        end        
     
    end
    state __complete begin
    end
end
02/22/2011 23:28 bl4ckd3v1l#1532
Quote:
Originally Posted by Woody� View Post
Fehler sollte nun behoben sein, wenn nicht muss Counter umarbeiten, aber dann muss man halt immer Questrolle anklicken um zu sehen wie viele man bereits get飆et hat. so muss man nur Auftragsfenster offen haben (eine neue Methode f�r mich :S)

HTML Code:
----------------------------------------------
-- Bio Quest Level30
----------------------------------------------
quest Bio_Quest_30 begin
    state start begin
        when login or levelup with pc.level >= 30 begin
            set_state(login)
        end
    end

    state login begin
        when letter begin
		send_letter("Probleme mit Monstern 1")
            local v = find_npc_by_vnum(20084)
            if v != 0 then
                target.vid("__TARGET__", v, "生物學者梁柏年")
            end
        end

        when button or info begin
            say_title("Probleme mit Monstern")
            say("")
            say("Die Biologin braucht deine Hilfe!")
            say("Gehe zu ihr.")
            say("")
            say("")
        end


		        when __TARGET__.target.click or 20084.chat."Probleme mit Monstern 1" begin
            target.delete("__TARGET__")
            say("Biologin:")
            ---                                                   l
            say("Oh!!! Du hilfst mir?")
            say("Gut ...")
            say("Ich bin �brigens die Biologin")
            say("ich habe Probleme mit ein paar Monstern.")
            say("Wenn du mir bei meinen Problemen hilfst,")
            say("werde ich dich Reich Belohnen")
            say("")
            wait()
            say("Biologin:")
            
            say("")
            say("")
            say("")
            say("")
            wait()
            say("T飆e Spinnen im Spinnendungeon")
            
            pc.setqf("spinne", 0)
            q.set_counter("Spinnen", 200)
			set_state(killing)
        end
	end
	state killing begin
	   when 2051.kill or 2052.kill or 2053.kill or 2054.kill or 2055.kill begin
			local spinne = pc.getqf("spinne") + 1
			if spinne <= 200 then
			pc.setqf("spinne", spinne)
			q.set_counter("Spinnen", 200 - spinne)
			end
			if pc.getqf("spinne") >= 200 then
			say("Auftrag erf�llt du hast 200 Spinnen get飆et.")
			set_state(belohnung)
            end
		end
	end
	state belohnung begin
            when letter begin
            local v = find_npc_by_vnum(20084)
            if v != 0 then
            target.vid("__TARGET__", v, "生物學者梁柏年")
            end
            send_letter("Auftrag erf�llt")
        end
        when button or info begin
            say_title("Auftrag erf�llt")
            say("")
            say("Die Biologin hat eine Belohnung f�r dich.")
            say("Gehe zu ihr.")
            say("")
            say("")
        end
        when __TARGET__.target.click  or 20084.chat."Belohnung der Biologin"  begin
        target.delete("__TARGET__")
        say("Du erh鄟st dauerhaft 10 Bewegungsgeschwindigkeit:")
        say("Bewegungsspeed +10%")
        
        affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60) --60年 
        
        clear_letter()
        set_quest_state("collect_quest_lv40", "run")
        set_state(__complete)
        end        
     
    end
    state __complete begin
    end
end
Wunderbar, klappt alles. Danke dir.
02/24/2011 15:53 .Risan.#1533
Freut mich :)
02/24/2011 20:22 CHXMVN#1534
PHP Code:
quest deviltower2_zone begin
    state start begin
        when login begin
            
if pc.get_map_index() == 214 then
                
if pc.get_x() < 55555+88 or pc.get_y() < 55555+577 or pc.get_x() > 55555+236 or pc.get_y() > 55555+737 then
                    pc
.warp((5376+501)*100, (512+498+4)*100, 65)
                
end
                pc
.set_warp_location(65, 5376+501, 512+498+4)
            elseif 
pc.get_map_index() >= 2140000 and pc.get_map_index() <= 2150000 then
                pc
.set_warp_location(65, 5376+501, 512+498+4)
            
end
        end
        when 20087.chat
."In den Zombieturm" begin
            
if pc.get_level() < 85 then
                say_title
("Der Zombieturm Turm")
                
say("Dein Level ist zu niedrig.")
                
say("Du musst min. Level 85 sein,")
                
say("um den Turm zubetreten!")
                return
            else
                
say_title("Der Zombieturm")
                
say("Du kennst sicherlich den D鄝onenturm..")
                
say("Dieser Turm 鄣nelt diesen Turm zwar von au絽n...")
                
say("Jedoch von innen...")
                
say("Im inneren sind viel st酺kere Monster..")
                
wait()
                
say_title("Der Zombieturm")
                
say("Sie Trachten dir noch deinem Leben,")
                
say("nur starke Krieger k霵nen sich gegen")
                
say("diese Monster behaupten.")
                
say("")
                
say_reward("Bist du bereit den Turm zubetreten?")
                
local s = select("Hinnein!","Nein, ich habe Angst.")
                if 
s == 1 then
                    pc
.warp(5555500,5555500)
                
end
            end
        end
        when 8027.kill begin
            d
.setf("dt2kill",1)
            
timer("dt2metin", 5)
        
end
        when dt2metin
.timer begin
            d
.clear_regen()
            
d.new_jump_all(214, 5555500+126,5555500+384)
            
d.new_jump_all(214, 55555+126,55555+384)
            
d.clear_regen()
            
d.regen_file("data/dungeon/deviltower2_2_regen.txt")
            
d.set_warp_at_eliminate(4, d.get_map_index(), 55555+134,55555+147, "data/dungeon/deviltower3_2_regen.txt")
        
end
        when 8040.kill with pc
.in_dungeon() begin
            timer
("spinne",10)
        
end
        when spinne
.timer begin
            d
.kill_all()
            
d.clear_regen()
            
d.jump_all(55555+369,55555+629)
            
d.regen_file("data/dungeon/deviltower4_2_regen.txt")
        
end
        when 8023.kill with pc
.in_dungeon() begin
            d
.notice("Du hast den Metin zerst顤t!")
            
d.notice("Du hast nun 15 Min. Zeit,")
            
d.notice("die sieben roten Tode zu t飆en!")
            
timer("sensicount", 60*15)
            
d.kill_all()
            
d.kill_all()
            
d.spawn_mob(1096,368,629)
            
d.spawn_mob(1096,419,630)
            
d.spawn_mob(1096,428,653)
            
d.spawn_mob(1096,422,679)
            
d.spawn_mob(1096,395,689)
            
d.spawn_mob(1096,369,679)
            
d.spawn_mob(1096,361,658)
            
d.spawn_mob(20201,371,658)
            
d.setf("steinebene4",7)
        
end
        when 1096.kill with pc
.in_dungeon() begin
            game
.drop_item(90007,1)
        
end
        when 20201.take with item
.vnum == 90007 begin
            item
.remove()
            
d.setf("steinebene4", d.getf("steinebene4") - 1)
            
d.notice("Du hast ein Siegel abgegeben!")
            
local steine123 = d.getf("steinebene4");
            
d.notice("Es fehlen noch "..steine123.." Steine!")
            if 
d.getf("steinebene4") <= 0 then
                npc
.purge()
                
d.notice("Du hast diese Ebene geschafft!")
                
timer("ebene5",10)
                
d.kill_all()
            
end
        end
        when ebene5
.timer begin
            d
.kill_all()
            
d.clear_regen()
            
d.jump_all(55555+602,55555+404)
            
d.regen_file("data/dungeon/deviltower8_2_regen.txt")
            
d.spawn_mob(2598,607,434)
        
end
        when 2598.kill with pc
.in_dungeon() begin
            timer
("goout",300)
            
d.kill_all()
            
d.kill_all()
            
d.notice("Du hast den K霵ig get飆et.")
            
d.notice("Du hast nun 5 Min. Zeit, deine Gegenst鄚de")
            
d.notice("zu verbessern!")
            
local reward_alchemist = {20074, 20075, 20076}
            
d.spawn_mob(reward_alchemist[number(1,3)], 633, 435);
            
d.setqf("can_refine", 1)
        
end
        when goout
.timer begin
            d
.kill_all()
            
pc.warp((5376+501)*100, (512+498+4)*100, 65)
        
end
    end
end 
Mein Problem ist das man beim Schmied nichts uppen kann!
Wer das Problem beheben kann bitte melden ;>
02/24/2011 20:48 .Risan.#1535
Hab es mir angeschaut, die mob-vnum 20074,20075 und 20076 sind richtig
auch das can_refine, es ist eigentlich der D鄝onenturm, nur ich sehe nirgendwo die funktion wo er das refine abfragt bzw. auf andere ziffer 鄚dert.

Tut mir leid, ich muss passen, bin selber Sprachlos.

EDIT: sehe kein fehler :/
02/25/2011 07:45 .2good4you111#1536
PHP Code:
d.setqf("can_refine", 1) 
^This setzt nur einen state auf 1 -- Bringt jedoch nicht viel da dieser nirgends abgefragt wird.
Hatte irgendwo mal einen Befehl der hie� pc.refine_item oder so.
Habe jedoch die parameter nicht rausbekommen xD
02/25/2011 10:55 CHXMVN#1537
Quote:
Originally Posted by .2good4you111 View Post
PHP Code:
d.setqf("can_refine", 1) 
^This setzt nur einen state auf 1 -- Bringt jedoch nicht viel da dieser nirgends abgefragt wird.
Hatte irgendwo mal einen Befehl der hie� pc.refine_item oder so.
Habe jedoch die parameter nicht rausbekommen xD
Und das Problem l酲st sich jetzt wie beheben? :o
02/25/2011 12:03 .Risan.#1538
ich sag sowas zum ersten mal, garnicht :confused:

vllt hat lolkid ne idee, er is darin ein Gott..
02/25/2011 12:31 CHXMVN#1539
Quote:
Originally Posted by Woody� View Post
ich sag sowas zum ersten mal, garnicht :confused:

vllt hat lolkid ne idee, er is darin ein Gott..
Ja ich habs grad nochmal getestet DT1 geht alles perfekt danach geh ich DT2 danach geht es nicht und es steht du kannst keine weiteren Gegenst鄚de aufr�sten
02/25/2011 12:32 .2good4you111#1540
Ist der Schmied eigentlich in der game festgelegt oder geht der mit ner Quest?
Wenn er �ber ne quest k霵nte man die ja 鄚dern ;)

Also den normalen schmied meine ich.
02/25/2011 12:47 .Risan.#1541
Quote:
Originally Posted by .2good4you111 View Post
Ist der Schmied eigentlich in der game festgelegt oder geht der mit ner Quest?
Wenn er �ber ne quest k霵nte man die ja 鄚dern ;)

Also den normalen schmied meine ich.
Mein gef�hl sagt mir immer mehr das es in der Game festgelegt wird.

@offtopic, ich hab auf deine fragen mit vit str und dex usw geantwortet<.<
02/26/2011 00:29 bl4ckd3v1l#1542
Wollt mal ne quest einbauen die die PvP kills z鄣lt. Allerdings z鄣lt er sie leider nicht :/
Will das sie im chat stehen. (Im eigenem chat das man es nur selber sieht ^^)

PHP Code:
quest player_kill begin
    state start begin
    when npc
.kill begin
        local count 
= pc.getqf("state") + 1
        chat
( "Du hast ".." "..pc.getqf("state").." Spieler besiegt.")
        
end
    end
end 
02/26/2011 08:41 .Delta#1543
probiers mal so, habs nicht getestet
PHP Code:
quest player_kill begin
    state start begin
        when login with pc
.get_level() == 1 begin
            pc
.setqf("state", 0)
            
set_state(killen)
        
end
    end
    state killen begin
        when kill with npc
.is_pc() begin
            local count 
= pc.getqf("state") + 1
            chat
( "Du hast "..pc.getqf("state").." Spieler besiegt.")
        
end
    end
end 
02/26/2011 16:44 Dazden#1544
was hab ich da falsch ?!
PHP Code:
quest adateforgemi begin
    state run begin
        when login with pc
.level>=55 begin
            set_state
(information)
        
end
    end
    state information begin 
--State Information
          when letter begin 
-- Wenn alle Quest Briefe aufgerufen werden.
            
send_letter("Bitte hilf mir!") -- Sende neuen Quest Brief "Bitte helft mir!"
        
end
        when button 
or info begin
            say_title
("Bitte hilf mir!") --  Den Titel des Briefes sagen

            
----"12345678901234567890123456789012345678901234567890"|
            
say("Ich habe mich in einen Jungen verliebt.")
            
say("Sein Name ist Soon, ich traue mich nicht")
            
say("ihn anzusprechen. Kommt bitte zu mir")
            
say("ich werde euch auch reich belohnen.")
            
set_state(gotogemi) -- Wechsele den State zu gotogemei
        end
    end
    state gotogemi begin 
          when letter begin
            local v
=find_npc_by_vnum(9003) -- mache v zu Gemi
            
if 0==v then -- Wenn keine Gemi gefunden wurde dann mach nichts
            
else
                
target.vid("__TARGET__", v, "Geh zur Gemi") -- setze die Gemi als neues Ziel
            end
        end
        when letter begin
            send_letter
("Komm zu mir!")
        
end
        when button 
or info begin
            say_title
("Kom zu mir!")
            
say("Geh zur Gemi")
            
say("")
        
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say("Gemi :")

            ----
"12345678901234567890123456789012345678901234567890"|
            
say("Ich habe mich in einen Jungen verliebt.")
            
say("Sein Name ist Soon, ich traue mich nicht")
            
say("ihn anzusprechen. K霵ntet ihr bitte zu Soon")
            
say("gehen und ihn f�r mich nach eine Date fragen?")
            
say("Ich w�rde euch reichlich belohnen.")
            
say("Bitte helft mir!")
            
say("")
            
local s = select("Ich helfe doch gerne","Nein, keine Zeit")
            if 
s=1 then
                set_state
(gotosoon)
            else
                
say("Schade...")
                
say("")
                
clear_letter()
                
q.done()
            
end
        end
    end
    state gotosoon
        when letter begin
            local v
=find_npc_by_vnum(SOONVNUM)
            if 
0==v then
            
else
                
target.vid("__TARGET__", v, "Geh zu Soon")
            
end
        end
        when letter begin
            send_letter
("Komm zu mir!")
        
end
        when button 
or info begin
            say_title
("Geh zu Soon!")
            
say("Beweg dich zz Soon")
            
say("")
        
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say("Gemi :")

            ----
"12345678901234567890123456789012345678901234567890"|
            
say("Die Gemi will ein Date von mir?")
            
say("So ein zufall ich wollt grad zu ihr gehen.")
            
say("und sie nach einem Date fragen")
            
say("")
            
set_state(backtogemi)
        
end
    end
    state backtogemi
        when letter begin
            local v
=find_npc_by_vnum(SOONVNUM)
            if 
0==v then
            
else
                
target.vid("__TARGET__", v, "Geh zur Gemi")
            
end
        end
        when letter begin
            send_letter
("Geh zur Gemi!")
        
end
        when button 
or info begin
            say_title
("Geh zur Gemi!")
            
say("Berichte der Gemi")
            
say("")
        
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say("Gemi :")

            ----
"12345678901234567890123456789012345678901234567890"|
            
say("Was?!")
            
say("Er will!!, Ich danke dir .")
            
say("Als belohnung gebe ich dir das Perd meines Vaters.")
            
say("")
            
say_reward("Die Gemi gibt dir Stein der Hast+4")
            
say_reward("Die Gemi gibt dir Milit酺-Pferdebuch")
            
pc_giveitem2(28443)
            
pc_giveitem2(50053)
            
pc.get_horse_level(21)
            
clear_letter()
            
set_state(__COMPLETE__)
        
end
    end
    state __COMPLETE__ begin
    end
end 
02/26/2011 17:19 LxR'EsoZiaL#1545
Funkst dat ?

PHP Code:
    -- Spendeninfo (aktivert �ber /e spenden 1)
    
quest pep begin
    state start begin
        when login with game
.get_event_flag("spenden")== 1 begin
        set_state
(lesen)
        
send_letter("Spendeninfo")
        
end
    end
            state lesen begin
            when button 
or info begin
            
            say_reward
("Geplante Wartungarbeit:")
            
say_title("Spendeninfo")
            
say("")
            
say("Ihr k霵nt dem Server eine kleine")
            
say("Spende zukommen lassen und daf�r")
            
say("erhaltet ihr Coins. Damit k霵nt ihr")
            
say("Euch im Itemshop etwas kaufen!")
            
say("")
            
say_title("Coins pro Spende:")
            
say("")
            
say_reward("Hier seht ihr eine Liste wie viele")
            
say_reward("Coins ihr pro Spende bekommt.")
            
say("10 €: 150 Coins")
            
say("25 €: 400 Coins")
            
say("50 €: 900 Coins")
            
local i = select("ja habe ich", "Ja, und Sp酹er nochmal daran erinnern")
            if 
1 == i then
            set_state
( __COMPLETE__ )
        
end
            
if 2 == i then
                
return
            
end    
        end
    end
    state __COMPLETE__ begin
    end
end