发新话题
打印

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

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

最近想和自己小伙伴一起玩魔力, 由于个人动手能力比较强, 所以搭建服务器的工作就落在我身上了, 从找服务端到架设(单机两键端开的服, 个人电脑+花生壳内网穿透) 中间经历的坑真的是不计其数, 随便写一些心得 , 也欢迎大家来一起讨论
& Q/ i( T: d$ u魔力私服,最新魔力宝贝私服技术交流QQ:15203009
: W* x. e% j3 cbbs.mocwww.com
+ i- S5 f* ~* T+ m! }5 gbbs.mocwww.com那么聊正题 , 关于技能这个东西 , 在魔力这个游戏的框架下 , 到底是怎么来的...—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& s7 w4 z8 A6 h0 T% h
魔力私服,最新魔力宝贝私服技术交流' F% e  ]4 ?; z6 [1 l& |: J
首先, 从学习技能开始5 @7 l4 i% [8 D  ^" K# X) f
学习技能 , 需要修改的是NPC.txt这个data文件, 注意, 修改服务端任何文件时, 最好用专门的修改工具/或者excel ,并且最好在修改之后用另一个相同功能的工具来校验, 最次也要用np++这种 , 千万不要用文本文档的方式 , 因为魔力的服务端data文件中 ,除了你能看到的数字, 还包含了各种坑人的空格, 而且有些文件里的格式并不是你想的那样改了数字就能生效, 所以单纯的改, 很可能导致这行语法错误, 为了一个文件反复的开启关闭服务器特别折磨人的耐心, 这也是大多数人选择要别人改好的文件或者单纯复制粘贴的原因 , 因为觉得自己怎么改都改不好. 其实只要格式正确, 改文件是很简单的事儿, 而格式正确最主要的就是不要用太简单的编辑工具. 其实很多时候往excel粘贴一下, 然后用表格修改, 然后再copy回来, 远比在文档里浪费时间来的实际.
+ K7 u/ z$ \2 ~—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛1 W, Q/ F, M( a
言归正传 , 回到npc这个data文件
1 d2 a& O# [% g妖城在线论坛8 S, b- X, Q. ~) m
NPC类型           名字       未知 NPCID  未知 未知 未知 未知 地图ID 坐标 坐标 坐标 坐标 坐标 坐标 坐标 坐标 未知   未知  朝向       图档       未知   未知   未知      功能
; s$ q2 w3 ~6 f魔力私服,最新魔力宝贝私服技术交流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|妖城在线论坛# v$ h# y+ j  i

: F; J+ u4 E; X; b5 _' a  ?2 Ybbs.mocwww.com这就是一个很常见的技能学习NPC7 y! v+ G5 r- Y0 d7 A* b
NPC类型
& r5 E- s- d+ E" [7 s4 p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート决定我们和这个NPC交互的基本模板.妖城在线论坛6 z' b2 V  L/ c
名字 魔力私服,最新魔力宝贝私服技术交流8 d% y- N3 q( `5 T
就是鼠标放上去的时候左下角显示的名字.魔力私服,最新魔力宝贝私服技术交流# d9 Y! O6 [, p, f9 t
NPC编号
  ~& t" G' D( n5 b9 s1 I. ^; `魔力私服,最新魔力宝贝私服技术交流就是辨识这个NPC的唯一编码,注意修改的时候,不要重复,建议在自己搭服务器的时候,去找一个相对比较长的空白段,然后自己添加的NPC放在一个区块, 并且ID都在这个空白段内.这样怎么弄都很方便
& n. j/ D0 }# s: S—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート地图ID
6 o1 u, D, W& _2 j/ g) lbbs.mocwww.comNPC所在地图ID坐标有4个
7 Q, U! R  e$ m—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート划了一个区域是NPC出现的范围 , 写一样的话就固定了
7 A4 Y& Q8 U$ i5 {5 t( `妖城在线论坛朝向 妖城在线论坛1 e* A* u. l$ T7 T8 X
从朝左上顺时针一圈, 分别对应 0-7 , 比如0是左上 , 4是右下妖城在线论坛" ?2 ^& ?$ Y. f# c& D
图档 ; ]. P$ E, N; D7 b* i
NPC的外形所用的图片编号, 想用什么自己查
% }; S$ P( _# a# Y魔力私服,最新魔力宝贝私服技术交流功能
, |, I% v- l/ f- G9 V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートSKillmaster的功能一般是5个数字 , 分别对应 , 技能skill号|msgID1|msgID2|msgID3|msgID4| (这个类型的NPC最后要用|结尾 , 交换和商人不用.)$ r! u' D5 T+ T% `! S4 h! m

0 }0 e+ |9 r. x5 h- t魔力私服,最新魔力宝贝私服技术交流而4个msg分别对应
' b8 S3 |" @, m' o+ q2 y; {& h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートmsg1 , bbs.mocwww.com) C: Y; o& ]) F1 A0 f  O/ R# p
bbs.mocwww.com& p1 {* s% p% q; a- u
妖城在线论坛& Y* M9 A& x/ W- _; A

0 R) u/ k4 y& `. R魔力私服,最新魔力宝贝私服技术交流msg2 3
. j* S$ Q$ O$ Z- v0 R魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
- s9 j! I+ H9 ^1 |" Y1 L8 A. q8 }+ O- Y7 m
bbs.mocwww.com& n; c) c) E, E+ U# k
msg 4
8 P, m1 F0 b! G. z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
, `( m5 ]/ Y- J+ C- @8 \" w魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
$ X, s( I/ e8 Y* h( Y% @妖城在线论坛魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, h2 s. z7 t% F) U" X- g
这里 一个学技能的NPC , 就解释完了 , 接下来解释skill 和skilllv(关于skill 和skillID的具体格式解释 搜索一下论坛有很多, 而且没什么歧义或者不好懂的地方, 这里就不解释了)
) G: i3 \) y) l% p" ^2 X, X& Nbbs.mocwww.com
* U0 R4 V2 p! n" i妖城在线论坛当一个角色向一个技能NPC选择想学习技能的时候, 这时候服务器首先会读取这个NPC的功能数据 , 取出skill号 , 比如上述例子中的skill ID "11", 然后根据玩家角色的jobID+skillID , 去找到skilllv文件中的数据, 如果对应的级别数据是0 则提示 , 该技能并不适合你魔力私服,最新魔力宝贝私服技术交流7 x2 G9 j' C, Y; o( W) w

$ v2 b, @) |+ ]+ g+ O8 p( v, L- Hbbs.mocwww.com如果没有找到数据 , 则会返回查询skill文件中这个技能的default level (skill中第5个参数, 很多老技能都是10) , 如果这里>0 , 那么这个角色就可以学到这个技能妖城在线论坛  l3 F: ^% W& s
如果这里=0 , 那么也会提示 , 该技能并不适合你.
# V" C7 x2 [. u7 A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表bbs.mocwww.com! Y  U) J( R! C$ Z
所以 如果你新做了一个技能 / 职业 , 既不想写超长的skilllv data , 又不想让无关的职业学到这个技能 / 不想让这个职业学到一堆无关技能 , 把所有的default级别都改成0
$ m' |3 K% a' W  f  L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, h: B% Z1 @, e( V9 J' z* b  S
接下来 , 角色学到了技能 , 打开技能列表, 看到的东西首先是这个技能的skill名..然后在列表点击之后 , 就进入了这个技能所对应的tech数据了魔力私服,最新魔力宝贝私服技术交流# x8 W8 h, U( U  I/ g& X

  h" r* k. T! D$ P/ ibbs.mocwww.com首先, 服务端会查询,该技能所关联的tech相关的数据都取出来魔力私服,最新魔力宝贝私服技术交流* h8 Z4 R5 j' i1 ~- S

+ H! U) V- M0 n7 l4 v—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
技能名称技术ID技能参数
7 Q# Z! I* O& [% `. ^! D6 F+ A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート

8 }: L% X$ u3 [6 u5 S' h1 ?0 f4 h; r8 L妖城在线论坛图档ID/技能ID
魔力私服,最新魔力宝贝私服技术交流0 I; _: T/ Y( i
msgID
魔力私服,最新魔力宝贝私服技术交流& T) U7 d  j; ]3 n( m# Z7 J
skill_ID
; U  y8 D0 M$ e
使用等级
6 o. U: M; I( L: P/ i' V( e# ]
技能类型
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. }6 r) H0 H1 B1 u6 M. g: h1 G0 a
使用对象
学习价格 
& y1 E, ^, I* Y+ v) I妖城在线论坛使用耗魔

! _1 V& d) k* R$ k! I4 Y- Mbbs.mocwww.com人物/宠物技能
连击·舞LV1TECH_ContinuationAttackAS:0,AN:2,AM:2,DD:-50,01300000111141  101

2 z& y& {5 V3 E6 V6 T: B8 O! [—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
" ~6 o4 _' @8 E* p' t首先会根据你当前的技能等级, 去把tech中的使用等级<=技能等级的技能都显示出来 (自创技能的tech必须包含1级 , 否则无法练级...虽然能学习, 但进去看到的列表是空白的)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ r3 a, S1 {  H

3 A) C6 O& Q+ u8 u2 Z) p( Q妖城在线论坛然后角色根据技能的使用对象选择技能目标 , 接下来 就是tech中其他参数的解析了—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ L  ^7 B6 ]$ F* J2 h+ f$ d

; V% [6 G3 m: I7 P( J( ?- \; Ubbs.mocwww.com名称 , 不重要—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 |. [; h# x& ?8 b+ S! Z; B

, `( V' z' K* Y, H& w" a5 l; }! R—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート技术ID , 这个是技能的核心参数之一 , 当角色在战斗中选择了该技能 , 那么服务端接收到该请求先判断服务端是否有该技术参数, 这个是保存在gmsv中的...如果你的服务器上某个技能 , 点了之后直接就跳过该回合 , 并且服务器报错 非法tech参数(Illegal tech use)的时候, 恭喜你 这个技能在你的服务端根本就不存在 , 你不需要试了 , 并不是参数或者图档问题...只是你服务器不支持罢了魔力私服,最新魔力宝贝私服技术交流& @" r9 u9 T$ a7 _, [% Y& X0 r
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" R9 `6 ]- i* O  [
毕竟很多人对编程是不通的 , 我们来做个简单的解释, —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* E- R9 }8 F4 M- c: S  |
妖城在线论坛* ^% S4 D( M" H/ d* {
服务器 就像是一个黑盒子 , 里面编写了各种的方法 , 比如我 投入参数 , 1 和 1 , 然后方法是加 , 当这两个数字丢进去的时候, 服务器就会把2丢出来...这就是服务器的运行原理..
' B5 o: w4 E5 U  Q$ ~魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表而有时候 , 比如你说 , 3 和5 , 方法是乘法 , 服务器并不会这个方法 , 他就会说 , 不好意思我听不懂, 我不知道乘法是什么, 当然 也不会返回正确的结果
# o0 a0 w: s1 J
+ \0 ^6 A9 Z; e( I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート接着往下..魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! |( B4 t* e2 T5 B8 ?/ E
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 U6 Z0 S/ j  {' X+ l" e- U
技能参数 , 这个参数决定了技能的伤害 , 具体的内容论坛一搜就搜到 , 不多赘述 , 很好玩 , 也是我们比较能玩花样的地方.
# J* Z* Z/ o8 q1 m+ kbbs.mocwww.com—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- l8 l# Y( t. A% O
图档ID/技能ID
1 X! J1 I9 L4 h& n, A$ cbbs.mocwww.com* n7 T+ B/ h* U6 j9 E
这个参数是另一个核心参数 , 这个参数决定了技能释放时的动画 , 比如我选择释放一个乾坤 , 那我起手的动画是什么样 , 人物怎么过去 , 打到怪的时候的特效是怎样的.妖城在线论坛3 l5 S, l4 G" e- K$ q

( D7 ?0 Q$ @: O& p) D( k魔力私服,最新魔力宝贝私服技术交流这个ID其实分成2部分 , 技能ID , 决定了同一种技能到底是哪级的效果 , 图档ID , 什么技能—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 e" l. q7 a$ J7 L
魔力私服,最新魔力宝贝私服技术交流8 F' ]8 N7 ^) }2 a; F
例如乾坤一掷lv5 , 这个技能的图档/技能ID =305 , 魔力私服,最新魔力宝贝私服技术交流% k, W& o2 r- \5 @8 Y0 |( K
首先把这个数字分成 2部分 , 03 和 05bbs.mocwww.com; [; {7 y) f  e7 f  Q' ^$ g
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ e% _, W2 p7 t
03决定了是什么技能 , 05 决定了什么等级魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; J: H7 Z8 Z6 L; t
bbs.mocwww.com$ x. f$ U0 e: E) V: j' d
再拿一个例子来说 强力陨石魔法-X , ID=2339 , 23 决定这个技能是陨石魔法 , 39 , 决定这个技能的等级特效魔力私服,最新魔力宝贝私服技术交流( c4 ]) g- f: O% y/ f; w- p

7 z2 ?' b5 J" N6 P/ G; q妖城在线论坛连击最可怕 , 1级连击这个ID是0 , 其实就等于 0000
7 q" |. ]6 \2 a% n2 V# abbs.mocwww.combbs.mocwww.com' h- \" q( G% H2 p
00=连击 , 00=1级
: J, n4 J5 u0 |7 r1 C魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
3 a- t, ?" v# ]8 \6 a魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表这里的技能ID 不等于skill.txt里的 skill ID , 这两个东西不存在关联关系 , 所以skill ID随便写没关系 , 但是技能ID是写在gmsv里面的..不能通过data里的文件更改魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 }5 b% A  s# |/ Z2 K6 ^
& ]4 H1 [, f  q1 C3 k% N1 \
那么什么情况会导致图档不存在崩溃呢. 一般是因为客户端图档不全 , 例如服务端支持15级技能的特效 , 但是客户端不支持 , 客户端不包含这个动画的图档 , 当服务端返回信息要求客户端播放这个动画图档的时候 , 客户端做不到 ...就会卡住死循环...
# @% A, o) e7 e1 N) r- p6 O5 X
: |, i6 x: m$ Z. G9 b1 l魔力私服,最新魔力宝贝私服技术交流所以 当我们想做一个新技能的时候, 只要考虑到以上的这些要素 , 就可以正常的完成一个技能从学习到释放的全过程, 不会陷入无止境的坑里面了..
/ ^; o+ I+ S5 C# c+ P8 \bbs.mocwww.com
$ y! H1 P6 I) r" x' I: A妖城在线论坛[ 本帖最后由 晴天老不点 于 2018-4-25 19:03 编辑 ]
本帖最近评分记录
  • sin 妖力 +5 原创内容 2018-4-25 23:25

TOP

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

TOP

写的很好 学习到了!!!

TOP

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

TOP

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

TOP

谢谢无私的分享

TOP

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

TOP

发新话题