|
小妖

- UID
- 42564
- 精华
- 0
- 积分
- 22
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2018-4-25 19:00 只看该作者
 
解析技能学习到释放的全过程.
最近想和自己小伙伴一起玩魔力, 由于个人动手能力比较强, 所以搭建服务器的工作就落在我身上了, 从找服务端到架设(单机两键端开的服, 个人电脑+花生壳内网穿透) 中间经历的坑真的是不计其数, 随便写一些心得 , 也欢迎大家来一起讨论
8 l! A7 s1 M$ w# W魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表QQ:15203009
! A1 e- b' A& }& @' R* J, Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛# L' J, U( J* ^, W3 ^
那么聊正题 , 关于技能这个东西 , 在魔力这个游戏的框架下 , 到底是怎么来的...
& x* m! U/ }; v9 K- Mbbs.mocwww.combbs.mocwww.com V( k4 {! p& R; s- `
首先, 从学习技能开始
4 a: t& ]' M6 T' g M5 |bbs.mocwww.com学习技能 , 需要修改的是NPC.txt这个data文件, 注意, 修改服务端任何文件时, 最好用专门的修改工具/或者excel ,并且最好在修改之后用另一个相同功能的工具来校验, 最次也要用np++这种 , 千万不要用文本文档的方式 , 因为魔力的服务端data文件中 ,除了你能看到的数字, 还包含了各种坑人的空格, 而且有些文件里的格式并不是你想的那样改了数字就能生效, 所以单纯的改, 很可能导致这行语法错误, 为了一个文件反复的开启关闭服务器特别折磨人的耐心, 这也是大多数人选择要别人改好的文件或者单纯复制粘贴的原因 , 因为觉得自己怎么改都改不好. 其实只要格式正确, 改文件是很简单的事儿, 而格式正确最主要的就是不要用太简单的编辑工具. 其实很多时候往excel粘贴一下, 然后用表格修改, 然后再copy回来, 远比在文档里浪费时间来的实际.
, i9 y. N0 u* t# g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛9 R* ^" O) p' l9 P' |' Y
言归正传 , 回到npc这个data文件
$ E8 P# Z: H, V1 m d魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
2 X$ A7 C4 s4 `: V6 J4 o& C- C1 \" J7 e妖城在线论坛NPC类型 名字 未知 NPCID 未知 未知 未知 未知 地图ID 坐标 坐标 坐标 坐标 坐标 坐标 坐标 坐标 未知 未知 朝向 图档 未知 未知 未知 功能
' L6 ]: v' W; i' ~1 [6 QSkillmaster 反击学习石像 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| 5 i" V& R/ Y7 D
0 X! r/ M* u. x) }1 Z; C魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表这就是一个很常见的技能学习NPC 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, A7 `/ z7 ~1 u0 S3 [. y; L
NPC类型 魔力私服,最新魔力宝贝私服技术交流* h2 k) h5 Y3 \& S# e
决定我们和这个NPC交互的基本模板. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ i! G, M; V2 O4 q9 `6 o
名字 妖城在线论坛- r! k8 _: q0 J1 @) X2 Z3 x
就是鼠标放上去的时候左下角显示的名字. 魔力私服,最新魔力宝贝私服技术交流% L5 J& c+ p/ D6 x& |0 I d
NPC编号 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. R. y7 b1 A8 H. E& F5 ]9 s
就是辨识这个NPC的唯一编码,注意修改的时候,不要重复,建议在自己搭服务器的时候,去找一个相对比较长的空白段,然后自己添加的NPC放在一个区块, 并且ID都在这个空白段内.这样怎么弄都很方便 妖城在线论坛1 Y2 o) W2 A8 W7 n6 A, M
地图ID bbs.mocwww.com5 M; w" ?1 A6 R! m7 _1 d
NPC所在地图ID坐标有4个
8 f# s$ A0 A$ `, h7 v4 m划了一个区域是NPC出现的范围 , 写一样的话就固定了
) w% w5 |3 E4 a% { L" mbbs.mocwww.com朝向
+ @9 x9 _- W; Z, O9 a- [1 u魔力私服,最新魔力宝贝私服技术交流从朝左上顺时针一圈, 分别对应 0-7 , 比如0是左上 , 4是右下
- i# n6 i/ B' U% X魔力私服,最新魔力宝贝私服技术交流图档 妖城在线论坛, p: N! C4 U/ H3 q
NPC的外形所用的图片编号, 想用什么自己查 , U8 p/ X. U7 H3 q1 u- E& b4 ]! T
功能 妖城在线论坛; M0 O6 C* U% g/ _% Z$ I
SKillmaster的功能一般是5个数字 , 分别对应 , 技能skill号|msgID1|msgID2|msgID3|msgID4| (这个类型的NPC最后要用|结尾 , 交换和商人不用.)
) P5 E$ F- C* }1 P, K @4 \/ Nbbs.mocwww.com
5 M# ]- |! G* E+ K: d* E妖城在线论坛而4个msg分别对应 % j. _, E: t t
msg1 , bbs.mocwww.com' F( z' V! g9 C! R
2 U7 s$ G+ s1 G; }魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
* ?( ?6 X& }0 _妖城在线论坛妖城在线论坛$ s8 N; r3 k- Y) l( @! i! X# O
msg2 3
* v: h* _0 z$ y# q+ K. ?( y
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% o9 ~0 y( a* N4 G8 N& D
0 V( e- L; H( D6 h U9 Z6 l6 s3 |- ?0 w9 @) F$ P1 ]& X4 u: i
msg 4
4 Z/ n: y1 O& |9 G( o1 H+ G5 Y魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
妖城在线论坛" ^/ X6 I. S: i; }1 M0 s
bbs.mocwww.com) i9 x8 T; a# j5 ^* H- Q& h/ f
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' B& D- {0 h* B
这里 一个学技能的NPC , 就解释完了 , 接下来解释skill 和skilllv(关于skill 和skillID的具体格式解释 搜索一下论坛有很多, 而且没什么歧义或者不好懂的地方, 这里就不解释了) bbs.mocwww.com$ i' N3 D/ }3 S' g8 G# u, a
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, C( _8 v4 b$ Y
当一个角色向一个技能NPC选择想学习技能的时候, 这时候服务器首先会读取这个NPC的功能数据 , 取出skill号 , 比如上述例子中的skill ID "11", 然后根据玩家角色的jobID+skillID , 去找到skilllv文件中的数据, 如果对应的级别数据是0 则提示 , 该技能并不适合你 7 ]4 z0 |9 X& z X
8 e) O( N; @& s0 O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果没有找到数据 , 则会返回查询skill文件中这个技能的default level (skill中第5个参数, 很多老技能都是10) , 如果这里>0 , 那么这个角色就可以学到这个技能
- N( I0 q- o" d6 L7 V魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表如果这里=0 , 那么也会提示 , 该技能并不适合你.
& y4 N! u2 I2 t9 N3 l& J妖城在线论坛
: I$ z* B0 E, F魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表所以 如果你新做了一个技能 / 职业 , 既不想写超长的skilllv data , 又不想让无关的职业学到这个技能 / 不想让这个职业学到一堆无关技能 , 把所有的default级别都改成0
+ W- q/ H. }5 r3 x$ g魔力私服,最新魔力宝贝私服技术交流
& J5 X; C& x- |3 x; N5 @. {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表接下来 , 角色学到了技能 , 打开技能列表, 看到的东西首先是这个技能的skill名..然后在列表点击之后 , 就进入了这个技能所对应的tech数据了 妖城在线论坛/ C$ r3 V; P$ l1 R) n
% m2 w# S {! @, l
首先, 服务端会查询,该技能所关联的tech相关的数据都取出来 魔力私服,最新魔力宝贝私服技术交流4 w) n0 y6 {% M
$ B2 V3 f- A b" V+ k. d, M1 w" w* O| 技能名称 | 技术ID | 技能参数
& L% A) k" H5 Zbbs.mocwww.com |
# s& ~% s3 l i/ e$ Sbbs.mocwww.com图档ID/技能ID | 魔力私服,最新魔力宝贝私服技术交流/ b+ g) C( s( e% F$ K
msgID | bbs.mocwww.com/ F1 x8 G1 L) ?: x# L- c
skill_ID | bbs.mocwww.com/ r. o' }. @. v' t& V) k
使用等级 | 妖城在线论坛. c) B2 ~+ t: a1 ]6 r5 g' k
技能类型 | 魔力私服,最新魔力宝贝私服技术交流# r) @: v" L8 c( Z; ?% p6 `/ F$ ^
使用对象 | 学习价格 | |
9 P+ B8 `' K. A/ n/ d# J使用耗魔 | 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 X2 `+ S) `( f Y9 F! | l
人物/宠物技能 | | 连击·舞LV1 | TECH_ContinuationAttack | AS:0,AN:2,AM:2,DD:-50, | 0 | 130000 | 0 | 1 | 1 | 1141 | | | 10 | 1 |
6 {4 d! _8 e2 @' z; Y( ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 |: J* v5 S, z! C# x2 V
首先会根据你当前的技能等级, 去把tech中的使用等级<=技能等级的技能都显示出来 (自创技能的tech必须包含1级 , 否则无法练级...虽然能学习, 但进去看到的列表是空白的)
) U# O+ s l+ `* t
% T+ ]. \. U7 i& W3 m2 x然后角色根据技能的使用对象选择技能目标 , 接下来 就是tech中其他参数的解析了 妖城在线论坛/ @' g" M8 v$ t' L
7 h: j5 J' `/ e; N8 G; y魔力私服,最新魔力宝贝私服技术交流名称 , 不重要
1 P! h0 O7 c' q" ?) ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; h; ~( f' R6 p
技术ID , 这个是技能的核心参数之一 , 当角色在战斗中选择了该技能 , 那么服务端接收到该请求先判断服务端是否有该技术参数, 这个是保存在gmsv中的...如果你的服务器上某个技能 , 点了之后直接就跳过该回合 , 并且服务器报错 非法tech参数(Illegal tech use)的时候, 恭喜你 这个技能在你的服务端根本就不存在 , 你不需要试了 , 并不是参数或者图档问题...只是你服务器不支持罢了
7 S# k$ ~: b$ }# v. a: h4 {魔力私服,最新魔力宝贝私服技术交流. I$ P8 g+ f# U7 s
毕竟很多人对编程是不通的 , 我们来做个简单的解释, —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: n% [" r3 u7 V
: i/ r. a( r3 i( J7 M' {' N1 c服务器 就像是一个黑盒子 , 里面编写了各种的方法 , 比如我 投入参数 , 1 和 1 , 然后方法是加 , 当这两个数字丢进去的时候, 服务器就会把2丢出来...这就是服务器的运行原理..
# k5 w i `8 @! f2 @魔力私服,最新魔力宝贝私服技术交流而有时候 , 比如你说 , 3 和5 , 方法是乘法 , 服务器并不会这个方法 , 他就会说 , 不好意思我听不懂, 我不知道乘法是什么, 当然 也不会返回正确的结果 魔力私服,最新魔力宝贝私服技术交流# G! O* V" ~4 N
! L! B3 u( Y+ B/ c K0 y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート接着往下.. —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 u: t, i" S0 i/ h& j$ {
" \$ y# w1 b( I2 R! t6 P技能参数 , 这个参数决定了技能的伤害 , 具体的内容论坛一搜就搜到 , 不多赘述 , 很好玩 , 也是我们比较能玩花样的地方. bbs.mocwww.com- V: a ]" [& ~: T
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" ?1 G6 W" i" ]7 o7 g
图档ID/技能ID
0 `# e2 Z/ [ I
8 ~3 B% @+ g# w7 Q5 J—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这个参数是另一个核心参数 , 这个参数决定了技能释放时的动画 , 比如我选择释放一个乾坤 , 那我起手的动画是什么样 , 人物怎么过去 , 打到怪的时候的特效是怎样的. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. N. W% I0 s* T/ D6 T
5 O* f" b* d$ V
这个ID其实分成2部分 , 技能ID , 决定了同一种技能到底是哪级的效果 , 图档ID , 什么技能
: c5 }" ? ]4 N$ G: Vbbs.mocwww.com
) U8 s5 b$ a+ jbbs.mocwww.com例如乾坤一掷lv5 , 这个技能的 图档/技能ID =305 , bbs.mocwww.com6 g5 x @/ [) a, ]9 n- b
首先把这个数字分成 2部分 , 03 和 05
8 a+ G! u* q( G" W( t1 F/ U# ?7 t! s妖城在线论坛
: e- \- z; B: @9 {: S1 M03决定了是什么技能 , 05 决定了什么等级
$ O% z1 F% {. j- V: H- J1 m2 lbbs.mocwww.com4 o% v' I' \. i6 F" q# \" i" B0 g
再拿一个例子来说 强力陨石魔法-X , ID=2339 , 23 决定这个技能是陨石魔法 , 39 , 决定这个技能的等级特效
* P S; e6 Y. n5 J% Z魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 h) A2 M9 w% |1 @/ m# G
连击最可怕 , 1级连击这个ID是0 , 其实就等于 0000
. J4 A! l7 F5 {4 o3 J2 s魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力宝贝私服技术交流0 f J) c6 J. i6 U
00=连击 , 00=1级
; ^0 K& H m {4 Y# z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力宝贝私服技术交流- \& n9 S R; {! A P
这里的技能ID 不等于skill.txt里的 skill ID , 这两个东西不存在关联关系 , 所以skill ID随便写没关系 , 但是技能ID是写在gmsv里面的..不能通过data里的文件更改 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& w2 m, H, a* K) n
" n- w2 z ^8 n9 v" ]! ybbs.mocwww.com那么什么情况会导致图档不存在崩溃呢. 一般是因为客户端图档不全 , 例如服务端支持15级技能的特效 , 但是客户端不支持 , 客户端不包含这个动画的图档 , 当服务端返回信息要求客户端播放这个动画图档的时候 , 客户端做不到 ...就会卡住死循环...
( ?7 a" o; G3 k$ S5 L6 x+ L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
, y6 _, g' X E5 k& l# [8 Hbbs.mocwww.com所以 当我们想做一个新技能的时候, 只要考虑到以上的这些要素 , 就可以正常的完成一个技能从学习到释放的全过程, 不会陷入无止境的坑里面了.. —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 l: g8 U2 R' w1 M- ]
' }8 t+ {8 C! nbbs.mocwww.com[ 本帖最后由 晴天老不点 于 2018-4-25 19:03 编辑 ]
|