Anthrax Posted May 21, 2014 Share Posted May 21, 2014 Hola de nuevo, tengo un pequeño problema con este script, el script funciona correctamente sin errores, el problema es que cuando sube un nivel, no se aplica los setPedStats del siguiente nivel, solo se aplica cuando hace spawn (como lo dice en "onPlayerSpawn" e pensado cambiarlo a "onPlayerLogin") y no deberia ser asi. Lo que me gustaria es que se aplique los setPedStats en el acto cuando suba un nivel (tambien en spawn). Aqui el script: "Server side" function healthskill () for i, v in ipairs(getElementsByType("player")) do local level = exports.exp:getPlayerLevel(source) if level == 1 then setPedStat(source, 24, 500) setPedStat(source, 69, 10) setPedStat(source, 70, 50) setPedStat(source, 71, 25) setPedStat(source, 72, 25) setPedStat(source, 73, 25) setPedStat(source, 74, 25) setPedStat(source, 75, 20) setPedStat(source, 76, 50) setPedStat(source, 77, 0) setPedStat(source, 78, 0) setPedStat(source, 79, 0) outputChatBox("Nivel 1", source, 255, 255, 255, true) end if level == 2 then setPedStat(source, 24, 550) setPedStat(source, 69, 20) setPedStat(source, 70, 100) setPedStat(source, 71, 50) setPedStat(source, 72, 50) setPedStat(source, 73, 50) setPedStat(source, 74, 50) setPedStat(source, 75, 30) setPedStat(source, 76, 100) setPedStat(source, 77, 15) setPedStat(source, 78, 15) setPedStat(source, 79, 0) outputChatBox("Nivel 2", source, 255, 255, 255, true) end if level == 3 then setPedStat(source, 24, 600) setPedStat(source, 69, 40) setPedStat(source, 70, 500) setPedStat(source, 71, 200) setPedStat(source, 72, 100) setPedStat(source, 73, 100) setPedStat(source, 74, 100) setPedStat(source, 75, 40) setPedStat(source, 76, 200) setPedStat(source, 77, 25) setPedStat(source, 78, 25) setPedStat(source, 79, 0) outputChatBox("Nivel3", source, 255, 255, 255, true) end end end addEventHandler("onPlayerSpawn", getRootElement(), healthskill) Muchas gracias saludos Link to comment
alex17 Posted May 21, 2014 Share Posted May 21, 2014 si utilisas el exp system de castillo14 la manera mas facil de hacerlo podría ser haci addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", root, function ( ) level = getElementData(source, "level") setPedStat(source, 24, 500) setPedStat(source, 69, 10) setPedStat(source, 70, 50) setPedStat(source, 71, 25) setPedStat(source, 72, 25) setPedStat(source, 73, 25) setPedStat(source, 74, 25) setPedStat(source, 75, 20) setPedStat(source, 76, 50) setPedStat(source, 77, 0) setPedStat(source, 78, 0) setPedStat(source, 79, 0) outputChatBox("Nivel "..level, source, 255, 255, 255, true) end ) Link to comment
Anthrax Posted May 22, 2014 Author Share Posted May 22, 2014 si utilisas el exp system de castillo14 la manera mas facil de hacerlo podría ser haci addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", root, function ( ) level = getElementData(source, "level") setPedStat(source, 24, 500) setPedStat(source, 69, 10) setPedStat(source, 70, 50) setPedStat(source, 71, 25) setPedStat(source, 72, 25) setPedStat(source, 73, 25) setPedStat(source, 74, 25) setPedStat(source, 75, 20) setPedStat(source, 76, 50) setPedStat(source, 77, 0) setPedStat(source, 78, 0) setPedStat(source, 79, 0) outputChatBox("Nivel "..level, source, 255, 255, 255, true) end ) ok ese script si sale bien (tengo el script exp de castillo), pero no se porque solo me da un solo level, no entiendo muy bien esto, nunca se me ocurrio el "addEvent". Cuando llego a nivel 2 o 3 o 4 sigue con los mismos setpedstat de tu script, no aumentan. Como se aumenta eso sucesivamente en los siguientes niveles? PD: server o client Saludos Link to comment
Sensacion Posted May 23, 2014 Share Posted May 23, 2014 local n = { [1] = { 500, 10, 50, 25, 25, 25, 25, 20, 50, 0, 0, 0 },--Nivel 1 [2] = { 550, 20, 100, 50, 50, 50, 50, 30, 100, 15, 15, 0 },--Nivel 2 } local func_lvl = setmetatable({}, {__index = function (t, k) return n[#n] end}) local lvl_tbl = setmetatable( n, {__index=func_lvl}) local fallback_t = setmetatable({}, {__index=lvl_tbl}) addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", root, function ( ) local n = tonumber( getElementData(source, "level")) setPedStat(source, 24, fallback_t[n][1]) for i = 69, 79 do setPedStat(source, i, fallback_t[n][i-67]) end outputChatBox("Nivel "..n, source, 255, 255, 255, true) end ) Link to comment
alex17 Posted May 23, 2014 Share Posted May 23, 2014 creo que seria bueno que le dejes una breve explicación asi el pueda entender y sepa que hacer .. Link to comment
Anthrax Posted May 23, 2014 Author Share Posted May 23, 2014 local n = { [1] = { 500, 10, 50, 25, 25, 25, 25, 20, 50, 0, 0, 0 },--Nivel 1 [2] = { 550, 20, 100, 50, 50, 50, 50, 30, 100, 15, 15, 0 },--Nivel 2 } local func_lvl = setmetatable({}, {__index = function (t, k) return n[#n] end}) local lvl_tbl = setmetatable( n, {__index=func_lvl}) local fallback_t = setmetatable({}, {__index=lvl_tbl}) addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", root, function ( ) local n = tonumber( getElementData(source, "level")) setPedStat(source, 24, fallback_t[n][1]) for i = 69, 79 do setPedStat(source, i, fallback_t[n][i-67]) end outputChatBox("Nivel "..n, source, 255, 255, 255, true) end ) ok, nunca me imagine eso iva a hacer asi de complicado ._. muchas gracias resulto a la perfección. le añadi el "onPlayerLogin" al final para que también pueda ejecutarse cuando se loguee el player, pero no ejecuta ni da error esto serial lo ultimo que me faltaría ( una ayudita aquí por fa) function health () local n = { [1] = { 500, 10, 50, 25, 25, 25, 25, 20, 50, 0, 0, 0 },--Nivel 1 [2] = { 700, 20, 100, 50, 50, 50, 50, 30, 100, 15, 15, 0 },--Nivel 2 [3] = { 900, 20, 100, 50, 50, 50, 50, 30, 100, 15, 15, 0 },--Nivel 3 } local func_lvl = setmetatable({}, {__index = function (t, k) return n[#n] end}) local lvl_tbl = setmetatable( n, {__index=func_lvl}) local fallback_t = setmetatable({}, {__index=lvl_tbl}) addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", root, function ( ) local n = tonumber( getElementData(source, "level")) setPedStat(source, 24, fallback_t[n][1]) for i = 69, 79 do setPedStat(source, i, fallback_t[n][i-67]) end outputChatBox("Nivel "..n, source, 255, 255, 255, true) end ) addEventHandler("onPlayerLogin", getRootElement(), health) end Muchisimas gracias Link to comment
Anthrax Posted May 24, 2014 Author Share Posted May 24, 2014 Para que el "end" al final? El script no funciona cuando haces login,no agarra los Stats del level, solo agarra los stats cuando avanza un nivel . Tiene que funcionar cuando avance un nivel y cuando haces login. el "end" esta solo para que no de error (osea de relleno) al igual que el "onPlayerLogin" que puse. Link to comment
alex17 Posted May 24, 2014 Share Posted May 24, 2014 Prueva de esta forma corriganme si cometí algún error local n = { [1] = { 500, 10, 50, 25, 25, 25, 25, 20, 50, 0, 0, 0 },--Nivel 1 [2] = { 550, 20, 100, 50, 50, 50, 50, 30, 100, 15, 15, 0 },--Nivel 2 } local func_lvl = setmetatable({}, {__index = function (t, k) return n[#n] end}) local lvl_tbl = setmetatable( n, {__index=func_lvl}) local fallback_t = setmetatable({}, {__index=lvl_tbl}) function level( ) local n = tonumber( getElementData(source, "level")) setPedStat(source, 24, fallback_t[n][1]) for i = 69, 79 do setPedStat(source, i, fallback_t[n][i-67]) end outputChatBox("Nivel "..n, source, 255, 255, 255, true) end addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", getRootElement(), level) addEventHandler("onPlayerLogin", getRootElement(), level) Link to comment
Tomas Posted May 24, 2014 Share Posted May 24, 2014 Mientras el addEventHandler esté dentro de la función solo se agregará cuando alguien suba de nivel. ( Se ejecute la función ) Debes colocarlo fuera del end, y no es lo más factible agregar end's así por así para que no de debug, deberías encontrar el problema. Link to comment
Sensacion Posted May 24, 2014 Share Posted May 24, 2014 local n = { [1] = { 500, 10, 50, 25, 25, 25, 25, 20, 50, 0, 0, 0 },--Nivel 1 [2] = { 550, 20, 100, 50, 50, 50, 50, 30, 100, 15, 15, 0 },--Nivel 2 } local func_lvl = setmetatable({}, {__index = function (t, k) return n[#n] end}) local lvl_tbl = setmetatable( n, {__index=func_lvl}) local fallback_t = setmetatable({}, {__index=lvl_tbl}) addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", root, function ( ) local n = tonumber( getElementData(source, "level")) setPedStat(source, 24, fallback_t[n][1]) for i = 69, 79 do setPedStat(source, i, fallback_t[n][i-67]) end outputChatBox("Nivel "..n, source, 255, 255, 255, true) end ) addEventHandler ( "onPlayerLogin", root, setTimer( function( ) triggerEvent( "onPlayerLevelUP", source ) end 1000, 1, source ) ) Link to comment
Anthrax Posted May 25, 2014 Author Share Posted May 25, 2014 local n = { [1] = { 500, 10, 50, 25, 25, 25, 25, 20, 50, 0, 0, 0 },--Nivel 1 [2] = { 550, 20, 100, 50, 50, 50, 50, 30, 100, 15, 15, 0 },--Nivel 2 } local func_lvl = setmetatable({}, {__index = function (t, k) return n[#n] end}) local lvl_tbl = setmetatable( n, {__index=func_lvl}) local fallback_t = setmetatable({}, {__index=lvl_tbl}) addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", root, function ( ) local n = tonumber( getElementData(source, "level")) setPedStat(source, 24, fallback_t[n][1]) for i = 69, 79 do setPedStat(source, i, fallback_t[n][i-67]) end outputChatBox("Nivel "..n, source, 255, 255, 255, true) end ) addEventHandler ( "onPlayerLogin", root, setTimer( function( ) triggerEvent( "onPlayerLevelUP", source ) end 1000, 1, source ) ) Lo probe y da error en la linea 29, es por que al end le faltaba una coma. Le puse la coma que corresponde y me tira 2 errores Prueva de esta forma corriganme si cometí algún error local n = { [1] = { 500, 10, 50, 25, 25, 25, 25, 20, 50, 0, 0, 0 },--Nivel 1 [2] = { 550, 20, 100, 50, 50, 50, 50, 30, 100, 15, 15, 0 },--Nivel 2 } local func_lvl = setmetatable({}, {__index = function (t, k) return n[#n] end}) local lvl_tbl = setmetatable( n, {__index=func_lvl}) local fallback_t = setmetatable({}, {__index=lvl_tbl}) function level( ) local n = tonumber( getElementData(source, "level")) setPedStat(source, 24, fallback_t[n][1]) for i = 69, 79 do setPedStat(source, i, fallback_t[n][i-67]) end outputChatBox("Nivel "..n, source, 255, 255, 255, true) end addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", getRootElement(), level) addEventHandler("onPlayerLogin", getRootElement(), level) Este script funciona perfecto! es justo lo que necesitaba para que tire bien los stats cuando de login y avance un level Muchas gracias Muchisimas gracias a todos que me apoyaron a arreglar el script, son muy buenos todos. Doy este post como cerrado Link to comment
Anthrax Posted May 25, 2014 Author Share Posted May 25, 2014 local n = { [1] = { 500, 10, 50, 25, 25, 25, 25, 20, 50, 0, 0, 0 },--Nivel 1 [2] = { 550, 20, 100, 50, 50, 50, 50, 30, 100, 15, 15, 0 },--Nivel 2 } local func_lvl = setmetatable({}, {__index = function (t, k) return n[#n] end}) local lvl_tbl = setmetatable( n, {__index=func_lvl}) local fallback_t = setmetatable({}, {__index=lvl_tbl}) addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", root, function ( ) local n = tonumber( getElementData(source, "level")) setPedStat(source, 24, fallback_t[n][1]) for i = 69, 79 do setPedStat(source, i, fallback_t[n][i-67]) end outputChatBox("Nivel "..n, source, 255, 255, 255, true) end ) addEventHandler ( "onPlayerLogin", root, setTimer( function( ) triggerEvent( "onPlayerLevelUP", source ) end 1000, 1, source ) ) Lo probe y da error en la linea 29, es por que al end le faltaba una coma. Le puse la coma que corresponde y me tira 2 errores, pero muy buen intento al hacer la base necesaria del script Prueva de esta forma corriganme si cometí algún error local n = { [1] = { 500, 10, 50, 25, 25, 25, 25, 20, 50, 0, 0, 0 },--Nivel 1 [2] = { 550, 20, 100, 50, 50, 50, 50, 30, 100, 15, 15, 0 },--Nivel 2 } local func_lvl = setmetatable({}, {__index = function (t, k) return n[#n] end}) local lvl_tbl = setmetatable( n, {__index=func_lvl}) local fallback_t = setmetatable({}, {__index=lvl_tbl}) function level( ) local n = tonumber( getElementData(source, "level")) setPedStat(source, 24, fallback_t[n][1]) for i = 69, 79 do setPedStat(source, i, fallback_t[n][i-67]) end outputChatBox("Nivel "..n, source, 255, 255, 255, true) end addEvent ( "onPlayerLevelUP", true ) addEventHandler ( "onPlayerLevelUP", getRootElement(), level) addEventHandler("onPlayerLogin", getRootElement(), level) Este script funciona perfecto! es justo lo que necesitaba para que tire bien los stats cuando de login y avance un level Muchisimas gracias Muchas gracias a todos que me apoyaron a arreglar el script, son muy buenos todos se lo agradecere siempre. Doy este post como cerrado Link to comment
alex17 Posted May 25, 2014 Share Posted May 25, 2014 estab bien l oque te pase que bueno que te sirviera saludos !! Link to comment
Recommended Posts