2020年12月10日 <测试版><内部测试版>引擎更新公告

神途sf

测试版本更新至12月2日的内部测试版

内部测试版:

1. 新增:道具模板表增加“套装通用装备”选项。该字段设置为“是”后,穿上该装备会为任意套装的套装件数加1。

如果有多个同类型的装备,根据套装表中的“计算套装件数类型”的选项值来计算套装件数。

例如:有两个戒指配置均为套装通用装备,若按装备的类型计算套装件数,则对应套装的套装件数加1;若按装备的数量计算套装件数,则对应套装的套装件数加2。

该选项访问路径为:神途游戏管理平台→游戏配置→装备&道具→修改道具模板表→其他配置区域。

 

2. 改善:以下角色属性类型通知到客户端,可调用客户端接口CL:GetPlayerSelfProperty32来获取属性值。

 

3. 新增:全局表增加“使用新的角色受伤害前触发”选项。

同时,增加触发类型lua_trigger_role_pre_harm_ex和回调函数on_pre_harm_ex

新的触发类型和回调函数可以传递损失的蓝量的数值,并支持修改损失的蓝量的值。

该字段设置为开启时,角色受伤害前触发会调用注册lua_trigger_role_pre_harm_ex对应的回调函数;该字段设置为关闭时,则调用注册lua_trigger_role_pre_harm对应的回调函数。

该选项访问路径为:神途游戏管理平台→游戏配置→全局表→修改全局模板表→其他设置→杂项区域。

 

/**    

  * @b 被攻击者受到伤害即将损血/蓝前回调.

  * 当被攻击者受到伤害即将损血/蓝前,回调此接口.

  * @param strRole 被攻击者的GUID,比如玩家、怪物、英雄.  

  * @param strAttacker 攻击者的GUID,比如玩家、怪物、英雄.  

  * @param iHp 被攻击者即将损失的血量,正数表示补血,负数表示损血.

  * @param iMp 被攻击者即将损失的蓝量,正数表示补蓝,负数表示损蓝.  

  * @param iDefense 本次攻击被攻击者发挥出的防御值,该值必定是正数.  

  * @param strKillKey 本次攻击所使用的技能KeyName.  

  * @param IsBurst 本次攻击是否为暴击: 1代表是 ;0代表否.  

  * @return 返回一个包含两个整数的table,该table第一个元素表示血量,第二个元素表示蓝量。如果返回负数则损血/蓝,返回正数则补血/蓝.数值对应损/补的血/蓝量.    

  * @remarks 无. 

  * @verbatim  

  * 示例代码:

  *lualib:AddTrigger("0", lua_trigger_role_pre_harm_ex , "on_pre_harm_ex")    

  *function on_pre_harm_ex(role, attacker, hp, mp, def, skill, is_burst)  

  *    return { hp - 1, mp - 1 }  

  *end  

  * @endverbatim  

  * @warning 注意返回正负数的区别.如果系统、地图、角色分别都使用了这类触发器,生效顺序为系统、地图、角色.  

  * @note@verbinclude on_pre_harm_ex.lua  

  * @version 0.926及以上版本.  

  * @see CScriptLib::eTriggerType  

  */    

lua_script::lua_table on_pre_harm_ex(const std::string& strRole, const std::string& strAttacker, int iHp, int iMp, int iDefense,const std::string& strKillKey, UINT8 IsBurst);

4. 新增以下接口函数。

根据套装的计算类型获取角色身上指定套装中装备数量    

/**  

  * @b 根据套装的计算类型,获得角色身上指定套装中装备数量    

  * 根据套装的计算类型,获得角色身上指定套装中装备数量    

  * @param player_guid 角色guid.    

  * @param equip_guid 装备的guid.    

  * @param item_id 物品id.  

  * @param suit_id 套装id.    

  * @return 角色身上指定套装中的装备数量    

  * @remarks equip_guid、item_id和suit_id三个参数填写任意一个即可  

  * @warning 无.    

  * @note@verbinclude GetEquipSuitCountEx.lua    

  * @version 0.926及以上版本.    

  */    

UINT8 GetEquipSuitCountEx(const std::string& player_guid, const std::string& equip_guid, UINT16 item_id, UINT16 suit_id);  

配置需要通知到客户端的玩家属性

/**    

  * @b 配置需要通知到客户端的玩家属性    

  * 配置需要通知到客户端的玩家属性    

  * @param attrs 属性table 如:{1,2,3,4}.    

  * @return 无.    

  * @remarks 无.    

  * @warning 玩家不存在的属性或者引擎已经配置过的属性无法配置.    

  * @note@verbinclude SetSelfNotifyAttrs.lua    

  * @version 0.926及以上版本.    

  */

void SetSelfNotifyAttrs(const lua_script::lua_table& attrs);

移除通知到客户端的玩家属性     

/**    

  * @b 移除通知到客户端的玩家属性    

  * 移除通知到客户端的玩家属性    

  * @param attrs 属性table 如:{1,2,3,4}.    

  * @return 无.    

  * @remarks 无.    

  * @warning 玩家不存在的属性或者引擎已经配置过的属性无法移除.    

  * @note@verbinclude RemoveSelfNotifyAttrs.lua    

  * @version 0.926及以上版本.    

  */    

void RemoveSelfNotifyAttrs(const lua_script::lua_table& attrs);

5. 新增以下回调函数。    

/**    

  * @b 玩家被打断读条前触发    

  * 玩家被打断读条前触发.非系统级回调,需要手动添加触发器.    

  * @param role_guid 玩家guid    

  * @param type 打断的类型: 0为移动打断读条;1为离开地图打断读条;2为受到攻击被打断;3为释放技能打断    

  * @param detail 打断详情:打断类型为1时,detail为地图keyname;打断类型为2时,detail为攻击者guid;打断类型为3时,detail为技能keyname    

  * @return 是否打断    

  * @remarks 无.    

  * @warning 无.

  * @note@verbinclude pre_cancel_processing.lua    

  * @version 0.926及以上版本.    

  * @see CScriptLib::eTriggerType    

  */    

static bool pre_cancel_processing(const std::string& role_guid, UINT8 type, const std::string& detail);