|
小妖

- UID
- 42564
- 精华
- 0
- 积分
- 22
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2018-4-25 19:00 只看该作者
 
解析技能学习到释放的全过程.
最近想和自己小伙伴一起玩魔力, 由于个人动手能力比较强, 所以搭建服务器的工作就落在我身上了, 从找服务端到架设(单机两键端开的服, 个人电脑+花生壳内网穿透) 中间经历的坑真的是不计其数, 随便写一些心得 , 也欢迎大家来一起讨论
+ I# p! w6 o. T. p3 Z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表QQ:15203009 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: I, M, ~' r) Z; d+ Q/ N2 F
7 P$ ~1 J6 p# p- s8 ?妖城在线论坛那么聊正题 , 关于技能这个东西 , 在魔力这个游戏的框架下 , 到底是怎么来的...
1 B2 }3 t ^ S( P9 {& k—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートbbs.mocwww.com+ N: l0 a8 l0 K8 J6 E! z
首先, 从学习技能开始 % x: r3 o- q; M, I
学习技能 , 需要修改的是NPC.txt这个data文件, 注意, 修改服务端任何文件时, 最好用专门的修改工具/或者excel ,并且最好在修改之后用另一个相同功能的工具来校验, 最次也要用np++这种 , 千万不要用文本文档的方式 , 因为魔力的服务端data文件中 ,除了你能看到的数字, 还包含了各种坑人的空格, 而且有些文件里的格式并不是你想的那样改了数字就能生效, 所以单纯的改, 很可能导致这行语法错误, 为了一个文件反复的开启关闭服务器特别折磨人的耐心, 这也是大多数人选择要别人改好的文件或者单纯复制粘贴的原因 , 因为觉得自己怎么改都改不好. 其实只要格式正确, 改文件是很简单的事儿, 而格式正确最主要的就是不要用太简单的编辑工具. 其实很多时候往excel粘贴一下, 然后用表格修改, 然后再copy回来, 远比在文档里浪费时间来的实际. 妖城在线论坛! M/ h# K- q: |5 L9 \$ ]0 A
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( G6 |8 A3 r% N% o8 i
言归正传 , 回到npc这个data文件 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 @" D, |% V M+ b! q+ G
. S* K3 e) w& [7 _. K& E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表NPC类型 名字 未知 NPCID 未知 未知 未知 未知 地图ID 坐标 坐标 坐标 坐标 坐标 坐标 坐标 坐标 未知 未知 朝向 图档 未知 未知 未知 功能 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 X5 {3 G% E+ A% k- ?" R
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|
9 ^% a7 M' K0 y6 D; U p妖城在线论坛
4 B! R$ S# n; ?- ]# |! u$ A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这就是一个很常见的技能学习NPC
/ b# q8 s1 X) e I0 [& C魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表NPC类型 妖城在线论坛0 L. u: f& I# X
决定我们和这个NPC交互的基本模板.
2 x- ]& y8 J5 C+ d7 ~( H: _bbs.mocwww.com名字 2 H8 e( j e, ^. ` b: M X
就是鼠标放上去的时候左下角显示的名字.
7 C9 z0 n+ }7 s. D! e—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートNPC编号 bbs.mocwww.com/ w+ u+ J5 o" M
就是辨识这个NPC的唯一编码,注意修改的时候,不要重复,建议在自己搭服务器的时候,去找一个相对比较长的空白段,然后自己添加的NPC放在一个区块, 并且ID都在这个空白段内.这样怎么弄都很方便
: h( |( t( g1 k0 e3 b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート地图ID
0 R( t, Q0 L G& j: M—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートNPC所在地图ID坐标有4个 妖城在线论坛# f# r! K$ c# @# U
划了一个区域是NPC出现的范围 , 写一样的话就固定了 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ w8 E' m/ E* V" [8 q3 F& {
朝向 bbs.mocwww.com/ f, X, S4 M! i; B! O0 d: @
从朝左上顺时针一圈, 分别对应 0-7 , 比如0是左上 , 4是右下 魔力私服,最新魔力宝贝私服技术交流8 Y }2 G9 h, t) D% ?
图档
; Z& a* b/ }; k }4 G3 ?bbs.mocwww.comNPC的外形所用的图片编号, 想用什么自己查
; n" z6 I9 ], V$ M( a魔力私服,最新魔力宝贝私服技术交流功能 魔力私服,最新魔力宝贝私服技术交流 M6 o( \4 D1 t- Q
SKillmaster的功能一般是5个数字 , 分别对应 , 技能skill号|msgID1|msgID2|msgID3|msgID4| (这个类型的NPC最后要用|结尾 , 交换和商人不用.)
( H3 z) I6 I3 _: T妖城在线论坛
3 X0 Q; U1 x7 {, D5 g8 a |而4个msg分别对应
5 P! U9 u- {0 g s2 L. q, N—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートmsg1 , —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! I) W1 h. b# f. E
% r# L9 E7 c- o! z/ `% j妖城在线论坛7 G) x2 K9 a5 [6 b$ g
魔力私服,最新魔力宝贝私服技术交流$ w' e3 m: V' K8 c" y m& E2 u% m
msg2 3
% R3 S& f" [7 {- Q. R k8 N$ y% o魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
8 B k8 m* z! x' X' X& B
$ m2 p! o7 k* f+ `6 L Rbbs.mocwww.com—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 H( G7 H8 _, V% i& x) c
msg 4
5 z$ ^ E5 x9 {—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
* q( w, |' w3 |1 H5 y. A [& i妖城在线论坛bbs.mocwww.com$ V; L" x d* q: `
: k4 N% h( A5 a$ t6 r7 G$ ]: B9 q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表这里 一个学技能的NPC , 就解释完了 , 接下来解释skill 和skilllv(关于skill 和skillID的具体格式解释 搜索一下论坛有很多, 而且没什么歧义或者不好懂的地方, 这里就不解释了)
1 ~. W8 ]8 ?+ Z" }7 N魔力私服,最新魔力宝贝私服技术交流
. X8 p' I0 G) z魔力私服,最新魔力宝贝私服技术交流当一个角色向一个技能NPC选择想学习技能的时候, 这时候服务器首先会读取这个NPC的功能数据 , 取出skill号 , 比如上述例子中的skill ID "11", 然后根据玩家角色的jobID+skillID , 去找到skilllv文件中的数据, 如果对应的级别数据是0 则提示 , 该技能并不适合你
5 e6 K3 G: L8 M U6 r—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
3 H2 b" h* X) ?4 @: U如果没有找到数据 , 则会返回查询skill文件中这个技能的default level (skill中第5个参数, 很多老技能都是10) , 如果这里>0 , 那么这个角色就可以学到这个技能 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: M" |0 P3 ?+ u: y, K7 L
如果这里=0 , 那么也会提示 , 该技能并不适合你. —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート ?) o: W+ D" L. B
! B$ g' g* ~& ?2 X' i3 t$ M8 H妖城在线论坛所以 如果你新做了一个技能 / 职业 , 既不想写超长的skilllv data , 又不想让无关的职业学到这个技能 / 不想让这个职业学到一堆无关技能 , 把所有的default级别都改成0
/ K, v9 B$ [3 M" k% l. H' ~. {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
' E5 Z, k8 G* Z4 Y4 ]接下来 , 角色学到了技能 , 打开技能列表, 看到的东西首先是这个技能的skill名..然后在列表点击之后 , 就进入了这个技能所对应的tech数据了 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, e3 q2 y( Q& R y) N( |8 M$ z
魔力私服,最新魔力宝贝私服技术交流3 S( }2 m( M5 K/ x& x1 t; @
首先, 服务端会查询,该技能所关联的tech相关的数据都取出来
" X8 r5 C' f1 ^$ t, m8 ibbs.mocwww.com魔力私服,最新魔力宝贝私服技术交流2 o' i: z% c9 Z. Y
| 技能名称 | 技术ID | 技能参数/ r" m8 f6 a2 m" R5 L2 b
|
* u4 e) k, R$ A' tbbs.mocwww.com图档ID/技能ID | 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ ]( u$ A5 D1 ^' C& A
msgID |
7 m% n5 }* K. f% r+ @bbs.mocwww.comskill_ID |
( ]1 a7 G0 s# B—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート使用等级 |
" y7 B- p; ^# H魔力私服,最新魔力宝贝私服技术交流技能类型 |
- f7 j0 Z9 \& Dbbs.mocwww.com使用对象 | 学习价格 | | 魔力私服,最新魔力宝贝私服技术交流$ i+ L, |/ w; C' C8 v( ]+ `3 p" Q; i* o2 b
使用耗魔 | 魔力私服,最新魔力宝贝私服技术交流; h5 T7 w2 O1 I: B* l
人物/宠物技能 | | 连击·舞LV1 | TECH_ContinuationAttack | AS:0,AN:2,AM:2,DD:-50, | 0 | 130000 | 0 | 1 | 1 | 1141 | | | 10 | 1 | 妖城在线论坛/ k! K! _2 _- J: @
魔力私服,最新魔力宝贝私服技术交流9 R- g- Y, ^/ Q C: k9 ]+ Y
首先会根据你当前的技能等级, 去把tech中的使用等级<=技能等级的技能都显示出来 (自创技能的tech必须包含1级 , 否则无法练级...虽然能学习, 但进去看到的列表是空白的)
- a" m4 _7 B; F( k& Abbs.mocwww.com
5 F v& I0 Q' g魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表然后角色根据技能的使用对象选择技能目标 , 接下来 就是tech中其他参数的解析了
! I* M2 x4 |" m0 _& x% [$ P—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
' x: B( \/ H# X( Z( Q @魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表名称 , 不重要 魔力私服,最新魔力宝贝私服技术交流$ x/ M: |. Z1 d1 s2 m% u$ S/ F
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& G) k1 b* N; D7 _. h
技术ID , 这个是技能的核心参数之一 , 当角色在战斗中选择了该技能 , 那么服务端接收到该请求先判断服务端是否有该技术参数, 这个是保存在gmsv中的...如果你的服务器上某个技能 , 点了之后直接就跳过该回合 , 并且服务器报错 非法tech参数(Illegal tech use)的时候, 恭喜你 这个技能在你的服务端根本就不存在 , 你不需要试了 , 并不是参数或者图档问题...只是你服务器不支持罢了
9 D7 X, B1 k/ j; z' p) g& \5 p+ A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
! H* i0 w: `! w魔力私服,最新魔力宝贝私服技术交流毕竟很多人对编程是不通的 , 我们来做个简单的解释,
" T- r- |; t8 \5 T/ T Y! Z
9 U9 `1 R t+ O8 Q/ |魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表服务器 就像是一个黑盒子 , 里面编写了各种的方法 , 比如我 投入参数 , 1 和 1 , 然后方法是加 , 当这两个数字丢进去的时候, 服务器就会把2丢出来...这就是服务器的运行原理.. bbs.mocwww.com! d% a4 R* u5 g5 r i9 ^0 s
而有时候 , 比如你说 , 3 和5 , 方法是乘法 , 服务器并不会这个方法 , 他就会说 , 不好意思我听不懂, 我不知道乘法是什么, 当然 也不会返回正确的结果 " M' Q0 p$ A" C: U
bbs.mocwww.com2 d$ s7 {7 S/ @% |
接着往下.. 妖城在线论坛: {4 G7 U$ g5 q' N8 t0 A0 k
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ w6 ]" |$ O8 b/ D" U9 N
技能参数 , 这个参数决定了技能的伤害 , 具体的内容论坛一搜就搜到 , 不多赘述 , 很好玩 , 也是我们比较能玩花样的地方. 妖城在线论坛" r# p) A$ @: ^$ `2 z
' q; z @4 ~2 w( {$ R5 O- j
图档ID/技能ID
# `& y0 U: U3 a) P0 Y& x. b魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
- O7 E' O9 @( \) ?—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这个参数是另一个核心参数 , 这个参数决定了技能释放时的动画 , 比如我选择释放一个乾坤 , 那我起手的动画是什么样 , 人物怎么过去 , 打到怪的时候的特效是怎样的. bbs.mocwww.com, M" b7 v3 w* r3 z I1 b" V
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" j- q0 U1 i9 t$ ?( F+ b
这个ID其实分成2部分 , 技能ID , 决定了同一种技能到底是哪级的效果 , 图档ID , 什么技能 魔力私服,最新魔力宝贝私服技术交流1 P/ t, Y& a+ U2 N( B
7 g. P8 L/ m; H妖城在线论坛例如乾坤一掷lv5 , 这个技能的 图档/技能ID =305 , 妖城在线论坛* r$ C* L7 {# v2 O" G- q4 O7 U
首先把这个数字分成 2部分 , 03 和 05
2 f9 S1 {( J4 I: }6 {" @" Dbbs.mocwww.com
; Y, T- o+ z" e) U; _. D6 }, y" g1 u魔力私服,最新魔力宝贝私服技术交流03决定了是什么技能 , 05 决定了什么等级 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, |; I" N5 h0 [, U0 `& Y
1 {" ^1 H5 z% h; L5 w再拿一个例子来说 强力陨石魔法-X , ID=2339 , 23 决定这个技能是陨石魔法 , 39 , 决定这个技能的等级特效
# f8 o3 s# A3 Y; f" fbbs.mocwww.com p% @2 c( q1 Y: R+ y! p
连击最可怕 , 1级连击这个ID是0 , 其实就等于 0000
% l. i2 u$ L/ ?' \1 Fbbs.mocwww.com" w* n( t6 L8 F
00=连击 , 00=1级 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# V5 ^- B! P4 u3 w8 v$ g K/ m
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' n5 V f) }* I( M4 u
这里的技能ID 不等于skill.txt里的 skill ID , 这两个东西不存在关联关系 , 所以skill ID随便写没关系 , 但是技能ID是写在gmsv里面的..不能通过data里的文件更改 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 I8 _2 S8 w1 A5 N+ R) k/ [3 ]
* ? ?2 W Y9 L' Q8 k3 Q; U妖城在线论坛那么什么情况会导致图档不存在崩溃呢. 一般是因为客户端图档不全 , 例如服务端支持15级技能的特效 , 但是客户端不支持 , 客户端不包含这个动画的图档 , 当服务端返回信息要求客户端播放这个动画图档的时候 , 客户端做不到 ...就会卡住死循环...
3 S: t8 Z2 a$ z! p2 q/ x* d) ~* V
0 q: O! _( k0 d- e7 v* A魔力私服,最新魔力宝贝私服技术交流所以 当我们想做一个新技能的时候, 只要考虑到以上的这些要素 , 就可以正常的完成一个技能从学习到释放的全过程, 不会陷入无止境的坑里面了.. bbs.mocwww.com* J: v7 g& ~! D: r+ D* ]: d
% I5 P* g8 H% V/ g# D j X妖城在线论坛[ 本帖最后由 晴天老不点 于 2018-4-25 19:03 编辑 ]
|