RegistrarBuscaFAQMembrosGruposEntrar
Colocar Vida nos inimigos

 
Responder tópico    3D Game Builder - Índice » Programação Exibir tópico anterior
Exibir próximo tópico
Colocar Vida nos inimigos
Autor Mensagem
Edno Rodrigues
Usuário
Usuário


Registrado: 07/09/09
Mensagens: 158
Localização: Tomb Raider

Mensagem Colocar Vida nos inimigos Responder com citação
Ola, eu pansei um tempão, tentando achar o Scrip certo para programa o espantalho, com o exemplo que o Lemos me deu para colocar vida no Ator e também restaura vida, fucionou direitinho, agora coloquei a vida no espantalho, para fazer um teste eu coloquei dois label : um com o nome de VIDA e outro com o nome ESPANTALHO, eu conseguir,más tem um problema que não conseguir desifra, observe a programação::

Coloquei Vida 500 para o Ator Principal e para o espantalho coloquei espantalho 300, ficou Assim....

//--Ator Principal
SetLabelText('Objeto4', +ReadGlobalVar('Vida'));
//--espantalho
SetLabelText('Objeto6', +ReadGlobalVar('espantalho'));

//---vida dos Atores---//
WriteGlobalVar('Vida', 500);
WriteGlobalVar('espantalho', 300);


if Copy(GetCollidedObject1(), 0, 6) = 'Bullet' then
begin
if (GetCollidedObject2 = 'Objeto1') then
begin
if ReadGlobalVar('espantalho') > 0 then
WriteGlobalVar('espantalho', ReadGlobalVar('espantalho')-20);
begin
ExplodeObject('Objeto1', 3, 30);
DestroyObject('Objeto1');
end;
end;
if Copy(GetCollidedObject2(), 0, 6) = 'Bullet' then
if (GetCollidedObject1 = 'Objeto1') then
begin
if ReadGlobalVar('espantalho') > 0 then
WriteGlobalVar('espantalho', ReadGlobalVar('espantalho')-20);
ExplodeObject('Objeto1', 3, 30);
DestroyObject('Objeto1');
end;
end;

Tudo OK e verificado, executando o teste, o espantalho morre com um tiro só, quando eu apago os Scripts Explode e o DestroyObject, o espantalo começa a perder vida de -20 a cada tiro acertado, após eu tentei colocando Begin abaixo do Script WriteGlobalVar('espantalho',ReadGblobalVar('espantalho')-20);e da ERRO, más tirando o Begin da Certo mais o espantalho só fica perdendo vida quando eu tiro os 2 Scripts que mostrei anteriomente, esse é o Scrips que fortaleçe os inimigos colocando vidas neles.


if Copy(GetCollidedObject1(), 0, 6) = 'Bullet' then
begin
if (GetCollidedObject2 = 'Objeto1') then
begin
if ReadGlobalVar('espantalho') > 0 then
WriteGlobalVar('espantalho', ReadGlobalVar('espantalho')-20);
Begin
end;
end;
if Copy(GetCollidedObject2(), 0, 6) = 'Bullet' then
if (GetCollidedObject1 = 'Objeto1') then
begin
if ReadGlobalVar('espantalho') > 0 then
WriteGlobalVar('espantalho', ReadGlobalVar('espantalho')-20);
end;
end;

Agora o que ta faltando para matar o espantalho ( Explode ou destruir ) quando os tiros zera sua Vida... preciso da Ajuda de Vocês.......

Abraço á todos.


Qui Fev 24, 2011 2:45 am Exibir perfil de usuários Enviar mensagem privada
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 803
Localização: Rio de Janeiro - RJ

Mensagem Re: Colocar Vida nos inimigos Responder com citação
Cara, eu to meio corrido aqui, mas tentou isso:

//--Ator Principal
SetLabelText('Objeto4', 'Vida: '+ReadGlobalVar('Vida'));
//--espantalho
SetLabelText('Objeto6', 'Espantalho: '+ReadGlobalVar('espantalho'));

//---vida dos Atores---//
WriteGlobalVar('Vida', 500);
WriteGlobalVar('espantalho', 300);


if Copy(GetCollidedObject1(), 0, 6) = 'Bullet' then
begin
if (GetCollidedObject2 = 'Objeto1') then
begin
if ReadGlobalVar('espantalho') > 0 then
begin
WriteGlobalVar('espantalho', ReadGlobalVar('espantalho')-20);
ExplodeObject('Objeto1', 3, 30);
DestroyObject('Objeto1');
end;
end;
if Copy(GetCollidedObject2(), 0, 6) = 'Bullet' then
if (GetCollidedObject1 = 'Objeto1') then
begin
if ReadGlobalVar('espantalho') > 0 then
WriteGlobalVar('espantalho', ReadGlobalVar('espantalho')-20);
ExplodeObject('Objeto1', 3, 30);
DestroyObject('Objeto1');
end;
end;


Eu troquei um begin de lugar aqui, no primeiro script e acrescentei uma frase no seu label. Acho que tinha que inverter alguma coisa nos scripts de colisão, com o Object1, mas não estou bem lembrado, vou olhar meu tutorial.
Anota o seu script original e faz um teste com essa opção e vê se melhora.

Abraço

_________________
Lemos
http://alemdanimacao.zip.net/
Qui Fev 24, 2011 11:15 am Exibir perfil de usuários Enviar mensagem privada Visitar o website do usuário
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1008
Localização: Nycolle minha vida!!!

Mensagem Responder com citação
como fazer isso com uma espada?
Qua Nov 02, 2011 9:53 pm Exibir perfil de usuários Enviar mensagem privada MSN Messenger
dinastygames
Novato
Novato


Registrado: 25/02/12
Mensagens: 3
Localização: Goiania

Mensagem hehe olha aki Responder com citação
Active=session{Delphi}
turn;on
//--Ator Principal
SetLabelText('Objeto4', 'Vida: '+ReadGlobalVar('Vida'));
//--espantalho
SetLabelText('Objeto6', 'Espantalho: '+ReadGlobalVar('espantalho'));


WriteGlobalVar('Vida', 500);
WriteGlobalVar('espantalho', 300);


if Copy(GetCollidedObject1(), 0, 6) = 'Bullet' then
begin
if (GetCollidedObject2 = 'Objeto1') then
begin
if ReadGlobalVar('espantalho') > 0 then
begin
WriteGlobalVar('espantalho', ReadGlobalVar('espantalho')-20);
ExplodeObject('Objeto1', 3, 9Cool;
DestroyObject('Objeto1');
finish;
if Copy(GetCollidedObject2(), 0, 6) = 'Bullet' then
if (GetCollidedObject1 = 'Objeto1') then
begin
<if>destroyset
get('espantalho')<desability>turn('actor') <esse e o ator principal e um exemplo !!!
if ReadGlobalVar('espantalho') > 0 then
WriteGlobalVar('espantalho', ReadGlobalVarchar('espantalho')-20);
ExplodeObject('Objeto1', 3, 9Cool;
DestroyObject('Objeto1');
finish;off

eu modifikei com script Dhelfi
e deu certo !!


Sáb Fev 25, 2012 10:19 pm Exibir perfil de usuários Enviar mensagem privada MSN Messenger
Viciadao
Usuário
Usuário


Registrado: 27/11/11
Mensagens: 166
Localização: No msn

Mensagem Responder com citação
Olhe antes de postar um código use:
Código:
Active=session{Delphi}
turn;on
//--Ator Principal
SetLabelText('Objeto4', 'Vida: '+ReadGlobalVar('Vida'));
//--espantalho
SetLabelText('Objeto6', 'Espantalho: '+ReadGlobalVar('espantalho'));


WriteGlobalVar('Vida', 500);
WriteGlobalVar('espantalho', 300);


if Copy(GetCollidedObject1(), 0, 6) = 'Bullet' then
begin
if (GetCollidedObject2 = 'Objeto1') then
begin
if ReadGlobalVar('espantalho') > 0 then
begin
WriteGlobalVar('espantalho', ReadGlobalVar('espantalho')-20);
ExplodeObject('Objeto1', 3, 9;
DestroyObject('Objeto1');
finish;
if Copy(GetCollidedObject2(), 0, 6) = 'Bullet' then
if (GetCollidedObject1 = 'Objeto1') then
begin
<if>destroyset
get('espantalho')<desability>turn('actor') <esse e o ator principal e um exemplo !!!
if ReadGlobalVar('espantalho') > 0 then
WriteGlobalVar('espantalho', ReadGlobalVarchar('espantalho')-20);
ExplodeObject('Objeto1', 3, 9;
DestroyObject('Objeto1');
finish;off


_________________
1°Sabia que amanhã é o dia mundial do corno? Não? Pois é ... o corno é sempre o último a saber.

2°As mulheres só não dominaram o mundo porque ainda estão tentando decidir a roupa certa para a ocasião.

3°Eu não acredito em coincidência, acredito em destino. -É mesmo? Eu também. -Nossa, que coincidência!

4°"Em briga de Saci, qualquer chute é voadora!"

5°Antes de falar, ouça. Antes de agir, pense. Antes de desistir, tente. Antes de cagar, veja se tem papel."

6°"O amor às vezes é como a gasolina. Custa caro, acaba rápido e pode ser substituída pelo álcool."

7°E disse o Saci: "- Não demoro, vou num pé e volto no outro." Ele nunca mais voltou.

8°Se eu fosse um anjinho te levaria para o céu,como não sou te levo pro motel

9°Se eu fosse um anjinho te levaria voando,como não sou te f.o.d.h.e e vai andando

10°Fica tranquilo! Eu nunca dirigi, mas tantos anos de Mario Kart devem servir para alguma coisa.
Sáb Fev 25, 2012 11:05 pm Exibir perfil de usuários Enviar mensagem privada
StenioAguiar
Usuário
Usuário


Registrado: 09/06/10
Mensagens: 86

Mensagem Responder com citação
Edno ver se assim funciona

Código:
//--Ator Principal   //
SetLabelText('Objeto4', +ReadGlobalVar('Vida'));
//--espantalho    //
SetLabelText('Objeto6', +ReadGlobalVar('espantalho'));

//---vida dos Atores---//
WriteGlobalVar('Vida', 500);
WriteGlobalVar('espantalho', 300);


if Copy(GetCollidedObject1(), 0, 6) = 'Bullet' then
begin
if (GetCollidedObject2 = 'Objeto1') then
begin
if ReadGlobalVar('espantalho') > 0 then
WriteGlobalVar('espantalho', ReadGlobalVar('espantalho')-20);
end;
if Copy(GetCollidedObject2(), 0, 6) = 'Bullet' then
if (GetCollidedObject1 = 'Objeto1') then
begin
if ReadGlobalVar('espantalho') > 0 then
WriteGlobalVar('espantalho', ReadGlobalVar('espantalho')-20);
end;
end;
// explodir o objeto //
if ReadGlobalVar('espantalho') = 0 then
begin
ExplodeObject('Objeto1', 3, 30);
DestroyObject('Objeto1');
end;
// fim //



Dom Fev 26, 2012 2:35 am Exibir perfil de usuários Enviar mensagem privada MSN Messenger
Mostrar os tópicos anteriores:    
Responder tópico    3D Game Builder - Índice » Programação Todos os horários são GMT
Página 1 de 1

 
Ir para: 
Você não pode enviar mensagens novas neste fórum
Você não pode responder mensagens neste fórum
você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode votar em enquetes neste fórum


Powered by phpBB © 2001, 2008 phpBB Group
Design by Edirlei
Traduzido por phpBB Brasil