|
小妖

- UID
- 42564
- 精华
- 0
- 积分
- 22
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2018-4-25 19:00 只看该作者
 
解析技能学习到释放的全过程.
最近想和自己小伙伴一起玩魔力, 由于个人动手能力比较强, 所以搭建服务器的工作就落在我身上了, 从找服务端到架设(单机两键端开的服, 个人电脑+花生壳内网穿透) 中间经历的坑真的是不计其数, 随便写一些心得 , 也欢迎大家来一起讨论 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( k8 Y( J. q1 c* d, b
QQ:15203009 魔力私服,最新魔力宝贝私服技术交流3 S4 \0 a- _0 R2 u9 j& q c
7 |: A* _' W! M+ Z4 Ubbs.mocwww.com那么聊正题 , 关于技能这个东西 , 在魔力这个游戏的框架下 , 到底是怎么来的...
! G) r( C l: Rbbs.mocwww.com
& w5 `: t) n+ y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート首先, 从学习技能开始
% k8 a, }1 ?% q# Y: J: h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート学习技能 , 需要修改的是NPC.txt这个data文件, 注意, 修改服务端任何文件时, 最好用专门的修改工具/或者excel ,并且最好在修改之后用另一个相同功能的工具来校验, 最次也要用np++这种 , 千万不要用文本文档的方式 , 因为魔力的服务端data文件中 ,除了你能看到的数字, 还包含了各种坑人的空格, 而且有些文件里的格式并不是你想的那样改了数字就能生效, 所以单纯的改, 很可能导致这行语法错误, 为了一个文件反复的开启关闭服务器特别折磨人的耐心, 这也是大多数人选择要别人改好的文件或者单纯复制粘贴的原因 , 因为觉得自己怎么改都改不好. 其实只要格式正确, 改文件是很简单的事儿, 而格式正确最主要的就是不要用太简单的编辑工具. 其实很多时候往excel粘贴一下, 然后用表格修改, 然后再copy回来, 远比在文档里浪费时间来的实际. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 I" ]3 b/ s7 t' |" b1 I* k
% v; b3 j, i9 \0 [ s' L% B3 m
言归正传 , 回到npc这个data文件
' z+ S. ?7 N `, v; n8 O2 _7 b魔力私服,最新魔力宝贝私服技术交流
! F! p |" g0 ^' \) PNPC类型 名字 未知 NPCID 未知 未知 未知 未知 地图ID 坐标 坐标 坐标 坐标 坐标 坐标 坐标 坐标 未知 未知 朝向 图档 未知 未知 未知 功能
6 M+ P1 q/ W6 u/ z: Jbbs.mocwww.comSkillmaster 反击学习石像 0 990001 0 1 1 0 777 92 1 92 1 92 1 92 1 1 60000 4 17233 0 1 0 11|9|10|11|12| 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 l, z7 j o, ]# P( F9 t# g9 H* r6 b
bbs.mocwww.com3 Z2 ^0 ?0 `' F6 `$ l# _5 O7 j( X
这就是一个很常见的技能学习NPC
k$ n' A. V8 l+ Y2 \, U魔力私服,最新魔力宝贝私服技术交流NPC类型
- `3 y7 b+ c! k) `$ U+ N" l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート决定我们和这个NPC交互的基本模板. 妖城在线论坛4 b: c, S( x: S) h) S6 E% V; P
名字 魔力私服,最新魔力宝贝私服技术交流- q6 [. c6 Y4 _/ }: C, |; a2 I0 v
就是鼠标放上去的时候左下角显示的名字. 魔力私服,最新魔力宝贝私服技术交流0 F% Q" e" }6 b; z: x X
NPC编号
# p* t6 O, L- k: g0 P魔力私服,最新魔力宝贝私服技术交流就是辨识这个NPC的唯一编码,注意修改的时候,不要重复,建议在自己搭服务器的时候,去找一个相对比较长的空白段,然后自己添加的NPC放在一个区块, 并且ID都在这个空白段内.这样怎么弄都很方便 魔力私服,最新魔力宝贝私服技术交流" O3 g* `3 S% _& T1 v
地图ID
7 k0 F, O2 o. L# p n# _7 r魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表NPC所在地图ID坐标有4个
, [ u: c$ y1 E魔力私服,最新魔力宝贝私服技术交流划了一个区域是NPC出现的范围 , 写一样的话就固定了 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( n2 n) T7 q8 m6 y* k: r d0 o
朝向
. `6 y0 _( S' k8 R# U! d" K从朝左上顺时针一圈, 分别对应 0-7 , 比如0是左上 , 4是右下
# ~' }; J" ~" [! y7 z: }: q% m图档 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ h5 C2 S" |5 `( Y0 s
NPC的外形所用的图片编号, 想用什么自己查 魔力私服,最新魔力宝贝私服技术交流 c5 E. K: H# x) ~; x8 j
功能 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; ?3 S9 ?' m: }. ~# v5 a
SKillmaster的功能一般是5个数字 , 分别对应 , 技能skill号|msgID1|msgID2|msgID3|msgID4| (这个类型的NPC最后要用|结尾 , 交换和商人不用.) 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 X4 p6 X, s% s B+ X
* e d2 q4 Z* F8 x) ? W- k妖城在线论坛而4个msg分别对应
7 U+ ]; j1 }2 I. _5 ^msg1 ,
( Q! N2 d5 I& k" t妖城在线论坛
2 ]& X e% N2 M3 A- S
bbs.mocwww.com( r# f# `6 q0 R/ R% ~
/ r! I- i ]. h9 l* a魔力私服,最新魔力宝贝私服技术交流msg2 3 妖城在线论坛0 o$ _7 w* C0 }; p/ w0 J2 S' l& P
$ k9 t; i$ w: N2 {4 ]
6 F; @: W# v' W7 q5 ~$ r5 J/ |8 O
* X# o0 Y5 p* I( C魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表msg 4
4 w/ Z* \& x5 i9 b# hbbs.mocwww.com
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) E( Q) I8 k! O- Q
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! r5 Q4 D# p3 j1 ?
/ o2 G) B# @6 c$ z# T—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这里 一个学技能的NPC , 就解释完了 , 接下来解释skill 和skilllv(关于skill 和skillID的具体格式解释 搜索一下论坛有很多, 而且没什么歧义或者不好懂的地方, 这里就不解释了)
3 @! r' R+ Q2 l2 G* U9 r/ w0 @% l魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" S; U! r; r; m
当一个角色向一个技能NPC选择想学习技能的时候, 这时候服务器首先会读取这个NPC的功能数据 , 取出skill号 , 比如上述例子中的skill ID "11", 然后根据玩家角色的jobID+skillID , 去找到skilllv文件中的数据, 如果对应的级别数据是0 则提示 , 该技能并不适合你 + u3 e$ Z) P7 ?1 H/ p1 i
) J1 }" C. P: m9 s3 h) V! b3 V魔力私服,最新魔力宝贝私服技术交流如果没有找到数据 , 则会返回查询skill文件中这个技能的default level (skill中第5个参数, 很多老技能都是10) , 如果这里>0 , 那么这个角色就可以学到这个技能 魔力私服,最新魔力宝贝私服技术交流# w: D+ G( w/ F; t
如果这里=0 , 那么也会提示 , 该技能并不适合你.
9 D9 F2 F/ b4 v% p) v" \4 }—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
1 Y& P+ H) n* S+ Q" Q7 Q) abbs.mocwww.com所以 如果你新做了一个技能 / 职业 , 既不想写超长的skilllv data , 又不想让无关的职业学到这个技能 / 不想让这个职业学到一堆无关技能 , 把所有的default级别都改成0
9 Z0 u0 h% Q* _6 S7 y( K, ?- j- e2 `魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 R% T$ T! I# X4 Q6 V
接下来 , 角色学到了技能 , 打开技能列表, 看到的东西首先是这个技能的skill名..然后在列表点击之后 , 就进入了这个技能所对应的tech数据了
( D4 ]4 y+ l. [& z* i& p; V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
3 o" h- n2 i/ S$ S: ]' L/ r2 Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート首先, 服务端会查询,该技能所关联的tech相关的数据都取出来 妖城在线论坛 u1 o, w, x: E; J7 v
妖城在线论坛1 v, v9 `+ I9 M. |
| 技能名称 | 技术ID | 技能参数
8 q: N6 ^. x/ d) S( o妖城在线论坛 | 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 @( G; K2 ^" P1 X! T
图档ID/技能ID |
3 X$ L5 m0 r) l9 K s* a6 K" w3 abbs.mocwww.commsgID |
8 B4 ^* p0 r( j8 o. m! q妖城在线论坛skill_ID |
$ W; U8 m5 _ u1 ]8 k6 k! {妖城在线论坛使用等级 | 魔力私服,最新魔力宝贝私服技术交流' c8 n7 H( _6 |
技能类型 |
2 p5 q4 s* m% L& i" o, ~魔力私服,最新魔力宝贝私服技术交流使用对象 | 学习价格 | | 魔力私服,最新魔力宝贝私服技术交流/ u* A9 p4 i, x( Y! C* z% |' W
使用耗魔 |
{8 z3 Z1 C% }3 ~1 R) _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表人物/宠物技能 | | 连击·舞LV1 | TECH_ContinuationAttack | AS:0,AN:2,AM:2,DD:-50, | 0 | 130000 | 0 | 1 | 1 | 1141 | | | 10 | 1 |
7 \; a" a. J7 F- Z$ Wbbs.mocwww.com
: o% Q8 q' }9 q9 a4 \—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート首先会根据你当前的技能等级, 去把tech中的使用等级<=技能等级的技能都显示出来 (自创技能的tech必须包含1级 , 否则无法练级...虽然能学习, 但进去看到的列表是空白的)
7 P7 q- U* ^- a/ c" W魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表妖城在线论坛, {0 O, u$ m' B* T! K
然后角色根据技能的使用对象选择技能目标 , 接下来 就是tech中其他参数的解析了 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ T7 `# v2 B9 H: H3 O
妖城在线论坛. O* ], x9 S' L& A! I
名称 , 不重要
8 {* J i( i3 p* }# V4 Y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
2 T+ R. b" ~; U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表技术ID , 这个是技能的核心参数之一 , 当角色在战斗中选择了该技能 , 那么服务端接收到该请求先判断服务端是否有该技术参数, 这个是保存在gmsv中的...如果你的服务器上某个技能 , 点了之后直接就跳过该回合 , 并且服务器报错 非法tech参数(Illegal tech use)的时候, 恭喜你 这个技能在你的服务端根本就不存在 , 你不需要试了 , 并不是参数或者图档问题...只是你服务器不支持罢了 妖城在线论坛( D8 x1 K3 t( L5 d6 i: |: G: X- ]
- Z1 x. `1 e7 l/ f3 O: _bbs.mocwww.com毕竟很多人对编程是不通的 , 我们来做个简单的解释, bbs.mocwww.com5 L- Q, i+ t3 F7 X! k5 U- B
妖城在线论坛- o6 ]# x. g/ Z' d
服务器 就像是一个黑盒子 , 里面编写了各种的方法 , 比如我 投入参数 , 1 和 1 , 然后方法是加 , 当这两个数字丢进去的时候, 服务器就会把2丢出来...这就是服务器的运行原理.. 魔力私服,最新魔力宝贝私服技术交流& U" p/ O# L2 L; U6 J
而有时候 , 比如你说 , 3 和5 , 方法是乘法 , 服务器并不会这个方法 , 他就会说 , 不好意思我听不懂, 我不知道乘法是什么, 当然 也不会返回正确的结果 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; X* }7 G0 w1 ~) N% J; p
6 B: l1 ~+ [0 {
接着往下..
1 x0 J# i6 ~% z3 U# g+ b! lbbs.mocwww.com
1 l& p& t$ N3 X& W: A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート技能参数 , 这个参数决定了技能的伤害 , 具体的内容论坛一搜就搜到 , 不多赘述 , 很好玩 , 也是我们比较能玩花样的地方. bbs.mocwww.com6 R8 `: J$ ~! B: g$ T
妖城在线论坛; @/ T% t J. D7 {! x& D! T
图档ID/技能ID妖城在线论坛( X6 j8 p9 ]3 _+ f6 P5 v2 g, O5 b
4 H1 L) a# R& j2 f0 b/ U' z7 V这个参数是另一个核心参数 , 这个参数决定了技能释放时的动画 , 比如我选择释放一个乾坤 , 那我起手的动画是什么样 , 人物怎么过去 , 打到怪的时候的特效是怎样的. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; u, q ]3 p9 k+ B
魔力私服,最新魔力宝贝私服技术交流: |* R4 h; H0 A
这个ID其实分成2部分 , 技能ID , 决定了同一种技能到底是哪级的效果 , 图档ID , 什么技能
0 n# K: E% x6 [/ ?+ f# A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力宝贝私服技术交流6 {9 q' G% [2 b" m: ~7 J# e
例如乾坤一掷lv5 , 这个技能的 图档/技能ID =305 , bbs.mocwww.com4 \7 K9 L# ^' [) x3 \; M
首先把这个数字分成 2部分 , 03 和 05 " S& e7 ^4 y2 a% X3 `; A( V
$ M% v5 U0 Z/ C魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表03决定了是什么技能 , 05 决定了什么等级
7 B( }. [9 A ] z7 A. ibbs.mocwww.com魔力私服,最新魔力宝贝私服技术交流, j9 z% ]7 N) }' R: e1 F; N3 _+ O
再拿一个例子来说 强力陨石魔法-X , ID=2339 , 23 决定这个技能是陨石魔法 , 39 , 决定这个技能的等级特效
5 m* f7 T7 H2 _% u8 U8 R
) G* Q* i* F: d* c# U: H" |连击最可怕 , 1级连击这个ID是0 , 其实就等于 0000 bbs.mocwww.com/ w+ k) ~5 k* o8 b, l
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 t* h5 b% x. p# L
00=连击 , 00=1级 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 E+ e' E7 f8 H
妖城在线论坛+ G: ~# i0 [0 v8 D% q- W
这里的技能ID 不等于skill.txt里的 skill ID , 这两个东西不存在关联关系 , 所以skill ID随便写没关系 , 但是技能ID是写在gmsv里面的..不能通过data里的文件更改
1 B5 p D2 k% y1 Z" Fbbs.mocwww.com妖城在线论坛8 S8 d& W3 `9 M, e5 _
那么什么情况会导致图档不存在崩溃呢. 一般是因为客户端图档不全 , 例如服务端支持15级技能的特效 , 但是客户端不支持 , 客户端不包含这个动画的图档 , 当服务端返回信息要求客户端播放这个动画图档的时候 , 客户端做不到 ...就会卡住死循环...
$ y7 {! p. d8 B. {2 b% j, B& @
: Q: U9 i8 @' C! q. m {. m7 Rbbs.mocwww.com所以 当我们想做一个新技能的时候, 只要考虑到以上的这些要素 , 就可以正常的完成一个技能从学习到释放的全过程, 不会陷入无止境的坑里面了..
" p3 B- R" P2 _1 i, Ibbs.mocwww.com魔力私服,最新魔力宝贝私服技术交流! S$ d8 {. s2 o9 P0 a; `
[ 本帖最后由 晴天老不点 于 2018-4-25 19:03 编辑 ]
|