Dream Mod 3.0Dream Mod 3.0
首页
快速开始
资源库
首页
快速开始
资源库
  • 进度

    • 更新日志
  • 指南

    • 快速上手
    • App.lua
    • Server.lua
    • 地图
    • 角色
    • 道具
    • 技能
    • 状态
    • 窗口
    • 成长
    • DmTcpClient
    • WebSocketClient
    • SqliteDB
    • 皮肤
    • 自定义组件
  • Api

    • 引擎
    • 地图
    • 角色
    • 道具
    • 技能
    • 状态
    • 窗口
    • 自定义组件
    • 音乐
    • 缓动
    • 全局
  • 控件

    • 标签
    • 按钮
    • 图片框
    • 动画框
    • 文本框
    • 进度条
    • 技能格子
    • 快捷格子
    • 包裹格子
    • 道具格子
    • 角色框
    • 选择框
    • 选择夹
    • 容器
    • 地图框
    • 滑块条
    • 滚动条
    • 组合框
    • 输入框
    • 列表框
  • 组件

    • 文本
    • 艺术字
    • 精灵
    • 矩形
    • 圆形
    • 动画
  • 其他

    • 丰富文本
    • 模板变量
    • 游戏盒子

全局

方法

调试输出

调试输出
说明:在控制台上显示调试信息。
参数名称值的类型是否必填说明描述
... 通用true不定参数

示例

调试输出(1,2,3,4,RGBA(128,128,0,255))

Log

Log
说明:在控制台上显示调试信息并且记录到Log文件中。
参数名称值的类型是否必填说明描述
... 通用true不定参数

示例

Log("进入游戏",{名称="小明",等级=16})

注意事项
1、游戏模式下保存位置: Log/game.年月日.log
2、服务端模式下保存位置:Log/server.年月日.log

RGBA

RGBA
说明:返回一个RGBA颜色值。
参数名称值的类型是否必填说明描述
R 整数true
G 整数true
B 整数true
A 整数true

示例

local 白色 = RGBA(255,255,255,255);
调试输出(白色)
返回值值的类型说明描述
颜色值 整数

MD5

MD5
说明:md5数据校验。
参数名称值的类型是否必填说明描述
文本 文本true
是否是文件 逻辑false是否对指定文件取md5

示例

调试输出(MD5("男子殴打女邻居:她学习DM的瘾很大"))
调试输出(MD5("res/dd.dat",true))
返回值值的类型说明描述
结果 文本小写格式 失败返回"" 空文本

BASE64

BASE64
说明:Base64编解码。
参数名称值的类型是否必填说明描述
文本 文本true
模式 逻辑false编码:true 解码:false 默认:true
文件模式 逻辑false是否是文件

示例

local 存档信息 = {
  名称 = "小明",
  等级 = 20,
  金币 = 9887
}
local 存档数据 = table.tojson(存档信息);
local base64Str = BASE64(存档数据);
调试输出(base64Str)
调试输出(BASE64(base64Str,false))

local image = BASE64("res/内观/00117.png",true,true) -- 图片转base64
返回值值的类型说明描述
结果 文本

POST

POST
说明:对指定Url发送一个POST请求。同步模式。
参数名称值的类型是否必填说明描述
Url 文本true
数据 文本/tablefalse
转码 逻辑falseUTF8模式
headers tablefalse

示例

local 状态,时间信息 = POST("http://vv.video.qq.com/checktime","otype=json")
if (状态 == 200) then
--	local _,a = string.find(时间信息, "\"t\":");
--	local b  = string.find(时间信息, ",\"ip\"");
--	local 时间戳 = tonumber(string.sub(时间信息,a+1,b-1));
    local 时间戳 = tonumber(string.match(时间信息,'"t":(%d+)'));
	调试输出("时间戳",时间戳,os.date("%Y-%m-%d %H:%M:%S",时间戳))
end


local 存档信息 = {
  名称 = "小明",
  等级 = 20,
  金币 = 9887
}
local 状态,结果 = POST("http://xxxxxxx/call",存档信息,true) -- UTF8模式交互
调试输出(状态,结果)




-- https://pollinations.ai/ 
-- model: ["flux","kontext","turbo","nanobanana"]
local 关键词 = "Chinese-style realistic wolf monster with transparent background for game use";
math.randomseed(os.time()) 
local seed = math.random(99999)
local 状态,结果 = POST("https://image.pollinations.ai/prompt/"..关键词.."?model=turbo&width=256&height=256&nologo=true&seed=" .. seed)
调试输出(状态,结果,seed)
if (状态 == 200) then
  按钮对象.父窗口.图片框3.底图 = 结果
end



--- api.siliconflow.cn -------
local headers = {}
headers["Authorization"] = "Bearer xxxxxxxxxxxxxxxxxx"
headers["Content-Type"] = "application/json"

local 接口信息 = {
	model = "Qwen/Qwen3-Next-80B-A3B-Instruct",
	messages = {{role="user",content="写一个Lua加法函数"}},
	top_p = 0.7,
	thinking_budget  = 4096
}

local 状态,结果 = POST("https://api.siliconflow.cn/v1/chat/completions",接口信息,true,headers)
调试输出(状态,结果)


local 文生图接口 = {
	batch_size = 3,
	num_inference_steps = 20,
	guidance_scale = 7.5,
	prompt = "半兽人战士,全身像,肌肉发达,绿色皮肤,獠牙外露,手持粗糙石斧,穿着兽皮裙和骨制护甲,眼神凶狠,写实质感",
	model = "Kwai-Kolors/Kolors",
	image_size = "1024x1024",
--	seed = math.random(99999)
}

local 状态,结果 = POST("https://api.siliconflow.cn/v1/images/generations",文生图接口,true,headers)

if(状态 == 200) then
	local jsonTbl = table.loadjson(结果)
	调试输出(jsonTbl)
end
返回值值的类型说明描述
状态码 整数200:请求成功
结果 文本

注意事项
1、PHP环境下Session默认自动保持。
2、如果返回数据是图片会自动保存到Res目录下并且返回地址。
3、AI接口使用的平台:siliconflow

string.split

string.split
说明:将指定文本进行分割,返回分割后的一维文本数组。
参数名称值的类型是否必填说明描述
待分割文本 文本true
用作分割的文本 文本false如果留空,则将待分割的文本分割成字符组。

示例

local 结果  = string.split("木柴|大米|粮油","|")    -- 按 | 分割
调试输出(结果)

结果  = string.split("我的游戏我做主")        -- 分割成字符组
调试输出(结果)
返回值值的类型说明描述
结果 table

string.fileinfo

string.fileinfo
说明:用取文件名称,路径,后缀等信息。
参数名称值的类型是否必填说明描述
文件名 文本true

示例

local info = string.fileinfo("01/角色/主角.lua")
调试输出(info)
返回值值的类型说明描述
结果 table{路径,文件名,名称,后缀}

string.addspace

string.addspace
说明:将文本扩展到指定长度,按照对齐方式,进行左,右,居中以空格补齐。
参数名称值的类型是否必填说明描述
待扩展的文本 文本true
被扩展成的长度 整数true
对齐方式 整数true0:左对齐 1:右对齐 2:居中对齐

示例

调试输出(string.addspace("中国人",32,1))
调试输出(string.addspace("中国人",32,2))
返回值值的类型说明描述
扩展后的文本 文本

math.round

math.round
说明:按位数进行四舍五入。
参数名称值的类型是否必填说明描述
值 数值true
小数点后位数 整数false默认保留2位小数

示例

调试输出(2/3)
调试输出(math.round(2/3,2))
返回值值的类型说明描述
结果 小数

math.format

math.format
说明:格式化数值。
参数名称值的类型是否必填说明描述
值 数值true
格式化模式 整数false0:千分位 1:中文单位 2:中文数字 3:毫秒转 时:分:秒

示例

调试输出(math.format(1234567,0))	-- 1,234,567
调试输出(math.format(1234567,1))	-- 123.45万
调试输出(math.format(1234567,2))	-- 一百二十三万四千五百六十七
调试输出(math.format(1234567,3))	-- 00:20:34
返回值值的类型说明描述
结果 文本

math.取两点间距离

math.取两点间距离
说明:取两点间距离。math.sqrt (math.abs ((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)))
参数名称值的类型是否必填说明描述
x1 数值true
y1 数值true
x2 数值true
y2 数值true

示例

local 距离 = math.取两点间距离(来源角色.x,来源角色.y,目标角色.x,目标角色.y)
返回值值的类型说明描述
结果 数值

math.取两点间格子

math.取两点间格子
说明:取两点间格子。 math.max(math.abs(x1 - x2), math.abs(y1 - y2))
参数名称值的类型是否必填说明描述
x1 数值true
y1 数值true
x2 数值true
y2 数值true

示例

local 格子 = math.取两点间格子(来源角色.x,来源角色.y,目标角色.x,目标角色.y)
返回值值的类型说明描述
结果 数值

math.取两点间角度

math.取两点间角度
说明:取两点间角度。
参数名称值的类型是否必填说明描述
x1 数值true
y1 数值true
x2 数值true
y2 数值true

示例

local 角度 = math.取两点间角度(来源角色.x,来源角色.y,目标角色.x,目标角色.y)
返回值值的类型说明描述
结果 数值

math.取两点间方向

math.取两点间方向
说明:取两点间方向。
参数名称值的类型是否必填说明描述
x1 数值true
y1 数值true
x2 数值true
y2 数值true

示例

local 方向 = math.取两点间方向(来源角色.x,来源角色.y,目标角色.x,目标角色.y)
返回值值的类型说明描述
结果 数值

math.按角度距离取坐标

math.按角度距离取坐标
说明:按角度距离取坐标。
参数名称值的类型是否必填说明描述
x 数值true
y 数值true
角度 数值true
距离 数值true

示例

local 距离 = math.取两点间距离(来源角色.x,来源角色.y,目标角色.x,目标角色.y)
local 角度 = math.取两点间角度(来源角色.x,来源角色.y,目标角色.x,目标角色.y)
local x,y = math.按角度距离取坐标(来源角色.x,来源角色.y,角度,距离 + 100)
返回值值的类型说明描述
x 数值
y 数值

os.uuid

os.uuid
说明:返回26位长度的唯一字符串。

示例

调试输出(os.uuid())
返回值值的类型说明描述
结果 文本

table.copy

table.copy
说明:将深拷贝一个table。
参数名称值的类型是否必填说明描述
tbl tabletrue

示例

local 结果  = string.split("木柴|大米|粮油","|")    -- 按 | 分割
local 结果2 = table.copy(结果)
返回值值的类型说明描述
结果 table

table.tojson

table.tojson
说明:将table转换成json格式。
参数名称值的类型是否必填说明描述
tbl tabletrue待转换的table
密钥 文本false填写表示加密

示例

local 存档 = {等级=10,金币=666,属性={攻击=10,防御=5}}
调试输出(table.tojson(存档))
调试输出(table.tojson(存档,"123456"))
返回值值的类型说明描述
结果 文本

table.loadjson

table.loadjson
说明:将json文本转换成table。
参数名称值的类型是否必填说明描述
json 文本true
密钥 文本false填写表示转换已经加密的数据

示例

local 存档 = {等级=10,金币=666,属性={攻击=10,防御=5}}
local 结果 = table.tojson(存档,"123456")
调试输出(table.loadjson(结果,"123456"))
返回值值的类型说明描述
结果 table失败返回nil

table.tofile

table.tofile
说明:将table保存到文件里面。
参数名称值的类型是否必填说明描述
tbl tabletrue
文件名 文本true
密钥 文本false填写表示加密

示例

local 存档 = {等级=10,金币=666,属性={攻击=10,防御=5}}
调试输出(table.tofile(存档,"save.dat","123456"))
返回值值的类型说明描述
成功 逻辑

提示

文件地址支持相对路径和绝对路径,相对路径位于 执行文件目录。

table.loadfile

table.loadfile
说明:从文件里读取table。
参数名称值的类型是否必填说明描述
文件名 文本true
密钥 文本false填写表示解析被加密的文件

示例

local 存档 = {等级=10,金币=666,属性={攻击=10,防御=5}}
--调试输出(table.tofile(存档,"save.dat","123456"))
调试输出(table.loadfile("save.dat","123456"))
返回值值的类型说明描述
结果 table失败返回nil
Prev
缓动