ich hab mich eben an das Energy-System noch einmal rangesetzt. Eigentlich ist es ja so, das man alle Items die über Level 30 sind eintauschen. Da dies bei meinem Server wenig sinn hat, hab ich mir gedacht, dass man nur bestimmte Items eintauschen kann. Sagen wir 5 bestimmte Items. Diese kann man dann dort einlösen und Energysplitter herstellen.
Meine Quest:
Code:
quest energy_sys begin state start begin when 20001.chat."Eine neue Technik" with (game.get_event_flag("energy") == 1 or pc.is_gm() == true) begin say_title("Alchemist") say("Ich habe es geschafft!") say("Endlich konnte ich eine vollkommen neue Technik") say("entwickeln.") say("Ich habe es möglich gemacht, Gegenstände") say("weiterzuverarbeiten und pure Energie aus ihnen zu") say("ziehen. Absolut brillant!") wait() say_title("Alchemist") say("Zerstört man einen Gegenstand mithilfe meiner") say("Technik, erhält man Energiesplitter. Fügt man 25") say("dieser Splitter zusammen, erhält man einen") say("machtvollen Energiekristall! Reine, ungefilterte") say("Energie, gebündelt in einem Edelstein. Diese") say("Kraft fließt in deine gesamte Ausrüstung.") say("Hast du Interesse daran?") wait() say_title("Alchemist") say("Bring Ausrüstungsgegenstände wie Waffen, Schmuck") say("und Kleidung, die du auf deiner") say("Jagt findest, zu mir. Ich werde sie zu") say("Energiesplittern verarbeiten.") say("Zukunft und Hoffnung unseres Reiches liegen in") say("dieser Technik. Wir werden unbesiegbar!") set_state("make") end end state make begin when 20001.chat."Energiesplitter extrahieren" with (game.get_event_flag("energy") == 1 or pc.is_gm() == true) begin say_title("Alchemist") say("Hallo Fremder!") say("Bring mir Gegenstände und ich werde") say("sie mithilfe der Alchemie zerbrechen und") say("daraus pure Energiesplitter herstellen.") say("Meine Technik ist noch nicht ganz ausgefeilt.") say("Deswegen kann ich dir nicht garantieren, wie") say("viele Splitter du erhälst.") wait() say_title("Alchemist") say("Es gibt eine Bedingung:") say("") say("Dein Level, sowohl auf das Level deiner") say("Gegenstände muss Level 120.") say("Hm, schauen wir einfach mal...") wait() if pc.get_level() < 120 then say_title("Alchemist") say("Du bist noch nicht stark genug! Komm wieder,") say("wenn du mindestens Level 120 erreicht hast.") else -- NICHT DE say_title("Alchemist") say("Ok du bist Stark genug für meine neue") say("Entdeckung.") end end when 20001.chat."Energiekristall herstellen" with (game.get_event_flag("energy") == 1 or pc.is_gm() == true) begin say_title("Alchemist") say("Hast du deine Kraftreserven etwa schon") say("aufgebraucht? Du solltest nicht so hart arbeiten") say("und dein Leben leichtsinnig aufs Spiel setzen.") say("Um einen Energiekristall herzustellen, benötige") say("ich 25 Energiesplitter.") wait() if pc.get_level() < 120 then say_title("Alchemist") say("Du bist noch nicht stark genug! Komm wieder,") say("wenn du mindestens Level 120 erreicht hast.") else if pc.count_item(51001) >= 25 then say_title("Alchemist") say("Sehr schön du hast alle benötigten 25") say("Energiesplitter. Daraus kann ich einen") say("Energiekristall herstellen.") say("Warte bitte einen Moment. Ich werde es") say("versuchen, aber ich kann nicht garantieren,") say("dass es funktioniert.") wait() say_title("Alchemist") say("Alles ist bereit, um die Splitter zu einem") say("Energiekristall zu verschmelzen.") say("Doch von irgendwas muss ich leben und") say("meine Werkzeuge fallen nicht einfach so vom") say("Himmel. Ich verlange einen kleinen") say("Unkostenbeitrag von 50kk Yang. Bist du bereit, zu") say("bezahlen?") if select("Selbstverständlich!","Nein, jetzt nicht") == 2 then return end pc.change_money(-50000000) pc.remove_item(51001,25) if number(0,1) == 1 then say_title("Alchemist") say("Ich wusste meine Technik ist brilliant!") say("Hier ist dein Energiekristall.") say("Ein Prachtexemplar! Spürst du die Kraft?") pc.give_item2(51002,1) else -- NICHT DE say_title("Alchemist") say("Leider hat es nicht geklappt") say("einen Energiekristall herzustellen!") return end else -- NICHT DE say_title("Alchemist") say("Du hast leider nicht alle benötigten 25") say("Energiesplitter. Daraus kann ich nichts") say("herstellen.") return end end end when 20001.take with game.get_event_flag("energy") == 1 or pc.is_gm() == 1 begin if pc.get_level() < 120 then say_title("Alchemist") say("Du bist noch nicht stark genug, um die Kraft, die") say("den Energiesplittern innewohnt, zu beherrschen.") say("Komm wieder wenn du mindestens Level 120") say("erreicht hast.") return end if item.get_type() == 1 or item.get_type() == 2 then -- 2070 - 2239 -- 80 - 369 -- 1040 - 1189 -- 3070 - 3249 -- 5040 - 5359 -- 4030 - 4069 -- 7070 - 7219 -- 11250 - 11299 -- 11450 - 11499 -- 11650 - 11699 -- 11850 - 11899 -- 12240 - 12699 local maxlvl = mysql_query("SELECT limitvalue0 FROM player.item_proto WHERE vnum='"..item.get_vnum().."' LIMIT 1;") test_chat(maxlvl[1][1]) if tonumber(maxlvl[1][1]) < 120 then -- NICHT DE say_title("Alchemist") say("Dieses Item ist nicht geeignet!") return end say_title("Alchemist") say(string.trim(item.get_name())) say("Soll ich diesen Gegenstand zerstören?") if select("Ja!","Nein, noch nicht!") == 2 then return else local anzahl = number(0,15) if anzahl > 0 then say_title("Alchemist") say("Sagenhaft! Ich konnte "..anzahl.." Energiesplitter finden.") say("Bitte sehr.") pc.give_item2(51001, anzahl) else say_title("Alchemist") say("Ich habe versagt - leider konnte ich keinen") say("Energiesplitter extrahieren. Vielleicht klappt es") say("beim nächsten Versuch.") return end item.remove() end else -- NICHT DE say_title("Alchemist") say("Dieses Item ist nicht geeignet!") end end when login begin if getenergytime() < 50000 then test_chat("[Energy]Restzeit: "..getenergytime()) setenergytime(getenergytime() + get_time()) cmdchat("energysystem "..getenergytyp().."|"..getenergyvalue().."#"..getenergytime()) end end when logout begin if getenergytime() > get_time() then local energy = getenergytime() - get_time() if energy > 0 then setenergytime(energy) end end end when 51002.use begin if getenergytime() > get_time() then chat("Du benutzst schon die Energie eines Energiekristalls!") return end local anz = number(1,10) boni_list = {} boni_list [1] = {apply.ATTBONUS_HUMAN, 15} boni_list [2] = {apply.ATTBONUS_MONSTER, 10} boni_list [3] = {apply.CRITICAL_PCT, 10} boni_list [4] = {apply.PENETRATE_PCT, 10} boni_list [5] = {apply.MAX_HP, 1000} boni_list [6] = {apply.MAX_SP, 2000} boni_list [7] = {apply.HP_REGEN, 30} boni_list [8] = {apply.STEAL_HP, 10} boni_list [9] = {apply.ATT_GRADE_BONUS, 75} boni_list [10] = {apply.ATT_GRADE_BONUS, 50} test_chat(anz) test_chat(boni_list[anz][1]) test_chat(boni_list[anz][2]) affect.add_collect(boni_list[anz][1],boni_list[anz][2],10800) setenergy(anz,boni_list[anz][2],get_time() + 10800) cmdchat("energysystem "..anz.."|"..boni_list[anz][2].."#"..(get_time() + 10800)) setenergytime(get_time() + 10800) item.remove() chat("Du spürst die Energie des Kristalls, die sich auf deinen Körper überträgt..") end end end
Ich habe mich damit etwas beschäftigt und man muss meiner Meinung nach an dieser Stelle etwas ändern.
Code:
local maxlvl = mysql_query("SELECT limitvalue0 FROM player.item_proto WHERE vnum='"..item.get_vnum().."' LIMIT 1;") test_chat(maxlvl[1][1]) if tonumber(maxlvl[1][1]) < 120 then -- NICHT DE say_title("Alchemist") say("Dieses Item ist nicht geeignet!") return end
MfG