Originally Posted by Kilroy.
Die Texte solltest du allerdings nochmal anpassen, die Funktion hab ich jetzt übernommen.
PHP Code:
quest regenbogenstein begin state start begin function BuildPerfectMasterSkillList(job, group, grand, perfekt) GRAND_MASTER_SKILL_LEVEL = grand PERFECT_MASTER_SKILL_LEVEL = perfekt
local skill_list = special.active_skill_list[job+1][group] local ret_vnum_list = {} local ret_name_list = {}
-- test_chat(string.format("job=%d, group=%d", job, group))
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 50512.use begin say_title("Regenbogenstein") say("") say("Was möchtest du tun?") var = select("Skill von M auf G", "Skill von G auf P", "Gar nichts") if var == 3 then return elseif var == 1 then local count = pc.count_item(50512) 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(), 20, 30) local vnum_list = result[1] local name_list = result[2] if table.getn(vnum_list) == 0 then say("Du hast keine Großmeister-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 auf P skillen?") local wahl = select("Ja", "Nein") if wahl == 1 then if pc.count_item(50512) == pc.getqf("regen_count") then pc.set_skill_level(skill_vnum, 30) say(skill_name.." wurde auf Perfekten Meister gesetzt.") else say("Buguser bekommen keine P-Skills ! ") end elseif wahl == 2 then return end pc.remove_item(50512, 1) elseif var == 2 then local count = pc.count_item(50512) 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(), 30, 40) local vnum_list = result[1] local name_list = result[2] if table.getn(vnum_list) == 0 then say("Du hast keine Großmeister-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 auf P skillen?") local wahl = select("Ja", "Nein") if wahl == 1 then if pc.count_item(50512) == pc.getqf("regen_count") then pc.set_skill_level(skill_vnum, 59) say(skill_name.." wurde auf Perfekten Meister gesetzt.") else say("Buguser bekommen keine P-Skills ! ") end elseif wahl == 2 then return end pc.remove_item(50512, 1) end end end end
__________________________________________
Von der Questführung mal abgesehen, habe ich das ganze nen bisschen gepimpt und es sieht sauberer aus. Ganz unten ist die neue Seite eingefügt.(Bearbeiten kannste das hoffe ich selber)
PHP Code:
quest warpring begin state start begin when 70007.use begin say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") local empire = pc.get_empire() local map = select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen") if map == 8 then return end say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") if map== 1 then local map=select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen") if map == 4 then return end warp = { {474300, 954800}, {63800, 166400}, {959900, 269200} } pc.warp(warp[map][1], warp[map][2]) elseif map ==2 then local map = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen") if map == 4 then return end warp = { {353100, 882900}, {145500, 240000}, {863900, 246000} } pc.warp(warp[map][1], warp[map][2]) elseif map == 3 then local map = select("Anfang","Mitte","Abbrechen") if map == 3 then return end if map == 2 then pc.warp(332800, 745600) return end warp = { {402100, 673900}, {270400, 739900}, {321300, 808000} } pc.warp(warp[empire][1], warp[empire][2]) elseif map == 4 then local map = select("Anfang","Mitte","Abbrechen") if map == 3 then return end if map == 2 then pc.warp(296800, 547100) return end warp = { {217800, 627200}, {221900, 502700}, {344000, 502500} } pc.warp(warp[empire][1], warp[empire][2]) elseif map == 5 then local map = select("Anfang","Mitte","Abbrechen") if map == 3 then return end if map == 2 then pc.warp(436500, 215400) return end warp = { {434200, 290600}, {375200, 174900}, {491800, 173600} } pc.warp(warp[empire][1], warp[empire][2]) elseif map == 6 then local map = select("Anfang","Mitte","Abbrechen") if map == 3 then return end if map == 2 then pc.warp(600800, 687100) return end warp = { {599400, 756300}, {597800, 622200}, {730700, 689800} } pc.warp(warp[empire][1], warp[empire][2]) elseif map == 7 then local map = select("Dämonenturm","Geisterwald","Roter Wald","Spinnendungeon 2","Grotte der Verbannung","Land der Riesen","Weiter", "Abbrechen") if map == 8 then return end say_title("Warpring") say("Wohin möchtest du Teleportiert werden?") if map == 1 then pc.warp(590500,110800) elseif map== 2 then local map = select("Anfang","Ende","Abbrechen") if map ==3 then return elseif map == 1 then pc.warp(290500,5700) elseif map == 2 then pc.warp(286400,44200) end elseif map == 3 then pc.warp(1119900,70800) elseif map == 4 then pc.warp(704000, 4627) elseif map == 5 then pc.warp(10000, 1214200) elseif map == 6 then pc.warp(819200, 716800) elseif map == 7 then map = select("Platz 1","Platz 2","Platz 3","Platz 4","Platz 5","Platz 6","Platz 7") end end end end end
_______________________________________________
Ingame = Name ingame ( [ ] in Quests nicht möglich darum ( ) verwenden)
db = Name in DB
Halte am besten die Reihenfolge der Namen bei damit auch das richtige angezeigt wird.
PHP Code:
quest online_gm begin state start begin when login with pc.is_gm() and game.get_event_flag(pc.get_name())==0 begin game.set_event_flag(pc.get_name(), 1) setskin(NOWINDOW) end when logout with pc.is_gm() and game.get_event_flag(pc.get_name())==1 begin game.set_event_flag(pc.get_name(), 0) setskin(NOWINDOW) end when letter begin send_letter("GM-Online-Liste") end when button or info begin ingame = {"(GM)Hello", "(GM)Muu", "(SA)Laa"} db = {"[GM]Hello", "[GM]Muu", "[SA]Laa"} say_title("GM-Online-Liste") say("") for i=1, table.getn(ingame), 1 do if game.get_event_flag(db[i])== 0 then say_red(ingame[i].." ; Offline") elseif game.get_event_flag(db[i]) == 1 then say_green(ingame[i].." ; Online") end end say_reward("") say("Natürlich sind mit '(' ')' Klammern die eckigen") say("GM-Klammern gemeint.") if select("OK")==1 then send_letter("GM-Online-Liste") return end end end end
|