Jump to content

Um pedido de ajuda


Recommended Posts

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

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
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

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 by asrzk
Link to comment
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.

eeeeeee.png

Edited by dromer2k
Link to comment
  • Other Languages Moderators
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.

eeeeeee.png

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
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

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
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.

 

  • Haha 1
Link to comment
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 by DNL291
Link to comment

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

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 by DNL291
  • Thanks 1
Link to comment
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 by dromer2k
Link to comment

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

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...