| | |
废弃都市组队任务NPC脚本,从XX端提取出来的(供高手研究) 🔔 管理提醒: 本帖被 大粥粥 执行压帖操作(2013-06-03)
⚠ 提醒:该帖发布已超过3年,信息资源可能已失效,资源谨慎下载以免浪费积分。反馈请前往站务版块。
该隐藏帖已经发布超过60天,已自动取消隐藏功能,无需回复即可查看!importPackage(net.貌似会被和谐自己打上去.odinms.tools); tnBCO%uG importPackage(net.貌似会被和谐自己打上去.odinms.server.life); ~gQYgv<7 importPackage(java.awt); C7AD1rl 2qV oe}F var status; }}rp/16 var curMap; f;OB"p var playerStatus; =HV${+K=~ var chatState; O0_RW`69 var questions = Array("首先给你出一个问题!请仔细听好:作为一名战士,他在1转的时候需要达到的等级是多少,那么请交给我同样数量的通行证。", zK_P3rLsS "首先给你出一个问题! 请仔细听好:作为一名战士,他在1转的时候需要力量的能力值最小是多少点,那么请交给我同样数量的通行证。", / $s(OFbi# "首先给你出一个问题!请仔细听好: 作为一名法师,他在1转的时候需要智力的能力值最小是多少点,那么请交给我同样数量的通行证。", py%~Qz% "首先给你出一个问题!请仔细听好: 作为一名弓箭手,他在1转的时候需要敏捷的能力值最小是多少点,那么请交给我同样数量的通行证。", X(.[rC> "首先给你出一个问题!请仔细听好: 作为一名飞侠,他在1转的时候需要敏捷的能力值最小是多少点,那么请交给我同样数量的通行证。", C1l'< "首先给你出一个问题!请仔细听好: 所有职业在2转的时候需要达到的等级是多少,那么请交给我同样数量的通行证。"); f`}/^*D var qanswers = Array(10, 35, 20, 25, 25, 30); " j_cI-@6 var party; /C<p^#g9. var preamble; &sYxe:H var stage2rects = Array(Rectangle(-755,-132,4,218),Rectangle(-721,-340,4,166), @w(|d<5l:L Rectangle(-586,-326,4,150),Rectangle(-483,-181,4,222)); KLuOg$i var stage2combos = Array(Array(0,1,1,1),Array(1,0,1,1),Array(1,1,0,1),Array(1,1,1,0)); r=7!S8' var stage3rects = Array(Rectangle(608,-180,140,50),Rectangle(791,-117,140,45), l&kZ6lZ Rectangle(958,-180,140,50),Rectangle(876,-238,140,45), e^x%d[sU Rectangle(702,-238,140,45)); 5eyB\>k, var stage3combos = Array(Array(0,0,1,1,1),Array(0,1,0,1,1),Array(0,1,1,0,1), M
'%zA;Wl Array(0,1,1,1,0),Array(1,0,0,1,1),Array(1,0,1,0,1), W|E % Array(1,0,1,1,0),Array(1,1,0,0,1),Array(1,1,0,1,0),
M_%c9g@x Array(1,1,1,0,0)); qu'D"0 var stage4rects = Array(Rectangle(910,-236,35,5),Rectangle(877,-184,35,5), O'@[f{ Rectangle(946,-184,35,5),Rectangle(845,-132,35,5), K3WaBcm Rectangle(910,-132,35,5),Rectangle(981,-132,35,5)); XWNo)#_3 var stage4combos = Array(Array(0,0,0,1,1,1),Array(0,0,1,0,1,1),Array(0,0,1,1,0,1), mfffOG Array(0,0,1,1,1,0),Array(0,1,0,0,1,1),Array(0,1,0,1,0,1), cF EO} Array(0,1,0,1,1,0),Array(0,1,1,0,0,1),Array(0,1,1,0,1,0), Jk7 Am-.0 Array(0,1,1,1,0,0),Array(1,0,0,0,1,1),Array(1,0,0,1,0,1), 8<ev5af Array(1,0,0,1,1,0),Array(1,0,1,0,0,1),Array(1,0,1,0,1,0), paMK]- Array(1,0,1,1,0,0),Array(1,1,0,0,0,1),Array(1,1,0,0,1,0), <c<!|<x Array(1,1,0,1,0,0),Array(1,1,1,0,0,0)); (c"!&&S^ = var eye = 9300002; sO(4F8cpU var necki = 9300000; *5hbD-a: var slime = 9300003; C9""sVs var monsterIds = Array(eye, eye, eye, D
dCcsYm, necki, necki, necki, necki, necki, necki, @SaxM4 slime); ~6O~Fth var prizeIdScroll = Array(2040502,2040505,2040514,2040517, // overall 'n\P S,[1R 2040802, 2040805, // glove p*T[(\8{n 2040002, 2040402, 2040602, 2040902, // armor def (top/bottom/shield/hat) 5}! 36SO\ 2044502, 2044702, 2044602, 2043302, // weapon atk L(k`1E 2043102, 2043202, 2043002, 2044402, Z.x]6 2044302, 2044102, 2044202, 2044002); %]4=D)Om var prizeIdUse = Array( 2000001, 2000002, 2000003, 2000006, // orange white blue manalixir pots Aeo=m}C; 2000004, 2000005, 2001000, 2001001, // elix/p.elix, watermelon/sundae LCzeE7x 2002006, 2002007, 2002008, 2002010); // warrior/sniper/magic/speed pills i]4n YYS var prizeQtyUse = Array(100, 75, 100, 45, '{.8tT?tJ 20, 10, 35, 30, 5')]Y1J 10, 10, 10, 10); XIdC1%pr; var prizeIdEquip = Array(1032000, 1032009, 1032004, 1032005, // 20-25 earrings ?<\2}1 1032006, 1032007, 1032010, // 30 earrings g>gf-2%Uo 1032002, 1032008, // 35 earrings Nz*,m'-1e 1002026, 1002089, 1002090); // bamboo hats -II03 S1 var prizeIdEtc = Array( 4010000, 4010001, 4010002, 4010003, // Mineral ores {.;qz4d` 4010004, 4010005, 4010006, // Mineral ores + gold vSv1FZu* 4020000, 4020001, 4020002, 4020003, // Jewel ores >Y+m54EE 4020004, 4020005, 4020006, // Jewel ores .N#KW 4020007, 4020007, 4003000); // Diamond/BC/screws zuFPG{^\# var prizeQtyEtc = Array(15, 15, 15, 15, lF40n4} 15, 15, 8, IGlyx'\_ 15, 15, 15, 15, ^j10
f$B 15, 15, 15, {9Ok^O 8, 5, 20); vCK+v
r! knpdECq&k AGO"), function start() { tGbx/$Y status = -1; )iK:BL*Nw mapId = cm.getChar().getMapId(); BJ'pe[Xa5 if (mapId == 103000800) .yD
6$!6 curMap = 1; F!4V!VWA} else if (mapId == 103000801) <$a-.C5 curMap = 2; hd(TKFL^y else if (mapId == 103000802) Y7I\<JG< curMap = 3; a<E9@ else if (mapId == 103000803) d%nX;w,
curMap = 4; Dbq/t^ else if (mapId == 103000804) } *C curMap = 5; e"{"g[b/7 playerStatus = cm.isLeader(); wa`c3PQGu preamble = null; %XZhSmlf action(1, 0, 0); 6R$Yh0% } c6h+8QS .j>MsQP#\C function action(mode, type, selection) { OA} r*Wz if (mode == -1) { c^puz2 cm.dispose(); O?"uM >r } else { -XK;B--c if (mode == 0 && status == 0) { :)T*:51{# cm.dispose(); p&)d]oV> return; EAxdF
u } :V@)A/}uk if (mode == 1) cq3Z}Cp status++; /EegP@[ else .=d40m status--; W! Hn`T if (curMap == 1) { // First Stage. )~ &gBX if (playerStatus) { // party leader !#*#ji xo if (status == 0) { @t*D<B$ var eim = cm.getChar().getEventInstance(); ukc
7Z
OQ party = eim.getPlayers(); $e,r>tgD preamble = eim.getProperty("leader1stpreamble"); gSj0+| if (preamble == null) { T(]*jaB cm.sendNext("Hello,欢迎您的第一阶段。环顾四周,你会看到很多鳄鱼游荡。当你打败他们,他们就会咳嗽了#bpasses#k队长应该对我说话,收集了相同数量的#bpasses#k为回答这个问题我给他们。\r\n如果你收集的数额#bpasses#k,我给了#bpass#k该成员。当所有的队员聚集了#bpasses#k和给他们的队长,队长将交出#bpasses#k对我来说,清理阶段的进程。更快你照顾的阶段,更多的阶段就可以挑战。因此,我建议你照顾快速和迅速。那么,最好的你好运。"); 0*oavY* eim.setProperty("leader1stpreamble","done"); l%?4L/J)# cm.dispose(); pjoyMHWK } c5 AaUza else { // check how many they have compared to number of party members 4PkKL/E // check for stage completed esQ`6i var complete = eim.getProperty(curMap.toString() + "stageclear"); K)+]as if (complete != null) { C+%eT&OO cm.sendNext("请赶紧去下一关,们已经打开了"); {{>,c}O / cm.dispose(); @,c`#,F/ } }QQ 7jE else { n6M #Xc'JA var numpasses = party.size()-1; x(4"!# var passes = cm.haveItem(4001008,numpasses); ^K_FGE0ec var strpasses = "#b" + numpasses.toString() + " passes#k"; F;kKn:X L if (!passes) { )`ixT) cm.sendNext("对不起,你的通行证没有达到指定的数目。你需要给指定的通行证数目给我;应当的队员数目减去你的队长, " + strpasses + ",以明确的阶段。告诉您的队员解决问题,收集了通行证,并让他们给你."); YU)%-V\ cm.dispose(); >LN*3&W } N^PkSf[)h5 else { :O,r3O6 cm.sendNext("你们已经通过 " + strpasses + "! 恭喜大家完成本阶段的挑战! 我将打开传送门,带大家进入到下一关的挑战.因为本次任务有时间限制,请大家抓紧时间,祝大家好运!"); SXO.|"M clear(1,eim,cm); s16, *;Z cm.givePartyExp(100, party); PX2b(fR8_O cm.gainItem(4001008,-numpasses); >Bdh`Ot-! cm.dispose(); #Q-#7|0& // TODO: make the shiny thing flash h+Yd\k } ]sE)-8 } qdmAkYUC } :*DWL!a } SyT{k\[ /*debug 8t)gfSG cm.sendNext("你好,这仅仅只是一个测试."); kt\,$.v8 cm.dispose();*/ !y>up+cRjl } `g) else { // non leader Tr|PR t var eim = cm.getChar().getEventInstance(); uqa
pj(" pstring = "member1stpreamble" + cm.getChar().getId().toString(); ".N{v1 preamble = eim.getProperty(pstring); UugR if (status == 0 && preamble == null) { YK$[)x\S var qstring = "member1st" + cm.getChar().getId().toString(); Ht/#d6cQ var question = eim.getProperty(qstring); qbCU&G|) if (question == null) { %;= ?r*] // Select a random question to ask the player. ^w"hA; var questionNum = Math.floor(Math.random() * questions.length); ,=c(P9}^ eim.setProperty(qstring, questionNum.toString()); wPu.hVz } cR,'aX cm.sendNext("在这里,你需要收集#bcoupons#k击败同样数目的Ligators作为回答提问个别。"); v,z~#$T& 4GG>n } KhX)maQ else if (status == 0) {// otherwise xO<%lq` // check for stage completed =n_z `I var complete = eim.getProperty(curMap.toString() + "stageclear"); Dv`"3 if (complete != null) { x*=m'IM[ cm.sendNext("请赶紧去下一关,们已经打开了"); 4sRg+mMI cm.dispose(); }[drR(]`dO } "USzk7=&. else { }A;YM1^$ // else correct/incorrect response to question here oOAkwc%)b var qstring = "member1st" + cm.getChar().getId().toString(); ~-uf%= var numcoupons = qanswers[parseInt(eim.getProperty(qstring))]; ;3xi.^=B var qcorr = cm.haveItem(4001007,(numcoupons+1)); c#1kg@q@ var enough = false; .XRe:\8mc if (!qcorr) { // not too many 11Qi
_T\ qcorr = cm.haveItem(4001007,numcoupons); ) j&khHD if (qcorr) { // just right `L[q`r7 cm.sendNext("这是正确的答案!对于你刚才收到了#bpass#k请交给你的队长。"); 7#oq|5 cm.gainItem(4001007,-numcoupons); V[]Pya|s+ cm.gainItem(4001008,1); \.p;
4V& enough = true; , /jHhKW } +Wy `X5v } @p}_"BHYWt if (!enough) { #Ufb cm.sendNext("很抱歉,你数量错误! 请仔细对照问题,再来给我正确数量的通行证吧.");
B!8X?8D } 9^`cVjD5 cm.dispose(); 9V&+xbR& } @g+v2(f2v } zxD=q5in else if (status == 1) { uudd'L if (preamble == null) { 2Ub-ufkU var qstring = "member1st" + cm.getChar().getId().toString(); L+T7Ge
q var question = parseInt(eim.getProperty(qstring)); SDNRcSbOD6 cm.sendNextPrev(questions[question]); XP:fL
NpQ } m']$)Iqw else { // shouldn't happen, if it does then just dispose }u$c*} cm.dispose(); :D;pD l } *:"60fkoU >9i>A: } r$'.$k\ else if (status == 2) { // preamble completed $>uUn3hSx\ eim.setProperty(pstring,"done"); }LQV2 hKTG cm.dispose(); ,O:p`"3`0= } Kng=v~)N' else { // shouldn't happen, but still... \*qradgx$ eim.setProperty(pstring,"done"); // just to be sure ?EPHq,
E cm.dispose(); WS(m#WFQr } ZWzr8oY) } tX@y ]" } // end first map scripts W/ WP }QM -"a(<JC^NI else if (2 <= curMap && 4 >= curMap) { A
#m _w* rectanglestages(cm); (: kn) }
Soe2Gq else if (curMap == 5) { // Final stage L:mE)Xq2 var eim = cm.getChar().getEventInstance(); N#)Klq87z var stage5done = eim.getProperty("5stageclear"); 2_o\Wor# if (stage5done == null) { {D|ST2:E if (playerStatus) { // Leader ;lrO?sm var map = eim.getMapInstance(cm.getChar().getMapId()); CR2.kuM0~ var passes = cm.haveItem(4001008,10); NZADHO@0 if (passes) { ;L#RFdh // clear H\ E%.QIx cm.sendNext("这是个任务,导致您在过去,奖金阶段。这是一个阶段,可让您打败怪物经常变得更轻松。您可以一套大量的时间来寻找尽可能多的,但您随时可以离开该阶段中。同样,祝贺结算的所有阶段。"); :oC;.u<*8 party = eim.getPlayers(); &m[}%e%~0 cm.gainItem(4001008,-10); C.LAr~P clear(5,eim,cm); <1m` cm.givePartyExp(1500, party); -aE,KQ cm.dispose(); {D(l#;,iX2 } FwHqID_!:l else { // not done yet @JLN3 cm.sendNext("欢迎您到第5次和最后阶段。步行游览地图,你可以找到一些怪物。打败所有的人,收集了#bthepasses#k,并请您给我。在队长下将收集,然后让他们给我一旦#bpasses#k聚集了。怪物可能是熟悉的你,但他们可能会远远超出你觉得,所以请小心。祝您好运!由于投诉,现在是强制性的要杀死所有的泥!做到这一点! "); ;mz#$"( } lcy+2)+ cm.dispose(); 2Q@Jp`#,4 } *P]]7DR else { // Members -)Vy)hD, cm.sendNext("欢迎您到第5次和最后阶段。步行游览地图,你将能够找到一些怪物。打败他们所有,收集了#bpasses#k,并给予他们到您的队长。一旦您完成时,返回给我,收集您的奖励。 "); J(maJuY cm.dispose(); D+! S\~u } ZGI<L } \ Ucv<S else { // give rewards and warp out =2DK?]K; if (status == 0) { <RbfW'<G cm.sendNext("难以置信!您通过了所有阶段进入了这一点。这里有一个小奖为您所做的出色工作。在您接受它,但是,请确保您的使用等物品栏要有空格 \r\n#b你将无法收到奖品,如果您有没有空格!#k"); z7L+wNYwg } 4KSq]S. if (status == 1) { u2$.EM/iae getPrize(eim,cm); &+ PVY>q cm.dispose(); %H&WihQ } =_g#I } J|be'V#]1 } )+8r$ i // etc ZG#:3d*) else { // no map found 9%3+\[s1 cm.sendNext("无效的计划,这意味着在现阶段是不完整的."); Ie=gI+2 cm.dispose(); f#!nj]}# } "AKr;|m } %hZX XpuO } iS<1C`%> 02%~HBS function clear(stage, eim, cm) { x>BFK@# eim.setProperty(stage.toString() + "stageclear","true"); n_ ?+QF var packetef = MaplePacketCreator.showEffect("quest/party/clear"); OT=1doDp
var packetsnd = MaplePacketCreator.playSound("Party1/Clear"); Xo[cpcV var packetglow = MaplePacketCreator.environmentChange("gate",2); Jg{K!P|i var map = eim.getMapInstance(cm.getChar().getMapId()); G,^ ?qbHg map.broadcastMessage(packetef); m^m=/'<+ map.broadcastMessage(packetsnd); *icaKy3 map.broadcastMessage(packetglow); 7t}s5}Z 4 var mf = eim.getMapFactory(); Ygkf}n map = mf.getMap(103000800 + stage); _y>drvg var nextStage = eim.getMapInstance(103000800 + stage); *<SXzJ( var portal = nextStage.getPortal("next00"); <|X+T, if (portal != null) { f?eq-/U R portal.setScriptName("kpq" + (stage+1).toString()); jOGiT|A
} fO^s4gWTg else { // into final stage O7LJ-M //cm.sendNext("Initiating final stage monsters..."); VYh/URU> // spawn monsters - removed since lerks patch makes -1 monsters spawn ONCE anyway &(Hw:W9 // var map = eim.getMapInstance(103000804); qTwl\dcncC // map.spawnMonsters(monsterIds); i[FYR;C } 6-/W4L)?> } ;V?(j3b[ y:$qX*+9e function failstage(eim, cm) { "cly99t var packetef = MaplePacketCreator.showEffect("quest/party/wrong_kor"); {%^4%Eco var packetsnd = MaplePacketCreator.playSound("Party1/Failed"); }aXS MxCd var map = eim.getMapInstance(cm.getChar().getMapId()); Cc`-34/% map.broadcastMessage(packetef); 4MW oGV9 map.broadcastMessage(packetsnd); r2i]9>w } tQUKw@@Q \+Y=}P> function rectanglestages (cm) { Otq1CD9 // debug makes these stages clear without being correct DrAIQ7Jd var debug = false; g+QIhur var eim = cm.getChar().getEventInstance(); "-MB U if (curMap == 2) { -a~n_Z>_ var nthtext = "2nd"; mJ5%+.V var nthobj = "ropes"; n&|N=zh var nthverb = "hang"; q(hBqU W var nthpos = "hang on the ropes too low"; 4!xRA '' var curcombo = stage2combos; eLXL5&}`fh //var curtestcombo = [0,0,0,1];
&0|Z FXPd var currect = stage2rects; G973n var objset = [0,0,0,0]; P_8!Gp } IuAu_`,Ndi else if (curMap == 3) { #DJZ42 var nthtext = "3rd"; )8}k.t>'s var nthobj = "platforms"; O:T
49:R}r var nthverb = "stand"; ^4Xsd h5 var nthpos = "stand too close to the edges"; F:jtzy" var curcombo = stage3combos; 8'TIDu //var curtestcombo = [0,0,1,0,0]; i!3*)-a\~` var currect = stage3rects; %Ny1H/@Q1+ var objset = [0,0,0,0,0]; -wl&~}%M } Le bc@, else if (curMap == 4) { 7F~g A74h var nthtext = "4th"; j;D$qd'J var nthobj = "barrels"; D0kz;X var nthverb = "stand"; Z(R0IW var nthpos = "stand too close to the edges"; 5A|dhw var curcombo = stage4combos; wmXI8'~F& //var curtestcombo = [0,1,0,0,0,0]; F]>+pU
var currect = stage4rects; 4@<wN \' var objset = [0,0,0,0,0,0]; xE!0p EHd } <n~.X<6V' if (playerStatus) { // leader gN[t if (status == 0) { 4tUt"N // check for preamble @W$ha
y ~!7x45(1# party = eim.getPlayers(); ed_+bCNy preamble = eim.getProperty("leader" + nthtext + "preamble"); 88[u^aC if (preamble == null) { ;/?w-)n? cm.sendNext("嗨。欢迎您到" + nthtext + " 的阶段。我旁边,你会看到一些" + nthobj + ". 在这些" + nthobj +", #b第3关,向您发送到下一阶段#k所有您需要做的是有#b的队员找到正确的" + nthobj + "和" + nthverb +"上.#k\r\nBUT ,但这不能作为答案如果您" + nthobj + ";请靠近中间的" + nthobj +"算作一个正确的答案。此外,只有3名队员是不被允许的" + nthobj + " 。一旦" + nthverb +"技术对他们来说,队长必须双击我来检查,看看答案的正确与否#k现在,找到正确的" + nthobj + "到" + nthverb +"对!"); yIngenr$ eim.setProperty("leader" + nthtext + "preamble","done"); F|.tn`j]U var sequenceNum = Math.floor(Math.random() * curcombo.length); 3W#E$^G_v eim.setProperty("stage" + nthtext + "combo",sequenceNum.toString()); 6biR5&Y5U& cm.dispose(); 4t/ ?b } nec}grA else { $MNJsc^n // otherwise _zzNF93Bn // check for stage completed #^9k&t#!6 var complete = eim.getProperty(curMap.toString() + "stageclear"); .v'`TD).6 if (complete != null) { Xc"
%- var mapClear = curMap.toString() + "stageclear"; iTO Y eim.setProperty(mapClear,"true"); // Just to be sure e 6>j
gy cm.sendNext("Please hurry on to the next stage, the portal opened!"); `Eu,SvkF w } l=Pw
yJ // check for people on ropes 3K/tB1 else { cT/mi":8{ // check for people on ropes(objset) P,WQN[(+ var totplayers = 0; gE=9K @ for (i = 0; i < objset.length; i++) { 3$5E1*ed for (j = 0; j < party.size(); j++) { 1|H4]!7kE var present = currect.contains(party.get(j).getPosition()); k W
8>VnW if (present) { u#^l9/tl objset = objset + 1; k2,`W2]^E totplayers = totplayers + 1; eK*oV}U-k } K4]ZVMm/* } 5|Z8UzL } sN?Rx} // compare to correct E?KPez // first, are there 3 players on the objset? ~[og\QZX if (totplayers == 3 || debug) { `T7TWv"M var combo = curcombo[parseInt(eim.getProperty("stage" + nthtext + "combo"))]; yuJ>xsM // debug 7j&EQm5\9 // combo = curtestcombo; ME]89 T& var testcombo = true; 98?O[= for (i = 0; i < objset.length; i++) { qR?}i,_ if (combo != objset) L,nb< testcombo = false; =Bm|9A1 } \*b
.f if (testcombo || debug) { YN<vOv // do clear !dh:jPpKq clear(curMap,eim,cm); Ct~j/. var exp = (Math.pow(2,curMap) * 50); r#&JfAo cm.givePartyExp(exp, party); hmG8
{h/ cm.dispose(); 1n7'\esC* } X%(NI(+x, else { // wrong 5ZH3}B^L$ // do wrong {.KD#W
$5 failstage(eim,cm); GJ2ZK=/ cm.dispose(); 34k>O } a;-%C{S9r } J65:MaS else { % a.T@E // oops, it doesn't display fail if you're not on the ropes QUvSeNSp // failstage(eim,cm); "zQ<)Q]U if (debug) { } snS~kx var outstring = "Objects contain:" GQd[7j[sh for (i = 0; i < objset.length; i++) { Ij =NcP outstring += "\r\n" + (i+1).toString() + ". " + objset.toString(); BtKor6ba } vx' ] ; cm.sendNext(outstring); *o:J 4' } 6Uq;]@k% else `VUJW]wGu cm.sendNext("看来你还没有发现3个" + nthobj + "呀。请考虑一个不同的组合" + nthpos + " 。只有3个可以" + nthverb+ "上" + nthobj + " ,如果你“ + nthpos + ”它可能不能算作一个答案,所以请记住这一点。继续下去!"); JhTr{8{ z#P`m,~t0 cm.dispose(); Fo;:GX,b } {[Y7h}7 } @H~oOf } W+U0Y,N6 // just in case. JZ5 ";*, } birc&< else { r%ebC var complete = eim.getProperty(curMap.toString() + "stageclear"); OW@)6 if (complete != null) { 7I&o var target = eim.getMapInstance(103000800 + curMap); 7l=Tl[n var targetPortal = target.getPortal("st00"); &y |