Jump to content

Duvida


Recommended Posts

Posted

Tá errado as linhas 4 e 7 do 1º script

Linha 4:

if daBlockz == "PAULNMCA" and daAnimz == "wank_in" then -- Não existe "PAULNMCA" o certo é "PAULNMAC". A função getPedAnimation() retorna a categoria e a animação em minúsculo então o certo seria utilizar "paulnmac". 

Linha 7:

setPedAnimation ( source, "PAULNMCA", "dnce_m_b") -- Corrigir "PAULNMCA" por "PAULNMAC" declarar o "wank_in" no lugar do "dnce_m_b" 

Script correto:

function punheta (source) 
    daBlockz = getElementData(root,"blockz") 
    daAnimz = getElementData(root,"animz") 
        if daBlockz == "paulnmac" and daAnimz == "wank_in" then 
            setPedAnimation(source,false) 
        else 
            setPedAnimation ( source, "PAULNMAC", "wank_in") 
        end 
    end 
addCommandHandler("punheta",punheta) 

E no 2º script não sei se você copiou errado, mais está ddEventHandler sendo que o correto é addEventHandler

Script correto:

addEventHandler("onClientPreRender",root, 
  funcation () 
    daBlock, daAnim = getPedAnimation(getLocalPlayer()) 
    setElementData(root,"blockz",daBlock) 
    setElementData(root,"animz",daAnim) 
  end ) 
  

Esse script possui coisas desnecessárias, aqui um exemplo de um mais simples:

  
-- lado cliente 
addCommandHandler("punheta", 
    function() 
    local category, anim = getPedAnimation(localPlayer) 
        if category == "paulnmac" and anim == "wank_in" then 
            setPedAnimation(localPlayer, false) 
        else 
            setPedAnimation(localPlayer, "paulnmac", "wank_in", -1, true, false) 
        end 
    end 
) 

Posted

so uma observação, onClientPreRender é realmente necessario? pois ele executa muitas vezes, creio ser o evento que mais se executa em menos tempo, voce poderia usar outras formas para ganhar uma performance melhor.

560x95_FFFFFF_09FF00_050505_000000.png

"Querer não é poder, mas tentar é avançar"!

Posted

Ele não executa mais que o onClientRender, o que os difere, é a ordem no processamento.

O evento onClientPreRender é chamado depois que o 'mundo' do GTA é atualizado, enquanto onClientRender é chamado depois que o HUD do GTA é renderizado.

Aqui está essa ordem que em mencionei:

https://wiki.multitheftauto.com/wiki/Ga ... sing_Order

Script correto:

addEventHandler("onClientPreRender",root, 
  funcation () 
    daBlock, daAnim = getPedAnimation(getLocalPlayer()) 
    setElementData(root,"blockz",daBlock) 
    setElementData(root,"animz",daAnim) 
  end ) 
  

Esse código, no entanto, é péssimo para a performance, por conta da definição de dados para todos tipos de elementos - e tudo isso a cada pré-renderização.

EDIT: E também tem um erro de digitação na definição de function.

Please do not PM me with scripting related question nor support, use the forums instead.

Posted

lol sempre pensei que onClientPreRender foce o que mais se executava(foi pelo nome, eu pensei que algo que é executado antes do render(pre render) acontecesse antes e assim muitas vezes mais) malz pessoal

560x95_FFFFFF_09FF00_050505_000000.png

"Querer não é poder, mas tentar é avançar"!

Posted

Já tive o mesmo conceito, normal :) Só depois que encontrei aquele link no MTA Wiki e pude entender como funciona essa ordem a cada frame.

Please do not PM me with scripting related question nor support, use the forums instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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