通用
编码转换
编码转换: gbk转utf-8 sys_gbk2utf8
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
source | string | 源字符串 |
- | - | - |
- ret:
string
utf-8编码字符串
编码转换: utf-8转gbk sys_utf82gbk
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
source | string | 源字符串 |
- | - | - |
- ret:
string
gbk编码字符串
系统路径编码转换(主要应用于中文路径,windows平台转换为gbk编码,linux平台转换为utf-8编码) sys_path_encoding
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
source | string | 源字符串 |
- | - | - |
- ret:
string
转换后的字符串
载入文件 include
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
require_file | string | 需要载入的文件,core同级别的相对路径 |
- | - | - |
ret:
table
载入的文件module示例:
function isc_test_general:include()
-- 示例展示测试载入检查中文路径/文件是否存在
local flag, status = pcall(edi.general.include, edi.general, "中文路径/测试.lua")
if not flag then
print("isc_test_general not include flag: ", tostring(flag))
end
end
全局数据
初始化全局数据 init_global_val
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
modulename | string | 模块名 |
is_safe | boolean | 是否存储(默认有变化时3分钟模块自动存盘) |
- | - | - |
ret: 无
示例:
function isc_test_general:init_global_val(...)
local mode = "test"
edi.general:init_global_val(mode, true)
local key_int = 1
edi.general:set_global_int(mode, key_int, 100)
local keyval = edi.general:get_global_int(mode, key_int)
print("keyval ".. keyval);
edi.general:set_global_int(mode, 2, 1001)
local list_str = edi.general:get_all_global_str(mode)
for k, v in pairs(list_str) do
print("k ".. k .. ", v " .. v);
end
edi.general: save_global_val(mode)
print(" save_global_val ok");
local key_str = "test_key1"
edi.general:set_global_str(mode, key_str, "hello world!")
local str_val = edi.general:get_global_str(mode, key_str)
print("str_val " .. str_val)
edi.general:set_global_str(mode, "helo", "hello tom!")
local list_str = edi.general:get_all_global_str(mode)
for k, v in pairs(list_str) do
print("k ".. k .. ", v " .. v);
end
edi.general:clean_global_val(mode)
print("clean_global_val ok");
local str_val2 = edi.general:get_global_str(mode, key_str)
print("str_val " .. str_val2)
end
清空全局数据 clean_global_val
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
modulename | string | 模块名 |
- | - | - |
- ret: 无
获取全局int数据 get_global_int
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
modulename | string | 模块名 |
key | number | 键 |
- | - | - |
- ret:
number
值
设置全局inti数据 set_global_int
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
modulename | string | 模块名 |
key | number | 键 |
val | number | 值 |
- | - | - |
- ret: 无
获取全部int数据 get_all_global_int
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
modulename | string | 模块名 |
- | - | - |
ret:
table
全局string数据列表<k, v>示例:
function isc_test_general:get_all_global_int()
local ret = edi.general:get_all_global_int(module.KVMODE)
print("ret : ", ret)
end
获取全局string数据 get_global_str
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
modulename | string | 模块名 |
key | string | 键 |
- | - | - |
- ret:
string
值
设置全局string数据 set_global_str
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
modulename | string | 模块名 |
key | string | 键 |
val | string | 值 |
- | - | - |
- ret: 无
生成唯一ID make_uuid
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
ret:
string
字符串唯一ID示例:
function isc_test_general:make_uuid(...)
local id = edi.general:make_uuid()
print("id : ", id)
end
获取基础执行路径 get_envir_base_dir
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
ret:
string
执行路径示例:
function isc_test_general:get_envir_base_dir()
local ret = edi.general:get_envir_base_dir()
print("ret : ", ret)
end
消息、界面
是否存在非法字符 is_filter_char
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
ctx | string | 内容 |
- | - | - |
ret:
boolean
true-是 false-否示例:
function isc_test_general:is_filter_char(...)
local ctx = "测试世界频道"
local ret = edi.general:is_filter_char(ctx)
print("ctx: ", ctx)
print("ret: ", ret)
end
发送系统邮件 send_sys_mail
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
recv_id | number | 邮件接收者玩家id |
mail_title | string | 邮件标题 |
mail_cxt | string | 邮件内容 |
items | item_info[] | 附件奖励 { item_info } |
remark | string | 标记 |
- | - | - |
ret: 无
示例:
function isc_test_general:send_sys_mail(actor, ...)
local playerId = edi.player:get_uuid(actor)
local items = {}
edi.struct:append_item_info(items, 101, 1, false)
edi.struct:append_item_info(items, 103, 1, false)
edi.general:send_sys_mail(playerId, "mail_title", "mail_cxt", items, "remark")
end
聊天 chat
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
from | userdata | |
rev_name | string | 接收者玩家名字 |
channel | CHAT_TYPE | 频道枚举 |
say | string | 聊天内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:chat(player, ...)
edi.general:chat(player, "元元", 0, "私聊频道")
edi.general:chat(player, "", 1, "私聊频道")
--edi.general:chat(player, "", 2, "世界频道")
end
发送文字提示 send_player_notice
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
style | NOTICE_TYPE | 枚举 |
content | string | 内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:send_player_notice(player, ...)
edi.general:send_player_notice(player, 8, "玩家个人公告测试")
end
全服广播 send_broadcast_notice
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
style | NOTICE_TYPE | 枚举 |
content | string | 内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:send_broadcast_notice(player, ...)
edi.general:send_broadcast_notice(8, "全服公告测试")
end
全视野广播 broadcast_notice_eyeshot
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
object | userdata | 对象 |
style | NOTICE_TYPE | 枚举 |
content | string | 内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:broadcast_notice_eyeshot()
edi.general:broadcast_notice_eyeshot(module.player, core_def.NOTICE_TYPE.TopHorseLamp, "全视野广播测试")
end
全地图广播 broadcast_notice_map
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
scene | userdata | 场景对象 |
style | NOTICE_TYPE | 枚举 |
content | string | 内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:broadcast_notice_map()
edi.general:broadcast_notice_map(module.player, core_def.NOTICE_TYPE.TopHorseLamp, "全地图广播测试")
end
全队广播 broadcast_notice_team
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
team | userdata | 组队对象 |
style | NOTICE_TYPE | 枚举 |
content | string | 内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:broadcast_notice_team()
edi.general:broadcast_notice_team(module.player, core_def.NOTICE_TYPE.TopHorseLamp, "全队广播测试")
end
全公会广播 broadcast_notice_guild
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
guild | userdata | 公会对象 |
style | NOTICE_TYPE | 枚举 |
content | string | 内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:broadcast_notice_guild()
edi.general:broadcast_notice_guild(module.player, core_def.NOTICE_TYPE.TopHorseLamp, "全行会广播测试")
end
发送错误码 send_err_notice
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
err | number | 错误码id common_error_code.xlsx表 |
params | table? | 插入参数列表 中文中文<@0>中文<@1> => <@0>取 params的第一个依次往后填充 |
- | - | - |
ret: 无
示例:
function isc_test_general:send_err_notice(player, ...)
edi.general:send_err_notice(player, 1000)
end
打开ssr界面 send_open_ssr
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
content | string | 内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:send_open_ssr(player, ...)
-- 这部分需要用具体的ssr界面做例子
edi.general:send_open_ssr(player, ...)
end
关闭ssr界面 send_close_ssr
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
ssr_uid | integer | SSR界面ID |
- | - | - |
ret: 无
示例:
function isc_test_general:send_close_ssr(player, ssr_uid)
-- 这部分需要用具体的ssr界面做例子
edi.general:send_close_ssr(player, ssr_uid)
end
局部刷新ssr界面 send_execute_ssr
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
content | string | 数据内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:send_execute_ssr(player, content)
-- 这部分需要用具体的ssr界面做例子
edi.general:send_execute_ssr(player, content)
end
发送协议给玩家 send_player_proto
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
cmd | string | 协议命令 |
ctx | string | 推送内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:send_player_proto(player, cmd, ctx)
edi.general:send_player_proto(player, cmd, ctx)
end
在线人员全服广播推送协议 send_broadcast_proto
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
cmd | string | 协议命令 |
ctx | string | 推送内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:send_broadcast_proto(cmd, ctx)
edi.general:send_broadcast_proto(cmd, ctx)
end
配置
通过配置名以及id获取数据 global.xlsx表需要特殊处理 返回值为string类型的value 非配置表数据 不可通过'*'获取全部配置 read_xlsx
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
xlsx_name | string | excel/xlsx配置表名字 |
key | number or string | 配置key '*'表示全部数据, 表id查询用number型,用名字查询用string, 当前并非所有表都支持通过名字查询配置信息 |
- | - | - |
ret:
excel_cfg|excel_cfg[]|string?
xlsx 的配置信息(每张表各不相同,具体字段名对照xlsx表的字段名),如items.xlsx 的字段name,表示名字,那么lua中使用为 table.name示例:
function isc_test_general:read_xlsx()
local all = edi.general:read_xlsx("items", "*") -- 整张表
print("items: all: ", all)
local get = edi.general:read_xlsx("items", 100010001) -- 指定id的数据
print("items: get: ", get)
local find = edi.general:read_xlsx("items", "开天") -- 指定名称道具
print("items: find: ", find)
end
时间、定时器
添加定时器 add_timer
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
key | string | 标记 |
tick | number | 间隔时间(毫秒) |
cout | number | 次数 |
callback_func | function | 回调函数 |
callback_data | string | 回调数据 |
- | - | - |
ret: 无
示例:
function isc_test_general:add_timer(gl_timer_key)
-- 定时器回调
local _callback = function(strdata)
print("add_timer strdata: ", strdata)
end
-- 添加定时器
edi.general:add_timer(gl_timer_key, 1000, 1, _callback, "xxstrdata")
end
删除定时器 del_timer
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
key | string | 标记 |
- | - | - |
ret: 无
示例:
function isc_test_general:del_timer(gl_timer_key)
edi.general:del_timer(gl_timer_key)
end
判断是否存在指定定时器 has_timer
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
key | string | 标记 |
- | - | - |
ret:
boolean
true-存在 false-不存在示例:
function isc_test_general:has_timer(gl_timer_key)
local bhas = edi.general:has_timer(gl_timer_key)
print("bhas ", bhas)
end
添加计划任务 add_crontab
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
key | string | 标记 |
crontab | string | 计划任务 * * * * * * |
callback_func | function | 回调函数 |
callback_data | string | 回调数据 |
- | - | - |
ret: 无
示例:
function isc_test_general:add_crontab(crontab_timer)
local _callback = function(strdata)
print("add_crontab strdata: ", strdata)
end
-- 每分钟的第2秒触发
local crontab = "2 * * * * *"
edi.general:add_crontab(crontab_timer, crontab, _callback, "xxstrdata")
end
删除计划任务 del_crontab
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
key | string | 标记 |
- | - | - |
ret: 无
示例:
function isc_test_general:del_crontab(crontab_timer)
edi.general:del_crontab(crontab_timer)
end
判断是否有指定的计划任务 has_crontab
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
key | string | 标记 |
- | - | - |
ret:
boolean
true-存在 false-不存在示例:
function isc_test_general:has_crontab(crontab_timer)
local has = edi.general:has_crontab(crontab_timer)
print("has : ", has)
end
获取当前时间戳(秒) get_now_seconds
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
ret:
integer
当前时间戳(秒)示例:
function isc_test_general:get_now_seconds()
LOGI("get now seconds : ".. edi.general:get_now_seconds())
end
获取当前为开服第几天 get_open_svr_day
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
ret:
integer
开服第几天示例:
function isc_test_general:get_open_svr_day()
LOGI("get now seconds open server day : ".. edi.general:get_open_svr_day())
end
获取首次开服时间 get_server_first_open_timestamp
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
ret:
integer
获取首次开服时间戳(秒)示例:
function isc_test_general:get_server_first_open_timestamp()
local timestamp = edi.general:get_server_first_open_timestamp()
print("timestamp: ", timestamp)
end
获取当前毫秒时间戳 get_now_milliseconds
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
ret:
integer
当前毫秒示例:
function isc_test_general:get_now_milliseconds()
LOGI("get now mlliseconds : ".. edi.general:get_open_sget_now_millisecondsvr_day())
end
获取0点时间戳(秒) day_zero_time
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
time_stamp | integer | 时间戳 |
- | - | - |
ret:
integer
0点时间戳(秒)示例:
function isc_test_general:day_zero_time()
local cur_zero_time = edi.general:day_zero_time(edi.general:get_now_seconds())
LOGI("零点时间戳 : ".. cur_zero_time)
end
计算周几 get_week_day
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
time | number | 时间戳(秒) |
- | - | - |
- ret:
integer
周几 -1 表示无效: 0-6表示从周天到周六
tlog
发送日志 record_tlog
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
content | string | 内容 |
- | - | - |
ret: 无
示例:
function isc_test_general:record_tlog()
edi.general:record_tlog("content", "context", 0)
LOGI("record_tlog ok")
end
获取mid get_mid
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
- | - | - |
- ret:
string
mid
获取设备id get_device_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
- | - | - |
- ret:
string
设备id
获取玩家ip get_player_ip
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
- | - | - |
- ret:
string
玩家ip
获取玩家端口 get_player_port
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
- | - | - |
- ret:
number
玩家端口
获取服id get_group_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
- ret:
number
服id
获取一级渠道id get_channel_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
- ret:
string
一级渠道id
获取二级渠道id get_sub_channel_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
- ret:
string
二级渠道id
获取平台id get_platform
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
- ret:
string
获取平台id
获取游戏名称 get_game_project_name
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
- | - | - |
- ret:
string
游戏名称
是否开启tlog is_open_tlog
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
ret:
boolean
是否开启tlog示例:
function isc_test_general:is_open_tlog()
local ret = edi.general:is_open_tlog()
print("ret : ", ret)
end
获取全局信息 get_global_info
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
ret:
{app_id:string,area_id:string,server_id:string,channel_id:string,sub_channel_id:string,platform:string,game_name:string}
全局信息表包含:app_id area_id server_id channel_id sub_channel_id platform game_name示例:
function isc_test_general:get_global_info()
local info = edi.general:get_global_info()
local app_id = info.app_id
LOGI("app_id: " .. app_id)
local area_id = info.area_id
LOGI("area_id: " .. area_id)
local server_id = info.server_id
LOGI("server_id: " .. server_id)
local channel_id = info.channel_id
LOGI("channel_id: " .. channel_id)
local sub_channel_id = info.sub_channel_id
LOGI("sub_channel_id: " .. sub_channel_id)
local platform = info.platform
LOGI("platform: " .. platform)
end
其他
随机数生成 random
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
param1 | integer or number | 参数1 |
param2 | integer or number | 参数2 |
- | - | - |
ret:
number
随机数示例:
function isc_test_general:random()
local rate = edi.general:random(1, 10000)
LOGI("获取1-10000随机数".. rate)
end
注册配置信息到服务器(接口偏向引擎协助支持具体功能用) reg_cfg_to_server
growup_tips 表的内容 为 { tips = "key对应的描述内容" }
args:
名字 | 类型 | 说明、描述 |
---|---|---|
table_name | string | 表名字 |
key | string | 表 |
ctx | table | 内容 table数据 引擎内部依据需要向lua获取数据,依据每个table的规则进行解析 |
- | - | - |
ret: 无
示例:
function isc_test_general:reg_cfg_to_server()
local grow_up_key = "grow_up_key"
local grow_up_name = "grow_up_name"
edi.general:reg_cfg_to_server("growup_tips", grow_up_key, { tips = grow_up_name})
end
重名检测 check_duplicate_name
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
player | userdata | 玩家对象 |
name | string | 名字 |
- | - | - |
ret:
boolean
是否重名示例:
function isc_test_general:check_duplicate_name()
local bRet = edi.general:check_duplicate_name(module.player, "小明")
if bRet == true then
LOGI("重名")
else
LOGI("未重名")
end
end
获取区ID get_area_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
- ret:
number
区ID
获取游戏ID get_app_id
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
- | - | - |
- ret:
number
游戏ID
http请求 http_request
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
method | number | 0:post,1:get |
url | string | 请求域名 |
payload | string | 请求内容(get时无效) |
index_key | string | 标记Key |
callback_func | function | 回调函数(参数参考示例) |
callback_data | string | 回调数据 |
- | - | - |
ret: 无
示例:
function isc_test_general:http_request()
local _callback = function(index_key, is_success, response_or_error, callback_data)
print("http request callback: ", is_success, response_or_error)
end
edi.general:http_request(0, "www.baidu.com", "", "test", _callback, "")
end
打印table表,debug级别 printtab
- args:
名字 | 类型 | 说明、描述 |
---|---|---|
... | any | 任意数据 |
- | - | - |
- ret: 无