|
You last visited: Today at 15:25
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
02/22/2011, 22:43
|
#1531
|
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,450
|
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ötet 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, "¥Íª«¾ÇªÌ±ç¬f¦~")
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öte 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ötet.")
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, "¥Íª«¾ÇªÌ±ç¬f¦~")
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älst 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
|
#1532
|
elite*gold: 0
Join Date: Apr 2009
Posts: 1,439
Received Thanks: 668
|
Quote:
Originally Posted by Woody°
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ötet 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, "¥Íª«¾ÇªÌ±ç¬f¦~")
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öte 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ötet.")
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, "¥Íª«¾ÇªÌ±ç¬f¦~")
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älst 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
|
#1533
|
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,450
|
Freut mich
|
|
|
02/24/2011, 20:22
|
#1534
|
elite*gold: 20
Join Date: Mar 2009
Posts: 4,526
Received Thanks: 4,618
|
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ämonenturm..")
say("Dieser Turm ähnelt diesen Turm zwar von außen...")
say("Jedoch von innen...")
say("Im inneren sind viel stärkere Monster..")
wait()
say_title("Der Zombieturm")
say("Sie Trachten dir noch deinem Leben,")
say("nur starke Krieger können 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ört!")
d.notice("Du hast nun 15 Min. Zeit,")
d.notice("die sieben roten Tode zu töten!")
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önig getötet.")
d.notice("Du hast nun 5 Min. Zeit, deine Gegenstände")
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
|
#1535
|
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,450
|
Hab es mir angeschaut, die mob-vnum 20074,20075 und 20076 sind richtig
auch das can_refine, es ist eigentlich der Dämonenturm, nur ich sehe nirgendwo die funktion wo er das refine abfragt bzw. auf andere ziffer ändert.
Tut mir leid, ich muss passen, bin selber Sprachlos.
EDIT: sehe kein fehler :/
|
|
|
02/25/2011, 07:45
|
#1536
|
elite*gold: 20
Join Date: Oct 2010
Posts: 1,303
Received Thanks: 457
|
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
|
#1537
|
elite*gold: 20
Join Date: Mar 2009
Posts: 4,526
Received Thanks: 4,618
|
Quote:
Originally Posted by .2good4you111
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ässt sich jetzt wie beheben?
|
|
|
02/25/2011, 12:03
|
#1538
|
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,450
|
ich sag sowas zum ersten mal, garnicht
vllt hat lolkid ne idee, er is darin ein Gott..
|
|
|
02/25/2011, 12:31
|
#1539
|
elite*gold: 20
Join Date: Mar 2009
Posts: 4,526
Received Thanks: 4,618
|
Quote:
Originally Posted by Woody°
ich sag sowas zum ersten mal, garnicht
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ände aufrüsten
|
|
|
02/25/2011, 12:32
|
#1540
|
elite*gold: 20
Join Date: Oct 2010
Posts: 1,303
Received Thanks: 457
|
Ist der Schmied eigentlich in der game festgelegt oder geht der mit ner Quest?
Wenn er über ne quest könnte man die ja ändern
Also den normalen schmied meine ich.
|
|
|
02/25/2011, 12:47
|
#1541
|
elite*gold: 30
Join Date: Jul 2010
Posts: 1,627
Received Thanks: 1,450
|
Quote:
Originally Posted by .2good4you111
Ist der Schmied eigentlich in der game festgelegt oder geht der mit ner Quest?
Wenn er über ne quest könnte man die ja ändern
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
|
#1542
|
elite*gold: 0
Join Date: Apr 2009
Posts: 1,439
Received Thanks: 668
|
Wollt mal ne quest einbauen die die PvP kills zählt. Allerdings zählt 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
|
#1543
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
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
|
#1544
|
elite*gold: 0
Join Date: Aug 2009
Posts: 10
Received Thanks: 0
|
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önntet 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är-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
|
#1545
|
elite*gold: 15
Join Date: Mar 2010
Posts: 4,270
Received Thanks: 2,499
|
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önnt dem Server eine kleine") say("Spende zukommen lassen und dafür") say("erhaltet ihr Coins. Damit könnt 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äter nochmal daran erinnern") if 1 == i then set_state( __COMPLETE__ ) end if 2 == i then return end end end state __COMPLETE__ begin end end
|
|
|
All times are GMT +1. The time now is 15:25.
|
|