antiblock
Elveron
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
Sign in to follow this  
Unk3n0w7

[Release] Energy System

3 posts in this topic

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 :

Imagem colocada
 
É 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 :

Imagem colocada

Fonte : 

Epvp

 

Share this post


Link to post
Share on other sites
antiblock
Elveron

sinval 2

Share this post


Link to post
Share on other sites

nao sei como trabalhar com esses codigos se puderes ajudar

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this