Anon22 Posted October 17, 2011 Share Posted October 17, 2011 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
12p Posted October 17, 2011 Share Posted October 17, 2011 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
Anon22 Posted October 17, 2011 Author Share Posted October 17, 2011 @Benxamix2 (The Kid) Sabes no logre encontrar el evento que provoca el cambio de skin, podrías decirme cual es y donde podría encontrarlo? claro si no es mucha molestia. Gracias por tomarte el tiempo en responder, saludos. Link to comment
12p Posted October 17, 2011 Share Posted October 17, 2011 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
Anon22 Posted October 18, 2011 Author Share Posted October 18, 2011 @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
12p Posted October 18, 2011 Share Posted October 18, 2011 Busca en los script de server, algo llamado "server.setMySkin". Link to comment
Anon22 Posted October 18, 2011 Author Share Posted October 18, 2011 @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
12p Posted October 18, 2011 Share Posted October 18, 2011 Pon el pedazo de script de toda la funcion server.setMySkin (no la fr_client) Link to comment
Anon22 Posted October 18, 2011 Author Share Posted October 18, 2011 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
12p Posted October 18, 2011 Share Posted October 18, 2011 ... Ok. Y la parte server? Debe haber algo por ahi que diga "function server.setMySkin"... Link to comment
Anon22 Posted October 18, 2011 Author Share Posted October 18, 2011 No encuentro nada que diga "function server.setMySkin" Link to comment
Serginix Posted October 18, 2011 Share Posted October 18, 2011 Ayudaria pero no entendi el problema Link to comment
Anon22 Posted October 18, 2011 Author Share Posted October 18, 2011 Ayudaria pero no entendi el problema 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
12p Posted October 18, 2011 Share Posted October 18, 2011 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
Anon22 Posted October 18, 2011 Author Share Posted October 18, 2011 @Benxamix2 (The Kid) Muchisimas gracias!!!, por aver encontrado la solucion y por aver dedicado parte de tu tiempo en averme ayudado. Saludos y muchas gracias Link to comment
Recommended Posts