Szerző Téma: [Gyűjtőtéma]Kis publikációk  (Megtekintve 379271 alkalommal)

Nem elérhető TMP4

  • Trainee
  • *
  • Hozzászólások: 90
  • Segített: 25
Re:[Gyűjtőtéma]Kis publikációk
« Válasz #250 Dátum: 2021-09-08, 21:48:39 »
    Metin2 Translate Pack

    Tartalmazza:
    • item_names
    • mob_names
    • translate.lua
    • locale_string
    • client_locale
    Elérhető nyelvek:
    • Cseh
    • Német
    • Dán
    • Angol
    • Spanyol
    • Francia
    • Görög
    • Magyar
    • Olasz
    • Holland
    • Lengyel
    • Portugál
    • Román
    • Orosz
    • Török

    Link: Google Drive

    A 40k referencia szerverfájlomból lett kibontva, de úgy gondoltam jó ha külön is megtalálható.

    Nem elérhető ATAG

    • Administrator
    • Sage
    • *
    • Hozzászólások: 2 553
    • Segített: 1735
    • Dr.
    Re:[Gyűjtőtéma]Kis publikációk
    « Válasz #251 Dátum: 2021-09-16, 21:39:06 »
    A klasszikus mysql_query "lib" kiterjesztése, sok magyarázatot nem igényel.
    -- mysqllib.lua v2.0
    -- ATAG @ 09.21
    function read_config()
    local f, e = io.open("CONFIG", "r")
    local conf = f:read("*a")
    f:close()
    --db_host, db_user, db_pass, db_db = string.match(conf,"PLAYER_SQL: (%S+) (%S+) (%S+) (%S+)")
    return string.match(conf,"PLAYER_SQL: (%S+) (%S+) (%S+) (%S+)")
    end

    --ha szar az io.popen, használd ezt...
    io.popen = function(cmd, mode)
    local tmp = os.tmpname()
    os.execute(cmd.." > "..tmp) --tmp file must be deleted after use!
    local f,e = io.open(tmp)
    return f,e or tmp
    end

    MYSQL_ASSOC = 1
    MYSQL_NUM = 2
    MYSQL_BOTH = 3
    result_types={
    [MYSQL_ASSOC] = "string",
    [MYSQL_NUM]   = "number",
    -- [MYSQL_BOTH]  = nil
    }
    --http://lua-users.org/wiki/CopyTable
    function table.copy(orig, copies)
    copies = copies or {}
    local orig_type = type(orig)
    local copy
    if orig_type == 'table' then
    if copies[orig] then
    copy = copies[orig]
    else
    copy = {}
    copies[orig] = copy
    for orig_key, orig_value in next, orig, nil do
    copy[table.copy(orig_key, copies)] = table.copy(orig_value, copies)
    end
    setmetatable(copy, table.copy(getmetatable(orig), copies))
    end
    else -- number, string, boolean, etc
    copy = orig
    end
    return copy
    end

    function mysql_fetch_array(result,iType)
    local res = table.copy(result) --don't modify original result for possible later processing -.-
    local key, value
    return function()
    key, value = next(res, key)
    if iType and result_types[iType] and value then
    for i in pairs(value) do
    if type(i) ~= result_types[iType] then
    value[i]=nil
    end
    end
    end
    return value
    end
    end

    mysql_fetch_assoc = function(result)
    return mysql_fetch_array(result,MYSQL_ASSOC)
    end

    mysql_fetch_row = function(result)
    return mysql_fetch_array(result,MYSQL_NUM)
    end

    function mysql_free_results(result)
    result = nil
    collectgarbage()
    end

    function mysql_query(query)
    if not db_host then
    db_host, db_user, db_pass, db_db = read_config()
    end
    local exec = string.format("mysql -E -h %s -u %s -p%s -D %s -e \"%s\"", db_host,db_user,db_pass,db_db,query)
    --print(exec)
    local f, tmp = assert(io.popen(exec))
    local results = {}
    local cols = {}
    local row = 0
    local line = f:read()
    while line do
    -- line:*************************** 2. row ***************************
    if line:match("[\*%s]+%d+\. row[%s\*]+") then
    row = row+1
    else
    local var,val = line:match("(%S+): (.*)")
    cols[var] = val
    table.insert(cols,val)
    end
    if row > 1 then
    table.insert(results, cols)
    cols = {}
    row = 1
    end
    line = f:read()
    end
    if row > 0 then
        table.insert(results, cols)
    end
    f:close()
    if tmp then os.remove(tmp) end
    --[[
    results = {
    [1]={[1]="val1",[2]="val2",["colname1"]="val1",["colname2"]="val2"}, --row1
    [2]={[1]="val1",[2]="val2",["colname1"]="val1",["colname2"]="val2"}  --row2
    }
    ]]
    return results
    end
    A mysql_query önmagában a szokásos indexelt tömbben adja vissza az eredményt.
    Kiegészítő funkciók:
    mysql_fetch_row
    mysql_fetch_assoc
    mysql_fetch_array
    mysql_free_results

    használat:
    --dofile("mysqllib.lua")
    results = mysql_query("SELECT id, last_play FROM account.account LIMIT 3;")
    syschat("assoc:")
    for row in mysql_fetch_assoc(results) do
    syschat("id="..row['id'])
    syschat("last_play="..row['last_play'])
    end
    syschat("row:")
    for row in mysql_fetch_row(results) do
    syschat("id="..row[1])
    syschat("last_play="..row[2])
    end
    syschat("array:")
    for row in mysql_fetch_array(results) do
    syschat("last_play="..row['last_play'])
    syschat("id="..row[1])
    end
    mysql_free_results(results)

    « Utoljára szerkesztve: 2021-09-16, 22:52:22 írta ATAG »

    Nem elérhető SAO

    • Beginner
    • Hozzászólások: 3
    • Segített: 0
    Re:[Gyűjtőtéma]Kis publikációk
    « Válasz #252 Dátum: 2021-12-09, 20:30:50 »
    Sziasztok!

    Aki esetleg készített már szervert és szívesen segítene nekem az alapokban az kérem írjon rám.
    Egyenlőre még semmit nem tudok hogyan kell neki állni illetve csak saját gépen szeretném csinálni saját magamnak.