dromer2k Posted December 22, 2018 Share Posted December 22, 2018 Olá a todos. Parece que esta comunidade abraça as pessoas de um modo que sempre da volta de voltar, não? Recentemente me bateu uma volta de voltar a "programar", mais como um hobby, uma maneira de gastar o tempo para me achar útil em algo e desde então venho sofrendo dificuldades para entender alguns conceitos básicos de lua que eu deixei lá atrás quando eu ainda estava aprendendo. Comecei algumas linhas de um script básico que desejo fazer mas a tentativa foi extremamente falha e cá estou eu. function skinwalk () getPedSkin ( source ) if id == 0 or 34 then setPedWalkingStyle (source, 118) end end addEventHandler ("onPlayerJoin", getRootElement(), skinwalk) Bom, estas linhas eram na teoria da prática para que assim que o jogador entrar no servidor seja verificado se está com a skin 0 e assim mudar o seu WalkingStyle, na real eu quero fazer isso em larga escala com dois tipos de WalkingStyle e skins femininas e masculinas mas como eu não obtive sucesso tentei em escada reduzida, e não consegui. Se puderem me orientar em que eu posso mudar e onde, além de recomendar alguns tutoriais seria de grande ajuda, desde já agradeço. Link to comment
Other Languages Moderators androksi Posted December 22, 2018 Other Languages Moderators Share Posted December 22, 2018 O código não faz sentido, pois quando o jogador entra no servidor, a skin dele sempre será 0 (CJ). Está faltando a variável "id", que no caso teria de ser acompanhada do getPedSkin(). local id = getPedSkin ( source ); Porém, getPedSkin não é mais válido. Use getElementModel(). local id = getElementModel ( source ); Link to comment
dromer2k Posted December 22, 2018 Author Share Posted December 22, 2018 1 hour ago, asrzk said: O código não faz sentido, pois quando o jogador entra no servidor, a skin dele sempre será 0 (CJ). Está faltando a variável "id", que no caso teria de ser acompanhada do getPedSkin(). local id = getPedSkin ( source ); Porém, getPedSkin não é mais válido. Use getElementModel(). local id = getElementModel ( source ); Obrigado, funcionou. Sobre a skin sempre ser a 0 eu como citei acima desejo separar um WalkStyle para personagens femininos e outro para masculinos da mesma forma que esse acima que foi de forma reduzida. Eu tentei utilizar uma forma de tabela, exemplo: maleSkins = {0, 1, 2, 7, 14, 15, 16} femaleSkins = {9, 10, 11, 12, 13, 31, 38} E ali no lugar de: " if id == 0 or 34 then " colocar maleSkins, é possível fazer isso de alguma forma? Link to comment
Other Languages Moderators androksi Posted December 22, 2018 Other Languages Moderators Share Posted December 22, 2018 (edited) Entendi perfeitamente. É melhor você usar o evento onPlayerLogin, pois o evento onPlayerJoin sempre retornará a skin do CJ (ID: 0). Faça assim: local maleSkins = { [0] = true, [1] = true, [2] = true, [7] = true, [14] = true, [15] = true, [16] = true }; local femaleSkins = { [9] = true, [10] = true, [11] = true, [12] = true, [13] = true, [31] = true, [38] = true }; addEventHandler ( "onPlayerLogin", root, function ( _, account ) local id = getElementModel ( source ); if ( maleSkins[id] ) then setPedWalkingStyle ( source, 10 ); -- aqui o estilo de andar se for skin masculina. else setPedWalkingStyle ( source, 11 ); -- aqui o estilo de andar se for skin feminina. end end ) Edited December 22, 2018 by asrzk Link to comment
dromer2k Posted December 22, 2018 Author Share Posted December 22, 2018 (edited) 7 hours ago, asrzk said: <code> Eu tentei colocar esse código para depois adaptar de uma maior forma mas quando eu testei ele da maneira que me enviou no cmd alerta que na linha "6" há um problema de um símbolo inesperado, eu não entendi. Edited December 22, 2018 by dromer2k Link to comment
Other Languages Moderators Lord Henry Posted December 23, 2018 Other Languages Moderators Share Posted December 23, 2018 Lol, primeira vez que vejo alguém ter o empenho de colocar ; no fim dos comandos. 1 Link to comment
Other Languages Moderators androksi Posted December 23, 2018 Other Languages Moderators Share Posted December 23, 2018 43 minutes ago, dromer2k said: Eu tentei colocar esse código para depois adaptar de uma maior forma mas quando eu testei ele da maneira que me enviou no cmd alerta que na linha "6" há um problema de um símbolo inesperado, eu não entendi. Para mim, o debugscript não apontou nenhum erro. Veja se você copiou direitinho, se tiver mais dúvidas, poste aqui o meta e o código completo, pois acho que você alterou algo. Link to comment
dromer2k Posted December 23, 2018 Author Share Posted December 23, 2018 3 hours ago, asrzk said: Para mim, o debugscript não apontou nenhum erro. Veja se você copiou direitinho, se tiver mais dúvidas, poste aqui o meta e o código completo, pois acho que você alterou algo. Eu copie ele diretamente do código que você me enviou e eu não alterei em nada, mhm... Continua dando isto. Link to comment
Jonas^ Posted December 23, 2018 Share Posted December 23, 2018 Tente isso: local maleSkins = {[0] = true, [1] = true, [2] = true, [7] = true, [14] = true, [15] = true, [16] = true} -- Tabela 01, skins 'masculinas' local femaleSkins = {[9] = true, [10] = true, [11] = true, [12] = true, [13] = true, [31] = true, [38] = true} -- Tabela 02, skins 'femininas' function styleAndar (_, thePlayer, account) -- Inicio da função. local id = getElementModel (thePlayer) -- Detecta o id da skin do jogador . if (maleSkins[id]) then -- Se o jogador estiver com uma das skins da tabela 'maleSkins' então: setPedWalkingStyle (thePlayer, 10) -- Seta o modo de andar 'masculino' nele. outputChatBox ( "Stylo de andar: Masculino" ) else setPedWalkingStyle (thePlayer, 11) -- Se for ao contrário no caso 'feminino' seta o modo 'feminino' outputChatBox ( "Stylo de andar: Feminino" ) end end addEventHandler ("onPlayerLogin", getRootElement(), styleAndar) -- Evento onde a função sera chamada no caso no login de cada player. Link to comment
main Posted December 23, 2018 Share Posted December 23, 2018 1 hour ago, OverKILL said: Tente isso: local maleSkins = {[0] = true, [1] = true, [2] = true, [7] = true, [14] = true, [15] = true, [16] = true} -- Tabela 01, skins 'masculinas' local femaleSkins = {[9] = true, [10] = true, [11] = true, [12] = true, [13] = true, [31] = true, [38] = true} -- Tabela 02, skins 'femininas' function styleAndar (_, thePlayer, account) -- Inicio da função. local id = getElementModel (thePlayer) -- Detecta o id da skin do jogador . if (maleSkins[id]) then -- Se o jogador estiver com uma das skins da tabela 'maleSkins' então: setPedWalkingStyle (thePlayer, 10) -- Seta o modo de andar 'masculino' nele. outputChatBox ( "Stylo de andar: Masculino" ) else setPedWalkingStyle (thePlayer, 11) -- Se for ao contrário no caso 'feminino' seta o modo 'feminino' outputChatBox ( "Stylo de andar: Feminino" ) end end addEventHandler ("onPlayerLogin", getRootElement(), styleAndar) -- Evento onde a função sera chamada no caso no login de cada player. Os parâmetros do evento onPlayerLogin está errado e não é necessário usar O certo seria assim: local maleSkins = {[0] = true, [1] = true, [2] = true, [7] = true, [14] = true, [15] = true, [16] = true} -- Tabela 01, skins 'masculinas' local femaleSkins = {[9] = true, [10] = true, [11] = true, [12] = true, [13] = true, [31] = true, [38] = true} -- Tabela 02, skins 'femininas' function styleAndar (thePreviousAccount, theCurrentAccount) -- Inicio da função. local id = getElementModel (source) -- Detecta o id da skin do jogador . if (maleSkins[id]) then -- Se o jogador estiver com uma das skins da tabela 'maleSkins' então: setPedWalkingStyle (source, 10) -- Seta o modo de andar 'masculino' nele. outputChatBox ( "Stylo de andar: Masculino", source ) else setPedWalkingStyle (source, 11) -- Se for ao contrário no caso 'feminino' seta o modo 'feminino' outputChatBox ( "Stylo de andar: Feminino", source ) end end addEventHandler ("onPlayerLogin", getRootElement(), styleAndar) -- Evento onde a função sera chamada no caso no login de cada player. 1 Link to comment
DNL291 Posted December 23, 2018 Share Posted December 23, 2018 (edited) 15 hours ago, dromer2k said: Eu copie ele diretamente do código que você me enviou e eu não alterei em nada, mhm... Continua dando isto. Cole aqui o seu código. Sei que é o mesmo código que o que foi postado mas precisamos saber se não tem nenhum símbolo extra ou faltando. Comigo o Ctrl + C e Ctrl + V com Lua costuma acontecer isso aqui no fórum. Acontece usando o Chrome, testei no IE e não deu esse problema. Edited December 23, 2018 by DNL291 Link to comment
Other Languages Moderators Lord Henry Posted December 23, 2018 Other Languages Moderators Share Posted December 23, 2018 Comigo também aparece símbolos no código quando copio daqui. Só que eu mesmo corrijo no notepad++. Também uso Chrome. Internet Explorer não tem como, kkkkk Link to comment
dromer2k Posted December 23, 2018 Author Share Posted December 23, 2018 Estranho, nenhum dos códigos anteriores estão funcionando. Simplesmente não aparece alguma mensagem no debugscript. 2 hours ago, DNL291 said: Cole aqui o seu código. Sei que é o mesmo código que o que foi postado mas precisamos saber se não tem nenhum símbolo extra ou faltando. Comigo o Ctrl + C e Ctrl + V com Lua costuma acontecer isso aqui no fórum. Acontece usando o Chrome, testei no IE e não deu esse problema. Deve ser isto local maleSkins = { [0] = true, [1] = true, [2] = true, [7] = true, [14] = true, [15] = true, [16] = true }; local femaleSkins = { [9] = true, [10] = true, [11] = true, [12] = true, [13] = true, [31] = true, [38] = true }; addEventHandler ( "onPlayerLogin", root, function ( _, account ) local id = getElementModel ( source ); if ( maleSkins[id] ) then setPedWalkingStyle ( source, 10 ); -- aqui o estilo de andar se for skin masculina. else setPedWalkingStyle ( source, 11 ); -- aqui o estilo de andar se for skin feminina. end end ) foi qual eu dei ctrl+c do asrzk Link to comment
DNL291 Posted December 24, 2018 Share Posted December 24, 2018 (edited) Comigo não apareceu nenhum símbolo quando copiei. Então o problema deve ser outro. Como está o script no meta.xml? Deve estar no lado server, se tiver no lado client não será executado. Teste este código aqui e diga quais mensagens são mostradas no chat: local maleSkins = { [0] = true, [1] = true, [2] = true, [7] = true, [14] = true, [15] = true, [16] = true }; local femaleSkins = { [9] = true, [10] = true, [11] = true, [12] = true, [13] = true, [31] = true, [38] = true }; addEventHandler ( "onPlayerLogin", root, function ( _, account ) outputChatBox("'onPlayerLogin' chamado!") local id = getElementModel ( source ); outputChatBox("Seu Skin é: "..tostring(id)) if ( maleSkins[id] ) then outputChatBox("Skin masculino") setPedWalkingStyle ( source, 10 ); -- aqui o estilo de andar se for skin masculina. else outputChatBox("Outro") setPedWalkingStyle ( source, 11 ); -- aqui o estilo de andar se for skin feminina. end end ) Edit: @dromer2k Edited December 25, 2018 by DNL291 1 Link to comment
dromer2k Posted December 25, 2018 Author Share Posted December 25, 2018 @DNL291 Não aconteceu nada, parece até que o código nem foi executado. Link to comment
DNL291 Posted December 25, 2018 Share Posted December 25, 2018 1 minute ago, dromer2k said: @DNL291 Não aconteceu nada, parece até que o código nem foi executado. meta.xml? Cadê Link to comment
dromer2k Posted January 1, 2019 Author Share Posted January 1, 2019 On 25/12/2018 at 19:14, DNL291 said: meta.xml? Cadê <meta> <script src="script.lua" type="server"/> </meta> Link to comment
DNL291 Posted January 2, 2019 Share Posted January 2, 2019 Se você logou na conta e não mostrou nenhuma mensagem no chat só posso concluir que esse resource não tá ligado no server. E no script não há nenhum erro, então ao menos a saída no chat deveria sair. Link to comment
dromer2k Posted January 6, 2019 Author Share Posted January 6, 2019 (edited) On 01/01/2019 at 23:18, DNL291 said: Se você logou na conta e não mostrou nenhuma mensagem no chat só posso concluir que esse resource não tá ligado no server. E no script não há nenhum erro, então ao menos a saída no chat deveria sair. Algum problema que eu não consegui identificar estava acontecendo e por acaso tive que restaurar meu computador então tentei novamente e desta vez o código foi executado mas o walkingstyle não foi alterado como mostra essa screenshot: https://www.upload.ee/image/9396118/mta-screen_2019-01-06_21-24-10.png Edited January 6, 2019 by dromer2k Link to comment
DNL291 Posted January 8, 2019 Share Posted January 8, 2019 Tenho certeza que você não alterou pra um ID de walking Style válido. @Wiki: The possible walking styles are: MOVE_DEFAULT 0 MOVE_PLAYER 54 MOVE_PLAYER_F 55 MOVE_PLAYER_M 56 MOVE_ROCKET 57 MOVE_ROCKET_F 58 MOVE_ROCKET_M 59 MOVE_ARMED 60 MOVE_ARMED_F 61 MOVE_ARMED_M 62 MOVE_BBBAT 63 MOVE_BBBAT_F 64 MOVE_BBBAT_M 65 MOVE_CSAW 66 MOVE_CSAW_F 67 MOVE_CSAW_M 68 MOVE_SNEAK 69 MOVE_JETPACK 70 MOVE_MAN 118 MOVE_SHUFFLE 119 MOVE_OLDMAN 120 MOVE_GANG1 121 MOVE_GANG2 122 MOVE_OLDFATMAN 123 MOVE_FATMAN 124 MOVE_JOGGER 125 MOVE_DRUNKMAN 126 MOVE_BLINDMAN 127 MOVE_SWAT 128 MOVE_WOMAN 129 MOVE_SHOPPING 130 MOVE_BUSYWOMAN 131 MOVE_SEXYWOMAN 132 MOVE_PRO 133 MOVE_OLDWOMAN 134 MOVE_FATWOMAN 135 MOVE_JOGWOMAN 136 MOVE_OLDFATWOMAN 137 MOVE_SKATE 138 Link to comment
dromer2k Posted January 8, 2019 Author Share Posted January 8, 2019 Eu consegui! Obrigado pela ajuda de todos que contribuíram com esse tópico, eu espero que ele possa ajudar mais pessoas confusas como eu. T&A. 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