Bienvenido a Open Games Community

Únete ahora para acceder a todas nuestras funciones. Una vez que te registres e inicies sesión, podrás crear temas, responder a hilos existentes, valorar la reputación de otros miembros y muchísimo más. Además, es rápido y totalmente gratuito; ¿a qué esperas?

RevScript Cambiar Items.xml ItemID > Items.xml ClientID

Alex

Administrador
Dev
Registrado
1 Sep 2021
Mensajes
2.362
Puntuación de reacción
28.645
Puntos
707
Hola a todos, aqui les dejo la guia por Sarah Wesker de como cambiar los items.xml ITEM ID para items.xml ClientID,

Nos iremos en la carpeta data/ de nuestro servidor y crearemos una carpeta llamada xmlConverter
Dentro crearemos 2 carpetas, una llamada input otra output:
De esta forma:

1609089103919.png


Ahora nos iremos en data/scripts y agregaremos este Talkaction en un archivo llamdo xmlConverter.lua:
Código:
--[[

    Credits: Sarah Wesker
    Version: 1.0
    Compat: TFS 1.3
    Create: December 2020

]]--

local function convertXmlFile(file)
    local f = io.open(file, 'r')
    if not f then
        return false
    end
    local newFile = io.open(file:gsub('input', 'output'), 'w')
    if not newFile then
        f:close()
        return false
    end
    local index = 0
    local lines = {}
    for line in f:lines() do
        local fromId
        local toId
        fromId = tonumber(line:match('id="(%d+)"'))
        if not fromId then
            fromId = tonumber(line:match('fromId="(%d+)"'))
            toId = tonumber(line:match('toId="(%d+)"'))
            if not fromId or not toId then
                goto continue
            end
        else
            toId = fromId
        end
        for _, itemId in pairs({fromId, toId}) do
            if itemId ~= 0 then
                local itemType = ItemType(itemId)
                if itemType then
                    local clientId = itemType:getClientId()
                    if clientId ~= 0 then
                        line = line:gsub(tostring(itemId), tostring(clientId))
                    end
                end
            end
        end
        ::continue::
        index = index +1
        lines[index] = line..'\n'
    end
    f:close()
    newFile:write(table.concat(lines))
    newFile:close()
    return true
end

local talkTest = TalkAction("/xmlConverter")
function talkTest.onSay(player, words, param)
    if not player:getGroup():getAccess() then
        return true
    end
    for file in io.popen([[dir "data\xmlConverter\input" /b /a /s]]):lines() do
        convertXmlFile(file)
    end
    player:popupFYI("The conversion from itemId to clientId was successful.")
    return false
end

talkTest:separator(" ")
talkTest:register()

Ahora, los archivos que desearemos pasar a Client ID ( en el caso items.xml ) lo copiaremos dentro de la carpeta Input,
Este último debe de empezar de esta forma:
1609089878786.png

Entraremos en el juego y haremos el comando /xmlConverter y tendremos el archivo creado en la carpeta output.
 
N

neowtwo

Invitado
Hola Alex, perdona mi ignorancia, para que sirve?
un saludo cordial!
 

Alex

Administrador
Dev
Registrado
1 Sep 2021
Mensajes
2.362
Puntuación de reacción
28.645
Puntos
707
Hola Alex, perdona mi ignorancia, para que sirve?
un saludo cordial!
Hola,
Permite cambiar las ID de los Items ID en el archivo items.xml para pasarlos a items.xml pero con CLIENT ID.
Es para versiones 12.80+

Por ejemplo si has creado varias ID customs o muchas, para pasarlas a tu servidor, pero hay que tener en cuenta que si usas sprites customs, tendrás que subirlos todos al mismo client ID que estaban en el otro servidor y manualmente.
 
N

neowtwo

Invitado
Hola,
Permite cambiar las ID de los Items ID en el archivo items.xml para pasarlos a items.xml pero con CLIENT ID.
Es para versiones 12.80+

Por ejemplo si has creado varias ID customs o muchas, para pasarlas a tu servidor, pero hay que tener en cuenta que si usas sprites customs, tendrás que subirlos todos al mismo client ID que estaban en el otro servidor y manualmente.
gracias por la info, no tenia ni idea del tema
 
shape1
shape2
shape3
shape4
shape5
shape6
Arriba