软件简介:
; k; B8 l% V! ^, W6 d* ~+ {凌天科技系列教程
( ]7 t' ^/ p2 Y o; S/ c# C `7 n. L2 t# V
教程第一课
7 h2 `8 ~9 w* [! P$ V2 D3 R- QDBC2000数据库的介绍以及单机游戏的架设以及外网游戏的架设方法
# [- f4 U: x) T( k7 i安装DBC2000数据库: T# u M- f9 T8 o: j' b
建立DBC2000数据库与服务端mirserver/mud2/DB文件夹的数据库连接
: W+ @ ` C& L$ J9 l启动Gamecenter 选择控制向导 数据库名称 heroDB(对应DB数据库名称)& v; o0 D3 f' C
填写服务端路径 并正确填写DBC正确路径/ R! I% R% E5 }4 S Y0 d. _1 C
内网IP地址为 127.0.0.10 h* K: Y8 ?! d: o9 b" V8 `) r
查询外网IP并填写启动服务端
+ ? j! J- r# U0 T3 O+ iwww.ip138.com
- \0 P0 ?6 A7 A* x' n" ~填写我们查询到的IP地址并启动服务端
x! Y' a6 x* f4 b架设外网成功$ s1 O( A3 G! w8 S
/ \8 N1 D d; i N: M
第二课
# n% c* G0 U' r一机多区的架设方法以及对服务器进行合区6 ~; k) O9 Z9 A
更换我们的所有端口 然后启动服务器 在登陆器上面对应每个区的网关端口
" ~( k5 M( M. ^) u4 F" w使用引擎合区工具进行合区" F8 Q% I$ ?& v& j" Z, ?& Z
2 l6 w; Q! W+ ~4 W6 s9 J1 J第三课
4 g0 ]1 V! n( m3 Z/ X0 B, p W游戏NPC的添加 NPC脚本代码对应位置
1 m; c c t" c( Z2 q( {8 H: J找到mirserver/mir200/envir/MerChant.txt! ?1 J+ E6 P1 E0 N" |1 @4 C
在最下面添加NPC
0 c: o; a! `! d9 |Market_Def下面的哪个文件夹/脚本文件名称地图号 X坐标 Y坐标 NPC名称 NPC外观代码2 Q7 _0 m6 [" u0 d: s% m4 H H
脚本文件开头
/ ~9 }7 s8 w3 k5 W2 w[@main](所有脚本通用开头); Y* x% t( R( t6 ~! d! z: u8 `
第四课
# u( v0 h. D1 r$ r5 S( {* ?装备的添加8 s" Y& D3 ~: F7 `% q. o, i
物品代码. ~ x7 Q1 R0 A/ |! X, L$ k
装备属性、隐藏属性代码、套装功能、装备名字颜色代码。
7 G8 [) A8 r! E8 J/ M. K- V装备属性使用万游编辑器修改 隐藏属性(万游) 详见M2引擎说明书物品代码表
8 q: i6 \$ W% c' R7 d2 C1 v. r套装功能对应M2server - 查看 - 列表信息 - 其他设置 - 套装功能
3 q( R+ ^1 O3 b/ ?# P5 H套装功能中套装编号对应数据库 (特殊属性栏数值) 套装属性为10-255
" i, B" v( Z' _( Y1 ?! G$ y7 }- E" V* Z( E3 |7 ]' B8 {! v
第五课9 W* ~3 O5 ?6 W# g6 ]
脚本的编写、登陆脚本、实战冲级奖励的编写。
* I& e) g" q& ~( {$ y! y. R+ S脚本文件对应NPC创建 @: }9 o( B3 i4 D4 W
以[@main]开头" Y( Q/ `4 [4 z8 K
下面一#IF开始 #ACT执行 #elseact否则执行4 `, W. G D8 _: Y4 Y% q
登陆脚本
9 T Y$ N$ H8 n+ s7 u1 umirserver/mir200/envir/MapQuest_def/QManage.txt
4 Y j8 g, w) B2 N3 ~) k. z& P% ~; hsengmsg 0 全服提示 谁谁上线9 `- Q7 Q U7 ?4 P7 ~9 ]
第六课/ f U' g( @9 B! E8 G
装备外观的添加计算方法、以及装备内观
) _7 S; g( f# \! Q- n6 E$ u: Y$ S6 B' |工具:wil编辑器
! o$ M* L+ Z2 e& h' a- W背包物品外观在items.wil 掉落地上的外观在dnitems.wil 装备栏的外观在:stateitems.wil* S+ P5 b( h" L
武器动作在 热血传奇目录:Graphics下 weapon文件夹代表武器 human文件夹代表衣服' X2 C6 @4 e" X% [, G7 b8 z
文件名字对应万游中武器衣服的外观代码
3 U5 \7 e! l8 b0 f: t. n6 {补丁文件后面加1的情况 HERO的引擎是图片代码+10000
5 E9 n- I3 R; s0 b2 LNPC外观代码, 2 F5 m8 T6 d: v6 d6 ?: Y) [4 @
怪物补丁的计算方法以及添加怪物
- ?' I, m" `$ Y2 \# Umon*.wil (*-1)X10= 然后WIL编辑器打开怪物文件& \$ `: o% `1 P# ~" _5 ]- Q: l
mon14.wil (14-1)X10=130 蛇蝎=130赤月恶魔=131幻影蜘蛛=132
1 E" w3 k7 c& t/ \ g4 Z第一个怪物就在个位用0 第二个用1 依次类推# J6 Z# m: q# o% _# b
怪物补丁为热血传奇目录下面的DATA文件夹下MON.wil-mon99.wil文件
9 j- e9 s- \+ X) f+ b1 D( U攻击图像详见传奇怪物攻击图像代码, ?' o5 e; S2 a+ M$ ]: C
具体怪物攻击带特殊属性详见攻击代码* ]; j# [$ h; H" y
第七课
9 q3 F. i# z! w) s& E/ v8 l地图的添加以及地图限制代码的方式、地图与地图之间的连接、地图刷怪
+ z- \+ `% O; l6 f8 e2 q. F, _+ g首先修改地图素材名字(字母跟数字组合)然后放到mirserver/mir200/map当中
7 J) Y' N( E A! |地图信息添加在mirserver/mir200/envir 下面的MapInfo.txt当中
) U- e9 q+ A" `1 H0 T格式:[地图号|地图文件名(地图文件在mirserver下面的mir200下面的MPA文件夹) 地图名称] 后面以空格跟上地图限制代码或功能代码" n1 G6 a, D/ L* d8 i2 r
加入盟重土城地图/ s& H5 A/ n0 A" e# ~- |- `
找到我们盟重土城调用的地图文件,按照上面的格式添加地图
+ I& B/ }2 n; K) {+ z- s, z找到我们需要进行连接的两个地图的地图号8 M8 Z* m9 n/ u* m1 p
A地图号 X坐标 Y坐标 - B地图号 X坐标 Y坐标. A: \7 f5 |1 X k5 i9 b* I2 _
刷怪:" x. z7 d) s5 \- R8 j4 P
地图号 X坐标 Y坐标 怪物名称 刷怪范围 刷怪数量 刷怪间隔时间(分钟)% Z1 S$ _: S; e8 [' i9 E
! a8 f* s5 B& c3 f& r
第八课0 i- e5 [7 ]/ i, i3 k$ i6 N$ a
利用M2引擎 铸造装备 快速写合成
* q8 W& ^3 Z* p; D在mirserver/mir200/envir/ 下面的FoundryList.txt文档中
[% Z/ S3 M5 l4 G. X. \格式为:' ?# k7 m! j; E) C
合成物品 数量 成功率(100%) 需要物品 数量 失败是否消失 元宝 数量 失败是否消失9 d2 ~& \) H) `
开天 1 100 屠龙 1 1 元宝 100 1! h L* J. z Y' T" P
NPC内的脚本格式为:" m. F0 y: K8 t2 Y* P
#IF
& _1 h6 n, l" l T7 w- z0 f$ DCheckFoundryItem 开天% J3 v0 E" t$ c6 g/ J9 g
#ACT
" G* z# p& }% vGiveFoundryItem 开天
- x8 R( X* o- L/ ~4 j7 SSENDMSG 1 公告:$USERNAME 成功打造开天 一代天骄即将纵横出世!!颠覆整个玛法大陆!!!
1 D" o3 P, {0 Z8 `* {! o#ELSEACT
' S2 n" A$ E" }1 K7 E+ f) mSendMsg 5 缺少合成物品%Item8 G. r5 ^1 G8 K5 ^2 w! l
[@FoundryFail], n: i3 P2 H( m/ W
#ACT
* L9 {$ H D5 M/ [SendMsg 5 合成 %Item 失败!
# E0 g* n% p _% d3 ]# j, c* m合成装备脚本的快速写法-运用铸造功能写合成装备
2 ?/ K* K, g7 R S; q3 Q0 R V6 O
( O% Z6 B; B- {第九课/ @8 l* L4 t. t3 g
转生等级的设置以及转生名字变色。. R& V2 `( C8 n9 c
通过转生来设置会员 `4 O" i9 G8 G$ w* b6 K9 k2 v
调整转生等级NPC脚本代码: RENEWLEVEL 1 0 100 最高转生限制是255转
: Y8 u- H, Y& C& s9 K) F检查转生等级NPC脚本代码: CHECKRENEWLEVEL = 5
3 e, b* F5 L4 Z6 h6 i9 f& q& S% n; Y( Q0 Z% v1 N# |4 Y* {; J
第十课
- ~# i9 `( O( X/ J7 S人物头上的图标封号介绍+ v( s/ W8 Y' Z/ b3 t: Y2 t
在登陆脚本中检查特定的人物 1 {0 t, \' U% e$ X8 i
然后使用ICON.WIL中的图片数字 data\icon.wil * K0 q* u. L$ c; \$ `+ k
格式为:
: T$ E h, j+ I#IF# F# `0 w# T/ o0 X$ S$ N
#ACT2 @" g) V' T1 D" |- d
SetIcon 0 1 -25 -10, k& j1 O# Z2 q! r. v+ p7 r5 x1 I3 k- a
SetIcon 位置(0-4) 头像编号(0-65535) X Y4 G: f: ~2 W% @5 q
第十一课 j4 p t7 E' o# t3 i& T: p
人物幸运触发变色脚本$ v* x1 C7 K1 x4 h" z# g/ a& K
QFunction-0
* m- C" _8 s6 Y: l" U' k# o8 i r[@TAKEON1]+ c F% `. J( U: M! U, S- D; S5 J! C
#IF/ n+ X; l6 }5 u; o
CHECK [135] 1
* m0 S, }" B g* K#ACT3 v/ A5 a- ?1 A2 Z$ b2 V2 c' c
goto @12355
2 u6 ?% I( T) Z: ?! v3 z hbreak
! k) U" D% H4 ^" D W#IF+ C& g5 P/ S( y) k" b8 n
CheckLuckPoint 8
, b8 A8 A8 R5 u5 k- V9 i2 d6 Y+ U#ACT
2 ~7 w# X# K8 @/ V" D' x3 rset [135] 1
' [/ }4 w# D- g0 HGMexecute TestStatus 4 65535# J; b! x$ z! I+ F
SendMsg 0 玩家【%s】全身幸运+9的触发人物最佳状态,各位小心此人物危险. ! z7 }) E/ Y- y
BREAK- t2 V' W8 V) y; w( J* a2 C
[@TAKEON3]
( |" J% {8 o2 E n! ]) n8 ?#IF* H; C9 q1 c/ ?- l x
CHECK [135] 1
f8 o$ p8 g f. T, k( v#ACT, e% ?. \5 c3 K# z f* s! q
goto @12355; @- I0 D4 O1 f2 R! ^, a
break
+ q J3 `' j7 s( t$ _( m#IF8 g* W4 |% d2 p3 Z3 ]) S
CheckLuckPoint 8/ z. c9 M) H( p
#ACT0 g$ N6 X, p" I) Y$ s6 \; S* H
set [135] 1
8 e6 J2 c& ~. d$ b6 w" L( fGMexecute TestStatus 4 65535
7 G% B: q0 p( ISendMsg 0 玩家【%s】全身幸运+9的触发人物最佳状态,各位小心此人物危险. ; @- G+ y: a0 |0 W% h/ W
BREAK' @- l$ W: e% {9 {
[@12355]
( X+ K, ~$ a K3 ]6 |#IF( m5 R0 G* \. M+ f3 r5 X- I6 C
CHECK [135] 0
8 M) r; B, A3 R3 i$ }6 o#ACT
F: A5 w/ `: |9 r0 jBREAK& {" j9 H+ F% W' z8 E& R- R
#IF
" S4 W. |& j, V6 hCheckLuckPoint 8) C/ s1 g( f# y5 t) J$ O1 _( m
#ACT
) P( O* w0 }; e& hSET [135] 0
# f `" f( y2 w, N9 n! c5 DGMexecute TestStatus 4 0
+ R, i; s' p9 r( J. PBREAK, X% C' |1 n3 a! k0 P6 |/ _
[@TAKEOFF1]
, d1 B9 p, x) c1 b$ g1 J#IF
% w8 D5 } t; K) ?. E4 a) RCHECK [135] 1
# p% n7 W+ ^/ q+ w' a#ACT) b% g* V U( ?' `; l7 v2 Q
goto @12355# u7 S6 n- }% n5 K* `, a6 U
break
% P4 D$ y8 J7 |[@TAKEOFF3]
7 `7 s6 p+ f) R3 _#IF& s' y+ y8 R( g5 A" T
CHECK [135] 1( b: y' v0 _) a* v, A- u6 N5 |- n
#ACT
9 A; p- q" Z7 B" K6 Sgoto @12355
: v0 h5 c' ~0 {break
" a1 _, X2 t K- N; }第十二课
$ D: W/ ?) o9 E3 U, f标志位的详细讲解9 a1 ^7 X7 L/ O* Z
1-255
+ S. e# K4 ^; ~1 Fcheck 9 {, E5 |2 h P. k
set % b. K* Y% H! D j9 x$ v2 P" X
reset1 T1 \$ Y9 A7 \* i. n- _6 \
) v. b$ A2 t5 R4 M D. R第十三课
+ k0 C$ }4 Q. M% P怪物触发脚本 , z) v9 H8 }9 a
首先来到mirserver\mir200\envir 找到下面的MapQuest.txt - 怪物触发脚本/ A4 A' S, i# i
脚本格式为
8 K; w* e/ P) s3 t l+ a7 ~地图号 怪物死亡触发序号 0 怪物名称 * Q0-Q800! i" B0 L" \! Y* e4 X7 d- H* m% W
文件来自于 mirserver\mir200\envir\mapquest_def7 F/ V3 {% H" j1 q, s- c5 V
第十二课- z. K- h3 x; c6 l8 F
沙巴克城战的添加以及攻城时间设定+ W5 f Y4 o2 v# x6 r+ Z% x. t
在m2server上面点击 管理-城堡管理-沙巴克-攻城设置) e2 K. G/ c- l& z' {) z7 j7 x7 w
申请所有行会攻城-确定
: K2 N; ?8 D3 ~0 y! M! P1 G0 p修改-参数设置-时间设置
3 L m- ~8 x! C. S$ W! v第十三课
: n( d3 C0 | J" I自定义脚本变量6 h2 |8 S( j3 a2 A3 ~
首先在QMannge当中产生变量 格式为:
" i. t* g2 R4 _3 qVAR Integer HUMAN YY(变量名称)
/ ~& R1 q. D# q# X% S. {加下来继续写读取变量,格式为:2 a" B/ J" [) o9 K8 X: t9 g
LOADVAR HUMAN YY ..\QuestDiary\测试\Q123.txt9 q; i" `% s& G4 Q9 E
在QuestDiary\测试 下新建一个名字为YY.txt的文档, ]# |" @1 W8 u0 x Q. D: D E
接下来使用变量即可
, x3 G. d6 z9 [" \- I# M8 O$ i详见使用说明书:自定义变量
0 \% H9 u2 s8 m$ o) L0 U
# i# ]- W$ ^2 Q% s% U第十四课
: m! I% F3 s* T2 Z游戏界面的修改以及登陆界面的修改
5 a, T% N# F \5 B0 |+ o& Tgameplan.wil& v4 ?& L+ \& K+ C6 G
游戏登陆过场动画 103$ F6 j% }' i; I. e1 E: h! B
游戏下方的窗口图片 53
/ d# p0 J# S: v3 V) C第十五课0 c+ j2 f) ?7 f8 `
机器人脚本(也就是自动执行脚本)
: i! y& y/ ]/ @& q) M+ smirserver\mir200\envir\Robot_def& r" L* g2 e4 U- I3 u5 i
AutoRunRobot.txt 自动执行 RobotManage.txt2 } m Q& B2 o2 N
在AutoRunbot.txt 当中格式为2 |5 B( I* |; ~! @1 A* K. j
#AutoRun NPC 时间类型(MIN分钟 ** / SEC秒数 ** / RUNONDAY **:** / RUNONWEEK *:**:**) @****(RobotManage.txt 脚本段)( D! T# ?& ~! t8 I8 ~4 \9 A
第十六课+ E, R( j ~. N/ d5 t( T- d# j
升级宝石的添加以及打不死的经验怪
2 T, O6 u+ q: X8 A0 q$ V! l/ b6 |7 \StdMode=57(升级符合类型的装备)
1 y3 x7 \( t# y! M8 ~: P: o! QSource=(等于2)- V3 e+ C, j5 J, w" P( |; Q7 b
Shape=(等于0升级符合类型的装备,指定类型时填写待升级装备的StdMode值)
/ L8 E: ?6 z2 {: l' h- O L注意:此类宝石只增加攻击,道术和魔法.% o( p, `/ f2 R0 `1 g; ^
DC2,MC2,SC2=(升级装备的攻击,魔法等,必须是可增加攻击和魔法等属性的装备才可以升级,例如:武器,项链等)
/ O2 k5 b5 s6 g; ?! N$ {duramax为升级成功率 Anicount为可使用该物品升级次数7 l& _( b8 Q5 T3 y1 s9 f$ g
宝石类型6:) E4 R# y+ I2 ~1 k/ i4 I4 O3 C
StdMode=59(增加升级成功率)
' @) O6 f' C" s( zShape=(0表示所有类型,指定类型时填写待升级装备的StdMode值) X3 ~6 E: @6 O ?) Q
DuraMax=(提高成功机率,例如:设定5即为提高5%的机率)( e2 e4 _/ ?- G ?6 t6 g
& I: b% t; g/ Y; ?$ }+ }6 W
把怪加在哪个地图 找到地图号 后面加参数 HITMON(@XXXX)
" g; r2 L3 d' [$ h/ }6 B2 `( D在QFunction-0.txt里加入触发脚本段 [@XXXX]
4 X* U! ?4 v1 z* {5 @# ?) {. S+ x在万游设置器里添加怪物数据
/ b0 g1 d" Y! f& v N4 R: v攻击类型 120 攻击图像 18
% m% a8 a$ \: T! R2 ucheckhitmonname 怪物名字! m: w' J8 p. f7 u
刷怪文件 Mir200\Envir\MonGen.txt: H' T1 U2 t, p
2 g5 t4 _ a( N3 m$ X实战效果课程
: V4 b, [1 c8 a自定义变量 G A I S : v9 J6 X+ \- k: G2 K
G变量为数字型系统保存
6 @- h. z. ]! z6 |A变量为数字型脚本保存
6 F( a: }" j5 M1 v. h) uI变量为文字型系统保存. r! g, ^7 J8 b- p0 M- [' b4 u
S变量为文字型脚本保存. t# {3 U! {+ C6 k6 F
$变量名称/ u8 A A6 y L5 B m: D3 Q' j
首先把奖励名额(变量)进行赋值 5 P1 v' E: b% l. D* G! h& }8 U% o
首先我们把他所点击的等级移动到一个脚本保存变量' X) |* ~% S3 }' G
可以用S0 S0=他所点击的那个奖励的等级+ g( E/ Z$ H# b& ], y1 p
接下来检查该等级奖励名额的变量是否没有了 也就是等于0
8 n J, G" a2 ^( I* ~如果是的就进行一个 跳转告诉他领完了 7 `3 u& Z1 K8 L5 G0 }
如果不是的就跳转到 领取的地方 再进行检测 因为我们还没有检测他的等级 以及他是否领取过% _/ u1 c. U* e4 n( i ~7 N7 A
首先检测他的等级是否小于该奖励的等级(S0)
( h' ^4 b' g8 L! p如果是的就告诉他等级不够 也可以使用 $STR(S0)等级不够' H" _" m; k. j2 ^; y6 z. G
再用break进行连接再进行检测7 |6 i! _6 e2 ]& I0 @6 O
接下来再进行检查他是否已经领取过 可以是标志位 可以检查文本文档( Z K; g$ d; l2 \
CheckNameList ..\QuestDiary\奖励\升级领奖\$STR(S0)级.txt
8 @- d3 }/ E! [如果他在这个文档当中就告诉他 他已经领取过$STR(S0)级的奖励了
4 T0 ~$ n; I7 g9 m7 P, ~如果他的名字没有在我们的那个奖励记录的txt当中的话 我们就让他去领取2 R7 M5 V5 [* K: x
下载地址:
|