发新话题
打印

[魔力私服分享] 解析技能学习到释放的全过程.

解析技能学习到释放的全过程.

最近想和自己小伙伴一起玩魔力, 由于个人动手能力比较强, 所以搭建服务器的工作就落在我身上了, 从找服务端到架设(单机两键端开的服, 个人电脑+花生壳内网穿透) 中间经历的坑真的是不计其数, 随便写一些心得 , 也欢迎大家来一起讨论
6 t: W7 G- p: S魔力私服,最新魔力宝贝私服技术交流QQ:15203009
, l. e( w) U0 s5 N—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% j( i" }  [, q, A- w) y5 |3 F. b
那么聊正题 , 关于技能这个东西 , 在魔力这个游戏的框架下 , 到底是怎么来的...1 }( \% ?9 V  R) |& u) a
妖城在线论坛% P& j/ y! b6 G% ?% e( g
首先, 从学习技能开始魔力私服,最新魔力宝贝私服技术交流' |1 F  {* t) F
学习技能 , 需要修改的是NPC.txt这个data文件, 注意, 修改服务端任何文件时, 最好用专门的修改工具/或者excel ,并且最好在修改之后用另一个相同功能的工具来校验, 最次也要用np++这种 , 千万不要用文本文档的方式 , 因为魔力的服务端data文件中 ,除了你能看到的数字, 还包含了各种坑人的空格, 而且有些文件里的格式并不是你想的那样改了数字就能生效, 所以单纯的改, 很可能导致这行语法错误, 为了一个文件反复的开启关闭服务器特别折磨人的耐心, 这也是大多数人选择要别人改好的文件或者单纯复制粘贴的原因 , 因为觉得自己怎么改都改不好. 其实只要格式正确, 改文件是很简单的事儿, 而格式正确最主要的就是不要用太简单的编辑工具. 其实很多时候往excel粘贴一下, 然后用表格修改, 然后再copy回来, 远比在文档里浪费时间来的实际.
9 [5 P% i5 x+ u; I4 ^# K2 hbbs.mocwww.com
4 w3 O& }$ F% E% e. [言归正传 , 回到npc这个data文件
3 c+ J# _: h; V  t) z( O' fbbs.mocwww.com
  p  w$ z# h( \. @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートNPC类型           名字       未知 NPCID  未知 未知 未知 未知 地图ID 坐标 坐标 坐标 坐标 坐标 坐标 坐标 坐标 未知   未知  朝向       图档       未知   未知   未知      功能魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表  M5 @' |, v, t8 I) `3 p/ i/ E. I# w
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|
+ ~4 D1 o, u- O# M/ g! C
8 d& G1 s1 ^: M2 C- H魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表这就是一个很常见的技能学习NPC—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, D6 \8 M! x8 W7 ?" O4 h
NPC类型
  m- d& g- H8 ?/ {" f决定我们和这个NPC交互的基本模板.
3 a- d! q% v/ l3 t' ]: lbbs.mocwww.com名字 妖城在线论坛/ }* e5 p& _0 \3 G
就是鼠标放上去的时候左下角显示的名字.魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" [6 ]$ E2 V, m1 d3 L
NPC编号 妖城在线论坛+ M3 L% |0 p& a$ v7 |
就是辨识这个NPC的唯一编码,注意修改的时候,不要重复,建议在自己搭服务器的时候,去找一个相对比较长的空白段,然后自己添加的NPC放在一个区块, 并且ID都在这个空白段内.这样怎么弄都很方便bbs.mocwww.com$ H" E0 z* s3 Q. S$ L  @
地图ID
" b1 Q2 j$ C7 ZNPC所在地图ID坐标有4个
( q. @+ I  y% R9 N' d妖城在线论坛划了一个区域是NPC出现的范围 , 写一样的话就固定了
" x/ |* t; G# \( `7 G—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート朝向
3 F2 j; ]7 ]& S4 d2 b0 `( h魔力私服,最新魔力宝贝私服技术交流从朝左上顺时针一圈, 分别对应 0-7 , 比如0是左上 , 4是右下—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 A8 s! M. N0 l7 K" B  ?' f
图档
. V- V0 i# P( V* f3 M% e+ Y魔力私服,最新魔力宝贝私服技术交流NPC的外形所用的图片编号, 想用什么自己查, H. X" t- k0 L% w
功能
- i* E+ f7 X. @& N3 `—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートSKillmaster的功能一般是5个数字 , 分别对应 , 技能skill号|msgID1|msgID2|msgID3|msgID4| (这个类型的NPC最后要用|结尾 , 交换和商人不用.)# p4 S# Z/ K  D2 V2 X% {

' A% m9 ~0 H% G% h  e+ }+ z2 |魔力私服,最新魔力宝贝私服技术交流而4个msg分别对应! Q& |' t* Y0 V2 w+ ?' F
msg1 ,
7 l) j+ i7 v/ ?魔力私服,最新魔力宝贝私服技术交流 魔力私服,最新魔力宝贝私服技术交流7 _' o' y7 h1 r/ J7 {' E, }
bbs.mocwww.com7 }+ y9 o3 C* X1 U% h0 p2 m! m
* {1 I5 D4 o2 a7 T
msg2 3
* n5 z5 w3 Z9 T* Q; f—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
6 l: z, H: J8 U# J) V# g魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* S2 F3 w3 N% N5 E

9 K2 d9 h5 W8 @3 `" N' Qmsg 4—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ r0 y' r% \# \9 e$ p; ]: D' x7 I  |9 E

1 G+ N& H2 [( q妖城在线论坛7 i% g& A* v0 k( A. J* U9 K7 k# ]
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& c. G# M) `4 _6 _8 ^% y
这里 一个学技能的NPC , 就解释完了 , 接下来解释skill 和skilllv(关于skill 和skillID的具体格式解释 搜索一下论坛有很多, 而且没什么歧义或者不好懂的地方, 这里就不解释了)bbs.mocwww.com" h5 O5 G! Z8 l0 e9 y! l/ T4 l
魔力私服,最新魔力宝贝私服技术交流' }9 y+ J3 X5 N$ V" C
当一个角色向一个技能NPC选择想学习技能的时候, 这时候服务器首先会读取这个NPC的功能数据 , 取出skill号 , 比如上述例子中的skill ID "11", 然后根据玩家角色的jobID+skillID , 去找到skilllv文件中的数据, 如果对应的级别数据是0 则提示 , 该技能并不适合你
- C0 E, Q. i$ B魔力私服,最新魔力宝贝私服技术交流bbs.mocwww.com$ C; y' o3 Y! U& Y$ N
如果没有找到数据 , 则会返回查询skill文件中这个技能的default level (skill中第5个参数, 很多老技能都是10) , 如果这里>0 , 那么这个角色就可以学到这个技能魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) p, A- l, w0 R$ c! m" N
如果这里=0 , 那么也会提示 , 该技能并不适合你.
, _2 K3 w) _% F; E* F  T
, ^5 ], H1 K, S& h9 k! j; K# Y! U妖城在线论坛所以 如果你新做了一个技能 / 职业 , 既不想写超长的skilllv data , 又不想让无关的职业学到这个技能 / 不想让这个职业学到一堆无关技能 , 把所有的default级别都改成0
; N: W" y' R  ~bbs.mocwww.com
7 n0 N) V$ x  p! P. d. V1 S: Lbbs.mocwww.com接下来 , 角色学到了技能 , 打开技能列表, 看到的东西首先是这个技能的skill名..然后在列表点击之后 , 就进入了这个技能所对应的tech数据了
6 r( B% ?* A+ u妖城在线论坛魔力私服,最新魔力宝贝私服技术交流1 j# x, K- {2 @, L, H7 Y
首先, 服务端会查询,该技能所关联的tech相关的数据都取出来# B' t" W" @: x8 L
魔力私服,最新魔力宝贝私服技术交流  u. |. \. g- n) t& d: J
技能名称技术ID技能参数妖城在线论坛1 b0 i5 f9 H: z- n; \6 G) O
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* h$ m) ~' ~; q1 n5 M) e6 }9 o. e
图档ID/技能ID

* C/ [% }1 j2 a6 f5 W魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表msgID

/ h3 ?# K( M; }# G—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートskill_ID

9 E5 Y& A' Z0 U—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート使用等级

, J, r% V2 D( o$ I- C技能类型

2 N7 l5 A0 D( M使用对象
学习价格 
7 R& u* n- q. |" l, ~- L* z' Wbbs.mocwww.com使用耗魔

7 [) G, H) j* z: Y/ ^3 m魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表人物/宠物技能
连击·舞LV1TECH_ContinuationAttackAS:0,AN:2,AM:2,DD:-50,01300000111141  101
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ z( w" p4 A* G1 h0 ^7 H, c- l
bbs.mocwww.com! U8 T& l9 |, }7 F
首先会根据你当前的技能等级, 去把tech中的使用等级<=技能等级的技能都显示出来 (自创技能的tech必须包含1级 , 否则无法练级...虽然能学习, 但进去看到的列表是空白的)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' m' s5 q3 x# L8 O
/ Y) h; ^5 N* e) e$ i) B
然后角色根据技能的使用对象选择技能目标 , 接下来 就是tech中其他参数的解析了
* e: `/ {2 K) t魔力私服,最新魔力宝贝私服技术交流7 ^3 ~: l# x, X3 C( ]
名称 , 不重要魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* f8 `* Z# e8 n- r2 L

) H! S/ U" z' K- W0 E( e技术ID , 这个是技能的核心参数之一 , 当角色在战斗中选择了该技能 , 那么服务端接收到该请求先判断服务端是否有该技术参数, 这个是保存在gmsv中的...如果你的服务器上某个技能 , 点了之后直接就跳过该回合 , 并且服务器报错 非法tech参数(Illegal tech use)的时候, 恭喜你 这个技能在你的服务端根本就不存在 , 你不需要试了 , 并不是参数或者图档问题...只是你服务器不支持罢了
6 n$ O0 r( }* ~' M" q8 ?' s8 p0 M魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
& x+ Y2 p  K$ u* x% R6 @, o' ]—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート毕竟很多人对编程是不通的 , 我们来做个简单的解释, 妖城在线论坛; i$ M$ Q" H0 i2 j3 R
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 Z, h4 \; q7 i& ?+ I) `
服务器 就像是一个黑盒子 , 里面编写了各种的方法 , 比如我 投入参数 , 1 和 1 , 然后方法是加 , 当这两个数字丢进去的时候, 服务器就会把2丢出来...这就是服务器的运行原理..妖城在线论坛  V- c" {( H; M# p% U0 b
而有时候 , 比如你说 , 3 和5 , 方法是乘法 , 服务器并不会这个方法 , 他就会说 , 不好意思我听不懂, 我不知道乘法是什么, 当然 也不会返回正确的结果魔力私服,最新魔力宝贝私服技术交流+ J7 K$ B  V/ ]. j

& x8 S6 r, ?; b# o9 j( S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表接着往下..
* a7 m5 ]5 q! `妖城在线论坛bbs.mocwww.com9 Z8 L2 D) d/ E* \
技能参数 , 这个参数决定了技能的伤害 , 具体的内容论坛一搜就搜到 , 不多赘述 , 很好玩 , 也是我们比较能玩花样的地方.妖城在线论坛8 W+ A1 q7 j& l/ r" Z9 m

2 ^5 l7 t7 Z" F+ Z, X! `2 z+ _5 o& n魔力私服,最新魔力宝贝私服技术交流图档ID/技能ID
) I% p; c5 s, X: R( {8 J( A( k魔力私服,最新魔力宝贝私服技术交流
- A# U7 M. c7 G* \6 r魔力私服,最新魔力宝贝私服技术交流这个参数是另一个核心参数 , 这个参数决定了技能释放时的动画 , 比如我选择释放一个乾坤 , 那我起手的动画是什么样 , 人物怎么过去 , 打到怪的时候的特效是怎样的.
0 v1 p- ]8 i* v妖城在线论坛妖城在线论坛2 r* U" B0 P) I' q
这个ID其实分成2部分 , 技能ID , 决定了同一种技能到底是哪级的效果 , 图档ID , 什么技能魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* Q/ U2 j' c1 ?2 E

' t$ A0 S8 Y, ]! r* D魔力私服,最新魔力宝贝私服技术交流例如乾坤一掷lv5 , 这个技能的图档/技能ID =305 , —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 j& r" _- z% e9 h; M5 ^
首先把这个数字分成 2部分 , 03 和 05
0 }% K# Z  y  k+ F4 l! g$ ^: z魔力私服,最新魔力宝贝私服技术交流
& u2 k/ e* N' P6 J03决定了是什么技能 , 05 决定了什么等级魔力私服,最新魔力宝贝私服技术交流( e. m2 J/ [4 v* p

" r/ J# S" E: g7 R5 z# x+ g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート再拿一个例子来说 强力陨石魔法-X , ID=2339 , 23 决定这个技能是陨石魔法 , 39 , 决定这个技能的等级特效
- Z4 g$ E, d- Y$ \9 G& }) h0 Vbbs.mocwww.com
+ f) C9 [( Y4 H3 W$ E6 X6 z' t$ Hbbs.mocwww.com连击最可怕 , 1级连击这个ID是0 , 其实就等于 0000
! l$ N! ^% h7 T" z/ h3 h* _& s; ~* J; d3 bbbs.mocwww.com
6 m$ y7 m! a! m2 W  W, a- K2 s妖城在线论坛00=连击 , 00=1级
$ R! t5 C9 ^4 f1 z* p5 S妖城在线论坛—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, p" \" w* L. Q' q8 ~0 x
这里的技能ID 不等于skill.txt里的 skill ID , 这两个东西不存在关联关系 , 所以skill ID随便写没关系 , 但是技能ID是写在gmsv里面的..不能通过data里的文件更改—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ O9 k9 O5 X% O7 U; @+ S. l
bbs.mocwww.com/ ~. ?; S- b! V5 q$ {
那么什么情况会导致图档不存在崩溃呢. 一般是因为客户端图档不全 , 例如服务端支持15级技能的特效 , 但是客户端不支持 , 客户端不包含这个动画的图档 , 当服务端返回信息要求客户端播放这个动画图档的时候 , 客户端做不到 ...就会卡住死循环...bbs.mocwww.com7 D2 C/ q7 {* l, S
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) A5 i( _7 i: e- l% t* L  Q+ X
所以 当我们想做一个新技能的时候, 只要考虑到以上的这些要素 , 就可以正常的完成一个技能从学习到释放的全过程, 不会陷入无止境的坑里面了..
; Y* W; E6 `; H2 n# `1 X/ K1 m; `—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
+ O' ?4 q# K9 I2 U0 o0 z( H8 ~魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表[ 本帖最后由 晴天老不点 于 2018-4-25 19:03 编辑 ]
本帖最近评分记录
  • sin 妖力 +5 原创内容 2018-4-25 23:25

TOP

厉害,但我笨,暂时没看懂,

TOP

写的很好 学习到了!!!

TOP

做新技能 既要改gmsv 也要改cg 还要在data文件里面改参数

TOP

直接改特效cg.就说是新技能不就行了吗?把编号的特效改了...

TOP

谢谢无私的分享

TOP

技术贴,多谢分享,楼主能分享下架设外网过程就更好了

TOP

发新话题