Advertisement
iscream_

Untitled

Nov 18th, 2019
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.82 KB | None | 0 0
  1. 1@pump mapflag noteleport
  2. 1@pump mapflag nosave SavePoint
  3. 1@pump mapflag nomemo
  4. 1@pump mapflag nobranch
  5. 1@pump mapflag noicewall
  6. 1@pump mapflag restricted 6
  7. 1@pump mapflag monster_noteleport
  8. 1@pump mapflag partylock
  9. 1@pump mapflag novending
  10. 1@pump mapflag nocapture
  11.  
  12. newprontera,149,162,4 script 排水溝 95,{
  13. // 展示資訊
  14. .@inst_id = instance_id(1);
  15. F_instanceinfo(strnpcinfo(1),.ins_name$,.ins_MinLv,.ins_MaxLv,.ins_Minplayer,.ins_Maxplayer,.ins_time,.ins_cooldown,.ins_collnum);
  16. // 創建選單
  17. if ( is_party_leader(getcharid(1)) ){
  18. switch(select((.@inst_id?"":"> 創建"+.ins_name$+"副本"),(!.@inst_id?"":"> 進入"+.ins_name$+"副本"),(!.@inst_id?"":"> 銷毀副本"),(!.@inst_id?"":"> 接取任務"),(!.@inst_id?"":"> 回報任務"),(!.@inst_id?"> 取消對話":"> 取消對話"))){
  19. case 1:
  20. // 創建副本 & 紀錄隊員訊息
  21. F_instancecreat(strnpcinfo(1),.ins_name$,.ins_MinLv,.ins_MaxLv,.ins_Maxplayer);
  22. end;
  23. case 2:
  24. // 進入副本 & 比對隊員訊息
  25. F_instancenter(strnpcinfo(1),.ins_name$,.ins_MinLv,.ins_MaxLv,.ins_collnum,.ins_cooldown);
  26. end;
  27. case 3:
  28. // 銷毀副本
  29. F_instancedestroy;
  30. end;
  31. case 4:
  32. callfunc "阿爾博#mal";
  33. end;
  34. case 5:
  35. callfunc "馬德卡#mal";
  36. end;
  37. case 6:
  38. end;
  39. }
  40. } else {
  41. switch(select((!.@inst_id?"":"> 進入"+.ins_name$+"副本"),(!.@inst_id?"":"> 接取任務"),(!.@inst_id?"":"> 回報任務"),(!.@inst_id?"> 取消對話":"> 取消對話"))){
  42. case 1:
  43. F_instancenter(strnpcinfo(1),.ins_name$,.ins_MinLv,.ins_MaxLv,.ins_collnum,.ins_cooldown);
  44. end;
  45. case 2:
  46. callfunc "阿爾博#mal";
  47. end;
  48. case 3:
  49. callfunc "馬德卡#mal";
  50. end;
  51. case 4:
  52. end;
  53. }
  54. }
  55. end;
  56. OnInit:
  57. // 副本名稱
  58. .ins_name$ = "排水溝";
  59. // 最小挑戰等級
  60. .ins_MinLv = 99;
  61. // 最大挑戰等級
  62. .ins_MaxLv = 185;
  63. // 最小組隊人數
  64. .ins_Minplayer = 1;
  65. // 最大組隊人數
  66. .ins_Maxplayer = 12;
  67. // 挑戰時間
  68. .ins_time = 3600;
  69. // 冷卻時間
  70. .ins_cooldown = 43200;
  71. // 冷卻編號
  72. .ins_collnum = 4;
  73. end;
  74. }
  75.  
  76. // Quest NPCs
  77. //============================================================
  78. function script 阿爾博#mal {
  79. //mesclear;
  80. if (checkweight(1201,1) == 0) {
  81. mes "你攜帶了太多種類的物品.嘗試減少物品種類然後繼續.";
  82. close;
  83. }
  84. if (MaxWeight - Weight < 1000) {
  85. mes "你的負重不夠了.嘗試降低負重然後繼續.";
  86. close;
  87. }
  88. if (BaseLevel < 90) {
  89. mes "[阿爾多]";
  90. mes "你是誰?";
  91. mes "我們不需要弱者!!";
  92. close;
  93. }
  94. setarray .@quests[0],12271,12272,12273,12274;
  95. setarray .@names$[0],
  96. "普通排水渠日常任務","^990000困難排水渠日常任務^000000",
  97. "普通排水渠周任務","^990000困難排水渠周任務^000000";
  98. set .@menu$,"想不想接受這個工作?:";
  99. for(set .@i,0; .@i<4; set .@i,.@i+1) {
  100. if (checkquest(.@quests[.@i],PLAYTIME) > -1) {
  101. set .@status[.@i],2;
  102. set .@menu$, .@menu$+"^aaaaaa- 沒有新的任務 -^000000:";
  103. } else if (.@i%2 && BaseLevel < 140) {
  104. set .@status[.@i],0;
  105. set .@menu$, .@menu$+"^aaaaaa你不能接這個任務,因為你級別不夠^000000:";
  106. } else {
  107. set .@status[.@i],1;
  108. set .@menu$, .@menu$+.@names$[.@i]+":";
  109. }
  110. }
  111. mes "[阿爾博]";
  112. mes "我們穿越了海洋! 我們偉大的英雄!";
  113. mes "絕不原諒! 不能原諒那些該死的海洋生物!";
  114. next;
  115. set .@i, select(.@menu$)-1;
  116. if (.@i == 0) {
  117. mes "[阿爾博]";
  118. mes "我們曾是先生的心腹手下. 先生是一位能夠創造歷史的人物. 如果他完成了自己的夢想. 那我們也能夠成為能夠見證歷史的非凡人物了.";
  119. next;
  120. mes "[阿爾博]";
  121. mes "但是,海水和海洋生物淹沒了一切. 先生所有珍貴的資料全部被海水和海洋生物吞噬了. 我們的夢想... 夢想... ";
  122. next;
  123. mes "[阿爾博]";
  124. mes "所以絕對不可原諒那些海洋生物!!! 我一定要把它們做成海鮮色拉,然後用辣椒糊在一起吃掉.";
  125. next;
  126. mes "^0000ff阿爾博的聲音因為憤怒而顫抖,當他說到辣椒糊在一起吃掉的時候, 不小心砸到了自己的嘴唇.^000000";
  127. close;
  128. }
  129. switch(.@status[.@i-1]) {
  130. case 0:
  131. mes "[阿爾博]";
  132. mes "這項任務對你來說很難.我不能告訴你為什麼.你考慮下接找另一個吧?";
  133. close;
  134. case 1:
  135. break;
  136. case 2:
  137. mes "[阿爾博]";
  138. mes "對不起,有沒有新的任務!如果我有需要做的,我會告訴你的!";
  139. close;
  140. }
  141. switch(.@i) {
  142. case 1: // General 排水溝 Daily Service
  143. switch(rand(1,6)) {
  144. case 1: callsub L_GiveQuest,.@i,12255,12271,"深海蟹";
  145. case 2: callsub L_GiveQuest,.@i,12256,12271,"深海章魚";
  146. case 3: callsub L_GiveQuest,.@i,12257,12271,"深海螃蟹";
  147. case 4: callsub L_GiveQuest,.@i,12258,12271,"深海寄居蟹";
  148. case 5: callsub L_GiveQuest,.@i,12259,12271,"深海庫克雷";
  149. case 6: callsub L_GiveQuest,.@i,12260,12271,"深海蟹蛛";
  150. }
  151. case 2: // Hard 排水溝 Daily Service
  152. switch(rand(1,6)) {
  153. case 1: callsub L_GiveQuest,.@i,12261,12272,"深海海馬";
  154. case 2: callsub L_GiveQuest,.@i,12262,12272,"深海劍魚";
  155. case 3: callsub L_GiveQuest,.@i,12263,12272,"海神";
  156. case 4: callsub L_GiveQuest,.@i,12264,12272,"深海鱷魚";
  157. case 5: callsub L_GiveQuest,.@i,12265,12272,"深海人魚";
  158. case 6: callsub L_GiveQuest,.@i,12266,12272,"深海卡法";
  159. }
  160. case 3: // General 排水溝 Weekly Service
  161. switch(rand(1,2)) {
  162. case 1: callsub L_GiveQuest,.@i,12267,12273,"怪異腔棘魚";
  163. case 2: callsub L_GiveQuest,.@i,12268,12273,"黑暗腔棘魚";
  164. }
  165. case 4: // Hard 排水溝 Weekly Service
  166. switch(rand(1,2)) {
  167. case 1: callsub L_GiveQuest,.@i,12269,12274,"凶暴腔棘魚";
  168. case 2: callsub L_GiveQuest,.@i,12270,12274,"突變腔棘魚";
  169. }
  170. default:
  171. mes "[阿爾博]";
  172. mes "呃!? 哪裡的任務? 讓我查查. 你最好問下馬德卡.";
  173. close;
  174. }
  175. end;
  176.  
  177. // callsub L_GiveQuest,.@i,<quest 1>,<quest 2>,<monster>;
  178. L_GiveQuest:
  179. setquest getarg(1);
  180. setquest getarg(2);
  181. mes "[阿爾博]";
  182. mes "今天的深海英雄!";
  183. mes "讓我們大聲說出它們滅絕的日子 ^0000ff"+getarg(3)+"^000000!";
  184. next;
  185. mes "[阿爾博]";
  186. switch(getarg(0)) {
  187. case 1:
  188. case 2:
  189. mes "來吧,夥計! 不用擔心,放手去做吧! 這是一個日常任務!";
  190. break;
  191. case 3:
  192. mes "我給你1周時間來完成這個任務,在副本裡把它們全部殺死!(普通模式)";
  193. break;
  194. case 4:
  195. mes "我給你1周時間來完成這個任務,在副本裡把它們全部殺死!(困難模式)";
  196. break;
  197. }
  198. next;
  199. mes "給你的需求是擊殺 ^005500"+getarg(3)+"^000000. 如果您需要瞭解更多詳情,請在任務窗口查詢.";
  200. close;
  201. }
  202.  
  203. function script 馬德卡#mal {
  204. //mesclear;
  205. if (checkweight(1201,1) == 0) {
  206. mes "你攜帶了太多種類的物品.嘗試減少物品種類然後繼續.";
  207. close;
  208. }
  209. if (MaxWeight - Weight < 1000) {
  210. mes "你的負重不夠了.嘗試降低負重然後繼續.";
  211. close;
  212. }
  213. if (BaseLevel < 90) {
  214. mes "[馬德卡]";
  215. mes "Karrrrrrr!!";
  216. mes "讓我們搞一些該死的海洋生物來燒烤!";
  217. next;
  218. mes "[馬德卡]";
  219. mes "你是誰? 你這樣的人連海藻都可以幹掉你!";
  220. close;
  221. }
  222. mes "[馬德卡]";
  223. mes "噢?";
  224. mes "你接受了我大哥阿爾博的任務. 這可是個苦差事!";
  225. next;
  226. set .@i, select("- 你在這裡做什麼?:- 日常普通模式任務獎勵:- 日常困難模式任務獎勵:- 周常普通模式任務獎勵:- 周常困難模式任務獎勵")-1;
  227. if (.@i == 0) {
  228. mes "[馬德卡]";
  229. mes "我在這裡協助我大哥阿爾博!";
  230. next;
  231. mes "[馬德卡]";
  232. mes "誰能把這些骯髒的海洋生物清理出海底,我們就會獎勵給他寶貴的財富!";
  233. next;
  234. mes "[馬德卡]";
  235. mes "我們提供A和B級硬幣作為日常任務的獎勵,周任務獎勵是最最寶貴的海神之怒.";
  236. next;
  237. mes "[馬德卡]";
  238. mes "如果你接受了我大哥阿爾博的任務,我會非常樂意見到你.所以,讓我們站的靠近點!";
  239. close;
  240. }
  241. mes "[馬德卡]";
  242. mes "我可不會給過期任務發放獎勵,所以先讓我檢查一下.";
  243. next;
  244. specialeffect2 EF_SPHERE;
  245. progressbar "0xFFFF00",3;
  246. specialeffect2 EF_STEAL;
  247. switch(.@i) {
  248. case 1: // General 排水溝 Daily Service
  249. if (checkquest(12271,PLAYTIME) == 2)
  250. callsub L_EraseQuest,12255,12256,12257,12258,12259,12260,12271;
  251. else {
  252. // Reward: 2x B Grade Coin
  253. callsub L_CheckQuest,12255,"深海蟹",6419,2;
  254. callsub L_CheckQuest,12256,"深海章魚",6419,2;
  255. callsub L_CheckQuest,12257,"深海螃蟹",6419,2;
  256. callsub L_CheckQuest,12258,"深海寄居蟹",6419,2;
  257. callsub L_CheckQuest,12259,"深海庫克雷",6419,2;
  258. callsub L_CheckQuest,12260,"深海蟹蛛",6419,2;
  259. }
  260. break;
  261. case 2: // Hard 排水溝 Daily Service
  262. if (checkquest(12272,PLAYTIME) == 2)
  263. callsub L_EraseQuest,12261,12262,12263,12264,12265,12266,12272;
  264. else {
  265. // Reward: 1x A Grade Coin
  266. callsub L_CheckQuest,12261,"深海海馬",6418,1;
  267. callsub L_CheckQuest,12262,"深海劍魚",6418,1;
  268. callsub L_CheckQuest,12263,"海神",6418,1;
  269. callsub L_CheckQuest,12264,"深海鱷魚",6418,1;
  270. callsub L_CheckQuest,12265,"深海人魚",6418,1;
  271. callsub L_CheckQuest,12266,"深海卡法",6418,1;
  272. }
  273. break;
  274. case 3: // General 排水溝 Weekly Service
  275. if (checkquest(12273,PLAYTIME) == 2)
  276. callsub L_EraseQuest,12267,12268,12273;
  277. else {
  278. // Reward: 1x Sea God's Wrath
  279. callsub L_CheckQuest,12267,"怪異腔棘魚",6423,1;
  280. callsub L_CheckQuest,12268,"黑暗腔棘魚",6423,1;
  281. }
  282. break;
  283. case 4: // Hard 排水溝 Weekly Service
  284. if (checkquest(12274,PLAYTIME) == 2)
  285. callsub L_EraseQuest,12269,12270,12274;
  286. else {
  287. // Reward: 5x Sea God's Wrath
  288. callsub L_CheckQuest,12269,"凶暴腔棘魚",6423,5;
  289. callsub L_CheckQuest,12270,"突變腔棘魚",6423,5;
  290. }
  291. break;
  292. default:
  293. mes "[馬德卡]";
  294. mes "有些錯誤. 請再檢查一下!";
  295. close;
  296. }
  297. mes "[馬德卡]";
  298. mes "我沒看到有任何一個任務已經完成!";
  299. close;
  300.  
  301. L_EraseQuest:
  302. for(set .@j,0; .@j<getargcount(); set .@j,.@j+1) {
  303. if (checkquest(getarg(.@j)) > -1)
  304. erasequest getarg(.@j);
  305. }
  306. mes "[馬德卡]";
  307. mes "嗯,我很抱歉. 超過標準的任務期限, 所以我不能給你任何獎勵.";
  308. close;
  309.  
  310. // callsub L_CheckQuest,<quest ID>,<monster>,<reward item ID>,<reward item amount>;
  311. L_CheckQuest:
  312. if (checkquest(getarg(0),HUNTING) == 2) {
  313. mes "[馬德卡]";
  314. mes "你懲罰了 ^0000ff"+getarg(1)+"^000000!";
  315. mes "這是你的獎勵!";
  316. erasequest getarg(0);
  317. specialeffect2 EF_STEAL;
  318. getitem getarg(2),getarg(3);
  319. close;
  320. }
  321. return;
  322. }
  323.  
  324. // Instance: Common Scripts
  325. //============================================================
  326. 1@pump,63,100,4 script 清潔工小林#0 545,{
  327. if (getcharid(0) != getpartyleader(getcharid(1),2)) {
  328. mes "[清潔工小林]";
  329. mes "我現在正在和你們的隊長說話. 請你們耐心等待一會!";
  330. close;
  331. }
  332. mes "[清潔工小林]";
  333. mes "這裡是綿綿島排水渠, 你將在這裡帶著你的隊友一起戰鬥!";
  334. next;
  335. mes "[清潔工小林]";
  336. mes "首先我會打開大門, 你們做好開戰的準備了嗎?";
  337. next;
  338. switch(select("- 我非常喜歡那個麵包的口味.:- 我懂如何去戰鬥.:- ^ffffff給我鑽石.^000000")) {
  339. case 1:
  340. mes "[清潔工小林]";
  341. mes "那好吧, 我就讓你在這裡像往常一樣清理排水渠! 我先預備在右上角開始, 請跟我來!";
  342. next;
  343. if(select("- 等等! 我改變了主意了!:- 如你所願~") == 1) {
  344. mes "[清潔工小林]";
  345. mes "呃? 還沒好? 準備好了請告訴我.";
  346. close;
  347. }
  348. set 'party_id,getcharid(1);
  349. mapannounce instance_mapname("1@pump"),"清潔工小林: 向著3點鐘的方向走, 然後等我會在傳送門的另一端給你下一個指令",bc_map,"0xff88ff",FW_NORMAL,15;
  350. disablenpc instance_npcname("清潔工小林#0");
  351. enablenpc instance_npcname("清潔工小林#n");
  352. close;
  353. case 2:
  354. if (BaseLevel < 140) {
  355. mes "[清潔工小林]";
  356. mes "嗯... 我覺得你實力很弱! 告訴我真相吧!!";
  357. close;
  358. }
  359. mes "[清潔工小林]";
  360. mes "呵呵? 你的戰鬥技術高超? 好吧, 那麼, 有個地方, 我還沒去清理過...你就去那裡吧?!";
  361. next;
  362. mes "[清潔工小林]";
  363. mes "我必須告訴你, 經過了長期的掃蕩,我們已經清理了不少地方, 剩餘的地方都非常危險, 低於140級的人甚至不能進入! 你確定你還想去?";
  364. next;
  365. if(select("- 等等! 我改變主意了!:- 當然, 都萬事俱備~") == 1) {
  366. mes "[清潔工小林]";
  367. mes "嗯? 最後確認一次.";
  368. close;
  369. }
  370. set 'party_id,getcharid(1);
  371. mapannounce instance_mapname("1@pump"),"清潔工小林: 我會先進去, 然後你跟緊我! 我會打開3點鐘方向的通道!",bc_map,"0xff88ff",FW_NORMAL,15;
  372. disablenpc instance_npcname("清潔工小林#0");
  373. enablenpc instance_npcname("排水溝入口#i");
  374. close;
  375. case 3:
  376. mes "[清潔工小林]";
  377. mes "你小子玩我是不是~!";
  378. close;
  379. }
  380. end;
  381. }
  382.  
  383. 1@pump,84,105,0 script 排水溝入口#i 45,3,3,{
  384. end;
  385. OnInstanceInit:
  386. disablenpc instance_npcname("排水溝入口#i");
  387. end;
  388. OnTouch:
  389. if (BaseLevel >= 140)
  390. warp instance_mapname("2@pump"),38,88;
  391. else
  392. warp instance_mapname("1@pump"),74,105;
  393. end;
  394. }
  395.  
  396. function script F_mal_missing {
  397. mes "[清潔工小林]";
  398. mes "我會指點你應該怎麼做, 你有沒看到周圍的排水渠?";
  399. next;
  400. if(select("- 什麼排水渠??:- 是的, 我看見了.") == 1) {
  401. mes "[清潔工小林]";
  402. mes "嗯? 看樣子你是第一次來這地方? 你會看到一些埋在泥土裡的機器. 你必須在附近好好找找!";
  403. close;
  404. }
  405. mes "[清潔工小林]";
  406. mes "很好! 這些排水渠對我們非常重要! 因此我們必須阻止那些海藻的繁殖. 這也是我, 清潔工的使命!";
  407. next;
  408. mes "[清潔工小林]";
  409. mes "小心! 有些精明的怪物會偷偷跟著你! 絕對不能饒恕它們!";
  410. next;
  411. mes "[清潔工小林]";
  412. mes "還有... 千萬不能讓那些受污染的海藻長出第6個分岔! 一定要控制在5條以下! 否則, 我會以玩忽職守罪把你從這裡丟出去!!";
  413. next;
  414. mes "[清潔工小林]";
  415. mes "我不會介意你從自己的隊友這裡獲得幫助. 我希望你能清理完整個洞穴! 不要忘記! 我也會在邊上盡我所能給你各種提示和建議. !!";
  416. next;
  417. if (getcharid(0) != getpartyleader(getcharid(1),2)) {
  418. mes "[清潔工小林]";
  419. mes "一旦你們的隊長完成準備工作, 副本就會開始, 所以請打起精神來!!";
  420. close;
  421. }
  422. mes "[清潔工小林]";
  423. mes "那麼, 你現在準備就緒了嗎?";
  424. next;
  425. switch(select("- 等等! 還沒!:- 讓我們開始吧!")) {
  426. case 1:
  427. mes "[清潔工小林]";
  428. mes "嗯? 還沒好? 準備好了就告訴我.";
  429. close;
  430. case 2:
  431. mes "[清潔工小林]";
  432. mes "OK! 好戲開始了!";
  433. return;
  434. }
  435. }
  436.  
  437. // Instance: Normal Mode
  438. //============================================================
  439. 1@pump,84,105,4 script 清潔工小林#nf 545,{
  440. mes "[清潔工小林]";
  441. mes "我在這裡幹了40年, 你們是我見過最差的隊伍!!";
  442. next;
  443. mes "[清潔工小林]";
  444. mes "你們的疏忽導致這裡長滿了被污染的海藻! 所有的排水渠都收到堵塞的風險!";
  445. next;
  446. if (getcharid(0) != getpartyleader(getcharid(1),2)) {
  447. mes "[清潔工小林]";
  448. mes "等你們的隊長回過神來, 會告訴你們處罰決定. 現在你們可以做一下思想準備!!";
  449. close;
  450. }
  451. mes "[清潔工小林]";
  452. mes "如果你有膽量再次挑戰, 我再給你一次機會! 你的想法是!?";
  453. next;
  454. switch(select("- 等等! 現在不行!:- 好的, 讓我們再來一次!")) {
  455. case 1:
  456. mes "[清潔工小林]";
  457. mes "記住當斷則斷! 等你們準備好了就告訴我.";
  458. close;
  459. case 2:
  460. mes "[清潔工小林]";
  461. mes "好的! 讓我們現在就開始!";
  462. set .@i$, charat(strnpcinfo(2),0);
  463. enablenpc instance_npcname("清潔工小林#"+.@i$);
  464. donpcevent instance_npcname("清潔工小林#"+.@i$)+"::OnStart";
  465. disablenpc instance_npcname("排水溝入口#"+.@i$);
  466. disablenpc instance_npcname("清潔工小林#"+.@i$+"o");
  467. donpcevent instance_npcname("怪物洞#"+.@i$)+"::OnClear";
  468. disablenpc instance_npcname(strnpcinfo(0));
  469. close;
  470. }
  471. close;
  472. OnInstanceInit:
  473. disablenpc instance_npcname(strnpcinfo(0));
  474. end;
  475. }
  476.  
  477. 1@pump,84,105,4 script 清潔工小林#n 545,{
  478. callfunc "F_mal_missing";
  479. donpcevent instance_npcname("清潔工小林#n")+"::OnStart";
  480. close;
  481. OnInstanceInit:
  482. disablenpc instance_npcname("清潔工小林#n");
  483. end;
  484. OnStart:
  485. killmonster instance_mapname("1@pump"),instance_npcname("清潔工小林#n")+"::OnMyMobDead";
  486. disablenpc instance_npcname("清潔工小林#n");
  487. initnpctimer;
  488. end;
  489. OnAddSeaweed:
  490. set .@map$, instance_mapname("1@pump");
  491. areamonster .@map$,55,99,61,105,"受污染的海藻",2191,1,instance_npcname("清潔工小林#n")+"::OnMyMobDead";
  492. set .@mob_dead_num, mobcount(.@map$,instance_npcname("清潔工小林#n")+"::OnMyMobDead");
  493. if (.@mob_dead_num >= 6)
  494. donpcevent instance_npcname("清潔工小林#n")+"::OnFail";
  495. else
  496. mapannounce .@map$,"受污染的海藻: "+.@mob_dead_num+" stem",bc_map,"0xff3333",FW_NORMAL,20;
  497. end;
  498. OnMyMobDead:
  499. end;
  500. OnFail:
  501. stopnpctimer;
  502. donpcevent instance_npcname("怪物洞#n")+"::OnClear";
  503. set .@map$, instance_mapname("1@pump");
  504. killmonster .@map$,instance_npcname("清潔工小林#n")+"::OnMyMobDead";
  505. enablenpc instance_npcname("清潔工小林#nf");
  506. mapannounce .@map$,"你們究竟在這裡幹什麼!! 到處都是該死海藻! 放棄你的工作! 離開這裡!!",bc_map,"0xff88ff",FW_NORMAL,15;
  507. disablenpc instance_npcname("清潔工小林#n");
  508. end;
  509. OnTimer100:
  510. mapannounce instance_mapname("1@pump"),"第一個排水渠將在5秒鐘內開啟. 清理者們請到排水渠這裡單擊「開始清理」.",bc_map,"0x00ffcc",FW_NORMAL,15;
  511. end;
  512. OnTimer5500:
  513. mapannounce instance_mapname("1@pump"),"排水渠副本建立時, 等候的玩家無法移動和攻擊.",bc_map,"0x00ffcc",FW_NORMAL,15;
  514. donpcevent instance_npcname("怪物洞#n")+"::OnSpawn";
  515. end;
  516. OnTimer45000:
  517. OnTimer95000:
  518. OnTimer145000:
  519. OnTimer195000:
  520. OnTimer245000:
  521. OnTimer295000:
  522. OnTimer345000:
  523. OnTimer395000:
  524. OnTimer445000:
  525. mapannounce instance_mapname("1@pump"),"下一個排水渠將在50秒內開啟. 請盡快找到下一個排水渠的位置.",bc_map,"0x00ffcc",FW_NORMAL,15;
  526. end;
  527. OnTimer50000:
  528. OnTimer100000:
  529. OnTimer150000:
  530. donpcevent instance_npcname("怪物洞#n")+"::OnSpawn";
  531. end;
  532. OnTimer200000:
  533. OnTimer250000:
  534. OnTimer300000:
  535. OnTimer350000:
  536. OnTimer400000:
  537. OnTimer450000:
  538. set .@mob_dead_num, mobcount(instance_mapname("1@pump"),instance_npcname("清潔工小林#n")+"::OnMyMobDead");
  539. if (.@mob_dead_num >= 6)
  540. donpcevent instance_npcname("清潔工小林#n")+"::OnFail";
  541. else
  542. donpcevent instance_npcname("怪物洞#n")+"::OnSpawn";
  543. end;
  544. OnTimer515000:
  545. set .@map$, instance_mapname("1@pump");
  546. set .@mob_dead_num, mobcount(.@map$,instance_npcname("清潔工小林#n")+"::OnMyMobDead");
  547. mapannounce .@map$,"受污染的海藻: "+.@mob_dead_num+" 盡快完成清潔工作, 清潔工小林就快來檢查了.",bc_map,"0xff3333",FW_NORMAL,20;
  548. end;
  549. OnTimer520000:
  550. stopnpctimer;
  551. set .@mob_dead_num, mobcount(instance_mapname("1@pump"),instance_npcname("清潔工小林#n")+"::OnMyMobDead");
  552. if (.@mob_dead_num >= 6)
  553. donpcevent instance_npcname("清潔工小林#n")+"::OnFail";
  554. else
  555. donpcevent instance_npcname("Boss Creation#n")+"::OnEnable";
  556. end;
  557. }
  558.  
  559. 1@pump,1,1,4 script 怪物洞#n -1,{
  560. end;
  561. OnSpawn:
  562. set .@i$, charat(strnpcinfo(2),0);
  563. if (.@i$ == "n")
  564. set .@n,6;
  565. else if (.@i$ == "h")
  566. set .@n,10;
  567. donpcevent instance_npcname("#排水溝_"+.@i$+rand(1,.@n))+"::OnEnable";
  568. end;
  569. OnClear:
  570. set .@i$, charat(strnpcinfo(2),0);
  571. if (.@i$ == "n")
  572. set .@n,6;
  573. else if (.@i$ == "h")
  574. set .@n,10;
  575. for(set .@i,1; .@i<=.@n; set .@i,.@i+1)
  576. donpcevent instance_npcname("#排水溝_"+.@i$+.@n)+"::OnClear";
  577. end;
  578. }
  579.  
  580. 1@pump,36,111,4 script #排水溝_n1 844,14,14,{ //temporary workaround for ALL_SAMEMAP
  581. progressbar "0xFFFF00",10;
  582. stopnpctimer;
  583. disablenpc instance_npcname(strnpcinfo(0));
  584. end;
  585. OnInstanceInit:
  586. disablenpc instance_npcname(strnpcinfo(0));
  587. end;
  588. OnEnable:
  589. enablenpc instance_npcname(strnpcinfo(0));
  590. set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
  591. set .@map$, instance_mapname("1@pump");
  592. //set .@index, atoi(charat(strnpcinfo(2),9));
  593. switch(rand(1,6)) {
  594. case 1: setarray .@c[0],32,107,40,115; break;
  595. case 2: setarray .@c[0],64,120,72,128; break;
  596. case 3: setarray .@c[0],76,110,84,118; break;
  597. case 4: setarray .@c[0],36,76,44,84; break;
  598. case 5: setarray .@c[0],71,76,79,84; break;
  599. case 6: setarray .@c[0],54,97,62,105; break;
  600. }
  601. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海蟹",2176,rand(1,3),.@label$;
  602. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海章魚",2175,rand(1,3),.@label$;
  603. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海螃蟹",2174,rand(1,3),.@label$;
  604. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海寄居蟹",2178,rand(1,3),.@label$;
  605. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海庫克雷",2179,rand(1,3),.@label$;
  606. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海蟹蛛",2177,rand(1,3),.@label$;
  607. specialeffect EF_MAPPILLAR2,ALL_SAMEMAP; //currently broken
  608. getmapxy(.@map$,.@x,.@y,BL_NPC);
  609. getpartymember 'party_id,2;
  610. copyarray .@partymemberaid[0],$@partymemberaid[0],$@partymembercount;
  611. for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1) {
  612. if (attachrid(.@partymemberaid[.@i])) {
  613. if (strcharinfo(3) == .@map$)
  614. viewpoint 0,.@x,.@y,.@index,0xFFFF00;
  615. detachrid;
  616. }
  617. }
  618. initnpctimer;
  619. end;
  620. OnMyMobDead:
  621. end;
  622. OnClear:
  623. stopnpctimer;
  624. killmonster instance_mapname("1@pump"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
  625. end;
  626. OnTimer49500: //OnTimer50000 clashes with the timer in "清潔工小林#h".
  627. donpcevent instance_npcname("清潔工小林#n")+"::OnAddSeaweed";
  628. donpcevent instance_npcname(strnpcinfo(0))+"::OnClear";
  629. disablenpc instance_npcname(strnpcinfo(0));
  630. end;
  631. OnTouch:
  632. specialeffect EF_MAPPILLAR2;
  633. end;
  634. }
  635. 1@pump,68,124,4 duplicate(#排水溝_n1) #排水溝_n2 844,14,14
  636. 1@pump,80,114,4 duplicate(#排水溝_n1) #排水溝_n3 844,14,14
  637. 1@pump,40,80,4 duplicate(#排水溝_n1) #排水溝_n4 844,14,14
  638. 1@pump,75,80,4 duplicate(#排水溝_n1) #排水溝_n5 844,14,14
  639. 1@pump,58,101,4 duplicate(#排水溝_n1) #排水溝_n6 844,14,14
  640.  
  641. 1@pump,1,1,4 script Boss Creation#n -1,{
  642. end;
  643. OnInstanceInit:
  644. disablenpc instance_npcname(strnpcinfo(0));
  645. end;
  646. OnEnable:
  647. enablenpc instance_npcname(strnpcinfo(0));
  648. initnpctimer;
  649. end;
  650. OnTimer100:
  651. set .@i$, charat(strnpcinfo(2),0);
  652. if (.@i$ == "n")
  653. mapannounce instance_mapname("1@pump"),"嗯! 幹的不賴!",bc_map,"0xff88ff",FW_NORMAL,15;
  654. else if (.@i$ == "h")
  655. mapannounce instance_mapname("2@pump"),"嗯! 小子們還行!!",bc_map,"0xff88ff",FW_NORMAL,15;
  656. end;
  657. OnTimer5000:
  658. mapannounce strnpcinfo(4),"讓我們打包帶走...什麼!!?",bc_map,"0xff88ff",FW_NORMAL,15;
  659. end;
  660. OnTimer10000:
  661. mapannounce strnpcinfo(4),"我感覺到了一絲危險的氣息! 不要放鬆 - 準備戰鬥!!",bc_map,"0xff88ff",FW_NORMAL,15;
  662. end;
  663. OnTimer20000:
  664. stopnpctimer;
  665. set .@i$, charat(strnpcinfo(2),0);
  666. set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
  667. if (rand(1,100) > 50) {
  668. if (.@i$ == "n")
  669. monster instance_mapname("1@pump"),0,0,"怪異腔棘魚",2188,1,.@label$;
  670. else if (.@i$ == "h")
  671. monster instance_mapname("2@pump"),0,0,"突變腔棘魚",2189,1,.@label$;
  672. mapannounce strnpcinfo(4),"洞穴深處有一個巨大的生物發出驚人的聲響.",bc_map,"0x00ffcc",FW_NORMAL,15;
  673. } else {
  674. if (.@i$ == "n")
  675. monster instance_mapname("1@pump"),0,0,"黑暗腔棘魚",2187,1,.@label$;
  676. else if (.@i$ == "h")
  677. monster instance_mapname("2@pump"),0,0,"凶暴腔棘魚",2190,1,.@label$;
  678. mapannounce strnpcinfo(4),"洞穴深處傳來巨大的聲響.",bc_map,"0x00ffcc",FW_NORMAL,15;
  679. }
  680. end;
  681. OnMyMobDead:
  682. if (mobcount(strnpcinfo(4),instance_npcname(strnpcinfo(0))+"::OnMyMobDead") < 1) {
  683. mapannounce strnpcinfo(4),"你擊殺了洞穴中所有的怪物. 地上有獎勵物品,請取走.",bc_map,"0xffff00",FW_NORMAL,15;
  684. set .@i$, charat(strnpcinfo(2),0);
  685. set .@map$, strnpcinfo(4);
  686. enablenpc instance_npcname("排水溝入口#"+.@i$);
  687. enablenpc instance_npcname("清潔工小林#"+.@i$+"o");
  688. if (.@i$ == "n") {
  689. for(set .@i,0; .@i<10; set .@i,.@i+1) {
  690. set .@j, rand(1,6401);
  691. if (.@j < 5001) set .@item,12636; //Malang_Sp_Can
  692. else if (.@j < 5501) set .@item,12615; //Low_Coin_Pocket
  693. else if (.@j < 6001) set .@item,12621; //Egrade_Pocket
  694. else if (.@j < 6201) set .@item,12620; //Dgrade_Pocket
  695. else if (.@j < 6401) set .@item,12623; //High_Weapon_Box
  696. else continue;
  697. makeitem .@item,1,.@map$,rand(40,77),rand(87,120);
  698. }
  699. } else if (.@i$ == "h") {
  700. for(set .@i,0; .@i<10; set .@i,.@i+1) {
  701. set .@j, rand(1,5001);
  702. if (.@j < 2001) set .@item,12615; //Low_Coin_Pocket
  703. else if (.@j < 3001) set .@item,12621; //Egrade_Pocket
  704. else if (.@j < 4001) set .@item,12620; //Dgrade_Pocket
  705. else if (.@j < 4501) set .@item,12619; //Cgrade_Pocket
  706. else if (.@j < 5001) set .@item,12623; //High_Weapon_Box
  707. else continue;
  708. makeitem .@item,1,.@map$,rand(40,77),rand(87,120);
  709. }
  710. }
  711. } else
  712. mapannounce strnpcinfo(4),"還有怪物活著.",bc_map,"0x00ff99",FW_NORMAL,20;
  713. end;
  714. }
  715.  
  716. 1@pump,84,105,4 script 清潔工小林#no 545,{
  717. set .@i$, charat(strnpcinfo(2),0);
  718. if (.@i$ == "n") {
  719. mes "[清潔工小林]";
  720. mes "我太愚蠢了!!";
  721. next;
  722. mes "[清潔工小林]";
  723. mes "這古怪的魚,似乎是一條生長在這裡的腔棘魚。這是我第一次看到它們獨自來到這裡!";
  724. next;
  725. mes "[清潔工小林]";
  726. mes "我會清理這個屍體。打包後離開!入口位於另一側,快去找吧!";
  727. next;
  728. } else if (.@i$ == "h") {
  729. mes "[清潔工小林]";
  730. mes "你幹掉了一個巨大的怪物!";
  731. next;
  732. mes "[清潔工小林]";
  733. mes "你幹掉的是一種腔棘魚。曾經也有人試圖幹掉他們,但失敗了.";
  734. next;
  735. mes "[清潔工小林]";
  736. mes "我會清理屍體。你帶著獎勵先走!";
  737. next;
  738. }
  739. mes "[清潔工小林]";
  740. mes "還有一件事!不要和任何人說起在這裡見到的情況!";
  741. next;
  742. mes "[清潔工小林]";
  743. mes "如果托馬斯把這裡關了,我們會失去我們的工作!";
  744. close;
  745. OnInstanceInit:
  746. disablenpc instance_npcname(strnpcinfo(0));
  747. end;
  748. }
  749.  
  750. 1@pump,32,100,0 script 排水溝入口#n 45,3,3,{
  751. end;
  752. OnInstanceInit:
  753. disablenpc instance_npcname(strnpcinfo(0));
  754. end;
  755. OnTouch:
  756. warp "mal_in01",161,32;
  757. end;
  758. }
  759.  
  760. //MD_Putmob "1@pump" 0 0 0 0 20 海德拉 0 0 2
  761. 1@pump,1,1,4 script 海德拉#n -1,{
  762. OnInstanceInit:
  763. monster strnpcinfo(4),0,0,"海德拉",1068,20;
  764. end;
  765. }
  766.  
  767. // Instance: Hard Mode
  768. //============================================================
  769. 2@pump,39,88,4 duplicate(清潔工小林#nf) 清潔工小林#hf 545
  770.  
  771. 2@pump,39,88,4 script 清潔工小林#h 545,{
  772. callfunc "F_mal_missing";
  773. donpcevent instance_npcname("清潔工小林#h")+"::OnStart";
  774. close;
  775. OnStart:
  776. killmonster instance_mapname("2@pump"),instance_npcname("清潔工小林#h")+"::OnMyMobDead";
  777. disablenpc instance_npcname("清潔工小林#h");
  778. initnpctimer;
  779. end;
  780. OnAddSeaweed:
  781. set .@map$, instance_mapname("2@pump");
  782. areamonster .@map$,75,78,85,88,"受污染的海藻",2191,1,instance_npcname("清潔工小林#h")+"::OnMyMobDead";
  783. set .@mob_dead_num, mobcount(.@map$,instance_npcname("清潔工小林#h")+"::OnMyMobDead");
  784. if (.@mob_dead_num >= 6)
  785. donpcevent instance_npcname("清潔工小林#h")+"::OnFail";
  786. else
  787. mapannounce .@map$,"受污染的海藻: "+.@mob_dead_num+"個受污染的海藻分岔",bc_map,"0xff3333",FW_NORMAL,20;
  788. end;
  789. OnMyMobDead:
  790. end;
  791. OnFail:
  792. stopnpctimer;
  793. donpcevent instance_npcname("怪物洞#h")+"::OnClear";
  794. set .@map$, instance_mapname("2@pump");
  795. killmonster .@map$, instance_npcname("清潔工小林#h")+"::OnMyMobDead";
  796. enablenpc instance_npcname("清潔工小林#hf");
  797. mapannounce .@map$,"你們究竟在這裡幹什麼!! 到處都是該死海藻! 放棄你的工作! 離開這裡!!",bc_map,"0xff88ff",FW_NORMAL,15;
  798. disablenpc instance_npcname("清潔工小林#h");
  799. end;
  800. OnTimer100:
  801. mapannounce instance_mapname("2@pump"),"第一個排水渠將在5秒內打開. 清理者們可以到排水渠洞口單擊'開始清理'.",bc_map,"0x00ffcc",FW_NORMAL,15;
  802. end;
  803. OnTimer5500:
  804. mapannounce instance_mapname("2@pump"),"副本構建過程中, 所有參加副本的人員無法移動和攻擊.",bc_map,"0x00ffcc",FW_NORMAL,15;
  805. donpcevent instance_npcname("怪物洞#h")+"::OnSpawn";
  806. end;
  807. OnTimer35000:
  808. OnTimer75000:
  809. OnTimer115000:
  810. OnTimer155000:
  811. OnTimer195000:
  812. OnTimer235000:
  813. OnTimer275000:
  814. OnTimer315000:
  815. OnTimer355000:
  816. mapannounce instance_mapname("2@pump"),"下一個排水渠將在5秒內打開. 請盡快到達下一個排水渠的位置.",bc_map,"0x00ffcc",FW_NORMAL,15;
  817. end;
  818. OnTimer40000:
  819. OnTimer80000:
  820. OnTimer120000:
  821. donpcevent instance_npcname("怪物洞#h")+"::OnSpawn";
  822. end;
  823. OnTimer160000:
  824. OnTimer200000:
  825. OnTimer240000:
  826. OnTimer280000:
  827. OnTimer320000:
  828. OnTimer360000:
  829. set .@mob_dead_num, mobcount(instance_mapname("2@pump"),instance_npcname("清潔工小林#h")+"::OnMyMobDead");
  830. if (.@mob_dead_num >= 6)
  831. donpcevent instance_npcname("清潔工小林#h")+"::OnFail";
  832. else
  833. donpcevent instance_npcname("怪物洞#h")+"::OnSpawn";
  834. end;
  835. OnTimer420000:
  836. mapannounce instance_mapname("2@pump"),"看樣子, 清潔工小林馬上就要來檢查我們的清理情況了. 我們能把這裡的爛攤子清理乾淨麼?",bc_map,"0xff3333",FW_NORMAL,20;
  837. end;
  838. OnTimer425000:
  839. stopnpctimer;
  840. set .@mob_dead_num, mobcount(instance_mapname("2@pump"),instance_npcname("清潔工小林#h")+"::OnMyMobDead");
  841. if (.@mob_dead_num >= 6)
  842. donpcevent instance_npcname("清潔工小林#h")+"::OnFail";
  843. else
  844. donpcevent instance_npcname("Boss Creation#h")+"::OnEnable";
  845. end;
  846. }
  847.  
  848. 2@pump,53,114,4 script #排水溝_h1 844,14,14,{ //temporary workaround for ALL_SAMEMAP
  849. progressbar "0xFFFF00",15;
  850. stopnpctimer;
  851. disablenpc instance_npcname(strnpcinfo(0));
  852. end;
  853. OnInstanceInit:
  854. disablenpc instance_npcname(strnpcinfo(0));
  855. end;
  856. OnEnable:
  857. enablenpc instance_npcname(strnpcinfo(0));
  858. set .@label$, instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
  859. set .@map$, instance_mapname("2@pump");
  860. set .@index, atoi(substr(strnpcinfo(2),9,getstrlen(strnpcinfo(2))-1));
  861. switch(rand(1,10)) {
  862. case 1: setarray .@c[0],49,110,57,118; break;
  863. case 2: setarray .@c[0],75,105,83,113; break;
  864. case 3: setarray .@c[0],110,110,118,118; break;
  865. case 4: setarray .@c[0],94,94,102,102; break;
  866. case 5: setarray .@c[0],58,92,66,100; break;
  867. case 6: setarray .@c[0],53,66,61,74; break;
  868. case 7: setarray .@c[0],43,45,51,53; break;
  869. case 8: setarray .@c[0],77,59,85,67; break;
  870. case 9: setarray .@c[0],96,70,104,78; break;
  871. case 10: setarray .@c[0],111,46,119,54; break;
  872. }
  873. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海海馬",2182,rand(2,3),.@label$;
  874. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海劍魚",2181,rand(2,3),.@label$;
  875. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海海神",2180,rand(2,3),.@label$;
  876. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海鱷魚",2183,rand(2,3),.@label$;
  877. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海人魚",2184,rand(2,3),.@label$;
  878. areamonster .@map$,.@c[0],.@c[1],.@c[2],.@c[3],"深海卡法",2185,rand(2,3),.@label$;
  879. specialeffect EF_MAPPILLAR2,ALL_SAMEMAP; //currently broken
  880. initnpctimer;
  881. end;
  882. OnMyMobDead:
  883. end;
  884. OnClear:
  885. stopnpctimer;
  886. killmonster instance_mapname("2@pump"),instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
  887. end;
  888. OnTimer39500: //OnTimer40000 clashes with the timer in "清潔工小林#h".
  889. donpcevent instance_npcname("清潔工小林#h")+"::OnAddSeaweed";
  890. donpcevent instance_npcname(strnpcinfo(0))+"::OnClear";
  891. disablenpc instance_npcname(strnpcinfo(0));
  892. end;
  893. OnTouch:
  894. specialeffect EF_MAPPILLAR2;
  895. end;
  896. }
  897. 2@pump,79,109,4 duplicate(#排水溝_h1) #排水溝_h2 844,14,14
  898. 2@pump,114,114,4 duplicate(#排水溝_h1) #排水溝_h3 844,14,14
  899. 2@pump,98,98,4 duplicate(#排水溝_h1) #排水溝_h4 844,14,14
  900. 2@pump,62,96,4 duplicate(#排水溝_h1) #排水溝_h5 844,14,14
  901. 2@pump,57,70,4 duplicate(#排水溝_h1) #排水溝_h6 844,14,14
  902. 2@pump,47,49,4 duplicate(#排水溝_h1) #排水溝_h7 844,14,14
  903. 2@pump,81,63,4 duplicate(#排水溝_h1) #排水溝_h8 844,14,14
  904. 2@pump,100,74,4 duplicate(#排水溝_h1) #排水溝_h9 844,14,14
  905. 2@pump,115,50,4 duplicate(#排水溝_h1) #排水溝_h10 844,14,14
  906.  
  907. 2@pump,1,1,4 duplicate(怪物洞#n) 怪物洞#h -1
  908. 2@pump,1,1,4 duplicate(Boss Creation#n) Boss Creation#h -1
  909. 2@pump,39,88,4 duplicate(清潔工小林#no) 清潔工小林#ho 545
  910. 2@pump,38,100,0 duplicate(排水溝入口#n) 排水溝入口#h 45,3,3
  911.  
  912. //MD_Putmob "2@pump" 0 0 0 0 20 海德拉 0 0 2
  913. 2@pump,1,1,4 duplicate(海德拉#n) 海德拉#h -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement