| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- #nop 房间信息解析模块之副本管理;
- VAR {当前副本} {gCurrentDungeon} {主站};
- VAR {上一个副本} {gPrevDungeon} {主站};
- event.Define {map/EnterDungeon} {无参} {$MODULE} {进入副本,副本的名称在变量 gCurrentDungeon 中。};
- event.Define {map/LeaveDungeon} {无参} {$MODULE} {离开副本,副本的名称在变量 gPrevDungeon 中。};
- event.Define {map/EnterDungeonIdle} {无参} {$MODULE} {进入副本,且不再 busy,副本的名称在变量 gCurrentDungeon 中。};
- event.Define {map/LeaveDungeonIdle} {无参} {$MODULE} {离开副本,且不再 busy,副本的名称在变量 gPrevDungeon 中。};
- event.HandleOnce {map/init} {map/dungeon} {map} {map.Dungeon.Init};
- #alias {map.Dungeon.Init} {
- event.Handle {map/GotRoomInfo} {map/dungeon} {map} {map.Dungeon.locate};
- event.Handle {map/EnterDungeon} {map/dungeon} {map} {map.EnterDungeon.notice};
- event.Handle {map/LeaveDungeon} {map/dungeon} {map} {map.LeaveDungeon.notice};
- event.Handle {map/EnterDungeonIdle} {map/dungeon} {map} {map.EnterDungeon.notice idle};
- event.Handle {map/LeaveDungeonIdle} {map/dungeon} {map} {map.LeaveDungeon.notice idle};
- };
- #alias {map.EnterDungeon.notice} {
- #if { "%1" == "idle" } {
- warnLog 你来到了「$gCurrentDungeon」,你不忙。;
- };
- #else {
- warnLog 你来到了「$gCurrentDungeon」。;
- #tick dungeon.checkbusy {checkbusy} 1;
- busy.Wait {
- #untick dungeon.checkbusy;
- event.Emit map/EnterDungeonIdle;
- };
- };
- };
- #alias {map.LeaveDungeon.notice} {
- #if { "%1" == "idle" } {
- okLog 你离开了「$gPrevDungeon」,你不忙。;
- };
- #else {
- okLog 你离开了「$gPrevDungeon」。;
- #tick dungeon.checkbusy {checkbusy} 1;
- busy.Wait {
- #untick dungeon.checkbusy;
- event.Emit map/LeaveDungeonIdle;
- };
- };
- };
- #alias {map.Dungeon.locate} {
- #if { "$gMapRoom[name]" == "" } {
- errLog 房间信息解析不正确。;
- #return;
- };
- #local dungeon {主站};
- #if { "$gMapRoom[name]" == "%+1..S[%+1..S]" } {
- #local dungeon {$gMapRoom[name]};
- #replace dungeon {%+1..S[%+1..S]} {&2};
- #replace dungeon {任务副本} {};
- #replace gMapRoom[name] {[{[^\[]*}]} {};
- #replace gMapRoom[colorName] {[{[^\[]*}]} {};
- };
- #if { "$dungeon" == "$gCurrentDungeon" } {
- #return;
- };
- #var gPrevDungeon {$gCurrentDungeon};
- #var gCurrentDungeon {$dungeon};
- #if { "$dungeon" == "主站" } {
- event.Emit map/LeaveDungeon;
- };
- #else {
- event.Emit map/EnterDungeon;
- };
- };
- #action {^准备进入%S⏳$E} {
- map.dungeon.change {%1};
- };
- #action {^准备退出%S...$E} {
- map.dungeon.change {%1};
- };
- #alias {map.dungeon.change} {
- #local dungeon {%1};
- #nop 计有:藏经阁、鄱阳湖、万安塔、保卫襄阳、剿匪、团战、大航海等常规任务副本;
- #nop 及剑心居、北侠影视城、游侠等三个特别副本;
- #if { "$dungeon" != "{\[(.*)任务副本\]|北侠影视城|剑心居|游侠}" } {
- #return;
- };
- #class map.dungeon.change open;
- #action {^你进入了%1。{|ID=map/dungeon}$} {map.dungeon.change.done};
- #action {^你退出了%1。{|ID=map/dungeon}$} {map.dungeon.change.done};
- #alias {map.dungeon.change.sync} {
- #class map.dungeon.change kill;
- #untick map.dungeon.change.sync;
- sync.Ignore map.dungeon.change.sync;
- look;
- };
- #alias {map.dungeon.change.done} {
- xtt.Tick {map.dungeon.change.sync} {
- sync.Ignore map.dungeon.change.sync;
- sync.Wait {map.dungeon.change.sync} {map.dungeon.change.sync};
- } 1;
- };
- #delay {map.dungeon.change.wait} {map.dungeon.change.done} 5;
- #class dungeon.enter.wait close;
- };
- #action {^请使用 leave 自己的id 来退出副本。$E} {leave $user[id]; #line gag};
- #alias {enter jxj} {enter jianxinju} {5.5};
|