| 🎉 |
隐藏内容已自动解锁
隐藏内容因满足 [ 发布时间满60天,帖子热度超6666点击,参与人数超10人 ] 其中条件之一,触发了自动开放机制。
无需回复,所有访客均可直接查看以下内容:
|
由于刚才发错,三楼才是连接 X&lkA
(
服务端修改文字教程 by06!-P0[
1、[079咖啡端]添加打开一个没有JS的NPC出现对话框 S$H4xkKs
打开scr/net/s(和谐)f/odinms/scripting/npc/NPCScriptManager.java 9xKFX|*$
0"QE,pLe4
找到 s=q+3NTv
public void start(MapleClient c, int npc) { Lw#hnLI.
try { O.$<Bf9
NPCConversationManager cm = new NPCConversationManager(c, npc); 8%|x)
if (cms.containsKey(c)) { Z9sg6M@s
return; m|7g{vHVV
} #* Hhe>
cms.put(c, cm); WWO jyj
Invocable iv = getInvocable("npc/" + npc + ".js", c); u51/B:+
if (iv == null || NPCScriptManager.getInstance() == null) { MYx*W7X
cm.dispose(); WWe.1A,
return;
8EE7mEmLH
} *"4<&F
S
engine.put("cm", cm); c"z%AzUV'
NPCScript ns = iv.getInterface(NPCScript.class); d)G-K+&B
scripts.put(c, ns); ~clWG-i
ns.start(); b]Y,& 8}[+
} catch (Exception e) { 0?:ZER v
log.error("Error executing NPC script " + npc, e); ZE\t{s0
dispose(c); bR6bS7$
cms.remove(c); I0ie3ESdN
} w}1)am&pD
} cQ8:;-M
Q.|2/6hD7[
全选替换掉 ;,A\bmC
将下面一段代码替换进去 ;I7Z*'5!
public void start(MapleClient c, int npc) 4YCGh
{ l1:j/[B=
try { r"Bf@va
if (c.getPlayer().isGM()) YW}/C wB
c.getPlayer().dropMessage("[系统提示]您已经建立与NPC:" + npc + "的对话。"); ~J2Q0Jv
<^~F~]wnH
NPCConversationManager cm = new NPCConversationManager(c, npc); {0LdLRNZ
if (this.cms.containsKey(c)) 1=D!C lcb
return; o+t?OG/0
67g/(4 &
this.cms.put(c, cm); zR
.MXr
Invocable iv = getInvocable("npc/" + npc + ".js", c); dG rA18
if ((iv == null) || (getInstance() == null)) { v8 X&H
cm.sendOk("对不起,我并没有被管理员设置可使用,如果你觉得我应该工作的,那就请你汇报给管理员.\r\n我的ID编号: #r" + npc + "#k."); "_l[4o[D
cm.dispose(); ZV U9 t
return; lxd<^R3i#^
} m,KY_1%M
this.engine.put("cm", cm); +|?c_vD
NPCScript ns = (NPCScript)iv.getInterface(NPCScript.class); +\ySx^vi
this.scripts.put(c, ns); TB[vpTC9)
ns.start(); uJO*aA{K
} catch (Exception e) { Yx%%+c?.
log.error("Error executing NPC script " + npc, e); `Q8 D[
dispose(c); i!HGM=f
this.cms.remove(c); # SXXYh-e
} :U*[s$
} hnZHu\EJ
2、[079咖啡端]修复怪物打不死 B
';Ob
1.打开源码找到net\s(和谐)f\odinms\net\channel\handler\AbstractDealDamageHandler.java VO`A
Qh[t##I/
找到这个函数parseDamage() 然后用下面的代码替换 注意替换前先备份! MQ+ek4
+?<j
SmGW
--------------------------------------------------------------------------------- 4mAtY
m
QCo^#-
public AttackInfo parseDamage(MapleCharacter c, LittleEndianAccessor lea, boolean ranged) { =,'Z6?%p
AttackInfo ret = new AttackInfo(); 8vRiVJ8QS:
lea.readByte(); S&Sf}uK
lea.skip(8); {k*_'0
ret.numAttackedAndDamage = lea.readByte(); ~4^e a
lea.skip(8); h>/ViB@"W|
ret.numAttacked = (ret.numAttackedAndDamage >>> 4 & 0xF); S'O0'5U@
ret.numDamage = (ret.numAttackedAndDamage & 0xF); JU@$(
ret.allDamage = new ArrayList(); oN$ZZk
R
ret.skill = lea.readInt(); L8G4K)
lea.skip(8); eXd(R>Mx
if ((ret.skill == 2121001) || (ret.skill == 2221001) || (ret.skill == 2321001) || (ret.skill == yR!>80$j
%;5hHRA
5201002) || (ret.skill == 14111006) || (ret.skill == 5101004) || (ret.skill == 15101003)) 'SieZIm)
ret.charge = lea.readInt(); CQ`(,F3(
else { L$
xRn/\
ret.charge = 0; s`B'vyoaa
} ?*@h]4+k'
@CmxH(-i-
if (ret.skill == 1221011) kT1lOP-Bg
ret.isHH = true; J$Q-1fjj
EyeLC6u
lea.readInt(); HA%ye"(y8
ret.aresCombo = lea.readByte(); UE4#j\
int sourceid = ret.skill; yU.0'r5uR
if ((sourceid == 21100004) || (sourceid == 21100005) || (sourceid == 21110003) || (sourceid == o7+/v70D
v(^rq
21110004) || (sourceid == 21120006) || (sourceid == 21120007)) O, {
(
c.setCombo(1); LZVO9e]
n`,Q:
ret.pos = lea.readByte(); .9xGLmg
ret.stance = lea.readByte(); t>fB@xHBB
wl%1B64
if (ret.skill == 4211006) { 0o]K6b
return parseMesoExplosion(lea, ret); 3KKe4{oG
} #r:`bQ0;
Cg
Sdyg@
if (ranged) { 7q 2YsI
lea.readByte(); {5udol5?
ret.speed = lea.readByte(); J]0#M:w&
lea.readByte();
Vk (bU=w
ret.direction = lea.readByte(); 5dF=DCZ
lea.skip(7); P1QJ'eC;T
if ((ret.skill == 3121004) || (ret.skill == 3221001) || (ret.skill == 5221004) || (ret.skill == *LRGfk+h
B`F82_O
13111002)) b {5|2&=
lea.skip(4); <@A^C$g
} `9+EhP$RS
else { nf4P2<L!
lea.readByte(); >DRs(~|V#
ret.speed = lea.readByte(); IO#W#wW$M
lea.skip(4); ="DgrH
} @_Zx'mTI
07|NPS
for (int i = 0; i < ret.numAttacked; ++i) { Em,!=v(*
int oid = lea.readInt(); 4.'EEuRw\}
?5Fj]Bk]
lea.skip(14); DX";v
J
C\^K6,m5
List allDamageNumbers = new ArrayList(); >D<=9G(a
for (int j = 0; j < ret.numDamage; ++j) { oc(bcU
int damage = lea.readInt(); M\&~ D
md
bwJi[xF
MapleStatEffect effect = null; rieQ&Jt"
if (ret.skill != 0) Z@ kC28
effect = SkillFactory.getSkill(ret.skill).getEffect(c.getSkillLevel(SkillFactory.getSkill o zYI/b^
z aF0nov
(ret.skill))); 4Le5Ms/
qM0MSwvC=
if ((damage != 0) && (effect != null) && (effect.getFixedDamage() != 0)) DVJc-.x8
damage = effect.getFixedDamage(); l.x }I"tf
XV>6;!=E
allDamageNumbers.add(Integer.valueOf(damage)); [q&J"dt
} )9r%% #
if (ret.skill != 5221004) pqSE|3*l
lea.skip(4); )ta5y7np
$D5U#
ret.allDamage.add(new Pair(Integer.valueOf(oid), allDamageNumbers)); (UZ*36@PJx
} mz*z1`\7v\
o0'av+e7
return ret; :RsPGj6
} xgz87d/<:
IdxTo Mr
AG7}$O.
--------------------------------------------------------------------------------- j,xPN=+hT
S nHAY<
2.接着找到net\s(和谐)f\odinms\client\MapleCharacter.java .;b>
T
Z?.*.<"Sj
查找 d_+8=nh3
//战神Combo FW DuH`-5
private int combo = 0; !r*;R\!n2
private int comboCount = 0; ib_Gy77Os
<.b$
gX
将其修改为 ,[\(U!Z7:%
//战神Combo E/ZJ\@gzD
private int combo = 0; =!^iiHF
private int comboCounter = 0; bJ
m0
`5Btg.
&
此时应再查找comboCount 将其修改为comboCounter(不然原变量将不可用 导致变量未定义)
wIF
":'
应该也可以重新定义comboCounter这个变量 没实验 3kCbD=yF
LrMFzd}_O
然后在下面适当处增加两个函数 -y?Z}5-rs
(;&?B.<\:
public int getCombo() { #!jRY!2Vt
return this.comboCounter; mM*yv
} yV/ J(
>U<nEnB$?
public int setCombo(int combo) { G)hH?_U#T
return (this.comboCounter = combo); j>xVy]v= |
} nY9qY
Fw
^-u HdafP
代码就修改完毕了 编译后 怪物就应该能掉血了! xbC8Amo;8"
es[5B* 5
^Nw]'e3
大概原因分析: aT#{t{gkA
攻击封包数据改变,原来处理封包的方式已经不能适用了 所以应当修改原来的处理结构! Wk?|BR]O
3、[079咖啡端]修复双击人物客户端自动退出问题 nq f<NH3i
双击人物不管是自己还是他人都需要查看角色信息,原先我以为是加入的有家族的原因。 换了个没家族的号还是那样, cJEz>Z6[
结果我就感觉应该是处理封包的问题了。 说明白点就是 MaplePacketCreator.java 有问题,然后我又仔细比较了下 楚天和咖啡端的 MaplePacketCreator.java =h::VB}Lv
Iv72;ZCh?6
发现charinfo 处理有出入。 咖啡端似乎少了一些东西, 就是椅子列表显示那部分。 于是我对照两者的代码修复了下。 41o!2(e$
也不算是修复。 因为这样弄过以后不会显示你有椅子。 抱歉。 我JAVA不太行。 大家原谅下了。 <IyLLQ+v
nnL$m_K~
处理方法: @$d\5Q(G
vvAk<[
打开 src\net\s(和谐)f\cherry\tools\MaplePacketCreator.java uV_)JZW,L
(或者是src\net\s(和谐)f\odinms\tools\MaplePacketCreator.java) !rg0U<bO!
9*;isMkq<
m->%8{L
找到 V6MT> T
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")); 6 ]PM!6
.)>/!|i
S7ehk
*`
lE)rRG+JLW
M/a/H=J
替换成 xH_ie
mplew.writeInt(0); F/*fQAa"
mplew.writeShort(0); 4 Qel;
MapleInventory iv = chr.getInventory(MapleInventoryType.SETUP); i?>>
9f@F
List<Item> chairItems = new ArrayList(); x7Rq|NQ
for (IItem item : iv.list() ) { _qt;{,t
if ((item.getItemId() >= 3010000) && (item.getItemId() <= 3020001)) { Q
*]`t@q
//chairItems.add(item); 0DB<hpC:5
} Gv,92ny!|
} =6<w'>
mplew.writeInt(chairItems.size()); _MbVF>JOx
for (IItem item : chairItems ) { o:8S$F`O@
mplew.writeInt(item.getItemId()); n>:c}QAJH
} P}9Y8$Y>U
mplew.writeInt(0); IIQ3|eZ
4、修复咖啡端不消耗飞镖 l5';?>!s
RangedAttackHandler.java Kn#xY3W6
#A/J^Ko
找到 $&=;9="
//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)) { NzAtdcwR
MapleInventoryManipulator.removeById(c, MapleInventoryType.USE, projectile, bulletConsume, false, true); @P"`=BU&
// } N~5WA3xd
_8li4;F
按上面方式处理 AKKU-5
B9c
5、修复黑龙项链带不了的BUG OF<n T
先解释一下为什么国服的黑龙项链带不上。 用1.5deMSwZ.exe 打开string.wz得到这样的结果 udD*E~1q
G^rh*cb K
Eqp.Ring.1112904.name 彩虹星环绕戒指 [2095484] *{dD'9Bg
Eqp.Ring.1112904.desc 五彩斑斓的星星和心围绕着角色旋转。 [2095507] 'Z2N{65
Eqp.Ring.1112905.name 超大心环绕戒指 [2095572] e4qk>Cw
Eqp.Ring.1112905.desc 可爱的大心心在角色周围以心形模样旋转。 [2095595] .8qzU47E
Eqp.Ring.1112906.name 心心祝福戒指 [2095664] EO/cW<uV'
Eqp.Ring.1112906.desc 可爱的心心在角色头顶画出心形模样旋转。 [2095685] n5k^v$'
Eqp.Ring.1112907.name 小鱼戒指 [2095754] 9U9c"'g
Eqp.Ring.1112907.desc 装备时,会产生泡泡的效果。有时间限制。 [2095771] RA/ =w&
Eqp.Ring.1112916.name 寂寞单身戒指 [2095840] @@/'b'
Eqp.Ring.1112916.desc 单身贵族的独立宣言,玩得就是“寂寞”!最IN的单身标记,高调不怕围观。 [2095861] y-<PsP-I
Eqp.Ring.1122000.name 黑龙项环 [2095962] _jrA?pY
Eqp.Ring.1122007.name 休彼德蔓的项链 [2096001] Ag#5.,B
-
/-{O\7-D
再来看下其他项链在哪个位置 N(-%"#M$
vQYfoam;
;}eEG{`Y
Eqp.Accessory.1122029.name 苏醒的冒险之心 [1897757] Wytvs*\`
Eqp.Accessory.1122030.name 苏醒的冒险之心 [1897802] 7
Mki?EG
Eqp.Accessory.1122031.name 苏醒的冒险之心 [1897836] ro&Y7m
Eqp.Accessory.1122032.name 苏醒的冒险之心 [1897870] _c9
WWp?
Eqp.Accessory.1122033.name 苏醒的冒险之心 [1897904] YY:iPaGO
Eqp.Accessory.1122034.name 觉醒的冒险之心 [1897938] -{8Q= N
Eqp.Accessory.1122035.name 觉醒的冒险之心 [1897983] pmW6~%}*
Eqp.Accessory.1122036.name 觉醒的冒险之心 [1898017] _"!{7e`Z
Eqp.Accessory.1122037.name 觉醒的冒险之心 [1898051] udEb/7ZL
Eqp.Accessory.1122038.name 觉醒的冒险之心 [1898085] !
jX+ox
Eqp.Accessory.1122058.name 休彼德蔓的混沌项链 [1898119] M,\|V3s
I"cQ5gF?A
H]i+o6
h w ;d m
很明显盛大把 黑龙项链 和 休彼德蔓的项链 故意或者无意放错了地方,放到了(戒指组里) ccN &h
y>7VxX0xi
现在要做的是把这两个物体重新搬到 Accessory组里。 e,#+Xx0M
t66f 7AR
fteyG$-s
解决办法: [wy3Ld
W_BAb+$aF
TtwJ,&b
找到服务端目录 wz\String.wz\Eqp.img.xml |T$a+lHMD
_N,KHxsG8B
类似这样的结构 z<[.MH`ln
m{lRFKx>s
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> Ag>>B9
<imgdir name="Eqp.img"> )|Vg/S
<imgdir name="Eqp"> e(n2+S#N
<imgdir name="Accessory"> 2>MP:yY;K
<imgdir name="1010000"> VJl &Bq+
<string name="name" value="褐色落腮胡"/> +wz`
_i)!
</imgdir> lYZ@a4TA
<imgdir name="1010001"> ZU|V+yT
<string name="name" value="黑胡子"/> }U?gKlLg
</imgdir> W-C0YU1
<imgdir name="1010002"> p*AP 'cR
<string name="name" value="忍者口罩"/> *]:G7SW{
</imgdir> BBU84s[
<imgdir name="1010003"> D2TXOPH
<string name="name" value="刮脸痕迹"/> ZaRr2Z:!
G{:af:5Fo
>|_gT%]5
查找 name="Ring" 再查找 1122000 (黑龙项环代码) F@_Egi
Xw*%3'
类似这样 ##`;Eh0a
+%e%UF@
<imgdir name="1112906"> EAC(^+15K
<string name="name" value="心心祝福戒指"/> /md Q(Dm
<string name="desc" value="可爱的心心在角色头顶画出心形模样旋转。"/> g~N
ij~/
</imgdir> }uvKE|umj
<imgdir name="1112907"> o^_W $4Fc
<string name="name" value="小鱼戒指"/> n^JUZ8
<string name="desc" value="装备时,会产生泡泡的效果。有时间限制。"/> f^6&Fb>
</imgdir> ^;)SFmjg%
<imgdir name="1112916"> 2yJ7]+Jd7Y
<string name="name" value="寂寞单身戒指"/> igRDt{}
<string name="desc" value="单身贵族的独立宣言,玩得就是“寂寞”!最IN的单身标记,高调不怕围观。"/> PK-}Ldj
</imgdir> dS3>q<J*a
<imgdir name="1122000"> !8
wid&
<string name="name" value="黑龙项环"/> nz&b5Xb2
</imgdir> lk*0c{_L
<imgdir name="1122007"> w~Tq|kU[
<string name="name" value="休彼德蔓的项链"/> ,WO%L~db
</imgdir> v E3{H
%|`:5s-T%
把这段代码剪切出来 []=FZ`4
Gh$y#0qr
<imgdir name="1122000"> SrQ4y`?
<string name="name" value="黑龙项环"/> np`gcj#
</imgdir> >uyeI&z
<imgdir name="1122007"> yRq8;@YGY
<string name="name" value="休彼德蔓的项链"/> c<+g|@A#
</imgdir> rY[3_ NG%
NWQPOq#
放到<imgdir name="Accessory"> 组里。 1&8j3"
*C3uMiz
最后类似这样的结构 c?p0#3%L#
^Kw&=u
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> de=5=>P7
<imgdir name="Eqp.img"> _cxm}*}\#
<imgdir name="Eqp"> nj~$%vmA
<imgdir name="Accessory"> 2\nBqCxR
<imgdir name="1122000"> uGP[l`f|FQ
<string name="name" value="黑龙项环"/> /\ ,_P
</imgdir> %)<oX9E
<imgdir name="1122007"> |i}+
t
<string name="name" value="休彼德蔓的项链"/> bG5^h
</imgdir> >tmnj/=&
<imgdir name="1010000"> d6t)gG*5
<string name="name" value="褐色落腮胡"/> P;L)
1 g
</imgdir> V(lK`dY
<imgdir name="1010001"> d739UhKC
<string name="name" value="黑胡子"/> .`p<hA)%[C
</imgdir> VGTeuu5i
<imgdir name="1010002"> D y`W5_xSz
<string name="name" value="忍者口罩"/> t3
uB
</imgdir> r{R[[]p
F,L82N6\U
w
L/p.@
然后重启服务端就OK。 装备上黑龙项链把。 不用源代码即可修复。 5A2Y'ms,/
6、修复PB掉线问题 @o4z3Q@
-----------新建文档 复制以下代码 将文件重命名为8820009.img.xml 放到服务端WZ中对应的xml下-- M73VeV3DL
6:|!1Pg5
fXF=F,!t
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> FhY{;-W(T
<imgdir name="8820009.img"> _:ZFCDO
<imgdir name="info"> 9&[)(On74
<int name="bodyAttack" value="0"/> pjX%LsX\
<int name="level" value="1"/> ?;:9
W
<int name="maxHP" value="200000"/> ?8wwd!)x%
<int name="maxMP" value="0"/> *c~'0|r
<int name="speed" value="0"/> DJ
1XNpm
<int name="PADamage" value="0"/> (1kn):
<int name="PDDamage" value="0"/> tf$PaA
<int name="MADamage" value="0"/> A=v lC?&Z
<int name="MDDamage" value="0"/> r%Q8)nEo
<int name="acc" value="0"/> Ad}-I%Ie
<int name="eva" value="0"/> AQnJxIL:
<int name="exp" value="0"/> NS
Mjr_
<int name="undead" value="0"/> B%%.@[o,
<int name="pushed" value="1"/> ="5k\1W1M
<float name="fs" value="10.0"/> 80FCe(U
<int name="removeAfter" value="5"/> a2cx
<int name="summonType" value="12"/> PSP1>-7)w
<int name="hideName" value="1"/> :Bx+WW&P.i
<imgdir name="revive"> IL+#ynC
<int name="0" value="8820001"/> <t?x 'r?@
<int name="1" value="8820003"/> eEW roF
<int name="2" value="8820005"/> IKMs
Y5i
<int name="3" value="8820006"/> RQj`9F
<int name="4" value="8820004"/> ' D)1ka.
<int name="5" value="8820002"/> @MN}^umx`
</imgdir> l#2r.q^$|
<int name="noFlip" value="1"/> dT0^-XSY
</imgdir> */%$6s~
<imgdir name="stand"> xE G+%Uk{
<canvas name="0" width="4" height="4"> u=d`j
<vector name="origin" x="36" y="53"/> r!=]Q}`F
<int name="delay" value="30"/> 2p$n*|T&c
<vector name="head" x="1" y="-1500"/> gD,YQ%aq
</canvas>
nR,Qm=;
</imgdir> 1V*8,YiC<
<imgdir name="hit1"> u|_LR5S!j
<canvas name="0" width="4" height="4"> EFa{O`_@U
<vector name="origin" x="36" y="53"/> RR[)UQ
<int name="delay" value="30"/> 3JlC/v#0
<vector name="head" x="1" y="-1500"/> hV3,^#9o
</canvas> e/]O<, *
</imgdir> 4cXAT9
<imgdir name="die1"> dp"<KcP_
<canvas name="0" width="213" height="450"> 2|0Je^$|
<vector name="origin" x="774" y="495"/> mC*W2#1pF
<int name="delay" value="180"/> LCo1{wi
<vector name="head" x="1" y="-1500"/> 8Ehy9<
<int name="a0" value="255"/> i63`B+L{
<int name="a1" value="255"/> wo7N7R5
</canvas> rt5oRf:wY
<canvas name="1" width="227" height="493"> '|YtNhWZ?
<vector name="origin" x="778" y="534"/> [ -9)T
<int name="delay" value="180"/> q;~R:}?@
<vector name="head" x="1" y="-1500"/> lF;ziF
</canvas> _qC+'RE3
<canvas name="2" width="232" height="497"> }
D/+<
<vector name="origin" x="783" y="533"/> CbTf"pl
<int name="delay" value="180"/> _%A/ )
<vector name="head" x="1" y="-1500"/> .x)>f
</canvas> E<D+)A
<canvas name="3" width="237" height="497"> oJlN.Q#u&
<vector name="origin" x="787" y="529"/> Ap
F*a$),
<int name="delay" value="180"/> >Jm-2W5J
<vector name="head" x="1" y="-1500"/> 5z
9r S<
</canvas> 1zb$5 {,|
<canvas name="4" width="239" height="494"> =gMaaGg p,
<vector name="origin" x="788" y="525"/> G
]L0eV
<int name="delay" value="180"/> E@5
zd@[
<vector name="head" x="1" y="-1500"/> ~I8v5 H
</canvas> NDB*BmG
<canvas name="5" width="241" height="496"> fap|SMGt
<vector name="origin" x="789" y="526"/> VRtbHam
<int name="delay" value="180"/> FX7Cjo#=R
<vector name="head" x="1" y="-1500"/> ;eS;AHZ
</canvas> (,- 5(fW
<canvas name="6" width="243" height="494"> w$DG=!
<vector name="origin" x="790" y="523"/> x\Nhix}1D
<int name="delay" value="180"/> k9*J*7l-m
<vector name="head" x="1" y="-1500"/> !6XvvTs/<
</canvas> *fxep08B
<canvas name="7" width="243" height="491"> +l2e[P+q
A
<vector name="origin" x="790" y="520"/> &
_Cxv8
<int name="delay" value="180"/> T4V[RN
<vector name="head" x="1" y="-1500"/> 9O),/SH;:
</canvas> S2koXg(
<canvas name="8" width="241" height="483"> B8bvp:Ho|
<vector name="origin" x="789" y="513"/> uuI3NAi~
<int name="delay" value="180"/> 6obQ9L c
<vector name="head" x="1" y="-1500"/> ucQezmie
</canvas> KW&nDu