软件简介:
/ D6 \+ o% O9 i) f v9 b教程第一课
g7 x, J! H0 Z, z& k' ODBC2000数据库的介绍以及单机游戏的架设以及外网游戏的架设方法7 K$ b0 p" d, S8 ], |: n+ g5 s5 l) k7 C
安装DBC2000数据库
* s1 @: y t. s7 ]建立DBC2000数据库与服务端mirserver/mud2/DB文件夹的数据库连接* J y1 g5 v# Y) M
启动Gamecenter 选择控制向导 数据库名称 heroDB(对应DB数据库名称)# s8 n+ O1 q& T8 q
填写服务端路径 并正确填写DBC正确路径% f7 [. R+ T X( o# |6 G1 z( w% r' C
内网IP地址为 127.0.0.1! B" Z2 J; j" c" l X: i9 l2 T$ f
查询外网IP并填写启动服务端
6 C" h9 G Y3 twww.ip138.com# f/ Q$ N ]3 U* D; f
填写我们查询到的IP地址并启动服务端; m* D+ b! B0 e! m8 R
架设外网成功$ Y4 N$ F9 W4 W' M
: p' Y! X6 V0 p0 \
第二课
* s6 M- o2 |# [% V一机多区的架设方法以及对服务器进行合区
8 N, ]: a: d/ P9 c: i6 l5 I' y更换我们的所有端口 然后启动服务器 在登陆器上面对应每个区的网关端口) Q+ _% j( L# }- }0 x
使用引擎合区工具进行合区! K4 j/ b$ V. Y' z- N/ |9 f4 D
% t5 l- g; X9 ^# z/ o第三课* S4 z9 f. L* m# E* C
游戏NPC的添加 NPC脚本代码对应位置. i- u3 T6 p/ `5 [0 S. [2 x
找到mirserver/mir200/envir/MerChant.txt( O a1 f) ?9 x8 b. S
在最下面添加NPC
9 W7 R& I) @5 A8 J, T' lMarket_Def下面的哪个文件夹/脚本文件名称地图号 X坐标 Y坐标 NPC名称 NPC外观代码
2 p- U* e7 K, L脚本文件开头
' |- B( z( B5 @' y6 Y6 V3 W( R! g[@main](所有脚本通用开头)
, q( ]) ] i4 |& \5 b第四课
+ g1 d9 D' z* X5 C: z4 x4 {装备的添加
2 I5 a2 B4 l `3 E: X+ }物品代码" @7 X) {+ t0 P/ F1 X2 t. J
装备属性、隐藏属性代码、套装功能、装备名字颜色代码。
; c" ~9 R( I" C$ [装备属性使用万游编辑器修改 隐藏属性(万游) 详见M2引擎说明书物品代码表6 ^: D) F0 ~) ?9 o
套装功能对应M2server - 查看 - 列表信息 - 其他设置 - 套装功能
+ _2 J1 e- e% [. [8 Z% X! p5 w套装功能中套装编号对应数据库 (特殊属性栏数值) 套装属性为10-2552 h' w( N* n9 G. D9 g. J" _
o" Q' x3 u5 \- A第五课
, m- t* Z1 [) J: w; D# n/ d脚本的编写、登陆脚本、实战冲级奖励的编写。
$ l$ [- _. N' K. l6 B脚本文件对应NPC创建
% t: k/ W- Q3 U以[@main]开头3 W( {' C/ A, D; E
下面一#IF开始 #ACT执行 #elseact否则执行
* I1 M. l# F7 R4 U6 z8 [/ W登陆脚本' F* [1 x3 b4 d) `. @' a
mirserver/mir200/envir/MapQuest_def/QManage.txt! D4 c% B9 _, D$ z
sengmsg 0 全服提示 谁谁上线
/ G) o( D1 e% N# c" |! t" G! h$ P第六课. p' S9 d7 I% L, j0 V! K& H C
装备外观的添加计算方法、以及装备内观
4 W& [8 I' N$ K8 ]0 L9 J6 I+ I工具:wil编辑器
3 G5 p% a* `* ]/ M9 B. r* u. h9 x! O背包物品外观在items.wil 掉落地上的外观在dnitems.wil 装备栏的外观在:stateitems.wil
- Q! y5 W" O) L$ O, S" I3 ?武器动作在 热血传奇目录:Graphics下 weapon文件夹代表武器 human文件夹代表衣服
5 L9 }6 @( O# [文件名字对应万游中武器衣服的外观代码( L7 h- R4 q( N& l3 P; |
补丁文件后面加1的情况 HERO的引擎是图片代码+100001 G" W) Q) j# F# ^0 P# y
NPC外观代码, ( h" c6 V- O% s9 N
怪物补丁的计算方法以及添加怪物+ R, h, g3 z- n/ U
mon*.wil (*-1)X10= 然后WIL编辑器打开怪物文件
$ |. B( V, W8 k( S5 f7 fmon14.wil (14-1)X10=130 蛇蝎=130赤月恶魔=131幻影蜘蛛=132
' X4 w0 B6 S1 v A第一个怪物就在个位用0 第二个用1 依次类推2 M9 c: n1 ]/ ? S
怪物补丁为热血传奇目录下面的DATA文件夹下MON.wil-mon99.wil文件
: q0 {' q8 j- g7 Z$ ` [攻击图像详见传奇怪物攻击图像代码
& I. x0 I* X6 c7 U具体怪物攻击带特殊属性详见攻击代码5 O* X6 x# v$ J# U3 |+ F
第六课
2 @. n4 J F! b- W/ E% T6 ~9 a地图的添加以及地图限制代码的方式、地图与地图之间的连接、地图刷怪8 {7 T$ @# G0 [( q
首先把地图素材修改名字(字母跟数字组合)然后放到mirserver/mir200/map当中
; H; E* { b7 J: f1 g7 Q+ p2 `地图信息添加在mirserver/mir200/envir 下面的MapInfo.txt当中5 m/ B; t F: @# d8 `( Y; I
格式:[地图号|地图文件名(地图文件在mirserver下面的mir200下面的MPA文件夹) 地图名称] 后面以空格跟上地图限制代码或功能代码
' f1 V. B$ L, ~: y# y$ c+ U( k加入盟重土城地图9 Y& X$ Q' ^# D9 \+ S* R2 C& {" S
找到我们盟重土城调用的地图文件,按照上面的格式添加地图
+ r- n- u# c6 y% p7 n找到我们需要进行连接的两个地图的地图号
; s( H0 m$ u H, _! VA地图号 X坐标 Y坐标 - B地图号 X坐标 Y坐标0 G& p& F7 C3 j B
刷怪:2 l3 R& }/ S5 i& _. s8 z9 E
地图号 X坐标 Y坐标 怪物名称 刷怪范围 刷怪数量 刷怪间隔时间(分钟)
7 f" S! |+ X1 d- A+ P! g" n9 [0 p1 X+ W- h p4 q
第九课
9 d" p* P8 i+ N7 h6 b4 |利用M2引擎 铸造装备 快速写合成
( b* `; r' F- ]* E7 g在mirserver/mir200/envir/ 下面的FoundryList.txt文档中
1 d N) F% D! p- O0 W8 Y格式为:
) u4 E! M" [/ l" K, w合成物品 数量 成功率(100%) 需要物品 数量 失败是否消失 元宝 数量 失败是否消失
0 T6 k6 E" U) c+ ]开天 1 100 屠龙 1 1 元宝 100 1
& Q j- y; d# d; w7 d: ENPC内的脚本格式为:3 E" [: c$ {. z4 s0 N
#IF
! \2 E) w7 u( K. T0 C- k+ ^CheckFoundryItem 开天
K6 W8 j C7 N% ~- {7 a#ACT
( `6 ^" R; J% u8 [GiveFoundryItem 开天5 |& }! K" M% T$ d3 b: M0 ^0 H
SENDMSG 1 公告:$USERNAME 成功打造开天 一代天骄即将纵横出世!!颠覆整个玛法大陆!!!
3 `- E3 q5 f2 s+ T2 U#ELSEACT8 Q3 N( ?5 Y5 m {
SendMsg 5 缺少合成物品%Item
# {* I7 E. X9 U ~# a[@FoundryFail]
\" o% b, \6 R) }9 q2 ~#ACT
7 l6 `. p" T6 ZSendMsg 5 合成 %Item 失败!
6 i/ L# \& E1 {. q/ s: j5 D合成装备脚本的快速写法-运用铸造功能写合成装备
3 Y5 c4 ~9 K7 C) t5 f1 K, P! p: V" t
2 i$ A. X W6 `* p5 g4 ]1 g# J1 v$ V第十课
6 `; B, N6 l% A. m- K人物头上的图标封号介绍
9 u T" l9 ^% R \, g在登陆脚本中检查特定的人物 9 |# r. F2 @& a$ T: A( q
然后使用ICON.WIL中的图片数字
& g8 X, ~2 D- p4 o5 B' g- ?格式为:
6 U N5 \. q$ d" m- L0 S#IF
% B4 d/ |8 `& S: M; V* g( ~# |[217] 1
# E1 W# B A4 x' }# ?" E#ACT. A: P# R* y4 P& j8 U8 V
SetIcon 3300 1
: d/ q J! f2 r2 `4 ? I第十一课- P: l6 H, G9 q+ U* q
人物变色以及怪物触发功能脚本
( j1 y: w4 S3 q; S1 c[@stdmodefunc*] *号为1-999 不可重复已经有的' X& E& s) H8 X/ \) e' B$ l
同NPC脚本一样!
- ?+ L% x5 Q2 m( P! M# ?" y; _#if
. L2 a0 _3 `( M. Z2 S% Y#act
% \8 Z0 }# B8 ]0 \$ R& b#elseact8 `- B9 j+ C2 Y( \
在mirserver文档写触发文档 格式为
1 b) j( o# O, [% b4 ?9 L3 k假定人物不是变色的 那么 [679] 的标志位就应该是0继续检查幸运为多少
/ O/ f0 N& y! m3 l6 h5 F1 u" }+ t; v如果满足9 就对
. M. y' D1 W; p+ K s[@TAKEON1]6 b- z, p6 A" Z& a- D% S$ n1 c
#IF+ Q% t* p. o* e" B7 [2 b9 Y
CheckLuckPoint 9
4 B W/ ~2 s. B6 {$ c#ACT. ]1 o7 Q6 V! B3 E2 H' h
GMexecute TestStatus 4 65535 变成金黄色9 u8 m: }& c' d* @6 E8 S
SENDMSG 0 给力玩家 $USERNAME带上终极幸运套风云变色) s; J8 M2 C+ s% a e; `" O
goto @1
+ G" M/ Z0 v X& ] q/ x7 bbreak) c( g& R% J9 r4 z7 x
怪物触发脚本
3 M1 v5 |. Q. y/ F# E! O首先来到mirserver\mir200\envir 找到下面的MapQuest.txt - 怪物触发脚本# [; N. q& w# q3 F6 |
脚本格式为1 ^- L9 S9 `1 z+ f+ D$ n, _
地图号 怪物死亡触发序号 0 怪物名称 * Q0-Q800
3 K4 N @* G, A! L# A" smirserver\mir200\envir\mapquest_def
# m4 ^7 Z, l7 F[@TAKEON2]* p! x3 D \) z
#IF; X" T# _6 J5 Y9 k! R
checkluckpoint 108 V# W7 h8 H0 w
#ACT2 m+ F' H: h, `$ z7 h: ^. D; d# d7 w$ ^
GMexecute TestStatus 4 变回原来的0 P/ k- Q' M% T: x
break
1 Q) s" T7 C# \! Q这个因为我这个麦有问题 就先到这里 录像结束 等一下看能弄好就继续 ' l J6 k5 A3 g4 m: R9 X& |" b
不能的话明天讲那个变色吧 也就是说一般传奇里面的 幸运9特征& i+ n5 G& Q9 z! a( ?
当人物达到运9的时候进行全服提示给他头上加上一个图标或者说把他的人物
8 m( @# r3 U* K& }- m变成黄金色或者其他的颜色比如紫色。
6 ~# [! A6 ?6 K% r4 G/ i! j. a第十二课
( I# O8 R- p1 x3 J# {# q沙巴克城战的添加以及攻城时间设定: I: k$ {0 r+ d$ u' w
在m2server上面点击 管理-城堡管理-沙巴克-攻城设置
" {: l7 g" t, X( ~, @5 |( f+ L申请所有行会攻城-确定& n! `; u8 T2 p7 V
修改-参数设置-时间设置
4 S4 e) ~ {0 z% V* F4 S第十三课! l. ]( w4 P' F( h2 E* D
自定义脚本变量
7 Z) |3 m; Y4 e3 C首先在QMannge当中产生变量 格式为:8 N. C6 Y! X+ [' T9 Z/ f
VAR Integer HUMAN YY(变量名称)- T/ L* s% e; I9 `( h9 A' |! O
加下来继续写读取变量,格式为:* a* i" P5 z/ q/ l
LOADVAR HUMAN YY ..\QuestDiary\测试\Q123.txt
6 R8 ^ a0 f/ v在QuestDiary\测试 下新建一个名字为YY.txt的文档
# o5 V" d/ A2 ^ R' l% L6 F4 d' T接下来使用变量即可
+ x" F" ]3 d% Q详见使用说明书:自定义变量+ K4 w! H/ c; k! T
$ ~1 L" M2 U2 f4 ?第十四课) C. }; {4 b K( T6 Y6 W$ s: a" ]) E
游戏界面的修改以及登陆界面的修改4 @1 j: O% \5 l7 r6 v) _
gameplan.wil$ @4 u5 b; b: d& J/ \; |
游戏登陆过场动画 103 L8 ^5 `7 o( q. C r1 @: _
游戏下方的窗口图片 53 70 986 i" K- P: H H* h7 K% s% m
第十五课
; K0 l% q' K0 }2 U机器人脚本(也就是自动执行脚本)) U P. D% i5 \3 h/ M9 J% _4 H
mirserver\mir200\envir\Robot_def
3 _8 d) Z9 v$ F: RAutoRunRobot.txt 自动执行 RobotManage.txt' @ v+ k' y* B
在AutoRunbot.txt 当中格式为
. t! c. B" b% Q9 s' T( {$ W#AutoRun NPC 时间类型(MIN分钟 ** / SEC秒数 ** / RUNONDAY **:** / RUNONWEEK *:**:**) @****(RobotManage.txt 脚本段)7 O: O+ P+ J8 e$ C9 r8 W
第十六课0 l4 v# x# y7 j F" _- J
升级宝石的添加以及打不死的经验怪- t+ M8 P. A: g9 C8 P: c% Q6 i
StdMode=57(升级符合类型的装备)7 L Z. |4 v& z% L- n( @& s: Y b
Source=(等于2)
; i c2 x* ^0 \7 G3 k) `, B! G8 VShape=(等于0升级符合类型的装备,指定类型时填写待升级装备的StdMode值)
: s% V- }5 ?6 y3 n# L注意:此类宝石只增加攻击,道术和魔法.
; |# L5 A% h$ j( T/ t$ bDC2,MC2,SC2=(升级装备的攻击,魔法等,必须是可增加攻击和魔法等属性的装备才可以升级,例如:武器,项链等)
: H8 S G+ K& H c) V! iduramax为升级成功率 Anicount为可使用该物品升级次数8 Y3 }/ l, P9 @) `; u7 _" }. `
宝石类型6: P) n$ D# ?( m/ f& a- l9 K" O5 p
StdMode=59(增加升级成功率)% t8 K' U& v) D) k3 h# ~- W* Q4 F
Shape=(0表示所有类型,指定类型时填写待升级装备的StdMode值)
4 l% l. |+ L" g( E; e5 hDuraMax=(提高成功机率,例如:设定5即为提高5%的机率); W& d& t& l# y
9 I6 b. i- [+ n, Z1 k, n8 b
把怪加在哪个地图 找到地图号 后面加参数 HITMON(@XXXX)
- v) {' c4 z: l在QFunction-0.txt里加入触发脚本段 [@XXXX]8 `0 y5 S4 g/ J& F2 A
在万游设置器里添加怪物数据 l6 G( Y2 j' U
攻击类型 120 攻击图像 18: x1 o' L2 Y; k# K$ p- M
checkhitmonname 怪物名字8 n( Y* {6 p7 g/ x
刷怪文件 Mir200\Envir\MonGen.txt
. E: ~" x" r( Z9 J! D! P% _9 v5 o
6 t% z$ M3 `5 J* W6 H8 u4 H实战效果课程
9 b6 x) ~5 {/ V$ V' k自定义变量 G A I S
( l! ^+ L, i, i B6 [3 JG变量为数字型系统保存& h. N% a5 T7 r1 Q6 s! c
A变量为数字型脚本保存* ^8 y& g s( ~* W4 S$ M
I变量为文字型系统保存
/ _! T1 V4 U% O# I4 rS变量为文字型脚本保存9 Z$ g4 d7 b( T+ a4 P9 u
$变量名称) \& y3 ]0 {& @) P
首先把奖励名额(变量)进行赋值 ( z" o! f. J$ Y# R# V l7 k+ Y# `( _
首先我们把他所点击的等级移动到一个脚本保存变量
& H* S8 O: {6 ]2 m; |& J$ U可以用S0 S0=他所点击的那个奖励的等级+ s3 W3 V- C+ U* x
接下来检查该等级奖励名额的变量是否没有了 也就是等于0
. Q3 |" d1 K4 Z$ Q2 Y- \% \0 d$ ?+ f如果是的就进行一个 跳转告诉他领完了
4 ]* {4 r1 c/ ?2 h如果不是的就跳转到 领取的地方 再进行检测 因为我们还没有检测他的等级 以及他是否领取过
- s6 V# q R% Z1 L- v" \" @首先检测他的等级是否小于该奖励的等级(S0)
- g+ B2 a. |# d# K3 l' a; ^, d如果是的就告诉他等级不够 也可以使用 $STR(S0)等级不够- ]! _" x3 ]' M
再用break进行连接再进行检测
; r1 t, J8 y& D0 f+ M接下来再进行检查他是否已经领取过 可以是标志位 可以检查文本文档
v" [, b+ M: E& Q0 G- q0 ZCheckNameList ..\QuestDiary\奖励\升级领奖\$STR(S0)级.txt8 ^" @$ P% O8 W0 Y- U
如果他在这个文档当中就告诉他 他已经领取过$STR(S0)级的奖励了$ t/ L5 q2 f# Q+ A
如果他的名字没有在我们的那个奖励记录的txt当中的话 我们就让他去领取
$ \% Z% |6 c+ I7 L' { T; D: T3 g下载地址:
|