Jump to content

Bug al cambiar de skin en mta


Anon22

Recommended Posts

Hola comunidad de mta!

Bueno, me explico lo que ocurre es que al cambiar de skin la energía se aumenta al 100% no al 200% al 100% osea a la mitad,

quisiera saber si este bug o problema como quieran llamarle tiene solución osea que la energía quede como estaba al cambiar de skin me explico: Si tengo 160% de vida y me cambio de skin (Cualquiera) siga con el 160% de energía, osea que la energia no sea alterada me explique bien?

Eso seria todo, muchas gracias saludos a todos y que estén bien!

Link to comment

Mmmm... Eso se arregla con un script de 2 líneas.

Sólo debes saber qué evento provoca el cambio de skin, y agregas esto a ese evento:

hp = getElementHealth ( player ) 
setElementModel ( player ... ) --ESTO YA ESTA EN EL SCRIPT, ES UNA GUIA PARA AYUDARTE, NO LO PONGAS!!! 
setElementHealth ( player, hp ) 

Donde "player" es el elemento jugador usado en el script. Si el script es del freeroam, se debe reemplazar por "g_Me", si mal no recuerdo.

Link to comment

Debes buscar por ahí algo que diga "guiCreateButton", y que dentro de los paréntesis a su lado salga "Skin", algo como:

NOMBRE = guiCreateButton ( x, y, width, height, "Skin" ... )

Copia "NOMBRE" y ponlo en el buscador (Ctrl + F). Luego busca la siguiente instancia, si por ahí sale esta línea:

setElementModel ( g_Me ... )

Entonces pon el código que te di en esa parte.

Link to comment

@Benxamix2 (The Kid)

Bueno, despues de una hora por lo menos lamentablemente no logro consegir lo que quiero : :|

Talvez algo estare haciendo mal... mira el arhivo que estoy modificando es el siguente:

\MTA San Andreas 1.1\server\mods\deathmatch\resources\[gameplay]\freeroam

y dentro de la carpeta freeroam estoy modificando este: fr_client.lua no se si ese sera el que tu me dices, y dentro de ese no encuentro ningun guiCreateButton tampoco encontre ningun archivo llamado guiCreateButton.

Lo que puede ser que tengo que modificar es esto que esta dentro de fr_client.lua (Esto es solo el trozo del principio no es el archivo completo)

CONTROL_MARGIN_RIGHT = 5 
LINE_MARGIN = 5 
LINE_HEIGHT = 16 
  
g_Root = getRootElement() 
g_ResRoot = getResourceRootElement(getThisResource()) 
g_Me = getLocalPlayer() 
server = createServerCallInterface() 
  
--------------------------- 
-- Set skin window 
--------------------------- 
function skinInit() 
    setControlNumber(wndSkin, 'skinid', getElementModel(g_Me)) 
end 
  
function showSkinID(leaf) 
    if leaf.id then 
        setControlNumber(wndSkin, 'skinid', leaf.id) 
    end 
end 
  
function applySkin() 
    local skinID = getControlNumber(wndSkin, 'skinid') 
    if skinID then 
        server.setMySkin(skinID) 
        fadeCamera(true) 
    end 
end 
  
wndSkin = { 
    'wnd', 
    text = 'Set skin', 
    width = 250, 
    x = -20, 
    y = 0.3, 
    controls = { 
        { 
            'lst', 
            id='skinlist', 
            width=230, 
            height=290, 
            columns={ 
                {text='Skin', attr='name'} 
            }, 
            rows={xml='skins.xml', attrs={'id', 'name'}}, 
            onitemclick=showSkinID, 
            onitemdoubleclick=applySkin 
        }, 
        {'txt', id='skinid', text='', width=50}, 
        {'btn', id='set', onclick=applySkin}, 
        {'btn', id='close', closeswindow=true} 
    }, 
    oncreate = skinInit 
} 
  
function setSkinCommand(cmd, skin) 
    skin = skin and tonumber(skin) 
    if skin then 
        server.setMySkin(skin) 
        fadeCamera(true) 
        closeWindow(wndSpawnMap) 
        closeWindow(wndSetPos) 
    end 
end 
addCommandHandler('setskin', setSkinCommand) 
addCommandHandler('ss', setSkinCommand) 
  

Donde dice : setControlNumber(wndSkin, 'skinid', getElementModel(g_Me))

tengo que pegar el codigo que me pasaste por debajo osea:

hp = getElementHealth ( g_Me )

setElementHealth ( g_Me, hp )

Es asi? por que eso ise y no me resulto

No te estoy pidiendo que me ayudes y no quiero que te compliques mucho, pero si quieres segir ayudandome bienvenido seas.

se que ya al averme respondido ya dos veses estas tratando de ayudarme frente a mi problema y eso lo valoro mucho.

Link to comment

@Benxamix2 (The Kid)

Ya encontre "server.setMySkin" pero hay dos uno arriba y otro un poco mas abajo en el fr_client.lua que puse en el post anterior esta, pero pego el codigo abajo de que me pasate osea :

  
hp = getElementHealth ( g_Me ) 
setElementHealth ( g_Me, hp ) 

Y no pasa nada, que estare asiendo mal? pego el codigo justo por debajo de "server.setMySkin".

Saludos.

Link to comment

Aqui esta:

function applySkin() 
    local skinID = getControlNumber(wndSkin, 'skinid') 
    if skinID then 
        server.setMySkin(skinID) 
        fadeCamera(true) 
    end 
end 
  
wndSkin = { 
    'wnd', 
    text = 'Set skin', 
    width = 250, 
    x = -20, 
    y = 0.3, 
    controls = { 
        { 
            'lst', 
            id='skinlist', 
            width=230, 
            height=290, 
            columns={ 
                {text='Skin', attr='name'} 
            }, 
            rows={xml='skins.xml', attrs={'id', 'name'}}, 
            onitemclick=showSkinID, 
            onitemdoubleclick=applySkin 
        }, 
        {'txt', id='skinid', text='', width=50}, 
        {'btn', id='set', onclick=applySkin}, 
        {'btn', id='close', closeswindow=true} 
    }, 
    oncreate = skinInit 
} 
  
function setSkinCommand(cmd, skin) 
    skin = skin and tonumber(skin) 
    if skin then 
        server.setMySkin(skin) 
        fadeCamera(true) 
        closeWindow(wndSpawnMap) 
        closeWindow(wndSetPos) 
    end 
end 
addCommandHandler('setskin', setSkinCommand) 
addCommandHandler('ss', setSkinCommand) 

Link to comment
Ayudaria pero no entendi el problema xD

xD mira cuando tu estas en un servidor mta y te cambias de skin a cualquiera la energía cambia,

osea si estas herido, y cambias de skin la energía te a a subir y si tienes cualquiera la energía esta va a quedar a la mitad,

claro si tienes las estadísticas de la vida al máximo.

en algunos servidores no pasa eso y en otros si (La mayoría).

Saludos.

Link to comment

Mas facil:

Cuando cambias tu skin tu "health" vuelve a 100.

EDIT: Despues de un rato de pelearme con el codigo, descubri que en "fr_server.lua" están estas líneas:

function setMySkin(skinid) 
    if isPedDead(source) then 
        local x, y, z = getElementPosition(source) 
        if isPedTerminated(source) then 
            x = 0 
            y = 0 
            z = 3 
        end 
        local r = getPedRotation(source) 
        local interior = getElementInterior(source) 
        spawnPlayer(source, x, y, z, r, skinid) 
        setElementInterior(source, interior) 
        setCameraInterior(source, interior) 
    else 
        setElementModel(source, skinid)  
        setElementHealth(source, 100)--BORRA ESTA LINEA, ES LO QUE CAUSA EL CAMBIO DE SALUD 
    end 
    setCameraTarget(source, source) 
    setCameraInterior(source, getElementInterior(source)) 
end 

Borra lo que te indiqué, luego guarda el archivo "fr_server.lua" y resetea "freeroam".

Link to comment
  • Recently Browsing   0 members

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