Game
游戏接口
clear_table
function Game.clear_table(table: any)
清空表
close_role_micro_unit
function Game.close_role_micro_unit(player: Player)
关闭玩家的附近语音聊天
@param player
— 玩家
create_day_night_human_time
function Game.create_day_night_human_time(time: number, dur: number)
创建人造时间
@param time
— 时间
@param dur
— 持续时间
current_game_run_time
function Game.current_game_run_time()
-> time: number
游戏已运行的时间
@return time
— 时间
custom_event_manager
EventManager?
download_platform_icon
function Game.download_platform_icon(url: string, icon: string, callback: fun(real_path: string))
下载玩家平台头像,下载完毕后调用回调函数
@param url
— 头像下载地址
@param icon
— 头像路径,如果本地已有头像则不会下载而是立即调用回调函数
@param callback
— 下载完毕后的回调函数
enable_grass_by_pos
function Game.enable_grass_by_pos(is_on: boolean, point: Point)
开关目标点的草丛
@param is_on
— 开关
@param point
— 点
enable_soft_pause
function Game.enable_soft_pause()
开启软暂停
encrypt_table
function Game.encrypt_table(tab: table)
加密表
@param tab
— 表
end_player_game
function Game.end_player_game(player: Player, result: string, is_show: boolean)
结束玩家游戏
@param player
— 玩家
@param result
— 结果
@param is_show
— 是否展示界面
event
fun(self: Game, event: "游戏-初始化", callback: fun(trg: Trigger, data: EventParam.游戏-初始化)):Trigger
event_dispatch
(method) CustomEvent:event_dispatch(event_name: string, ...any)
-> any
2. any
3. any
4. any
发起自定义事件(回执模式),与通知模式不同,允许插入结算。
可以接受到事件的返回值,有多处注册事件时会按照注册顺序调用,
当任何事件回调返回了非 nil
的值后,后续触发器将不再调用。
Obj:event_on('获取', function (trigger,...)
print('获取1')
return 1
end)
Obj:event_on('获取', function (trigger,...)
print('获取2')
return 2
end)
local result = Obj:event_dispatch('获取')
print('结果为:', result)
以上代码会打印:
获取1
结果为: 1
event_dispatch_with_args
(method) CustomEvent:event_dispatch_with_args(event_name: string, args: any, ...any)
-> any
2. any
3. any
4. any
发起带事件参数的自定义事件(回执模式)
event_manager
unknown
event_notify
(method) CustomEvent:event_notify(event_name: string, ...any)
发起自定义事件(通知模式),同一个对象身上只会有一个正在执行的事件, 当发生插入结算时,后面的事件会进入队列
Obj:event_on('获得', function ()
print('触发获得')
print('发起移除前')
Obj:event_notify('移除') -- 实际业务中,可能你获得的buff把你自己杀死了,而死亡会清除buff
print('发起移除后')
end)
Obj:event_on('移除', function ()
print('触发移除')
end)
Obj:event_notify('获得')
这段代码会打印:
触发获得
发起移除前
发起移除后
触发移除
event_notify_with_args
(method) CustomEvent:event_notify_with_args(event_name: string, args: any[], ...any)
发起带事件参数的自定义事件(通知模式)
event_on
(method) CustomEvent:event_on(...any)
-> Trigger
注册自定义事件,当触发时,会执行回调函数。
Obj:event_on('输入', function (trigger, ...)
print('触发了输入事件', ...)
end)
Obj:event_notify('输入', '123', '456')
以上会打印:
触发了输入事件 123 456
注册时可以指定事件的参数:
Obj:event_on('输入', {'123'}, function (trigger, ...)
print('触发了输入事件', ...)
end)
Obj:event_notify('输入', 1) -- 不能触发事件
Obj:event_notify_with_args('输入', {'123'}, 2) -- 可以触发事件
Obj:event_notify_with_args('输入', {'456'}, 3) -- 不能触发事件
Obj:event_notify_with_args('输入', {'123', '666'}, 4) -- 可以触发事件
get_archive_rank_player_archive_value
function Game.get_archive_rank_player_archive_value(file: integer, index: integer)
-> value: integer
获取整数存档排行榜玩家存档值
@param file
— 存档
@param index
— 序号
@return value
— 存档值
get_camp_by_id
function Game.get_camp_by_id(id: py.CampID)
-> py.Camp
获得阵营
@param id
— 阵营id
get_compound_attributes
function Game.get_compound_attributes(primary_attribute: string, secondary_attr: string)
-> coefficient: number
获取三维属性的影响系数
@param primary_attribute
— 一级属性
@param secondary_attr
— 二级属性
@return coefficient
— 系数
get_current_game_mode
function Game.get_current_game_mode()
-> game_mode: py.GameMode
获取当前游戏模式
@return game_mode
— 游戏模式
get_current_server_time
function Game.get_current_server_time(time_zone?: integer)
-> ServerTime
获取当前的服务器时间。为了保证结果的一致性需要你自己指定时区。
@param time_zone
— 时区,默认为0。获取中国的时间请传入8。
get_custom_event_manager
(method) CustomEvent:get_custom_event_manager()
-> EventManager?
get_damage_ratio
function Game.get_damage_ratio(attack_type: integer, area_type: integer)
-> factor: number
获取伤害系数
@param attack_type
— 攻击类型
@param area_type
— 护甲类型
@return factor
— 伤害系数
get_day_night_time
function Game.get_day_night_time()
-> time: number
获取游戏当前昼夜时间
@return time
— 时间
get_event_manager
(method) Game:get_event_manager()
-> EventManager
get_game_init_time_stamp
function Game.get_game_init_time_stamp()
-> time_stamp: integer
获取游戏开始时间戳
@return time_stamp
— 时间戳
get_game_x_resolution
function Game.get_game_x_resolution()
-> x_resolution: integer
获取初始化横向分辨率
@return x_resolution
— 横向分辨率
get_game_y_resolution
function Game.get_game_y_resolution()
-> y_resolution: integer
获取初始化纵向分辨率
@return y_resolution
— 纵向分辨率
get_global_archive
function Game.get_global_archive(name: string)
-> archive: integer
获取全局存档
@param name
— 存档名
@return archive
— 存档
get_global_weather
function Game.get_global_weather()
-> weather: integer
获取全局天气
@return weather
— 天气
get_graphics_quality
function Game.get_graphics_quality()
-> quality: 'high'|'low'|'medium'
获取初始化游戏画质
@return quality
— 画质
quality:
| 'low'
| 'medium'
| 'high'
get_icon_id
function Game.get_icon_id(id: integer)
-> texture: py.Texture
根据图片ID获取图片
get_level
function Game.get_level()
-> py.Map
获取当前关卡
@return — 当前关卡
get_obj_icon
function Game.get_obj_icon(obj?: Ability|Buff|Item|Unit)
-> texture: py.Texture
获取任意对象图片
@param obj
— 单位|物品|技能|魔法效果
get_point_texture
function Game.get_point_texture(point: Point)
-> integer
获取地形纹理
@param point
— 点
get_start_mode
function Game.get_start_mode()
-> game_mode: integer
获取本局游戏环境
@return game_mode
— 游戏环境,1是编辑器,2是平台
get_table
function Game.get_table(name: string, as_lua?: boolean)
-> tb: table
获取表
@param name
— 表名
@param as_lua
— 是否将表中的数据转换为Lua的数据类型,例如Fix32转number
@return tb
— 表
get_tech_description
function Game.get_tech_description(tech_id: py.TechKey)
-> description: string
获取科技类型的描述
@param tech_id
— 科技类型
@return description
— 描述
get_tech_icon
function Game.get_tech_icon(tech_id: py.TechKey, index: integer)
-> texture: py.Texture
获取科技图标
@param tech_id
— 科技
@param index
— 等级
@return texture
— 图标id
get_tech_max_level
function Game.get_tech_max_level(tech_id: py.TechKey)
-> level: integer
获取科技最大等级
@param tech_id
— 科技id
@return level
— 最大等级
get_tech_name
function Game.get_tech_name(tech_id: py.TechKey)
-> name: string
获取科技类型的名称
@param tech_id
— 科技类型
@return name
— 名称
get_window_mode
function Game.get_window_mode()
-> mode: Game.WindowMode
获取窗口化类别
@return mode
— 窗口化类别
mode:
| "full_screen" -- 全屏
| "window_mode" -- 窗口化
| "window_mode_full_screen" -- 窗口化全屏
is_compound_attributes_enabled
function Game.is_compound_attributes_enabled()
-> is_open: boolean
是否开启三维属性
@return is_open
— 是否开启
is_debug_mode
function Game.is_debug_mode(ignore_config?: boolean)
-> boolean
是否是调试模式
@param ignore_config
— 是否忽略用户的设置
locale
function Game.locale(key: string|integer)
-> 多语言内容: string
获取多语言内容
@param key
— 多语言key
modify_point_texture
function Game.modify_point_texture(point: Point, terrain_type: integer, range: integer, area_type: integer)
设置某点的地形纹理
@param point
— 点
@param terrain_type
— 纹理类型
@param range
— 范围
@param area_type
— 形状
on_client_tick
function Game.on_client_tick(callback: fun(local_player: Player))
本地客户端每帧回调此函数
只能注册一个回调,后注册的会覆盖之前的,
如有需要请自己在回调中分发
警告:回调函数是在本地玩家的客户端上执行的,注意避免产生不同步的问题。
pause_game
function Game.pause_game()
暂停游戏
reg_sound_area
function Game.reg_sound_area(area: Area)
注册区域的附近语音频道
@param area
— 区域
remove_ability_kv
function Game.remove_ability_kv(ability_key: py.AbilityKey, key: string)
清除技能类型键值
@param ability_key
— 技能id
@param key
— 键
remove_item_kv
function Game.remove_item_kv(item_key: py.ItemKey, key: string)
清除物品类型键值
@param item_key
— 物品id
@param key
— 键
remove_unit_kv
function Game.remove_unit_kv(unit_key: py.UnitKey, key: string)
清除单位类型键值
@param unit_key
— 单位id
@param key
— 键
replace_area_texture
function Game.replace_area_texture(area: Area, old_texture: integer, new_texture: integer)
替换地形纹理
@param area
— 区域
@param old_texture
— 纹理类型
@param new_texture
— 纹理类型
request_url
(method) Game:request_url(url: string, body?: string, callback?: fun(body?: string), options?: HttpRequestOptions)
发送 http 请求,成功或失败都会触发回调,
成功时回调的参数是 http 返回的 body,失败时回调的参数是 nil
restart_game
function Game.restart_game(fast_restart: boolean)
开始新一轮游戏
@param fast_restart
— 快速重置
resume_soft_pause
function Game.resume_soft_pause()
恢复软暂停
send_custom_event
function Game.send_custom_event(id: integer, table: table)
发送自定义事件给ECA
@param id
— 事件id
@param table
— 事件数据
send_signal
function Game.send_signal(player: Player, signal_enum: y3.Const.SignalType, point: Point, visible_enum: y3.Const.VisibleType)
发送信号
@param player
— 玩家
@param signal_enum
— 信号枚举值
@param point
— 点
@param visible_enum
— 可见性枚举值
set_area_weather
function Game.set_area_weather(area: Area, weather: integer)
设置区域天气
@param area
— 区域
@param weather
— 天气
set_cascaded_shadow_distanc
function Game.set_cascaded_shadow_distanc(distance: number)
设置阴影距离
@param distance
— 距离
set_cascaded_shadow_distance
function Game.set_cascaded_shadow_distance(dis: number)
设置阴影距离
@param dis
— 距离
set_cascaded_shadow_enable
function Game.set_cascaded_shadow_enable(is_enable: boolean)
开关级联阴影
@param is_enable
— 开关
set_compound_attributes
function Game.set_compound_attributes(primary_attribute: string, secondary_attr: string, value: number)
设置复合属性
@param primary_attribute
— 一级属性
@param secondary_attr
— 二级属性
@param value
— 属性值
set_damage_factor
function Game.set_damage_factor(attack_type: integer, armor_type: integer, ratio: number)
设置伤害系数
@param attack_type
— 攻击类型
@param armor_type
— 护甲类型
@param ratio
— 系数
set_day_night_speed
function Game.set_day_night_speed(speed: number)
设置游戏时间的流逝速度
@param speed
— 速度
set_day_night_time
function Game.set_day_night_time(time: number)
设置游戏时间
@param time
— 时间
set_fog_attr
function Game.set_fog_attr(fog: table, attr: string, value: number)
设置雾效属性(新)
@param fog
— 局部雾
@param attr
— 朝向
@param value
— 位置x
set_fog_attribute
function Game.set_fog_attribute(fog: table, direction: number, pos_x: number, pos_y: number, pos_z: number, scale_x: number, scale_y: number, scale_z: number, red: number, green: number, blue: number, concentration: number, speed: number)
设置雾效属性
@param fog
— 局部雾
@param direction
— 朝向
@param pos_x
— 位置x
@param pos_y
— 位置y
@param pos_z
— 位置z
@param scale_x
— 缩放x
@param scale_y
— 缩放y
@param scale_z
— 缩放z
@param red
— 颜色r
@param green
— 颜色g
@param blue
— 颜色b
@param concentration
— 浓度
@param speed
— 流速
set_game_speed
function Game.set_game_speed(speed: number)
设置游戏运行速率
@param speed
— 速率
set_global_weather
function Game.set_global_weather(weather: integer)
设置全局天气
@param weather
— 天气
set_globale_view
function Game.set_globale_view(enable: boolean)
启用全图视野(总是可见的)
set_jump_word
function Game.set_jump_word(enable: boolean)
关闭localplayer的表现层跳字
@param enable
— 是否关闭
set_logic_fps
function Game.set_logic_fps(fps: integer)
设置逻辑帧率
@param fps
— 帧率
set_material_param
function Game.set_material_param(obj: Unit, mat: integer, r: number, g: number, b: number, intensity: number, alpha: number)
设置物体的材质
@param mat
— 材质
@param r
— 红
@param g
— 绿
@param b
— 蓝
@param intensity
— 强度
@param alpha
— 透明度
set_nearby_micro_switch
function Game.set_nearby_micro_switch(player: Player, switch: boolean)
设置玩家的附近语音聊天发言开关
@param player
— 玩家
@param switch
— 是否关闭
set_nearby_sound_switch
function Game.set_nearby_sound_switch(player: Player, switch: boolean)
设置玩家的附近语音聊天收听开关
@param player
— 玩家
@param switch
— 是否关闭
set_nearby_voice_mode
function Game.set_nearby_voice_mode(switch: boolean)
设置附近语音的区域模式开关
@param switch
— 是否关闭
set_object_color
function Game.set_object_color(obj: Destructible|Item|Unit, r: integer, g: integer, b: integer, a?: integer, o?: number)
设置对象基础材质颜色
@param r
— 红色(0~255)
@param g
— 绿色(0~255)
@param b
— 蓝色(0~255)
@param a
— 强度(0~100)
@param o
— 不透明度(0~1)
set_object_fresnel
function Game.set_object_fresnel(obj: Destructible|Item|Unit, r?: integer, g?: integer, b?: integer, alpha?: number, exp?: number, strength?: number)
设置对象的菲涅尔效果
@param r
— R
@param g
— G
@param b
— B
@param alpha
— alpha
@param exp
— exp
@param strength
— strength
set_object_fresnel_visible
function Game.set_object_fresnel_visible(obj: Destructible|Item|Unit, b: boolean)
设置对象的菲涅尔效果
set_post_effect
function Game.set_post_effect(player: Player, processing: py.PostEffect)
为玩家切换画风
@param player
— 玩家
@param processing
— 画风
set_random_seed
function Game.set_random_seed(seed: integer)
设置随机数种子
@param seed
— 随机种子
set_role_all_micro_switch
function Game.set_role_all_micro_switch(player: Player, switch: boolean)
设置玩家的所有人语音聊天发言开关
@param player
— 玩家
@param switch
— 是否关闭
set_role_all_sound_switch
function Game.set_role_all_sound_switch(player: Player, switch: boolean)
设置玩家的所有人语音聊天收听开关
@param player
— 玩家
@param switch
— 是否关闭
set_role_camp_micro_switch
function Game.set_role_camp_micro_switch(player: Player, switch: boolean)
设置玩家的同阵营语音聊天发言开关
@param player
— 玩家
@param switch
— 是否关闭
set_role_camp_sound_switch
function Game.set_role_camp_sound_switch(player: Player, switch: boolean)
设置玩家的同阵营语音聊天收听开关
@param player
— 玩家
@param switch
— 是否关闭
set_role_micro_unit
function Game.set_role_micro_unit(player: Player, unit: Unit)
设置玩家的声音主单位
@param player
— 玩家
@param unit
— 是否关闭
sfx_switch
function Game.sfx_switch(player: Player, switch: boolean)
特效播放开关
@param player
— 玩家
@param switch
— 是否关闭
str_to_ability_cast_type
function Game.str_to_ability_cast_type(str: string)
-> py.AbilityCastType
字符串转技能释放类型
@param str
— 字符串
@return — 技能释放类型
str_to_ability_key
function Game.str_to_ability_key(str: string)
-> py.AbilityKey
字符串转技能类型
@param str
— 字符串
@return — 技能类型
str_to_ability_type
function Game.str_to_ability_type(str: string)
-> py.AbilityType
字符串转技能槽位类型
@param str
— 字符串
@return — 技能槽位类型
str_to_audio_key
function Game.str_to_audio_key(str: string)
-> py.AudioKey
字符串转声音类型
@param str
— 字符串
@return — 声音类型
str_to_camp
function Game.str_to_camp(str: string)
-> py.Camp
字符串转阵营
@param str
— 字符串
@return — 阵营
str_to_damage_type
function Game.str_to_damage_type(str: string)
-> integer
字符串转伤害类型
@param str
— 字符串
@return — 伤害类型
str_to_dest_key
function Game.str_to_dest_key(str: string)
-> py.DestructibleKey
字符串转可破坏物类型
@param str
— 字符串
@return — 可破坏物类型
str_to_item_key
function Game.str_to_item_key(str: string)
-> py.ItemKey
字符串转物品类型
@param str
— 字符串
@return — 物品类型
str_to_keyboard_key
function Game.str_to_keyboard_key(str: string)
-> py.KeyboardKey
字符串转键盘按键
@param str
— 字符串
@return — 键盘按键
str_to_link_sfx_key
function Game.str_to_link_sfx_key(str: string)
-> py.SfxKey
字符串转链接特效
@param str
— 字符串
@return — 链接特效
str_to_model_key
function Game.str_to_model_key(str: string)
-> py.ModelKey
字符串转模型类型
@param str
— 字符串
@return — 模型类型
str_to_modifier_effect_type
function Game.str_to_modifier_effect_type(str: string)
-> py.ModifierEffectType
字符串转魔法效果影响类型
@param str
— 字符串
@return — 魔法效果影响类型
str_to_modifier_key
function Game.str_to_modifier_key(str: string)
-> py.ModifierKey
字符串转魔法效果类型
@param str
— 字符串
@return — 魔法效果类型
str_to_modifier_type
function Game.str_to_modifier_type(str: string)
-> py.ModifierType
字符串转魔法效果类别
@param str
— 字符串
@return — 魔法效果类别
str_to_mouse_key
function Game.str_to_mouse_key(str: string)
-> py.MouseKey
字符串转鼠标按键
@param str
— 字符串
@return — 鼠标按键
str_to_mouse_wheel
function Game.str_to_mouse_wheel(str: string)
-> py.MouseWheel
字符串转鼠标滚轮
@param str
— 字符串
@return — 鼠标滚轮
str_to_particle_sfx_key
function Game.str_to_particle_sfx_key(str: string)
-> py.SfxKey
字符串转特效
@param str
— 字符串
@return — 特效
str_to_project_key
function Game.str_to_project_key(str: string)
-> py.ProjectileKey
字符串转投射物类型
@param str
— 字符串
@return — 投射物类型
str_to_role_relation
function Game.str_to_role_relation(str: string)
-> py.RoleRelation
字符串转玩家关系
@param str
— 字符串
@return — 玩家关系
str_to_role_res
function Game.str_to_role_res(str: string)
-> py.RoleResKey
字符串转玩家属性
@param str
— 字符串
@return — 3 玩家属性
str_to_role_status
function Game.str_to_role_status(status: py.RoleStatus)
-> string
字玩家状态转字符串
str_to_role_type
function Game.str_to_role_type(str: string)
-> py.RoleType
字符串转玩家控制状态
@param str
— 字符串
@return — 玩家控制状态
str_to_store_key
function Game.str_to_store_key(str: string)
-> store_key: py.StoreKey
字符串转平台道具类型
@param str
— 字符串
@return store_key
— 平台道具类型
str_to_tech_key
function Game.str_to_tech_key(str: string)
-> py.TechKey
字符串转科技类型
@param str
— 字符串
@return — 科技类型
str_to_ui_event
function Game.str_to_ui_event(str: string)
-> string
字符串转界面事件
@param str
— 字符串
str_to_unit_attr_type
function Game.str_to_unit_attr_type(str: string)
-> string
字符串转单位属性类型
@param str
— 字符串
@return — 单位属性类型
str_to_unit_command_type
function Game.str_to_unit_command_type(str: string)
-> py.UnitCommandType
字符串转单位命令类型
@param str
— 字符串
@return — 单位命令类型
str_to_unit_key
function Game.str_to_unit_key(str: string)
-> py.UnitKey
字符串转单位类型
@param str
— 字符串
@return — 单位类型
str_to_unit_name
function Game.str_to_unit_name(str: string)
-> string
字符串转单位属性
@param str
— 字符串
@return — 单位属性
str_to_unit_type
function Game.str_to_unit_type(str: string)
-> py.UnitType
字符串转单位分类
@param str
— 字符串
@return — 单位分类
subscribe_event
(method) Game:subscribe_event(event_type: y3.Const.EventType, ...any)
-> any[]?
2. Trigger.CallBack
3. Unsubscribe: function
switch_level
function Game.switch_level(level_id_str: py.Map)
切换至关卡
@param level_id_str
— 关卡ID
table_has_key
function Game.table_has_key(table: table, key: string)
-> boolean
表是否存在字段
toggle_day_night_time
function Game.toggle_day_night_time(is_on: boolean)
开关时间流逝
@param is_on
— 开关
unreg_sound_area
function Game.unreg_sound_area(area: Area)
注销区域的附近语音频道
@param area
— 区域
world_pos_to_camera_pos
function Game.world_pos_to_camera_pos(world_pos: Point)
-> x: number
2. y: number
世界坐标转换屏幕坐标
@param world_pos
— 世界坐标
@return x,y
— 屏幕坐标
world_pos_to_screen_edge_pos
function Game.world_pos_to_screen_edge_pos(world_pos: Point, delta_dis: number)
-> x: number
2. y: number
世界坐标转换屏幕边缘坐标
Game.WindowMode
Game.WindowMode:
| "full_screen" -- 全屏
| "window_mode" -- 窗口化
| "window_mode_full_screen" -- 窗口化全屏
"full_screen"|"window_mode"|"window_mode_full_screen"