| 发帖: 138 | 粉丝: 0
| | 铜币: 110 | 龙鳞: 138 |
能量: 0
耐力: 49
经验: Lv3
精灵:
| | |
该隐藏帖已经发布超过60天,已自动取消隐藏功能,无需回复即可查看!由于刚才发错,三楼才是连接 7#"NKxb 服务端修改文字教程 hb*Y-$Zp 1、[079咖啡端]添加打开一个没有JS的NPC出现对话框 sT1OAK\^ 打开scr/net/s(和谐)f/odinms/scripting/npc/NPCScriptManager.java :a&M]+! gKTCfD~ 找到 ASi2;Q_{_ public void start(MapleClient c, int npc) { 4`l$0m@> try { v0)
%S NPCConversationManager cm = new NPCConversationManager(c, npc); ~`e!$= if (cms.containsKey(c)) { Jk}3c>^D return; Ynf "g#( } Pn^:cr| cms.put(c, cm); o0No"8DnjH Invocable iv = getInvocable("npc/" + npc + ".js", c); ^n~Kr1}nj if (iv == null || NPCScriptManager.getInstance() == null) { \,NT5> cm.dispose(); a7_Q8iMe return; U>!TM##1QD } &J/!D# engine.put("cm", cm); 4ZUtK/i+r NPCScript ns = iv.getInterface(NPCScript.class); /'{vDxZf R scripts.put(c, ns); (^B1Kt!< ns.start(); 3"Oipt+ } catch (Exception e) { qmpT G:+ log.error("Error executing NPC script " + npc, e); 8t=H dispose(c); >)Qq^?U cms.remove(c); *sp")h#Z } XO?WxL9k] } `/m]K~~ <FkaH8,7 全选替换掉 KF
*F 将下面一段代码替换进去 C&0f8PnD public void start(MapleClient c, int npc) 4Wz1O$* { FYik}wH] try { /xgC`]- if (c.getPlayer().isGM()) ?pJ2"/K
c.getPlayer().dropMessage("[系统提示]您已经建立与NPC:" + npc + "的对话。"); RvA "ug.* , Zie2I?q NPCConversationManager cm = new NPCConversationManager(c, npc); }!fIY7gv if (this.cms.containsKey(c)) bl!pKOY return; FDuA5At J ##a;6@ this.cms.put(c, cm); gLt6u|0q Invocable iv = getInvocable("npc/" + npc + ".js", c); 5w>TCx if ((iv == null) || (getInstance() == null)) { _s#J\!F cm.sendOk("对不起,我并没有被管理员设置可使用,如果你觉得我应该工作的,那就请你汇报给管理员.\r\n我的ID编号: #r" + npc + "#k.");
'uz o[>p cm.dispose(); ES,JdImZ| return; )M7yj O! } +~F>:v?Rh this.engine.put("cm", cm); 4V[(RXc/ NPCScript ns = (NPCScript)iv.getInterface(NPCScript.class); ,.{M1D6'R` this.scripts.put(c, ns); w ;$elXP| ns.start(); zhow\l2t} } catch (Exception e) { [YlRz log.error("Error executing NPC script " + npc, e); pR0!bgC dispose(c); tpzWi
W/ this.cms.remove(c); > Q=e9L= } V+sZ;$ } tC1'IE-h 2、[079咖啡端]修复怪物打不死 kS{k=V&hf_ 1.打开源码找到net\s(和谐)f\odinms\net\channel\handler\AbstractDealDamageHandler.java EK>x\]O%T kygj" @EX 找到这个函数parseDamage() 然后用下面的代码替换 注意替换前先备份! S`[(y?OF? 6E_~8oEl --------------------------------------------------------------------------------- ]{i0?c gF9GU5T: public AttackInfo parseDamage(MapleCharacter c, LittleEndianAccessor lea, boolean ranged) { _\dC<K *> AttackInfo ret = new AttackInfo(); FB?V<x lea.readByte(); ~,s'- lea.skip(8); H{E(=S ret.numAttackedAndDamage = lea.readByte(); D`41\#ti lea.skip(8); )$Ib6tYY ret.numAttacked = (ret.numAttackedAndDamage >>> 4 & 0xF); y /8iEs ret.numDamage = (ret.numAttackedAndDamage & 0xF); p\~ a= ret.allDamage = new ArrayList(); ysp,:)-%G@ ret.skill = lea.readInt(); 'Sd+CXS lea.skip(8); Fi+DG?zu if ((ret.skill == 2121001) || (ret.skill == 2221001) || (ret.skill == 2321001) || (ret.skill == ql.[Uq s +S6'g-- 5201002) || (ret.skill == 14111006) || (ret.skill == 5101004) || (ret.skill == 15101003)) +-t&li%F ret.charge = lea.readInt(); h;E.y
else { dh{py ret.charge = 0; -+qg } ~g[D!HV|yu ok ,O/|E}? if (ret.skill == 1221011) ^K[xVB(& ret.isHH = true; p79QEIbk= vbd
;Je" lea.readInt(); -[>J"l ret.aresCombo = lea.readByte(); ,^
-%< int sourceid = ret.skill; aTHf+; if ((sourceid == 21100004) || (sourceid == 21100005) || (sourceid == 21110003) || (sourceid == Ro$*bN6p hQ:wW}HWW 21110004) || (sourceid == 21120006) || (sourceid == 21120007)) kQ\l7xd c.setCombo(1); ,%/F,O+# L6qK3xa} ret.pos = lea.readByte(); '9vsv\A& ret.stance = lea.readByte(); uHf1b?W =?Co<972Z if (ret.skill == 4211006) { c9uu4%KG6< return parseMesoExplosion(lea, ret); !N\_D } xK[[b e"EGqn&! if (ranged) { VZamR}x lea.readByte(); dcemF ret.speed = lea.readByte(); ~<IQe-Q5 lea.readByte(); (F;*@Z*R ret.direction = lea.readByte(); #l)o<Z lea.skip(7); ?:GrM!kq76 if ((ret.skill == 3121004) || (ret.skill == 3221001) || (ret.skill == 5221004) || (ret.skill == ]E:L :L:] 3L 13111002)) Vx[Q=raS lea.skip(4); 7dB_q}< } ?gU-a else { 6U|"d[ lea.readByte(); ,lCFe0>k!= ret.speed = lea.readByte(); MftaT5 lea.skip(4); uUBUUr } S~z$=IiB a]V#mF |{ for (int i = 0; i < ret.numAttacked; ++i) { ]EN&EA"< int oid = lea.readInt(); 7Fa<m]k -H\j-k lea.skip(14); k<fR)o ?o]NV List allDamageNumbers = new ArrayList(); [4;_8-[Nv for (int j = 0; j < ret.numDamage; ++j) { wuCZz{c7 int damage = lea.readInt(); mOjjw_3gq ~PpU'[ MapleStatEffect effect = null; &2y9J2aA if (ret.skill != 0) ]*$o qn=m effect = SkillFactory.getSkill(ret.skill).getEffect(c.getSkillLevel(SkillFactory.getSkill hn6'$P ~nj+"d] (ret.skill))); gi:M= g~|x^d^;| if ((damage != 0) && (effect != null) && (effect.getFixedDamage() != 0)) XkW@"pf&Fh damage = effect.getFixedDamage(); Lo[;{A$u p8s%bPjK allDamageNumbers.add(Integer.valueOf(damage)); rmX5-k } bjj
F{T if (ret.skill != 5221004) [=-,i#4 lea.skip(4); %PR,TWe 8j]QnH0& ret.allDamage.add(new Pair(Integer.valueOf(oid), allDamageNumbers)); (ux9"r^g;x } Bd>ATc+580 #"C*dNAB return ret; RM%Z"pc Y6 } S:2 xm8
i mT j ept:<!4 --------------------------------------------------------------------------------- d`?EEO iRW5*-66f 2.接着找到net\s(和谐)f\odinms\client\MapleCharacter.java 1G(wESe HF&dHD2f 查找 V~.SgbLc //战神Combo UK8k`;^KI private int combo = 0; ]=|iO~WN private int comboCount = 0; b5|l8<\ 02^\np 将其修改为 h52+f //战神Combo 7|J&fc5BP private int combo = 0; /f.
,xs! private int comboCounter = 0; l~f9F`~' w3fD6$ 此时应再查找comboCount 将其修改为comboCounter(不然原变量将不可用 导致变量未定义) +K=RM qM-8 应该也可以重新定义comboCounter这个变量 没实验 v+C D{Tc yYaYuf 然后在下面适当处增加两个函数 CpgaQG^ h_Er$ZT64 public int getCombo() { ^^xzaF return this.comboCounter; P4MP`A } &&}c R:U, 4Im}!q5;:< public int setCombo(int combo) { \"yR[.Q?
return (this.comboCounter = combo); @[/!e`]+ } Br$/hn= YSZ[~?+ 代码就修改完毕了 编译后 怪物就应该能掉血了! ?q'r9Ehe u91 0icB2Jm:D} 大概原因分析: f .h$jyp( 攻击封包数据改变,原来处理封包的方式已经不能适用了 所以应当修改原来的处理结构! +tlbO? 3、[079咖啡端]修复双击人物客户端自动退出问题 >Zf*u;/dW$ 双击人物不管是自己还是他人都需要查看角色信息,原先我以为是加入的有家族的原因。 换了个没家族的号还是那样, u0uz~ s 结果我就感觉应该是处理封包的问题了。 说明白点就是 MaplePacketCreator.java 有问题,然后我又仔细比较了下 楚天和咖啡端的 MaplePacketCreator.java *D7oHwDU _ -ec(w~/ 发现charinfo 处理有出入。 咖啡端似乎少了一些东西, 就是椅子列表显示那部分。 于是我对照两者的代码修复了下。 #s}tH$MT# 也不算是修复。 因为这样弄过以后不会显示你有椅子。 抱歉。 我JAVA不太行。 大家原谅下了。 $Ixd;`l* 8,CL>*A 处理方法: }ZwnG=7T? [ifQLsHA 打开 src\net\s(和谐)f\cherry\tools\MaplePacketCreator.java Np~qtR (或者是src\net\s(和谐)f\odinms\tools\MaplePacketCreator.java) 3U?^49bJ hL;??h,!_ 5(\[Gke 找到 k[1[Y{n. mplew.write(HexTool.getByteArrayFromHexString("00 00 00 00 00 00 01 00 00 00 D0 ED 2D 00 0C 87 A5 16 B4 F0 B0 16 10 00 00 00 84 E3 C6 2A 36 15 CF 59 6C 24 3E 00 CD DB 43 00 10 00 00 00 02 00 00 00 67 34 00 00 7F 36 00 00 DD CD CF 2A 10 00 00 00 B4 8B BB 2A 00 00 00 00 00 00 00 00 01 00 CD 00 10 00 00 00 18 E6 C6 2A DE 26 93 07 FD DC AB 7B 45 08 08 08 10 00 00 00")); lvk*Db$ oY@]&A^ah zcEpywNP Oh}@c~7; aO<H!hK 替换成 at3YL[,[Z mplew.writeInt(0); G<*h,'B mplew.writeShort(0); F zBny[F MapleInventory iv = chr.getInventory(MapleInventoryType.SETUP); q<fj1t1w List<Item> chairItems = new ArrayList(); kl&_O8E+K for (IItem item : iv.list() ) { I= z+`o8 if ((item.getItemId() >= 3010000) && (item.getItemId() <= 3020001)) { `AdHyE //chairItems.add(item); {5fq4AA6 } .L]2g$W\p } Y(R],9h8 mplew.writeInt(chairItems.size()); w'5W L for (IItem item : chairItems ) { wz:w6q mplew.writeInt(item.getItemId()); 9I|Q`j?p` } _B ]Bd@<w mplew.writeInt(0); KA`)dMWL 4、修复咖啡端不消耗飞镖 Xn<|6u RangedAttackHandler.java V/"41 @zix%x 找到 !\&4,l( //if (player.getJob().isA(MapleJob.Ares_1) || player.getJob().isA(MapleJob.Ares_2) || player.getJob().isA(MapleJob.Ares_3) || player.getJob().isA(MapleJob.Ares_4)) { LR17ilaa' MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, projectile, bulletConsume, false, true); `UkjrMO // } "bjbJC&T 5'0kf7 按上面方式处理 yg4ILL 5、修复黑龙项链带不了的BUG E?mW4? 先解释一下为什么国服的黑龙项链带不上。 用1.5deMSwZ.exe 打开string.wz得到这样的结果 J2`OJsMwWe l4^8$@;s Eqp.Ring.1112904.name 彩虹星环绕戒指 [2095484]
q,'~=Y5 Eqp.Ring.1112904.desc 五彩斑斓的星星和心围绕着角色旋转。 [2095507] lFgE{;z@ Eqp.Ring.1112905.name 超大心环绕戒指 [2095572] D>wo>,G Eqp.Ring.1112905.desc 可爱的大心心在角色周围以心形模样旋转。 [2095595] .9!&x0; Eqp.Ring.1112906.name 心心祝福戒指 [2095664] 8HSGOs =8 Eqp.Ring.1112906.desc 可爱的心心在角色头顶画出心形模样旋转。 [2095685] /hyCR___ Eqp.Ring.1112907.name 小鱼戒指 [2095754] zWdz9;=_ Eqp.Ring.1112907.desc 装备时,会产生泡泡的效果。有时间限制。 [2095771] WN#dR~> Eqp.Ring.1112916.name 寂寞单身戒指 [2095840] :~,akX$ Eqp.Ring.1112916.desc 单身贵族的独立宣言,玩得就是“寂寞”!最IN的单身标记,高调不怕围观。 [2095861] LGCeYXic Eqp.Ring.1122000.name 黑龙项环 [2095962] OBP iLCq Eqp.Ring.1122007.name 休彼德蔓的项链 [2096001] \ItAc2,Fl 6z67%U*8r 再来看下其他项链在哪个位置 0g@*N4 jm|zn 1T3YFt@&I Eqp.Accessory.1122029.name 苏醒的冒险之心 [1897757] o{|
|Ig Eqp.Accessory.1122030.name 苏醒的冒险之心 [1897802] r2Q) Q Eqp.Accessory.1122031.name 苏醒的冒险之心 [1897836] %cMayCaI!@ Eqp.Accessory.1122032.name 苏醒的冒险之心 [1897870] W?@+LQa?? Eqp.Accessory.1122033.name 苏醒的冒险之心 [1897904] Rk{2ZUeg Eqp.Accessory.1122034.name 觉醒的冒险之心 [1897938] ;Y &2G' Eqp.Accessory.1122035.name 觉醒的冒险之心 [1897983] afcyAzIB& Eqp.Accessory.1122036.name 觉醒的冒险之心 [1898017] ;u%4K$ Eqp.Accessory.1122037.name 觉醒的冒险之心 [1898051] 'Cywn^Ym# Eqp.Accessory.1122038.name 觉醒的冒险之心 [1898085] qSVg.<+ Eqp.Accessory.1122058.name 休彼德蔓的混沌项链 [1898119] KEr?&e JDMsco+j5 Cmj `WSSa l)0yv2[h 很明显盛大把 黑龙项链 和 休彼德蔓的项链 故意或者无意放错了地方,放到了(戒指组里) K*MI8') %A(hmC 现在要做的是把这两个物体重新搬到 Accessory组里。 Au?(_*/0 1`n
ZK$ ewinG-hX_ 解决办法: 0I.! gE!`9 #.. iB'g7&,L 找到服务端目录 wz\String.wz\Eqp.img.xml (b1rd 4_Rv}Yd 类似这样的结构 ]"1\z>Hg N<lf,zGw
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> }% ?WS <imgdir name="Eqp.img"> 7.v{ =UP <imgdir name="Eqp"> %{P." ki <imgdir name="Accessory"> ~U4;YlQP <imgdir name="1010000"> vf_pEkx*wD <string name="name" value="褐色落腮胡"/> PuU< </imgdir> 3j$,x(ua9 <imgdir name="1010001"> CwfGp[|}e <string name="name" value="黑胡子"/> "6 </imgdir> e}"k8 ./ <imgdir name="1010002"> xm<sH!,j <string name="name" value="忍者口罩"/> n<sA?T </imgdir> RQ51xTOL4] <imgdir name="1010003"> xJ|Z]m=d
<string name="name" value="刮脸痕迹"/> ~_SVQ7P O$peCv ]h&?^L<. 查找 name="Ring" 再查找 1122000 (黑龙项环代码) &sPu3.p \cq.M/p 类似这样 tgm(tDL EY!P"u; <imgdir name="1112906"> ngaQa-8w <string name="name" value="心心祝福戒指"/> nHF <string name="desc" value="可爱的心心在角色头顶画出心形模样旋转。"/> Z@:R'u2Lk </imgdir> $Jj0%?; <imgdir name="1112907"> hB*3Py27L <string name="name" value="小鱼戒指"/> >z8y L+ <string name="desc" value="装备时,会产生泡泡的效果。有时间限制。"/> i>rsq[l </imgdir> S4X['0rX! <imgdir name="1112916"> 'P)[=+O?t <string name="name" value="寂寞单身戒指"/> n!XSB7d~X <string name="desc" value="单身贵族的独立宣言,玩得就是“寂寞”!最IN的单身标记,高调不怕围观。"/> x6*.zo5e </imgdir> B.[5N;c <imgdir name="1122000"> ^TY8,qDA <string name="name" value="黑龙项环"/> ,%]s:vk[u </imgdir> t+SLU6j, <imgdir name="1122007"> a<V* ) <string name="name" value="休彼德蔓的项链"/> AwGDy + </imgdir> 3qH`zYgh V=H}Ecd 把这段代码剪切出来 mc5$-}1V, +&TcTu#.` <imgdir name="1122000"> X<$8'/p r <string name="name" value="黑龙项环"/> X`n*M] </imgdir> 4=n%<U`Z/ <imgdir name="1122007"> 2$QuR~ <string name="name" value="休彼德蔓的项链"/> C}mWX7<Z. </imgdir> cE]#23 %^8>= 放到<imgdir name="Accessory"> 组里。 L`Q9-#Y @sb00ad2q 最后类似这样的结构 -
e"XEot~ \U'TL_Ql <?xml version="1.0" encoding="UTF-8" standalone="yes"?> b(gcnSzM2 <imgdir name="Eqp.img"> ?"qS%EH <imgdir name="Eqp"> Fqp~1>wi <imgdir name="Accessory"> jLf8 7 <imgdir name="1122000"> !' @ <string name="name" value="黑龙项环"/> W.U|mNJ$ </imgdir> 4K*DEVS <imgdir name="1122007"> SxCzI$SGu <string name="name" value="休彼德蔓的项链"/> zzBq b\Ky </imgdir> i(>v~T,( <imgdir name="1010000"> &28n1 <string name="name" value="褐色落腮胡"/> SjOIln </imgdir> wZUR <imgdir name="1010001"> nnO@$T <string name="name" value="黑胡子"/> i0~L[v9l< </imgdir> Y~bGgd]T <imgdir name="1010002"> =R\-mov$ <string name="name" value="忍者口罩"/> d
"vd_}P~ </imgdir> !J@pox-t (vf5qF^ x?Oc<CQ-2 然后重启服务端就OK。 装备上黑龙项链把。 不用源代码即可修复。 gbRdng7(} 6、修复PB掉线问题 4&LoE~ -----------新建文档 复制以下代码 将文件重命名为8820009.img.xml 放到服务端WZ中对应的xml下-- 6MRS0{ p}swJ;S kOuQR$9s <?xml version="1.0" encoding="UTF-8" standalone="yes"?> c)o[3o7 <imgdir name="8820009.img"> -?<L"u <imgdir name="info"> ud.Bzg:/ <int name="bodyAttack" value="0"/> s97L/iH <int name="level" value="1"/> >pl*2M& <int name="maxHP" value="200000"/> 6Bm2_B <int name="maxMP" value="0"/> Ti9cN)lq& <int name="speed" value="0"/> h?:Y\DlU' <int name="PADamage" value="0"/> OL"So
u4 <int name="PDDamage" value="0"/> _A/ ]m4 <int name="MADamage" value="0"/> C!" .[3 <int name="MDDamage" value="0"/> U_,K_6vj <int name="acc" value="0"/> /waZ9 <int name="eva" value="0"/> >'zp <int name="exp" value="0"/> X{riI^( <int name="undead" value="0"/> 0H{0aQQ <int name="pushed" value="1"/> r\66]u[ <float name="fs" value="10.0"/> tlFc+3 <int name="removeAfter" value="5"/> =8fZG
t <int name="summonType" value="12"/> YPq`su7m9 <int name="hideName" value="1"/> D+
**o <imgdir name="revive"> *:A)j?( <int name="0" value="8820001"/> { e% <int name="1" value="8820003"/> ;w}5:3+ <int name="2" value="8820005"/> P X<,/6g z <int name="3" value="8820006"/> !bCLi>8 <int name="4" value="8820004"/> P%Ux-0& <int name="5" value="8820002"/> \ow0Y> </imgdir> /C}fE]n{X <int name="noFlip" value="1"/> 5{|\h} </imgdir> k||DcwO <imgdir name="stand"> !P26$US%P <canvas name="0" width="4" height="4"> KGX?\#- <vector name="origin" x="36" y="53"/> |]H2a;vUJR <int name="delay" value="30"/> )p;gm`42oY <vector name="head" x="1" y="-1500"/> jNNl5. </canvas> $yb8..+ </imgdir> p{Gg,.f!HM <imgdir name="hit1"> SB[,}h<u1 <canvas name="0" width="4" height="4"> ,/>~J]:\; <vector name="origin" x="36" y="53"/> &_E*]Sj\ <int name="delay" value="30"/> FR@ dBcJUU <vector name="head" x="1" y="-1500"/> ^5~[G%G4 </canvas> Pjff%r^ </imgdir> N6<23kYM <imgdir name="die1"> w8g36v*+(u <canvas name="0" width="213" height="450"> way-Q7 <vector name="origin" x="774" y="495"/> [%8+Fa~Wa <int name="delay" value="180"/> !kfnqe?| <vector name="head" x="1" y="-1500"/> Fw5r\J87c <int name="a0" value="255"/> Z;mDMvIu ( <int name="a1" value="255"/> bqg\V8h </canvas> j{'@g[HW <canvas name="1" width="227" height="493"> /_554q <vector name="origin" x="778" y="534"/> 9? W38EF <int name="delay" value="180"/> !f\6=Z?>3 <vector name="head" x="1" y="-1500"/> CQ3{'"b </canvas> MY["
zv <canvas name="2" width="232" height="497"> br'/>Un" <vector name="origin" x="783" y="533"/> I1H:h <int name="delay" value="180"/> AH],>i3 <vector name="head" x="1" y="-1500"/> 4[&6yHJ^ </canvas> T't^pO-` <canvas name="3" width="237" height="497"> G:rM_q9\u <vector name="origin" x="787" y="529"/> 93( <int name="delay" value="180"/> 2WOdTM{u <vector name="head" x="1" y="-1500"/> ),6Z1 K1 </canvas> Q$9`QY*6"p <canvas name="4" width="239" height="494"> =kLg)a | <vector name="origin" x="788" y="525"/> ?Xo9,4V1 <int name="delay" value="180"/> yx }Z:t <vector name="head" x="1" y="-1500"/> Va/p
</canvas> .ODtduURe <canvas name="5" width="241" height="496"> K~WwV8c9; <vector name="origin" x="789" y="526"/> .9g\WH#qD| <int name="delay" value="180"/>
afc?a-~Z <vector name="head" x="1" y="-1500"/> q 9pcEm4? </canvas> qQ6NxhQo
<canvas name="6" width="243" height="494">
g `B?bBg <vector name="origin" x="790" y="523"/> wEMUr0Hq <int name="delay" value="180"/> /bylA`IMW <vector name="head" x="1" y="-1500"/> t>v']a +k </canvas> GO wd=]e <canvas name="7" width="243" height="491"> m%E7V{t <vector name="origin" x="790" y="520"/> q&
Vt* <int name="delay" value="180"/>
D-4PEf <vector name="head" x="1" y="-1500"/> E|Grk </canvas> \9/n~/{ <canvas name="8" width="241" height="483"> . yu <vector name="origin" x="789" y="513"/> ;@d<* <int name="delay" value="180"/> ()>\D <vector name="head" x="1" y="-1500"/> W:>RstbnMG </canvas> J:mOg95< <canvas name="9" width="239" height="479"> {_/6,22j(V <vector name="origin" x="788" y="510"/> _H8)O2mJ <int name="delay" value="180"/> 8LwbOR" <vector name="head" x="1" y="-1500"/> ix&hsNzD </canvas> Ec6{?\ <canvas name="10" width="237" height="476"> I$wP`gQh <vector name="origin" x="787" y="508"/> ;o3
.<" <int name="delay" value="180"/> a Ts_5q <vector name="head" x="1" y="-1500"/> u-k?ef </canvas> Phgn| <canvas name="11" width="230" height="485"> pp[? k}@ <vector name="origin" x="784" y="521"/> ^j=_=Km] <int name="delay" value="180"/> =4MiV] <vector name="head" x="1" y="-1500"/> ^J~}KOH </canvas> N]yk<55 <canvas name="12" width="235" height="490"> 9HEc=,D| <vector name="origin" x="779" y="535"/> 1^zF/$% <int name="delay" value="180"/> R/O_*XY <vector name="head" x="1" y="-1500"/> )-a_,3x%j </canvas> M=N`&m |