HELP - LOAD MOB RESTARTS

Login to reply  Page: « < 1 of 1 > »
15 Sep 2009 - 04:081885
HELP - LOAD MOB RESTARTS

1) Name : Transformação Garoto Dragão (Parte 3)
2) Intended for : Mobiles
3) Trigger types: Load
4) Numeric Arg : 100
5) Arguments :
6) Commands:
set sala %self.room%
set alvo %sala.people%
while %alvo%
set tmp_alvo %alvo.next_in_room%
%echo% Lentamente, o grande dragão começa a falar:
%echo% O Dragão disse, 'Muito obrigado por me libertarem... me chamo Bahamut...'
wait 6s
say Estive preso naquele corpo por tanto tempo que já perdi a noção...
wait 6s
say Só lembro daquele dragão corrompido tentando destruir nosso pai...
wait 6s
say Como agradecimento por terem me libertado daquele corpo sujo, quero convidá-los a entrar nas nossas terras...
wait 6s
say Poucos mortais podem ir lá, não existem meios físicos para entrar, só através de um portal...
wait 6s
say Esse portal é guardado por um imenso dragão dourado, meu fiel servo há milhares de anos
wait 6s
say Vou marcá-los com meu sangue, quando vocês chegarem lá, ele vai senti-lo e com isso permitirá que vocês usem o portal...
%echo% Com uma das garras Bahamut corta uma de suas patas, e derrama bastante sangue sobre você.
wait 2s
%echo% Você se sente extremamente bem, como se esse sangue curasse todas as suas feridas antigas.
%damage% %alvo% -300
if %alvo.varexists(lutando_bahamut)%
rdelete lutando_bahamut %alvo.id%
set acesso_yo 1
remote acesso_yo %alvo.id%
wait 6s
say Se caso algum de seus companheiros que me ajudaram a obter a liberdade não estiver aqui, diga para ele que o guardião reconhece a verdade...'
wait 6s
say E se ele for digno, o guardião permitirá sua passagem... mas em caso de mentira, a morte será seu provável caminho...'
wait 6s
say Agora devo partir para minha terra... mas não sem antes destruir aquilo que me trouxe tanta angustia.
%echo% Bahamut pega a grande bola de metal vermelha que estava no chão.
get bola
wait 6s
%echo% E coloca ela entre seus dentes, e com uma força assustadora, ele morde, até que o metal se parte em vários pedaços.
%load% obj 2262
%load% obj 2262
%load% obj 2262
%load% obj 2262
%load% obj 2262
drop obj 2262
drop obj 2262
drop obj 2262
drop obj 2262
drop obj 2262
drop obj 2262
%echo% Bahamut acena, e com o que parece um sorriso, torna-se energia e desaparece no ar.
%teleport% %self% 13898
else
return 0
end
set alvo %tmp_alvo%
done

CAN SOMEONE PLS, KNOW WHY THIS TRIGGERS RESTART IN THE %DAMAGE% .... ???



15 Sep 2009 - 20:071886
I'm a little unsure what you mean by restart.

However, I've had a look at the trigger. This is what I see (after removing the echos and says):

set sala %self.room% 
set alvo %sala.people% 
while %alvo% 
  set tmp_alvo %alvo.next_in_room% 
  wait 38s 
  %damage% %alvo% -300 
  if %alvo.varexists(lutando_bahamut)% 
    rdelete lutando_bahamut %alvo.id% 
    set acesso_yo 1 
    remote acesso_yo %alvo.id% 
    wait 18s 
    get bola 
    wait 6s 
    %load% obj 2262 
...
    drop obj 2262 
    %teleport% %self% 13898 
  else 
    return 0 
  end 
  set alvo %tmp_alvo% 
done

These things spring to mind:
- drop obj 2262 is not correct syntax. You'll need something like "drop knife" or similar.
- having a 62 second wait in the loop is probably not what you want. This has potential to spread throughout the whole mud:
1. Player x and y enter the room, and the script is somehow started.
2. %alvo% = x, %tmp_alvo% = y.
3. Mob starts talking, but both players leave the room.
4. Player y recalls, and meets some friends at market square.
5. Player x is zapped with damage, rewarded and so on.
6. %alvo% = y, %tmp_alvo% = some other guy on market square(!).
7. 38 seconds pass, suddenly y is hit for 300 dam.
8. further 24+38 seconds pass, and the random guy is struck for 300 hitpoints.

If you wish to use this kind of loop with waits and damage, etc., you need to go about things in a totally different way, with small loops:
set sala %self.room% 
%echo% Lentamente, o grande dragão começa a falar: 
%echo% O Dragão disse, 'Muito obrigado por me libertarem... me chamo Bahamut...' 
wait 6s 
say Estive preso naquele corpo por tanto tempo que já perdi a noção... 
wait 6s 
say Só lembro daquele dragão corrompido tentando destruir nosso pai... 
wait 6s 
say Como agradecimento por terem me libertado daquele corpo sujo, quero convidá-los a entrar nas nossas terras... 
wait 6s 
say Poucos mortais podem ir lá, não existem meios físicos para entrar, só através de um portal... 
wait 6s 
say Esse portal é guardado por um imenso dragão dourado, meu fiel servo há milhares de anos 
wait 6s 
say Vou marcá-los com meu sangue, quando vocês chegarem lá, ele vai senti-lo e com isso permitirá que vocês usem o portal... 
%echo% Com uma das garras Bahamut corta uma de suas patas, e derrama bastante sangue sobre você. 
wait 2s 
%echo% Você se sente extremamente bem, como se esse sangue curasse todas as suas feridas antigas. 

set alvo %sala.people% 
while %alvo% 
  set tmp_alvo %alvo.next_in_room% 
  %damage% %alvo% -300 
  if %alvo.varexists(lutando_bahamut)% 
    rdelete lutando_bahamut %alvo.id% 
    set acesso_yo 1 
    remote acesso_yo %alvo.id% 
  end
  set alvo %tmp_alvo% 
done  
    
wait 6s 
say Se caso algum de seus companheiros que me ajudaram a obter a liberdade não estiver aqui, diga para ele que o guardião reconhece a verdade...' 
wait 6s 
say E se ele for digno, o guardião permitirá sua passagem... mas em caso de mentira, a morte será seu provável caminho...' 
wait 6s 
say Agora devo partir para minha terra... mas não sem antes destruir aquilo que me trouxe tanta angustia. 
%echo% Bahamut pega a grande bola de metal vermelha que estava no chão. 
get bola 
wait 6s 
%echo% E coloca ela entre seus dentes, e com uma força assustadora, ele morde, até que o metal se parte em vários pedaços. 

* here we reward the people who took the hit before the waits, and stuck around
set alvo %sala.people% 
while %alvo% 
  if %alvo.varexists(access_yo)% 
    %load% obj 2262
    drop objectname
  end
  set alvo %alvo.next_in_room% 
done  
%echo% Bahamut acena, e com o que parece um sorriso, torna-se energia e desaparece no ar. 
%teleport% %self% 13898 

Also, please format your code with the [ code] tags. Long codelines apparently totally break the forum layout, but it's still better than a wall of text.


__________________
You know who I am.
15 Sep 2009 - 21:021887
i'm sorry...
so, i did find out about de waits and fixed all the trigger yesternday... but the tips were really nice...
and now on i will use the [CODE] thank you!!!

ps.: there were some problems in the trigger when i paste it here, 'cause i changed the trigger form, for example the drop, it was a load before :)....

anyway, thank you, i'm aways helped here!!



Last edited by molotov (15 Sep 2009 - 21:10)
Login to reply  Page: « < 1 of 1 > »