MapInfo.txt 所有的地图和对应的坐标点
# MapInfo.txt 所有的地图和对应的坐标点
[0 比奇省] IncGamePoint(60/1) # 位置 0
[0122 宫殿] IncGamePoint(60/1) # 位置0122
0 346,186 -> 0122 559,553 # 0:比奇省 坐标 - 0122:宫殿 坐标
MerChant.txt
# 所有服务脚本性质的NPC 和 NPC对应的地图 坐标 NPC的样子
;脚本名称 地图名称 X坐标 Y坐标 NPC名称 标志(方向) 形象 是否属于沙 是否移动 移动间隔 变色模式:1=名字+身体,2=身体变色,3=名字变色 变色间隔(毫秒) 是否固定颜色:0=不固定,1-7=固定颜色.
;┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
;脚本名称 地图名称 X坐标 Y坐标 NPC在游戏里的名称 标志(方向) 形象 是否属于沙 是否移动 移动间隔
传送员/封魔 4 237 207 传送使者 0 8 0 0 0
传送员/苍月 5 138 324 传送使者 0 8 0 0 0
传送员/比齐 0 330 270 传送使者 0 8 0 0 0
传送员/白日 11 181 323 传送使者 0 8 0 0 0
传送员/魔龙 6 120 154 传送使者 0 8 0 0 0
传送员/土城 3 341 335 传送使者 0 8 0 0 0
盟重城/盟重_老兵 3 326 326 老兵 0 1 0 0 0
盟重城/盟重_炼金师 3 320 334 炼金师 0 3 0 0 0
盟重城/盟重_综合服务 3 320 336 综合服务 0 31 0 0
#### MonGen.txt
# 各个地图刷新什么怪物 刷新数量 刷新范围等等
;代码 x y 名称 范围 数量 时间
;比奇
0 600 576 弓箭守卫 0 1 10
Npcs.txt
# 同样也是NPC文件 其实放在MerChant.txt脚本里也是可以的
;名称 代码 地图 x y 范围 图标
比奇国王 1 0122 29 32 0 8
管理人员 2 0150 9 12 0 8
沙城老兵 0 3 669 338 0 1
红娘 0 m101 27 32 0 12
AdminList.txt
# 管理员列表 把人物名输入到里面就是管理员了 这个在M2里面同样可以设置
* 张三
* 李四
UserCmd.txt
# 游戏里的命令 比如会员命令是 @会员服务 等等。。。对应的脚本是QFunction-0.txt
;引擎插件配置文件
;命令名称 对应编号
会员服务 1
洗红服务 5
MonSayMsg.txt
# 怪物说话配制 需要在M2功能设置里开启怪物说话才可以使用
# 状态(0为杀人,1为被攻击,2为死亡,3为刚刷出来) 刚刷出来发的文字为广播文字全服务器都可以看 # 到。
# 机率(数字越大,说话机率越小)
# 颜色(0为红色,1为绿色,2为蓝色,3为白色) 白色文字,显示在怪物头顶上所有旁边的人都可以看到,# # 其它颜色则显示在人物聊到框中只有对应的人物可以看到。 这个些的很详细 大家自己研究一下就能看懂
状态 机率 颜色 怪物名称 文字内容
1 30 3 弓箭守卫 我只能打你,你不能打我
1 30 3 弓箭守卫 哇!有没有搞错,%d我没K你。你居然K我!
2 30 3 弓箭守卫 不要打我
1 30 3 欢迎光临 欢迎光临宣之再创盛世!完美变态网络!
1 15 3 欢迎光临 强烈强烈要求您下载补丁 不然你不会了解什么是完美。。。
MapQuest_def\QManage.txt
# 登陆脚本 每个人物登陆游戏都会经过此脚本 起着决定性作用 以后学习脚本命令后 这个文件就可以学习# 到了
[@Login]
#IF
CHECKLEVELEX > 0
#ACT
SET [297] 0
VAR Integer HUMAN RWSR
LOADVAR HUMAN RWSR ..\QuestDiary\脚本触发\自定义\游戏数据.txt
goto @main
goto @main11
goto @main1
goto @main2
goto @wudijn
Break
[@wudijn]
#IF
CHECK [298] 1
#act
DELAYGOTO 30 @60xkd
[@60xkd]
#act
SET [298] 0
sendmsg 6 提示:无敌守护冷却完毕 随时可以进行释放...
[@main]
#IF
ISNEWHUMAN
#ACT
inc G0
SENDMSG 0 热烈欢迎!! 第【<$STR(G0)>】名玩家【%s】闪亮登场!!!
#CALL [\脚本触发\自定义\新人技能.txt] @新人技能
map B110
break
[@main11]
#IF
CHECKIPLIST ..\QuestDiary\游戏登陆\禁止登陆IP.txt
#act
kick
messagebox 提示:对不起!你三次登陆错误!IP已经被全面封杀!!!!!
break
[@main1]
#CALL [\脚本触发\封号系统\封号系统.txt] @封号分类
[@main2]
#CALL [\脚本触发\自定义\验证脚本.txt] @登陆激活
[@KSDT]
#act
GAMEPOINT + 100
CALCVAR HUMAN RWSR + 1
SAVEVAR HUMAN RWSR ..\QuestDiary\脚本触发\自定义\游戏数据.txt
SendMsg 5 您的谋杀罪名成立............
SendMsg 5 提示:您在狂杀暗殿杀了人!!奖励100点能量!能量值现有<$GAMEPOINT>点......
[@PTSW]
#act
GAMEPOINT + 50
CALCVAR HUMAN RWSR + 1
SAVEVAR HUMAN RWSR ..\QuestDiary\脚本触发\自定义\游戏数据.txt
SendMsg 5 您的谋杀罪名成立............
SendMsg 5 提示:您已经杀了人!!奖励50点能量!能量值现有<$GAMEPOINT>点......
[@NLBG]
#act
CALCVAR HUMAN RWSR + 1
SAVEVAR HUMAN RWSR ..\QuestDiary\脚本触发\自定义\游戏数据.txt
SendMsg 5 您的谋杀罪名成立............
SendMsg 5 提示:您杀的对手能量不够!!无法获得能量!能量值现有<$GAMEPOINT>点......
Market_Def\QFunction-0.txt
功能脚本 比如游戏里的卷轴使用后的效果就是通过此脚本完成
MapQuest.txt
# 怪物触发脚本 在某地图杀死某个怪将会执行某个功能 比如有些怪物是做任务的时候需要杀死的
0 [100] 0 稻草人 * Q001
0 [100] 0 多钩猫 * Q002
0 [100] 0 钉耙猫 * Q002
0 [100] 0 半兽人 * Q003
0 [100] 0 毒蜘蛛 * Q003
↑ ↑ ↑ ↑ ↑ ↑
地图 变量值 是否触发 怪物名 检测 触发脚本名
MonItems
# 此文件夹内就是暴率脚本 里面的怪物名对应的是怪物的暴出物品的暴率
搭建环境
1. DBC2000 # 注意配置DB 的path。
2. 版本一套
3. 登录器一个
登录器的配置 及列表更新
# 配置登录器
# 远程游戏列表地址 **
# 游戏登录验证码 要一致
mirserver\LoginSrv
选项-基本设置-专用登录器模式
DB数据库添加 怪物装备等
# 装备
分类号 衣服,武器外观
# 怪物
攻击类型 攻击样子 攻击效果
添加装备,以及装备补丁的制作
1. 装备素材
2. WIL文件管理器
Hum.wil # 衣服外观
Hum.wix
Weapon.wil # 武器外观
Weapon.wix
HumEffect.wil # 翅膀外观
stateitem.wil # 装备在装备栏的样子
Items.wil # 装备在背包的样子
DnItems.wil # 装备掉在地上的样子
# 导入
# 每一个武器,衣服(男,女)有1200张图片(坐标)
# 添加的物品需要推荐到数据库中
# 添加完后 把*.wil *.wix 文件打包做成补丁
添加新怪物和新地图
# 怪物添加重点:怪物样子代码计算公式:mon后面的数字减1 再乘以10 得出来的数字就是当前打开怪 物文件的第一个怪物的样子代码,第二个怪物就是得出来的数字加1,第三个怪物用得出来 的数字加2......依此类推
# 地图添加的重点:1.地图和怪物与装备的添加有所不同,分为.wil文件和.map文件,这两个文件制作出 来的时候就是相互对应的,在添加的时候,需要把WIL添加到盛大的客户端或者是把 图片导入盛大的客户端,同时也需要把.map文件加到服务端的map文件夹和客户端的 map文件夹下面,并且设置服务端 D:\MirServer\Mir200\Envir\MapInfo.txt 这个文件,你所新加的地图才会正常的启动
脚本
if # 如果
act # 则执行
say # 对
elseact # 如果不符合条件,则执行
elsesay # 如果不符合条件,则对话
break # 返回
close # 关闭
check [条件数] # 检测条件数
set [条件数] # 给予条件数
G0-G99 全局变量(数字型) 可保存
A0-A99 全局变量(字符型) 可保存
M0-M99 私人变量(数字型) 不可保存
I0-I99 全局变量(数字型) 不可保存
D0-D9 私人变量(数字型) 不可保存
N0-N99 私人变量(数字型) 不可保存
S0-S99 私人变量(字符型) 不可保存
P0-P9 私人变量(数字型) 不可保存
check (变量) (数值) 检测变量是否等于某数值
set (变量) (数值) 给予指定变量一个数值
inc (变量) (数值) 加指定数值到变量
small (变量) (数值) 检测变量是不是小于指定数值
large (变量) (数值) 检测变量是不是大于指定数值
equal (变量) (数值) 检测变量是不是等于指定数值
<$STR(x)> 显示当前变量的数值 X等于变量的数值
个人变量
公有和私有变量
自定义变量
1、首先要声明变量
2、读取变量
3 对变量进行编辑 可以 加 减 等等等....
4、保存变量
公有 GLOBAL
私有 HUMAN
Integer 数字型
String 字符型
1.声明变量
VAR Integer 公有/私有 变量名称 数字型
VAR String 公有/私有 变量名称 字符型
2.读取变量
LOADVAR 公有/私有 变量名称 ..\QuestDiary\某某目录\某某.txt
3.修改变量
CALCVAR 公有/私有 变量名称 + - * / = 脚本命令CALCVAR支持对变量进行+ - * / =五种操作
4、保存变量
SAVEVAR 公有/私有 变量名称 ..\QuestDiary\某某目录\某某.txt
5.检测变量
CHECKVAR 公有/私有 变量名称 > < = 脚本命令CHECKVAR支持对变量进行 > < = 三种操作
查看变量
<$公有/私有(变量名称)>
添加NPC
>> Mir200/Envir/MerChant.txt
测试合成 3 333 333 测试合成npc 0 8 0 0 0 0
>> Mir200/Envir/Market_def # 添加npc脚本文件 测试合成-3.txt
[@main]
#CALL [\\测试合成\测试.txt] @合成
>> Mir200/Envir/QuestDiary
# 创建文件夹 测试合成-测试.txt
自定义变量设置
>> Envir\MapQuset_def/QManage.txt
[@sharen]
#atc
VAR Integer HUMAN 测试杀人
LOADVAR HUMAN 测试杀人 ..\QestDiary\测试杀人\测试杀人.txt
[@StdModeFuncX] # X 你需要添加的数值 在db里添加相应的武器装备
#if
#act
give 麻痹戒指 1
give 麻痹戒指 1
give 麻痹戒指 1
添加音乐 \Legend of mir\wav
1机2区
1.控制面板下BDE 创建新的HeroDB
2.配置 控制器通讯端口:不能一样 游戏服务器名称 网关端口
如何更新服务端和引擎
1.查看自己的版本和引擎
2.在官方网站下载相应的文件
3.如何更新引擎和版本
4.更新引擎和版本的目的
添加地图
>> Mir200\Envir\MapInfo.txt # [0 比奇省]
>> Mir200\Map # 存放地图的一些文件 0.map
# [0 比奇省]
# [gm1212|0 比奇省二层]
#===================================================================================
[@main]
想去比奇省二层?\\
<跟我来/@go> <怕怕/@exit>
[@go]
#act
mapmove gm1212
give 回城卷 1
close
#==================================================================================
如何添人形怪物以及应用方式详细语音教程
>> Mir200\Envir\MonUseItems # 人形怪所在位置
#===================== 人形怪完整的配置 ============================================
[BaseInfo]
;职业 # 0:战士 1:法师 2:道士
job=0
;性别 # 0:男 1:女
Gender=1
;头发
Hair=5
;使用魔法
;注意:人形怪必须有相关技能才可以正常使用技能。
Magic=基本剑术,攻击剑术,刺杀剑术,烈火剑法,野蛮冲撞,半月弯刀,开天斩
;是否掉落身上物品 0=不掉 1=掉落
DropItem=0
;活动范围,0是不限制活动范围,超过活动范围自动返回出生点.
Territory=0
;是否允许挖取身上装备 1=是,0=否
ButchUseItem=1
;是否允许挖取身上装备:1为百分百,数字越大机率越小
;注意:设置0并不代表可以100% 挖到身上物品。
ButchRate=80
[UseItems]
;衣服
DRESSNAME=圣战宝甲
;武器
WEAPONNAME=怒斩
;照明物
RIGHTHANDNAME=
;项链
NECKLACENAME=圣战项链
;头盔
HELMETNAME=圣战头盔
;左手镯
ARMRINGLNAME=圣战手镯
;右手镯
ARMRINGRNAME=圣战手镯
;左戒指
RINGLANEME=圣战戒指
;右戒指
RINGRNAME=圣战戒指
;物品
BUJUKNAM=
;腰带
BELTNAME=圣剑腰带
;鞋子
BOOTSNAME=圣战鞋子
;宝石
CHARMNAME=魔血石(大)
;死亡掉装备机率 数字越小掉装备机率越高
DieDropUserItemRate=500
#===================================================================================
怪物数据库-添加数据
# 设置怪物爆率
>> Mir200/Envir/MonItems
# ============================ 新怪.txt ============================================
1/1 屠龙 #杀死一个怪 爆6把屠龙
1/1 屠龙
1/1 屠龙
1/1 屠龙
1/1 屠龙
1/1 屠龙
# ==================================================================================
# 命令制造 怪物
如何添抽奖脚本以及应用方式详细语音教程
# 2种方式
>> Mir200\Envir\Market_Def
# 1.===============================================================================
[@MAIN]
亲爱的玩家:<$USERNAME> \
¤╭⌒╮╭⌒╮ 欢迎光临 \
╱◥██◣ ╭⌒╮ \
︱田︱田田|╰------------- \
╬╬╬╬╬╬╬╬╬╬╬╬╬ \
------------------------------------------------------------ \
在我这里可以抽奖\
<开抽/@chou>
[@chou]
#IF
CHECKGAMEGOLD > 499
#ACT
MOVR d9 3 # 3 以下的随机数 [0,1,2] 多少个物品写多少
GOTO @go
#ELSESAY
你的元宝不够!!
[@go]
#IF
CHECKGAMEGOLD > 499
EQUAL d9 0 # 检测指定变量是否等于几 如果等于=0
#ACT
MOV d9 0 # d9=0
GAMEGOLD - 500
give 麻痹戒指 1
SENDMSG 7 【%S】恭喜你获得麻痹戒指
SENDMSG 0 恭喜【%S】在土城抽奖获得麻痹戒指一枚!
BREAK
#IF
CHECKGAMEGOLD > 499
EQUAL d9 1 # 检测指定变量是否等于几 如果等于=1
#ACT
MOV d9 0
GAMEGOLD - 500
give 护身戒指 1
SENDMSG 7 【%S】恭喜你获得护身戒指
SENDMSG 0 恭喜【%S】在土城抽奖获得护身戒指一枚!
BREAK
#IF
CHECKGAMEGOLD > 499
EQUAL d9 2 # 检测指定变量是否等于几 如果等于=2
#ACT
MOV d9 0
GAMEGOLD - 500
give 复活戒指 1
SENDMSG 7 【%S】恭喜你获得复活戒指
SENDMSG 0 恭喜【%S】在土城抽奖获得复活戒指一枚!
BREAK
# =================================================================================
# 2.===============================================================================
[@main]
<〖开始抽奖〗/@go> 每次100元宝\
[@go]
#IF
CHECKGAMEGOLD > 99
#ACT
GAMEGOLD - 100
goto @chou
#elseact
goto @likai
[@chou]
#IF
RANDOM 3 # 有三分之一几率执行这段脚本 100:百分之一
#ACT
SENDMSG 0 [%s]进行了元宝抽奖,获得的奖励是:[麻痹戒指]
give 麻痹戒指 1
break
#IF
RANDOM 3
#ACT
SENDMSG 0 [%s]进行了元宝抽奖,获得的奖励是:[护身戒指]
give 护身戒指 1
break
#IF
RANDOM 3
#ACT
SENDMSG 0 [%s]进行了元宝抽奖,获得的奖励是:[复活戒指]
give 复活戒指 1
break
[@likai]
#ACT
MESSAGEBOX 抽奖失败,您没有100个元宝!
# ==================================================================================