#Dv^ Posted November 6, 2016 Share Posted November 6, 2016 (edited) Hola, quisiera saber como es para que en esta tabla cada player que mate se vaya sumando mis kills en la tabla local killer = {} function Kills(ammo,killer,weapon) if killer then if killer ~= source then if killer[killer] == nil then killer[killer] = tonumber((killer)+1 end end end end addEventHandler("onPlayerWasted",getRootElement(),Kills) Edited November 6, 2016 by Slash14 Link to comment
Tomas Posted November 6, 2016 Share Posted November 6, 2016 local kills = {} function Kills(ammo,killer,weapon) if killer then if killer ~= source then if not kills[killer] then kills[killer] = 1 else kills[killer] = kills[killer] + 1 end end end end addEventHandler("onPlayerWasted",getRootElement(),Kills) Link to comment
#Dv^ Posted November 6, 2016 Author Share Posted November 6, 2016 Gracias @Tomas Tengo un problema con esto de dxDrawProgressBar, la barra no se llena correctamente a medida que me acerco al proximo nivel, es decir si mi Exp es 14 y para el proximo tengo que llegar a 25, no concuerda local unlerp = function(from,to,lerp) return (lerp-from)/(to-from) end function dxDrawProgressBar( startX, startY, width, height, progress, color, backColor ) local progress = math.max( 0, (math.min( 100, progress) ) ) local wBar = width*.18 for i = 0, 4 do local startPos = (wBar*i + (width*.025)) + startX dxDrawRectangle( startPos, startY, wBar, height, backColor ) local eInterval = (i*20) local localProgress = math.min( 1, unlerp( eInterval, eInterval + 20, progress ) ) if localProgress > 0 then dxDrawRectangle( startPos, startY, wBar*localProgress, height, color ) end end end local x, y = guiGetScreenSize() ExpSystem = 100 progress = 100 addEvent("gret",true) addEventHandler("gret", root, function(Exp,checkExp) ExpSystem = tostring(Exp) progress = tostring(checkExp) end ) function draw() dxDrawProgressBar( x/2.7, y/1.23, x/4, y/25, (ExpSystem/progress)*100 , tocolor( 0, 255, 255, 255), tocolor( 255, 255, 255, 55) ) end addEventHandler("onClientRender",root, draw) addEventHandler ( "onPlayerWasted", root, function ( _,killer ) local Exp = exports.exp_system: getPlayerEXP(killer) local checkLevel, checkExp = exports.exp_system:getLevelData ( myLevel ) if (killer and killer ~= source) then exports.exp_system:addPlayerEXP ( killer, 1 ) triggerClientEvent(killer, "gret", killer,Exp,checkExp) end end ) Link to comment
TRtam Posted November 6, 2016 Share Posted November 6, 2016 (edited) Cambia esto: dxDrawProgressBar( x/2.7, y/1.23, x/4, y/25, (ExpSystem/progress)*100 , tocolor( 0, 255, 255, 255), tocolor( 255, 255, 255, 55) ) Por esto: dxDrawProgressBar( x/2.7, y/1.23, x/4, y/25, ((x/4)/ExpSystem)*progress , tocolor( 0, 255, 255, 255), tocolor( 255, 255, 255, 55) ) Edited November 6, 2016 by saygoodbye Link to comment
#Dv^ Posted November 6, 2016 Author Share Posted November 6, 2016 Muchas gracias, de todas formas no me sirvió, por qué los niveles que tengo no todos son el mismo resultado, primero necesitas 30xp para el primero, luego 54xp para el segundo, luego 68 para el tercero, tendré que hacer cálculos de todas formas Gracias Link to comment
TRtam Posted November 6, 2016 Share Posted November 6, 2016 Lo que tenes que hacer para el progreso es, usar el width del dxDrawProgressBar divirlo por la cantidad de exp necesitada y luego multiplicarlo por el progreso. Espero que consigas hacerlo Link to comment
#Dv^ Posted November 6, 2016 Author Share Posted November 6, 2016 Sí,pero no le encuentro la manera, por ejemplo en este momento tengo 216Exp, y para el próximo level tengo que llegar a 280Exp, pero la barra ni se mueve, solo queda llena Link to comment
TRtam Posted November 6, 2016 Share Posted November 6, 2016 (edited) Es por la usefull dxDrawProgressBar, cambia esa por esta: function dxDrawProgressBar(posX,posY, sizeX,sizeY, progress,progressmax, color,backColor) local progress = progress or 0 local max_progress = progressmax or 0 local color = color or tocolor(0,255,255,255) local back_color = backColor or tocolor(0,0,0,200) dxDrawRectangle(posX,posY, sizeX,sizeY, back_color) dxDrawRectangle(posX+1,posY+1, (sizeX-2/max_progress)*progress,sizeY-2, color) end Y en la función en donde renderizas el dxDrawProgressBar pone esto: dxDrawProgressBar( x/2.7, y/1.23, x/4, y/25, progress,ExpSystem, tocolor( 0, 255, 255, 255), tocolor( 255, 255, 255, 55) ) Edited November 6, 2016 by saygoodbye Link to comment
Recommended Posts