| | |
废弃都市组队任务NPC脚本,从XX端提取出来的(供高手研究) 🔔 管理提醒: 本帖被 大粥粥 执行压帖操作(2013-06-03)
⚠ 提醒:该帖发布已超过3年,信息资源可能已失效,资源谨慎下载以免浪费积分。反馈请前往站务版块。
该隐藏帖已经发布超过60天,已自动取消隐藏功能,无需回复即可查看!importPackage(net.貌似会被和谐自己打上去.odinms.tools); q*?LXKi importPackage(net.貌似会被和谐自己打上去.odinms.server.life); HeNg<5v%Y importPackage(java.awt); ISa2|v;M <k6Zx-6X< var status; -+#\WB{AI var curMap; wC`])z}bT var playerStatus; { >bw:^F var chatState; K\5@yqy5 var questions = Array("首先给你出一个问题!请仔细听好:作为一名战士,他在1转的时候需要达到的等级是多少,那么请交给我同样数量的通行证。", d*3k]Ie%5f "首先给你出一个问题! 请仔细听好:作为一名战士,他在1转的时候需要力量的能力值最小是多少点,那么请交给我同样数量的通行证。", Z-*L[ "首先给你出一个问题!请仔细听好: 作为一名法师,他在1转的时候需要智力的能力值最小是多少点,那么请交给我同样数量的通行证。", :JxShF:M "首先给你出一个问题!请仔细听好: 作为一名弓箭手,他在1转的时候需要敏捷的能力值最小是多少点,那么请交给我同样数量的通行证。", j2=jD G "首先给你出一个问题!请仔细听好: 作为一名飞侠,他在1转的时候需要敏捷的能力值最小是多少点,那么请交给我同样数量的通行证。", *s S7^OZ* "首先给你出一个问题!请仔细听好: 所有职业在2转的时候需要达到的等级是多少,那么请交给我同样数量的通行证。"); xQ^zX7 var qanswers = Array(10, 35, 20, 25, 25, 30); ^4_. 5~( var party; ;
R&wr_% var preamble; k^S=i_ U var stage2rects = Array(Rectangle(-755,-132,4,218),Rectangle(-721,-340,4,166), AnP7KSN[\ Rectangle(-586,-326,4,150),Rectangle(-483,-181,4,222)); E
Rqr0>x var stage2combos = Array(Array(0,1,1,1),Array(1,0,1,1),Array(1,1,0,1),Array(1,1,1,0)); +i4S^B/8i var stage3rects = Array(Rectangle(608,-180,140,50),Rectangle(791,-117,140,45), a 5:YP Rectangle(958,-180,140,50),Rectangle(876,-238,140,45), k)1K6ug Rectangle(702,-238,140,45)); *(PGLYK var stage3combos = Array(Array(0,0,1,1,1),Array(0,1,0,1,1),Array(0,1,1,0,1), "qIO,\3T Array(0,1,1,1,0),Array(1,0,0,1,1),Array(1,0,1,0,1), nRPy)L{ Array(1,0,1,1,0),Array(1,1,0,0,1),Array(1,1,0,1,0), &^{HD }/{b Array(1,1,1,0,0)); Q(T)s var stage4rects = Array(Rectangle(910,-236,35,5),Rectangle(877,-184,35,5), &LwR9\sh Rectangle(946,-184,35,5),Rectangle(845,-132,35,5), Vqb4
MWW Rectangle(910,-132,35,5),Rectangle(981,-132,35,5)); Tc T%[h! var stage4combos = Array(Array(0,0,0,1,1,1),Array(0,0,1,0,1,1),Array(0,0,1,1,0,1),
MHpPb{^ Array(0,0,1,1,1,0),Array(0,1,0,0,1,1),Array(0,1,0,1,0,1), 8uchp Array(0,1,0,1,1,0),Array(0,1,1,0,0,1),Array(0,1,1,0,1,0), SLD%8:Zn Array(0,1,1,1,0,0),Array(1,0,0,0,1,1),Array(1,0,0,1,0,1), l~!\<, ! Array(1,0,0,1,1,0),Array(1,0,1,0,0,1),Array(1,0,1,0,1,0), jL6u#0 Array(1,0,1,1,0,0),Array(1,1,0,0,0,1),Array(1,1,0,0,1,0), -s,^_p{H Array(1,1,0,1,0,0),Array(1,1,1,0,0,0)); pD eqBO var eye = 9300002; nQa5e_q!u var necki = 9300000; )d2 <;c var slime = 9300003; zVd2kuI&? var monsterIds = Array(eye, eye, eye, gieTkZ necki, necki, necki, necki, necki, necki,
B ;9^ slime); cX>
a>U var prizeIdScroll = Array(2040502,2040505,2040514,2040517, // overall w\:-lX w 2040802, 2040805, // glove 6
GO7[?U< 2040002, 2040402, 2040602, 2040902, // armor def (top/bottom/shield/hat) UMma|9l(i 2044502, 2044702, 2044602, 2043302, // weapon atk u-qg9qXJb 2043102, 2043202, 2043002, 2044402, (es+VI2!&C 2044302, 2044102, 2044202, 2044002); wbyY?tH var prizeIdUse = Array( 2000001, 2000002, 2000003, 2000006, // orange white blue manalixir pots J;Xh{3[vO 2000004, 2000005, 2001000, 2001001, // elix/p.elix, watermelon/sundae +5JCbT@y 2002006, 2002007, 2002008, 2002010); // warrior/sniper/magic/speed pills 8&IsZPq%l var prizeQtyUse = Array(100, 75, 100, 45, cWA9 n}Z 20, 10, 35, 30, e>#*$4tg 10, 10, 10, 10); %r=uS.+hrF var prizeIdEquip = Array(1032000, 1032009, 1032004, 1032005, // 20-25 earrings &<_*yl p 1032006, 1032007, 1032010, // 30 earrings 2+s_*zM- 1032002, 1032008, // 35 earrings e_kP=|u)g 1002026, 1002089, 1002090); // bamboo hats _rR+u56y- var prizeIdEtc = Array( 4010000, 4010001, 4010002, 4010003, // Mineral ores sbjAZzrX2i 4010004, 4010005, 4010006, // Mineral ores + gold `M6!V 4020000, 4020001, 4020002, 4020003, // Jewel ores D}>pl8ke~g 4020004, 4020005, 4020006, // Jewel ores <IC=x(T 4020007, 4020007, 4003000); // Diamond/BC/screws 1j`-lD var prizeQtyEtc = Array(15, 15, 15, 15, `|XE B 15, 15, 8, ug.mY= n' 15, 15, 15, 15, _*>bf G 15, 15, 15, E!8FZv8 8, 5, 20); J{
P<^<m_ E5~HH($b >8"oO[U5> function start() { !\'7j-6 status = -1; ra0:Lg' mapId = cm.getChar().getMapId(); 0k@4;BY u if (mapId == 103000800) *!$4 curMap = 1; 1`^l8V( else if (mapId == 103000801) ryB^$Kh,, curMap = 2; hq6B
pE else if (mapId == 103000802) o8-BTq8 curMap = 3; AE={P*g else if (mapId == 103000803) r/$+'~apTk curMap = 4; [2pp)wq else if (mapId == 103000804) ,^pM]+NF| curMap = 5; mSp- playerStatus = cm.isLeader(); '_lyoVP preamble = null; Kyt.[" p action(1, 0, 0); {0nZ;1,m } puF'w:I( 9%S{fd\# function action(mode, type, selection) { XZ EawJ0 if (mode == -1) { Z3g6?2w6 cm.dispose(); : ^F+mQN } else { *p`0dvXG2 if (mode == 0 && status == 0) { 3l_Ko%qS cm.dispose(); 5|my}.TR return; w},' 1 } IL 'i7p if (mode == 1) ig4wwd@| status++; l"5$6h else e6z;;C@'G status--; r Lg(J|^ if (curMap == 1) { // First Stage. ZR.1SA0x?O if (playerStatus) { // party leader Nwr.mtvh if (status == 0) { d rnqX-E; var eim = cm.getChar().getEventInstance(); h$F;=YS party = eim.getPlayers(); 11glFe preamble = eim.getProperty("leader1stpreamble"); |Zr5I"; if (preamble == null) { 9f+|m9~2 cm.sendNext("Hello,欢迎您的第一阶段。环顾四周,你会看到很多鳄鱼游荡。当你打败他们,他们就会咳嗽了#bpasses#k队长应该对我说话,收集了相同数量的#bpasses#k为回答这个问题我给他们。\r\n如果你收集的数额#bpasses#k,我给了#bpass#k该成员。当所有的队员聚集了#bpasses#k和给他们的队长,队长将交出#bpasses#k对我来说,清理阶段的进程。更快你照顾的阶段,更多的阶段就可以挑战。因此,我建议你照顾快速和迅速。那么,最好的你好运。"); (%}T\~`1z# eim.setProperty("leader1stpreamble","done"); ,24NMv7 cm.dispose(); ZM K"3c9 } kTb.I;S else { // check how many they have compared to number of party members L$=@j_V2 // check for stage completed )G\23P var complete = eim.getProperty(curMap.toString() + "stageclear"); (o~f6pNB, if (complete != null) { [ R+zzl&Zw cm.sendNext("请赶紧去下一关,们已经打开了"); 7F5t& cm.dispose(); O$k;p<?M } !rZO~a0 else { ,d(F|5M: var numpasses = party.size()-1; nd3=\.(P var passes = cm.haveItem(4001008,numpasses); (~:k70V5 var strpasses = "#b" + numpasses.toString() + " passes#k"; uSLO"\zysX if (!passes) { VUC cm.sendNext("对不起,你的通行证没有达到指定的数目。你需要给指定的通行证数目给我;应当的队员数目减去你的队长, " + strpasses + ",以明确的阶段。告诉您的队员解决问题,收集了通行证,并让他们给你."); )xX(Et6+` cm.dispose(); h!5^d!2, } >J_{mU else { %C\Q{_ AS cm.sendNext("你们已经通过 " + strpasses + "! 恭喜大家完成本阶段的挑战! 我将打开传送门,带大家进入到下一关的挑战.因为本次任务有时间限制,请大家抓紧时间,祝大家好运!"); %jdV8D#Q clear(1,eim,cm); >ygyPl
;1s cm.givePartyExp(100, party); (#Z2 cm.gainItem(4001008,-numpasses); #~3x^4Y cm.dispose(); BIEc4k5( // TODO: make the shiny thing flash K QXw~g? } 3UU]w`At } Y]/(R"-2G } '(mJ*Eb } WMnR+?q /*debug IMIZ#/ cm.sendNext("你好,这仅仅只是一个测试."); (JH LWAH cm.dispose();*/ t
j&+HC }
F' s($n else { // non leader (f#QETiV var eim = cm.getChar().getEventInstance(); SweaERl pstring = "member1stpreamble" + cm.getChar().getId().toString(); /=w9bUj5v preamble = eim.getProperty(pstring); ?BT\)@h if (status == 0 && preamble == null) { fu?5gzT+b var qstring = "member1st" + cm.getChar().getId().toString(); 5!$m3j_,]? var question = eim.getProperty(qstring); b Gq0k& if (question == null) { ,Xs%Cg_Ig // Select a random question to ask the player. C7[ge& var questionNum = Math.floor(Math.random() * questions.length); )f1<-a"D| eim.setProperty(qstring, questionNum.toString()); 4!p~Mr[E } *vc=>AEc cm.sendNext("在这里,你需要收集#bcoupons#k击败同样数目的Ligators作为回答提问个别。"); sDT(3{)L7 F`SOF O } 8J{I6nPF else if (status == 0) {// otherwise -}`ES] // check for stage completed 1@q~(1-o var complete = eim.getProperty(curMap.toString() + "stageclear"); TU&6\]yF_ if (complete != null) { m^rgzx19? cm.sendNext("请赶紧去下一关,们已经打开了"); F]]np&UV. cm.dispose(); W.iL!x.B@ } R#i|n<x else { 0@d )DLM? // else correct/incorrect response to question here jY EB`& var qstring = "member1st" + cm.getChar().getId().toString(); DnvJx!#R var numcoupons = qanswers[parseInt(eim.getProperty(qstring))]; }M'h5x var qcorr = cm.haveItem(4001007,(numcoupons+1)); |};]^5s9 var enough = false; lwYk`' if (!qcorr) { // not too many Ev* b qcorr = cm.haveItem(4001007,numcoupons); %ANo^~8 if (qcorr) { // just right #mlTN3 cm.sendNext("这是正确的答案!对于你刚才收到了#bpass#k请交给你的队长。"); i/9QOw~ cm.gainItem(4001007,-numcoupons); AN7WMX cm.gainItem(4001008,1); Ug_5INK enough = true; Q];gC{I } $C0NvJf } FL% GW: if (!enough) { \?c0XD cm.sendNext("很抱歉,你数量错误! 请仔细对照问题,再来给我正确数量的通行证吧."); >8Wvz.Nq/ } ?jbE3fW cm.dispose(); ]y3V^W# } n)uvN } Yr@_X else if (status == 1) { pW7vY)hj if (preamble == null) { =A={Dpv[> var qstring = "member1st" + cm.getChar().getId().toString(); z"*X/T var question = parseInt(eim.getProperty(qstring)); [RCUP. cm.sendNextPrev(questions[question]); XIh2Y\33ys } ;"SnCBt:> else { // shouldn't happen, if it does then just dispose ez=$ ]cln cm.dispose(); <8Ek-aNNt } f I>>w)5 WLW'. } Z.Lm[$/edn else if (status == 2) { // preamble completed kKVd4B[#* eim.setProperty(pstring,"done"); fN~kdm. cm.dispose(); C=(-oI n
} ^0"NcOzzxl else { // shouldn't happen, but still... \bYuAE1q eim.setProperty(pstring,"done"); // just to be sure DrLNY"Zq cm.dispose();
YW"}hU } bhe~ekb } :bI4HXT3 } // end first map scripts t5mI)u .NcoST9a else if (2 <= curMap && 4 >= curMap) { *#1&IJPI rectanglestages(cm); t1?e$s } wH= else if (curMap == 5) { // Final stage q4{Pm $OW var eim = cm.getChar().getEventInstance(); `)e;bLP var stage5done = eim.getProperty("5stageclear"); G7 > if (stage5done == null) { vl*CU"4 if (playerStatus) { // Leader #&0)kr66 var map = eim.getMapInstance(cm.getChar().getMapId()); A!Zjcp| var passes = cm.haveItem(4001008,10); <$wh@$PK if (passes) { fiOc;d8 // clear 3{RuR+yi cm.sendNext("这是个任务,导致您在过去,奖金阶段。这是一个阶段,可让您打败怪物经常变得更轻松。您可以一套大量的时间来寻找尽可能多的,但您随时可以离开该阶段中。同样,祝贺结算的所有阶段。"); r/1:!Vu( party = eim.getPlayers(); "}Kvx{L8 cm.gainItem(4001008,-10); dl;~-'0 clear(5,eim,cm); i)f3\?,, cm.givePartyExp(1500, party); Cj%SW <v| cm.dispose(); #P *%FgROl } W/ZmG]sZE else { // not done yet S>}jsP:V cm.sendNext("欢迎您到第5次和最后阶段。步行游览地图,你可以找到一些怪物。打败所有的人,收集了#bthepasses#k,并请您给我。在队长下将收集,然后让他们给我一旦#bpasses#k聚集了。怪物可能是熟悉的你,但他们可能会远远超出你觉得,所以请小心。祝您好运!由于投诉,现在是强制性的要杀死所有的泥!做到这一点! "); 7Ipt~K} } 9C}Ie$\ cm.dispose(); 3xef>Xv= } vpXC5|9U else { // Members (Z5=GJM?$ cm.sendNext("欢迎您到第5次和最后阶段。步行游览地图,你将能够找到一些怪物。打败他们所有,收集了#bpasses#k,并给予他们到您的队长。一旦您完成时,返回给我,收集您的奖励。 "); :,"dno7OQ cm.dispose(); r@FdxsCnGM } H+vONg } Mf7Q+_! else { // give rewards and warp out BT;hW7){9 if (status == 0) { }qmBn`3R cm.sendNext("难以置信!您通过了所有阶段进入了这一点。这里有一个小奖为您所做的出色工作。在您接受它,但是,请确保您的使用等物品栏要有空格 \r\n#b你将无法收到奖品,如果您有没有空格!#k"); <GPL8D } E@TX>M-& if (status == 1) { J"QXu M getPrize(eim,cm); $V-]DD%Y cm.dispose(); O%5cMz?eU } L0uvRge } r9z_8#cR } 6~zR(HzV{ // etc t^ LXGQ else { // no map found j)ZvlRi, cm.sendNext("无效的计划,这意味着在现阶段是不完整的."); 7IW:,=Zk8+ cm.dispose(); ;tTM3W-h } ^@ s!"c } pxjN\q } \eF5* {9 WsRG>w3" function clear(stage, eim, cm) { (UDF^ eim.setProperty(stage.toString() + "stageclear","true"); D}'g4Ag var packetef = MaplePacketCreator.showEffect("quest/party/clear"); *%1:="W*| var packetsnd = MaplePacketCreator.playSound("Party1/Clear"); )~xL_yW_X var packetglow = MaplePacketCreator.environmentChange("gate",2); Ol H{! var map = eim.getMapInstance(cm.getChar().getMapId()); H|;6K`O_ map.broadcastMessage(packetef); :0IxnK(r& map.broadcastMessage(packetsnd); },'hhj]O map.broadcastMessage(packetglow); q"ba~@<BEl var mf = eim.getMapFactory(); g0Qg]F5D~ map = mf.getMap(103000800 + stage); =2uE\6Fl, var nextStage = eim.getMapInstance(103000800 + stage); 1rh\X[@ var portal = nextStage.getPortal("next00"); kRs[H xI3 if (portal != null) { 5r"BavA portal.setScriptName("kpq" + (stage+1).toString());
hh<5?1 } '`?\CXX else { // into final stage !t "uNlN //cm.sendNext("Initiating final stage monsters..."); J XKps#,(# // spawn monsters - removed since lerks patch makes -1 monsters spawn ONCE anyway -B:Z(]3#\ // var map = eim.getMapInstance(103000804); %AW5\ EX // map.spawnMonsters(monsterIds); 4NN-'Z>a } "
]
0ER } mE)65@3% =o\:@I[ function failstage(eim, cm) { 75i
M_e\ var packetef = MaplePacketCreator.showEffect("quest/party/wrong_kor"); QwXM<qG* var packetsnd = MaplePacketCreator.playSound("Party1/Failed"); w,TyV%b[_ var map = eim.getMapInstance(cm.getChar().getMapId()); xb\(>7M6Y map.broadcastMessage(packetef); c:I1XC map.broadcastMessage(packetsnd); ANtp7ad } ^-{ 1]G: Yf.H$L function rectanglestages (cm) { 6GX'&z // debug makes these stages clear without being correct Sxf|gDC var debug = false; ^@l_K +T var eim = cm.getChar().getEventInstance(); qd{o64;| if (curMap == 2) { rubqk4 var nthtext = "2nd"; /]%,C var nthobj = "ropes"; HX\@Qws var nthverb = "hang"; GlP
[: var nthpos = "hang on the ropes too low"; ya5a7 var curcombo = stage2combos; >"?HbR9 //var curtestcombo = [0,0,0,1]; A[J9v{bD var currect = stage2rects; & tQHxiDX var objset = [0,0,0,0]; '7o'u] } nV 38Mj2U else if (curMap == 3) { 2+"=i/8 var nthtext = "3rd"; Pd!;z=I var nthobj = "platforms"; MK9?81xd var nthverb = "stand"; UXD?gK1 var nthpos = "stand too close to the edges"; yq+<pfaqvK var curcombo = stage3combos; 1<A+.W //var curtestcombo = [0,0,1,0,0]; Ht+ng var currect = stage3rects; 'D%No!+Py var objset = [0,0,0,0,0]; f^](D'L?D } (y|{^@ else if (curMap == 4) { ^y'xcq var nthtext = "4th"; Ug^C}".& var nthobj = "barrels"; ^ L'8: var nthverb = "stand"; W>
.O"Ri var nthpos = "stand too close to the edges"; h95C4jBE var curcombo = stage4combos; Pc{D,/EpR //var curtestcombo = [0,1,0,0,0,0]; B[ae<V0k var currect = stage4rects; SF+ ^dPwj var objset = [0,0,0,0,0,0]; !jY/}M~F1 } udtsq"U_% if (playerStatus) { // leader Jpg_$~k if (status == 0) { *LcLYxWo // check for preamble SdC505m0* EceZ1b party = eim.getPlayers(); N%;Q[*d@/ preamble = eim.getProperty("leader" + nthtext + "preamble"); 8=gr F if (preamble == null) { * 2[&26D cm.sendNext("嗨。欢迎您到" + nthtext + " 的阶段。我旁边,你会看到一些" + nthobj + ". 在这些" + nthobj +", #b第3关,向您发送到下一阶段#k所有您需要做的是有#b的队员找到正确的" + nthobj + "和" + nthverb +"上.#k\r\nBUT ,但这不能作为答案如果您" + nthobj + ";请靠近中间的" + nthobj +"算作一个正确的答案。此外,只有3名队员是不被允许的" + nthobj + " 。一旦" + nthverb +"技术对他们来说,队长必须双击我来检查,看看答案的正确与否#k现在,找到正确的" + nthobj + "到" + nthverb +"对!"); dvxD{UH eim.setProperty("leader" + nthtext + "preamble","done"); C&D]!ZvF var sequenceNum = Math.floor(Math.random() * curcombo.length); AbUU#C7 eim.setProperty("stage" + nthtext + "combo",sequenceNum.toString()); Y<3s_ cm.dispose(); Tj*o [2mD } ASY
uZ else { ,'5P[- // otherwise ju0]~, // check for stage completed ;d G.oUk= var complete = eim.getProperty(curMap.toString() + "stageclear"); /b6Y~YbgU if (complete != null) { % \N.m/5 var mapClear = curMap.toString() + "stageclear"; q_>DX,A eim.setProperty(mapClear,"true"); // Just to be sure bL_s[-7 cm.sendNext("Please hurry on to the next stage, the portal opened!"); 7p3 ;b"' } -aG( Yx // check for people on ropes d|TRP,y else { F3jrJ+nJ // check for people on ropes(objset) Ek_k_! var totplayers = 0; 2g-'.w for (i = 0; i < objset.length; i++) { &=fBqod for (j = 0; j < party.size(); j++) { OP
|{R7uC var present = currect.contains(party.get(j).getPosition()); yd"|HHx if (present) { qM3^)U2 objset = objset + 1; gJi11^PK totplayers = totplayers + 1; J9ovy>G } 3Zg=ZnF } Uo(\1&? } CvmZW$5Yo // compare to correct WhE5u&` // first, are there 3 players on the objset? R4!qm0Cd if (totplayers == 3 || debug) { S$W
*i@x? var combo = curcombo[parseInt(eim.getProperty("stage" + nthtext + "combo"))]; QNFA#`H // debug 7}Z.g9< // combo = curtestcombo; OH5
kT$ var testcombo = true; FMY
r6/I for (i = 0; i < objset.length; i++) { mmY~V:,Kd if (combo != objset) .Y'kDuUu testcombo = false; ~B>I?j } )ZzwD] if (testcombo || debug) { COv#dOw // do clear F<BhN+U clear(curMap,eim,cm); +f\tqucI3 var exp = (Math.pow(2,curMap) * 50); ~U*2h =] cm.givePartyExp(exp, party); o"[P++qd cm.dispose(); ]w%7/N0R } H(Mlf else { // wrong 3Zsqx=w // do wrong 6_;3 failstage(eim,cm); 7qon:]b4 cm.dispose(); }@@1N3nnxV } ./kmI#gaV }
&N0W! else { M7yJ2u <Ty // oops, it doesn't display fail if you're not on the ropes t(lTXG // failstage(eim,cm); @^Mn
PM if (debug) { 598xV|TON var outstring = "Objects contain:" W#e:r z8= for (i = 0; i < objset.length; i++) { }llzO outstring += "\r\n" + (i+1).toString() + ". " + objset.toString(); Bp^>R`, } v0X5`VV cm.sendNext(outstring); [#j|TBMHM } vb: '%^v else <| |Lj cm.sendNext("看来你还没有发现3个" + nthobj + "呀。请考虑一个不同的组合" + nthpos + " 。只有3个可以" + nthverb+ "上" + nthobj + " ,如果你“ + nthpos + ”它可能不能算作一个答案,所以请记住这一点。继续下去!"); E1 *\)q *[
Wh9 ,H cm.dispose(); HT
A-L>Cee } OI %v>ns } )U<4ul } )[9L|o5D // just in case. 'Twi
@I } `]5XY8^kI else { aEXV^5;,pJ var complete = eim.getProperty(curMap.toString() + "stageclear"); QC4_\V>[ if (complete != null) { qfC9 {gu var target = eim.getMapInstance(103000800 + curMap); .^@+$} var targetPortal = target.getPortal("st00"); 'BAe>r_Pn cm.getChar().changeMap(target, targetPortal); s`C#=l4 } _< |