Jump to content

[Aporte] mapLoad ()


Recommended Posts

Esta funcion carga un archivo .map especificado en la string.

Sintaxis

bool mapLoad(string path[, float dimension=0, float interior=0]) 

Argumentos

  • Path: Localizacion exacta del archivo .map a cargar, por ejemplo 'mimapa.map'

Argumentos opcionales

  • Dimension: Numero de dimension en el que el mapa debe cargar
  • Interior: Numero de interior en el que el mapa debe cargar

Return

return true si el mapa ha sido cargado, false si los argumentos no son validos o el mapa no existe

Codigo source

ob = {} 
function mapLoad(path_file, dimension, interior) 
dimension = math.floor(dimension) or 0 
interior = math.floor(interior) or 0 
local fMAP = xmlLoadFile(path_file) 
    if fMAP then 
    local XMLCH = xmlNodeGetChildren(fMAP) 
        for k,v in ipairs(XMLCH) do 
        local element_breakable = xmlNodeGetAttribute(v, "breakable") 
        local element_doublesided = xmlNodeGetAttribute(v, "doublesided") 
        local element_alpha = xmlNodeGetAttribute(v, "alpha") 
        local element_model = xmlNodeGetAttribute(v, "model") 
        local element_scale = xmlNodeGetAttribute(v, "scale") 
        local element_posX = xmlNodeGetAttribute(v, "posX") 
        local element_posY = xmlNodeGetAttribute(v, "posY") 
        local element_posZ = xmlNodeGetAttribute(v, "posZ") 
        local element_rotX = xmlNodeGetAttribute(v, "rotX") 
        local element_rotY = xmlNodeGetAttribute(v, "rotY") 
        local element_rotZ = xmlNodeGetAttribute(v, "rotZ") 
        ob[v] = createObject( tonumber(element_model), tonumber(element_posX), tonumber(element_posY), tonumber(element_posZ), tonumber(element_rotX), tonumber(element_rotY), tonumber(element_rotZ), false) 
        setObjectScale(ob[v], tonumber(element_scale)) 
        setElementDimension(ob[v], dimension) 
        setElementInterior(ob[v], tonumber(interior)) 
            if element_doublesided == 'true' or element_doublesided then 
            setElementDoubleSided(ob[v], true) 
            else 
            setElementDoubleSided(ob[v], false) 
            end 
        end 
    xmlUnloadFile(fMAP) 
    return true 
    end 
return false 
end 

Admito que puede tener errores o que no sea optimizado del todo, pero menos es nada y aqui siempre se puede aprender nuevas formas scripting, con este script pretendo que se entienda un poco mejor el uso de los xml y que un mapLoader no es tan dificil :)

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...