Jump to content

help draw exp


pepsi18

Recommended Posts

Posted

Hola tengo un problema quiero dibujar el exp que el jugador gana al matar a un zombie todo va bien el problema es este

cuando mato a 1 zombie me sale el exp que gane con la animacion todo bien pero cuando mato a otro zombie el texto desaparece sin terminar la animacion y vuelve a aparecer otro texto con la nuevo exp que e ganado . Lo que quiero es que el texto no desaparesac hasta que se termine el tiempo ose que al matar a otro zombie aparesca otro texto diferente .

server

  addEvent ( "onZombieWasted", true ) 
    addEventHandler ( "onZombieWasted", root, 
        function ( theKiller ) 
        experiencia = math.random(2, 25) 
             exports.exp_system:addPlayerEXP ( theKiller, experiencia) 
         givePlayerMoney(theKiller,math.random(15, 60)) 
         triggerClientEvent ( "darwexp", root, experiencia , source, bodypart) 
        end 
    ) 

client

local text = "" 
local x, y = "" 
    function onClientPlayerWeaponFireFunc(experiencia, source, bodypart) 
    local sx1, sy1, sz1 = getPedBonePosition( source,1) 
text = experiencia 
x, y = getScreenFromWorldPosition( sx1, sy1, sz1 ) 
     start = getTickCount() 
     addEventHandler ( "onClientRender", getRootElement(), dxDrawAnimText ) 
     setTimer(function () 
     removeEventHandler ( "onClientRender", getRootElement(), dxDrawAnimText ) 
     end , 3000, 1 )  
  end 
addEvent ( "darwexp", true ) 
addEventHandler ( "darwexp", root, onClientPlayerWeaponFireFunc ) 
  
function dxDrawAnimText() 
local sx, sy, sz = getPedBonePosition( localPlayer, 1 ) 
local height,width = getScreenFromWorldPosition( sx, sy, sz ) 
local font = "default-bold" 
local anim = "OutQuad" 
local text = "+"..text 
  
    btwidth = width 
    btheight = height/20 
  
    local now = getTickCount() 
    local elapsedTime = now - start 
    local endTime = start + 3000 
    local duration = endTime - start 
    local progress = elapsedTime / duration 
    local x1, y1, z1 = interpolateBetween (x, y, 0,height,width, 0, progress, anim) 
    local x2, y2, z2 = interpolateBetween ( 0, 0, 0, btwidth, btheight, btheight/11, progress, anim) 
    posx = (x/2)-(x1/2) 
    posy = (y/2)-(y1/2) 
    dxDrawText ( text, x1, y1, x, y, tocolor ( 255, 255, 255, 255 ), z2,font,"center","center")    
end 

Posted

Podrías utilizar un timer que dure lo que dura la animación para luego detectar si el timer existe, si existe que no aparezca, si no existe que si aparezca, entiendes? xD

  • Recently Browsing   0 members

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