软件简介:8 V1 a/ [& c4 _0 c- p
凌天科技系列教程
5 u- P s# j! L3 d8 q: O2 V) T0 K$ f, s: g
教程第一课- A. \2 s* H) b% J+ V" `6 ~
DBC2000数据库的介绍以及单机游戏的架设以及外网游戏的架设方法
: B9 ^# o+ s- w0 k安装DBC2000数据库: G0 r) a1 H: R
建立DBC2000数据库与服务端mirserver/mud2/DB文件夹的数据库连接
' m4 {+ M m4 A: K; b* f启动Gamecenter 选择控制向导 数据库名称 heroDB(对应DB数据库名称)( N( ]! I4 `+ R
填写服务端路径 并正确填写DBC正确路径* V. m( N! _, x9 z' B N% p
内网IP地址为 127.0.0.1
$ E: K) ?: T5 |查询外网IP并填写启动服务端
/ K+ O: p- R5 W0 uwww.ip138.com& L8 Y ?3 d& |2 B7 E# B' A0 {. P
填写我们查询到的IP地址并启动服务端
* w1 o: a# S F% k d' t架设外网成功5 x$ L/ g- a) B# E; S" H, i
* d7 r# x. [& ?4 j0 J$ t* ]
第二课1 S" M1 \, U/ C+ T' k
一机多区的架设方法以及对服务器进行合区! S7 J. n- a# V* P/ E, K3 B2 j
更换我们的所有端口 然后启动服务器 在登陆器上面对应每个区的网关端口1 ~- C3 M9 Q* @, X6 I, L; r
使用引擎合区工具进行合区
! B. O2 f0 T+ D+ S* q1 B) b- Z/ X9 w/ J4 o
第三课% C* @7 H" c3 U) e9 v$ l
游戏NPC的添加 NPC脚本代码对应位置
% p. d0 m I6 R5 i; L找到mirserver/mir200/envir/MerChant.txt- x0 v/ n0 V0 K
在最下面添加NPC; _! h3 w# S' O5 b3 f1 o) y
Market_Def下面的哪个文件夹/脚本文件名称地图号 X坐标 Y坐标 NPC名称 NPC外观代码6 M Q3 ^) R3 ?% k0 k& [; X; w( a7 x
脚本文件开头
' ?6 C; J/ y9 h( P h1 b, K. ^, v[@main](所有脚本通用开头)9 Q3 l" ~/ U5 j, F5 V, t
第四课
) O, u! q$ [- K装备的添加
; o3 e% @! C& `4 m! d; |* G物品代码
5 J$ [. u; N2 x8 d5 ?2 R, v装备属性、隐藏属性代码、套装功能、装备名字颜色代码。
" l$ v: O7 }! V, z, o, V装备属性使用万游编辑器修改 隐藏属性(万游) 详见M2引擎说明书物品代码表
- O+ d/ U) a- g5 G. K/ M套装功能对应M2server - 查看 - 列表信息 - 其他设置 - 套装功能 % L* i. X: N% p) p0 x' r
套装功能中套装编号对应数据库 (特殊属性栏数值) 套装属性为10-255
9 d3 o- Z# ?7 A" l& U
' ?$ F4 J$ f6 j4 P第五课
- j& Q% c3 N- I6 A$ X3 D脚本的编写、登陆脚本、实战冲级奖励的编写。
4 C1 U; a) K' h脚本文件对应NPC创建
/ E$ R# e% K( D; {( s' C' J7 m以[@main]开头
* h4 V7 }4 M, c- ]" E4 v! k: ^下面一#IF开始 #ACT执行 #elseact否则执行( O& C. [: x6 L6 J4 }5 X
登陆脚本
0 V, V v K9 t/ M3 F4 T |, Jmirserver/mir200/envir/MapQuest_def/QManage.txt( V7 p) m& ]& L8 n
sengmsg 0 全服提示 谁谁上线
, o& Y3 i' z4 M3 [! o第六课6 t; m6 O) I; E; R1 f
装备外观的添加计算方法、以及装备内观
4 A) O5 Z! b5 i' r& v: X0 M+ S工具:wil编辑器( i- N% x x3 U) O- j1 {5 A# b6 p
背包物品外观在items.wil 掉落地上的外观在dnitems.wil 装备栏的外观在:stateitems.wil0 k4 m x/ V& X7 g# P7 J' n( S
武器动作在 热血传奇目录:Graphics下 weapon文件夹代表武器 human文件夹代表衣服
' n1 }# l+ h1 ?4 n" r1 R9 M: J文件名字对应万游中武器衣服的外观代码0 `5 k& s1 x7 `. |0 I
补丁文件后面加1的情况 HERO的引擎是图片代码+10000* o4 X% p8 [& S+ ]
NPC外观代码, 4 L2 S4 O6 i7 D, P4 V
怪物补丁的计算方法以及添加怪物9 _; {6 d) H; @4 B
mon*.wil (*-1)X10= 然后WIL编辑器打开怪物文件& ?" e! \" r3 u) {) y% i- Y5 E8 Q3 \
mon14.wil (14-1)X10=130 蛇蝎=130赤月恶魔=131幻影蜘蛛=132: ~% b1 }9 b# j( t+ M/ ~+ Z
第一个怪物就在个位用0 第二个用1 依次类推! h5 m7 r1 G' ~) ^2 z; E% g: w
怪物补丁为热血传奇目录下面的DATA文件夹下MON.wil-mon99.wil文件 / S* k; B5 i6 {$ f
攻击图像详见传奇怪物攻击图像代码
$ o5 P( `+ P- {1 `具体怪物攻击带特殊属性详见攻击代码
3 y9 R/ [8 x4 a+ ~' o第七课
( ^, M: i" [, f' @' z& B地图的添加以及地图限制代码的方式、地图与地图之间的连接、地图刷怪
' m6 p; [0 p& {3 W0 Z5 D9 W首先修改地图素材名字(字母跟数字组合)然后放到mirserver/mir200/map当中
/ X- j; r, T: s. c( i* f, c地图信息添加在mirserver/mir200/envir 下面的MapInfo.txt当中3 x u* \+ g( ~# c; s
格式:[地图号|地图文件名(地图文件在mirserver下面的mir200下面的MPA文件夹) 地图名称] 后面以空格跟上地图限制代码或功能代码4 A: _- ?1 W. h8 m( c5 x- e
加入盟重土城地图
9 S/ u# k! o6 K. Q+ U' F# k6 H7 `找到我们盟重土城调用的地图文件,按照上面的格式添加地图( K9 U- L% j- F0 p) X4 d2 r0 R
找到我们需要进行连接的两个地图的地图号, \3 p3 T# g1 N: [9 ?
A地图号 X坐标 Y坐标 - B地图号 X坐标 Y坐标6 j0 b. b* e0 H. ]( M, w6 h
刷怪:
! i2 c; k( C6 {地图号 X坐标 Y坐标 怪物名称 刷怪范围 刷怪数量 刷怪间隔时间(分钟)
5 `* b6 s, |" ^4 h5 v8 G' z( O
% ^6 g& _2 p# d% [2 L4 S第八课
/ U& B+ v" O+ m. {; N利用M2引擎 铸造装备 快速写合成6 w4 p* c" q( n* [# S" n" V; Z
在mirserver/mir200/envir/ 下面的FoundryList.txt文档中" H( e* V" b! J q( R4 V
格式为:5 c- q% R) U. k' l7 R7 v+ p
合成物品 数量 成功率(100%) 需要物品 数量 失败是否消失 元宝 数量 失败是否消失 T& }' X2 [# U" c( r H% x' H
开天 1 100 屠龙 1 1 元宝 100 1+ q. Q# S1 W9 X: q
NPC内的脚本格式为:
( q5 { y3 u6 J- r9 _#IF% a3 C+ X" H( O% j
CheckFoundryItem 开天; z+ w- [: V$ u# L
#ACT
9 A5 _5 Y2 o7 f( L) |GiveFoundryItem 开天
3 ^+ e, o$ N4 N9 ]% eSENDMSG 1 公告:$USERNAME 成功打造开天 一代天骄即将纵横出世!!颠覆整个玛法大陆!!!- Y/ x, d( \. {/ _; g
#ELSEACT \6 g/ p; b' i+ p
SendMsg 5 缺少合成物品%Item
1 A6 R. u6 S/ u O[@FoundryFail]
/ Y% ]. g2 p: ? s#ACT& ^5 H. U% W1 j6 h7 Z
SendMsg 5 合成 %Item 失败!
" W) i8 e+ `9 L! _/ N合成装备脚本的快速写法-运用铸造功能写合成装备
! H2 W$ m( Z. W" i, i$ h8 S3 {
& \; p0 c1 _* Y5 @第九课
0 G: T, z7 [6 x5 R5 f转生等级的设置以及转生名字变色。 `5 M% N+ ^4 a4 V, S
通过转生来设置会员' T% n9 i9 M8 j5 }$ N
调整转生等级NPC脚本代码: RENEWLEVEL 1 0 100 最高转生限制是255转* ~5 Q9 g% e. Q: j$ k
检查转生等级NPC脚本代码: CHECKRENEWLEVEL = 5
. H2 d$ @+ q' V. w+ ~
4 F2 D7 e2 n( O; Z% W8 O第十课
* ^- j" R7 H6 \2 _$ c* Y0 t8 \7 }人物头上的图标封号介绍
/ N5 V! ]4 s" `# t% B& M! ~在登陆脚本中检查特定的人物
, z5 J) j7 s! K2 I然后使用ICON.WIL中的图片数字 data\icon.wil / h# L2 ^ W! d. r6 R* |! \
格式为:
; X% v. z* h! \7 N7 }' Q: g: b#IF( W6 p! u& S6 Q
#ACT, k v6 }# f3 N
SetIcon 0 1 -25 -108 ^1 x- S" j% i! O. ]! U
SetIcon 位置(0-4) 头像编号(0-65535) X Y
5 | w3 F7 Z3 X( r1 ?第十一课
s4 q( X8 P1 q: R1 k人物幸运触发变色脚本
& e- N" l3 P( Q; M O5 r QFunction-04 {# T9 i8 ], M% m: w
[@TAKEON1], O! w+ g5 @- b2 R: V, @# j/ |
#IF# S/ `( R7 b- D0 X2 p& L8 Y, c9 v
CHECK [135] 1
! w) ]4 b+ x" B/ L6 V#ACT
" t* ^# s9 ^! j3 I6 S4 Egoto @12355
, O! b7 X6 x8 f8 k; b: ibreak: H3 a1 K5 Y- r- ~
#IF7 ^7 `, o7 p5 w& U F' h7 ]
CheckLuckPoint 8
9 W G7 c: c& g#ACT. T* {. n6 ^& N6 m Q$ t; _7 B' R
set [135] 1
/ I3 Z, j2 @4 q H& Q2 r) W$ J& {& @GMexecute TestStatus 4 65535: [: m- r6 ^. m6 W, s
SendMsg 0 玩家【%s】全身幸运+9的触发人物最佳状态,各位小心此人物危险.
6 S' {* s7 ^6 L$ L4 dBREAK( |# Z- `% r' Q1 F+ C9 w2 o
[@TAKEON3]+ N1 @4 e/ d' _) `6 W# ~
#IF
1 w; R5 o8 N8 a' ACHECK [135] 1( D) J; d/ O% q
#ACT" I3 p; ~: Y3 q, ?) C) i- W
goto @123555 F J/ L# V7 { f2 I
break" [ \4 v5 `5 k3 V# [
#IF
2 |% C" z( ~& }9 B4 U7 K4 _: PCheckLuckPoint 8
$ U( @8 |$ C3 [' v#ACT
3 Y3 `' E& x+ c P1 K2 B( W) Gset [135] 10 l" v, @ h& s3 j. H$ _% i
GMexecute TestStatus 4 65535
0 i& m9 D$ E* ]4 LSendMsg 0 玩家【%s】全身幸运+9的触发人物最佳状态,各位小心此人物危险. " T3 f2 X9 ]: z7 p4 ]% [- O" V
BREAK
7 e1 e( Y$ R4 C) T$ \2 x, U[@12355]8 k- S3 b) {) r5 s+ ^+ m
#IF
' C( w0 I* _. K W' h( q) m( [/ V1 `CHECK [135] 0" Y( C' H; D3 ^
#ACT5 U" Z* F) M+ {4 G3 a; h8 k6 ?
BREAK
: s( J" P( u3 D- Z#IF8 `6 q3 m( [2 a* R: V
CheckLuckPoint 8
8 U$ u0 ?+ f8 A, j0 b" {#ACT/ O. @* l$ ?$ p6 i" H* a9 P- J
SET [135] 0* n9 R+ Q2 _& `( C# }- @
GMexecute TestStatus 4 0. R$ J* M9 p- m" F9 v
BREAK
; O3 n* i+ }% I; A7 H[@TAKEOFF1]% ^2 f3 I/ |! i0 ?% e7 L
#IF4 I3 e, y( z9 E }) C5 o. E# H) |
CHECK [135] 1. y" t% o) E+ L& z/ P
#ACT4 k8 \# ~- {" t8 f( P2 W* v
goto @123551 g* Y d1 L" U. i b
break
) e8 w8 A. j7 L# B7 k[@TAKEOFF3]
: v) ]& z% t7 z, k: n8 U; P. H#IF
% E# g3 M+ B, R* C2 F# ZCHECK [135] 1
% Q# A* C7 Q1 T#ACT* v5 E" Q9 l" p7 @5 d* y
goto @12355
# y! \2 T5 [: xbreak! m Y- w$ z. _3 h+ C
第十二课: K h0 C* x7 \
标志位的详细讲解8 X* y* x/ r6 M, b9 B
1-255
2 C8 U& }6 V3 J: E5 l7 Mcheck
" x3 ^5 E0 i6 v, Q; r& w; gset
. f9 \( U; b8 T$ b' [1 Zreset
" N7 q# q4 g, v6 q5 j; ^2 O" ~; K+ I
2 _( X" _. l' m1 R' B第十三课
( _1 u6 i8 f+ N+ [怪物触发脚本
/ F: P, X2 a0 |* ^( h- r. q首先来到mirserver\mir200\envir 找到下面的MapQuest.txt - 怪物触发脚本
K/ x; `1 m7 @8 u1 Q脚本格式为
: K0 w9 E3 l! n7 M: T地图号 怪物死亡触发序号 0 怪物名称 * Q0-Q800
1 i8 x- S5 E9 ^+ ]0 s! y2 t6 D( I8 @( P文件来自于 mirserver\mir200\envir\mapquest_def
7 B6 V1 W2 g5 D3 Q第十二课- j# Z& }( g5 \+ S- j
沙巴克城战的添加以及攻城时间设定
8 [7 j) }2 Z( ~" W" H1 w在m2server上面点击 管理-城堡管理-沙巴克-攻城设置4 q- Z2 p I1 G$ u ^# j
申请所有行会攻城-确定
- @) {& k, r* P. o! ^$ \. t修改-参数设置-时间设置
g, T; H* @& j" @0 \: \第十三课, |, i# U a! ^! V) d G
自定义脚本变量8 e& U$ p& i3 T) y: R
首先在QMannge当中产生变量 格式为:
) R! e' B- H/ d9 {9 B7 `VAR Integer HUMAN YY(变量名称)
: ?' B8 i' Y# O# V6 L% d1 R加下来继续写读取变量,格式为: D! k+ Z* l( U0 C1 m
LOADVAR HUMAN YY ..\QuestDiary\测试\Q123.txt
2 R: I, p- j0 x' h0 G, Z( N在QuestDiary\测试 下新建一个名字为YY.txt的文档
+ M, J7 o' V- K) p, }接下来使用变量即可
* g. l* [3 _% P1 V( i) x详见使用说明书:自定义变量3 u& r: S' w$ q" }9 N' ?! |
" d% ?$ P! `' a5 r/ I; x% \! a
第十四课$ G; j9 K# R9 ^/ S. W
游戏界面的修改以及登陆界面的修改5 g5 A* X% c4 |1 t
gameplan.wil
1 L/ R/ t8 f, ?0 D9 |游戏登陆过场动画 103' }* P1 u. J- D
游戏下方的窗口图片 53
2 H# {/ U4 ` k! U0 J1 X! e" M) R: m第十五课
8 R7 V2 T' r1 ?& W' p5 ^2 c! M机器人脚本(也就是自动执行脚本)+ ^# A! p# `, X" b I
mirserver\mir200\envir\Robot_def
( y9 |/ Z; D: _- R! lAutoRunRobot.txt 自动执行 RobotManage.txt- R8 _- R1 ~( E3 D; q0 F
在AutoRunbot.txt 当中格式为
( L; T* [. y4 U1 m* v$ {#AutoRun NPC 时间类型(MIN分钟 ** / SEC秒数 ** / RUNONDAY **:** / RUNONWEEK *:**:**) @****(RobotManage.txt 脚本段)
6 R4 N* _" R L% }5 W第十六课* n, t( y( E+ t4 h
升级宝石的添加以及打不死的经验怪
& Z- g& F, b. aStdMode=57(升级符合类型的装备)
4 R2 ? k7 v- c9 _- ^, z% VSource=(等于2). G' c4 X. \: K2 ~& y! N
Shape=(等于0升级符合类型的装备,指定类型时填写待升级装备的StdMode值), ?3 k o9 x! D! g1 e
注意:此类宝石只增加攻击,道术和魔法.
4 Z# K! P2 S$ ^& R! l8 TDC2,MC2,SC2=(升级装备的攻击,魔法等,必须是可增加攻击和魔法等属性的装备才可以升级,例如:武器,项链等) 6 e. Q) i+ O1 ]' e6 K' U: a' g
duramax为升级成功率 Anicount为可使用该物品升级次数7 Z/ h: A6 g8 `- B
宝石类型6:
' M, `) t4 c$ i+ K4 l1 C0 BStdMode=59(增加升级成功率)
' `3 Q, J* t( p' D# U+ P8 {Shape=(0表示所有类型,指定类型时填写待升级装备的StdMode值)
4 b; U4 a4 G, O9 o* R: NDuraMax=(提高成功机率,例如:设定5即为提高5%的机率)
3 V1 W2 c7 g* P) _) M- i7 V1 p/ A8 N- ~" m( Y
把怪加在哪个地图 找到地图号 后面加参数 HITMON(@XXXX)$ Z$ z0 E3 l8 P. {# u" k) I% b% ^
在QFunction-0.txt里加入触发脚本段 [@XXXX]
; Z6 s; x9 s7 L' o3 D$ N/ c5 H0 {在万游设置器里添加怪物数据
: b4 K6 a* D) m6 Z攻击类型 120 攻击图像 18
" m; _0 r9 b3 F( f' _checkhitmonname 怪物名字5 W$ o: \2 H, r$ A( u) b
刷怪文件 Mir200\Envir\MonGen.txt
% X7 ?1 b2 w' @
?( T+ v8 N% I j' X- Y# ]2 U n实战效果课程* ^, A- @5 Y" j. A- s% L
自定义变量 G A I S
8 S* ^, ?7 a0 v9 bG变量为数字型系统保存, o2 X f8 Y+ t6 K* {
A变量为数字型脚本保存, i, I' Y) j9 E7 |
I变量为文字型系统保存$ [1 c7 [2 u7 \, a1 T! v; `
S变量为文字型脚本保存
v' o8 V9 y' O$变量名称
3 w# n; ]3 d/ ]$ }! ?首先把奖励名额(变量)进行赋值 $ i6 f" W. \2 i9 r( n; _* C
首先我们把他所点击的等级移动到一个脚本保存变量
" J7 E8 A2 t% ]% |) J8 K( P: J5 j可以用S0 S0=他所点击的那个奖励的等级 ^# M# U. [- F6 b8 d/ G
接下来检查该等级奖励名额的变量是否没有了 也就是等于0, o9 S2 P, h5 X
如果是的就进行一个 跳转告诉他领完了 4 k# y0 t- L1 I: O: p6 f
如果不是的就跳转到 领取的地方 再进行检测 因为我们还没有检测他的等级 以及他是否领取过
+ y$ ~; M( X! p# i' u首先检测他的等级是否小于该奖励的等级(S0)
$ d2 g6 ~$ [" x& z- ]如果是的就告诉他等级不够 也可以使用 $STR(S0)等级不够. K# {0 C* ~/ |
再用break进行连接再进行检测
. J8 D& A) q/ l# e8 H5 z, T接下来再进行检查他是否已经领取过 可以是标志位 可以检查文本文档$ b" R( J$ j! S8 R% W+ z
CheckNameList ..\QuestDiary\奖励\升级领奖\$STR(S0)级.txt4 h- e/ B! ~+ b3 w- y- Y
如果他在这个文档当中就告诉他 他已经领取过$STR(S0)级的奖励了8 ~8 m4 b; i4 s) J6 D
如果他的名字没有在我们的那个奖励记录的txt当中的话 我们就让他去领取
& x& d( ]" E$ ?, u# M% B下载地址:
|