Página 1 de 2
Porque esse script não funciona????
Enviado: Qua Fev 25, 2009 7:32 am
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,
Enviado: Qua Fev 25, 2009 3:21 pm
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ô
Enviado: Qua Fev 25, 2009 5:46 pm
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.
Enviado: Qua Fev 25, 2009 5:51 pm
por Rico
Respondido!
Enviado: Qua Fev 25, 2009 6:24 pm
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.
Enviado: Qua Fev 25, 2009 6:43 pm
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!
}
Enviado: Qua Fev 25, 2009 6:46 pm
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
Enviado: Qua Fev 25, 2009 7:07 pm
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..
Valeu ai Logan, lendo seu script que eu descobri o problema.
Enviado: Qua Fev 25, 2009 7:13 pm
por Logan MTM
Sim, agora existe um Loop chegando as mortes!
É noix!

Enviado: Qua Fev 25, 2009 7:14 pm
por Wa59
Logan MTM escreveu:Sim, agora existe um Loop chegando as mortes!
É noix!

Só sei programar em Basic, e não existe essas coisas de comas de declarar variaveis...
Agora eu sei que os comandos while e if não usam comas...