threevictor Posted April 4, 2017 Share Posted April 4, 2017 Olá pessoal,então eu estava verificando a lista de animações e achei essa walk_drunk e gostaria de faze-la se mover para os lados com as teclas W,S,A,D como se fosse um setPedWalkingStyle,será possivel fazer isso? function ChapaDrunk (source) setPedAnimation(source, "ped", "walk_drunk", -1,true,true,false,false) end addCommandHandler("bebado", Chapadrunk) Link to comment
Iaan Posted April 4, 2017 Share Posted April 4, 2017 (edited) https://wiki.multitheftauto.com/wiki/SetPedWalkingStyle ID: 126 (MOVE_DRUNKMAN) Olhando a wiki, dá pra ver todos os ID e estilos pra andar. Edited April 4, 2017 by Iaan Link to comment
threevictor Posted April 4, 2017 Author Share Posted April 4, 2017 (edited) sim,intendi seu modo de pensar mas como já disse no post gostaria de fazer ele andar como uma animação,pois se eu colocar o setPedWalkingStyle vão poder correr e etc... então vai fugir do foco principal que é só fazer andar bêbado sem correr. Edited April 4, 2017 by #banana Link to comment
DNL291 Posted April 4, 2017 Share Posted April 4, 2017 Só desativar a parte de correr. Link to comment
Iaan Posted April 4, 2017 Share Posted April 4, 2017 (edited) 23 minutes ago, #banana said: sim,intendi seu modo de pensar mas como já disse no post gostaria de fazer ele andar como uma animação,pois se eu colocar o setPedWalkingStyle vão poder correr e etc... então vai fugir do foco principal que é só fazer andar bêbado sem correr. Havia entendido que só precisava do style... Para fazer do jeito que você quer, assim que você ativa a animação você vai precisar bloquear o controle de correr com toggleControl(https://wiki.multitheftauto.com/wiki/ToggleControl) e quando sair da animação, você vai precisar habilitar novamente. local isDrunk = false function drunkPlayer(player,cmd) if not (isDrunk) then setPedWalkingStyle(player,126) toggleControl(player,"sprint",false) isDrunk = true else setPedWalkingStyle(player,0) toggleControl(player,"sprint",true) isDrunk = false end end addCommandHandler("bebado",drunkPlayer) (Não testei) Edited April 4, 2017 by Iaan Edit Link to comment
Other Languages Moderators Lord Henry Posted April 5, 2017 Other Languages Moderators Share Posted April 5, 2017 21 hours ago, Iaan said: local isDrunk = false function drunkPlayer(player,cmd) if not (isDrunk) then setPedWalkingStyle(player,126) toggleControl(player,"sprint",false) isDrunk = true else setPedWalkingStyle(player,0) toggleControl(player,"sprint",true) isDrunk = false end end addCommandHandler("bebado",drunkPlayer) (Não testei) Esse jeito acima não vai dar certo. A variável isDrunk será aplicada ao script em si e não aos jogadores. Dessa forma, se um jogador der o comando /bebado e a variável ficar true, dai essa variável será true para todo mundo. Eu faria desse jeito assim: function onJoin (source) setElementData (source,"drunk.Status", false) -- Todo jogador que entra no server recebe status de bêbado como false por padrão. end addEventHandler ("onPlayerJoin", getRootElement(), onJoin) function drunkPlayer (source) if getElementData (source,"drunk.Status") == false then -- Se o jogador estiver com status de bêbado como false, faz o seguinte: setPedWalkingStyle (source, 126) -- Coloca estilo de andar bêbado. toggleControl (source, "sprint", false) -- Desativa a função de correr, podendo somente andar na velocidade normal ou caminhar. setElementData (source, "drunk.Status", true) -- Coloca o status de bêbado desse jogador como true. else -- Se o jogador não possuir status de bêbado como false, faz o seguinte: setPedWalkingStyle (source, 0) -- Coloca estilo de andar normal. toggleControl (source, "sprint", true) -- Ativa a função de correr. setElementData (source, "drunk.Status", false) -- Coloca o status de bêbado desse jogador como false. end end addCommandHandler ("bebado", drunkPlayer) -- Executa essa função ao usar o comando /bebado. 1 Link to comment
xeon17 Posted April 5, 2017 Share Posted April 5, 2017 (edited) addCommandHandler ("bebado", function(player, command) if(getPedWalkingStyle(player == 0)) then setPedWalkingStyle (player, 126) toggleControl (player, "sprint", false) else setPedWalkingStyle (player, 0) toggleControl (player, "sprint", true) end end ) Eu recomendo usar este codigo, é melhor para o desempenho do que o código acima. Quero mencionar que não testei. Edited April 5, 2017 by xeon17 1 Link to comment
Other Languages Moderators Lord Henry Posted April 6, 2017 Other Languages Moderators Share Posted April 6, 2017 6 hours ago, xeon17 said: addCommandHandler ("bebado", function(player, command) if(getPedWalkingStyle(player == 0)) then setPedWalkingStyle (player, 126) toggleControl (player, "sprint", false) else setPedWalkingStyle (player, 0) toggleControl (player, "sprint", true) end end ) Eu recomendo usar este codigo, é melhor para o desempenho do que o código acima. Quero mencionar que não testei. Hum não sabia desse getPedWalkingStyle, então assim fica tranquilo: addCommandHandler ("bebado", function (source) if (getPedWalkingStyle (source) == 126) then setPedWalkingStyle (source, 0) toggleControl (player, "sprint", true) else setPedWalkingStyle (source, 126) toggleControl (source, "sprint", false) end end) Dessa forma ele vai setar estilo de bêbado independente de seu estilo atual. 1 Link to comment
Iaan Posted April 6, 2017 Share Posted April 6, 2017 19 hours ago, lordhenry said: Esse jeito acima não vai dar certo. A variável isDrunk será aplicada ao script em si e não aos jogadores. Dessa forma, se um jogador der o comando /bebado e a variável ficar true, dai essa variável será true para todo mundo. Eu faria desse jeito assim: function onJoin (source) setElementData (source,"drunk.Status", false) -- Todo jogador que entra no server recebe status de bêbado como false por padrão. end addEventHandler ("onPlayerJoin", getRootElement(), onJoin) function drunkPlayer (source) if getElementData (source,"drunk.Status") == false then -- Se o jogador estiver com status de bêbado como false, faz o seguinte: setPedWalkingStyle (source, 126) -- Coloca estilo de andar bêbado. toggleControl (source, "sprint", false) -- Desativa a função de correr, podendo somente andar na velocidade normal ou caminhar. setElementData (source, "drunk.Status", true) -- Coloca o status de bêbado desse jogador como true. else -- Se o jogador não possuir status de bêbado como false, faz o seguinte: setPedWalkingStyle (source, 0) -- Coloca estilo de andar normal. toggleControl (source, "sprint", true) -- Ativa a função de correr. setElementData (source, "drunk.Status", false) -- Coloca o status de bêbado desse jogador como false. end end addCommandHandler ("bebado", drunkPlayer) -- Executa essa função ao usar o comando /bebado. Exato, meu exemplo foi o mais genérico possível. Queria apenas demonstrar o uso da função e não fazer um script para /bebado. Link to comment
threevictor Posted April 6, 2017 Author Share Posted April 6, 2017 (edited) Calma ai galera,se for pra fazer uma disputa de conhecimento sobre scripting eu faço,mas aqui não é lugar. Edited April 6, 2017 by #banana Link to comment
Iaan Posted April 6, 2017 Share Posted April 6, 2017 34 minutes ago, #banana said: Calma ai galera,se for pra fazer uma disputa de conhecimento sobre scripting eu faço,mas aqui não é lugar. Não é disputa não, é por que sempre tem um jeito melhor de fazer melhorando o desempenho, entendeu? É sempre bom conhecer como funciona. Link to comment
DNL291 Posted April 6, 2017 Share Posted April 6, 2017 22 hours ago, lordhenry said: Esse jeito acima não vai dar certo. A variável isDrunk será aplicada ao script em si e não aos jogadores. Dessa forma, se um jogador der o comando /bebado e a variável ficar true, dai essa variável será true para todo mundo. Eu faria desse jeito assim: function onJoin (source) setElementData (source,"drunk.Status", false) -- Todo jogador que entra no server recebe status de bêbado como false por padrão. end addEventHandler ("onPlayerJoin", getRootElement(), onJoin) function drunkPlayer (source) if getElementData (source,"drunk.Status") == false then -- Se o jogador estiver com status de bêbado como false, faz o seguinte: setPedWalkingStyle (source, 126) -- Coloca estilo de andar bêbado. toggleControl (source, "sprint", false) -- Desativa a função de correr, podendo somente andar na velocidade normal ou caminhar. setElementData (source, "drunk.Status", true) -- Coloca o status de bêbado desse jogador como true. else -- Se o jogador não possuir status de bêbado como false, faz o seguinte: setPedWalkingStyle (source, 0) -- Coloca estilo de andar normal. toggleControl (source, "sprint", true) -- Ativa a função de correr. setElementData (source, "drunk.Status", false) -- Coloca o status de bêbado desse jogador como false. end end addCommandHandler ("bebado", drunkPlayer) -- Executa essa função ao usar o comando /bebado. Eu não usaria setElementData só pra verificar o status do jogador. Vai ser uso de largura de banda desnecessária. O código de @xeon17 deve funcionar, só tem um pequeno erro na linha 3 - o parenteses de fechar a função tá depois do 0. Obs: Pra verificar o status do jogador é só usar getPedWalkingStyle(). Link to comment
Other Languages Moderators Lord Henry Posted April 7, 2017 Other Languages Moderators Share Posted April 7, 2017 17 hours ago, DNL291 said: Eu não usaria setElementData só pra verificar o status do jogador. Vai ser uso de largura de banda desnecessária. O código de @xeon17 deve funcionar, só tem um pequeno erro na linha 3 - o parenteses de fechar a função tá depois do 0. Obs: Pra verificar o status do jogador é só usar getPedWalkingStyle(). Concordo, só que eu não sabia que existia o getPedWalkingStyle, depois que ele mencionou dai mudei pra esse: On 06/04/2017 at 01:04, lordhenry said: Hum não sabia desse getPedWalkingStyle, então assim fica tranquilo: addCommandHandler ("bebado", function (source) if (getPedWalkingStyle (source) == 126) then setPedWalkingStyle (source, 0) toggleControl (player, "sprint", true) else setPedWalkingStyle (source, 126) toggleControl (source, "sprint", false) end end) Dessa forma ele vai setar estilo de bêbado independente de seu estilo atual. 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