Sistem de Energie + Administrare tradus in Romana de StyXu

Ce faaaceţi băi, internauţi şi internaute. Dacă dimineaţă v-am pus ceva mai puţin folositor în seara asta vă dau ceva mult mai folositor. Sunt sigur că a-ţi văzut şi voi sistemul de energie. Da, da ştiu că a apărut deja pe zeci de forumuri, dar nu e copiat (adică luat direct tradus) de nicăieri. Pur şi simplu am luat varianta în germană de pe Epvp şi am tradus-o eu. Ce ziceţi să vă arăt despre ce e vorba?


Mda despre asta e vorba. Eu vă ajut să-l implementaţi la voi pe server ;) Mai întâi trebuie să luaţi o arhivă pe care o găsiţi pe una din serverele de mai jos :D

 
MEGA



 

 Mediafire



 

 Girlshare




Parolă: sistem-de-energie-tradus-de-styxu-2013
Aşa, acum vine partea care mă plictiseşte mereu să o scriu, dar o fac, doar pentru voi, dragi cititori.

Instalare:

Partea I: Server;

Bun, după ce am luat arhiva şi după ce am dezarhivat-o, vom găsi în acel folder, alte două foldere. Mergem în "partea de server" şi vedem două fişiere numite "energy_manage.quest" şi "energy_sys.quest". Acum intrăm în FilleZilla, WinSCP sau managerul de FTP folosit, după care mergem în "/usr/home/game/locale/germany/quest" şi le băgăm pe cele două acolo. Apoi mergem în consola serverului şi scriem:
cd /usr/home/game/locale/germany/quest, dăm enter şi după scriem
./qc energy_sys.quest -dăm iar enter, apoi scriem
./qc energy_manage.quest -şi enter dinnou.
Aşa, gata cu consola. Revenim în managerul de FTP şi căutăm fişierul "quest_functions". Mergem jos de tot şi lipim liniile următoare:
getenergytime
getenergytyp
getenergyvalue
mysql_query
setenergy
setenergytime
string.trim
Perfect. Mai departe căutăm "questlib.lua" şi lipim în josul documentului următorul cod:
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 
Salvăm şi închidem. Caam atât cu ftp. Mai departe megrem în "Navicat", în baza de date "player" apoi în  tabelul "item_proto". Apăsăm "Ctrl + Q" apoi "Ctrl+N" şi băgăm codul următor:

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');


Apăsăm pe run, apoi salvăm şi închidem. Cam asta ar fi cu partea de server. Pentru partea de client vedeţi mai jos.

 Partea a II-a: Client;

Pentru partea a II-a a acestui tutorial vom merge în folderul "partea de client" în care vedem alte trei foldere. Mergem în pack-ul clientului, luăm arhivele "root.epk" şi "root.eix" şi le extragem folosind un extractor specializat în aşa ceva. Recomand EterNexus pe care în puteţi descărca de aici, aici sau de aici. Buun, am despachetat root, mergem în folder şi găsim acolo mai multe fişiere. Nu avem treabă cu ele. În folderul din arhiva dată de mine aveti două fişiere pe care le copiati in root-ul despachetat. Aşa, acum căutăm fişierul "game.py" pe care îl deschidem cu Notepad++ şi dăm pe find, apoi căutăm linia următoare:
def __ServerCommand_Build(self):
adică aşa:
 aşa, am ajuns aici:

Mergem la capăt, adică unde se termină acolada deschisă după linia severComandList={, npp vă arată unde se termină. Mergeţi acolo şi lipiţi următoarea linie:
#Sistem Energie
            "energysystem"            : self.__energysystem,
şi ar trebui să arate aşa:
Bun, acum, tot în "game.py", dăm scrol până la capătul fişierului, adică mergem jos, jos de tot şi lipim linia următoare.
    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:])
După ce o lipim o să arate aşa:
Salvăm şi închidem. Mai departe, tot în root-ul despachetat, căutaţi fişierul "costinfo.py", şi la fel, îl deschideţi cu Notepad++. Mergeţi jos de tot şi lipiţi următoarele linii:

ENERGY = 0
ENERGY_END_TIME = 0
ENERGY_TYPE = 0
ENABLE_ENERGY_SYSTEM = 1
Nu tre' să vă mai pun poză la ăsta, nu? Daar ca să nu existe confuzii pentru că nu sunt foarte explicit de fel o să vă artăt şi la ăsta. Iată:
 Acum am terminat şi cu ăsta. Salvăm, închidem şi împachetăm "root". Mergem mai departe şi căutăm în pack arhivele "etc". După de l-ai despachetat mergi în "ymir work\ui\model" şi copie folderul "EnergyGauge" acolo. Împachetează la loc "etc" şi punel în pack. Tot în pack vei căuta arhiva "locale_ro" sau "_de" sau ce ai şi o iei şi p'asta şi o despachetezi. Off... e super târziu şi mai am atââtea de făcuut... În fine, lăsând asta la o parte, în folderul din arhiva mea ai observat cu siguranţă şi folderul numit "locale". În el se află un fişier numit "energybar.py" pe care îl iei şi îl pui alături de celelalte ".py", în locale-ul tău. Împachetezi la loc şi gata. Am ameţit eu, darămite voi, nu-i aşa? Cât despre introducerea obiectelor în client, am observat că toată lumea foloseşte clientele de la Metin2.Ro care au băgat icon, item_proto ş.a.m.d în ele. Ei, cam atât şi pentru astăzi, nu uitaţi să-mi spuneţi dacă v-a plăcut folosind secţiunea de comentarii de mai jos şi să-mi daţi un like pe facebook pentru a fi la curent cu postările de pe acest blog minunat. Nu uitaţi eu până data viitoare vă pup :* şi vă zic ceeaoo ;) :-h.

Sursa: Elitepvpers

0 comentarii:

Trimiteți un comentariu

 
Copyright © StyXu | Design by StyXu