2023年11月27日发(作者:)

天机脚本指令说明

proc_startproc_end

proc_start n :

脚本开始,n脚本编号0~15

0:是初始化当前的脚本

1:是脚本的入口。

2~15:是脚本的其它过程

proc_end

脚本结束

proc_startproc_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

xy坐标为当前地图坐标

方向为0~7(,右上,,左上,,左下,,右下)

map = 地图编号

Map = 2

model = 模型编号

Level = 等级

Level = 20

Profession = 职业编号

Profession = 1 (职业编号查看<附表1>)

Sex = 性别编号

[key] 操作 数量

Model = 5017

Sex = 0 (性别编号查看<附表1>)

[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]

1) [key]是数字时

为玩家身上的变量(0~4095)

2) [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

判断玩家是否有该技能

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:为任务状态, 为系统变量,返回值

1~254:任务过程

0:未接过任务

-1:已完成任务

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的区块刷怪

(要在里事先编辑好)

PlayMusic

播放音乐

PlayMusic n filename

n:

0:播放一次

1:重复播放

-1:停止播放

filename:音乐文件名

:

PlayMusic data/music/3

{#FFFF0000=文字#}

基本格式使用“{}”大括号

#”字符代表16进制

在“#”后面跟816进制符号(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

Index: 成员索引

获得团队里某成员的ID

:如这团队有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: 双手斧