2024-12-12
- 修复
Player:is_key_pressed
无效的问题
2024-12-9
- 添加接口:
Pool:merge
合并池
2024-12-5
- 创建新的单位、技能物编时可以传入一个table指定新物编的字段
- 添加接口:
Unit:get_casting_ability
获取单位正在释放的技能
2024-12-2
- 添加接口:
Ability:stop_cast
停止施法
- 现在可以立即删除一个正在施法中的技能了
2024-11-29
- 添加事件:
单位-即将拾取物品
2024-11-26
- 键盘事件与鼠标事件可以直接传字符串了
2024-11-21
- 修复
y3.area.get_polygon_areas_point_list
返回结果不正确的问题
2024-11-18
- 追踪运动添加了“初始角度”与“过渡时间”参数
2024-11-14
- 修复对象事件没有检查触发器有效性的问题
2024-11-11
LocalUI:bind_unit_attr
添加了accuracy
小数精度参数- 添加接口:
UI:set_text_format
设置文本格式
2024-11-8
- 优化了Lua的整体性能
2024-11-4
- 移除了设置
y3.config.ui.get_removed_child
- 添加接口:
y3.game.request_time
请求真实时间,需要通过回调函数接收结果
2024-10-28
- 修复通过物编ID注册的事件可能无法触发的问题
- 添加接口:
Item:get_stack_type
获取堆叠类型
2024-10-25
- 修复投射物启用对象池后无法正常使用的问题
- 修复通过物编对象注册的事件没有严格按照对象ID触发的问题
2024-10-24
- 修复无法使用
New
的方式创建LinkedTable
的问题 - 修复GC容器被移除后再添加对象时,没有移除对象的问题
2024-10-23
- 支持使用
Tracy
进行性能分析(之后会有个文档链接) - 添加接口:
enable_lua_profile
启用Tracy
进行性能分析
2024-10-12
- 添加接口:
Destructible:has_tag
判断可破坏物是否拥有标签
2024-10-11
y3.particle.create
添加字段detach
- 添加接口:
LocalTimer:set_remaining_count
设置剩余次数LocalTimer:set_remaining_time
设置剩余时间LocalTimer:set_time_out_time
设置计时器周期
2024-10-10
- 添加接口:
Player:request_random_pool
请求执行随机池掉落Player:request_use_item
请求使用商城道具,使用后通过回调函数通知是否成功Unit:change_model_texture
修改模型贴图
2024-10-8
- 事件
单位-获得经验前
的参数中添加了一个函数set_exp
,调用此函数可以修改即将获得的经验值 Unit:damage
新增attack_type
与pos_socket
字段
2024-9-27
- 添加接口:
Ability:prevent_cast
阻止即将开始的施法
2024-9-26
- 添加事件:
单位-即将索敌
单位-发现目标
2024-9-25
- 向禁止覆盖型的存档表格字段中保存
nil
可以正确的删除这项字段了。
2024-9-23
- 添加事件:
界面-视频播放完成
- 添加设置:
y3.config.ui.get_removed_child = false
获取子控件时是否能获取到已经被移除的子控件。(ECA的行为为能获取到,但之后对它的操作会报错)
2024-9-20
- 修复
Fix32
传入大整数时返回0的bug
2024-9-14
- 添加接口:
Player:get_community_value
获取玩家在社区的互动数据
2024-9-12
LocalUI:refresh_prefab
添加on_refresh
回调,可以在刷新子元件时趁机刷新数据- 添加事件:
命令-攻击移动
命令-出售物品
命令-施放技能
命令-巡逻
命令-移动
2024-9-11
- 环绕运动支持结束高度
- 添加接口:
y3.game.load_sub_scene
创建地形预设
- 添加事件:
游戏-地形预设加载完成
2024-9-10
UI:get_child
不会获取到已经删除的控件了- 添加接口
UI:set_input_field_not_focus
让输入框失去焦点
2024-9-3
- 添加事件
玩家-重连
2024-9-2
- 《Y3开发助手》的仪表盘的
时间
下添加了修改游戏速度、暂停游戏
2024-8-30
- 添加事件
界面-装备拖拽
2024-8-28
- 添加接口
UI:set_scrollview_scroll
设置列表允许/禁止滚动Player:get_platform_icon_url
获取玩家平台头像下载地址UI:set_image_url
设置图片(来自网络)
2024-8-23
- 环绕运动支持高度
2024-8-15
- 点支持z轴
2024-8-5
- 修复
本地-选中-单位
事件无法获取选中的单位的BUG
2024-8-2
- 添加选项:
y3.config.cache.ui = true
,启用后会缓存UI的子控件关系。必须要地图没有在ECA中操作UI才可以启用此选项。
2024-7-25
- 为
y3.ui.play_timeline_animation
的参数提供枚举
2024-7-24
- 添加事件:
选中-失去单位
本地-选中-失去单位
本地-界面-输入框获取焦点
本地-界面-输入框失去焦点
本地-界面-输入框内容改变
2024-7-22
- 修复
界面-滑动条变化
事件无法触发的bug - 日志文件夹由
log
改为.log
- 添加事件:
游戏-逻辑不同步
- 添加接口:
y3.fs.load
读取script
目录下的文件y3.fs.save
保存文件到script
或custom
目录下
2024-7-17
- 添加接口:
y3.reload.isReloading
判断当前是否处于重载Lua过程中
2024-7-15
- 修复eca调用lua时传表的错误
2024-7-12
- 添加接口:
y3.helper.py_dict
将Lua表转成python字典
2024-7-5
- 添加接口:
y3.helper.number_type
判断数字类型
2024-7-1
- 禁用覆盖的表格存档可以往字段里保存空表
Unit:add_buff
添加data
字段可以保存自定义数据- 添加接口:
Player:upload_tracking_data
上传埋点数据Player:get_map_level
获取地图等级Player:get_map_level_rank
获取等级排名Player:get_played_times
获取累计局数Player:get_achieve_point
获取成就点数Player:is_achieve_unlock
判断成就解锁Projectile:set_visible
设置投射物是否可见y3.camera.get_by_res_id
获取摆放在场景上的镜头Camera:apply
应用镜头UIPrefab:kv_save
UIPrefab:kv_load
UIPrefab:kv_has
UIPrefab:kv_remove
- 添加事件:
界面-滑动条变化
界面-聊天框可见性变化
界面-复选框变化
2024-6-27
y3.sync.onSync
的回调函数会传入发起同步的是哪个玩家- 添加接口:
UI:insert_ui_gridview_comp
添加UI到网格列表UI:set_ui_gridview_type
设置网格列表布局方式UI:set_ui_gridview_count
设置网格列表行数列数UI:set_ui_gridview_size
设置网格列表单元格宽高UI:set_ui_gridview_margin
设置网格列表边距UI:set_ui_gridview_space
设置网格列表单元格间距UI:set_ui_gridview_align
设置网格列表对齐方式UI:set_ui_gridview_scroll
设置网格列表启用/禁止滚动UI:set_ui_gridview_size_adaptive
设置网格列表启用/禁止尺寸随内容变化UI:set_ui_gridview_bar_percent
设置网格列表横向/纵向跳转百分比UI:set_ui_comp_parent
设置界面控件的父控件UI:clear_ui_comp_image
清空UI控件图片
- 添加事件:
本地-键盘-按下
本地-键盘-抬起
本地-鼠标-按下
本地-鼠标-抬起
本地-鼠标-双击
本地-鼠标-按下单位
本地-鼠标-抬起单位
本地-鼠标-双击单位
本地-鼠标-移动
本地-鼠标-滚轮
本地-鼠标-悬停
本地-选中-单位
本地-选中-取消
本地-选中-可破坏物
本地-选中-物品
本地-选中-单位组
2024-6-24
Unit:follow
添加更多参数- 添加接口:
y3.ui.create_floating_text2
创建悬浮文字(跳字)
2024-6-24
- 添加接口:
y3.item.get_tags_by_key
获取物品的所有标签
2024-6-19
- 添加接口:
Trigger:add_tag
Trigger:has_tag
Trigger:remove_tag
2024-6-12
- 对象删除后再调用他的方法不会再报错了
- 添加设置:
y3.config.logic_frame = 30 --默认值
,如果你的地图修改了逻辑帧率,需要修改此设置
2024-6-11
y3.game.get_table
添加可选参数,可以将表中的Fix32类型转为numbery3.beam.ceate
添加follow_scale
参数,只在起点是单位时有效- 添加事件:
玩家-平台道具变化
玩家-平台商城窗口变化
- 添加接口:
UI:set_ui_model_unit
设置模型控件的单位Point:get_random_point
获取范围内的随机点Selector:in_range
圆形范围选取,写起来方便一点Selector:pick
选取为单位数组,写起来方便一点Selector:ipairs
选取并遍历,写起来方便一点Selector:sort_type
设置选取顺序,选项为"由近到远"
、"由远到近"
、"随机"
2024-6-7
- 添加了指令
.rr
重启游戏 - 添加接口:
y3.reload.recycle
可以方便的在热重载时指定需要重复运行的代码以及要回收的垃圾y3.develop.helper.createTreeView
可以在《Y3开发助手》的“自定义视图”中创建你自己的视图,具体用法请看演示:y3\演示\Y3开发助手\自定义视图.lua
2024-6-5
y3.object
库添加了对投射物projectile
的相关支持- 添加接口:
Projectile:bindGC
2024-6-4
- 添加接口:
Player:get_store_item_end_time
获取平台道具到期时间戳Player:open_platform_shop
请求购买平台道具
- 修复保存存档可能会报错的bug
- 修复
Object:kv_remove
报错的bug
2024-6-3
- 添加接口:
UI:set_anim_rotate
设置动画旋转Player:get_platform_uuid
获取玩家唯一ID
2024-5-30
- 添加接口:
Buff:add_cycle_time
添加循环周期Buff:set_cycle_time
设置循环周期
2024-5-29
- 添加接口:
Ability:get_item
获取技能在哪个物品上Ability:get_max_cd
获取技能最大CD
2024-5-28
- 物编对象添加了新的事件注册方式,与其他事件注册方式保持一致
y3.object.unit[134274912]:event('单位-受到伤害后', function (trg, data) print('此类单位受到伤害后', data.damage) end)
2024-5-17
- 添加接口:
y3.base64.encode
将字符串编码为base64y3.base64.decode
将base64解码为字符串y3.aes.encrypt
使用aes算法加密字符串y3.aes.decrypt
使用aes算法解密字符串
2024-5-16
LocalUILogic
添加on_init
方法,订阅控件初始化
2024-5-15
- 修正框选物品会报错的bug
- 添加接口:
Trigger:disable_once
在本次事件中禁用此触发器(一般用于避免当前触发器意外重入)
2024-5-10
- 添加接口:
Ability:add_tag
给技能添加标签Ability:remove_tag
给技能移除标签Ability:has_tag
判断技能是否拥有标签
2024-5-9
- 支持《Y3开发助手》的内置调试器,不再加载插件市场中的Lua调试器
Unit:add_item
可以指定槽位类型- 修正
单位-即将死亡事件
作为对象事件时对象不正确的BUG
2024-5-6
- 添加
客户端计时器
模块(y3.ctimer
),客户端计时器是由本地CPU驱动的纯异步计时器,即使在游戏暂停时也会计时。y3.ctimer.wait
y3.ctimer.loop
y3.ctimer.loop_count
y3.ctimer.wait_frame
y3.ctimer.loop_frame
y3.ctimer.loop_count_frame
2024-4-29
y3.item.get_item_buy_price
与y3.item.get_item_sell_price_by_key
支持直接用玩家属性显示名作为参数print
在开发模式下总是会打印到屏幕上,不再受y3.config.log.toGame
影响- 修复部分物品相关的方法报错的bug
- 添加了ECA相关的接口:
y3.eca.def
定义一个函数供ECA调用(之前ECAFunction
的封装)y3.eca.call
调用ECA中的自定义事件(需要《Y3开发助手》版本 >= 1.1.0)
2024-4-28
kv_save
系列函数支持UnitGroup
类型
2024-4-24
- 添加了
y3.network
库,可以作为客户端进行socket连接,具体用法请参考演示 Unit:add_buff
默认持续时间为-1
(无限),与ECA中保持一致- 修复对象被引擎主动删除后,不会触发
bindGC
的bug
2024-4-22
- 修复
Player:get_exp_rate
会报错的问题 - 添加事件:
选中-取消
2024-4-19
- 治疗相关事件的回调参数中添加了被治疗者与治疗来源
2024-4-16
- 单位属性支持直接填自定义属性的名字(需要Y3开发助手 >= 0.7.0)
2024-4-15
- 修复
玩家-持有平台道具
与玩家-使用平台道具
无法触发的bug。这2个事件现在不需要传入道具ID
2024-4-12
- 添加接口:
UIPrefab:get_child
获取元件的UI对象Unit:get_ability_by_seq
根据序列获取技能对象
- 修复
y3.scene_ui.create_scene_ui_at_player_unit_socket
无效的bug - 修复
技能-打开指示器
与技能-关闭指示器
事件注册在技能对象上无效的bug
2024-4-8
- 添加接口:
Unit:get_camp_id
获取单位的队伍idPlayer:get_selecting_unit
获取玩家选中的单位Player:get_selecting_group
获取玩家选中的单位组Ability:get_description
获取技能描述Ability:get_icon
获取技能图标UI:set_absolute_pos
设置控件绝对坐标
- 添加工具类
LocalUILogic
,用以给 本地控件 绑定逻辑,使用方法请参考y3\演示\demo\界面
2024-4-7
- 单位属性相关的接口支持使用中文属性名和中文属性类型
Unit:set_attr
Unit:add_attr
Unit:add_attr_gc
Unit:get_final_attr
Unit:get_attr_other
Unit:get_attr_base
Unit:get_attr_base_ratio
Unit:get_attr_bonus
Unit:get_attr_all_ratio
Unit:get_attr_bonus_ratio
- 添加接口:
Unit:get_attr
获取单位属性的统一接口UI:bind_unit_attr
取代之前命名有问题的接口UI:bind_player_attribute
2024-4-3
y3.player.with_local
暂时关闭行为检测,后续更换实现方式- 添加接口
Unit:get_icon
获取单位的头像
2024-3-19
- 修正对象的施法类事件无法触发的bug
2024-3-18
- 添加接口
y3.unit_group.create
创建空单位组(3月28号更新后可用)y3.player_group.create
创建空玩家组(3月28号更新后可用)PlayerGroup:count()
获取玩家组中玩家的数量
2024-3-15
- 添加接口:
y3.game:request_url
发送 http 请求
- 添加事件:
游戏-http返回
2024-3-14
- 修正对象的移除类事件无法触发的bug
2024-3-13
- 修正在
include 'A'
内使用require 'B'
后进行重载时会意外重载 B 中的全局触发器与计时器的bug
2024-3-6
- 添加接口:
y3.unit.get_by_string
将tostring(Unit)
还原为单位对象y3.player.get_by_string
将tostring(Player)
还原为单位对象
2024-3-4
Object:kv_save
与Object:kv_load
支持值为表- UI事件枚举项修改:
左键-按住
:废弃右键-按住
: 废弃左键-点击
: 新增右键-点击
: 新增
2024-2-28
- 添加接口:
Unit:set_move_channel_land
设置单位的移动类型为地面Unit:set_move_channel_air
设置单位的移动类型为空中Unit:set_move_collision
设置单位是否计算某种碰撞类型Particle:set_color
设置特效颜色Particle:set_visible
设置特效显示
2024-2-26
- 添加设置:
y3.config.log.toFile
是否将日志打印到日志文件中,默认为true
y3.config.log.toConsole
是否将日志打印到控制台中,默认为true
2024-2-22
- 添加接口:
y3.game.on_client_tick(callback)
客户端每帧回调事件
2024-2-19
- 添加了数据同步相关接口:
y3.sync.send
向所有玩家同步数据y3.sync.onSync
注册数据同步后的回调
2024-2-6
- 界面的鼠标事件支持右键相关事件
2024-1-25
- 添加接口:
PlayerGroup:clear()
清空玩家组UnitGroup:clear()
清空单位组
2024-1-24
- 修复创建特效时没有传入时间时粒子可能看不见的bug
2024-1-22
- 添加接口:
Player:get_color
获取玩家颜色字符串
2024-1-19
- 添加接口:
y3.game.get_obj_icon
获取单位、物品、技能、魔法效果的图标
2024-1-15
- 运动器添加字段:
hit_interval
碰撞同一个单位的间隔block_interval
碰撞地形的间隔
- 修复
Buff:get_owner
如果buff已被移除会报错的bug。现在此方法可能会返回nil
。 - 修复热重载没有维持文件加载顺序的bug
2024-1-12
- 修复
y3.game.send_custom_event
无效的bug
2023-12-25
- 添加接口:
y3.game.get_current_server_time()
返回当前的服务器时间
2023-12-21
- 修复允许覆盖的存档表格修改后没有自动保存的bug
2023-12-15
- 修复
ProjectileGroup:pick
报错的问题
2023-12-14
- 以下接口可以使用编辑器中的名字作为参数了:
y3.scene_ui.create_scene_ui_at_point
y3.scene_ui.create_scene_ui_at_player_unit_socket
2023-12-13
- 添加接口:
UI:set_equip_slot_use_operation
设置物品操作方式UI:set_equip_slot_drag_operation
设置物品拖拽方式
2023-11-29
- 修复
游戏-消息
事件没有传入事件ID的bug。
2023-11-28
- 废弃了
游戏-开始
事件,请改用游戏-初始化
事件。 - 添加了 Lua虚拟机 文档。
2023-11-24
- 支持读写物编对象的自定义属性(包括在物编中预先配置的):
--134274912为“关羽”的ID y3.object.unit[134274912]:kv_has('自定义属性') y3.object.unit[134274912]:kv_load('自定义属性', 'number') -- 以 number 类型读取 y3.object.unit[134274912]:kv_save('另一个属性', '某个字符串')
2023-11-23
- 现在日志会写入到
script/log/lua_player01.log
中。在平台上运行时则会写入到<MAP>/custom/lua_player01.log
中。多开时客户端会根据自己的本地玩家序号生成不同的日志。
2023-11-21
- 修复曲线运动无法生效的bug
2023-11-10
- 添加接口:
UI:set_anim_pos
- 修复
y3.object.item[key].on_add
失效的bug
2023-11-9
- 修复
初始化配置.bat
没有正确递归复制文件的bug
2023-11-8
-
ECAFunction
支持自动转换实数数组 -
支持修改物编数据:
local M = y3.object.unit[134274912] -- 关羽 M.data.name = '这是修改过的名字'
详情请参阅
演示/物编
2023-11-7
- 添加接口:
Unit:is_hero
判断单位的类别是否是英雄Ability:pre_cast
令技能进入瞄准状态
Unit:damage
参数字段添加text_track
- 修复
UI:to_string
返回值类型不是字符串的bug
2023-11-6
- 将所有的接口导出为 markdown 文档,存放在
doc/doc.md
- 修正了
演示/ECA调用Lua函数
中的一处错误(ECA代码中的args
错写成了arg
)
2023-11-3
- 以下类型可以由Lua管理生命周期了,因此可以使用对象事件并存储数据:
Ability
- 技能Area
- 区域Cast
- 施法
2023-10-27
UI:add_event
支持传入自定义数据,可以在界面-消息
事件中获取- 添加接口:
y3.dump.encode
y3.dump.decode
2023-10-24
- 添加接口:
y3.save_data.save_table
2023-10-20
- 添加存档模块
y3.save_data.load_boolean
y3.save_data.save_boolean
y3.save_data.load_integer
y3.save_data.save_integer
y3.save_data.load_real
y3.save_data.save_real
y3.save_data.load_string
y3.save_data.save_string
y3.save_data.load_table
- 修正
Item:is_in_scene
在物品已移除的情况下会报错的bug - 修正
Unit:move_to_pos
不传第二个参数会报错的bug
2023-10-19
- 添加本地计时器模块
y3.ltimer.wait
y3.ltimer.loop
y3.ltimer.loop_count
y3.ltimer.wait_frame
y3.ltimer.loop_frame
y3.ltimer.loop_count_frame
2023-10-12
- 区域支持持久化
- 修复创建区域会报错的bug
- 修复选取单位不可用的bug
2023-10-11
- 修复事件泄露
2023-10-10
- 区域移除时会自动移除绑定的触发器
- 调试器适配
Lua Debug 2.X
版本 - 添加以下接口:
y3.buff.get_by_id
y3.game:set_object_fresnel_visible
y3.game:set_object_fresnel
2023-10-9
- 添加以下接口:
Player:kv_save
Player:kv_has
Player:kv_load
2023-10-7
- 添加以下接口:
UI:set_anim_opacity
Unit:attr_to_name
Unit:attr_pick
2023-9-27
- 修复文件加载错误后此文件不会被热重载的bug
- 修复以下接口返回值不是数字的bug:
Timer:get_elapsed_time
Timer:get_remaining_time
Timer:get_time_out_time
- 添加以下接口:
Ability:get_level() -> integer
2023-9-26
- 支持在玩家身上注册界面、按键与鼠标事件
2023-9-25
- 支持在单位身上注册技能事件与效果事件
2023-9-16
- 重命名以下接口:
Ability:is_destory
->Ability:is_exist
: 之前的名称和实际不符
2023-9-15
- 添加了接口:
UI:is_removed
- 移除了以下事件:
界面-创建
:此事件之前就是无效的界面-移除
:此事件之前就是无效的
2023-9-13
- 添加了设置:
y3.config.log.logger
:可以设置一个自定义的日志处理函数,在函数中返回true
可以阻止原来的日志流程
2023-9-11
- 支持从实体中读写自定义键值(与ECA互通)
- 添加了一系列的接口,格式形如:
- 保存自定义键值:
unit:kv_save('ABC', buff)
- 判断自定义键值存在:
unit:kv_has('ABC')
- 读取自定义键值:
unit:kv_load('ABC', 'Buff')
- 保存自定义键值:
- 支持读写的容器对象(保存到谁身上)目前包含:
Ability
Buff
Destructible
Item
Projectile
Unit
Area
- 支持读写的值(保存了什么)目前包含:
boolean
integer
number
string
Unit
Ability
Item
Buff
Point
Player
Projectile
Destructible
Particle
Mover
- 添加了一系列的接口,格式形如:
2023-9-8
- 重命名以下接口:
y3.ui_prefab.create_ui_prefab_instance
->y3.ui_prefab.create
UIPrefab:remove_ui_prefab
->UIPrefab:remove
2023-9-5
- 添加了以下接口:
y3.timer.wait_frame
y3.timer.loop_frame
y3.timer.count_loop_frame
- 移除了以下事件:
时间-经过
,改用y3.timer.wait
时间-周期
,改用y3.timer.loop
时间-经过帧
,改用y3.timer.wait_frame
时间-周期帧
,改用y3.timer.loop_frame
2023-9-4
- 重命名以下接口:
y3.game.get_num_of_item_mat
->y3.item.get_num_of_item_mat
y3.game.get_num_of_player_attr
->y3.item.get_num_of_player_attr
- 移除了以下接口:
y3.game.api_has_kv_any
y3.game.get_server_year
,改用os.date
y3.game.get_server_month
,改用os.date
y3.game.get_server_day
,改用os.date
y3.game.get_server_hour
,改用os.date
y3.game.string_gsub
,改用string.gsub
- 修复:
- 以对象形式注册的
单位-死亡
事件无法正常触发
- 以对象形式注册的
2023-9-1
- 加回了
y3.game.send_custom_event
- 重命名以下接口:
y3.game.set_cure_value
->HealInstance:set_heal
- 移除了以下接口:
y3.game.request_server_time
y3.game.get_client_player
,改用y3.player.get_local
2023-8-31
- 添加了事件:
鼠标-悬停
:悬停进入或离开都会触发
- 移除了以下接口:
y3.game.number_to_str
,改用tostring
y3.game.list_loop
,改用y3.helper.wrap_list
y3.game.set_lua_var
y3.game.get_lua_var
y3.game.init_lua_var
y3.game.send_custom_event
y3.game.is_in_radius
,改用Unit:is_in_radius
y3.game.any_var_to_str
- 重命名以下接口:
y3.helper.wrap_list
->y3.helper.unpack_list
y3.helper.unwrap_list
->y3.helper.pack_list
y3.game.iter_role_res
->y3.player.get_res_keys
y3.game.exit_game
->Player:exit_game
y3.game.is_exist_key
->y3.game.table_has_key
2023-8-29
- 修改了热重载的实现方式,使其可以兼容“独立进程运行游戏”。不过热重载在此模式下无效,请改用“编辑器内运行游戏”来使用热重载。
- 修复:
Unit:add_ability
报错y3.beam.create
报错(#110)
2023-8-28
- 重命名了以下接口
Ability:get_ability_id
->Ability:get_key
和其它类似方法保持一致
- 可以对某个类型的对象批量指定事件
local m = y3.object.ability[134221924] function m.on_cast_start(ability, cast) log.debug(('施法开始,技能为:%s,目标为:%s'):format(ability:get_name(), cast:get_target_unit())) end function m.on_cast_stop() log.debug('施法结束') end
- 会自动判断当前是否为测试模式,你也可以使用
y3.game.is_debug_mode()
来判断。 - 在测试模式下,启用了内置的测试指令(大小写均可):
.RD
- 重载脚本.SS
- 打印Lua中所有存活对象,结果保存在y3/log/snapshot.txt
中.CT
- 打印Lua中所有存活对象以及它们的引用路径,结果保存在y3/log/catch.txt
中
2023-8-24
- 对象事件尽量使用消息模式
- 地图配置添加:
y3.const.log.level = 'debug'
- 设置日志等级,只会显示等级高于此的日志。y3.const.log.toDiaglog = true
- 是否将日志打印到 Diaglog 窗口中y3.const.log.toGame = false
- 是否将日志显示在游戏窗口中
2023-8-23
- Class库重大改动,为了与普通方法进行区分以及拼写简单,重命名了这些拥有特殊功能的方法名:
constructor
->__init
destructor
-->__del
alloc
-->__alloc
2023-8-18
- 支持引擎的对象事件,例如
Unit:event('单位-死亡', callback)
Area:event('区域-进入', callback)
2023-8-17
- 支持了部分热重载,见
演示/热重载/演示.lua
。- 提示:如果你想要完全由配置决定哪些文件可被重载,你可以加一行
require = include
- 提示:如果你想要完全由配置决定哪些文件可被重载,你可以加一行
2023-8-15
- 支持了热重载,见
演示/热重载/演示.lua
- 添加了以下接口:
include
用于热重载y3.develop.command.register(callback)
- 添加了以下配置:
y3.config.debug = true
- 启用开发模式,允许使用测试指令等功能。目前需要你手动设置为true
才能启用,未来默认会自动判断当前运行环境决定是否开启。
2023-8-14
- 添加了以下接口:
Unit:exchange_item(item, type, index)
2023-8-9
- 添加了自定义事件相关的接口:
y3.game:event_on
y3.game:event_notify
y3.game:event_notify_with_args
y3.game:event_dispatch
y3.game:event_dispatch_with_args
Ability:event_on
Ability:event_notify
Ability:event_notify_with_args
Ability:event_dispatch
Ability:event_dispatch_with_args
Buff:event_on
Buff:event_notify
Buff:event_notify_with_args
Buff:event_dispatch
Buff:event_dispatch_with_args
Item:event_on
Item:event_notify
Item:event_notify_with_args
Item:event_dispatch
Item:event_dispatch_with_args
Unit:event_on
Unit:event_notify
Unit:event_notify_with_args
Unit:event_dispatch
Unit:event_dispatch_with_args
Player:event_on
Player:event_notify
Player:event_notify_with_args
Player:event_dispatch
Player:event_dispatch_with_args
2023-8-8
- 地图配置添加:
y3.const.sync.key = true
- 启用按键同步,启用后才能获取玩家的键盘与鼠标按键状态
- 添加了以下接口:
Ability:storage_set(k, v)
Ability:storage_get(k, v)
Mover:storage_set(k, v)
Mover:storage_get(k, v)
Unit:bindGC(obj)
Item:bindGC(obj)
Buff:bindGC(obj)
Ability:bindGC(obj)
Mover:bindGC(obj)
- 修改以下接口的名称:
Player:get_ui_pos_x
->Player:get_mouse_pos_x
Player:get_ui_pos_y
->Player:get_mouse_pos_y
y3.game.player_keyboard_key_is_pressed
->Player:is_key_pressed
y3.game.check_tech_key_precondition
->y3.technology.check_precondition_by_key
y3.game.get_text_config
->y3.game.locale
Point:set_collision
->y3.ground.set_collision
Point:get_ground_collision
->y3.ground.get_collision
Point:get_view_block_type
->y3.ground.get_view_block_type
y3.game.get_point_ground_height
->y3.ground.get_height_level
y3.game.get_random_seed
->y3.math.get_random_seed
- 移除了以下接口:
y3.game.player_mouse_key_is_pressed
,该功能已合并到Player:is_key_pressed
中y3.game.print_to_dialog
,请改用log.info
/log.debug
/log.warn
/log.error
y3.game.test_show_message_tip
y3.game.test_log_message
y3.game.test_add_log_assert_result
y3.game.joint_string
,改用Lua的字符串拼接语法y3.game.extract_string
,改用string.sub
y3.game.delete_sub_string
,改用string.gsub
y3.game.get_random_pool_probability
y3.game.get_int_value_from_random_pool
y3.game.get_random_pool_all_weight
y3.game.get_random_pool_size
y3.game.get_random_pool_pointed_weight
2023-8-7
- 添加了地图配置功能,目前可用的配置为:
y3.config.sync.mouse = true
- 启用鼠标同步,启用后才能获取玩家的鼠标位置y3.config.sync.camera = true
- 启用镜头同步,启用后才能获取玩家的镜头方向与中心点位置
2023-8-4
- 添加了以下接口:
y3.ui.set_cursor(player, state, key)
- 修复:
Buff:set_shield
,Buff:add_shield
报错(#54)
2023-8-3
- 添加了以下接口:
Player:storage_set(k, v)
Player:storage_get(k)
Item:storage_set(k, v)
Item:storage_get(k)
Buff:storage_set(k, v)
Buff:storage_get(k)
- 修复:
Area:get_all_unit_in_area
报错(#69)
2023-8-2
- 添加了以下接口:
Timer:execute(...)
Unit:storage_set(k, v)
Unit:storage_get(k)
- 现在会维护
Unit
的引用,同一个单位的Unit
对象总是相同的 - 修复:
- 在事件回调参数中获取
from_unit
字段会报错(#59)
- 在事件回调参数中获取
2023-8-1
Unit:add_buff
现在会返回Buff?
- 添加了以下接口:
UI:set_follow_mouse
- 添加了
Sound
类 - 移除了
y3.game
中声音相关的接口,请改用Sound
类中的方法y3.game.play_sound_for_player
->y3.sound.play
y3.game.stop_sound_for_player
->Sound:stop
y3.game.play_3d_sound_for_player
->y3.sound.play_3d
y3.follow_object_play_3d_sound_for_player
->y3.sound.play_with_object
y3.set_sound_volume
->Sound:set_volume
2023-7-31
- 修复运动器的碰撞单位事件无法获取碰撞单位的问题。
- 在伤害事件的回调参数中添加了
damage_instance
,你可以通过这个对象的方法修改伤害、修改是否闪避等。 - 事件回调参数中类型为
py.Fixed
的字段现在是number
类型了。 UI:get_child
获取不存在的控件时会返回nil
了(之前是报错),现在需要你自己判空。
2023-7-28
- 增加了新的类
Cast
,可以在该对象上获取某次施法的目标、方向等信息。 - 移除了
Ability
类中获取施法目标相关的接口,它们之前就无法正常工作。 - 施法事件的回调参数中新增字段
cast: Cast
- 移除了以下接口
Ability
类中获取施法目标相关的接口,改用Cast
类中的相关接口。Cast
对象会在施法相关的事件中作为回调参数。y3.math.get_points_angle
,改用Point:get_angle_with()
y3.math.get_two_points_distance
,改用Point:get_distance_with()
2023-7-27
- 重命名了以下接口:
y3.game.get_max_tech_level
->y3.game.get_tech_max_level
y3.game.get_tech_type_description
->y3.game.get_tech_description
y3.game.get_tech_type_name
->y3.game.get_tech_name
y3.game.start_new_round_of_game
->y3.game.restart_game
y3.game.set_damage_factor
->y3.game.set_damage_ratio
y3.game.set_game_time_elapsing_rate
->y3.game.set_day_night_speed
y3.game.set_game_time
->y3.game.set_day_night_time
y3.game.create_artificial_time
->y3.game.create_day_night_human_time
y3.game.toggle_time_elapsing_is_on
->y3.game.toggle_day_night_time
y3.game.toggle_target_point_grassland_is_on
->y3.game.enable_grass_by_pos
y3.game.get_current_game_time
->y3.game.get_day_night_time
y3.game.get_damage_factor
->y3.game.get_damage_ratio
y3.game.get_coefficient
->y3.game.get_compound_attributes
y3.game.get_game_environment_of_current_round
->y3.game.get_start_mode
y3.game.if_pri_attr_state_open
->y3.game.is_compound_attributes_enabled
- 移除了以下接口:
- 所有和table相关的API,请改用Lua自己的API。
- 所有用于事件响应获取参数的API,请在事件的回调参数中获得。
y3.game.get_local_language_environment
y3.game.get_mover_bound_projectiles
y3.game.get_ability_owner
,改用Ability:get_owner()
y3.game.modifier_provider
,改用Buff:get_source()
y3.game.get_number_interval
,改用y3.math.isBetween
y3.game.all_units_belonging_to_specified_player
,改用Player:get_all_units()
y3.game.unit_of_a_specified_unit_type
,改用y3.unit_group.pick_by_key
y3.game.integer_random_units_from_unit_group
,改用UnitGroup:pick_random_n()
y3.game.number_of_units_in_unit_group
,改用UnitGroup:count()
y3.game.get_number_of_units_of_specified_type_in_unit_group
,改用UnitGroup:count_by_key()
y3.game.get_the_first_unit_in_a_unit_group
,改用UnitGroup:get_first()
y3.game.get_random_unit_from_unit_group
,改用UnitGroup:get_random()
y3.game.clear
y3.game.play_screen_particle_for_a_set_duration
,改用y3.particle.create_screen
y3.game.is_point_in_area
,改用Area:is_point_in_area()