|
小妖

- UID
- 42564
- 精华
- 0
- 积分
- 22
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2018-4-25 19:00 只看该作者
 
解析技能学习到释放的全过程.
最近想和自己小伙伴一起玩魔力, 由于个人动手能力比较强, 所以搭建服务器的工作就落在我身上了, 从找服务端到架设(单机两键端开的服, 个人电脑+花生壳内网穿透) 中间经历的坑真的是不计其数, 随便写一些心得 , 也欢迎大家来一起讨论 妖城在线论坛) c/ q Z: Q+ J9 M
QQ:15203009 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' o# ?1 c7 E6 E" Y5 a! w
* T$ a4 e$ e9 i5 j$ `7 Sbbs.mocwww.com那么聊正题 , 关于技能这个东西 , 在魔力这个游戏的框架下 , 到底是怎么来的... 6 r9 f; D# d) r" s. Q; K
0 [+ [6 @3 u! J" U& Z3 V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート首先, 从学习技能开始
" i) e9 Q6 z+ i+ S, J魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表学习技能 , 需要修改的是NPC.txt这个data文件, 注意, 修改服务端任何文件时, 最好用专门的修改工具/或者excel ,并且最好在修改之后用另一个相同功能的工具来校验, 最次也要用np++这种 , 千万不要用文本文档的方式 , 因为魔力的服务端data文件中 ,除了你能看到的数字, 还包含了各种坑人的空格, 而且有些文件里的格式并不是你想的那样改了数字就能生效, 所以单纯的改, 很可能导致这行语法错误, 为了一个文件反复的开启关闭服务器特别折磨人的耐心, 这也是大多数人选择要别人改好的文件或者单纯复制粘贴的原因 , 因为觉得自己怎么改都改不好. 其实只要格式正确, 改文件是很简单的事儿, 而格式正确最主要的就是不要用太简单的编辑工具. 其实很多时候往excel粘贴一下, 然后用表格修改, 然后再copy回来, 远比在文档里浪费时间来的实际. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% F* V8 o9 g. s9 t$ D) L6 G
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; j0 L' }! y6 A F8 {
言归正传 , 回到npc这个data文件 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 M% l! S7 ]! p& B+ v$ a2 P
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 Q3 t& j- s1 N- [
NPC类型 名字 未知 NPCID 未知 未知 未知 未知 地图ID 坐标 坐标 坐标 坐标 坐标 坐标 坐标 坐标 未知 未知 朝向 图档 未知 未知 未知 功能 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 b3 {+ z. Y0 v9 g
Skillmaster 反击学习石像 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|
0 b5 [7 C7 H" T/ W魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; M3 y9 J$ h7 e0 O
这就是一个很常见的技能学习NPC 妖城在线论坛' L3 n- ~0 ^: r* M& O/ Z/ B
NPC类型
% ?! P( J a: ?2 p( q! b% ?妖城在线论坛决定我们和这个NPC交互的基本模板. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. O% M3 ]) R) n' u+ K* v) s3 U7 E
名字 - i2 s" \# A, R) C+ k+ C+ Z* Y
就是鼠标放上去的时候左下角显示的名字.
, y% D- ~; P9 [- d6 N! s1 N妖城在线论坛NPC编号 * f4 ?% Z7 M1 x1 `8 Q2 y
就是辨识这个NPC的唯一编码,注意修改的时候,不要重复,建议在自己搭服务器的时候,去找一个相对比较长的空白段,然后自己添加的NPC放在一个区块, 并且ID都在这个空白段内.这样怎么弄都很方便 魔力私服,最新魔力宝贝私服技术交流6 R+ c- V2 G# H- J8 q
地图ID 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) Z4 M; d' z3 _$ Z
NPC所在地图ID坐标有4个 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" y8 b/ E# N; I' R2 K
划了一个区域是NPC出现的范围 , 写一样的话就固定了 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 K, g7 `0 |8 k
朝向
4 F: w7 J, @6 t, \. c4 U% n& Z n魔力私服,最新魔力宝贝私服技术交流从朝左上顺时针一圈, 分别对应 0-7 , 比如0是左上 , 4是右下 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- p X B; j+ `. K- \ c
图档 ; G9 s- c6 j; I- W/ i9 j+ Q3 E Q
NPC的外形所用的图片编号, 想用什么自己查
( M2 ^6 }" \7 z妖城在线论坛功能 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 _$ S* P+ T, M, x
SKillmaster的功能一般是5个数字 , 分别对应 , 技能skill号|msgID1|msgID2|msgID3|msgID4| (这个类型的NPC最后要用|结尾 , 交换和商人不用.)
* U8 ]1 ^. K4 D魔力私服,最新魔力宝贝私服技术交流
0 j; [* O! a' J$ r5 p( U, q% I魔力私服,最新魔力宝贝私服技术交流而4个msg分别对应
5 _8 S r1 k% |! K/ ~—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートmsg1 ,
% b: Z+ y* ` p魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
# \$ W) \; ~% {+ e( s% p/ ]" U3 [bbs.mocwww.com妖城在线论坛9 s$ L5 ?" a$ ?+ _- j# k
- d G5 p# q. [) W* I魔力私服,最新魔力宝贝私服技术交流msg2 3
+ p0 a4 {2 @$ x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
" u0 _% y8 _8 d+ x* Pbbs.mocwww.combbs.mocwww.com1 r# V: y6 G: w5 K0 |
魔力私服,最新魔力宝贝私服技术交流- O- O$ T* v) k3 b/ {! W/ {" d
msg 4
$ i3 c! N. T8 _2 g9 sbbs.mocwww.com
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* Q2 u4 G8 G- ?
( H1 M2 b6 d. _" k8 z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
" X1 D) g1 x: i$ C! r—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这里 一个学技能的NPC , 就解释完了 , 接下来解释skill 和skilllv(关于skill 和skillID的具体格式解释 搜索一下论坛有很多, 而且没什么歧义或者不好懂的地方, 这里就不解释了) . j2 z3 T0 Z6 O7 D, k5 v8 c: `3 B" d
4 ^+ y$ |6 R" N" J* n; ?: v5 g魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表当一个角色向一个技能NPC选择想学习技能的时候, 这时候服务器首先会读取这个NPC的功能数据 , 取出skill号 , 比如上述例子中的skill ID "11", 然后根据玩家角色的jobID+skillID , 去找到skilllv文件中的数据, 如果对应的级别数据是0 则提示 , 该技能并不适合你 , f2 P" ?5 z' [. s5 s+ p% Z
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. u9 @7 o! P# M; u- Q
如果没有找到数据 , 则会返回查询skill文件中这个技能的default level (skill中第5个参数, 很多老技能都是10) , 如果这里>0 , 那么这个角色就可以学到这个技能
4 c/ u3 s* F. y: l- P: j; }如果这里=0 , 那么也会提示 , 该技能并不适合你.
- M) G3 C2 j, g. y3 q! L
$ z- \/ R, A9 E3 Cbbs.mocwww.com所以 如果你新做了一个技能 / 职业 , 既不想写超长的skilllv data , 又不想让无关的职业学到这个技能 / 不想让这个职业学到一堆无关技能 , 把所有的default级别都改成0
1 L" W4 ~+ M0 H2 a0 k2 b妖城在线论坛魔力私服,最新魔力宝贝私服技术交流1 ]0 @8 S. I; Z7 L
接下来 , 角色学到了技能 , 打开技能列表, 看到的东西首先是这个技能的skill名..然后在列表点击之后 , 就进入了这个技能所对应的tech数据了 魔力私服,最新魔力宝贝私服技术交流2 Q: h9 C8 p; F
7 {/ l) [9 U2 t1 O+ t5 u妖城在线论坛首先, 服务端会查询,该技能所关联的tech相关的数据都取出来
7 J) F2 x/ V2 ^# g8 M& [魔力私服,最新魔力宝贝私服技术交流) z1 S3 A3 A: g/ i7 k
| 技能名称 | 技术ID | 技能参数
0 D/ V; [$ C8 q7 I1 ~ |
5 x3 f' E' D1 h3 y图档ID/技能ID |
; B2 s, ]# k: ~魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表msgID | 妖城在线论坛4 y% g9 C6 M. X" e; ?
skill_ID | —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 }" I1 p& ^6 `* C- j
使用等级 | bbs.mocwww.com: A8 G& s6 @0 n; M5 ~7 }
技能类型 | bbs.mocwww.com4 f5 N% ?& a9 s
使用对象 | 学习价格 | |
+ S$ m3 f" r' E' K/ Z+ ^bbs.mocwww.com使用耗魔 |
0 v2 z3 Q( C3 ~6 C+ i% c3 m. wbbs.mocwww.com人物/宠物技能 | | 连击·舞LV1 | TECH_ContinuationAttack | AS:0,AN:2,AM:2,DD:-50, | 0 | 130000 | 0 | 1 | 1 | 1141 | | | 10 | 1 | , y) h) d! {; g" x6 r
7 W5 m* h) Q' v4 y3 \ G/ [. [9 |—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート首先会根据你当前的技能等级, 去把tech中的使用等级<=技能等级的技能都显示出来 (自创技能的tech必须包含1级 , 否则无法练级...虽然能学习, 但进去看到的列表是空白的)
( P* d B( y8 p7 S# z, K: H3 Vbbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 a1 k7 m1 y, r
然后角色根据技能的使用对象选择技能目标 , 接下来 就是tech中其他参数的解析了 8 W$ B4 m M6 Y/ ^ k
魔力私服,最新魔力宝贝私服技术交流, b; i' X' K; K! X
名称 , 不重要 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; a( M. c/ p+ I% g- O% Y, x
0 Y, t9 `, t0 t9 k Fbbs.mocwww.com技术ID , 这个是技能的核心参数之一 , 当角色在战斗中选择了该技能 , 那么服务端接收到该请求先判断服务端是否有该技术参数, 这个是保存在gmsv中的...如果你的服务器上某个技能 , 点了之后直接就跳过该回合 , 并且服务器报错 非法tech参数(Illegal tech use)的时候, 恭喜你 这个技能在你的服务端根本就不存在 , 你不需要试了 , 并不是参数或者图档问题...只是你服务器不支持罢了 bbs.mocwww.com) k3 E; w+ M7 M
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 u; I8 K1 e4 g5 |1 s
毕竟很多人对编程是不通的 , 我们来做个简单的解释,
% ~, l( Y0 K2 E" Q2 F `3 X! o1 `魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表妖城在线论坛1 \6 C. h7 L/ F* M6 ]) R/ E! F
服务器 就像是一个黑盒子 , 里面编写了各种的方法 , 比如我 投入参数 , 1 和 1 , 然后方法是加 , 当这两个数字丢进去的时候, 服务器就会把2丢出来...这就是服务器的运行原理.. —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 M! q: p1 J/ r$ Z$ e5 y9 v
而有时候 , 比如你说 , 3 和5 , 方法是乘法 , 服务器并不会这个方法 , 他就会说 , 不好意思我听不懂, 我不知道乘法是什么, 当然 也不会返回正确的结果
. L2 w \, H* v7 l. u$ J2 C! O3 g) ~bbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! z; f' `9 s+ o0 B0 t
接着往下.. : {; D r ]& j; j$ d9 |
* q! Z3 P. f+ F, y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート技能参数 , 这个参数决定了技能的伤害 , 具体的内容论坛一搜就搜到 , 不多赘述 , 很好玩 , 也是我们比较能玩花样的地方.
$ |( W m7 p( c" ?6 [魔力私服,最新魔力宝贝私服技术交流妖城在线论坛) B& s/ \5 R! |1 x( \: f
图档ID/技能IDbbs.mocwww.com- I4 {) }+ c5 s5 I) Y5 Q( g" S6 J- w! e
bbs.mocwww.com! ]9 K; Q, m2 x; W) ^$ A' j
这个参数是另一个核心参数 , 这个参数决定了技能释放时的动画 , 比如我选择释放一个乾坤 , 那我起手的动画是什么样 , 人物怎么过去 , 打到怪的时候的特效是怎样的. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; a2 z5 N1 h2 l
) Z0 W2 g/ y$ N5 M7 a9 e这个ID其实分成2部分 , 技能ID , 决定了同一种技能到底是哪级的效果 , 图档ID , 什么技能
) j+ z" K3 q# h9 N/ ?( f—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
! p0 }* @/ W" @. A2 C9 o8 A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート例如乾坤一掷lv5 , 这个技能的 图档/技能ID =305 , 妖城在线论坛4 A }0 A5 O$ s; ~. G. ^
首先把这个数字分成 2部分 , 03 和 05 魔力私服,最新魔力宝贝私服技术交流6 g* e# F! N& G' J) p3 v4 i
! G& |/ n/ n. e: y( x- t" F, S
03决定了是什么技能 , 05 决定了什么等级
) f2 J4 s( z; a1 a魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
' R. P. y! @ M5 ~bbs.mocwww.com再拿一个例子来说 强力陨石魔法-X , ID=2339 , 23 决定这个技能是陨石魔法 , 39 , 决定这个技能的等级特效 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& G" U# I- }2 Y, g4 g9 f; J
( a6 t7 T, i0 i( M- q连击最可怕 , 1级连击这个ID是0 , 其实就等于 0000 魔力私服,最新魔力宝贝私服技术交流3 K. r5 D$ Y: t9 \- v2 D2 B
3 U0 w7 o* O m魔力私服,最新魔力宝贝私服技术交流00=连击 , 00=1级 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' [/ R5 R" {9 u+ t
妖城在线论坛5 G" {/ [9 z- D5 B5 H
这里的技能ID 不等于skill.txt里的 skill ID , 这两个东西不存在关联关系 , 所以skill ID随便写没关系 , 但是技能ID是写在gmsv里面的..不能通过data里的文件更改 妖城在线论坛, p6 J% B D3 v/ \3 j
bbs.mocwww.com3 J% {2 y$ \4 v1 k' I& d; M" Z# {
那么什么情况会导致图档不存在崩溃呢. 一般是因为客户端图档不全 , 例如服务端支持15级技能的特效 , 但是客户端不支持 , 客户端不包含这个动画的图档 , 当服务端返回信息要求客户端播放这个动画图档的时候 , 客户端做不到 ...就会卡住死循环... —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( l" q' j1 m3 V- z ^/ Q% h- Y
妖城在线论坛* R3 i3 ]% ], |7 x- C) X$ u
所以 当我们想做一个新技能的时候, 只要考虑到以上的这些要素 , 就可以正常的完成一个技能从学习到释放的全过程, 不会陷入无止境的坑里面了..
# `1 B6 | t$ [9 P2 n妖城在线论坛妖城在线论坛1 G1 a8 G' J- D' R& ^7 c5 F& D R
[ 本帖最后由 晴天老不点 于 2018-4-25 19:03 编辑 ]
|