Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

  • 0

Question

Posté(e) (modifié)

Bonsoir tout le monde,

 

Alors j'aimerais implanter l'instances des gorges du purgatoires qui me fait très envie d'ailleurs que je n'ai jamais eu de fonctionnel sur les serveurs que j'ai eu la je me suis lancé un ultimatum mais je galère un peu au niveaux des implantations des regen de l'instances, quete etc si quelqu'un pourrais m’aiguillez ou carrément m'aider sa serais top je vous met tout ce que j'ai en code si dessous, je suis sous files 2014 au passages, car ça me ferais un peu chier d'ouvrir mon futur serveur sans au moins cette instance la ^^ .

 

Déjà j'ai accès a la map c'est un début:

https://prnt.sc/jjql75

 

la quête:

 

quest blazingpurgatory begin
    state start begin
        
        when 20351.chat."Die Pforten zur Hölle" with pc.get_map_index() == 235 begin
            say_title("Wächter der Hölle")
            say("Der Gott aller Dämonen, Sung Mahi, ist erwacht,")
            say("das Ende der Menschheit naht! Noch ist seine")
            say("zerstörerische Kraft geschwächt, der Blick")
            say("seiner allsehenden Augen getrübt. Doch seine")
            say("Untertanen werden nicht eher ruhen, bis ihr")
            say("Meister sich in voller Größe gegen diese")
            say("Welt erheben wird!")
            say("")
            wait()
            say_title("Wächter der Hölle")
            say("Seinen getreuen Anhänger Razador,")
            say("Herrscher des Feuers, obliegt die Aufgabe,")
            say("den legendären Rotdrachen aus seinem Verlies")
            say("zu befreien, Sollte ihm das gelingen wird")
            say("es seinem Gott den Weg zur Macht weiter ebnen.")
            say("")
            wait()
            say_title("Wächter der Hölle")
            if pc.get_level() >= 100 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("Willst du mit deiner Gruppe Razador herausfordern?")
                            if select("Ja, auf in die Schlacht!","Nein") == 1 then
                                pc.remove_item(30189,1)
                                d.join(235)
                            end
                        else
                            say_reward("Du benötigst einen Höllenstein!")
                            say_item_vnum(30189)
                        end
                    else
                        say_reward("Du musst Anführer einer Gruppe sein!")
                    end
                else
                    say_reward("Du musst einer Gruppe angehören!")
                end
            else
                say_reward("Du musst lv.100 erreicht haben!")
            end
        end

        when login with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 begin
            say("Begib dich zum Altar und bestehe die")
            say("sechs Aufgaben der Hölle!")
            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/blazingpurgatory_flamenpc.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}}
            for i = 1, 6 do
                d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_"..sequence[d.getf("purgatory_gate_sequence")][i]..".txt")
            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("Die Zeit ist abgelaufen!")
                d.exit_all()
            end
        end
        
        when 20385.click with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 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("Ihr habt alle aufgaben der Hölle gemeistert,")
                d.notice("nun werdet ihr Razador gegenüber treten!")
                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("Eine Kammer wurde geöffnet!")
            end
        end

        when warp_to_boss.timer begin
            d.jump_all(8111,6864)
            d.notice("Razador")
            d.notice("Wiederstand ist Zwecklos! Sung Mahi wird wieder auferstehen!")
            d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_7.txt")
            blazingpurgatory.NoticeTime()
        end    
        
        when kill with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 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("Kehrt zum Altar zurück!")
                    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("Kehrt zum Altar zurück!")
                    blazingpurgatory.purge()
                end
            elseif d.getf("actual_round") == 6 and npc.get_race() == 8034 then
                d.notice("Kehrt zum Altar zurück!")
                blazingpurgatory.purge()    
            elseif d.getf("actual_round") == 7 and npc.get_race() == 6091 then
                d.notice("Razador ist gefallen!")
                d.clear_regen()
                d.kill_all()
            end
        end

        when 20081.take with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 begin
            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("Kehrt zum Altar zurück!")
                        blazingpurgatory.purge()
                    else
                        syschat("Dies war ein Falscher Schlüsselstein!")
                    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("Kehrt zum Altar zurück!")
                            blazingpurgatory.purge()
                        else
                            d.notice("Ihr müsst noch weitere "..6-d.getf("pillarcount").." Siegel öffnen!")
                        end
                    elseif blazingpurgatory.GetPillarID() == false then
                        syschat("Begib dich näher an das Siegel heran!")
                    elseif blazingpurgatory.GetPillarID() != sequence[d.getf("sequence")][d.getf("pillarcount")] then
                        pc.remove_item(item.get_vnum(),1)
                        syschat("Dies ist nicht das richtige Siegel!")
                    end
                end
            end
        end
                    
        function LoadStage()
            if d.getf("actual_round") == 1 then -- Alle Monster tötenw
                d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_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/blazingpurgatory/blazingpurgatory_monster_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/blazingpurgatory/blazingpurgatory_monster_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/blazingpurgatory/blazingpurgatory_monster_4.txt")
            elseif d.getf("actual_round") == 5 then
                d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_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/blazingpurgatory/blazingpurgatory_monster_6.txt")
                d.spawn_mob(8034,507,489)
            end
        end    

        function purge()
            d.setf("block_altar",0)
            d.clear_regen()
            d.kill_all()
            blazingpurgatory.LoadGates()
            d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.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("Verbleibende Zeit: "..minutesLeft.." Minuten!")
        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  

 

ça ou dois je le placer:

http://prntscr.com/jjqnf0

 

et ça pareil:

http://prntscr.com/jjqnjg

 

ma map est bien déclaré partout dans les cores des channel 1,2,3,4 et game99 en 235 ainsi que les coordonnée des map dans le locale et root (atlasinfos)

 

Voilà, voilà je pense que j'ai tout mis sur le post si quelqu'un peut m'aider a tout faire fonctionner je ferais bien le partage de cette instance aux personne qui en auront besoin pour leurs projets je remercie d'avance la personne qui ce dévouera pour le temps qui m'accordera pour ça. :)

 

Cordialement, Link. ;)

 

Modifié par Link

Partager ce message


Lien à poster
Partager sur d’autres sites

4 réponses à cette question

Messages recommandés

  • 0

Hello

 

Tu dois placer ces fichiers dans le dossier de ta Map côté serveur. Regarde le tutoriel Comment implanter une map pour savoir comment est géré tout ça.

 

Le purgatoire est un donjon, donc il est conseillé de la mettre seulement sur le game99 (le ch99). Game99 qui est un "Channel" à lui tout seul. Inutile de la mettre sur tous les Channels et le game99 en même temps.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0
Posté(e) (modifié)

D'accord, c'est que suivit un tuto de galet comment implanter la map sur epvp c'est pour ça mais je prendre ton conseil en compte et le placer que dans le channel99 et le tuto te concernant ? Sinon ma quête elle est bonne ou ?

 

EDIT: quand je clique sur le pnj rien ne ce passe j'ai essayer map terre de feu et dans ma map1 ça fait rien du tout :( 

Modifié par Link

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Depuis que tu as fais ? Ajouter les .txt ? Syserr ?

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Sujet a lock problème résolu

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

×

Information importante

By using this site, you agree to our Conditions d’utilisation.