Jump to content

help draw exp


pepsi18

Recommended Posts

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 

Link to comment
  • Recently Browsing   0 members

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