魔神争霸数据库脚本指令说明
80%可用,有一些错误,个人在开服过程中已经修改!
slk文件夹-需要压缩到客户端一份:
---------------------------------------------------------------------
D:mszbslkActionEx.slk 记录模型动作中要用的模型ID是天方中用的(可以考虑删除)
D:mszbslkarmour.slk 记录防具的模型ID和属性数值
D:mszbslkbuildingType.slk 记录建筑的属性是天方中的(可以考虑删除)
D:mszbslkcharmodulus.slk 记录各个角色的攻击系数
D:mszbslkcity.slk 记录各个城市的名字的 (目前用不到)
D:mszbslkcjvisual.slk 记录武器和防具模型的ID (可以考虑删除)
D:mszbslkCompound.slk 记录合成公式的
D:mszbslkCreateItemRule.slk 记录合成公式的
D:mszbslkcreaturesound.slk 记录音效的
D:mszbslkExpAndLevel.slk 记录升级要的经验
D:mszbslkExpression.slk 记录人物的表情
D:mszbslkgameaction.slk 记录人物的动作播放信息
D:mszbslkgem.slk 记录铁石的功用
D:mszbslkitem.slk 这是个复合表,将好几张别的表里的内容存在这里
D:mszbslkModel.slk 记录人物模型的动作以及对应的文件信息
D:mszbslkModelProj.slk 记录道具模型以及对应的文件信息
D:mszbslkmonster.slk 记录怪物信息-怪物暴率
D:mszbslkOfficialSetting.slk 记录功勋值和官位的信息
D:mszbslkParam_Desc.slk 天方里的 (可以考虑删除)
D:mszbslkParam_Formula.slk 天方里的 (可以考虑删除)
D:mszbslkProfession.slk 天方里的 (可以考虑删除)
D:mszbslkreel.slk 天方里的 (可以考虑删除)
D:mszbslkrestore.slk 记录恢复性道具的信息
D:mszbslkreputelist.slk ***称号属性代码
D:mszbslkShopCenter.slk ***商城修改物品
D:mszbslkskill.slk 记录游戏中所有的技能信息
D:mszbslkSkillEffect.slk 记录特殊技能的配置信息
D:mszbslkstatus.slk 记录所有的状态信息
D:mszbslkstone.slk 记录符石的信息
D:mszbslkString.slk 记录不同的语言提示-以及服务器名字
D:mszbslkweapon.slk 记录武器的信息
D:mszbslkWorldMapCfg.slk 记录游戏世界中所有的地图
---------------------------------------------------------------------
Script文件夹:
---------------------------------------------------------------------
D:mszbScriptCreatePlayer.s 注册上线送物品
D:mszbScriptGMtool.s GM专用物品工具
D:mszbScriptNPC.slk 游戏NPC属性
D:mszbScriptUseItem.slk 增加新脚本
---------------------------------------------------------------------
====GameAccount数据库============================================
GameAccount 游戏帐户
------------------------------------
t_Game_Account t_游戏帐户
|- ga_AccountID 注册用户名
|- ga_Password 注册用户密码MD5
t_Game_LoginLog t_游戏登录记录
------------------------------------
====Role数据库===================================================
Role 角色
------------------------------------
GuildTop 公会顶端
LevelTop 水平顶端
MoneyTop 钱顶端
t_game_character t_游戏角色
|- CharacterId 角色ID号
|- CharName 角色名
|- Lev 角色等级
|- Money 角色XX金
|- DataInfo 角色职业
|- OtherData 角色所在城市坐标,为空的话就认定为从为进过游戏的角色。此时进游戏会按照新手送物品送出新手装备。
|- KillValue 角色荣誉
|- Exp 角色总经验数值
t_game_Friend t_游戏朋友
t_game_GMInfo t_游戏 GM 信息
t_game_Guild t_游戏公会
t_game_GuildMember t_游戏公会成员
t_game_Item t_游戏项目
t_game_ItemTraceLog t_游戏项目痕迹记录
t_game_public_messages t_勇敢的公众信息
t_game_ScriptVar t_游戏手写体变容体
t_game_VisualInfo t_游戏视觉的信息,时装
|- CharacterId 对应“t_游戏角色”中的CharacterId
|- DataInfo 角色已装备在身上的物品
t_game_YuanBao_ToGame t_游戏元对游戏的 Bao
t_game_YuanBao_ToWeb t_游戏元对网络的 Bao
t_guild_stake_record t_公会堵注记录
UndueWord 不适当的字
------------------------------------
====ServerInfo数据库============================================
ServerInfo 伺候器信息
------------------------------------
t_game_Log t_游戏记录
t_Online_Info t_在线信息
t_server_Info t_伺候器信息
t_User_Info t_使用者信息
------------------------------------
天机脚本指令说明
proc_start,proc_end
proc_start n :
脚本开始,n脚本编号0~15
0:是初始化当前的脚本
1:是脚本的入口。
2~15:是脚本的其它过程
proc_end
脚本结束
proc_start与proc_end这两条必须成对出现。
例子:
proc_start 0
// 初始化脚本
proc_end
proc_start 1
// 开始运行脚本入口
// 做一些事
jump 2
proc_end
proc_start 2
// 做一些事
proc_end
= , += , -= , *= , /=
设置变量
x = n
当x是数字时
0-5999:自定义的变量(3000~5999:任务变量)
n是值
注:0~5999的玩家变量范围为:-127~+127
全局变量与临时变量范围为:- 2147483647~+2147483647
3000 = 0 // 设置3000号变量为0
2000 += 3 // 把2000号变量加上3
1000 -= 11 // 把1000号变量减去11
100 *= 2 // 把10号变量乘于2
1000 /= 10 // 把1000号变量除于10
当x是字符串时
设置的是当前触发脚本的玩家的属性
name = 名称
Name = 织田信长
名称不能超过15个汉字或30个英文数字
HeaderName = 队长名称
Dlg 0 你的队长是:%s HeaderName
DstPlayerName = 目标玩家名称
Dlg 0 目标玩家是是:%s DstPlayerName
Pos = x坐标 y坐标 方向
Pos = 59 128 6
x与y坐标为当前地图坐标
方向为0~7(右,右上,上,左上,左,左下,下,右下)
map = 地图编号
Map = 2
model = 模型编号
Model = 5017
Level = 等级
Level = 20
Profession = 职业编号
Profession = 1 (职业编号查看<附表1>)
Sex = 性别编号
Sex = 0 (性别编号查看<附表1>)
[key] 操作 数量
[key]为如下:
money:金钱
exp:经验
skillexp:技能经验
con:体质
str:力量
dex:敏捷
int:智力
mgc:魔力
lky:运气
hp:生命量
mp:魔法量
操作为:
+=:加
-=:减
=:相同
如:
money += 100
hp -= 20
mp += 10
if, else, endif
if:条件判断,这三条指令必须匹配出现
else:转折
endif:结束判断。
If [key] 逻辑操作符 数值
[key]
当[key]是数字时
为玩家身上的变量(0~4095)
当[key]是字符串时
为玩家的属性(同Set [key]的[key])
逻辑操作符
>:大于
>=:大于等于
<:小于
<=:小于等于
==:等于
!=:不等于
if money > 1000
// 条件成立做某事
Else
// 条件不成立做某事
endif
call n
调用某个编号的脚本,当脚本执行完毕,返回调用的地方,然后继续向下执
n: 脚本编号
call 3
脚本3调用完毕返回
jump n
跳转到某个编号的脚本,当脚本执行完毕,不返回调用的地方。(注意与call的区别)
n: 脚本编号
jump 3
脚本3调用完毕不返回
return
返回当前脚本
dlg 0 text $m
显示对话框。
参数:
第一参数为0表示有下一句、为1表示是最后一句
第二参数是对话内容
第三个到N个参数为变量
dlg 0 显示”下一步”按钮
dlg 1 显示”关闭按钮”
var $x
$x = 10
dlg 1 馒头为%s个,我的名字叫%s $x name
注:后面的变量将代替%s显示出来,运行结果为“馒头为10个,我的名字叫WitSun”
Talk time color text
在激活脚本玩家的屏幕显示信息
time: 显示的时间(毫秒,1000毫秒=1秒)
color: 字的颜色
text: 信息内容
Talk 10000 0xffff0000 你好呀
TalkAll time color text%s $n
在所有玩家的屏幕显示信息
参数的意思同“Talk”指令
TalkAll 10000 0xffff0000 你有%s个物品 $n
TalkArea mapid x y time color text%s $n
在指定区域内玩家的屏幕显示信息
Mapid: 地图ID
x,y: 区域坐标
参数的意思同“TalkAll”指令
TalkArea 0 3 4 10000 0xffff0000 你有%s个物品 $n
Tell text
text: 信息内容
向玩家聊天框显示信息
Tell 你好呀
flytomap
立即飞行到指定的地方,后面的参数为地图编号与地图坐标
Flytomap 1 45 47
1:为地图ID
45:为地图x坐标
47:为地图y坐标
ask
多个选择项目的排列
[var] = ask 提示内容 选项0选项1选项3选项n
[var]:为系统变量
Var _n
_n = Ask 选项测试 上海 北京 深圳
if _n == 0
dlg 你选择了上海
else
endif
if _n == 1
dlg 你选择了北京
else
endif
if _n == 2
dlg 你选择了深圳
else
endif
RemoveAllEquip
卸去所有装备
RemoveAllItem
卸去所有道具
Shop_Item id price mincount maxcount percount x
设定商店卖的物品(与Shop指令配合使用)
id: 物品ID
price: 物品其本价格(-1时从SLK表读入)
mincount: 物品最少数量(库存)
maxcount: 物品最大数量(库存)
percount: 所卖物品数量
X: 物品活跃度(55~100)
Shop_Item 5700 10 60 5 80
表示:
5700: 物品ID
10: 基本价格
60: 库存最大数
5: 每批出售个数
80: 活跃度80%
Shop id rate type
交易指令(与Shop_Item指令配合使用)
id: 商店ID,每个商店有自己的唯一ID,范围由策划规定(ID不能重复)
rate: 物品刷新周期(分钟)
type: NPC回收物品的类型(查看<附表1>, 为-1时表示任意物品)
Shop_Item 5700 10 60 5 80
Shop_Item 7715 100 60 5 80
Shop 1 30 -1
表示: 商店出售ID5700物品,与ID7715物品
1: 商店唯一ID
30: 每30分钟刷新商店的物品,如果目前该商品少于30%,就补足数量,否则不补足
-1: 表示此商店回收任意类型物品
HaveThisItem
判断是否有该道具
Var _n
_n = HaveThisItem 小刀
_n:为变量,返回数目
RemoveThisItem
从包裹移除道具
RemoveThisItem 盔甲 3
3:移除所有该道具数量
-1移除所有该道具
IsThisItemEquipped
判断该道具是否被装备
Var _n
_n = IsThisItemEquipped 盔甲
_n:为变量,返回结果(返回0为没有,返回1是)
IsThisSkillActived
判断玩家是否有该技能5 u w l.n e t
Var _n
_n = IsThisSkillActived 1090 1
1090:技能ID
1:技能级别
_n:为变量,返回结果(返回0为没有,返回1是)
BC 苹果数为%s $n
向所有玩家广播内容
BC 大家好呀
SetBornPoint
设置出生点
SetBornPoint 1 30 40
1:地图ID
30,40:地图坐标
TeachSkill
学习技能
TeachSkill 1000 1001 1001
1000,1001,1002:为技能ID
最多为64项
Add_Item
玩家获得某样道具
Add_Item 大刀 1
大刀:道具名
1:数量
Can_get_new_quest
是否可以接新的任务
Var _n
_n = Can_get_new_quest
_n:为变量,返回值,1为可以,0为不行
Cancel_quest
取消任务
Cancel_quest 3000
3000:为任务变量
Done_quest
完成任务
Done_quest 3000
3000:为任务变量
Set_quest_state
设置任务状态
Set_quest_state 3000 1
3000:为任务变量
1:为任务状态, 为系统变量,返回值
0:未接过任务
-1:已完成任务
1~254:任务过程
Get_quest_state
取得任务状态
Var _n
_n = Get_quest_state 3000
3000:为任务变量
_n:为任务状态
Relate_quest id state enter
关连任务
id: 任务ID
state: 任务状态
enter: 脚本入口
Relate_quest 3000 1 2
3000:为任务变量
1:为任务状态
2:为脚入入口
注:
任务NPC脚本始化时要对”自己所感兴趣的任务状态”进行关连
如:
proc_start 0
relate_quest 3000 0
relate_quest 3000 3
proc_end
Var $
变量声明
Var $n
Var $g_n
$n:为临时变量
$g_n:为系统变量
临时变量前面加标识符’$’
系统变量以’$g_’开头
如:
Var $m
$m = 100
if $m == 100
else
endif
RefreshMonster
刷怪
RefreshMonster n x y m
n:地图ID (当n为-1时表示刷新触发脚本的玩家或怪物所在地图上的怪)
x,y:小地图编号
m:区块ID
如:
RefreshMonster 0 3 4 3
在0号地图3,4编号为3的区块刷怪
(要在MonsterConfig.exe里事先编辑好)
PlayMusic
播放音乐
PlayMusic n filename
n:
0:播放一次
1:重复播放
-1:停止播放
filename:音乐文件名
如:
PlayMusic data/music/1.mp3
{#FFFF0000=文字#}
基本格式使用“{}”大括号
“#”字符代表16进制
在“#”后面跟8位16进制符号(16进制——0~~F),每2位代表一个颜色
“00”代表全透
“FF”代表实不透
“00~FF”之间可按情况任意取值
具体说明:
2位 2位 2位 2位
↓ ↓ ↓ ↓
透明通道 红 绿 蓝
例子:{#FFFF0000=文字#}
形成效果就是“文字”
地点:地点名称{#FFFF0000=文字#}
人名:人物名称{#FFFFFF00=文字#}
道具:道具名称{#FF00FF00=文字#}
事件:事件名称{#FFFF9900=文字#}
//超链接
{h文字h}
例子: {h村长h}
形成效果: 村长
MakeItem
合成/精炼/强化
MakeItem NeworOld maketype(old) rate equiptype(new) itemtype(new) x1 x2 x3 x4 y a x waste(以上全是new) I d1begin id1end id2begin id2end …(以上全是old)
NeworOld: 1是新的合成 0是老的
maketype: 制作类型
0:合成
1:精炼
2:强化
rate: NPC附加合成几率
equiptype: 指定是武器还是防具
itemtype: 生成物品具体类型(查看<附表1>,)
x1: 影响材料强度的作用大小系数; x1=50-100
x2: 影响合成物品等级的作用大小系数; x2=20
x3: 影响合成武器攻击强度总体大小的系数 x3=5-6
x4: 影响合成防具防御强度总体大小的系数 x4=5-6
y: 影响合成物品的耐久 y=0
a: 影响合成物品的耐久 a=1
x: 影响物品的耐久 x=1
waste 各类合成物品的消耗度;
双手武器消耗度=0.1-0.3
单手武器消耗度=0.5-0.8
衣服消耗度=0.1-0.2
护腿消耗度=0.2-0.3
肩膀消耗度=0.4-0.5
护腕消耗度=0.5-0.8
腰带消耗度=0.3-0.5
头盔消耗度=0.4-0.6
鞋子消耗度=0.3-0.5
盾牌消耗度=0.1-0.4
idnbegin, idnend: 物品ID开始与结束区间
(最多8组)
Rand
随机数值提取
Rand X X为可变数值(1~32767)
假设 rand 10 取值范围为(0-9)
Var $n
$n = rand 2
if $n == 0
else
endif
GetCharCount x
获得x号地图玩家与NPC的数量
GetCharCount n
n: 地图ID
Var $n
$n = GetCharCount 3
// 获得3号地图的玩家数量
if $n == 0
else
endif
注:是(玩家+NPC)的数量
ShowQuestDlg
显示任务对话框
$n = ShowQuestDlg请问你有什么事吗?
$n:返回值
-1:没有可用的任务
0:用户没选择任务
其它:任务ID号
proc_start 0
relate_quest 3000 0 1
relate_quest 3000 1 2
relate_quest 3001 1 1
proc_end
proc_start 1
var $n
$n = ShowQuestDlg 请问你有什么事吗?
If $n == -1
Dlg 1 没任务
Else
Endif
If $n == 0
Dlg 1 你没选择任务
Else
Endif
If $n == 3000
Dlg 1 你选择了3000号任务
Else
Endif
proc_end
UseSkill id level
使用技能
Id: 技能ID
Level: 技能等级
UseSkill 1024 1
PopNpcList
显示当前地图NPC列表
PopNpcList
AddSkill
添加技能
AddSkill 1000
1000:为技能ID
GetWorldTime type
获得游戏世界时间(天机时间)
type为: Year 年
Month 月
Day 日
Hour 时
Minute 刻
var $n
$n = GetWorldTime Day
NpcMoveNext
让NPC移动到下一点
NpcMoveNext
NpcPlayAnim name count end
让NPC做一个动作(只有触发角本的玩家看得到)
Name: 动作名称
Count: 做这个动作的次数
End: 结束动作名称
NpcPlayAnim sayhello 4 idle
NpcPlayAnimForAll name count end
让NPC做一个动作(所有可视玩家看得到)
Name: 动作名称
Count: 做这个动作的次数
End: 结束动作名称
NpcPlayAnimForAll sayhello 4 idle
CanLearnSkill id level
判断能否学习某个技能
id: 技能ID
level: 技能等级(从1开始!)
Var $n
$n = CanLearnSkill 1000 1
ShowBank
获得玩家钱庄信息。
ShowBank
DoRide id
乘坐骑
id: 坐骑ID
DoRide 1000
SetDialogName name
显示对话框的名字
name: 名字
SetDialogName 天书
SetHotkey index id
设置热键
Index: 所要放置热键的索引
Id: 热键ID
SetHotkey 0 1000
SetStorage
玩家存取物品到仓库,NPC的名字请填写当地城市的名字来标志城市
SetStorage
LogInfoToDB info
把信息存储到数据库中
返回值:0失败,1成功
Var $return
$return = LogInfoToDB 打宝活动(%s-%s-%s-%s) $a $b $c $d
GetTeamPlayerCount
获得团队里玩家数量
返回值最少是1人,也就是自己
Var $count
$count = GetTeamPlayerCount
GetTeamPlayerLevel x
获得团队里玩家等级
x: 0: 最低的等级
1: 最高的等级
Var $level
$level = GetTeamPlayerLevel 0
SetTeamVar key var
设置团队变量
Key: 变量名
Var: 值
SetTeamVar 500 1
GetTeamPlayerID index
获得团队里某成员的ID
Index: 成员索引
注:如这团队有3个人,那索引就是0,1,2
而且0号索引的是队长
Var $count
$count = GetTeamPlayerCount
If $count == 2
Var $id
$id = GetTeamPlayerID 1
Else
endif
GetCurPlayerID
获得当前脚本玩家的ID
Var $id
$id = GetCurPlayerID
GetPlayerVar id key
获得玩家的变量
Id: 玩家ID
Key: 变量
Var $id
$id = GetTeamPlayerID 1
Var $hp
$hp = GetPlayerVar $id hp
SetDstPlayer id
设置目标玩家
Id: 玩家ID
Var $id
$id = GetTeamPlayerID 1
SetDstPlayer $id
CreateMonster mapid x y r bodysize index num
创建怪物
Mapid: 地图ID
x,y: 地图坐标
r: 半径
bodysize: 体形大小
index: 怪物索引
num: 怪物数量
CreateMonster 0 100 100 20 1 100 2
注: 在游戏中查看脚本变量的方法,在聊天框输入“/var 变量名”
如:
/var 1000
/var $n
附表1:
物品类型编号
0 :恢复药品
1 :武器
2 :防具
8 :卷轴
9 :原料
10:勋章
12:工具
13:宝石
职业编号
0:刺客
1:战士
2:猎人
3:方士
4:牧师
性别编号
0:男
1:女
武器编号
0: 拳头,相当于徒手
1: 单手剑
2: 双手剑
3: 长弓
4: 枪,弩
5: 棍棒
6: 匕首
7: 盾牌
8: 拳套
9: 单手斧
10: 双手斧
防具编号
0: 头发
1: 头盔
2: 脸
3: 盔甲
4: 手套
5: 鞋子
6: 左手物品
7: 右手物品
8: 头饰
9: 盾
10: 护肩
11: 护腿
12: 戒指
13: 手镯
14: 项链
15: 腰带
removethisitem 凤翔血刃 1 从你背包中删掉一个物品
add_item 凤翔血刃 1 从你背包中加上一个物品
tell 你失去了一把摩斧镇魂 输出一句话(弹出对话框形式)
- 上一篇文章:神泣秘密交易所添加NPC的方法
- 下一篇文章:关于魔兽争霸组队才能进副本怎么设置