Unk3n0w7 1,321 Posted March 10, 2014 Boas pessoal , hoje venho partilhar energy system dão muito geito , á files que ainda não tem tipo rain xD Quest : 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 -- 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]) < 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 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],7200) setenergy(anz,boni_list[anz][2],get_time() + 7200) cmdchat("energysystem "..anz.."|"..boni_list[anz][2].."#"..(get_time() + 7200)) setenergytime(get_time() + 7200) item.remove() chat("Du spürst die Energie des Kristalls, die sich auf deinen Körper überträgt..") end endend Questlib.lua : function setenergy(typ,value,timez) pc.setqf("energy_value", value) pc.setqf("energy_date", get_time() + timez) pc.setqf("energy_typ", typ)endfunction setenergytime(timez) pc.setqf("energy_date", timez)endfunction getenergytyp() return pc.getqf("energy_typ")endfunction getenergyvalue() return pc.getqf("energy_value")endfunction getenergytime() return pc.getqf("energy_date")endfunction 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 Stringfunction string.trim(str) return (string.gsub(str, "^%s*(.-)%s*$", "%1"))end-- String zu Array über Seperatorfunction 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 tend Quest_Functions : getenergytimegetenergytypgetenergyvaluemysql_querysetenergysetenergytimestring.trim constinfo.py (por isto depois da linha PVPMODE_PROTECTED_LEVEL) ENERGY = 0ENERGY_END_TIME = 0ENERGY_TYPE = 0ENABLE_ENERGY_SYSTEM = 1 Não se esqueca de por o interfacemodule.py e o uitaskbar.py no root Game.py : def __ServerCommand_Build(self): + "energysystem" : self.__energysystem, #Energy System Adicionar isto na parte inferior do game.py def __energysystem(self, value): import constinfo constinfo.ENERGY_TYPE = int(value[:value.find("|")]) constinfo.ENERGY = int(value[value.find("|") + 1:value.find("#")]) constinfo.ENERGY_END_TIME = int(value[value.find("#") + 1:]) É isso na raiz também. Agora descompacte-a e, em seguida, vai para o seu O locale / de / ui e por lá o energybar.py do anexo de download Agora descompacte o ETC ela e vai sob Ymir work ui pattern e la bota os arquivos que vem na pasta de download ou seja estes : É isso aí agora. No jogo agora gerar o Alquimista (20001) e será feliz que você tenha instalado. querys para item_proto :INSERT INTO `item_proto` VALUES ('51001', 0xC8B0BCAE, 0x456E657267696573706C6974746572, '0', '0', '0', '1', '0', '4', '0', '', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0');INSERT INTO `item_proto` VALUES ('51002', 0xC3E6B1E2C8AF, 0x456E65726769656B72697374616C6C, '18', '0', '0', '1', '0', '4', '0', '', '0', '0', '0', '0', '0', '0', '1', '35', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); Créditos : Fonte : Epvp 2 TMoore and BaalaaN reacted to this Share this post Link to post Share on other sites
rdk123456 0 Posted August 18, 2015 nao sei como trabalhar com esses codigos se puderes ajudar Share this post Link to post Share on other sites