MaRcell Posted January 23, 2015 Share Posted January 23, 2015 (edited) RESOLVIDO Edited February 1, 2015 by Guest Link to comment
[M]ister Posted January 23, 2015 Share Posted January 23, 2015 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 ) Link to comment
MaRcell Posted January 24, 2015 Author Share Posted January 24, 2015 pronto vlw maninho Link to comment
manawydan Posted January 27, 2015 Share Posted January 27, 2015 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. Link to comment
DNL291 Posted January 29, 2015 Share Posted January 29, 2015 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. Link to comment
manawydan Posted January 30, 2015 Share Posted January 30, 2015 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 Link to comment
DNL291 Posted January 30, 2015 Share Posted January 30, 2015 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. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now