|
小妖

- UID
- 42564
- 精华
- 0
- 积分
- 22
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2018-4-25 19:00 只看该作者
 
解析技能学习到释放的全过程.
最近想和自己小伙伴一起玩魔力, 由于个人动手能力比较强, 所以搭建服务器的工作就落在我身上了, 从找服务端到架设(单机两键端开的服, 个人电脑+花生壳内网穿透) 中间经历的坑真的是不计其数, 随便写一些心得 , 也欢迎大家来一起讨论
/ f0 }" a$ E8 Vbbs.mocwww.comQQ:15203009
' l9 d8 i9 x8 }5 m+ _bbs.mocwww.com妖城在线论坛2 i5 a% C; l t" R' V
那么聊正题 , 关于技能这个东西 , 在魔力这个游戏的框架下 , 到底是怎么来的... 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 s; I- z7 W0 Y0 i9 I' R. w
) C* ?( |6 G- p' k2 E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート首先, 从学习技能开始 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ V0 a4 R( `/ ~0 R4 o
学习技能 , 需要修改的是NPC.txt这个data文件, 注意, 修改服务端任何文件时, 最好用专门的修改工具/或者excel ,并且最好在修改之后用另一个相同功能的工具来校验, 最次也要用np++这种 , 千万不要用文本文档的方式 , 因为魔力的服务端data文件中 ,除了你能看到的数字, 还包含了各种坑人的空格, 而且有些文件里的格式并不是你想的那样改了数字就能生效, 所以单纯的改, 很可能导致这行语法错误, 为了一个文件反复的开启关闭服务器特别折磨人的耐心, 这也是大多数人选择要别人改好的文件或者单纯复制粘贴的原因 , 因为觉得自己怎么改都改不好. 其实只要格式正确, 改文件是很简单的事儿, 而格式正确最主要的就是不要用太简单的编辑工具. 其实很多时候往excel粘贴一下, 然后用表格修改, 然后再copy回来, 远比在文档里浪费时间来的实际. —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- D A# F' M5 E4 d7 k7 ~$ b3 v
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 w1 o8 m q: I+ V0 V: k0 y
言归正传 , 回到npc这个data文件 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ }+ N( q! [7 d$ X
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! H& ^1 @; r4 w
NPC类型 名字 未知 NPCID 未知 未知 未知 未知 地图ID 坐标 坐标 坐标 坐标 坐标 坐标 坐标 坐标 未知 未知 朝向 图档 未知 未知 未知 功能 妖城在线论坛' e+ Z9 C( e% D Z" I1 a" m
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|
8 S: B* q, B& U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) q4 f; Q8 U% X$ I
这就是一个很常见的技能学习NPC bbs.mocwww.com [: ]& R' E# _7 s
NPC类型 " m! i y& W7 D9 v* i
决定我们和这个NPC交互的基本模板. 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( R0 ^2 o+ n' ~/ {7 S
名字
. W% @& k2 P' r N j—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート就是鼠标放上去的时候左下角显示的名字. bbs.mocwww.com. o9 M* I% ^/ a
NPC编号 $ H2 `0 ]% S2 W9 h( t: @/ |
就是辨识这个NPC的唯一编码,注意修改的时候,不要重复,建议在自己搭服务器的时候,去找一个相对比较长的空白段,然后自己添加的NPC放在一个区块, 并且ID都在这个空白段内.这样怎么弄都很方便 bbs.mocwww.com4 r: {, o' p4 V1 ^% _) i' [
地图ID
p4 I9 [8 V4 l% \ k/ BNPC所在地图ID坐标有4个 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" i, X$ m8 }; S w
划了一个区域是NPC出现的范围 , 写一样的话就固定了
1 M# _& X0 s2 I0 z6 } [- [ L' V% B魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表朝向
% _4 S( r2 B& R8 z1 ybbs.mocwww.com从朝左上顺时针一圈, 分别对应 0-7 , 比如0是左上 , 4是右下
- ~% f1 K) R2 z( G2 A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート图档
$ T K) X/ L8 A. g+ Y( _7 ]: q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートNPC的外形所用的图片编号, 想用什么自己查
* \% K2 F/ }( p/ J3 n; P0 Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表功能
5 Z/ I) B- A" V$ m/ X' u. B) [魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表SKillmaster的功能一般是5个数字 , 分别对应 , 技能skill号|msgID1|msgID2|msgID3|msgID4| (这个类型的NPC最后要用|结尾 , 交换和商人不用.)
: q$ t/ z3 d) q6 e6 \/ m6 n. U1 Cbbs.mocwww.com妖城在线论坛1 O/ I3 p8 G% _% J9 G
而4个msg分别对应 魔力私服,最新魔力宝贝私服技术交流+ _5 Z5 O) L) j8 v& P( ^7 X T
msg1 , bbs.mocwww.com( h# |" N% l* {* Q( W
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 t+ h8 g: n; T1 R/ N
. v$ W% ?: I9 B2 _( t+ C% E; M9 J; V. [bbs.mocwww.com
7 M. @ _, i6 ?4 o& B. a4 Ubbs.mocwww.commsg2 3 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' H, j/ u+ D2 ]* v
* t1 X' U2 S- w- S: \# q/ I魔力私服,最新魔力宝贝私服技术交流
. ]. X. v# E2 @! j! {: H魔力私服,最新魔力宝贝私服技术交流妖城在线论坛- G9 @: n `1 y' l$ Q( d c
msg 4
* R( H* w& c* v, |* n妖城在线论坛
% H0 F; Z5 s4 J% @/ I6 h. f, D# h9 W# G. mbbs.mocwww.com
& Y6 i! B7 t% Y: i% wbbs.mocwww.com; g5 M8 v/ x+ ~ |
这里 一个学技能的NPC , 就解释完了 , 接下来解释skill 和skilllv(关于skill 和skillID的具体格式解释 搜索一下论坛有很多, 而且没什么歧义或者不好懂的地方, 这里就不解释了) 魔力私服,最新魔力宝贝私服技术交流; u3 z3 h- i+ E
! X- A7 ]: f7 o g1 p$ H( ~—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート当一个角色向一个技能NPC选择想学习技能的时候, 这时候服务器首先会读取这个NPC的功能数据 , 取出skill号 , 比如上述例子中的skill ID "11", 然后根据玩家角色的jobID+skillID , 去找到skilllv文件中的数据, 如果对应的级别数据是0 则提示 , 该技能并不适合你
K/ B$ C+ {7 X* y* |9 g% @魔力私服,最新魔力宝贝私服技术交流
1 F& v4 M: C3 y# H9 g7 j—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果没有找到数据 , 则会返回查询skill文件中这个技能的default level (skill中第5个参数, 很多老技能都是10) , 如果这里>0 , 那么这个角色就可以学到这个技能
+ G" { p' _- O5 A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果这里=0 , 那么也会提示 , 该技能并不适合你. —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ f9 }& n/ ^( r3 C7 ?: i3 s
' c7 i* _+ R, n; E G. U魔力私服,最新魔力宝贝私服技术交流所以 如果你新做了一个技能 / 职业 , 既不想写超长的skilllv data , 又不想让无关的职业学到这个技能 / 不想让这个职业学到一堆无关技能 , 把所有的default级别都改成0
+ y' e+ I$ p F魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; w* @$ p$ L/ u2 Z' M
接下来 , 角色学到了技能 , 打开技能列表, 看到的东西首先是这个技能的skill名..然后在列表点击之后 , 就进入了这个技能所对应的tech数据了
1 ^/ g5 H- z, T/ I- E2 E3 l) K7 z魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力宝贝私服技术交流( W' S+ E/ w- q8 g" l0 x1 g
首先, 服务端会查询,该技能所关联的tech相关的数据都取出来
3 l9 B) N! l+ ~; {3 F* ~% h魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
8 B) `; p+ a3 C" j; D; B| 技能名称 | 技术ID | 技能参数
! S X! k% u+ @$ [) ^妖城在线论坛 | —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: V% z0 i7 [- F$ Z! ]
图档ID/技能ID | 8 C) f/ p+ c1 N, M) ~
msgID |
2 Y( H/ r* X0 c' |1 d. f* {4 j—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートskill_ID |
! o. v7 V5 x6 [; y1 [7 @2 Q魔力私服,最新魔力宝贝私服技术交流使用等级 |
' n3 G- k* E# A$ d$ }; m, G技能类型 | : {3 x4 [& [+ `, l. I+ ^
使用对象 | 学习价格 | |
( g& S9 ~, Q4 o- J魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表使用耗魔 | 4 d6 J& F# I1 b1 s; ]
人物/宠物技能 | | 连击·舞LV1 | TECH_ContinuationAttack | AS:0,AN:2,AM:2,DD:-50, | 0 | 130000 | 0 | 1 | 1 | 1141 | | | 10 | 1 | —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- Z+ J5 X# [3 r+ h6 @
9 x6 E) d' ^& c8 c$ f8 N! }bbs.mocwww.com首先会根据你当前的技能等级, 去把tech中的使用等级<=技能等级的技能都显示出来 (自创技能的tech必须包含1级 , 否则无法练级...虽然能学习, 但进去看到的列表是空白的) —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 W! ^2 F5 t" V8 X: a; ^
. M, |. N3 K+ t/ t( Sbbs.mocwww.com然后角色根据技能的使用对象选择技能目标 , 接下来 就是tech中其他参数的解析了 ' v5 n2 P0 C% Z, \- E2 t0 v
' J8 u4 l& O. |2 n- v: C# n( d# Fbbs.mocwww.com名称 , 不重要
7 j! p0 u3 x' v, V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 i6 d7 O2 `% z6 p! f! H' `
技术ID , 这个是技能的核心参数之一 , 当角色在战斗中选择了该技能 , 那么服务端接收到该请求先判断服务端是否有该技术参数, 这个是保存在gmsv中的...如果你的服务器上某个技能 , 点了之后直接就跳过该回合 , 并且服务器报错 非法tech参数(Illegal tech use)的时候, 恭喜你 这个技能在你的服务端根本就不存在 , 你不需要试了 , 并不是参数或者图档问题...只是你服务器不支持罢了
0 F" J$ a+ N7 |0 _2 k9 E! L: Wbbs.mocwww.com
# O# P9 q0 _/ i妖城在线论坛毕竟很多人对编程是不通的 , 我们来做个简单的解释,
; ~& n5 Y- J7 Y- D" R) H魔力私服,最新魔力宝贝私服技术交流
4 [( _7 S$ q% J魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表服务器 就像是一个黑盒子 , 里面编写了各种的方法 , 比如我 投入参数 , 1 和 1 , 然后方法是加 , 当这两个数字丢进去的时候, 服务器就会把2丢出来...这就是服务器的运行原理.. 魔力私服,最新魔力宝贝私服技术交流" [ G7 [8 k# }- ^
而有时候 , 比如你说 , 3 和5 , 方法是乘法 , 服务器并不会这个方法 , 他就会说 , 不好意思我听不懂, 我不知道乘法是什么, 当然 也不会返回正确的结果 7 v9 x2 y' l8 P* l
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 l/ X% F* e* T4 _4 [ h
接着往下.. —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" d" C8 s% j. s/ k0 S
+ j5 p6 R/ A5 U3 D, K) F- Z妖城在线论坛技能参数 , 这个参数决定了技能的伤害 , 具体的内容论坛一搜就搜到 , 不多赘述 , 很好玩 , 也是我们比较能玩花样的地方.
- ?! X$ W) S2 ]( d3 C3 ]魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' \. \3 L( W4 J$ z) H% M
图档ID/技能ID
6 A. f. E$ T. _4 \妖城在线论坛
2 s$ L* S2 O) ] Q% z+ b7 q1 ?' D- ~% Pbbs.mocwww.com这个参数是另一个核心参数 , 这个参数决定了技能释放时的动画 , 比如我选择释放一个乾坤 , 那我起手的动画是什么样 , 人物怎么过去 , 打到怪的时候的特效是怎样的.
3 \, {5 X$ z; Z( v; W2 \bbs.mocwww.combbs.mocwww.com/ f' U3 ~: s7 G
这个ID其实分成2部分 , 技能ID , 决定了同一种技能到底是哪级的效果 , 图档ID , 什么技能 魔力私服,最新魔力宝贝私服技术交流) A- p; ^; t2 d
. N/ W) r/ ~6 Ebbs.mocwww.com例如乾坤一掷lv5 , 这个技能的 图档/技能ID =305 ,
2 Z6 }4 g' v; w- [$ u) B首先把这个数字分成 2部分 , 03 和 05 , s5 `2 P/ p2 P4 c3 z
. N. I. K5 V4 }! \—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート03决定了是什么技能 , 05 决定了什么等级
. S8 P2 r* h$ Tbbs.mocwww.com% Y, S1 E( C/ e+ _ O
再拿一个例子来说 强力陨石魔法-X , ID=2339 , 23 决定这个技能是陨石魔法 , 39 , 决定这个技能的等级特效
1 S+ o0 B9 }, e, |魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表妖城在线论坛1 \# ]& }" _/ i! k
连击最可怕 , 1级连击这个ID是0 , 其实就等于 0000
/ A/ ]4 c. x" f- D) w. t* f* l7 k& _# |魔力私服,最新魔力宝贝私服技术交流
9 C @0 d8 x9 @* |—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート00=连击 , 00=1级 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 f1 h& W# ` w6 Y" m" I) k) ^1 V" v
) H7 ?0 O! E5 {bbs.mocwww.com这里的技能ID 不等于skill.txt里的 skill ID , 这两个东西不存在关联关系 , 所以skill ID随便写没关系 , 但是技能ID是写在gmsv里面的..不能通过data里的文件更改 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 t; ~- { O9 e7 g: N6 U
* ?- e, Z" {$ g1 P+ D mbbs.mocwww.com那么什么情况会导致图档不存在崩溃呢. 一般是因为客户端图档不全 , 例如服务端支持15级技能的特效 , 但是客户端不支持 , 客户端不包含这个动画的图档 , 当服务端返回信息要求客户端播放这个动画图档的时候 , 客户端做不到 ...就会卡住死循环... 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ j$ h; C: y4 n! z6 l E4 I
魔力私服,最新魔力宝贝私服技术交流 i8 _4 C% N( N8 p
所以 当我们想做一个新技能的时候, 只要考虑到以上的这些要素 , 就可以正常的完成一个技能从学习到释放的全过程, 不会陷入无止境的坑里面了..
$ x. ~) V# T; m$ N9 r; T魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ e% p9 Z) X2 d& k0 d8 G! e+ `
[ 本帖最后由 晴天老不点 于 2018-4-25 19:03 编辑 ]
|