Jump to content
×
×
  • Create New...
  • 0

Purgatoire


PaJa41
 Share

Question

[Message d'introduction]

 

Version des files : 2012

Domaine (Base de données, Core, etc.) : Quest

Votre niveau (débutant, intermédiaire, avancé) : intermédiaire

 

Description du problème : Bonsoir à tous, j'ai un petit soucis avec ma quete du purgatoire, quand il reste 15min au timer avant d'être éjecter de l'instance, mon channel crash. Le deuxième problèmes est que si l'instance est finie dans les temps et bien le channel crash aussi je vous copie la quêtes.

Comment reproduire le problème :

Recherches et tests effectué :

Résultat des recherches et tests :

 

Message d'erreur, capture d'écran :

 

quest blazingpurgatory begin
   state start begin
       when 20394.chat."Les Gorges du Pugatoire" with pc.get_map_index() == 62 begin
           say_title("Gardien de Doyyumhwan: ")
           say("Le Dieu de tous les démons, Razador, s'est") 
           say("réveillé, la fin de l'humanité est proche!") 
           say("Lutte, vaillant guerrier, avec l'aide de ton") 
           say("groupe pour sauver le monde de la") 
           say("destruction de ce nouveau mal !") 
           say("")
           wait()
           say_title("Gardien de Doyyumhwan: ")
           say("Les fidèles disiples de Razador,")
           say("maître du feu, ont pour mission de")
           say("libérer le légendaire dragon rouge")
           say("de sont cachot. Si ils réussissent,")
           say("cela ouvrira d'avantage la voie du pouvoir.")
           say("")
           wait()
           say_title("Gardien de Doyyumhwan: ")
           if pc.get_level() >= 205 or pc.is_gm() then
               if party.is_party() or pc.is_gm()  then
                   if party.is_leader() or pc.is_gm() then
                       if pc.count_item(30189) > 0 or pc.is_gm() then
                           say_reward("Parfait, vous avez toutes les qualitées pour")
						say_reward("entrer, voulez vous essayer de vaincre Razador ?")
                           if select("Oui!","Non") == 1 then
                               notice_all("Le groupe de "..pc.name.." s'est engagé dans la bataille contre Razador !")
                               pc.remove_item(30189,1)
                               d.join(230)
                           end
                       else
                           say_reward("Il vous faut des larmes pour entrer!")
                           say_item_vnum(30189)
                       end
                   else
                       say_reward("Seul le chef du groupe peut rendre accéssible à l'instance.")
                   end
               else
                   say_reward("Vous devez faire parti d'un groupe.")
               end
           else
               say_reward("Vous devez être 205 pour pouvoir y entrer.")
           end
       end
       when login with pc.in_dungeon() and pc.get_map_index() >= 2300000 and pc.get_map_index() <= 2305000 begin
           say("Vous avez acceptez d'entrez dans l'antre de Razador")
           say("Que le combat commence !")
           say("")
           if party.is_party() then
               if party.is_leader() then
                   blazingpurgatory.start()
               end
           else
               if pc.is_gm() then
                   blazingpurgatory.start()
               end
           end
       end
       function start()
           d.regen_file("data/dungeon/blazingpurgatory/npc.txt")
           d.setf("actual_round",0)
		d.setf("time_final",0)
           d.setf("time", get_time()+60*60*1)
           server_timer('purgatorytime',3600,pc.get_map_index())
           server_loop_timer('purgatorytimenotice',300,pc.get_map_index())
           blazingpurgatory.NoticeTime()
		timer('purgatorytime_attente', 15)
       end            
       when purgatorytimenotice.server_timer begin
           if d.select(get_server_timer_arg()) then
               blazingpurgatory.NoticeTime()
           end
       end
       when purgatorytime.server_timer begin
           if d.select(get_server_timer_arg()) then
			notice_all("Le groupe de "..pc.name.." à perdu la bataille contre Razador !")
               d.notice("Le temps est écoulé !")
               d.exit_all()
           end
       end
       when purgatorytime_attente.timer begin
		if d.getf("purgatory_level") == 7 then
               d.setf("block_altar",1)
               d.setf("actual_round",7)
               d.notice("Vous pensiez que c'était fini ?!") 
			d.notice("NON !")
               d.notice("Vous allez maintenant rejoindre Razador.") --- boss
               timer('warp_to_boss',5)
           else
               d.setf("purgatory_level",d.getf("purgatory_level")+1)
			d.setf("actual_round",d.getf("actual_round")+1)
               blazingpurgatory.purge()
               blazingpurgatory.LoadStage()
               d.setf("block_altar",1)
               d.notice("-----PHASE "..d.getf("actual_round").."-----")
               d.notice("Une nouvelle zone s'est maintenant ouverte !")
           end
       end
       when warp_to_boss.timer begin
           d.jump_all(8111,6864)
           d.notice("Razador")
           d.notice("Inutile de me résister, vous allez tous mourir !!")
           d.regen_file("data/dungeon/blazingpurgatory/boss.txt")
       end    
       when purgatorytime_end.timer begin
		d.exit_all()
	end
	when kill with pc.in_dungeon() and pc.get_map_index() >= 2300000 and pc.get_map_index() <= 2305000 begin
           if d.getf("actual_round") == 1 then
               d.setf("kill_count",d.getf("kill_count") +1)
			d.notice("monstres tués"..d.getf("kill_count").." !")
			if d.getf("kill_count") == d.getf("bp_kill_to_next") then
                   d.notice("Retournez au près des Gorges d'Am-Heh au centre de la map!")
                   blazingpurgatory.purge()
				d.regen_file("data/dungeon/blazingpurgatory/5chaine.txt")
				timer('purgatorytime_attente', 15)
               end
           elseif d.getf("actual_round") == 2 then
               d.setf("kill_count",d.getf("kill_count") +1)
               if d.getf("kill_count") == d.getf("kill_to_drop_key") then
                   game.drop_item(71175,1)
                   d.setf("kill_count",0)
               end
		elseif d.getf("actual_round") == 3 then
               d.setf("kill_count",d.getf("kill_count") +1)
			if d.getf("kill_count") == d.getf("bp_kill_to_next") then
                   d.notice("Retournez au près des Gorges d'Am-Heh au centre de la map!")
                   blazingpurgatory.purge()
				d.regen_file("data/dungeon/blazingpurgatory/3chaine.txt")
				timer('purgatorytime_attente', 15)
               end
           elseif d.getf("actual_round") == 4 and npc.get_race() == 191 then
               d.notice("Retournez au près des Gorges d'Am-Heh au centre de la map!")
               blazingpurgatory.purge()
			d.regen_file("data/dungeon/blazingpurgatory/2chaine.txt")
			timer('purgatorytime_attente', 15)
               
		elseif d.getf("actual_round") == 5 then
               d.setf("kill_count",d.getf("kill_count") +1)
               if d.getf("kill_count") == d.getf("kill_to_drop_key") then
                   game.drop_item(50084,1)
                   d.setf("kill_count",0)
               end
           elseif d.getf("actual_round") == 6 and npc.get_race() == 8049 then
               d.notice("Retournez au près des Gorges d'Am-Heh au centre de la map!")
			d.setf("purgatory_level",d.getf("purgatory_level")+1)
			d.setf("actual_round",d.getf("actual_round")+1)
               blazingpurgatory.purge()
			timer('purgatorytime_attente', 15)
           elseif d.getf("actual_round") == 7 and npc.get_race() == 192 then
               d.notice("Vous avez tué Razador !")
			d.notice("Vous serez téléporté sur les terres de feu dans 5 minutes !")
			d.setf("time_final",1)
			blazingpurgatory.NoticeTime()
			clear_server_timer('purgatorytime', get_server_timer_arg())
			timer('purgatorytime_end', 300)
               d.clear_regen()
               d.kill_all()
		end
       end
       when 20081.take with pc.in_dungeon() and pc.get_map_index() >= 2300000 and pc.get_map_index() <= 2305000 begin
           if item.get_vnum() == 50084 then
               if d.getf("actual_round") == 5 then
                   local sequence = {{1,2,3,4,5,6,7,7},{4,3,2,1,7,6,5,5},{6,7,4,5,3,1,2,2},{7,6,5,3,4,2,1,1},{7,5,1,3,4,2,6,6}}
                   if blazingpurgatory.GetPillarID() == sequence[d.getf("sequence")][d.getf("pillarcount")] then
                       pc.remove_item(item.get_vnum(),1)
                       npc.purge()
                       d.setf("pillarcount", d.getf("pillarcount")+1)
                       if d.getf("pillarcount") == 8 then
                           d.notice("Retournez au près des Gorges d'Am-Heh au centre de la map!")
                           blazingpurgatory.purge()
						d.regen_file("data/dungeon/blazingpurgatory/1chaine.txt")
						timer('purgatorytime_attente', 15)
                       else
                           d.notice("Continuez comme ça, il ne reste que "..8-d.getf("pillarcount").." pilliers à ouvrir!")
                       end
                   elseif blazingpurgatory.GetPillarID() == false then
                       syschat("Rapprochez vous du pillier !")
                   elseif blazingpurgatory.GetPillarID() != sequence[d.getf("sequence")][d.getf("pillarcount")] then
                       pc.remove_item(item.get_vnum(),1)
                       syschat("Cet item ne fonctionne pas!")
                   end
               end
           end
       end
	when 20386.take with pc.in_dungeon() and pc.get_map_index() >= 2300000 and pc.get_map_index() <= 2305000 begin
           if item.get_vnum() == 71175 then
               if d.getf("actual_round") == 2 then
                   pc.remove_item(item.get_vnum(),1)
                   if number(1,8) == 1 then
                       npc.purge()
                       d.notice("Retournez au près des Gorges d'Am-Heh au centre de la map!")
                       d.clear_regen()
					d.kill_all()
					d.regen_file("data/dungeon/blazingpurgatory/4chaine.txt")
					timer('purgatorytime_attente', 15)
                   else
                       syschat("Cette pierre d'ouverture est endommagée!")
                       syschat("Trouvez en une autre !")
                   end
               end
           end
       end
       function LoadStage()
           if d.getf("actual_round") == 1 then
               d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_1.txt")
			d.regen_file("data/dungeon/blazingpurgatory/5chaine.txt")
               d.setf("bp_kill_to_next",235)
               d.setf("kill_count",0)
           elseif d.getf("actual_round") == 2 then
               d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_2.txt")
			d.regen_file("data/dungeon/blazingpurgatory/4chaine.txt")
               d.setf("kill_to_drop_key",50)
			d.setf("kill_count",0)
               d.spawn_mob(20386,197,356)
           elseif d.getf("actual_round") == 3 then
               d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_3.txt")
			d.regen_file("data/dungeon/blazingpurgatory/3chaine.txt")
               d.setf("bp_kill_to_next",248)
               d.setf("kill_count",0)
           elseif d.getf("actual_round") == 4 then
               d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_4.txt")
			d.regen_file("data/dungeon/blazingpurgatory/2chaine.txt")
               d.spawn_mob(191,468,173)
           elseif d.getf("actual_round") == 5 then
               local sequence = {{1,2,3,4,5,6,7},{4,3,2,1,7,6,5},{6,7,4,5,3,1,2},{7,6,5,3,4,2,1},{7,5,1,3,4,2,6}}
               local n = number(1,5)
               local coords = {{485,370},{485,337},{502,325},{502,380},{520,370},{520,330},{530,354}}
               for i = 1, 7 do
                   d.spawn_mob(20081, coords[i][1],coords[i][2])
               end
               d.setf("pillarcount", 1)
               d.setf("sequence",n)
               d.setf("kill_to_drop_key",100)
			d.setf("kill_count",0)
			d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_5.txt")
			d.regen_file("data/dungeon/blazingpurgatory/1chaine.txt")
           elseif d.getf("actual_round") == 6 then
               d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_6.txt")
               d.spawn_mob(8049,507,489)
           end
       end    
       function purge()
           d.setf("block_altar",0)
           d.clear_regen()
           d.kill_all()
	    d.regen_file("data/dungeon/blazingpurgatory/npc.txt")
       end        
       function NoticeTime()
           local secondsLeft = (d.getf("time") - get_time())
           local minutesLeft = math.ceil(secondsLeft / 60)
		if d.getf("time_final") == 0 then
			d.notice("Il reste "..minutesLeft.." minute(s) !")
		else
			notice_all("Le groupe de "..pc.name.." a terminé les Gorges du Purgatoire en "..60-minutesLeft.." minute(s)!")
		end
       end
       function GetPillarID()
           if pc.get_local_x() >= 485 - 5 and pc.get_local_x() <= 485 + 5 and pc.get_local_y() >= 370 - 5 and pc.get_local_y() <= 370 + 5 then
               return 1
           elseif pc.get_local_x() >= 485 - 5 and pc.get_local_x() <= 485 + 5 and pc.get_local_y() >= 337 - 5 and pc.get_local_y() <= 337 + 5 then
               return 2
           elseif pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 325 - 5 and pc.get_local_y() <= 325 + 5 then
               return 3
           elseif pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 380 - 5 and pc.get_local_y() <= 380 + 5 then
               return 4
           elseif pc.get_local_x() >= 520 - 5 and pc.get_local_x() <= 520 + 5 and pc.get_local_y() >= 370 - 5 and pc.get_local_y() <= 370 + 5 then
               return 5
           elseif pc.get_local_x() >= 520 - 5 and pc.get_local_x() <= 520 + 5 and pc.get_local_y() >= 330 - 5 and pc.get_local_y() <= 330 + 5 then
               return 6
           elseif pc.get_local_x() >= 530 - 5 and pc.get_local_x() <= 530 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then
               return 7
           else
               return false
           end
       end
   end
end

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.[Message d'introduction]

 

Version des files :

Domaine (Base de données, Core, etc.) :

Votre niveau (débutant, intermédiaire, avancé) :

 

Description du problème :

Comment reproduire le problème :

Recherches et tests effectué :

Résultat des recherches et tests :

 

Message d'erreur, capture d'écran :

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.

Link to comment
Share on other sites

  • Answers 3
  • Created
  • Last Reply

Top Posters For This Question

Top Posters For This Question

3 answers to this question

Recommended Posts

Guest
This topic is now closed to further replies.
 Share



  • Flux d'Activité

    1. 30

      AresiaCMS

    2. 30

      AresiaCMS

    3. 30

      AresiaCMS

    4. 66

      Decay 2.51

    5. 0

      PACK Dofus Arcenciel

    6. 0

      Partage Ornament L'attaque des Titans

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.