Hey Leute, hier mal eine kleine Quest, welche ich aus Langeweile gescriptet habe. Damit kann man ein Item auf den Betrunkenen Bürger ziehen (Vnum <= 10 und >= 169) und dafür bekommt man ein zufälliges Item im Bereich (19-189 +9).
PHP Code:
quest itemtausch begin
-- Quest by Sorika -- Copyright: Sorika Questline GmbH & Co.Kg for Fantasy-Network Fantasy Metin2™ -- Für Fantasy-MT2
state start begin when 20041.take with item.get_id() begin vnum = item.get_vnum() say_title("Betrunkener Bürger:") say_gold("Wuadhkwanakfeunakaufen?") say_gold("Sa..Sac..Sachen Tauschen?") say("") say("") local s = select("Ja","Nein") if s==2 then return elseif s==1 then say_gold("Item tauschen?") say("") say("") say_item_vnum(vnum) say("") say("") say("") local s1 = select("Ja","Nein") if s1 == 2 then return elseif s == 1 and vnum >= 10 and vnum <= 169 then say_title("Betrunkener Bürger:") say("") say_gold("Du hast ein zufälliges Item[ENTER]gegen dein jetziges getauscht") say("") local tausch = {19, 29, 39, 49, 59, 69, 79, 89, 99, 109, 119, 129, 139, 149, 159, 169, 179, 189} local item item = tausch[number(1, table.getn(tausch))] pc.give_item2(item, 1) pc.remove_item(vnum, 1) say_gold("Du hast folgendes Item erhalten:") say("") say_item_vnum(item) else say_title("Betrunkener Bürger:") say("") say("") say_gold("Benutze nur ein passendes Item") end end end end end
Natürlich ist diese auch beliebig veränderbar, nur lasst bitte das Copyright drinne.
Hier mal ne kleine Quest mit der ihr ein random Mob spawnen könnt.
Ihr könnt die Ids für das/die Items anpassen, sowie die Mob Ids.
(Derzeit sind irgendwelche Items drinnen, die die Erze spawnen)
PHP Code:
quest erzespawn begin state start begin when 71057.use or 71058.use or 71059.use or 71060.use or 71061.use or 71062.use or 710563.use or 71064.use or 71065.use or 71066.use or 71067.use begin local b = { 20047, 20048, 20049, 20050, 20051, 20052, 20053, 20054, 20055, 20056, 20057, 20058, 20059} mob.spawn(table.getn(b), pc.get_local_x(), pc.get_local_y(), 0, 0) end end end
Hier ein weiteres Release einer kleinen Quest von mir. Wie bei der letzten dürft ihr sie beliebig verändern (müsst ihr zum Teil auch aufgrund der NPC Vnums). Bei Fragen zögert nicht, mir eine PN zu schreiben.
PHP Code:
quest ginsengsammler begin
-- Quest by Sorika -- Copyright: Sorika Questline GmbH & Co.Kg for Fantasy-Network Fantasy Metin2™ -- Für Fantasy-MT2
state start begin when login or levelup with pc.get_level() > 49 begin send_letter("Autopsie") end when info or button begin say_title("Autopsie") say("") say("Es gibt schreckliche Nachrichten.") say("Es wurde eine leblose Person im Orktal entdeckt.") say("Er war ein Ginsengsammler.[ENTER]Ich habe gehört du bist Pathologe.") say("Würdest du ihn bitte untersuchen[ENTER]und die Todesursache feststellen?") local s = select("Ja mach ich", "Später vielleicht") if s == 2 then return elseif s == 1 then say("Du wirst nun zum Ginsengsammler geportet.") say("") wait() pc.warp( 350300 , 741100 ) end set_state( ginseng ) end end
state ginseng begin when 20356.chat."Autopsie" begin say_title("".. pc.get_name() ..":") say("Ich sollte wohl mit der Untersuchung beginnen.") say("Blaue Verfärbungen am Ventriculus") say("Druckstellen am Thorax.") say("Anscheinend wurde er tot geprügelt.") say("...") say("Oder er ist tot, weil er kein Herz mehr hat...") say("Soll ich ihn weiter untersuchen?") local s2 = select("Ja ein wenig", "Nein, ich gebe mein Ergebnis ab") if s2 == 1 then say("Mir fällt nichts weiter ein.") say("Ich gebe wohl besser mein Ergebnis ab.") wait() return elseif s2 == 2 then say("Okay, dann schreibe ich nun meinen Bericht.") say("Ich sollte zum Hauptmann gehen,[ENTER]er weiß, was zu tun ist.") wait() if pc.get_empire() == 1 then pc.warp( 474300 , 954800 ) elseif pc.get_empire() == 2 then pc.warp( 64000 , 164400 ) elseif pc.get_empire() == 3 then pc.warp( 963100 , 268800 ) end end set_state( hauptmann ) end end
state hauptmann begin when letter begin send_letter("Autopsie") end when info or button begin say_title("".. pc.get_name() ..".") say("Geh bitte zum Hauptmann[ENTER]und gebe deinen Bericht ab") say("Er wartet schon auf dich") say("") say("") set_state( hauptmann2 ) end end
state hauptmann2 begin when letter begin local v = find_npc_by_vnum(20239) if v != 0 then target.vid("__TARGET__", v, "Samanta") end end when __TARGET__.target.click or 20355.chat."Autopsie" begin say_title("Hauptmann:") say("Hallo ".. pc.get_name() ..".") say("Danke für deinen Autopsie Bericht") say("Ich werde dich in Zukunft noch einmal[ENTER]ansprechen und kontaktieren müssen.") say("Bis dahin bekommst du eine Belohnung von mir.") say_reward("1.000.000 Yang") pc.change_money( 1000000 ) set_state ( __COMPLETE__ ) end end
quest statistik begin state start begin when login begin pc.setqf("gesamt_logins", pc.getqf("gesamt_logins")+1) game.set_event_flag("gesamt_logins", game.get_event_flag("gesamt_logins")+1) end when logout begin pc.setqf("gesamt_logouts", pc.getqf("gesamt_logouts")+1) game.set_event_flag("gesamt_logouts", game.get_event_flag("gesamt_logouts")+1) end when kill begin if npc.is_pc() then pc.setqf("gesamt_kills2", pc.getqf("gesamt_kills2")+1) game.set_event_flag("gesamt_kills2", game.get_event_flag("gesamt_kills2")+1) else pc.setqf("gesamt_kills", pc.getqf("gesamt_kills")+1) game.set_event_flag("gesamt_kills", game.get_event_flag("gesamt_kills")+1) end end when 20095.chat."Statistik" begin say("Hier kannst du Statistiken deines Charakters,") say("sehen, und die Statistik Löchen/Resetten!") say("Achtung!, Leider werden Mob´s die in") say("anderen Quest´s vorkommen nicht gezählt!") say("Ausserdem wird ein Porten als") say("Login u. Logout gezählt!") say("") say_reward("Was möchtest du machen?") local s = select("Statistik ansehen","Statistik Zurücksetzen","Schließen") if s == 1 then say("Hier ist die Statistik:") say("") say("Gesamte Logins: "..pc.getqf("gesamt_logins")) say("Gesamte Logouts: "..pc.getqf("gesamt_logouts")) say("Gesamte Mob Kills: "..pc.getqf("gesamt_kills")) say("Gesamte Char Kills: "..pc.getqf("gesamt_kills2")) elseif s == 2 then say_reward("Willst du wirklich deine Statistiken zurücksetzen?") local r = select("Ja","Nein") if r == 1 then pc.setqf("gesamt_logins", 0) pc.setqf("gesamt_logouts", 0) pc.setqf("gesamt_kills", 0) pc.setqf("gesamt_kills2", 0) say("Deine Statistik wurde zurückgesetzt!") end end end when 20095.chat."Serverstatistik" with pc.is_gm() begin say_reward("Hier ist die Statistik von den ganzen Server") say("") local e = select("Statistik ansehen","Statistik Zurücksetzen","Schließen") if e == 1 then say("Hier ist die Statistik:") say("") say("Gesamte Logins: "..game.get_event_flag("gesamt_logins")) say("Gesamte Logouts: "..game.get_event_flag("gesamt_logouts")) say("Gesamte Mob Kills: "..game.get_event_flag("gesamt_kills")) say("Gesamte Char Kills: "..game.get_event_flag("gesamt_kills2")) elseif e == 2 then say_reward("Willst du wirklich die ganze Serverstatistik zurücksetzen?") local t = select("Ja","Abbrechen") if t == 1 then game.set_event_flag("gesamt_logins", 0) game.set_event_flag("gesamt_logouts", 0) game.set_event_flag("gesamt_kills", 0) game.set_event_flag("gesamt_kills2", 0) say("Die Gesamte Serverstatistik wurde zurückgesetzt!") end end end end end
In dem Ordner sind folgende Sachen zu finden:
-Query´s
-Item Proto
-Item List
-Msm´s (eyvil)
-Pack Dateien
How To Serverside:
-Öffnet Navicat
-Öffnet unter Player die Item Proto
-Wählt "File" und Querytable
-Macht hinter dem ; Enter und fügt die Query´s aus dem "Beta Sachen" Ordner rein und drückt auf Run
-Speichern und man kann Navicat schließen.
-Rebooten
Clientside
-Entpackt die Locale eix/epk
-Sucht euch die Itemproto raus
-Entpackt die Itemproto
-Editiert die Item Proto Dumb mit Notepad und fügt die Sachen aus der Item_Proto Clientside ein. (Im Ordner "Beta-Sachen").
-Packt die Item Proto wieder und zieht sie zurück in den Ordner wo sie war.
-Als nächstes schnappt ihr euch die Itemlist und kopiert die Sachen aus der Itemlist im Ordner "Beta Sachen" rein. (In die Itemlist in den Entpackten Locale Ordnern)!
-Packt die Locale wieder und zieht sie zurück in euren Clienten.
-Entpackt die Root eix/epk
-Geht in Source und kopiert die Sachen aus "msm (eyvil)" raus und fügt sie in den Entpackten Root Ordner rein.
Packt die Root eix/epk wieder und zieht sie zurück in euren Clienten.
Als nächstes geht ihr in "Beta Sachen" in Pack und kopiert die beiden Datein raus und Kopiert sie in euren Clienten.
Zum Schluss schreibt ihr dies noch in "Index" (in euren Clienten) rein.
Nun sollte rebootet sein und ihr könnt den Server starten!
Viel Spaß mit dem 105er EQ!
Die Leute die bei den Invoice Files (Oder die unbugged von Green) das Problem haben das eine neue Map nicht geht und man zurück in den Login gekickt wird, komischer weise gehts bei mir wenn ich eine Mapindex nehme unter 255
Guten Tag Elitepvpers,
Da viele User immer noch keine Seelenstein Quest haben die zu 100% geht & keine Rangpunkte abzieht release ich mal eine.
PHP Code:
quest Seelenstein begin state start begin function BuildPerfectMasterSkillList(job, group) GRAND_MASTER_SKILL_LEVEL = 30 PERFECT_MASTER_SKILL_LEVEL = 40
local skill_list = special.active_skill_list[job+1][group] local ret_vnum_list = {} local ret_name_list = {}
table.foreach(skill_list, function(i, skill_vnum) local skill_level = pc.get_skill_level(skill_vnum)
-- test_chat(string.format("[%d]=%d", skill_vnum, skill_level)) if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
table.insert(ret_vnum_list, skill_vnum) local name=locale.GM_SKILL_NAME_DICT[skill_vnum] if name == nil then name=skill_vnum end table.insert(ret_name_list, name) end end) return {ret_vnum_list, ret_name_list}
--return {ret_vnum_list, ret_name_list} end when 50513.use begin local count = pc.count_item(50513) pc.setqf("regen_count", count) if pc.get_skill_group() == 0 then say("Du hast noch keine Fertigkeiten.") say("Versuche es später erneut.") return end local result = regenbogenstein.BuildPerfectMasterSkillList(pc.get_job(), pc.get_skill_group()) local vnum_list = result[1] local name_list = result[2] if table.getn(vnum_list) == 0 then say("Du hast keine Fertigkeiten.") return end local menu_list = {} table.foreach(name_list, function(i, name) table.insert(menu_list, name) end) table.insert(menu_list, "Abbrechen") local s=select_table(menu_list) if table.getn(menu_list) == s then return end local skill_name=name_list[s] local skill_vnum=vnum_list[s] say("Möchtest du "..skill_name.." wirklich erhöhen?") local wahl = select("Ja", "Nein") if wahl == 1 then if pc.count_item(50513) == pc.getqf("regen_count") then pc.set_skill_level(skill_vnum, pc.get_skill_level(skill_vnum)+1) say(skill_name.." wurde erhöht.") else say("Buguser bekommen keine P-Skills ! ") end elseif wahl == 2 then return end pc.remove_item(50513, 1) end end end
Kleine Shop Quest für Gemi mit Texten.
Ich weiss, dass das nichts dolles ist aber wollte es einfach mal teilen, weil die shop quests die man sonst so findet so stumpf sind finde ich.
PHP Code:
quest gemi_shop begin state start begin when 9003.click begin say_title("Gemischtwarenhändlerin") say("") say("Willkommen bei der Gemischtwarenhändlerin!") say("Alles was du im Alltag brauchst findest du hier.") say("") say_reward("Welchen Shop möchtest du öffnen?") local shop = select("Itemshop", "Tränke", "Frisuren", "Abbrechen") if shop == 1 then npc.open_shop(1) setskin(NOWINDOW) end if shop == 2 then npc.open_shop(2) setskin(NOWINDOW) end if shop == 3 then say_title("Frisuren") say("") say_reward("Für welche Rasse suchst du eine Frisur?") local race = select("Krieger", "Ninja", "Sura", "Schamane", "Abbrechen") if race == 1 then npc.open_shop(10) setskin(NOWINDOW) end if race == 2 then npc.open_shop(11) setskin(NOWINDOW) end if race == 3 then npc.open_shop(12) setskin(NOWINDOW) end if race == 4 then npc.open_shop(13) setskin(NOWINDOW) end if race == 5 then return end end if shop == 4 then return end end end end
quest gold begin state start begin when login begin pc.change_gold("100000000") set_state(__COMPLETE__) end end state __COMPLETE__ begin end end
Schnell laufen ohne Windschuhe:
PHP Code:
quest test begin state start begin when login begin if pc.getqf("speed")==0 then affect.add_collect(apply.MOV_SPEED, 300,60*60*24*365*12*24) pc.setqf("speed",1) end end end end
TP Regenerations Quest:
PHP Code:
quest tp_bug_fix begin state start begin when login begin affect.add_collect(apply.HP_REGEN, 500000, 3) affect.add_collect(apply.SP_REGEN, 500000, 3) end end end