Colocar Vida nos inimigos

 
   3D Game Builder - Índice » Programação
Colocar Vida nos inimigos
Autor Mensagem
Edno Rodrigues
Usuário
Usuário


Registrado: 07/09/09
Mensagens: 277
Localização: Brasil Games

Colocar Vida nos inimigos
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
Lemos
Usuário
Usuário


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

Re: Colocar Vida nos inimigos
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
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

como fazer isso com uma espada?


Qua Nov 02, 2011 9:53 pm Exibir perfil de usuários
dinastygames
Novato
Novato


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

hehe olha aki
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
Viciadao
Usuário
Usuário


Registrado: 27/11/11
Mensagens: 202
Localização: Morro do Alemã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
StenioAguiar
Usuário
Usuário


Registrado: 09/06/10
Mensagens: 88

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
fernandovinicius
Usuário
Usuário


Registrado: 02/09/14
Mensagens: 99
Localização: Brasil,pernambuco,cauraru

Onde coloca o script de colocar vida nos atores e no ator principal? Question

_________________
Meus games em progresso

WAR OF FUTURE 12% completo

(Um dia eu chego la)
Sáb Set 27, 2014 4:51 pm Exibir perfil de usuários
fernandovinicius
Usuário
Usuário


Registrado: 02/09/14
Mensagens: 99
Localização: Brasil,pernambuco,cauraru

Re: Colocar Vida nos inimigos
[quote="Lemos"]Cara, eu to meio corrido aqui, mas tentou isso:

[color=green]//--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;[/color]

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[/quote]
onde coloca os scripts acima? Question Question
Dom Nov 23, 2014 12:07 pm Exibir perfil de usuários
   3D Game Builder - Índice » Programação
Página 1 de 1