|
小妖

- UID
- 42564
- 精华
- 0
- 积分
- 22
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2018-4-25 19:00 只看该作者
 
解析技能学习到释放的全过程.
最近想和自己小伙伴一起玩魔力, 由于个人动手能力比较强, 所以搭建服务器的工作就落在我身上了, 从找服务端到架设(单机两键端开的服, 个人电脑+花生壳内网穿透) 中间经历的坑真的是不计其数, 随便写一些心得 , 也欢迎大家来一起讨论
' F) t) }* ], V' }魔力私服,最新魔力宝贝私服技术交流QQ:15203009
3 q8 F8 e4 U* i* H' R魔力私服,最新魔力宝贝私服技术交流—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( T0 M! \* j$ G( O5 d& Z
那么聊正题 , 关于技能这个东西 , 在魔力这个游戏的框架下 , 到底是怎么来的... bbs.mocwww.com( ~$ b" n& f/ P
魔力私服,最新魔力宝贝私服技术交流1 O0 }$ b0 Y! h( I) R( G
首先, 从学习技能开始 9 Z/ S1 J1 L3 Q% ~0 X. @) K+ i. E
学习技能 , 需要修改的是NPC.txt这个data文件, 注意, 修改服务端任何文件时, 最好用专门的修改工具/或者excel ,并且最好在修改之后用另一个相同功能的工具来校验, 最次也要用np++这种 , 千万不要用文本文档的方式 , 因为魔力的服务端data文件中 ,除了你能看到的数字, 还包含了各种坑人的空格, 而且有些文件里的格式并不是你想的那样改了数字就能生效, 所以单纯的改, 很可能导致这行语法错误, 为了一个文件反复的开启关闭服务器特别折磨人的耐心, 这也是大多数人选择要别人改好的文件或者单纯复制粘贴的原因 , 因为觉得自己怎么改都改不好. 其实只要格式正确, 改文件是很简单的事儿, 而格式正确最主要的就是不要用太简单的编辑工具. 其实很多时候往excel粘贴一下, 然后用表格修改, 然后再copy回来, 远比在文档里浪费时间来的实际. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 Z' Q* L2 R3 A' b
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* ?" q4 Z+ s+ G+ |' X4 W4 Q% K
言归正传 , 回到npc这个data文件 8 y$ @; w0 i7 y8 Q$ ?) ^- N
, ?+ v0 j& ~2 qbbs.mocwww.comNPC类型 名字 未知 NPCID 未知 未知 未知 未知 地图ID 坐标 坐标 坐标 坐标 坐标 坐标 坐标 坐标 未知 未知 朝向 图档 未知 未知 未知 功能 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. {: x6 W/ }4 X; m# B8 K3 ^2 L+ r, x
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|
+ P* Q5 F8 {) _6 \0 R3 ^) b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛! m0 i# O0 `4 @/ Y% `* R
这就是一个很常见的技能学习NPC
' c, T! F$ a0 ]& a魔力私服,最新魔力宝贝私服技术交流NPC类型
4 h+ f/ m) E+ P9 f* k- z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート决定我们和这个NPC交互的基本模板.
, ^1 y ~$ F4 c. wbbs.mocwww.com名字 魔力私服,最新魔力宝贝私服技术交流 k0 z( I4 ?7 }9 G; O7 Y9 b
就是鼠标放上去的时候左下角显示的名字.
" ?6 \5 ^/ ~' X7 R* y" F$ W妖城在线论坛NPC编号
3 N* D! a4 G! ^$ d就是辨识这个NPC的唯一编码,注意修改的时候,不要重复,建议在自己搭服务器的时候,去找一个相对比较长的空白段,然后自己添加的NPC放在一个区块, 并且ID都在这个空白段内.这样怎么弄都很方便
* g2 t" e" m& a- S# N# _ x* }魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表地图ID 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- u: N+ o; N& {! V
NPC所在地图ID坐标有4个
5 z8 P: y7 M4 X$ T7 h1 Gbbs.mocwww.com划了一个区域是NPC出现的范围 , 写一样的话就固定了
6 q+ v& x# u3 U; L6 Z0 E" _5 s妖城在线论坛朝向 * f/ U/ {, J. s" m
从朝左上顺时针一圈, 分别对应 0-7 , 比如0是左上 , 4是右下 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 T, y# M+ ?3 p5 F# n" y* D
图档 bbs.mocwww.com; N* U2 S* {) ?5 ~1 B% `
NPC的外形所用的图片编号, 想用什么自己查
( `8 O- O5 X+ D, D0 N魔力私服,最新魔力宝贝私服技术交流功能
( E; R* ^9 R" @, O5 {/ qbbs.mocwww.comSKillmaster的功能一般是5个数字 , 分别对应 , 技能skill号|msgID1|msgID2|msgID3|msgID4| (这个类型的NPC最后要用|结尾 , 交换和商人不用.) —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 r$ D% j- ^* `! ^% r
妖城在线论坛# _# R) M5 V5 g
而4个msg分别对应 bbs.mocwww.com- e5 N; n2 `; | W# U( X6 s
msg1 , 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 i3 }) L0 h, W' h7 i* b
7 \' e* b3 }4 D+ E! a8 o0 f# ibbs.mocwww.com
( N( F1 P' J, e+ C% o魔力私服,最新魔力宝贝私服技术交流
8 w7 D0 I, D- [魔力私服,最新魔力宝贝私服技术交流msg2 3
3 o6 r' m, k) l# w' n! }
魔力私服,最新魔力宝贝私服技术交流) v; Z7 N+ p: G
1 f: l# q! B e, @( o
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ Y. G: I' |0 M( ~7 N+ t0 m
msg 4
. X5 j3 M; S& ~# C魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
4 {2 e/ s; u) p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: ^0 b( ?$ K3 v2 u4 E
妖城在线论坛9 R# l2 p$ H5 X2 `5 w5 T
这里 一个学技能的NPC , 就解释完了 , 接下来解释skill 和skilllv(关于skill 和skillID的具体格式解释 搜索一下论坛有很多, 而且没什么歧义或者不好懂的地方, 这里就不解释了) 魔力私服,最新魔力宝贝私服技术交流. o f& H& q% P/ _1 M; G# T# i
2 z) [) b8 Q0 [ D5 Vbbs.mocwww.com当一个角色向一个技能NPC选择想学习技能的时候, 这时候服务器首先会读取这个NPC的功能数据 , 取出skill号 , 比如上述例子中的skill ID "11", 然后根据玩家角色的jobID+skillID , 去找到skilllv文件中的数据, 如果对应的级别数据是0 则提示 , 该技能并不适合你 bbs.mocwww.com3 P* k5 X8 P9 b( D, H# N& y
% |. i7 \2 P( }& H
如果没有找到数据 , 则会返回查询skill文件中这个技能的default level (skill中第5个参数, 很多老技能都是10) , 如果这里>0 , 那么这个角色就可以学到这个技能
; L; h. A- _2 e4 b3 j—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果这里=0 , 那么也会提示 , 该技能并不适合你.
, _9 n5 J! D7 Y3 P0 P% v; cbbs.mocwww.com
( Q. s( N4 S3 @8 Kbbs.mocwww.com所以 如果你新做了一个技能 / 职业 , 既不想写超长的skilllv data , 又不想让无关的职业学到这个技能 / 不想让这个职业学到一堆无关技能 , 把所有的default级别都改成0
0 {& [( y1 c3 b& c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛 L3 z$ n! u. v. g% s2 ]
接下来 , 角色学到了技能 , 打开技能列表, 看到的东西首先是这个技能的skill名..然后在列表点击之后 , 就进入了这个技能所对应的tech数据了 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! ?! J [! X. `5 }
0 V! G; G: h6 U, ]' [# g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート首先, 服务端会查询,该技能所关联的tech相关的数据都取出来 魔力私服,最新魔力宝贝私服技术交流$ \! Z& V7 f% J9 X
2 b3 Z6 V! X. M—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート| 技能名称 | 技术ID | 技能参数
/ L' L: m% |4 A$ R+ R$ x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 | 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 m, g- T: _4 ]9 K
图档ID/技能ID |
" |8 e, ~& `8 j3 Vbbs.mocwww.commsgID |
* E; O1 `5 A+ B. c( C, a魔力私服,最新魔力宝贝私服技术交流skill_ID |
# G7 P4 N$ ]3 h" p, h使用等级 | " C. S7 c9 K" d0 i
技能类型 | 魔力私服,最新魔力宝贝私服技术交流5 f: J3 ?( p1 x% ~) U q
使用对象 | 学习价格 | |
5 j; g7 A( k/ L' p+ {' K魔力私服,最新魔力宝贝私服技术交流使用耗魔 |
) P: D' B5 R ?9 U: ]# S+ V人物/宠物技能 | | 连击·舞LV1 | TECH_ContinuationAttack | AS:0,AN:2,AM:2,DD:-50, | 0 | 130000 | 0 | 1 | 1 | 1141 | | | 10 | 1 |
5 r3 Q; [; A2 {: f: s8 y2 ]—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
/ @, N1 M5 [% `3 C: t% R# B—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート首先会根据你当前的技能等级, 去把tech中的使用等级<=技能等级的技能都显示出来 (自创技能的tech必须包含1级 , 否则无法练级...虽然能学习, 但进去看到的列表是空白的) 妖城在线论坛0 R0 z% m) u( j
) e% S J8 O8 J. K
然后角色根据技能的使用对象选择技能目标 , 接下来 就是tech中其他参数的解析了
9 g+ a$ X1 O1 I& T* V魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
. A3 ~ d- s- o, Z0 a( B魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表名称 , 不重要 4 y# _5 z5 \& A# V
' Q# W1 T% l) [- t7 B$ E: c魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表技术ID , 这个是技能的核心参数之一 , 当角色在战斗中选择了该技能 , 那么服务端接收到该请求先判断服务端是否有该技术参数, 这个是保存在gmsv中的...如果你的服务器上某个技能 , 点了之后直接就跳过该回合 , 并且服务器报错 非法tech参数(Illegal tech use)的时候, 恭喜你 这个技能在你的服务端根本就不存在 , 你不需要试了 , 并不是参数或者图档问题...只是你服务器不支持罢了
3 W7 W! j0 O5 q+ H* R& i0 N
m7 K& |& |; g5 t妖城在线论坛毕竟很多人对编程是不通的 , 我们来做个简单的解释, 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 K8 s2 v( i" n# _
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! n- J" j$ S0 u: s% K' [
服务器 就像是一个黑盒子 , 里面编写了各种的方法 , 比如我 投入参数 , 1 和 1 , 然后方法是加 , 当这两个数字丢进去的时候, 服务器就会把2丢出来...这就是服务器的运行原理.. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 m- o, D9 T' v& Z- }
而有时候 , 比如你说 , 3 和5 , 方法是乘法 , 服务器并不会这个方法 , 他就会说 , 不好意思我听不懂, 我不知道乘法是什么, 当然 也不会返回正确的结果 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ o' d) o4 E8 h9 C
" E8 @. ^- C+ L, m/ {, x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表接着往下.. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ c- ?/ A8 u; @+ W
6 L6 T; s7 K+ s! R% ~技能参数 , 这个参数决定了技能的伤害 , 具体的内容论坛一搜就搜到 , 不多赘述 , 很好玩 , 也是我们比较能玩花样的地方.
0 R2 n) s9 I" j/ e* ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
; n% N: E1 F/ b. |—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート图档ID/技能ID妖城在线论坛5 T9 R9 C5 ~ G1 a- v
7 H6 V. ?# p% i- d9 p. N这个参数是另一个核心参数 , 这个参数决定了技能释放时的动画 , 比如我选择释放一个乾坤 , 那我起手的动画是什么样 , 人物怎么过去 , 打到怪的时候的特效是怎样的.
: x8 X, ]' Q2 w# s2 u y, Nbbs.mocwww.com魔力私服,最新魔力宝贝私服技术交流) j/ v/ L+ B( T E& I
这个ID其实分成2部分 , 技能ID , 决定了同一种技能到底是哪级的效果 , 图档ID , 什么技能 bbs.mocwww.com2 z& a5 W. J( v6 {
bbs.mocwww.com! t8 Z4 M* a# l4 _; }2 { C
例如乾坤一掷lv5 , 这个技能的 图档/技能ID =305 ,
) |! X/ E5 t% `* Q8 ?; j7 G魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表首先把这个数字分成 2部分 , 03 和 05 - I, {4 i6 L4 J2 G
% q0 S: `. C% T妖城在线论坛03决定了是什么技能 , 05 决定了什么等级
2 z8 A8 y+ z7 A' Y4 i4 |
9 }% d! g( t) [+ l% Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート再拿一个例子来说 强力陨石魔法-X , ID=2339 , 23 决定这个技能是陨石魔法 , 39 , 决定这个技能的等级特效 8 L4 v% b3 f! G0 u' O% [- ^
, H: c; g5 K: k连击最可怕 , 1级连击这个ID是0 , 其实就等于 0000 4 r; o8 Y; i+ Y6 a8 P* h. Y
bbs.mocwww.com8 O5 c" a; G) m- U5 _
00=连击 , 00=1级
" e/ w$ N$ q( {$ I9 V8 H妖城在线论坛bbs.mocwww.com1 d% ~0 I) y( `
这里的技能ID 不等于skill.txt里的 skill ID , 这两个东西不存在关联关系 , 所以skill ID随便写没关系 , 但是技能ID是写在gmsv里面的..不能通过data里的文件更改 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* n8 c0 Y; Q% _ j1 w
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% s o! E( ^6 q1 W4 i
那么什么情况会导致图档不存在崩溃呢. 一般是因为客户端图档不全 , 例如服务端支持15级技能的特效 , 但是客户端不支持 , 客户端不包含这个动画的图档 , 当服务端返回信息要求客户端播放这个动画图档的时候 , 客户端做不到 ...就会卡住死循环... 魔力私服,最新魔力宝贝私服技术交流& i1 K( C( A5 [: f; u5 X
! p# ?: {/ `5 O1 U: R' M5 i$ u所以 当我们想做一个新技能的时候, 只要考虑到以上的这些要素 , 就可以正常的完成一个技能从学习到释放的全过程, 不会陷入无止境的坑里面了.. —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& j0 L p+ |1 G" z0 E* L
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 R: }3 l% n# L _6 X2 i; t5 E
[ 本帖最后由 晴天老不点 于 2018-4-25 19:03 编辑 ]
|