Porque esse script não funciona????

ACS, DECORATE, Especial Lumps, Sprites e coisas específicas de cada source port serão postadas aqui!
Wa59
Mensagens: 983
Registrado em: Sex Abr 21, 2006 9:54 pm
Answers: 0
17
Localização: Jundiaí - SP
Contato:

Porque esse script não funciona????

Mensagem por Wa59 »

Código: Selecionar todos

script 27 (void)
{	
	
	if(thingcount(T_ARACHNOTRON, 2) > 0);
	{
		delay (100);
		print(s:"Voces mataram minha outra mastermind tambem ?");
		delay (100);
		print(s:"Faltam as filhas!");
		ACS_execute(28,2,0,0,0);
		terminate;
				
	}
	if(thingcount(T_ARACHNOTRON, 2) == 0);
	{
		print(s:"Ate as filhas?");
		delay (100);
		print(s:"To comecando a gostar de voces..");
		delay (100);
		exit_normal(0);
	}
}

script 28 (void)
{
	while(thingcount(T_ARACHNOTRON, 2) > 0);
	delay(100);
	print(s:"Ate as filhas?");
	delay (100);
	print(s:"To comecando a gostar de voces..");
	delay (100);
	exit_normal(0);
}
Eu quero que quando a mistermind morra, se tiverem arachs vivas ele fala (FALTA AS FILHAS) e aguarda todas morrerem para passar a fase, e se não tiver ele termina a fase sozinha...

O problema é que quando as arachs tão vivas ele trava o script depois de falar que faltam as filhas (runaway script 28 terminated)

E quando elas estão mortas, ele fala que faltam as filhas e logo depois fala que elas morreram... =S

Não manjo de programação por isso peço ajuda,
Swim... Swim... Hungry...
Dopefish lives.
Avatar do usuário
Lord DooM1.666
Mensagens: 1169
Registrado em: Qui Jan 10, 2008 9:19 pm
Answers: 0
16
Localização: Pernambuco - Brasil

Mensagem por Lord DooM1.666 »

hmm


Experimenta colocar no script 27

T_SPIDERMASTERMIND ao invés de T_ARACHNOTRON

E além disso tem 2 script ai que faz a mesma coisa
Isso ai é pra fucionar mesmo né? IAHAIHUAHUAHA
Usa só um Pô
Avatar do usuário
Logan MTM
Mensagens: 2895
Registrado em: Dom Dez 11, 2005 8:12 pm
Answers: 0
18
Localização: Rio de Janeiro - Brasil
Contato:

Mensagem por Logan MTM »

Pelo que saquei do seu Script, não há um Loop no codigo que cheque a condição ThingCount().

Acho que o mais correto seria + ou - assim:

Código: Selecionar todos

script 27 (void) 
{    
While(thingcount(T_ARACHNOTRON, 2) > 0); 
 { 
 delay (1);
 }
delay(100);  
print(s:"Voces mataram minha outra mastermind tambem ?"); 
delay (100); 
print(s:"Faltam as filhas!"); 
ACS_execute(28,2,0,0,0); 
}
Esse Script fará com que o print(); só se execute quando todas as Arachnotrons de Tags 2 forem mortas.
Rico
Mensagens: 2354
Registrado em: Dom Set 10, 2006 11:49 am
Answers: 0
17
Localização: Atrás do DU0
Contato:

Mensagem por Rico »

Respondido!
[xfire]p0br3[/xfire]
Futuro PC:

CPU: AMD Athlon x2 64Bits 7750 2.7GHz Black Edition
MoBo: Asus M2 ou M3.
VGA: XFX Geforce 9800 GTX 512MB ou 1GB/256Bits
HD: Seagate 1TB
PSU: ATX 600w REAIS
RAM: 4GB Ram DDR2 Kingstone @800MHz [2x2Gb]
Wa59
Mensagens: 983
Registrado em: Sex Abr 21, 2006 9:54 pm
Answers: 0
17
Localização: Jundiaí - SP
Contato:

Mensagem por Wa59 »

Logan MTM escreveu:Pelo que saquei do seu Script, não há um Loop no codigo que cheque a condição ThingCount().

Acho que o mais correto seria + ou - assim:

Código: Selecionar todos

script 27 (void) 
{    
While(thingcount(T_ARACHNOTRON, 2) > 0); 
 { 
 delay (1);
 }
delay(100);  
print(s:"Voces mataram minha outra mastermind tambem ?"); 
delay (100); 
print(s:"Faltam as filhas!"); 
ACS_execute(28,2,0,0,0); 
}
Esse Script fará com que o print(); só se execute quando todas as Arachnotrons de Tags 2 forem mortas.
Assim funciona, mas não msotra as mensagens do jeito que eu quero... =(

Vou tentar explicar melhor...

Quando a mastermind morre, a morte dela ativa o script 27..

Eu quero que o jogo veja se tem arachs com a tag 2 vivas ou não.

Se tiverem o jogo mostra "mimimi faltam as filhas".
E espera a morte de todas para mostrar "OK!" por exemplo.
Se não tiverem nenhuma arach viva o jogo mostra "OK!" direto.
Swim... Swim... Hungry...
Dopefish lives.
Avatar do usuário
Logan MTM
Mensagens: 2895
Registrado em: Dom Dez 11, 2005 8:12 pm
Answers: 0
18
Localização: Rio de Janeiro - Brasil
Contato:

Mensagem por Logan MTM »

Código: Selecionar todos

script 27 (void) 
{    
While(thingcount(T_ARACHNOTRON, 2) > 0); 
 { 
 delay(100);  
 print(s:"Voces mataram minha outra mastermind tambem ?"); 
 delay (100); 
 print(s:"Faltam as filhas!");  
 } 
 
//Aqui entra o deve acontecer quando todos voltarem pro inferno!

}
Wa59
Mensagens: 983
Registrado em: Sex Abr 21, 2006 9:54 pm
Answers: 0
17
Localização: Jundiaí - SP
Contato:

Mensagem por Wa59 »

Logan MTM escreveu:

Código: Selecionar todos

script 27 (void) 
{    
While(thingcount(T_ARACHNOTRON, 2) > 0); 
 { 
 delay(100);  
 print(s:"Voces mataram minha outra mastermind tambem ?"); 
 delay (100); 
 print(s:"Faltam as filhas!");  
 } 
 
//Aqui entra o deve acontecer quando todos voltarem pro inferno!

}
Não é bem isso.

Bom, criei uma versão reduzida (BEM reduzida) do mapa só para ilustrar o objetivo geral da fase...

Acho que fica mais claro assim...

http://rapidshare.com/files/202550981/oi.wad.html
Swim... Swim... Hungry...
Dopefish lives.
Wa59
Mensagens: 983
Registrado em: Sex Abr 21, 2006 9:54 pm
Answers: 0
17
Localização: Jundiaí - SP
Contato:

Mensagem por Wa59 »

Acabo de resolver o problema...

o codigo era assim

Código: Selecionar todos

script 4 (void) //quando todos as arachs morrem
{	
	
	if(thingcount(T_ARACHNOTRON, 2) > 0);
	{
		ACS_execute(5,0,0,0,0);
		terminate;				
	}
	if(thingcount(T_ARACHNOTRON, 2) == 0);
	{
		ACS_execute(6,0,0,0,0);
	}
}

script 5 (void)
{
	print(s:"FALTAM AS FILHAS!");
	delay(100);
	while(thingcount(T_ARACHNOTRON, 2) > 0);
        {
	delay(1);
	}
	ACS_execute(6,0,0,0,0);
}

script 6 (void)
{
	delay(100);
	print(s:"Ate as filhas morreram?");
	delay (100);
	print(s:"To comecando a gostar de voces..");
	delay (100);
	exit_normal(0);
}
Tudo que eu fiz foi remover os comas que estavam errados!

Código: Selecionar todos

script 4 (void) //quando todos as arachs morrem
{	
	
	if(thingcount(T_ARACHNOTRON, 2) > 0)
	{
		ACS_execute(5,0,0,0,0);
		terminate;				
	}
	if(thingcount(T_ARACHNOTRON, 2) == 0)
	{
		ACS_execute(6,0,0,0,0);
	}
}

script 5 (void)
{
	print(s:"FALTAM AS FILHAS!");
	delay(100);
	while(thingcount(T_ARACHNOTRON, 2) > 0)
       {
	delay(1);
	}
	ACS_execute(6,0,0,0,0);
}

script 6 (void)
{
	delay(100);
	print(s:"Ate as filhas morreram?");
	delay (100);
	print(s:"To comecando a gostar de voces..");
	delay (100);
	exit_normal(0);
}

Eu sabia que a lógica tava certa.. :lol:

Valeu ai Logan, lendo seu script que eu descobri o problema.
Avatar do usuário
Logan MTM
Mensagens: 2895
Registrado em: Dom Dez 11, 2005 8:12 pm
Answers: 0
18
Localização: Rio de Janeiro - Brasil
Contato:

Mensagem por Logan MTM »

Sim, agora existe um Loop chegando as mortes!

É noix! :mrgreen:
Wa59
Mensagens: 983
Registrado em: Sex Abr 21, 2006 9:54 pm
Answers: 0
17
Localização: Jundiaí - SP
Contato:

Mensagem por Wa59 »

Logan MTM escreveu:Sim, agora existe um Loop chegando as mortes!

É noix! :mrgreen:
Só sei programar em Basic, e não existe essas coisas de comas de declarar variaveis... :lol:

Agora eu sei que os comandos while e if não usam comas...
Swim... Swim... Hungry...
Dopefish lives.