该隐藏帖已经发布超过60天,已自动取消隐藏功能,无需回复即可查看!importPackage(net.貌似会被和谐自己打上去.odinms.tools); h ?uqLsRl importPackage(net.貌似会被和谐自己打上去.odinms.server.life); 5]jx5!N importPackage(java.awt); B\Xh3l]+j \Sg<='/{L; var status; 6!P`XTTE var curMap; ;mEwQ var playerStatus; H@V 7!d var chatState; T}C2e! _O var questions = Array("首先给你出一个问题!请仔细听好:作为一名战士,他在1转的时候需要达到的等级是多少,那么请交给我同样数量的通行证。", :w@F?:C "首先给你出一个问题! 请仔细听好:作为一名战士,他在1转的时候需要力量的能力值最小是多少点,那么请交给我同样数量的通行证。", *_`76`cz%X "首先给你出一个问题!请仔细听好: 作为一名法师,他在1转的时候需要智力的能力值最小是多少点,那么请交给我同样数量的通行证。", OnZF6yfN=3 "首先给你出一个问题!请仔细听好: 作为一名弓箭手,他在1转的时候需要敏捷的能力值最小是多少点,那么请交给我同样数量的通行证。", A0G)imsW:_ "首先给你出一个问题!请仔细听好: 作为一名飞侠,他在1转的时候需要敏捷的能力值最小是多少点,那么请交给我同样数量的通行证。", nD7|8,' "首先给你出一个问题!请仔细听好: 所有职业在2转的时候需要达到的等级是多少,那么请交给我同样数量的通行证。"); OE_QInb< var qanswers = Array(10, 35, 20, 25, 25, 30); a%Uw;6|{ var party; yJ%t^ X_ var preamble; ]JOephX2R var stage2rects = Array(Rectangle(-755,-132,4,218),Rectangle(-721,-340,4,166), !CVuw Rectangle(-586,-326,4,150),Rectangle(-483,-181,4,222)); 9|'
|BC var stage2combos = Array(Array(0,1,1,1),Array(1,0,1,1),Array(1,1,0,1),Array(1,1,1,0)); 24#bMt#^ var stage3rects = Array(Rectangle(608,-180,140,50),Rectangle(791,-117,140,45), Lp_$?MCD. Rectangle(958,-180,140,50),Rectangle(876,-238,140,45), B?+.2 Rectangle(702,-238,140,45)); J.#(gFBBl\ var stage3combos = Array(Array(0,0,1,1,1),Array(0,1,0,1,1),Array(0,1,1,0,1), e
# t3u_ Array(0,1,1,1,0),Array(1,0,0,1,1),Array(1,0,1,0,1), 9]"S:{KSCn Array(1,0,1,1,0),Array(1,1,0,0,1),Array(1,1,0,1,0), _eGT2,D5r Array(1,1,1,0,0)); R)ERxz# var stage4rects = Array(Rectangle(910,-236,35,5),Rectangle(877,-184,35,5), w{pUUo:< Rectangle(946,-184,35,5),Rectangle(845,-132,35,5), Mr-DGLJ Rectangle(910,-132,35,5),Rectangle(981,-132,35,5)); &~RR&MdZ2 var stage4combos = Array(Array(0,0,0,1,1,1),Array(0,0,1,0,1,1),Array(0,0,1,1,0,1), ujU=JlJ7dl Array(0,0,1,1,1,0),Array(0,1,0,0,1,1),Array(0,1,0,1,0,1), BR+nL6sU Array(0,1,0,1,1,0),Array(0,1,1,0,0,1),Array(0,1,1,0,1,0), )h#]iGVN} Array(0,1,1,1,0,0),Array(1,0,0,0,1,1),Array(1,0,0,1,0,1), &J_Z~^ Array(1,0,0,1,1,0),Array(1,0,1,0,0,1),Array(1,0,1,0,1,0), Bd{4Ae\_+g Array(1,0,1,1,0,0),Array(1,1,0,0,0,1),Array(1,1,0,0,1,0), puOC60zI Array(1,1,0,1,0,0),Array(1,1,1,0,0,0)); _w 5RK( var eye = 9300002; ).LTts7c var necki = 9300000; _@Y"$V]=Vt var slime = 9300003; pgT9hle/ var monsterIds = Array(eye, eye, eye,
CJJD@= necki, necki, necki, necki, necki, necki, COR;e`%, slime); m9Ax\lf var prizeIdScroll = Array(2040502,2040505,2040514,2040517, // overall 8O>}k 2040802, 2040805, // glove M :V2a<!c 2040002, 2040402, 2040602, 2040902, // armor def (top/bottom/shield/hat) -;^;2#](g 2044502, 2044702, 2044602, 2043302, // weapon atk a Sf/4\ 2043102, 2043202, 2043002, 2044402, c! @F 2044302, 2044102, 2044202, 2044002); %m9CdWb=w var prizeIdUse = Array( 2000001, 2000002, 2000003, 2000006, // orange white blue manalixir pots #O
" 2000004, 2000005, 2001000, 2001001, // elix/p.elix, watermelon/sundae wu A^'T 2002006, 2002007, 2002008, 2002010); // warrior/sniper/magic/speed pills )l_@t(_ var prizeQtyUse = Array(100, 75, 100, 45, >&OUGu| 20, 10, 35, 30, :-?Ct 10, 10, 10, 10); :p' VbQZ{ var prizeIdEquip = Array(1032000, 1032009, 1032004, 1032005, // 20-25 earrings \#CM
<% 1032006, 1032007, 1032010, // 30 earrings Mi ; glm 1032002, 1032008, // 35 earrings U[R@x
` 1002026, 1002089, 1002090); // bamboo hats 2R]&v;A var prizeIdEtc = Array( 4010000, 4010001, 4010002, 4010003, // Mineral ores J{`eLmTu 4010004, 4010005, 4010006, // Mineral ores + gold ,|+Gls 4020000, 4020001, 4020002, 4020003, // Jewel ores +iy7e6P 4020004, 4020005, 4020006, // Jewel ores ;imRh'-V6 4020007, 4020007, 4003000); // Diamond/BC/screws j Fma|y var prizeQtyEtc = Array(15, 15, 15, 15, $$hv
`HE^l 15, 15, 8, h35Hu_c& 15, 15, 15, 15, ibJHU@l 15, 15, 15, @9Q2$ 8, 5, 20); 77V
.["=7 v!H:^!z p,F^0OU2}: function start() {
bLqy!QE status = -1; Cp#)wxi6[y mapId = cm.getChar().getMapId(); (zG.aaz*C if (mapId == 103000800) .x!T+`l>8I curMap = 1; {XgnZ`* else if (mapId == 103000801) $6T
3y8 curMap = 2; *5e+@rD` else if (mapId == 103000802) ,_D"?o curMap = 3; K$H
<}e3 else if (mapId == 103000803) Zk&h:c curMap = 4; 'CXRG$D else if (mapId == 103000804) BYi)j6" curMap = 5; $<|o
cUC7 playerStatus = cm.isLeader(); p~2UUmV preamble = null; XF}rd.K: action(1, 0, 0); 9XX>A* } JQ@fuo % $+cAg
> function action(mode, type, selection) { c8{]] if (mode == -1) { YD\]{,F| cm.dispose(); *:_P8G; } else { 3NIUW!gr if (mode == 0 && status == 0) { ME^,
'& cm.dispose(); =oX>Ph+ P return;
eWvo,4 } JqCc;Cbd if (mode == 1) ?7jg(`Yh status++; :~zv t else H2;X
status--; _n"Ae?TP if (curMap == 1) { // First Stage. fj>C@p if (playerStatus) { // party leader |%1?3Mpn if (status == 0) { fQ+\;iAU var eim = cm.getChar().getEventInstance(); ^N{ltgQY party = eim.getPlayers(); O oSb>Y/4 preamble = eim.getProperty("leader1stpreamble"); B&
Y_2)v if (preamble == null) { R^*K6Ad cm.sendNext("Hello,欢迎您的第一阶段。环顾四周,你会看到很多鳄鱼游荡。当你打败他们,他们就会咳嗽了#bpasses#k队长应该对我说话,收集了相同数量的#bpasses#k为回答这个问题我给他们。\r\n如果你收集的数额#bpasses#k,我给了#bpass#k该成员。当所有的队员聚集了#bpasses#k和给他们的队长,队长将交出#bpasses#k对我来说,清理阶段的进程。更快你照顾的阶段,更多的阶段就可以挑战。因此,我建议你照顾快速和迅速。那么,最好的你好运。"); |Ps% M|8~ eim.setProperty("leader1stpreamble","done"); y{d^?(- cm.dispose(); ~>5#5!}@* } ,Q/Ac{C else { // check how many they have compared to number of party members FB:<zmwR // check for stage completed mM/i^zT var complete = eim.getProperty(curMap.toString() + "stageclear"); :B|Dr
v if (complete != null) { G^wtE90 cm.sendNext("请赶紧去下一关,们已经打开了"); @ {#mpDX cm.dispose(); cCY/gEv } f[sF:f(zI else { YE}s var numpasses = party.size()-1; DNkWOY#{ var passes = cm.haveItem(4001008,numpasses); "&~
0T# var strpasses = "#b" + numpasses.toString() + " passes#k"; 6P
n8f if (!passes) { 'Z&;uv,l cm.sendNext("对不起,你的通行证没有达到指定的数目。你需要给指定的通行证数目给我;应当的队员数目减去你的队长, " + strpasses + ",以明确的阶段。告诉您的队员解决问题,收集了通行证,并让他们给你."); 8' K0L(3[ cm.dispose(); ^V3v{>D> }
npp[@*~ else { W`z 0"
cm.sendNext("你们已经通过 " + strpasses + "! 恭喜大家完成本阶段的挑战! 我将打开传送门,带大家进入到下一关的挑战.因为本次任务有时间限制,请大家抓紧时间,祝大家好运!"); :q#K} / clear(1,eim,cm); xd-XWXc cm.givePartyExp(100, party); !}KqB8; cm.gainItem(4001008,-numpasses); 8FkFM^\1L cm.dispose(); &v!WVa? // TODO: make the shiny thing flash GiFXX } Q;u SWt<{ } ]3Dl)[R
} LfLFu9#:w } 6rN(_Oi- /*debug _:`!DIz~9} cm.sendNext("你好,这仅仅只是一个测试."); pS[KBQ"F cm.dispose();*/ ;AJTytE>% } Y+~g\z-]c else { // non leader 7=XL
!:P var eim = cm.getChar().getEventInstance(); T]T;$ pstring = "member1stpreamble" + cm.getChar().getId().toString(); %XTcP2pRJ preamble = eim.getProperty(pstring); J*fBZ.NO if (status == 0 && preamble == null) { 4~
z?" var qstring = "member1st" + cm.getChar().getId().toString(); ?!VIS>C( var question = eim.getProperty(qstring); &<pKx! if (question == null) { Pw0Ci // Select a random question to ask the player. 3WY$WRv var questionNum = Math.floor(Math.random() * questions.length); <3okiV=ox eim.setProperty(qstring, questionNum.toString()); ^Q+i=y{W } FG@-bV cm.sendNext("在这里,你需要收集#bcoupons#k击败同样数目的Ligators作为回答提问个别。"); Avlz=k1* C\ZkGX } m-/j1GZ* else if (status == 0) {// otherwise :-`7Q\c } // check for stage completed r\`+R" var complete = eim.getProperty(curMap.toString() + "stageclear"); _-~`03 `! if (complete != null) { F^k.is
cm.sendNext("请赶紧去下一关,们已经打开了"); <?Wti_ /M cm.dispose(); sJ
z@7. } DI|:p!Nx else { $2~\eG=u H // else correct/incorrect response to question here h*B|fy4K9U var qstring = "member1st" + cm.getChar().getId().toString(); ]aryV?!
6 var numcoupons = qanswers[parseInt(eim.getProperty(qstring))]; ULH0'@BJ var qcorr = cm.haveItem(4001007,(numcoupons+1)); sZ<9A Xk-E var enough = false; C0*@0~8$9 if (!qcorr) { // not too many sj?3M@l95W qcorr = cm.haveItem(4001007,numcoupons); AJ^#eY5 if (qcorr) { // just right C1EtoOv K cm.sendNext("这是正确的答案!对于你刚才收到了#bpass#k请交给你的队长。"); 76cG90!Z cm.gainItem(4001007,-numcoupons); JRMM? y cm.gainItem(4001008,1); Wu6<\^A enough = true; ;Xvp6.: } Mwp$ } '1^B+m if (!enough) { X^9d/}uTa cm.sendNext("很抱歉,你数量错误! 请仔细对照问题,再来给我正确数量的通行证吧."); fq[;%cr4 } X|D!VX>#! cm.dispose(); l`-bFmpA } 6$fYt&1 } &k7;DO else if (status == 1) { 4)>FS'= if (preamble == null) { BvrB:%_: var qstring = "member1st" + cm.getChar().getId().toString(); y! .J var question = parseInt(eim.getProperty(qstring)); 2F#q
I1 cm.sendNextPrev(questions[question]); bI.t<; } ^D`v3d else { // shouldn't happen, if it does then just dispose W1B)]IHc cm.dispose(); KOz(TZ?u } 8X|r4otn4 2`GE } so$(_W3E, else if (status == 2) { // preamble completed S& #U!#@ eim.setProperty(pstring,"done"); ((tv2 cm.dispose(); &UCsBqI
Y } W|:lVAP.|} else { // shouldn't happen, but still... |t
iUej eim.setProperty(pstring,"done"); // just to be sure !+)AeDc:j cm.dispose(); cRd0S*QN2 } G$0c'9d*( } 'J&f%kx" } // end first map scripts \#-W
< <GHYt#GIZ+ else if (2 <= curMap && 4 >= curMap) { r0d35 rectanglestages(cm); `U#55k9^5 } rNjn~c else if (curMap == 5) { // Final stage ZQ^r`W9_+ var eim = cm.getChar().getEventInstance(); B+C);WQ, var stage5done = eim.getProperty("5stageclear"); 8}X5o]Mv if (stage5done == null) { 3kcTE&1^ if (playerStatus) { // Leader ,lA.C%4au~ var map = eim.getMapInstance(cm.getChar().getMapId()); hQ6a~?f var passes = cm.haveItem(4001008,10); 6
5y+Z if (passes) { N,2s?Y_! // clear mbnV[ cm.sendNext("这是个任务,导致您在过去,奖金阶段。这是一个阶段,可让您打败怪物经常变得更轻松。您可以一套大量的时间来寻找尽可能多的,但您随时可以离开该阶段中。同样,祝贺结算的所有阶段。"); :l7U>~ o party = eim.getPlayers(); )irRO 8 cm.gainItem(4001008,-10); kF;DBN clear(5,eim,cm); rqPFU6 cm.givePartyExp(1500, party); m-^8W[r+_ cm.dispose(); >>aq,pH } K{b(J
Nd else { // not done yet )[mwP.T= cm.sendNext("欢迎您到第5次和最后阶段。步行游览地图,你可以找到一些怪物。打败所有的人,收集了#bthepasses#k,并请您给我。在队长下将收集,然后让他们给我一旦#bpasses#k聚集了。怪物可能是熟悉的你,但他们可能会远远超出你觉得,所以请小心。祝您好运!由于投诉,现在是强制性的要杀死所有的泥!做到这一点! "); :ISMPe3' } G7--v,R1x cm.dispose(); \I"Z2N>^z } 7XKY]|S,' else { // Members *_E|@y cm.sendNext("欢迎您到第5次和最后阶段。步行游览地图,你将能够找到一些怪物。打败他们所有,收集了#bpasses#k,并给予他们到您的队长。一旦您完成时,返回给我,收集您的奖励。 "); \0lnxLA cm.dispose(); "YdEE\ } K7Rpr.p } @/ZF` : else { // give rewards and warp out -V,v9h^ if (status == 0) { bY
}eUL2i4 cm.sendNext("难以置信!您通过了所有阶段进入了这一点。这里有一个小奖为您所做的出色工作。在您接受它,但是,请确保您的使用等物品栏要有空格 \r\n#b你将无法收到奖品,如果您有没有空格!#k"); ?Kvl!F!` } XNQAi (!GS if (status == 1) { YEkh3FrbwH getPrize(eim,cm); uZfnz
d)c cm.dispose(); ^Q*atU } V-n&oCS+f } L-B
<nl } Xc"&0v%;# // etc +w@M~?> else { // no map found |#1(Z-} cm.sendNext("无效的计划,这意味着在现阶段是不完整的."); X#3et' cm.dispose(); \AL
f$88>@ } h~{aGo } x+f2GA$ } 7eWk7&Xul /%_OW@ ? function clear(stage, eim, cm) { V[-jD8='3 eim.setProperty(stage.toString() + "stageclear","true"); qd"_Wu6aF= var packetef = MaplePacketCreator.showEffect("quest/party/clear"); (b'B%rFO var packetsnd = MaplePacketCreator.playSound("Party1/Clear"); dq[Mj5eC var packetglow = MaplePacketCreator.environmentChange("gate",2); J!'@
Bd var map = eim.getMapInstance(cm.getChar().getMapId()); yV_4?nh map.broadcastMessage(packetef); AU-n&uX map.broadcastMessage(packetsnd); :qChMU|Y6 map.broadcastMessage(packetglow); 1]orUF&_ var mf = eim.getMapFactory(); 54
> - map = mf.getMap(103000800 + stage); &Tl
0Pf var nextStage = eim.getMapInstance(103000800 + stage); vad12WrG< var portal = nextStage.getPortal("next00"); zIP6\u if (portal != null) { >.dWjb6t portal.setScriptName("kpq" + (stage+1).toString()); pv^O"Bs } \J+* else { // into final stage '*\|;l#1 //cm.sendNext("Initiating final stage monsters..."); "4vy lHIo // spawn monsters - removed since lerks patch makes -1 monsters spawn ONCE anyway "#( T // var map = eim.getMapInstance(103000804); s
w39\urf // map.spawnMonsters(monsterIds); ;<G=M2 } J|'7_0OAx } Ut$;ND.- >#,G}xf function failstage(eim, cm) { 6JKqn~0Kk var packetef = MaplePacketCreator.showEffect("quest/party/wrong_kor"); PJ cwH6m var packetsnd = MaplePacketCreator.playSound("Party1/Failed"); 5M9 I,
var map = eim.getMapInstance(cm.getChar().getMapId()); &WNf
M+ map.broadcastMessage(packetef); DW)2
m; map.broadcastMessage(packetsnd); 1hcjS
O } ^v.,y3 <SI}lQ'i function rectanglestages (cm) { hXqD<
? // debug makes these stages clear without being correct f!O{%ev var debug = false; /-#I_>:8' var eim = cm.getChar().getEventInstance(); v3v[[96p if (curMap == 2) { sdQkT# %y var nthtext = "2nd"; M33_ja +L var nthobj = "ropes"; @as"JAN var nthverb = "hang"; j"AU z)x var nthpos = "hang on the ropes too low"; >A@Y$. var curcombo = stage2combos; Q#nOJ(KV //var curtestcombo = [0,0,0,1]; z25m_[p2 var currect = stage2rects; dt2$`X18 var objset = [0,0,0,0];
sKlDu } y*D]Q`5cag else if (curMap == 3) { 5/po2V9) var nthtext = "3rd"; N^B o
.U0\ var nthobj = "platforms"; sP^R/z|Y var nthverb = "stand"; [s&$l G! var nthpos = "stand too close to the edges"; hKzSgYxP=t var curcombo = stage3combos;
ox+ 3U //var curtestcombo = [0,0,1,0,0]; >yY'7Ey var currect = stage3rects; 2h[85\4 var objset = [0,0,0,0,0]; uYE`"/h,1e } |&Ym@Jyj else if (curMap == 4) {
Z*-g[8FO var nthtext = "4th"; 0ez(A var nthobj = "barrels"; f4L`.~b'hb var nthverb = "stand"; TDd{.8qf var nthpos = "stand too close to the edges"; L#vI=GpL,r var curcombo = stage4combos; rj6#1kt //var curtestcombo = [0,1,0,0,0,0]; hEh}PX: var currect = stage4rects; oh$Q6G var objset = [0,0,0,0,0,0]; } :Z#}8 } Ur*6Gi6 if (playerStatus) { // leader SPp#f~%m if (status == 0) { vDH>H^9Y // check for preamble qhT@;W/X k?2k'2dy party = eim.getPlayers(); !9xp cQ> preamble = eim.getProperty("leader" + nthtext + "preamble"); JPGzrEaZ if (preamble == null) { bQ~j=\[r cm.sendNext("嗨。欢迎您到" + nthtext + " 的阶段。我旁边,你会看到一些" + nthobj + ". 在这些" + nthobj +", #b第3关,向您发送到下一阶段#k所有您需要做的是有#b的队员找到正确的" + nthobj + "和" + nthverb +"上.#k\r\nBUT ,但这不能作为答案如果您" + nthobj + ";请靠近中间的" + nthobj +"算作一个正确的答案。此外,只有3名队员是不被允许的" + nthobj + " 。一旦" + nthverb +"技术对他们来说,队长必须双击我来检查,看看答案的正确与否#k现在,找到正确的" + nthobj + "到" + nthverb +"对!"); 271&i eim.setProperty("leader" + nthtext + "preamble","done"); +[5.WC7J var sequenceNum = Math.floor(Math.random() * curcombo.length);
}1>[ eim.setProperty("stage" + nthtext + "combo",sequenceNum.toString()); (PfqRk1Y cm.dispose(); %;.;>Y(- } T0&f8 else { !qX_I db\ // otherwise C-iK$/U // check for stage completed sJ]taY ou var complete = eim.getProperty(curMap.toString() + "stageclear"); i86>] if (complete != null) { K~22\G` var mapClear = curMap.toString() + "stageclear"; 6ND`l5
eim.setProperty(mapClear,"true"); // Just to be sure ei
rzYt cm.sendNext("Please hurry on to the next stage, the portal opened!"); To?W?s } bT&: fHc // check for people on ropes WJ_IuX51' else { :]J Ye* // check for people on ropes(objset) vap,y $C var totplayers = 0; `X3^fg for (i = 0; i < objset.length; i++) { +|tC'gCnV for (j = 0; j < party.size(); j++) { q7"7U=W0 var present = currect.contains(party.get(j).getPosition()); f%V4pzOc" if (present) { _Gu-
uuy objset = objset + 1; A'2w>8 totplayers = totplayers + 1; {#)0EzV6 } Uh][@35 p } 6P';DB } e^O(e // compare to correct =C~/7N,lW] // first, are there 3 players on the objset? tO0!5#-VR if (totplayers == 3 || debug) { .|/~op4; var combo = curcombo[parseInt(eim.getProperty("stage" + nthtext + "combo"))]; TC<@e<-%Sq // debug 4q<=K= F // combo = curtestcombo; 1AU#%wIEP var testcombo = true; Zfyo-Wk for (i = 0; i < objset.length; i++) { R+Y4| if (combo != objset) L:9F:/G testcombo = false; {l |E:>Q2 } H/Llj.-jg if (testcombo || debug) { !E T~KL! // do clear < P`u} clear(curMap,eim,cm); 4Z/f@ZD var exp = (Math.pow(2,curMap) * 50); .jj$ Kh q] cm.givePartyExp(exp, party); P{u0ftyX} cm.dispose(); ;& |