## buff系统介绍
buff系统为一定时间内为玩家以及怪物提供一定的增益 或者 减益效果。
## buff 系统分类
buff系统根据实际作用效果可分为三大类。
### 1.属性类Buff
玩家或怪物获得此类Buff 可增加或者减少其某些属性的数值。
### 2.状态类Buff
玩家或怪物获得此类Buff 可增加 对应的状态 , 例如 禁止移动、 无敌 、 隐身、禁止使用某些技能以及物品等。
### 3.间隔作用类Buff
玩家或怪物获得此类Buff 将在持续时间内以间隔时间为单位产生作用。 例如 持续10秒 每2秒减少100点HP。
## Buff系统对应接口说明
### 1.添加属性类Buff
```
TActor.AddAbilityBuff(GroupID:Integer;AbilityType:TBuffAbilityType;DuraMs:Cardinal;AblityValue:Int64;ValueIsRate:Boolean):TBuff;
```
| 参数名称 | 参数类型 | 说明 |
| --- | --- | --- |
| GroupID | Integer | 分组ID(同组ID只能存在一个Buff 若重复在添加的时候会先移除掉之前的Buff) |
| AbilityType | TBuffAblityType | 属性类型(具体类型见此页TBuffAblityType对照表) |
| DuraMs | Cardinal | 持续时间(单位毫秒) |
| AblityValue | Int64 | 增加的属性数值,根据ValueIsRate来确定增加的属性是万分比值还是具体数值 |
| ValueIsRate | Boolean | 此字段若为true则表示添加的属性AblityValue使用万分比类型,否则为具体实际数值。 |
### 2.添加状态类Buff
```
TActor.AddStatusBuff(GroupID:Integer;StatusType:TBuffStatusType;DuraMs:Cardinal; Args1:Int64 = 0; Args2:Int64 = 0):TBuff;
```
| 参数名称 | 参数类型 | 说明 |
| --- | --- | --- |
| GroupID | Integer | 分组ID(同组ID只能存在一个Buff 若重复在添加的时候会先移除掉之前的Buff) |
| StatusType | TBuffStatusType | 状态Buff类型 (具体类型见此页TBuffStatusType 对照表) |
| DuraMs | Cardinal | 持续时间(单位毫秒) |
| Args1 | Int64 | 可选参数1 对于某些特定类型的Buff才有意义(具体类型见此页 TBuffStatusType 对照表) |
| Args2 | Int64 | 可选参数2 对于某些特定类型的Buff才有意义(具体类型见此页 TBuffStatusType 对照表) |
### 3.添加间隔作用类Buff
```
TActor.AddIntervalBuff(GroupID:Integer;IntervalType:TBuffIntervalType; DuraMs:Cardinal;Interval:Cardinal;Args1:Int64 = 0; Args2:Int64 = 0):TBuff;
```
| 参数名称 | 参数类型 | 说明 |
| --- | --- | --- |
| GroupID | Integer | 分组ID(同组ID只能存在一个Buff 若重复在添加的时候会先移除掉之前的Buff) |
| IntervalType | TBuffIntervalType | 属性类型 参照具体类型见此页 TBuffIntervalType 对照表 |
| DuraMs | Cardinal | 持续时间(单位毫秒) |
| Interval | Cardinal | 间隔作用时间(单位毫秒) |
| Args1 | Int64 | 可选参数1 对于某些特定类型的Buff才有意义 具体类型见此页 TBuffIntervalType 对照表 |
| Args2 | Int64 | 可选参数2 对于某些特定类型的Buff才有意义 具体类型见此页 TBuffIntervalType 对照表 |
### 4.设置Buff客户端图标以及提示消息
Buff添加完毕就会立即生效。如果需要在客户端Buff作用区域显示Buff图标,在添加Buff后立即调用TPlayObject.SetBuffIcon即可。
```
TPlayObject.SetBuffIcon(BuffHandle:Integer;ImageLibFile:String; ImageIndex:Integer; HoverImageIndex;ShowMessage:String;DisappearMessage:String;HintMessage:String;FlashOnDisappear:Boolean;ShowTimeStr:Boolean);
```
| 参数名称 | 参数类型 | 说明 |
| --- | --- | --- |
| BuffHandle | Integer | 添加Buff成功后返回的Buff对象的Handle值。 |
| ImageLibFile | String | 图片库文件 如果为空 则默认使用 icons.data |
| ImageIndex | Word | 正常图标显示的序号 |
| HoverImageIndex | Word | 鼠标选中状态的图标序号。 |
| ShowMessage | String | Buff添加时候发送到聊天栏的文字消息。(仅自己可见) |
| DisappearMessage | String | Buff 从身上移除时候发送到聊天栏的文字消息。(仅自己可见) |
| HintMessage | String | 鼠标选中图标时候的提示信息(支持文字排版) |
| FlashOnDisappear | Boolean | 是否在消失前3秒图标闪动 |
| ShowTimeStr | Boolean | 是否在图标底部显示剩余时间 |
说明:
<table style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-COLOR: rgb(79,129,189); WIDTH: 99%; BORDER-TOP-WIDTH: 1px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-COLOR: rgb(79,129,189); BORDER-LEFT-WIDTH: 1px" border="1" cellspacing="0" cellpadding="3" _ewebeditor_tabletemplate="template32">
<tbody>
<tr>
<td style="BORDER-BOTTOM: rgb(79,129,189) 3px solid; TEXT-ALIGN: center; BORDER-TOP-WIDTH: 0px; HEIGHT: 17px; BORDER-LEFT-WIDTH: 0px; FONT-WEIGHT: bold; BORDER-RIGHT: rgb(79,129,189) 1px solid" colspan="2">ShowMessage、DisappearMessage、HintMessage三个字符串参数 可用以下标签<br>
</td>
</tr>
<tr height="18">
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BACKGROUND-COLOR: rgb(211,223,238); BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">$属性值$</td>
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BACKGROUND-COLOR: rgb(211,223,238); BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid"> </td>
</tr>
<tr height="18">
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">$属性值比率$ </td>
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">buff值 百分比小数 保留两位小数</td>
</tr>
<tr height="18">
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BACKGROUND-COLOR: rgb(211,223,238); BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">$Args1$ </td>
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BACKGROUND-COLOR: rgb(211,223,238); BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">参数1值</td>
</tr>
<tr height="18">
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">$Args2$ </td>
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">参数2值</td>
</tr>
<tr height="18">
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BACKGROUND-COLOR: rgb(211,223,238); BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">$Args1比率$ </td>
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BACKGROUND-COLOR: rgb(211,223,238); BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">百分比小数 保留两位小数</td>
</tr>
<tr height="18">
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">$Args2比率$ </td>
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">百分比小数 保留两位小数</td>
</tr>
<tr height="18">
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BACKGROUND-COLOR: rgb(211,223,238); BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">$持续时间$ </td>
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BACKGROUND-COLOR: rgb(211,223,238); BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">总持续时间 单位秒</td>
</tr>
<tr height="18">
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">$剩余时间$ </td>
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">剩余时间 单位秒</td>
</tr>
<tr height="18">
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BACKGROUND-COLOR: rgb(211,223,238); BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">$作用间隔$ </td>
<td style="BORDER-BOTTOM: rgb(79,129,189) 1px solid; BACKGROUND-COLOR: rgb(211,223,238); BORDER-TOP-WIDTH: 0px; HEIGHT: 15px; BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT: rgb(79,129,189) 1px solid" x:str="">BUFF触发间隔 对于 持续间隔作用类BUFF有效。 单位秒 进行格式化</td>
</tr>
</tbody>
</table>
### 5.使用预定义配置添加Buff
在版本管理器如下位置可以对Buff做一个预定义设置。![](5b084cee4c0047a69fca199e702db7e4.files/yy1dnum201805260914470.png)
![](https://img.kancloud.cn/f3/17/f317033e09c14438b410a0160425d172_860x503.png)
设置之后可以使用以下命令对BUFF进行添加
```
//使用预定义BuffID 添加Buff
TActor.AddBuffByID(BuffID:Integer;GroupID:Integer = -1):TBuff;
//使用预定义Buff名称 添加Buff
TActor.AddBuffByName(BuffName:String;GroupID:Integer = -1):TBuff;
```
>[danger] 注意: 当参数GroupID留空或者为-1时候表示 不修改配置中的分组ID 当GroupID >=0 表示动态修改为对应的分组ID ,根据分组ID使用预定义配置添加的Buff 在流量带宽上有更好的表现。频繁添加的Buff 建议使用预定义配置进行添加。并且在添加了预定义buff后 无需再执行SetBuffIcon对 Buff进行图标设置。
### 6.移除Buff
```
TActor.DeleteBuff(BuffHandle:Integer):Boolean;
```
| 参数名称 | 参数类型 | 说明 |
| --- | --- | --- |
| BuffHandle | Integer | Buff添加返回得到的Handle |
### 7.根据Buff分组移除Buff
```
TActor.DeleteBuffByGroupID(MinGroupID:Integer;MaxGroupID:Integer):Integer;
```
| 参数名称 | 参数类型 | 说明 |
| --- | --- | --- |
| MinGroupID | Integer | 最小的作用组 |
| MaxGroupID | Integer | 最大的作用组 |
>[danger] 说明: 其中参数使用的是闭区间 即包含最小组和最大组 , 返回值为移除的Buff 数量。
### 8.遍历玩家或者怪物身上拥有的Buff示例
```
for i := Actor.BuffCount -1 downto 0 do
begin
Buff := Actor.Buff[i]
end;
```
## Buff系统脚本触发
### 1.添加Buff时触发
当对玩家或者怪物添加Buff时会引擎会触发QFunction内的OnAddBuff函数 通过修改 Accept := False 可以禁止此Buff添加到怪物或者玩家身上。
函数示例:
```
procedure OnAddBuff(Actor:TActor;Buff:TBuff;var Accept:Boolean)
```
### 2.移除Buff时触发
当Buff从玩家或者怪物身上移除的时候引擎会触发QFunction内的OnRemoveBuff函数
```
procedure OnRemoveBuff(Actor:TActor;Buff:TBuff)
```
### 3.自定义间隔作用类Buff触发。
当添加自定义间隔作用类Buff之后 在间隔设定时间后。引擎将调用QFunction中OnCustomBuffAffect函数
```
procedure OnCustomBuffAffect(Actor:TActor;Buff:TBuff)
```
## Buff对象字段说明
### TBuff 对象说明
| 字段 | 参数类型 | 只读 | 说明 |
| --- | --- | --- | --- |
| Handle | Integer | √ | Buff的运行唯一标记通过此Handle 可对Buff进行一些操作。 |
| Tag | Integer | × | Buff标志值用于提供给脚本对buff进行特殊标记 |
| GroupID | Integer | √ | Buff创建时候的分组ID (同组所有的Buff只能存在一个) |
| Category | TBuffCategory | √ | Buff分类。 TBuffCategory 对照表 |
| AbilityType | TBuffAbilityType | √ | 属性类型,仅当Buff类型为属性类Buff时有效 |
| AbilityValue | Int64 | √ | Buff增加的属性数值,仅当Buff类型为属性类Buff时有效 |
| ValueIsRate | Boolean | √ | Buff作用值是否为万分比(仅Buff为属性类Buff时有意义) |
| StatusType | TBuffStatusType | √ | 状态类型,仅当Buff类型为状态类Buff时有效 TBuffStatusType 对照表 |
| IntervalType | TBuffIntervalType | √ | 间隔作用类型,仅当Buff类型为状态类Buff时有效 TBuffIntervalType 对照表 |
| Args1 | Int64 | √ | 参数1,对不同的Buff类型有不同的意义 |
| Args2 | Int64 | √ | 参数2,对不同的Buff类型有不同的意义 |
| CustomInt | Array\[0..3\] of Int64 | × | 自定义数据,提供给脚本中进行实现自定义数据标记。 |
| CustomStr | String | × | 自定义数据,提供给脚本中进行实现自定义数据标记。 |
| Actor | Tactor | √ | 记录BUFF释放者,可用于避免受buff持续伤害死亡无攻击者的情况 |
## Buff系统类型定义参考表
### 1.Buff分类对照表
TBuffCategory
| 类型 | 说明 |
| --- | --- |
| bcNone | 无效 |
| bcAbility | 属性类buff |
| bcStatus | 状态类buff |
| bcInterval | 间隔作用类buff |
### 2.属性类Buff类型对照表。
TBuffAbilityType
| 类型 | 说明 |
| --- | --- |
| atNone | 无效 |
| atMaxHP | 最大HP |
| atMaxMP | 最大MP |
| atDC | 物理攻击下限 |
| atDCMax | 物理攻击上限 |
| atMC | 魔法攻击下限 |
| atMCMax | 魔法攻击上限 |
| atSC | 道术下限 |
| atSCMax | 道术上限 |
| atPC | 刺术下限 |
| atPCMax | 刺术上限 |
| atTC | 箭术下限 |
| atTCMax | 箭术上限 |
| atWC | 武术下限 |
| atWCMax | 武术上限 |
| atAC | 物理防御下限 |
| atACMax | 物理防御上限 |
| atMAC | 魔法防御下限 |
| atMacMax | 魔法防御上限 |
| atHitPoint | 准确 |
| atHitSpeed | 攻击速度 |
| atSpeedPoint | 敏捷 |
| atLucky | 幸运 |
| atHealthRecover | HP恢复 |
| atSpellRecover | MP恢复 |
| atAntiMagic | 魔法躲避 |
| atAntiPoison | 毒物躲避 |
| atPoisonRecover | 中毒恢复 |
| atAbsorbing | 伤害吸收 |
| atRebound | 伤害反弹 |
| atAttackAdd | 附加伤害 |
| atPunchHit | 致命一击 |
| atCriticalHit | 会心一击 |
| atPunchHitDef | 致命一击抵抗 |
| atCriticalHitDef | 会心一击抵抗 |
### 3.状态类Buff类型对照表
TBuffStatusType
| 类型 | 说明 |
| --- | --- |
| stNone | 无效 |
| stStone | 石化 |
| stDenyMove | 禁止移动(跑步和走路以及骑马都不行) |
| stDenyWalk | 禁止行走 |
| stDenyRun | 禁止跑步 |
| stDenyHorse | 禁止骑马 |
| stSuperMan | 无敌 |
| stSuperManForMon | 只对怪物无敌 |
| stRelive | 复活(此Buff时Args1为复活生效次数,达到次数将自动删除buff, 0 表示无限) |
| stUnRelive | 防复活 |
| stObserver | 隐身 |
| stObserverForMon | 隐身只对怪物 |
| stDenyUseMagic | 禁止使用技能(Args1为技能ID, -1表示禁止所有技能) |
| stDenyUseItem | 禁止使用物品(Args1为物品ID,-1表示禁止所有物品) |
### 4.间隔作用类Buff类型对照表
TBuffIntervalType
| 类型 | 说明 |
| --- | --- |
| biNone | 无效 |
| biCustom | 自定义 |
| biHP | 减少或增加HP(Args1 为数量 , Args2为万分比例) |
| biMP | 减少或增加MP(Args1 为数量 , Args2为万分比例) |
| biExp | 减少或增加经验值(Args1 为数量 , Args2为万分比例) |
- 更新日志
- 2021年更新日志
- 2020年更新日志
- 2019年更新日志
- 2017年更新日志
- 2016年更新日志
- 2015年更新日志
- 2014年更新日志
- 2013年更新日志
- 游戏对象
- GameLib
- TActor
- TActorList
- TAddedAbility
- TAddLevelItem
- TAddPointItem
- TArgs
- TAttatckMode
- TDBEngine
- TEnvirnoment
- TFunctionFlag
- TGuild
- TItemState
- TItemWhere
- TMissionItem
- TMissionLinkItem
- TMissions
- TNormNpc
- TPlayMonster
- TPlayMonsterNPC
- TPlayObject
- TStdItem
- TStoreItemList
- TToptenz
- TUserCastle
- TUserItem
- TUserMagic
- TVarValue
- Tbuff
- TBuffCategory
- TBuffAbilityType
- TBuffStatusType
- TBuffIntervalType
- 固定NPC
- AINpc
- ExternalNPC
- MagicNpc
- ManagerNPC
- MapEventNPC
- MissionsNpc
- QFunctionNPC
- RobotManagerNPC
- TimeManagerNPC
- 自定义功能
- 自定义客户端UI
- Buffer效果自定义设计
- UI管理界面预览
- 如何实现物品放入或取下时的函数触发
- 自定义窗口
- 自定义界面中编辑框参数发送方式
- 自定义客户端装备提示效果
- 自定义特效
- 自定义装备提示样式
- Buff系统说明
- 自定义技能编辑器
- 技能扩展自定义
- 自定义技能初识
- 被动技能属性定义
- 技能模式定义
- 客户端效果定义
- 主动技能动作定义
- 新自定义技能编辑器
- 初始编辑器
- 自定义编辑器使用说明
- 如何实现自定义怪物
- 脚本实例
- NPC对话编辑
- 宝宝叛变的启动和停止
- 创建脚本单元
- 创建一个藏匿于地图上的攻击事件
- 地图传送
- 获取服务器名称
- 获取玩家任务信息
- 检测是否为沙城成员
- 角色称号、头顶花翎、头顶特效设置
- 判断PK值
- 判断队伍信息
- 判断角色对面是一个什么对象
- 判断角色金币、元宝及礼金等数量
- 判断角色所在的地图信息
- 判断角色性别
- 判断角色职业
- 判断两个角色之间的距离
- 判断是否为队长
- 判断是否为行会掌门
- 判断是否为沙巴克城主
- 判断有某一物品的数量
- 判断转生等级及等级
- 让目标移动到指定的坐标
- 让玩家回城
- 如何播放一个声音文件
- 如何操作Check状态检查
- 如何操作数据库
- 如何查看玩家IP来源
- 如何查看装备是否可被穿戴或取下
- 如何查找一个行会
- 如何充值角色的属性点
- 如何初始化全局变量
- 如何穿戴或取下一件装备
- 如何创建一个副本地图
- 如何创建一个行会
- 如何打开一个宝箱
- 如何打开指定的URL
- 如何弹出对话框让玩家选择执行
- 如何读写个人变量、行会变量及全局变量
- 如何读写文本文件
- 如何发送各种文字信息
- 如何访问其他角色
- 如何复活
- 如何给客户端发送一个标题栏闪动
- 如何给玩家发放物品
- 如何更新自定义窗口上的内容
- 如何关闭进度条
- 如何关闭一个打开的自定义窗口
- 如何过滤字符串中的文字
- 如何获得地图上全部玩家的信息
- 如何获得地图上指定范围内的怪物数量
- 如何获取丢在地上物品对象
- 如何获取角色当前使用的称号
- 如何获取角色负重
- 如何获取角色在线时长
- 如何获取排行榜信息
- 如何获取人物当前获得的称号信息
- 如何获取坐标上指定范围内的全部怪物
- 如何加入或离开队伍
- 如何加入一个指定的行会
- 如何加载和保存自定义的配置文件(INI文件读写
- 如何监控攻击模式的更改
- 如何监控玩家扔物品
- 如何检查目标是否处于某种状态
- 如何将NPC设置为当前玩家的雕像
- 如何将地图上的角色全部随机传送到另外一个地图上
- 如何将指定玩家传送到身边
- 如何将装备显示在NPC对话框上
- 如何脚本封速
- 如何脚本刷怪
- 如何脚本增加和删除一个NPC
- 如何脚本增加和删除一个怪物NPC
- 如何禁止玩家聊天
- 如何开启及停止自动增加经验值
- 如何克隆玩家为人形怪
- 如何判断当前等级的经验值上限
- 如何判断队伍中是否为不同职业的角色
- 如何判断角色是否为新人
- 如何判断玩家曾经是否接过某任务
- 如何清除地图上的怪物
- 如何请求一个URL
- 如何取得地图上的怪物数量
- 如何取得行会全部称号及全部成员信息
- 如何取得全部在线用户信息
- 如何取得玩当前机器的机器码
- 如何取得物品的数据库单价和销售价格
- 如何取得邮件的数量信息
- 如何取得自定义界面里面玩家放入的物品信息
- 如何让打开客户端的背包、商城及市场
- 如何让他人执行指定的脚本
- 如何删除或修改行会称号
- 如何删除玩家的物品
- 如何删除一个称号
- 如何删除一个副本地图
- 如何删除一个扩展按钮
- 如何删除一个延时调用函数
- 如何设置当前称号
- 如何设置角色死亡不爆出
- 如何实现充值平台对接
- 如何实现骰子
- 如何实现无敌隐身
- 如何实现物品属性转移(物品复制)
- 如何实现一个带参数的输入框
- 如何实现一个机器人
- 如何实现自定义装备爆出提示
- 如何使用JSON对象
- 如何使用角色S、P及N变量
- 如何使用静态数组和动态数组
- 如何使用升级加属性点
- 如何收取城堡金币
- 如何随机刷新物品属性
- 如何踢出在线人物
- 如何添加一个称号
- 如何调整角色的HP、MP值
- 如何调整角色声望值
- 如何调整人物攻击模式
- 如何调整人物转生等级
- 如何调整限时杀怪经验倍率
- 如何调整装备属性上限
- 如何完全控制他人
- 如何显示一个进度条
- 如何修改怪物名称
- 如何修改行会帮主
- 如何修改人物技能属性
- 如何修改一个物品的属性
- 如何延时调用一个函数
- 如何以爆物的方式将一个怪物的爆率给玩家
- 如何用脚本存取物品
- 如何在地图上爆出一个指定的物品
- 如何在行会指定的称号里面添加成员
- 如何在脚本中引用外部DLL
- 如何在客户端显示一个特效
- 如何增加和移除一个个人时钟事件
- 如何增加或减少角色经验值
- 如何增加一个地图连接点
- 如何增加一个行会的称号
- 如何增加一个扩展按钮
- 如何召唤下属
- 如何指定删除角色身上的装备
- 如何重新计算排行榜
- 如何转职
- 如何自动增加或减少元宝
- 如何做一个感叹号提示
- 实现自定义的客户端命令集
- 推开指定的目标
- 修改怪物的爆率为一个指定的爆率文件
- 循环自身全部技能
- 如何设置装备掉落触发脚本处理
- 如何设置装备掉落提示
- 给玩家添加一个未接任务
- 给玩家添加一个已接任务
- 补丁规则
- NPC补丁设置
- Prguse.data文件编辑的注意事项
- 引擎补丁规则
- 地图补丁规则
- 盾牌补丁
- 怪物补丁设置
- 头发补丁设置
- 武器及衣服补丁设置方法
- 坐骑补丁设置
- 操作相关
- 数据库设置
- 版本数据库管理
- 锄头设置方法
- 攻速及幸运设置
- 技能特殊设置
- 扩展数据管理
- 魔法数据设置要点
- 人形怪穿戴及技能设置
- 人形怪攻击速度设置
- 人形怪数据库设置
- 如何配置宝箱及钥匙
- 如何设置解包物品
- 如何设置一个固定位置的传送道具
- 设计采集类怪物
- 设置自定义物品种类名称
- 数据库报错问题
- 特殊物品属性设置说明
- 添加宝石物品
- 添加可穿戴宝石、气血石及魔血石物品
- 物品数据库设置说明
- 游戏数据库的导入导出
- 服务端操作
- [M2]开启物品属性下限功能
- 摆摊相关
- 备份与恢复
- 防外挂设置
- 服务端部署
- 合区
- 角色成长属性调整
- 配置排行榜系统
- 如何查看M2Server所在机器的机器码
- 如何实现多机负载
- 网关防攻击配置
- 游戏网关性能设置
- 任务系统
- 脚本混编说明
- Call命令说明
- 参数Args的读取
- 存在的意义
- 让他人执行脚本
- 如何定义常量
- 如何读写变量
- 如何实现混编
- 特殊标志段说明
- 特殊的CHECK和SET
- 调整杀怪倍率
- 支持编译时错误提示
- 地图配置
- 地图NPC配置
- 地图安全区编辑
- 地图创建及属性说明
- 地图杀怪任务触发
- 地图事件编辑
- 地图刷怪配置
- 地图挖矿设置
- 附属地图配置
- 关联到盛大新格式地图
- 检查地图文件使用情况
- 卫士配置
- 登陆器操作
- 登陆器自我更新
- 登录器界面组件介绍
- 登录器设计界面初识
- 管理登陆器列表
- 将登陆器列表部署到服务器
- 客户端控制
- 客户端样式选择
- 列表设计界面初识
- 如何创建登陆器皮肤
- 如何生成登陆器文件
- 玩家登陆器选项
- 微端控制
- 版本管理器
- NPC对话内容编辑
- 版本文件二次注册使用方法
- 查看程序是否更新
- 创建新的版本文件
- 单个脚本加密方法
- 额外数据库信息配置
- 给版本设置一个唯一ID
- 怪物爆率配置
- 将版本运行所需的配置文件植入版本文件中
- 角色登陆提示信息
- 脚本分类说明
- 脚本机器人配置
- 配置宝箱
- 配置怪物说话
- 如何开启技能自动追踪目标的功能
- 如何实现登陆器图标及客户端Logo的替换
- 如何下载最新版本
- 商城(元宝、礼金)管理
- 商贩贩卖物品配置
- 设置版本工具环境变量
- 套装配置
- 添加一个盾牌物品
- 系统提示信息配置
- 一键导入其他引擎的版本
- 远程管理
- 资源数据管理
- 如何添加一个任务模板中的任务
- 其他辅助说明
- [重要]脚本编写注意项
- 256颜色值
- IP库
- Mir200_Envir下的列表文件详解
- 各种时间控制方法
- 怪物DB数据
- 怪物Race设置
- 键盘码对应数值表
- 脚本系统与系统安全说明
- Pascal基础说明
- Pascal变量类型
- Pascal数据类型
- 基础函数及单元
- 客户端标签变量
- 疑问/建议/反馈/留言
- 在线教程
- 引擎下载