Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Dungeon Problem


Rekomendowane odpowiedzi

Opublikowano

Hey,

got his problem when i join new dungeon with thus commands

                    d.join(209)
                    d.jump_all(4632, 42082)


at the first time all works fine. But after this i go in dungeon and after few seconds it will teleport me out of it no Error

Here is the sys log:

May 12 22:03:13 :: QUEST: quest: devilscatacomb player: Diveria : DC create try by Diveria
May 12 22:03:13 :: PRIVATE_MAP: 2090000 created (original 209)
May 12 22:03:13 :: WarpSet Diveria 362200 1207900 current map 209 target map 2090000
May 12 22:03:13 :: DISCONNECT: Diveria (DESC::~DESC)
May 12 22:03:13 :: SAVE: Diveria 362200x1207900
May 12 22:03:13 :: QUEST clear timer 3
May 12 22:03:13 :: ITEM_DESTROY Saphirschlüssel:10004711
May 12 22:03:13 :: ITEM_DESTROY_SKIP Saphirschlüssel:10004711 (skip=1)
... more destroy item ...
May 12 22:03:13 :: SYSTEM: closing socket. DESC #18
May 12 22:03:13 :: SYSTEM: new connection from [MEINE INTERNET IP] fd: 18 handshake 1907321592 output input_len 0, ptr 0x28810600
May 12 22:03:13 :: Handshake: client_time 0 server_time 29618
May 12 22:03:13 :: LOGIN_BY_KEY: amok key 2089567386
May 12 22:03:13 :: SetSecurityKey decrypt CRYPT KEYS
May 12 22:03:13 :: LoginSuccess
May 12 22:03:13 ::     player(Diveria).job(4)
May 12 22:03:13 ::     player().job(0)
May 12 22:03:13 ::     player().job(0)
May 12 22:03:13 ::     player().job(0)
May 12 22:03:13 :: success to SERVERIP:13091
May 12 22:03:13 :: InputDB::login_success: amok
May 12 22:03:14 :: player_select: login: amok index: 0
May 12 22:03:14 :: GM_NEW_GET_LEVEL : FIND ACCOUNT
May 12 22:03:14 :: PK_MODE: Diveria 3
May 12 22:03:14 :: PLAYER_LOAD: Diveria PREMIUM 1419980454 1419980454, LOGGOFF_INTERVAL 1 PTR: 0x37d7d000
May 12 22:03:14 :: GM_LOGIN(gmlevel=5, name=Diveria(1), pos=(362200, 1207900)
May 12 22:03:14 :: bgm_info.play(2090000, DEFAULT_BGM_NAME)
May 12 22:03:14 :: InputDB: player_load Diveria 362200x1207900x0 LEVEL 105 MOV_SPEED 100 JOB 0 ATG 222 DFG 181 GMLv 5
May 12 22:03:14 :: ITEM_LOAD: COUNT Diveria 29
May 12 22:03:14 :: ITEM_LOAD: Diveria Weiße Perle:10004161 28
May 12 22:03:14 :: ITEM_LOAD: Diveria Saphir-Armband+9:30000590 1
... ITEM LOAD ...
May 12 22:03:14 :: QUEST_LOAD: count 45
May 12 22:03:14 :: QUEST clear timer 0
May 12 22:03:14 :: QUEST clear timer 0
... QUEST DATA from mysql table...
May 12 22:03:14 :: VERSION: Diveria 1215955205 LOCAL.exe
May 12 22:03:15 :: SHOW: Diveria 362200x1207900x0
May 12 22:03:15 :: ENTERGAME: Diveria 362200x1207900x0 MEINE INTERNET IP map_index 2090000
May 12 22:03:15 :: HORSE STAMINA CONSUME EVENT CANCEL 0x0
May 12 22:03:15 :: HORSE STAMINA REGEN EVENT CREATE 0x36291534
May 12 22:03:15 :: SendLandList map 2090000 count 0 elem_size: 0
May 12 22:03:15 :: PREMIUM: Diveria type 0 51591460min
May 12 22:03:15 :: PREMIUM: Diveria type 1 51591460min
May 12 22:03:15 :: PREMIUM: Diveria type 2 51591460min
May 12 22:03:15 :: PREMIUM: Diveria type 3 51591406min
May 12 22:03:15 :: PREMIUM: Diveria type 4 51591460min
May 12 22:03:15 :: PREMIUM: Diveria type 5 51591460min
May 12 22:03:15 :: PREMIUM: Diveria type 6 51591460min
May 12 22:03:15 :: VERSION CHECK 1215955205 1215955205 1215955205 1215955205
May 12 22:03:15 :: Diveria DUNGEON set to 0x37321b40, PARTY is 0x0
May 12 22:03:15 :: QUEST_LOAD: Login pc 1 by event
May 12 22:03:15 :: WarpSet Diveria 969600 278400 current map 2090000 target map 41
May 12 22:03:15 :: dungeon_spawn_mob 30103 740 227
May 12 22:03:15 :: CDungeon::SpawnMob 30103 740 227
May 12 22:03:15 :: RegisterRaceNumMap Zombie Siegel 30103
May 12 22:03:15 :: Zombie Siegel DUNGEON set to 0x37321b40, PARTY is 0x0
May 12 22:03:15 :: CDungeon::SpawnMob name Zombie Siegel
May 12 22:03:15 :: QUEST loading locale/germany/quest/object/item_check/timer/devilscatacomb.start : devilscatacomb [STATE] start
May 12 22:03:15 :: QUEST timer name item_check cycle 250 pc 1 npc 4294967292 loop? 1
May 12 22:03:15 :: QUEST add timer 0x36291584 1
May 12 22:03:15 :: Zombieanführer DUNGEON set to 0x37321b40, PARTY is 0x0
May 12 22:03:15 :: MonsterCount 1
May 12 22:03:15 :: Zombieanführer DUNGEON set to 0x37321b40, PARTY is 0x0
May 12 22:03:15 :: MonsterCount 2
... mehere von denen ...
May 12 22:03:15 :: RegisterRaceNumMap Zombie Siegel 30103
May 12 22:03:15 :: Zombie Siegel DUNGEON set to 0x37321b40, PARTY is 0x0
May 12 22:03:15 :: RegisterRaceNumMap Fahrender Händler 20042
May 12 22:03:15 :: Fahrender Händler DUNGEON set to 0x37321b40, PARTY is 0x0
May 12 22:03:15 :: QUEST loading locale/germany/quest/object/runtime/server_timer/devilscatacomb.start : devilscatacomb [STATE] start
May 12 22:03:15 :: XXX AddServerTimer runtime 2090000 0x36294c20
May 12 22:03:15 :: QUEST timer name anti_exp cycle 375 pc 1 npc 4294967295 loop? 1
May 12 22:03:15 :: QUEST add timer 0x36294c34 2
May 12 22:03:15 :: QUEST timer name check_eq cycle 250 pc 1 npc 4294967294 loop? 1
May 12 22:03:15 :: QUEST add timer 0x36294c48 3
May 12 22:03:15 :: QUEST timer name check_costume cycle 10 pc 1 npc 4294967293 loop? 1
May 12 22:03:15 :: QUEST add timer 0x36294c5c 4
SYSERR: May 12 22:03:15 :: AddAffect: Character::AddAffect lDuration == 0 type 0
SYSERR: May 12 22:03:15 :: AddAffect: Character::AddAffect lDuration == 0 type 0
May 12 22:03:15 :: DISCONNECT: Diveria (DESC::~DESC)
May 12 22:03:15 :: SAVE: Diveria 969600x278400
May 12 22:03:15 :: QUEST clear timer 4
May 12 22:03:15 :: ITEM_DESTROY Saphirschlüssel:10004711
May 12 22:03:15 :: ITEM_DESTROY_SKIP Saphirschlüssel:10004711 (skip=1)
... more ...
May 12 22:03:15 :: SYSTEM: closing socket. DESC #18
May 12 22:03:16 :: P2P: Login Diveria
May 12 22:03:21 :: QUEST clear timer 0
May 12 22:03:21 :: QUEST clear timer 0
May 12 22:03:21 :: XXX ServerTimer Call NPC 0x374ef114
May 12 22:03:21 :: XXX Dungeon Notice 0x37321b40 Du hast noch 60 Minute(n) Zeit.
May 12 22:03:21 :: QUEST loading locale/germany/quest/object/runtime_end/server_timer/devilscatacomb.start : devilscatacomb [STATE] start
May 12 22:03:21 :: XXX AddServerTimer runtime_end 2090000 0x362914bc
May 12 22:03:25 :: DUNGEON destroy 0x37321b40
May 12 22:03:25 :: PRIVAE_MAP: removing character Zombieanführer
May 12 22:03:25 :: PRIVAE_MAP: removing character Zombieanführer
... more ...
May 12 22:03:25 :: CheckEliminated: none
May 12 22:03:25 :: PRIVATE_MAP: 2090000 destroyed
May 12 22:03:36 :: GLOBAL_TIME: May 12 22:03:36 time_gap 0
May 12 22:03:54 :: SpawnMob: cannot create monster at non-exist sectree 46700 x 1552600 (map 74)
May 12 22:04:36 :: GLOBAL_TIME: May 12 22:04:36 time_gap 0
May 12 22:04:54 :: SpawnMob: cannot create monster at non-exist sectree 46700 x 1552600 (map 74)
May 12 22:05:36 :: GLOBAL_TIME: May 12 22:05:36 time_gap 0
May 12 22:05:54 :: SpawnMob: cannot create monster at non-exist sectree 46700 x 1552600 (map 74)
May 12 22:06:36 :: GLOBAL_TIME: May 12 22:06:36 time_gap 0


someone knows a sokoution ?
Opublikowano

your quest is bad , and why did u put these functions?

 d.join(209)                    d.jump_all(4632, 42082)


isnt it easier to change town file? and put only dis

 d.join(209)
Opublikowano

When first Login get this log into the dungeon:

May 13 21:27:44 :: Wummi DUNGEON set to 0x33d247c0, PARTY is 0x0
May 13 21:27:45 :: QUEST_LOAD: Login pc 5 by event
May 13 21:27:45 :: QUEST timer name start_timer cycle 50 pc 5 npc 4294967291 loop? 0
May 13 21:27:45 :: QUEST add timer 0x28f07cd0 1
May 13 21:27:45 :: QUEST timer name anti_exp cycle 375 pc 5 npc 4294967295 loop? 1
May 13 21:27:45 :: QUEST add timer 0x28f07cf8 2
May 13 21:27:45 :: QUEST timer name check_costume cycle 10 pc 5 npc 4294967293 loop? 1
May 13 21:27:45 :: QUEST add timer 0x31392a34 3
May 13 21:27:47 :: XXX Dungeon Notice 0x33d247c0 Ihr habt jetzt  60 Minuten zeit
May 13 21:27:47 :: XXX Dungeon Notice 0x33d247c0 um die Dungeon abzuschliesen !


And this when i already done the dungeon once:
May 13 21:22:16 :: Diveria DUNGEON set to 0x3438a8c0, PARTY is 0x0
May 13 21:22:17 :: QUEST_LOAD: Login pc 1 by event
May 13 21:22:17 :: WarpSet Diveria 969600 278400 current map 2090000 target map 41
May 13 21:22:17 :: QUEST timer name start_timer cycle 50 pc 1 npc 4294967291 loop? 0
May 13 21:22:17 :: QUEST add timer 0x28f07b68 1
May 13 21:22:17 :: QUEST timer name anti_exp cycle 375 pc 1 npc 4294967295 loop? 1
May 13 21:22:17 :: QUEST add timer 0x28f07b90 2
May 13 21:22:17 :: QUEST timer name check_eq cycle 250 pc 1 npc 4294967294 loop? 1
May 13 21:22:17 :: QUEST add timer 0x28f07bb8 3
May 13 21:22:17 :: QUEST timer name check_costume cycle 10 pc 1 npc 4294967293 loop? 1
May 13 21:22:17 :: QUEST add timer 0x28f07be0 4
[COLOR="Red"]May 13 21:22:18 :: DISCONNECT: Diveria (DESC::~DESC)[/COLOR]

Opublikowano

u speak polish. this is polish board for polish members.

 

no sry only english and german :) but if so i dont post again sry

Opublikowano

no sry only english and german :) but if so i dont post again sry

U can post in your own language , and dont care about "Metin2.k.vu"

 

Send us your quest , i think there is problem

Opublikowano


--**

--** Script catacombe del diavolo

--** by BlackYuko Skype: manu___88

--**

 

-- Value utilizzati nello script (da cambiare se diversi):

-- Item: Testa Ristretta 30320, Chiave Cristallo delle Anime 30311, Totem della Smorfia 30312, forziere di azrael 50186

-- Mob: Guardiano catacombe 20351, mob del primo piano 2501 2502 2503 2504, Metin della Ritorsione (piano 3) 8035

-- Boss: Tartaros (piano 5) 2591, Charon (piano 6) 2597, Azrael (piano 7) 2598

-- Monumenti: monumento primo piano 30101, monumento secondo piano 30103, monumento quarto piano 20352, monumento quinto piano 30102

-- Le coordinate di ogni piano sono calcolate in automatico dallo script, dovete solo scrivere le coordinate base della mappa nella funzione GetScriptData

-- Le coordinate del secondo piano devono essere inserite nel 'town.txt' della mappa, e sono 545 43

-- I nomi dei file regen sono: piano_2_catacombe.txt, piano_3_catacombe.txt, piano_5_catacombe.txt, piano_6_catacombe.txt

-- Il quarto piano (quello dei portali) ha 4 regen diversi: piano_4_1_catacombe.txt, piano_4_2_catacombe.txt, piano_4_3_catacombe.txt, piano_4_4_catacombe.txt. Uno di questi verrà caricato a random

-- Il regen del primo piano deve essere inserito nella cartella della mappa (il classico regen.txt)

-- NOTA 1: Tartaros e i Metin della Ritorsione NON DEVONO ESSERE MESSI NEI REGEN, perché vengono spawnati dallo script

-- NOTA 2: il forziere di Azrael viene droppato dalla quest, NON dovete inserirlo nel mob_drop_item

-- NOTA 3: mi raccomando, i portali del piano 4 devono essere come quelli delle scimmie, che quando vengono attraversati NON compare la schermata di caricamento, altrimenti vi butterà fuori dal dungeon

-- Se avete altri dubbi contattatemi su Skype, ma non chiedetemi di implementarvele con Team Viewer perché l'ultima volta ho perso quasi un pomeriggio,

-- e non ho tutto questo tempo da perdere ogni volta, mi dispiace. Ho già messo questo script su parecchi server dedicati, e posso assicurarvi che funziona

 

quest catacombe begin

state start begin

--**

--** Funzioni

--**

 

-- Configurate le principali cose qui dentro, le modifiche verranno applicate in automatico in tutto lo script

function GetScriptData(data)

local map_data = {['map_index'] = 220, -- Map Index (locale/germany/quest/index)

['x'] = 3072, ['y'] = 12032, -- basis kordis

['drop_rate'] = 50, -- Wann ein Schlüssel Droppen soll ca. Mob kill

['min_lev'] = 80, -- Min. level

['close_time'] = 60, -- Max. Zeit

['enter_item'] = 30319, -- Schrumpfkopf

['kristall_key'] = 30311, -- vnum chiave anime cristallo

['totem_smorfia'] = 30312, -- vnum totem smorfia

['bosstruhe_azrael'] = 50186, -- vnum forziere di azrael

['min_drop_lev'] = 90, -- livello minimo per droppare il forzire di azrael

['max_drop_lev'] = 105} -- livello massimo per droppare il forzire di azrael

return rawget(map_data, data)

end

 

function IsInDungeon(pc_index)

local map_index = catacombe.GetScriptData('map_index')

return (pc.in_dungeon() and pc_index >= map_index*10000 and pc_index < (map_index+1)*10000)

end

 

function CanDrop(pc_level)

return (pc_level >= catacombe.GetScriptData('min_drop_lev') and pc_level <= catacombe.GetScriptData('max_drop_lev'))

end

 

--**

--** Fuori - Guardiano catacombe

--**

 

when 20351.chat."GM: DC Starten" with pc.is_gm() begin

say_title("GM: DC Starten")

say("Möchtest du DC öffen ?[ENTER]")

local s = select("Ja","Nein")

if s == 2 then

return

end

say_title("GM: DC Starten")

say("Einstellungen gespeichert.[ENTER]")

game.set_event_flag("catacomb_next_open", 0)

end

 

when 20351.chat."Devil's Catacomb" begin

local mob_race = npc.get_race()

local min_lev = catacombe.GetScriptData('min_lev')

say_title(mob_name(mob_race))

if pc.get_level() < min_lev then

say("Du musst mindestens Level: "..min_lev)

say("sein um in DC zu kommen.[ENTER]")

return

end

if pc.count_item(catacombe.GetScriptData('enter_item')) == 0 then

say("Um in DC zukommen brauchst du diese ")

say("Item:[ENTER]")

say_item_vnum(catacombe.GetScriptData('enter_item'))

return

end

if get_time() < game.get_event_flag("catacomb_next_open") then

say("Zur Zeit kann man nicht in die DC.[ENTER]")

return

end

say("Willst du die Teufelshöhle betreten?")

say("[ENTER]")

local s = select("Betreten","Nicht betreten.")

if s == 2 then

return

end

say_title(mob_name(mob_race))

say("Wie du möchtest ich teleportiere,")

say("dich jetzt.[ENTER]")

wait()

pc.warp((catacombe.GetScriptData('x')+80)*100, (catacombe.GetScriptData('y')+60)*100)

end

 

--**

--** Join Ebene 1 (Schlüssel)

--**

 

when login with pc.get_map_index()== catacombe.GetScriptData('map_index') begin

pc.set_warp_location(65, 5908, 1112)

end

 

when logout with pc.get_map_index()== catacombe.GetScriptData('map_index') begin

pc.delqf("mob_killed")

end

 

when 2501.kill or 2502.kill or 2503.kill or 2504.kill with pc.get_map_index()== catacombe.GetScriptData('map_index') begin

pc.setqf("mob_killed", pc.getqf("mob_killed")+1)

if math.mod(pc.getqf("mob_killed"), catacombe.GetScriptData('drop_rate')) == 0 then

game.drop_item_with_ownership(catacombe.GetScriptData('kristall_key'), 1)

end

end

 

when 30101.take with item.get_vnum() == catacombe.GetScriptData('kristall_key') and pc.get_map_index() == catacombe.GetScriptData('map_index') begin

say_title(mob_name(30101))

if get_time() < game.get_event_flag("catacomb_next_open") then

say("Zur Zeit kann man nicht in die DC.[ENTER]")

return

end

if party.is_party() and not party.is_leader() then

say("Nur der Gruppen-Anführer kann")

say("die Dungeon Starten.[ENTER]")

return

end

pc.remove_item(item.get_vnum(), 1)

say("Das Portal wurde geöffnet !")

say("Gleich gehts los....[ENTER]")

if party.is_party() then

say("Ihre Gruppe wird mit dir")

say("teleportiert.[ENTER]")

end

wait()

game.set_event_flag("catacomb_next_open", get_time()+60*catacombe.GetScriptData('close_time'))

pc.setqf("is_master", 1)

timer("enter_floor_2", 2)

end

 

--**

--** Timer und mehr

--**

 

when login with catacombe.IsInDungeon(pc.get_map_index()) begin

pc.set_warp_location(65, 5908, 1112)

if pc.getqf("is_master") == 1 then

timer("start_timer", 2)

end

end

 

when logout with catacombe.IsInDungeon(pc.get_map_index()) begin

--pc.remove_item(catacombe.GetScriptData('totem_smorfia'), pc.count_item(catacombe.GetScriptData('totem_smorfia')))

--pc.remove_item(catacombe.GetScriptData('kristall_key'), pc.count_item(catacombe.GetScriptData('kristall_key')))

--pc.delqf("is_master")

end

 

when start_timer.timer begin

d.notice("Ihr habt jetzt "..catacombe.GetScriptData('close_time').." Minuten zeit")

d.notice("um die Dungeon abzuschliesen !")

notice_all(""..pc.get_name().." hat einen Devil's Catacomb gestartet.")

notice_all("Diese ist nun für "..catacombe.GetScriptData('close_time').." Minuten gesperrt !")

server_timer("catacomb_open", 60*catacombe.GetScriptData('close_time'), pc.get_map_index())

end

 

when catacomb_open.server_timer begin

notice_all("Die Devil's Catacomb ist wieder gestartet werden !")

if d.select(get_server_timer_arg()) then

clear_server_timer("catacomb_open", get_server_timer_arg())

d.notice("Die Zeit ist um !")

d.exit_all()

end

end

 

--**

--** Join Ebene 2 (Köpfe)

--**

 

when enter_floor_2.timer begin

d.join(catacombe.GetScriptData('map_index'))

--d.new_jump_all(catacombe.GetScriptData('map_index'), 4632, 42082)

d.regen_file("data/dungeon/devilcata/ebene_2.txt")

d.setf("catacomb_floor", 2)

end

 

when 30103.take with item.get_vnum() == catacombe.GetScriptData('enter_item') and catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 2 begin

if pc.getqf("is_master") == 1 then

pc.remove_item(item.get_vnum(), 1)

d.notice("Geschaft, auf gehts in die nächste Ebene !")

timer("enter_floor_3", 3)

else

d.notice("Nur der Gruppen-Leiter kann euch zur nächsten Ebene bringen.")

end

end

 

--**

--** Join Ebene 3 (Metin)

--**

 

when enter_floor_3.timer begin

d.jump_all(catacombe.GetScriptData('x')+1339, catacombe.GetScriptData('y')+250)

d.clear_regen()

d.kill_all()

d.regen_file("data/dungeon/devilcata/ebene_3.txt")

d.setf("catacomb_floor", 3)

d.notice("Suche den richtigen Metinstein und zerstöre ihn!!")

local coord_metin = {{1340,348},{1243,357},{1334,151},{1252,148},{1149,148},{1139,244},{1148,355}}

local right_metin = math.mod(os.time(),table.getn(coord_metin)+1)

for i = 1,table.getn(coord_metin) do

if i == right_metin then

local v = d.spawn_mob(8035, coord_metin[1], coord_metin[2])

d.set_unique("real", v)

--chat(coord_metin[1].." "..coord_metin[2])

else

d.spawn_mob(8035, coord_metin[1], coord_metin[2])

end

end

end

 

when 8035.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 3 begin

if d.is_unique_dead("real") then

d.notice("Der richtige Metinstein wurde zerstört.")

d.notice("Auf gehts in die 4. Ebene.")

timer("enter_floor_4", 3)

else

d.notice("Du hast den falschen Metinstein zerstört. Finde den richtigen!")

end

end

 

--**

--** Join Ebene 4 (Labyrint)

--**

 

when enter_floor_4.timer begin

d.jump_all(catacombe.GetScriptData('x')+70, catacombe.GetScriptData('y')+580)

d.clear_regen()

d.kill_all()

local map_n = math.mod(os.time(),4)+1

d.regen_file("data/dungeon/devilcata/ebene_4_"..map_n..".txt")

d.setf("catacomb_floor", 4)

d.notice("Finde den richtigen weg durch Labyrinth !")

end

 

when 20352.chat."Weiter gehts ... " with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 4 begin

if pc.getqf("is_master") == 1 then

say("Super du hast den Richtigen weg gefunden.")

say("Auf gehts in die nächste")

say("Ebene ![ENTER]")

wait()

setskin(0)

d.notice("Ihr werdet gleich auf die nöchsten Ebene gebracht ...")

timer("enter_floor_5", 3)

else

say("Nur der Gruppen-Leiter kann euch zur nächsten Ebene bringen.[ENTER]")

end

end

 

--**

--** Quinto piano

--**

 

when enter_floor_5.timer begin

d.jump_all(catacombe.GetScriptData('x')+845, catacombe.GetScriptData('y')+900)

d.clear_regen()

d.kill_all()

d.regen_file("data/dungeon/devilcata/ebene_5.txt")

d.setf("catacomb_floor", 5)

d.setf("correct_killed", 0)

d.notice("Besiege die Dämonenwachen, um das Fratzen-Totem zu erhalten. Es dient dir als Schlüssel zur 6. Ebene.")

local coord_boss = {{848,570},{678,832},{685,632},{1031,637},{1003,856}}

local right_boss = math.mod(os.time(),table.getn(coord_boss)+1)

for i = 1,table.getn(coord_boss) do

if i == right_boss then

local v = d.spawn_mob(2591, coord_boss[1], coord_boss[2])

d.set_unique("real", v)

--chat(coord_boss[1].." "..coord_boss[2])

else

d.spawn_mob(2591, coord_boss[1], coord_boss[2])

end

end

end

 

when 2591.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 5 begin

if d.is_unique_dead("real") and d.getf("correct_killed") == 0 then

d.setf("correct_killed", 1)

d.notice("Du hast das Totem !")

d.notice("Schnell bringe es auf die Spitze des Berges in der Mitte !")

game.drop_item_with_ownership(catacombe.GetScriptData('totem_smorfia'), 1)

else

d.notice("Leider kein Totem, weiter gehts !")

end

end

 

when 30102.take with item.get_vnum() == catacombe.GetScriptData('totem_smorfia') begin

pc.remove_item(item.get_vnum(), 1)

d.notice("Ihr werdet gleich auf die nöchsten Ebene gebracht ...")

timer("enter_floor_6", 3)

end

 

--**

--** Join Ebene 5 (Charon)

--**

 

when enter_floor_6.timer begin

d.jump_all(catacombe.GetScriptData('x')+1300, catacombe.GetScriptData('y')+700)

d.clear_regen()

d.kill_all()

d.regen_file("data/dungeon/devilcata/ebene_6.txt")

d.setf("catacomb_floor", 6)

d.notice("Besiege Charon und seine Schergen!")

end

 

when 2597.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 6 begin

d.notice("Charon wurde besiegt !")

d.notice("Auf gehts in die letzte Ebene! Macht euch bereit ...")

timer("enter_floor_7", 3)

end

 

--**

--** Join Ebene 6 (Azrael)

--**

 

when enter_floor_7.timer begin

d.jump_all(catacombe.GetScriptData('x')+75, catacombe.GetScriptData('y')+1155)

d.clear_regen()

d.kill_all()

d.regen_file("data/dungeon/devilcata/ebene_7.txt")

d.setf("catacomb_floor", 7)

d.notice("Besiege Azreal!")

end

 

when 2598.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 7 begin

if catacombe.CanDrop(pc.get_level()) then

game.drop_item_with_ownership(catacombe.GetScriptData('bosstruhe_azrael'), 1)

end

notice_all("Azreal wurde besiegt !")

d.clear_regen()

d.notice("Ihr habt Azreal besiegt ! Hebt die Belohnung auf !")

d.notice("Ihr werdes in 20 Sekunden aus dem Dungeon geportet !")

timer("exit_catacomb", 20)

end

 

when exit_catacomb.timer begin

d.exit_all()

end

end

end

 

 

Opublikowano

Here it work once after first login:

May 13 21:27:44 :: Wummi DUNGEON set to 0x33d247c0, PARTY is 0x0
May 13 21:27:45 :: QUEST_LOAD: Login pc 5 by event
May 13 21:27:45 :: QUEST timer name start_timer cycle 50 pc 5 npc 4294967291 loop? 0
May 13 21:27:45 :: QUEST add timer 0x28f07cd0 1
May 13 21:27:45 :: QUEST timer name anti_exp cycle 375 pc 5 npc 4294967295 loop? 1
May 13 21:27:45 :: QUEST add timer 0x28f07cf8 2
May 13 21:27:45 :: QUEST timer name check_costume cycle 10 pc 5 npc 4294967293 loop? 1
May 13 21:27:45 :: QUEST add timer 0x31392a34 3
May 13 21:27:47 :: XXX Dungeon Notice 0x33d247c0 Ihr habt jetzt  60 Minuten zeit
May 13 21:27:47 :: XXX Dungeon Notice 0x33d247c0 um die Dungeon abzuschliesen !


Here is the char which want do dungeon twice
May 13 21:22:16 :: Diveria DUNGEON set to 0x3438a8c0, PARTY is 0x0
May 13 21:22:17 :: QUEST_LOAD: Login pc 1 by event
May 13 21:22:17 :: WarpSet Diveria 969600 278400 current map 2090000 target map 41
May 13 21:22:17 :: QUEST timer name start_timer cycle 50 pc 1 npc 4294967291 loop? 0
May 13 21:22:17 :: QUEST add timer 0x28f07b68 1
May 13 21:22:17 :: QUEST timer name anti_exp cycle 375 pc 1 npc 4294967295 loop? 1
May 13 21:22:17 :: QUEST add timer 0x28f07b90 2
May 13 21:22:17 :: QUEST timer name check_eq cycle 250 pc 1 npc 4294967294 loop? 1
May 13 21:22:17 :: QUEST add timer 0x28f07bb8 3
May 13 21:22:17 :: QUEST timer name check_costume cycle 10 pc 1 npc 4294967293 loop? 1
May 13 21:22:17 :: QUEST add timer 0x28f07be0 4
[COLOR="Red"]May 13 21:22:18 :: DISCONNECT: Diveria (DESC::~DESC)[/COLOR]


I looked in IDA

int __cdecl CDungeon::Join(int a1, int a2)
{
  signed int v2; // edi@1
  int v3; // eax@2
  int v4; // esi@2
  int v5; // ebx@2
  int v6; // edx@2
  int v7; // ecx@2
  int result; // eax@2
  int v9; // [sp+28h] [bp-10h]@1

  v9 = *(_DWORD *)_stack_chk_guard__FBSD_1_0;
  v2 = *(_DWORD *)(a1 + 4);
  if ( !singleton<SECTREE_MANAGER>::ms_singleton )
    __assert("instance", "../../common/singleton.h", 26);
  v3 = SECTREE_MANAGER::GetMap(singleton<SECTREE_MANAGER>::ms_singleton, *(_DWORD *)(a1 + 4));
  v4 = *(_DWORD *)(v3 + 52);
  v5 = *(_DWORD *)(v3 + 56);
  CHARACTER::SaveExitLocation(a2);
  CHARACTER::WarpSet((CHARACTER *)a2, v4, v5, v2);
  result = *(_DWORD *)_stack_chk_guard__FBSD_1_0 ^ v9;
  if ( *(_DWORD *)_stack_chk_guard__FBSD_1_0 != v9 )
    __stack_chk_fail(v7, v6);
  return result;
}


maybe here is the problem :)
result = *(_DWORD *)_stack_chk_guard__FBSD_1_0 ^ v9;

but i dodnt know how to change
  result = *(_DWORD *)_stack_chk_guard__FBSD_1_0 ^ v9;

to this

result = 1;

or this
result = 0;



someone knwos how it could be work ?

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...