|
|
|
Autor |
Mensagem |
Lemos
Usuário
Registrado: 14/04/09 Mensagens: 802 Localização: Rio de Janeiro - RJ |
|
Onde está o erro neste script de animação para o mainactor? |
|
O huntergamer me pediu uma ajuda não script que eu achava que era simples, mas estou dando cabeçada: fazer o Player executar uma animação de ataque. O personagem é o samurai com espada MD2.
Após alguns testes, cheguei a isso:
No evento ON Create:
WriteGlobalVar('Movimento', 0);
WriteGlobalVar('Trava', 0);
No evento Mainloop:
SetLabelText('Label0', 'Movimento:' + IntToStr(ReadGlobalVar('Movimento')));
SetLabelText('Label1', 'Trava:' + IntToStr(ReadGlobalVar('Trava')));
//---Alterar a Variável Movimento por meio da tecla 90 Z ---//
if (IsKeyPress(90)) and (ReadGlobalVar('Movimento') <= 0) then
begin
WriteGlobalVar('Movimento', 0.1);
SetWaitKeyUp(90);
end;
if (ReadGlobalVar('Movimento') >= 0.1) and (ReadGlobalVar('Movimento') < 1) then
begin
WriteGlobalVar('Movimento', ReadGlobalVar('Movimento') + 0.05);
end;
//---End Script Builder---//
//---Controlar a animação do Jogador por meio da Variável Movimento e da tecla 90 Z ---//
if (ReadGlobalVar('Movimento') = 0) and (ReadGlobalVar('Trava') = 0) then
begin
EnablePlayerMove;
SetObjectAnimation('MainActor', 'stand');
SetObjectAnimation('MainActorWeapon', 'stand');
WriteGlobalVar('Trava', 1);
end;
if (ReadGlobalVar('Movimento') >= 0.1) and (ReadGlobalVar('Movimento') <= 0.9) and (GetObjectAnimation('MainActor') <> 'Attack') and (GetObjectAnimation('MainActorWeapon') <> 'Attack') and (ReadGlobalVar('Trava') = 1) then
begin
DisablePlayerMove;
SetObjectAnimation('MainActor', 'Attack');
SetObjectAnimationMode('MainActor', 'PlayOnce');
SetObjectAnimation('MainActorWeapon', 'Attack');
SetObjectAnimationMode('MainActorWeapon', 'PlayOnce');
WriteGlobalVar('Trava', 0);
end
else if (ReadGlobalVar('Movimento') > 0.9) and (ReadGlobalVar('Movimento') <= 1) then
begin
WriteGlobalVar('Movimento', 0);
end;
//---End Script Builder---//
Com esse script, ao clicar na tecla Z uma única vez, o personagem executa perfeitamente toda a animação de atacar 1 vez e pára. Depois, se a gente tenta mover ele, tudo normal. O defeito estpá no seguinte:
Ao iniciar, ele fica na animação stand, se for movido, parar, etc, sempre volta ao stand.
Se eu teclo em Z, ele executa a animação e depois fica congelado, o tempo todo. Basta apertar a seta para cima, fazer qque coisa com ele com as teclas padrão e parar, que ele volta ao stand normalmente.
Resumindo:
1 - começa em stand e se move normalmente.
2 - teclando em z ele pára e ataca 1 vez perfeitamente.
3 - congela para sempre, sem animação, até ser movido novamente por uma tecla direcional (o z faz ele atacar de novo e congelar depois). Após esta ação, fica em stand de novo o tempo todo.
Abraço!
_________________ Lemos
http://alemdanimacao.zip.net/
|
|
Dom Mar 07, 2010 6:11 pm |
|
|
Lemos
Usuário
Registrado: 14/04/09 Mensagens: 802 Localização: Rio de Janeiro - RJ |
|
Re: Onde está o erro neste script de animação para o mainact |
|
Ainda não fiz nenhum projeto que usasse isso, mas meu próximo vai usar muitas animações chamadas por teclas e esse script que eu fiz permite expansões infinitas, mas preciso entender bem para isso... Ou seja, entender esse script é algo fundamental.
Abraço!
_________________ Lemos
http://alemdanimacao.zip.net/
|
|
Dom Mar 07, 2010 6:14 pm |
|
|
huntergamer
Usuário
Registrado: 02/05/09 Mensagens: 415
|
|
|
|
VIM AQUI DEIXAR UM RECADO INVOCADO......
LEMBRO QUE QUANDO ENTREI NO FORUM, APESAR DE NAO SABER NADA AINDA TENTAVA AJUDAR....
OS ANTIGOS SE LEMBRAM... NAO DEIXAVA PRA DEPOIS... ATE OS NOVATOS JA VIRAM QUE QUANDO TO AQUI EU AJUDO NA HORA....
NAO VOU CITAR NOMES NO MOMENTO... MAS TEM ALGUNS AQUI...UM EM ESPECIAL QUE ME TIROU DO SERIO RECENTEMENTE....
PARA AQUELES QUE NUNCA ME FIZERAM NADA CONTINUAREI AJUDANDO A MEDIDA DO POSSIVEL... POREM ESSE TOPICO FOI CRIADO POR UM BOM AMIGO DE TODOS(PAU PRA TODA OBRA AQUI NESSE FORUM) E PARA ME AJUDAR TBM.....
NINGUEM(NINGUEM MESMO AQUI TENTOU AJUDAR)
PORTANTO APARTIR DE AGORA EU ME JULGO FORA DO FORUM POR VARIAS RAZOES PARECIDAS COMO ESTA( INCLUSIVE 1 ESTA NA MINHA MIRA PRA DEIXAR DE SER MERCENARIO E NAO PEDIR NADA EM TROCA PARA PODER AJUDAR.....)
EDIRLEI DESCULPE O DESABAFO... MAS TEM GENTE QUE MERECE.....
_________________ Não mais tão novato |
|
Sex Mar 19, 2010 8:46 pm |
|
|
Mililo
Usuário
Registrado: 05/12/08 Mensagens: 366 Localização: Santo Antônio de Pádua / RJ |
|
|
|
Esse é izi.. é pque você esqueceu de voltar pro modo 'Loop' depois de ir pro modo 'PlayOnce', é só adicionar nessa parte:
| |
//---Controlar a animação do Jogador por meio da Variável Movimento e da tecla 90 Z ---//
if (ReadGlobalVar('Movimento') = 0) and (ReadGlobalVar('Trava') = 0) then
begin
EnablePlayerMove;
SetObjectAnimation('MainActor', 'stand');
SetObjectAnimationMode('MainActor', 'Loop');
SetObjectAnimation('MainActorWeapon', 'stand');
SetObjectAnimationMode('MainActor', 'Loop');
WriteGlobalVar('Trava', 1);
end; |
Lembrando que desse jeito que você fez, para atirar varias vezes teria que soltar o botao e apertar denovo.
|
|
Sex Mar 19, 2010 11:50 pm |
|
|
Mililo
Usuário
Registrado: 05/12/08 Mensagens: 366 Localização: Santo Antônio de Pádua / RJ |
|
|
|
Ops.. corrigindo, o segundo ali é:
SetObjectAnimationMode('MainActorWeapon', 'Loop');
Aliás até hj não entendi o porque de não ter edit no fórum
|
|
Sex Mar 19, 2010 11:52 pm |
|
|
Lemos
Usuário
Registrado: 14/04/09 Mensagens: 802 Localização: Rio de Janeiro - RJ |
|
|
|
| | Ops.. corrigindo, o segundo ali é:
SetObjectAnimationMode('MainActorWeapon', 'Loop');
Aliás até hj não entendi o porque de não ter edit no fórum |
Valeu a dica, Mililo, vou experimentar aqui!
_________________ Lemos
http://alemdanimacao.zip.net/
|
|
Sáb Mar 20, 2010 12:01 am |
|
|
Lemos
Usuário
Registrado: 14/04/09 Mensagens: 802 Localização: Rio de Janeiro - RJ |
|
|
|
Putz grilo, Mililo, funcionou!!! Valeu mesmo a dica, não acredito que dei esse mole!
Com esse script dá para fazer muita coisa!
Abraço!
_________________ Lemos
http://alemdanimacao.zip.net/
|
|
Sáb Mar 20, 2010 3:12 pm |
|
|
huntergamer
Usuário
Registrado: 02/05/09 Mensagens: 415
|
|
|
|
VALEU MILILO
CARA NAO FOI PRA VOCÊ ISSO.... JAMAIS VOCÊ SEMPRE FOI PRESENTE AQUI
COMO DISSE TEM UM QUE ME PAGA
obrigado mesmo
abraço
_________________ Não mais tão novato |
|
Seg Mar 22, 2010 8:11 pm |
|
|
|
|
|
|
|
|