[SERVICE] Die Questkontrolle

11/16/2010 16:22 Silfro#901
geht das so ?

Quote:
quest give_basic_weapon begin
state start begin
when login begin
if pc.getqf("basic_weapon") == 0 then
pc.setqf("basic_weapon", 1)

if pc.countitem(item) == 0 and pc.weapon != item then
pc.change_gold(100000)
pc.give_item2(item)
pc.give_item2(27003, 200)
pc.give_item2(27003, 200)
pc.give_item2(27003, 200)
pc.give_item2(27003, 200)
pc.give_item2(27003, 200)
pc.give_item2(27006, 200)
pc.give_item2(27006, 200)
pc.give_item2(71050, 200)
pc.give_item2(72702, 1)
pc.give_item2(70038, 20)
pc.give_item2(22000, 20)

if pc.job == 0 then
pc.give_item2(19, 1)
pc.give_item2(11209, 1)
pc.give_item2(11219, 1)
pc.give_item2(11209, 1)
pc.give_item2(13009, 1)
pc.give_item2(17009, 1)
pc.give_item2(14009, 1)
pc.give_item2(15009, 1)
pc.give_item2(16009, 1)
pc.give_item2(12209, 1)
say_reward("Dies ist dein Kriegerequip")
elseif pc.job == 1 then
pc.give_item2(19, 1)
pc.give_item2(2009, 1)
pc.give_item2(8009, 200)
pc.give_item2(8008, 200)
pc.give_item2(8007, 200)
pc.give_item2(8006, 200)
pc.give_item2(12349, 1)
pc.give_item2(13009, 1)
pc.give_item2(17009, 1)
pc.give_item2(14009, 1)
pc.give_item2(15009, 1)
pc.give_item2(16009, 1)
pc.give_item2(11409, 1)
pc.give_item2(11419, 1)
say_reward("Dies ist dein Ninjastartrequip")
elseif pc.job == 2 then
pc.give_item2(19, 1)
pc.give_item2(11609, 1)
pc.give_item2(11619, 1)
pc.give_item2(12489, 1)
pc.give_item2(17009, 1)
pc.give_item2(14009, 1)
pc.give_item2(15009, 1)
pc.give_item2(16009, 1)
say_reward("Die ist dein Suraequip")
elseif pc.job == 3 then
pc.give_item2(7009, 1)
pc.give_item2(5019, 1)
pc.give_item2(12629, 1)
pc.give_item2(11809, 1)
pc.give_item2(11819, 1)
pc.give_item2(17009, 1)
pc.give_item2(14009, 1)
pc.give_item2(15009, 1)
pc.give_item2(16009, 1)
say_reward (Dies ist dein Schamanenequip)

end
end
end
end
end
11/16/2010 22:20 CoreDump#902
das mit dem starterset gabs wie oft? 50 mal in diesem Thread vllt?
die startset is die einfachste quest von allen
keine schweren anweisungen, nix
das quest hab ich schon geschrieben, da war mein erster server 5min online
11/16/2010 22:24 Silfro#903
Quote:
Originally Posted by CoreDump View Post
das mit dem starterset gabs wie oft? 50 mal in diesem Thread vllt?
die startset is die einfachste quet von allen
keine schweren anweisungen, nix
das quest hab ich schon geschrieben, da war mein erster server 5min online
Ist nicht meine schuld das du es erst nach 2 jahren geschafft hast einen server zu machen :)


gefixxt.
11/16/2010 23:59 CoreDump#904
was heißt hier nach 2 jahren?
wie kommst du auf sowas? hauptsache irgendwas reden.
das können sie alle
11/17/2010 12:52 Pаylasici#905
Ich suche noch aktive Questkontrollöre. Ich selber bin an der Vogelgrippe zurzeit erkrankt und kann nicht Aktivität zeigen. Danke für eure Verständnis.
11/17/2010 21:33 Deathy.#906
Hallo com mein Tal von ascaria is doof in der siegel ebene dropen die monster keine siegel ..kann mir wer die devildown quest umscripten das man sofort ohne siegel und ohne timer in die nächste ebene teleportiert wird...??

Quote:
quest devildown begin
state start begin
when 30122.chat."Das Geheimnis Ascarias" begin
if pc . get_level ( ) < 85 then
say ("Du hast noch nicht genuegend Erfahrung gesammelt. Komme wieder, wenn du Level 85 bist!")
else
say_title("Kriegergeist")
say("")
say("Ich war einst Krieger der Kaiserlichen Armee.")
say("Vor vielen Jahren gab es einen Ort, der von einem")
say("Drache bewacht wurde. Heute kennt man ihn unter dem")
say("Name - Tal von Ascaria. Eigentlich wurde es mir")
say("verboten Informationen über die Lage dieses Ortes zu")
say("geben aber ich könnte dich trotzdem")
say("dort hin teleportieren.")
say("")
say_reward("Soll ich dich ins Tal von Ascaria teleportieren?")

local s = select("Teleportieren", "Hier bleiben")
if s == 1 then
pc.warp(391700, 1293100)
else
return
end
end
end

when 8023.kill with pc.get_map_index()==456 begin
local jump1 = number(1, 20)
if jump1<=10 then
chat("Das muss der Teil einer Karte sein.")
chat("Bringe ihn dem Surageist.")
game.drop_item(30126, 1)
else
chat("An diesem Metin war anscheinend keine Karte..")
end
end

when 30121.chat."Teil einer Karte" begin

if pc.count_item(30126)>=1 then
say("Du hast eine Karte gefunden?!")
say("Lass mal sehen!")
pc.removeitem("30126", 1)
wait()
say("Okay, ich denke als nächstes..")
say("Ja das ist okay.. Bis später!")
wait()
d.new_jump_all(456, 3182, 12142)
d.setf("devillevel", 1)
-- Removed Schlüsselsteine aus deinem Inventar falls vorhanden, um Bugusing vorzubeugen. --
local boxto7= pc.count_item(30300)
pc.remove_item(30300,boxto7)
--------------------------------------------------------------------------------------------

local vid = d.spawn_mob(11510, 268, 311)
d.regen_file("data/dungeon/dd_regen2.txt")
d.set_unique("real", vid)
d.notice("Zerstört das legendäre Feuer der Macht.");
else
say("Ich habe gehört, dass man an den Metinsteine,")
say("hier in der Umgebung Teile von Karten finden kann,")
say("wenn man sie zerstört. Wenn du mir ein solches")
say("Teil bringen könntest, könnte ich dich in das")
say("nächste Gebiet teleportieren, da ich dann das")
say("Gebiet genauer untersuchen könnte.")
end
end

when 11510.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("devillevel", 2)
d.clear_regen()
d.jump_all(3542, 12825)
d.regen_file("data/dungeon/dd_warps.txt")
end
end

when 20083.chat."Geheimnissvolle Gänge" with pc.in_dungeon() and d.getf("devillevel") == 2 begin
say_title("Poeng-Hong")
say("")
say("Diese Gänge.. Sie bringen mich um")
say("meinen Verstand.. Ich laufe nun schon")
say("den ganzen Tag in ihnen herum, aber ich habe")
say("keine Ahnung, wo ich noch lang gehen soll.")
say("Ich suche doch nur meinen Bruder..")
say("")
say("Wenn ich ihn doch nur finden würde..")
wait()
d.setf("devillevel", 3)
d.jump_all(3347, 12810)
end


when 20080.chat."Poeng-Hong" with pc.in_dungeon() and d.getf("devillevel") == 3 begin
say_title("Sao-Hae")
say("")
say("Mein Bruder Poeng-Hong?")
say("Du hast ihn getroffen?")
say("Ja ich bin sein Bruder.. Es wäre")
say("sehr nett von ihm, ihm zu sagen wo ich")
say("bin, wenn du ihn noch einmal sehen solltest.")
say("")
wait()

d.setf("devillevel", 4)
timer("devildown_jump1", 1)
end

when devildown_jump1.timer begin
d.clear_regen()
d.regen_file("data/dungeon/dd_regen3.txt")
local vid = d.spawn_mob(1191, 803, 290)
d.set_unique("real", vid)
d.jump_all(3619, 12075)
d.notice("Sucht die Eishexe und tötet sie, damit der Wächter");
d.notice("des Untergrundes sich nicht länger verstecken muss.");
end

when 1191.kill with pc.in_dungeon() and d.getf("devillevel") == 4 begin
if d.is_unique_dead("real") then
d.spawn_mob(20351 , 740 , 207)
d.setf("devillevel", 5)
end
end

when 20351.chat."Wächter des Untergrundes" with pc.in_dungeon() and d.getf("devillevel") == 5 begin
say_title("Wächter des Untergrundes")
say("Man nennt mich den Wächter des Untergundes.")
say("Ich bin schon eine weile hier und kenne das Gebiet")
say("ein wenig besser wie du, wenn ich das so sagen darf.")
say("")
say("Ich könnte euch alle zu den alten Siegeln teleportieren.")
say("Ich selbst traue mich dort nicht hin.")
say("Mir ist der Ort irgendwie unheimlich.")
say("")
wait()
d.setf("devillevel", 6)
timer("devildown_jump2", 2)
end

when devildown_jump2.timer begin
d.clear_regen()
d.jump_all(4438, 12282)
d.regen_file("data/dungeon/dd_regen4.txt")
d.spawn_mob(30101, 1241, 250)
d.spawn_mob(30101, 1246, 242)
d.spawn_mob(30101, 1255, 243)
d.spawn_mob(30101, 1259, 250)
d.spawn_mob(30101, 1254, 258)
d.spawn_mob(30101, 1246, 258)
d.setf("devildownstone_count", 6)
timer('devildownstone1', 300)
d.notice("Um das Portal zum Roten Drache zu aktivieren, müssen");
d.notice("die alten Siegel zerstört werden. Ihr habt nur 20 Minuten,");
d.notice("um alle 6 Siegel zu öffnen.");
end

when devildownstone1.timer begin
d.notice("Verbleibende Zeit: 15 Minuten")
timer('devildownstone2', 300)
end

when devildownstone2.timer begin
d.notice("Verbleibende Zeit: 10 Minuten")
timer('devildownstone3', 300)
end

when devildownstone3.timer begin
d.notice("Verbleibende Zeit: 5 Minuten")
timer('devildownstone4', 300)
end

when devildownstone4.timer begin
d.clear_regen()
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
pc.warp(391700, 1293100)
end

when 2510.kill with pc.in_dungeon() and d.getf("devillevel") == 6 begin
local KILL_COUNT_FOR_DROP_DEVIL_KEY = 15
local n =d.getf("count") + 1
d.setf("count", n)

if n == KILL_COUNT_FOR_DROP_DEVIL_KEY then
game.drop_item(50084, 1)
d.setf("count", 0)
end
end

when 30101.take with item.vnum == 50084 and d.getf("devillevel") == 6 begin
npc.purge()
item.remove()
d.setf("devildownstone_count", d.getf("devildownstone_count") - 1)
if d.getf("devildownstone_count") <= 0 then
d.setf("devillevel", 7)
-- Setzt die Timer von der Vorletzen EBENE auf 800000 Sec.
-- Um das nachträgliche herausfliegen zu vermeiden.
timer('devildownstone1', 800000)
timer('devildownstone2', 800000)
timer('devildownstone3', 800000)
timer('devildownstone4', 800000)
--------------------------------------------------------
d.clear_regen()
d.notice("Ihr habt alle alten Siegel geöffnet.")
d.notice("Das Portal zum Hae-Tae hat sich geöffnet.")
timer("devildown_nexttimer", 3)
else
d.notice("Es verbleibt eine Anzahl von "..d.getf("devildownstone_count").." Siegeln")
end
end

when devildown_nexttimer.timer begin
d.jump_all(4374, 12740)
-- Firstspawn !!!
d.regen_file("data/dungeon/dd_boss1.txt")
------------------
timer("devildown_bosstimer1", 60)
end

when devildown_bosstimer1.timer begin
-- 2. Spawn !!!
d.regen_file("data/dungeon/dd_boss2.txt")
------------------
timer("devildown_bosstimer2", 60)
end

when devildown_bosstimer2.timer begin
-- 3. Spawn !!!
d.regen_file("data/dungeon/dd_boss3.txt")
------------------
timer("devildown_bosstimer3", 60)
end

when devildown_bosstimer3.timer begin
-- 4. Spawn !!!
d.regen_file("data/dungeon/dd_boss4.txt")
------------------
timer("devildown_bosstimer4", 60)
end

when devildown_bosstimer4.timer begin
-- 5. Spawn !!!
d.regen_file("data/dungeon/dd_boss5.txt")
------------------
timer("devildown_bosstimer5", 60)
end

when devildown_bosstimer5.timer begin
-- 6. Spawn !!!
d.regen_file("data/dungeon/dd_boss6.txt")
------------------
timer("devildown_bosstimer_last", 60)
end

when devildown_bosstimer_last.timer begin
-- Endspawn mit Drache !!!
d.regen_file("data/dungeon/dd_boss7.txt")
local vid = d.spawn_mob(5002, 1302, 708)
d.set_unique("real", vid)
------------------
end

when 5002.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.notice("Ihr habt den Roten Drache, den Wächter des Tals von Ascaria besiegt.");
d.notice("Ihr werdet in 20 Sekunden zurück zum Anfang teleportiert..");
timer("devildown_escapetimer", 20)
end
end

when devildown_escapetimer.timer begin
d.clear_regen()
d.setf("devillevel", 0)
pc.warp(391700, 1293100)
end

end
end

Das rot makierte ist das was mit der ebene zutun hat


Lg,

Deathy
11/19/2010 01:17 Silfro#907
[Only registered and activated users can see links. Click Here To Register...]
hilfe pls
11/19/2010 11:12 Pаylasici#908
@ DeathYT2Reloaded: Deine Mapindex ist wohl falsch...
11/19/2010 12:33 Silfro#909
horse_ride
Quote:
quest horse_ride begin
state start begin
when 20349.chat."Pferd abgeben" with pc.level>=10 and pc.is_mount() begin
local msg = "Willst du dein Pferd abgeben?"
say(msg)
local s = select("Absitzen", "Beenden")
if s==1 then
pc.unmount()
end
end
when 20349.chat."Aufsitzen (Verwenden der Reitkarte)" with pc.level>=10 and not pc.is_mount() begin
--local money = 10000
if get_global_time() - pc.getqf("ride_time") < 3600 then
local no_lend_horse_yet =
"Hier kannst du dir ein Pferd mieten![ENTER]"..
"Komm wieder wenn du dich, dazu entschieden hast."
say(no_lend_horse_yet)
else
local msg =
"Bist du auf der Suche nach einem Reittier?[ENTER]"..
"Wir vermieten derzeit Pferde an denjenigen,[ENTER]"..
"die eine Reitkarte besitzen. Deine derzeitigen[ENTER]"..
"Reitkuenste ermoeglichen dir 10 Minuten reiten.[ENTER]"..
"Du kannst jedoch nicht vom Pferd aus schlagen." local no_horse_ticket = "Du besitzt keine Reitkarte."
--local horse_ticket_vnum = 50005
local horse_ticket_vnum = 50083
say(msg)
local s=select("Reiten","Nicht reiten")
if s==1 then
if pc.countitem(horse_ticket_vnum)>0 then
pc.removeitem(horse_ticket_vnum, 1)
pc.mount(20030, 600)
pc.setqf("ride_time", get_global_time())
else
say(no_horse_ticket)
end
end
end
end
end
end
bekomme immer diese fehlermeldung:

Quote:
WHEN : 20349.chat ("Pferd abgeben")
with pc . level >= 10 and pc . is_mount ( )
WHEN : 20349.chat ("Aufsitzen (Verwenden der Reitkarte)")
with pc . level >= 10 and not pc . is_mount ( )
Segmentation fault (core dumped)
11/19/2010 13:33 Drache1234#910
Segmentation fault (core dumped)

Also bei mir kommt dies nur wenn eine Quest im Questordner nicht existiert aber in der Honkonglist eingetragen ist.
11/19/2010 21:24 benim2#911
was ist falsch?

Quote:
quest regenbogen begin
state start begin
when 50513.use begin
say_title ( "Regenbogenstein" )
say ( "Hiermit kannst du eine" )
say ( "Fertigkeit perfektionieren." )
say ( "" )
wait ( )
say_title ( "Regenbogenstein" )
local result = BuildSkillList(pc.get_job(), pc.get_skill_group())

local vnum_list = result[1]
local name_list = result[2]

if table.getn(vnum_list) < 2 then
say("Es gibt keine Fertigkeiten!")
say("")
return
end
say("Welche Fertigkeit willst du auf P bringen?")
say("")

local i = select_table(name_list)

if table.getn(name_list) == i then
return
end

local name = name_list[i]
local vnum = vnum_list[i]

say_title("Regenbogenstein:")
say_reward("Dieser Stein ermöglicht es dir,")
say_reward("deine Fertigkeit auf P zu bringen!")
say(string.format("%s auf Perfekten Meister?", name))
say("")

local s = select("Ja", "Nein")
if 2 == s then
return
end

if 1 == s then
say_title("Regenbogenstein:")
say("Einmal benutzt, ist dies nicht mehr Rückgängig zu machen.")
say("Trotzdem benutzen?")
say("")

local c = select("Ja", "Nein")

if 2 == c then
return
end


if 1 == c then
pc.set_skill_level((vnum) ,59)
say_reward("Deine Fertigkeit wurde auf P gesetzt.")
say_reward("Viel Spaß weiterhin auf Ironyu.")
pc.removeitem("50513", 1)
end

end
end
11/19/2010 21:26 Mαhdin#912
Quote:
Originally Posted by benim2 View Post
was ist falsch?
Mach mal bei den letzten end die Leerzeile weg, oder was genau klappt nicht?
11/20/2010 06:42 vinni03#913
Quote:
quest gmnpc begin
state start begin
when 20041.chat begin
local left = pc.getqf("next_time") - get_time()
local left2 = left / 15
say_title("Betrunkener Bürger")
say("Hier kannst du wie ein")
say("GameMaster schreiben.")
say("")
say("Jedoch klappt dies nur 4x pro Stunde!")
say_reward("Willst du etwas ankündigen?")
local a = select("Ja","Nein")
if a == 1 then
say_title("Betrunkener Bürger")
say("Damit kannst du deine Items")
say("weitaus effektiver verkaufen. ")
say_reward("Willst du als GameMaster schreiben?")
local b = select("Ja","Nein")
if b == 1 then
if get_time() > pc.getqf("next_time")then
say_title("Betrunkener Bürger")
say_reward("Was willst du schreiben?")
local send_text = input()
notice_all(""..pc.get_name()..": "..send_text.."")
end
else
say("Du musst noch "..left2.." Minuten warten.")
end
else
return
end
else
return
end
end
end
end
Quote:
syntax error : [string "start"]:29: <eof> expected near `else'
gmnpc.quest:34:Abort trap (core dumped)
:confused:
11/20/2010 15:11 ganzliebe#914
Hi Freunde ;)
habe ein kleines problem,und hoffe die experten können mir dabei helfen ;)
also ich hätte gerne eine userpanel quest bearbeitet.aber leider bekommt es nicht jeder quest schreiber hin =(

also in dieser quest muß:GM-tool raus.pferde-tool raus,reittiere raus,so jetzt was da eingefügt werden soll,ein shop,und man soll den npc,mit dem schein Waffenwechselbon: 50116 nur öffnen können,das gleiche system wie spinnendunge 2,das man nur rein kommt mir dem schein.
Quote:
11/20/2010 17:05 6thHokage#915
Hatt sich erledigt hab mir selbst geholfen und die quest bischen anders gestaltet