Jump to content

Ayuda con sistema de nivel


Anzo

Recommended Posts

Lo que tengo hasta ahora es un sistema que si matas a 100 zombies te sube al lvl 1, luego si matas a 300 te sube al lvl 2, y lo logre guiándome de un script de la comunidad. Mi pregunta es si puedo hacer que cuando mates zombies te vayan dando 2 o 3 de exp. Ya he usado el exp_system de castillo, pero no me gusta el sonido que sale al subir de nivel. (Buenoo, si me gusta, pero quisiera hacer uno yo :P ).

Lo que estoy usando es esto:

niveles = { 
100,--1 
210,--2 
320,--3 
430,--4 
540,--5 
650,--6 
760,--7 
880,--8 
990,--9 
1300,--10 
} 
  
--------------- 
setElementData(root, "zombiesKilled",0) 
setElementData(root, "lev",0) 
  
function render() 
local name = getPlayerName(localPlayer) 
dxDrawText("Zombies kills:"..getElementData(localPlayer, "zombiesKilled"), 10, 356, 117, 370, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false) 
    dxDrawText(name.."#ffffff.#ffff00[Lvl."..getElementData(localPlayer, "lev").. "]", screenW * 0.7000, screenH * 0.1150, screenW * 0.7288, screenH * 0.1400, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, true, false) 
end 
addEventHandler("onClientRender", root, render) 
  
function leveling(attacker) 
  
local dat = getElementData(localPlayer, "zombiesKilled") 
    if getElementData (source, "zombie") == true and attacker == localPlayer then 
        setElementData(localPlayer, "zombiesKilled", dat+1) 
            dxDrawText("Zombies kills:"..getElementData(localPlayer, "zombiesKilled"), 10, 356, 117, 370, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false) 
    dxDrawText("#ffffff.#ffff00[Lvl."..getElementData(localPlayer, "lev").. "]", screenW * 0.7000, screenH * 0.1150, screenW * 0.7288, screenH * 0.1400, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, true, false) 
    end 
     
    if dat == niveles[1] then  
        setElementData(localPlayer, "lev", 1) 
        exports.notifications:showBox("info", "Has subido al nivel "..getElementData(localPlayer, "lev").."!\n+$500") 
        triggerServerEvent("money1", localPlayer)    
         
    elseif dat == niveles[2] then 
        setElementData(localPlayer, "lev",2) 
        exports.notifications:showBox("info", "Has subido al nivel "..getElementData(localPlayer, "lev").."!\n+$1000") 
        triggerServerEvent("money2", localPlayer)    
         
    elseif dat == niveles[3] then 
        setElementData(localPlayer, "lev",3) 
        exports.notifications:showBox("info", "Has subido al nivel "..getElementData(localPlayer, "lev").."!\n+$1500") 
        triggerServerEvent("money3", localPlayer)    
         
    elseif dat == niveles[4] then 
        setElementData(localPlayer, "lev",4) 
        exports.notifications:showBox("info", "Has subido al nivel " ..getElementData(localPlayer, "lev").."!\n+$2000") 
        triggerServerEvent("money4", localPlayer)    
    elseif dat == niveles[5] then 
        setElementData(localPlayer, "lev",5) 
        exports.notifications:showBox("info", "Has subido al nivel " ..getElementData(localPlayer, "lev").."!\n+$3000") 
        triggerServerEvent("money5", localPlayer)    
    elseif dat == niveles[6] then 
        setElementData(localPlayer, "lev",6) 
        exports.notifications:showBox("info", "Has subido al nivel " ..getElementData(localPlayer, "lev").."!\n+$4000") 
        triggerServerEvent("money6", localPlayer)    
    elseif dat == niveles[7] then 
        setElementData(localPlayer, "lev",7) 
        exports.notifications:showBox("info", "Has subido al nivel " ..getElementData(localPlayer, "lev").."!\n+$5000") 
        triggerServerEvent("money7", localPlayer)    
    elseif dat == niveles[8] then 
        setElementData(localPlayer, "lev",8) 
        exports.notifications:showBox("info", "Has subido al nivel " ..getElementData(localPlayer, "lev").."!\n+$5555") 
        triggerServerEvent("money8", localPlayer)    
    elseif dat == niveles[9] then 
        setElementData(localPlayer, "lev",9) 
        exports.notifications:showBox("info", "Has subido al nivel " ..getElementData(localPlayer, "lev").."!\n+$6500") 
        triggerServerEvent("money9", localPlayer)    
    elseif dat == niveles[10] then 
        setElementData(localPlayer, "lev",10) 
        exports.notifications:showBox("info", "Has subido al nivel " ..getElementData(localPlayer, "lev").."!\n+$8000") 
        triggerServerEvent("money10", localPlayer)           
    end 
end 
addEventHandler("onClientPedWasted", root, leveling) 
  
function saveUpdate() 
    dxDrawText("Zombies kills:"..getElementData(localPlayer, "zombiesKilled"), 10, 356, 117, 370, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false) 
    dxDrawText("#ffffff.#ffff00[Lvl."..getElementData(localPlayer, "lev").. "]", screenW * 0.7000, screenH * 0.1150, screenW * 0.7288, screenH * 0.1400, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, true, false) 
end 
addEvent("saveKills", true) 
addEventHandler("saveKills", root, saveUpdate) 

No sé si me entendieron, pero a lo que me refiero es que si en vez de subir de nivel al matar 100 zombies puedo hacer otro dxText que diga EXP: 0 y que mientras mate zombies me sume ese EXP: 0 a EXP: 2 o EXP:5 y cuando llegue a la EXP:300 me suba al nivel 1, luego si llego a EXP:1000 me suba al nivel 2 y así sucesivamente.

Link to comment
  • Recently Browsing   0 members

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