Da gestern einer meinte das verkaufte System von mir und LordMampf2 zu Releasen mache ich es nun Public.
Die Erlaubnis von LordMampf2 habe ich dazu auch.
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 30") 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("Hat es funktioniert? Hast du Energiesplitter") say("bekommen?") say("Bring mir mehr Gegenstände und ich werde ") say("sie mithilfe der Alchemie zerbrechen.") 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: Sowohl dein eigener als") say("auch der Level des Gegenstandes muss") say("mindestens 35 sein.") say("Hm, schauen wir einfach mal...") wait() if pc.get_level() < 35 then say_title("Alchemist") say("Du bist noch nicht stark genug! Komm wieder,") say("wenn du mindestens Level 35 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 30 Energiesplitter.") wait() if pc.get_level() < 35 then say_title("Alchemist") say("Du bist noch nicht stark genug! Komm wieder,") say("wenn du mindestens Level 35 erreicht hast.") else if pc.count_item(51001) >= 30 then say_title("Alchemist") say("Sehr schön du hast alle benötigten 30") 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 1000 Yang. Bist du bereit, zu") say("bezahlen?") if select("Selbstverständlich!","Nein, jetzt nicht") == 2 then return end
pc.change_money(-1000) pc.remove_item(51001,30)
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 30") 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() < 35 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 35") say("erreicht hast.") return end
if item.get_type() == 1 or item.get_type() == 2 then
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]) < 35 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
function setenergy(typ,value,timez) pc.setqf("energy_value", value) pc.setqf("energy_date", get_time() + timez) pc.setqf("energy_typ", typ) end function setenergytime(timez) pc.setqf("energy_date", timez) end function getenergytyp() return pc.getqf("energy_typ") end function getenergyvalue() return pc.getqf("energy_value") end function getenergytime() return pc.getqf("energy_date") end
function split(str, delim, maxNb) if str == nil then return str end if string.find(str, delim) == nil then return { str } end if maxNb == nil or maxNb < 1 then maxNb = 0 end local result = {} local pat = "(.-)" .. delim .. "()" local nb = 0 local lastPos for part, pos in string.gfind(str, pat) do nb = nb + 1 result[nb] = part lastPos = pos if nb == maxNb then break end end if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end return result end
mysql_query = function(query) local rt = io.open('CONFIG','r'):read('*all') local pre= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4') math.randomseed(os.time()) local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{} os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi); for i = 2, table.getn(t) do table.foreach(t[i],function(a,b) out[i-1] = out[i-1] or {} out[i-1][a] = b out[t[1][a]] = out[t[1][a]] or {} out[t[1][a]][i-1] = b end) end return out end
-- Entferne Leerzeichen vor und nach dem String function string.trim(str) return (string.gsub(str, "^%s*(.-)%s*$", "%1")) end -- String zu Array über Seperator function string.explode(str, sep) if sep == "" or str == "" then error("Fehlende Parameter") end local pos, t = 1, {} for s, e in function() return string.find(str, sep, pos) end do table.insert(t, string.trim(string.sub(str, pos, s-1))) pos = e+1 end table.insert(t, string.trim(string.sub(str, pos))) return t end
Das war es dort auch.
Da einige zu blöde sind die neuen Funktionen in die quest_functions zu adden Liste ich sie hier auch nochmal auf.
Special Thanks:
LordMampf2 Weil er der beste is <3
XxxGaGaxxX für die sehr intelligenten Skype Gespräche
•kяyteя• weil Baum
Video Tut von JediMax
Quest um das ganze zu Managen
PHP Code:
quest energy_manage begin state start begin when 20001.chat."Energy Manage" with pc.is_gm() begin say_title("Hi retard!") say("So what do you want to do ?") local s = select("Start","Stop","Cancel") if s == 1 then game.set_event_flag("energy",1) notice_all("Energy event started!") elseif s == 2 then game.set_event_flag("energy",0) notice_all("Energy event closed!") elseif s == 3 then return end end end end
Da gestern einer meinte das verkaufte System von mir und LordMampf2 zu Releasen mache ich es nun Public.
Die Erlaubnis von LordMampf2 habe ich dazu auch.
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 30") 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("Hat es funktioniert? Hast du Energiesplitter") say("bekommen?") say("Bring mir mehr Gegenstände und ich werde ") say("sie mithilfe der Alchemie zerbrechen.") 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: Sowohl dein eigener als") say("auch der Level des Gegenstandes muss") say("mindestens 35 sein.") say("Hm, schauen wir einfach mal...") wait() if pc.get_level() < 35 then say_title("Alchemist") say("Du bist noch nicht stark genug! Komm wieder,") say("wenn du mindestens Level 35 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 30 Energiesplitter.") wait() if pc.get_level() < 35 then say_title("Alchemist") say("Du bist noch nicht stark genug! Komm wieder,") say("wenn du mindestens Level 35 erreicht hast.") else if pc.count_item(51001) >= 30 then say_title("Alchemist") say("Sehr schön du hast alle benötigten 30") 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 1000 Yang. Bist du bereit, zu") say("bezahlen?") if select("Selbstverständlich!","Nein, jetzt nicht") == 2 then return end
pc.change_money(-1000) pc.remove_item(51001,30)
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 30") 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() == true) begin if pc.get_level() < 35 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 35") say("erreicht hast.") return end
if item.get_type() == 1 or item.get_type() == 2 then
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]) < 35 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
function setenergy(typ,value,timez) pc.setqf("energy_value", value) pc.setqf("energy_date", get_time() + timez) pc.setqf("energy_typ", typ) end function setenergytime(timez) pc.setqf("energy_date", timez) end function getenergytyp() return pc.getqf("energy_typ") end function getenergyvalue() return pc.getqf("energy_value") end function getenergytime() return pc.getqf("energy_date") end
function split(str, delim, maxNb) if str == nil then return str end if string.find(str, delim) == nil then return { str } end if maxNb == nil or maxNb < 1 then maxNb = 0 end local result = {} local pat = "(.-)" .. delim .. "()" local nb = 0 local lastPos for part, pos in string.gfind(str, pat) do nb = nb + 1 result[nb] = part lastPos = pos if nb == maxNb then break end end if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end return result end
mysql_query = function(query) local rt = io.open('CONFIG','r'):read('*all') local pre= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4') math.randomseed(os.time()) local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{} os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi); for i = 2, table.getn(t) do table.foreach(t[i],function(a,b) out[i-1] = out[i-1] or {} out[i-1][a] = b out[t[1][a]] = out[t[1][a]] or {} out[t[1][a]][i-1] = b end) end return out end
-- Entferne Leerzeichen vor und nach dem String function string.trim(str) return (string.gsub(str, "^%s*(.-)%s*$", "%1")) end -- String zu Array über Seperator function string.explode(str, sep) if sep == "" or str == "" then error("Fehlende Parameter") end local pos, t = 1, {} for s, e in function() return string.find(str, sep, pos) end do table.insert(t, string.trim(string.sub(str, pos, s-1))) pos = e+1 end table.insert(t, string.trim(string.sub(str, pos))) return t end
Das war es dort auch.
Da einige zu blöde sind die neuen Funktionen in die quest_functions zu adden Liste ich sie hier auch nochmal auf.
Nun entpackt ihr eure locale_de und geht dann zu locale/de/ui und packt dort die energybar.py aus dem Anhang rein.
Das wars in der locale_de dann.
Nun entpackt ihr eure ETC und geht unter ymir work\ui\pattern\
dort kopiert ihr den Ordner EnergyGauge rein und packt die ETC wieder.
Das wars nun auch schon. Ingame nun den Alchemist spawnen (20001) und sich freuen das ihr es eingebaut habt.
Special Thanks:
LordMampf2 Weil er der beste is 3>
.Restince für den schlimmen Fehler von vorhin
XxxGaGaxxX für die sehr intelligenten Skype Gespräche
•kяyteя• weil Baum
SYSERR: Oct 3 16:23:22 :: GetServerLocation: location error name [SA]Cc mapindex 208 960129 x 958053 empire 3
SYSERR: Oct 3 16:23:22 :: GetServerLocation: cannot find server for mapindex 41 969600 x 278400 (name [SA]Cc)
Endlich mal ein Vernünftiger User
Releast was er auch wirklich selbst mit seiner Bande erstellt hat.
Ich hoffe nur das andere es auch so sehen da vor ein paar Tagen hat jemand anders, dass Energy System Pub gemacht obwohl es gar nicht seins war.
[Release] Energy-System 08/09/2012 - Metin2 PServer Guides & Strategies - 50 Replies jo...
I love you Awesoome ;D
Im Anhang befindet sich alles was man brauch.
mfg Zymos