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

<!> Les Purgatoires <!>


Skream
 Share

Question

Bonjour,

 

Je vous contact car j'ai un problème sur l'instance, y a rien qui spawn quand je me tp dessus.

 

 

Version des files : 2014

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

 

Description du problème : Aucun spawn alors que l'instance est complétement implanté.

 

Recherches et tests effectué : Changement de la quête.

Résultat des recherches et tests : Toujours la même chose !

 

Message d'erreur, capture d'écran

Hidden Content

    Give reaction to this post to see the hidden content.
= Syserr côté serveur !

 

 quest blazingpurgatory begin 

    state start begin 
        when 20394.chat."Les Gorges du Pugatoire" begin --- Changer lID du PNJ soit le garde du purgatoire qui se trouve map flame
            say_title("Gardien du Purgatoire:") 
            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("") 
            say("") 
            say("") 
            wait() 
            say_title("Gardien du Purgatoire:") 
            say("Pour accéder au Purgatoire vous devez") 
            say("il doit y avoir au moins un level 100 dans le") 
            say("groupe et que le chef demande à rejoindre les") 
            say("Gorges en ayant les") 
            say_reward("Larmes de Baljit-Elvedin dans son inventaire.") --- Changer lID de litem pour rentrer dans les gorges 
            say("")
            say(" Êtes vous prêt à tenter votre chance ?")
            say("") 
            say("") 
            wait() 
            say_title("Gardien du Purgatoire:") 
            if pc.get_level() < 100 then 
                say("Désolé, le chef du groupe n'est pas lvl 100.")
                party.chat("Le chef du groupe doit être lvl 100.")
                return
            end -- if
            if not party.is_party() then 
                say("Vous devez être dans un groupe pour rejoindre")
                say("les Gorges du Purgatoire.")
                return
            end
            if not party.is_leader() then
                say("Amenez moi le chef de votre groupe...")
                say("je vais lui transmettre ce que je sais.")
                return
            end
            if pc.count_item(30189) == 0 then
                say_reward("Il vous faut des larmes pour entrer") --- à modifier
            else
                say("Parfait, vous avez toutes les qualitées pour")
                say("entrer, voulez vous essayer de vaincre Razador ?")
                local x = select("Oui !", "Non")
                if x == 2 then 
                    return
                elseif x == 1 then
                    d.join(251) --- ID purgatoires: 235
                end
            end
        end 

        when login with pc.get_map_index() >= 2510000 and pc.get_map_index() < 2515000 begin --- ID du purgatoire 251 
            say("Vous avez acceptez d'entrez dans l'antre de Razador") 
            say("Que le combat commence !") 
            say("") 
            d.setf("temps", get_time()) --- Nécessaire pour avoir le temps de combat

            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/flame_dungeon/npc.txt") 
            d.setf("purgatory_gate_sequence",number(1,7)) 
            local sequence = {{1,2,3,4,5,6},{4,1,3,2,5,6},{2,5,3,1,4,6},{3,1,6,2,4,5},{5,3,2,4,6,1},{6,1,5,2,4,3},{6,3,5,3,1,4}}  --- charge aléaoirement une de ces séquences, les étapes sont donc aléatoires
            for i = 1, 6 do 
                d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_"..sequence[d.getf("purgatory_gate_sequence")][i]..".txt") --- charge la regen correspondant à l'étape où on est
            end 
            d.setf("acutal_round",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() 
        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 
                d.notice("Le temps est écoulé ! ") 
                d.exit_all() 
            end 
        end 
         
        when 20385.click with pc.get_map_index() >= 2510000 and pc.get_map_index() <= 2515000 and d.getf("block_altar") == 0 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) 
                blazingpurgatory.purge() 
                blazingpurgatory.LoadStage() 
                d.setf("block_altar",1) 
                 
                blazingpurgatory.NoticeTime() 
                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.set_regen_file("data/dungeon/flame_dungeon/fd_fild_boss.txt") 
            blazingpurgatory.NoticeTime() 
        end     
        
        when 6091.kill with pc.get_map_index() >= 2510000 and pc.get_map_index() <= 2515000 begin --- ID map
            temps = get_time() - d.getf("temps")
            sec = math.mod(temps, 60)
            min = (temps-sec)/60
            notice_all("Le groupe de "..pc.name.." a terminé les Gorges du Purgatoire en "..min.." minutes et "..sec.." secondes !")
            d.notice("Vous serez téléporté sur les terres de feu dans 1 minute !")
            timer("purgatoires_fin", 60) 
        end
        
        when purgatoires_fin.timer begin
            d.exit_all()
        end
         
        when kill with pc.get_map_index() >= 2510000 and pc.get_map_index() <= 2515000 begin 
            if d.getf("actual_round") == 1 or d.getf("actual_round") == 3 then 
                d.setf("kill_count_bp1",d.getf("kill_count_bp1") +1) 
                if d.getf("kill_count_bp1") == 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() 
                end 
            elseif d.getf("actual_round") == 2 or d.getf("actual_round") == 5 then 
                d.setf("kill_count_bp",d.getf("kill_count_bp") +1) 
                if d.getf("kill_count_bp") == d.getf("kill_to_drop_key") then 
                    game.drop_item_with_ownership(50084,1) 
                    d.setf("kill_count_bp",0) 
                end 
            elseif d.getf("actual_round") == 4 and npc.get_race() == 6009 then 
                if number(1,5) == 1 then 
                    d.notice("Retournez au près des Gorges d'Am-Heh au centre de la map!") 
                    blazingpurgatory.purge() 
                end 
            elseif d.getf("actual_round") == 6 and npc.get_race() == 8057 then 
                d.notice("Retournez au près des Gorges d'Am-Heh au centre de la map!") 
                blazingpurgatory.purge()     
            elseif d.getf("actual_round") == 7 and npc.get_race() == 6091 then 
                d.notice("Vous avez tué Razador !") 
                d.clear_regen() 
                d.kill_all() 
            end 
        end 

        when 20081.take with pc.get_map_index() >= 2510000 and pc.get_map_index() <= 2515000 begin --- on pose l'item 50084 sur un pillier (clé dropée précédemment)
            if item.get_vnum() == 50084 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!") 
                        blazingpurgatory.purge() 
                    else 
                        syschat("Cette pierre d'ouverture est endommagée!") 
                        syschat("Trouvez en une autre !")
                    end 
                elseif d.getf("actual_round") == 5 then 
                    local sequence = {{1,2,3,4,5,5},{4,3,2,1,5,5},{4,5,3,1,2,2},{5,3,4,2,1,1},{5,1,3,4,2,2}} 
                    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") == 6 then 
                            d.notice("Retournez au près des Gorges d'Am-Heh au centre de la map!") 
                            blazingpurgatory.purge() 
                        else 
                            d.notice("Continuez comme ça, il reste "..6-d.getf("pillarcount").." pilliers à ouvrir !") 
                        end 
                    elseif blazingpurgatory.GetPillarID() == false then 
                        syschat("Rapprochez vous du pillier !") --- Pas sûr de cette traduction
                    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 
                     
        function LoadStage() --- gère chaque étape et les regen
            if d.getf("actual_round") == 1 then -- Alle Monster tötenw 
                d.regen_file("data/dungeon/flame_dungeon/blazingpurgatory_gate_1.txt") 
                d.setf("bp_kill_to_next",241) 
                d.setf("kill_count_bp1",0) 
            elseif d.getf("actual_round") == 2 then 
                d.set_regen_file("data/dungeon/flame_dungeon/blazingpurgatory_gate_2.txt") 
                d.setf("kill_to_drop_key",50) 
                d.spawn_mob(20081,195,352) 
            elseif d.getf("actual_round") == 3 then 
                d.regen_file("data/dungeon/flame_dungeon/blazingpurgatory_gate_3.txt") 
                d.setf("bp_kill_to_next",240) 
                d.setf("kill_count_bp1",0) 
            elseif d.getf("actual_round") == 4 then 
                d.set_regen_file("data/dungeon/flame_dungeon/blazingpurgatory_gate_4.txt") 
            elseif d.getf("actual_round") == 5 then 
                d.set_regen_file("data/dungeon/flame_dungeon/blazingpurgatory_gate_5.txt") 
                local sequence = {{1,2,3,4,5},{4,3,2,1,5},{4,5,3,1,2},{5,3,4,2,1},{5,1,3,4,2}} 
                local n = number(1,5) 
                local coords = {{502,354},{517,354},{487,354},{502,339},{502,369}} 
                for i = 1, 5 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) 
            elseif d.getf("actual_round") == 6 then 
                d.set_regen_file("data/dungeon/flame_dungeon/blazingpurgatory_gate_6.txt") 
                d.spawn_mob(8057,507,489) 
            end 
        end     

        function purge() --- purge tout puis remet les PNJ en place
            d.setf("block_altar",0) 
            d.clear_regen() 
            d.kill_all() 
            blazingpurgatory.LoadGates() 
            d.regen_file("data/dungeon/flame_dungeon/npc.txt") 
            if d.getf("purgatory_level") == 6 then 
                d.setf("purgatory_level",7) 
            end 
        end         

        function LoadGates() 
            local sequence = {{1,2,3,4,5,6},{4,1,3,2,5,6},{2,5,3,1,4,6},{3,1,6,2,4,5},{5,3,2,4,6,1},{6,1,5,2,4,3},{6,3,5,3,1,4}} 
            for i = 1, 6-d.getf("purgatory_level") do 
                d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_"..sequence[d.getf("purgatory_gate_sequence")][i]..".txt") 
            end 
            d.setf("actual_round",sequence[d.getf("purgatory_gate_sequence")][7-d.getf("purgatory_level")]) 
        end         
         
        function NoticeTime() 
            local secondsLeft = (d.getf("time") - get_time()) 
            local minutesLeft = math.ceil(secondsLeft / 60) 
            d.notice("Il reste "..minutesLeft.." minute(s) !") 
        end 

        function GetPillarID() 
            if pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then 
                return 1 
            elseif pc.get_local_x() >= 517 - 5 and pc.get_local_x() <= 517 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then 
                return 2 
            elseif pc.get_local_x() >= 487 - 5 and pc.get_local_x() <= 487 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then 
                return 3 
            elseif pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 339 - 5 and pc.get_local_y() <= 339 + 5 then 
                return 4 
            elseif pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 369 - 5 and pc.get_local_y() <= 369 + 5 then 
                return 5 
            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.

Edited by Funky Emulation
Core X - External 2 Internal
Link to comment
Share on other sites

  • Answers 15
  • Created
  • Last Reply

Top Posters For This Question

15 answers to this question

Recommended Posts

  • 0

Bonjour, le problème dans ta quete c'est que tu déclare dans ta function start  ->d.setf("acutal_round",0)  hors c'est d.setf("actual_round",0)  interverti tes 2 lettres et sa devrait marcher :)

Link to comment
Share on other sites

  • 0

Cela ne marche toujours pas, rien spawn.

Puis c'est peut être parce que j'ai mis un pc_warp pour allez au purgatoire à la place du d.join(251)

Mais quand je met le d.join() sa ne me tp pas donc je sais pas quoi faire !

 

Up !! plz

Link to comment
Share on other sites

  • 0
  • Retraité

D.join et pc.warp, ce n'est pas la même chose.

En l'occurrence ici ton warp ne fera que tp le joueur sur une map "publique".

Ce n'est donc plus une instance.

 

Si chaque joueur devait se tp avec cette fonction, tu aurais autant de regen que de participants.

C'est pas le but recherché.

You can't be immortal,
But you can make people remember
you for thousands of years...

Link to comment
Share on other sites

  • 0

il faut mettre absolument que tu mets d.join(ID de ton purga), après comme là dit A n t 0 k , vérifie que tu as bien tout tes regen dans le dossier "blazingpurgatory" qui ce trouve dans data/dungeon/ . vérifie tout tes lien de dossier si ils sont corrects.

 

essaye comme ceci afin de voir si la pop de la première zone ce fait.

n'oublie pas de changer l'emplacement de ton fichier npc.txt dans le dossier "blazingpurgatory"

function start()

d.regen_file("data/dungeon/blazingpurgatory/npc.txt")

d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_1.txt")

d.setf("actual_round",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()

end

 

fait une sauvegarde de ta quete avant ;)

 

Cordialement ryu1982

Link to comment
Share on other sites

  • 0

Je test et je dit ^^

Mais comment sa ce fais que quand je met en d.join(251) sa me tp pas

alors que c'est le bon id de map et tout

J'ai mis l'id de map dans le core4 du channel 1 pour info..

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



  • Flux d'Activité

    1. 0

      Projet Genesis

    2. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    3. 0

      Metin2 Champions - Accès anticipé

    4. 0

      Barbok

    5. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    6. 2

      Partage Émulateur 2.63

    7. 2

      Partage Émulateur 2.63

  • 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.