该隐藏帖已经发布超过60天,已自动取消隐藏功能,无需回复即可查看!由于刚才发错,三楼才是连接 :jy}V'bn$ 服务端修改文字教程 P^aNAa 1、[079咖啡端]添加打开一个没有JS的NPC出现对话框 B.A;1VE5 打开scr/net/s(和谐)f/odinms/scripting/npc/NPCScriptManager.java !k<k]^Z\ =qvn?
I^/ 找到
q*K[? public void start(MapleClient c, int npc) { o\<JG?P try { w1EB>!<;tj NPCConversationManager cm = new NPCConversationManager(c, npc); 6&"*{E if (cms.containsKey(c)) { J``5;%TJp return; E]Qd5l } L)i6UAo cms.put(c, cm); 6W<Ig; Invocable iv = getInvocable("npc/" + npc + ".js", c); V~_6t{L if (iv == null || NPCScriptManager.getInstance() == null) { }S"qU]>8a cm.dispose(); !a4`SjOgu return; DzbcLg%:W } _WGWU7h engine.put("cm", cm); m2%n: NPCScript ns = iv.getInterface(NPCScript.class); !q~f;&rg scripts.put(c, ns); @.,Mn# ns.start(); ^S`N\X } catch (Exception e) { hzk4SOT( log.error("Error executing NPC script " + npc, e); 2Akh/pb dispose(c); (M?VB*sm0 cms.remove(c); },=ORIB B: } >Qqxn*O } vA{DF{S4 dy ~M5,zn 全选替换掉 Jt:)(&-t 将下面一段代码替换进去 wE-y4V e public void start(MapleClient c, int npc) 8%`h:fE { 4j}.=u* X7 try { SmS6B5j\R if (c.getPlayer().isGM()) F0wW3+G c.getPlayer().dropMessage("[系统提示]您已经建立与NPC:" + npc + "的对话。"); ?AVnv(_ ?e%u[ Q0 NPCConversationManager cm = new NPCConversationManager(c, npc); Ty
vUdU if (this.cms.containsKey(c)) :*vSC: q return; \qDY0hIv t Rzyaicj^c this.cms.put(c, cm); [x%8l,O
#l Invocable iv = getInvocable("npc/" + npc + ".js", c); r]'[qaP if ((iv == null) || (getInstance() == null)) { cS
BS38> cm.sendOk("对不起,我并没有被管理员设置可使用,如果你觉得我应该工作的,那就请你汇报给管理员.\r\n我的ID编号: #r" + npc + "#k."); y(*5qa<> cm.dispose(); cj4o[l return; cm8co } HqI[]T@ this.engine.put("cm", cm); kT % m` NPCScript ns = (NPCScript)iv.getInterface(NPCScript.class); V`0Y
p this.scripts.put(c, ns); iA|n\a~ny, ns.start(); B~E>=85z } catch (Exception e) { v8 II=9 log.error("Error executing NPC script " + npc, e);
</B:Zjn dispose(c); sDvy(5 this.cms.remove(c); 7:zoF],s } 8PqlbLo1 } e< G[!m 2、[079咖啡端]修复怪物打不死 *'BI=*` 1.打开源码找到net\s(和谐)f\odinms\net\channel\handler\AbstractDealDamageHandler.java .kyes4Z .zy2_3: 找到这个函数parseDamage() 然后用下面的代码替换 注意替换前先备份! q&&uX-ez5W 7H4\AG\> --------------------------------------------------------------------------------- v+i==vxg VVE
JE$ public AttackInfo parseDamage(MapleCharacter c, LittleEndianAccessor lea, boolean ranged) { 6o^O%:0g AttackInfo ret = new AttackInfo(); YkQ=rurE lea.readByte(); #<@_mbQ@|K lea.skip(8);
)afH: ret.numAttackedAndDamage = lea.readByte(); lmIphOUoIw lea.skip(8); <'
jygZ( ret.numAttacked = (ret.numAttackedAndDamage >>> 4 & 0xF); NA YwuE-` ret.numDamage = (ret.numAttackedAndDamage & 0xF); uG+eF ret.allDamage = new ArrayList(); J[UTn'M8] ret.skill = lea.readInt();
]D^zTl3=q lea.skip(8); [B^V{nUBc if ((ret.skill == 2121001) || (ret.skill == 2221001) || (ret.skill == 2321001) || (ret.skill == =I9hGj6 Bw<$fT` 5201002) || (ret.skill == 14111006) || (ret.skill == 5101004) || (ret.skill == 15101003)) pf#R] ret.charge = lea.readInt(); (SCZ.G(> else { [fJxbr" ret.charge = 0; ]vuxeu[cu, } S/yBr
` z<s~` if (ret.skill == 1221011) t Kjk< ret.isHH = true; S] 4RGWn ?IDkDv!na~ lea.readInt(); ;xSlRTNT=6 ret.aresCombo = lea.readByte(); ?btX&:j2P int sourceid = ret.skill; ; m:I if ((sourceid == 21100004) || (sourceid == 21100005) || (sourceid == 21110003) || (sourceid == Ko!a`I2M} AHT(Z~C 21110004) || (sourceid == 21120006) || (sourceid == 21120007)) !95Q4WH-@ c.setCombo(1); 6J965eM'[ R0yp9icS ret.pos = lea.readByte(); 8SBa w'a ret.stance = lea.readByte(); <899r \ PKev)M;C+ if (ret.skill == 4211006) { ]>0$l _V return parseMesoExplosion(lea, ret); SbobXTbG } Qqd +=mgc U4lAo if (ranged) { SwO8d;e lea.readByte(); QZ5%nJme_ ret.speed = lea.readByte(); VoyRB2t lea.readByte(); EkOn Rm_hn ret.direction = lea.readByte(); PkOtg[Z lea.skip(7); Q@TeU#2
Y if ((ret.skill == 3121004) || (ret.skill == 3221001) || (ret.skill == 5221004) || (ret.skill == zR%)@wh 9? |m ^ 13111002)) Va/}|&9 lea.skip(4); >?{>
!#1 } :FixLr!q else { R_IT${O lea.readByte(); pW&8 =Ew ret.speed = lea.readByte(); G&yF9s)Lvs lea.skip(4); OYOczb] } j[=P3Z0q ;?gR ,AKZ for (int i = 0; i < ret.numAttacked; ++i) { ^C8f( int oid = lea.readInt(); ZV!*ZpTe~ yg
%T{hyzH lea.skip(14); 6f
J5Y
iQ #b1/2=PA List allDamageNumbers = new ArrayList(); CelM~W$=u for (int j = 0; j < ret.numDamage; ++j) { i;J*9B
_U int damage = lea.readInt(); lC^?Jk[N O_D;_v6Ii+ MapleStatEffect effect = null; cMfnc.P\K if (ret.skill != 0) (DM8PtZg effect = SkillFactory.getSkill(ret.skill).getEffect(c.getSkillLevel(SkillFactory.getSkill ^Uldyv/ Z"G?+gM@ (ret.skill))); L @8[. G)=+Nt\* if ((damage != 0) && (effect != null) && (effect.getFixedDamage() != 0)) oTeQY[%$ damage = effect.getFixedDamage(); WWA!_ ?o d*"M allDamageNumbers.add(Integer.valueOf(damage)); Tt{ft?H71 } 'fIG$tr9X if (ret.skill != 5221004) QjsN7h&% lea.skip(4); .Zx7+`i =Q8$O
2TW ret.allDamage.add(new Pair(Integer.valueOf(oid), allDamageNumbers)); ks8x xY } <*opVy^ hw&~OJeo return ret; ([
hd } 1k)`C<l Zk #C!]= r+nhm"9
--------------------------------------------------------------------------------- s3)T}52 Y2>*' nU 2.接着找到net\s(和谐)f\odinms\client\MapleCharacter.java Ucj>gc= H"rIOoxf 查找 <h~_7Dn //战神Combo (Jy >,~O private int combo = 0; z\<gm$1CB private int comboCount = 0; 6oGF6C !Mk]% 将其修改为 k= 9a/M
u //战神Combo XOzZ
tt private int combo = 0; l 4cTN
@E private int comboCounter = 0; =1j`VJU9 1gH>B5` 此时应再查找comboCount 将其修改为comboCounter(不然原变量将不可用 导致变量未定义) Eqh&<]q 应该也可以重新定义comboCounter这个变量 没实验 -vS7 %Fbr oX-h7;SD 然后在下面适当处增加两个函数 68!=`49r> lW@i,1 public int getCombo() { IUy5=Sl return this.comboCounter; &&n-$WEl } vFGVz ~
[=2d a public int setCombo(int combo) { i^/D_L.
return (this.comboCounter = combo); =!2(7Nr } .7H*F9 WtbOm 代码就修改完毕了 编译后 怪物就应该能掉血了! -axmfE?g0 ="[6Z$R cs)z! 大概原因分析: E"%G@,|3* 攻击封包数据改变,原来处理封包的方式已经不能适用了 所以应当修改原来的处理结构! R(A"6a8* 3、[079咖啡端]修复双击人物客户端自动退出问题 I\VC2U
双击人物不管是自己还是他人都需要查看角色信息,原先我以为是加入的有家族的原因。 换了个没家族的号还是那样, v?4MndR 结果我就感觉应该是处理封包的问题了。 说明白点就是 MaplePacketCreator.java 有问题,然后我又仔细比较了下 楚天和咖啡端的 MaplePacketCreator.java 28o!>* I=V]_Ik4N 发现charinfo 处理有出入。 咖啡端似乎少了一些东西, 就是椅子列表显示那部分。 于是我对照两者的代码修复了下。 _MGhG{p7t 也不算是修复。 因为这样弄过以后不会显示你有椅子。 抱歉。 我JAVA不太行。 大家原谅下了。 }/z\%Y x;/%`gKn8 处理方法: n4EZy<~m u=B,i#>s 打开 src\net\s(和谐)f\cherry\tools\MaplePacketCreator.java ?E7.x%n7X5 (或者是src\net\s(和谐)f\odinms\tools\MaplePacketCreator.java) K/LoHWy+n* .w~zW*M0 D^2yP~( 找到 Jz)c|8U 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")); v&u8Ks !'%`g,,r ZQDw|*a@ 0Yc#f
D v:Z.8m8D 替换成 y &%2 mplew.writeInt(0); 9/50+2F mplew.writeShort(0); 9 Dx9alJR MapleInventory iv = chr.getInventory(MapleInventoryType.SETUP); 0bG2YMs List<Item> chairItems = new ArrayList(); @RS
|}M^4 for (IItem item : iv.list() ) { x
W'(]Z7_ if ((item.getItemId() >= 3010000) && (item.getItemId() <= 3020001)) { r/6h} //chairItems.add(item); $g)X,iQu } n]%yf9,w } >l!DWi6 mplew.writeInt(chairItems.size()); 4N{^niq7 for (IItem item : chairItems ) { [3hOc/]s mplew.writeInt(item.getItemId()); 2a:JtJLl } }MV=t7x9+ mplew.writeInt(0); f<( ysl1[ 4、修复咖啡端不消耗飞镖 :WdiH)Zv RangedAttackHandler.java n5 jzVv YS&Q4nv- 找到 sm @Ot~; //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)) { 31}k
Nc}n MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, projectile, bulletConsume, false, true); \YsYOFc| // } #)$@Kvm X6:
c- 按上面方式处理 TWJ%? /d 5、修复黑龙项链带不了的BUG 2;=xHt 先解释一下为什么国服的黑龙项链带不上。 用1.5deMSwZ.exe 打开string.wz得到这样的结果 3+ r8yiY
#3Jn_Y%P. Eqp.Ring.1112904.name 彩虹星环绕戒指 [2095484] <o\I C?A Eqp.Ring.1112904.desc 五彩斑斓的星星和心围绕着角色旋转。 [2095507] MQGR-W
V=5 Eqp.Ring.1112905.name 超大心环绕戒指 [2095572] g R)
)K) Eqp.Ring.1112905.desc 可爱的大心心在角色周围以心形模样旋转。 [2095595] sMAu* Eqp.Ring.1112906.name 心心祝福戒指 [2095664] #k<j`0kiq Eqp.Ring.1112906.desc 可爱的心心在角色头顶画出心形模样旋转。 [2095685] n>I
N J Eqp.Ring.1112907.name 小鱼戒指 [2095754] L-(.v* Eqp.Ring.1112907.desc 装备时,会产生泡泡的效果。有时间限制。 [2095771]
9p<ZSh Eqp.Ring.1112916.name 寂寞单身戒指 [2095840] "npLl]XM Eqp.Ring.1112916.desc 单身贵族的独立宣言,玩得就是“寂寞”!最IN的单身标记,高调不怕围观。 [2095861] 5J<ghv>\P Eqp.Ring.1122000.name 黑龙项环 [2095962] cXvq=Rb Eqp.Ring.1122007.name 休彼德蔓的项链 [2096001] b$'}IW
NV eI*o9k$Qs 再来看下其他项链在哪个位置 9!oNyqQ
i9k/X&V NX:i]t Eqp.Accessory.1122029.name 苏醒的冒险之心 [1897757] 38eeRo Eqp.Accessory.1122030.name 苏醒的冒险之心 [1897802] q/yL={H? Eqp.Accessory.1122031.name 苏醒的冒险之心 [1897836] /CN`U7:E Eqp.Accessory.1122032.name 苏醒的冒险之心 [1897870] '#0'_9} Eqp.Accessory.1122033.name 苏醒的冒险之心 [1897904] Gd%E337d Eqp.Accessory.1122034.name 觉醒的冒险之心 [1897938] )}jXC4 Eqp.Accessory.1122035.name 觉醒的冒险之心 [1897983] @I|gA Eqp.Accessory.1122036.name 觉醒的冒险之心 [1898017] _8"%nV Eqp.Accessory.1122037.name 觉醒的冒险之心 [1898051] +eD+Z.{ Eqp.Accessory.1122038.name 觉醒的冒险之心 [1898085] v}\Nx[} Eqp.Accessory.1122058.name 休彼德蔓的混沌项链 [1898119] 6'qC *r xA2"i2k9 [ !#<nY/C >~k"C,6 很明显盛大把 黑龙项链 和 休彼德蔓的项链 故意或者无意放错了地方,放到了(戒指组里) ;-X5# QWV12t$v 现在要做的是把这两个物体重新搬到 Accessory组里。 V3$Yr"rZ; ln6Hr^@5 Q{+&3KXH 解决办法: cp>1b8l6? -:o4|&g<* J.QFrIB{]+ 找到服务端目录 wz\String.wz\Eqp.img.xml k\a&4v K PSHBv-# 类似这样的结构 'rQ>Z A_8 X,8]g.< <?xml version="1.0" encoding="UTF-8" standalone="yes"?> m`Ver:{ <imgdir name="Eqp.img"> %2D9]L2Up <imgdir name="Eqp"> cfd7)(6 <imgdir name="Accessory"> mdTCe
HX <imgdir name="1010000"> $,~D-~- <string name="name" value="褐色落腮胡"/> /a!M6:,pX </imgdir> W{(q7>g <imgdir name="1010001"> ~1v5
H]T{ <string name="name" value="黑胡子"/> nB1[OB{ </imgdir> m|w-}s, <imgdir name="1010002"> Sq,x57- <string name="name" value="忍者口罩"/> \P|PAU@, </imgdir> -(]s!, <imgdir name="1010003">
&I$MV5)u <string name="name" value="刮脸痕迹"/> 8/dx)*JCq %^$7z,>; 3ud_d> 查找 name="Ring" 再查找 1122000 (黑龙项环代码) 4R/cN'- lUd;u*A 类似这样 h+7THMI fSF
b)+ <imgdir name="1112906"> jRP9
e <string name="name" value="心心祝福戒指"/> Vyqj)1Z8> <string name="desc" value="可爱的心心在角色头顶画出心形模样旋转。"/> P6ztP$M( </imgdir> '{?7\+o.x <imgdir name="1112907"> <r'l5|er <string name="name" value="小鱼戒指"/> 3B5GsI <string name="desc" value="装备时,会产生泡泡的效果。有时间限制。"/> 8vLaSZ="[ </imgdir> /!mF,oR! <imgdir name="1112916"> P[E5e+A) <string name="name" value="寂寞单身戒指"/> VgO:`bDF <string name="desc" value="单身贵族的独立宣言,玩得就是“寂寞”!最IN的单身标记,高调不怕围观。"/> >3a<#s{% </imgdir> '=2/0-;Jf <imgdir name="1122000"> ?@i_\<A2 <string name="name" value="黑龙项环"/> ]l
WEdf+ </imgdir> 2=PX1kI <imgdir name="1122007"> sox0:9Oqnf <string name="name" value="休彼德蔓的项链"/> $ RDwy)9 </imgdir> 54%@q[- M &g1'zv?/ 把这段代码剪切出来 ;NHZD 0qj:v"~
Q <imgdir name="1122000"> r2]KP(T8| <string name="name" value="黑龙项环"/> T!*lTzNHm </imgdir> _3YuPMaN <imgdir name="1122007"> `i,l)X] <string name="name" value="休彼德蔓的项链"/> S3iXG
@ </imgdir> r{T}pc>^ %cl=n!
T 放到<imgdir name="Accessory"> 组里。 /RzL,~] M_wj>NXZ 最后类似这样的结构 [Cx'a7KWL |99/?T-QW <?xml version="1.0" encoding="UTF-8" standalone="yes"?> yIL6Sb <imgdir name="Eqp.img"> N1 }#6YNw <imgdir name="Eqp"> jLRh/pbz4 <imgdir name="Accessory"> MM*B.y~TxZ <imgdir name="1122000"> +
q/ j <string name="name" value="黑龙项环"/> 8(Ab
NQ </imgdir> As;@T
$G <imgdir name="1122007"> dyz)22{\!` <string name="name" value="休彼德蔓的项链"/> *|T]('xwC </imgdir> z
Mf. <imgdir name="1010000"> Pu=,L#+F N <string name="name" value="褐色落腮胡"/> ,MxTT!9Su </imgdir> D!-
78h <imgdir name="1010001"> 5HZ t5="+ <string name="name" value="黑胡子"/> W
h^9 Aq </imgdir> $-}a<UFE; <imgdir name="1010002"> hv.$p5UY* <string name="name" value="忍者口罩"/> ST#MCh-00 </imgdir> |KHaL? ? %9-5"U[ 0 xUw}T6 然后重启服务端就OK。 装备上黑龙项链把。 不用源代码即可修复。 WDC+Jmlgp 6、修复PB掉线问题 x"9e eB, -----------新建文档 复制以下代码 将文件重命名为8820009.img.xml 放到服务端WZ中对应的xml下-- ebSG|F '
R!pc &]'{N69@d? <?xml version="1.0" encoding="UTF-8" standalone="yes"?> msyC."j0jU <imgdir name="8820009.img"> +;P8QZK6 <imgdir name="info"> W/3,vf1 <int name="bodyAttack" value="0"/> 1'[RrJ$Q <int name="level" value="1"/> KTm^0:V[Oy <int name="maxHP" value="200000"/> k e
sg ]K <int name="maxMP" value="0"/> (|EnRk-E <int name="speed" value="0"/> -r6cK,WVU <int name="PADamage" value="0"/> vjcG
F'- <int name="PDDamage" value="0"/> V kA$T8 <int name="MADamage" value="0"/> O"$uw <int name="MDDamage" value="0"/> 2L<iIBSJwm <int name="acc" value="0"/> PE~u
mY] <int name="eva" value="0"/> ok"v`76~f5 <int name="exp" value="0"/> &?R2zfcM <int name="undead" value="0"/> w@&4dau <int name="pushed" value="1"/> 9Q<8DMX^ <float name="fs" value="10.0"/> `*J;4Ju@ <int name="removeAfter" value="5"/> %8_bh8g- <int name="summonType" value="12"/> ZPieL&uV` <int name="hideName" value="1"/> p=7
{ <imgdir name="revive"> xV_,R'l <int name="0" value="8820001"/> S4m??B <int name="1" value="8820003"/> fZqqU|tq <int name="2" value="8820005"/> .>Gnb2
<int name="3" value="8820006"/> '
DZYN {} <int name="4" value="8820004"/> ,dTRM <int name="5" value="8820002"/> \{Hb
L,s </imgdir> =r3 %jWH6 <int name="noFlip" value="1"/> (}W+W\. </imgdir> \pXs&}%1,F <imgdir name="stand"> GESEj%R/b <canvas name="0" width="4" height="4"> pO*$'8L <vector name="origin" x="36" y="53"/> i:6`Rmz1. <int name="delay" value="30"/> p5C:MA~* <vector name="head" x="1" y="-1500"/> J3F-Yl| </canvas> yM*-em </imgdir> :ub 4p4h* <imgdir name="hit1"> /A8ua=Kn <canvas name="0" width="4" height="4"> ] rP^ <vector name="origin" x="36" y="53"/> v-k~Q$7~ <int name="delay" value="30"/> {{G`0i2KV <vector name="head" x="1" y="-1500"/> HH-A\#6J </canvas> -K 7jigac </imgdir> G234UjN% <imgdir name="die1"> ! z^%$;p <canvas name="0" width="213" height="450"> b'!t\m <vector name="origin" x="774" y="495"/> ^usZ&9"@P <int name="delay" value="180"/> qgT~yDm <vector name="head" x="1" y="-1500"/> o=t@83Fh5 <int name="a0" value="255"/> Ry@QJn I< <int name="a1" value="255"/> |,3>A@ </canvas> [z2XK4\e1T <canvas name="1" width="227" height="493"> kK27hfsw <vector name="origin" x="778" y="534"/> TN xl?5: <int name="delay" value="180"/> u?(@hUV. <vector name="head" x="1" y="-1500"/> ;"}yVV/4 </canvas> :2'y=t # <canvas name="2" width="232" height="497"> raWs6b4Q <vector name="origin" x="783" y="533"/> wx
a?. <int name="delay" value="180"/> tl 0_Sd <vector name="head" x="1" y="-1500"/> r\OunGUP </canvas> S_E-H.d" <canvas name="3" width="237" height="497"> G E=J Y <vector name="origin" x="787" y="529"/> cBZKt <int name="delay" value="180"/> *Kp
k1 <vector name="head" x="1" y="-1500"/> $2p=vi3 </canvas> $>PXX32 <canvas name="4" width="239" height="494"> {`FkiB` i <vector name="origin" x="788" y="525"/> S'Hb5C2u <int name="delay" value="180"/> #Jm
Vq-) <vector name="head" x="1" y="-1500"/> yqEX0|V% </canvas> o$*aAgS+ <canvas name="5" width="241" height="496"> M bj{C <vector name="origin" x="789" y="526"/> [Eeanl&x> <int name="delay" value="180"/> emhI1
*} <vector name="head" x="1" y="-1500"/> P=.yXirm? </canvas> Z*+0gJ<Y <canvas name="6" width="243" height="494"> DqfWu* <vector name="origin" x="790" y="523"/> %h}Q f&U_ <int name="delay" value="180"/> {XHAQ9' <vector name="head" x="1" y="-1500"/> BB x359 </canvas> WR&>AOWAD <canvas name="7" width="243" height="491"> V`/E$a1& <vector name="origin" x="790" y="520"/> FeW}tKH <int name="delay" value="180"/> _JVFn= <vector name="head" x="1" y="-1500"/> =cwQG&as </canvas> SdOa#U) <canvas name="8" width="241" height="483"> g[oa'.*OB <vector name="origin" x="789" y="513"/> {X85 <int name="delay" value="180"/> zTgY=fuz <vector name="head" x="1" y="-1500"/> MI:
rH </canvas>
9j0Hvo% T <canvas name="9" width="239" height="479"> Lro[ |A <vector name="origin" x="788" y="510"/> .!fhy[%o:D <int name="delay" value="180"/> eP d <vector name="head" x="1" y="-1500"/> $+ z3 </canvas> 03ol6y )C <canvas name="10" width="237" height="476"> E,~|-\b}h <vector name="origin" x="787" y="508"/> aG"j9A~ & <int name="delay" value="180"/> J`E,Xw>2 <vector name="head" x="1" y="-1500"/> :%6OFO$z </canvas> N~""Lc& <canvas name="11" width="230" height="485"> q*L>MV <vector name="origin" x="784" y="521"/>
n[vwwY <int name="delay" value="180"/> BBV"nm_(/ <vector name="head" x="1" y="-1500"/> >@b]t,rrK </canvas> I~^t\iujs <canvas name="12" width="235" height="490"> !2.(iuE <vector name="origin" x="779" y="535"/> jGg,)~)Y <int name="delay" value="180"/> GI+x,p <vector name="head" x="1" y="-1500"/> y:Wq;xEiDo </canvas> ?QDHEC6
2 <canvas name="13" width="275" height="495"> 7Ei,L[{\i# <vector name="origin" x="797" y="540"/> {7kJj(Ue <int name="delay" value="180"/> wbIgZ]o!/; <vector name="head" x="1" y="-1500"/> \dm5Em/ </canvas> \#
p@ef <canvas name="14" width="284" height="495"> $?_/`S1
3 <vector name="origin" x="797" y="540"/> Re=()M <int name="delay" value="180"/> 7U9*-9 <vector name="head" x="1" y="-1500"/> Vu0d\l^$ </canvas> 4YuJ - <canvas name="15" width="249" height="493"> q7}r D$ <vector name="origin" x="786" y="538"/> yQT
cO^E <int name="delay" value="180"/> FAkrM?0/ <vector name="head" x="1" y="-1500"/> ^(j}'p, </canvas>
/C[Q? <canvas name="16" width="218" height="464"> YFJw<5& <vector name="origin" x="774" y="509"/> x7<2K( <int name="delay" value="180"/> *^ZJ&. <vector name="head" x="1" y="-1500"/> jmp0 %:+L </canvas> .tdaj
6x <canvas name="17" width="213" height="480"> "QKCZ8_C <vector name="origin" x="774" y="525"/> O'm5k l <int name="delay" value="180"/> N)I9NM[ <vector name="head" x="1" y="-1500"/> &$$o=Y g, </canvas> TANv)&,|9 <canvas name="18" width="213" height="488"> D*%? 0 <vector name="origin" x="774" y="533"/> AiP#wK; <int name="delay" value="180"/> fH@P&SX |