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

    • 更新日志
  • 指南

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

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

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

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

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

地图

提示

游戏中当前主角所在地图,可以通过 引擎.地图快捷访问。

属性

名称

  • 类型:文本
  • 读写:只读
  • 说明:地图对象的名称。

显示名

  • 类型:文本
  • 读写:只读
  • 说明:地图对象的显示名。

地图信息

  • 类型:table
  • 读写:读写
  • 详情:当前地图信息。
名称类型说明
宽度数值当前地图的宽度。
高度数值当前地图的高度。
格子宽度数值当前地图的格子宽度。
格子高度数值当前地图的格子高度。
格子列数数值当前地图的格子列数。
格子行数数值当前地图的格子行数。
鼠标坐标x数值鼠标指针的当前地图坐标x
鼠标坐标y数值鼠标指针的当前地图坐标y
鼠标格子x数值鼠标指针的当前地图格子x
鼠标格子y数值鼠标指针的当前地图格子y
焦点角色对象当前鼠标的焦点角色
友方数量数值友方阵营的角色数量
友方存活数值友方阵营的存活数量
敌方数量数值敌方阵营的角色数量
敌方存活数值敌方阵营的存活数量
中立数量数值中立阵营的角色数量
中立存活数值中立阵营的存活数量
调试输出(引擎.地图.地图信息.宽度)

镜头平滑移动

  • 类型:逻辑
  • 读写:读写
  • 说明:用于配合镜头位置变化时使用,将镜头缓动到新的目标点。

环境色

  • 类型:RGBA/nil
  • 读写:读写
  • 说明:动态读写地图当前环境色。 nil表示取消环境色。

黑白画面

  • 类型:逻辑
  • 读写:读写
  • 说明:地图是否显示为黑白效果。

暂停

  • 类型:逻辑
  • 读写:读写
  • 说明:暂停继续地图游戏状态。

鼠标事件

  • 类型:逻辑
  • 读写:读写
  • 说明:是否触发系统事件中的鼠标事件。

主角

  • 类型:角色对象
  • 读写:只读
  • 说明:你可以在脚本中使用 引擎.地图.主角 快捷获得当前的主角对象。

镜头对象

  • 类型:包含属性{x,y}的table
  • 读写:只写
  • 说明:更改当前地图的镜头绑定。
引擎.地图.镜头对象 = 引擎.地图.主角
引擎.地图.镜头对象 = 其他角色.....

引擎.地图.镜头对象 = {x=100,y=100} -- 固定镜头位置

动态镜头 = {x=100,y=100}
引擎.地图.镜头对象 = 动态镜头 -- 绑定一个自己的镜头位置对象
动态镜头.x = 动态镜头.x + 10  -- 改变x,y值镜头也会随之移动
动态镜头.y = 动态镜头.y + 10

视距

  • 类型:小数
  • 读写:读写
  • 说明:镜头的视野缩放倍数,默认:1.0。

加速

  • 类型:小数
  • 读写:读写
  • 说明:地图逻辑加速倍数,默认:1.0。

初始位置

  • 类型:{x,y}
  • 读写:只读
  • 说明:地图配置项中的初始位置。

方法

创建角色

创建角色
说明:在地图上动态创建角色。
参数名称值的类型是否必填说明描述
名称 文本true角色组件的名称
格子x 整数true刷怪的中心点x
格子y 整数true刷怪的中心点y
阵营 文本true"敌方" "友方" "中立"
范围 整数true距离中心刷怪点的半径
数量 整数true刷几只怪
附加 tabletrue可以替换掉默认配置项属性
参数名称值的类型说明描述
等级 数值
经验值 整数 被击杀对方可获得的经验值数量
hp 数值
mp 数值
maxhp 数值
maxmp 数值
角色大小 数值
方向 数值出生方向:0-7
重生间隔 整数
显示名 文本
仇恨联动 整数格子范围,受伤后会通知联动范围内所有的友方一起攻击仇恨来源.默认:0
血条效果 table
主动攻击 逻辑
自动战斗 逻辑
巡逻范围 整数/table
移动间隔 整数
攻击间隔 整数
视野范围 整数
状态 table
掉落 table
附加 table

示例

地图对象.创建角色("稻草人",20,20,"敌方",20,6); 

local 附加配置 = 
{
  角色大小=1.0,
  重生间隔=300000,
  附加={boss=true},
  掉落={"木剑 1/1","金币100 4/1"},
  状态={
    {"通用增强",{maxhp_百分比=100,攻击_百分比=30,防御_百分比=30}},
    {"BOSS增强",{}}
  }
}

地图对象.创建角色("稻草人BOSS",20,20,"敌方",20,1,附加配置); 
返回值值的类型说明描述
角色对象组 table {} 返回实际刷新成功的角色对象数组

注意事项
1、使用前确保角色组件是否已经正确添加到项目中。

取出角色

取出角色
说明:在地图上取出有效角色。
参数名称值的类型是否必填说明描述
格子x 整数true中心点x
格子y 整数true中心点y
范围 整数true距离半径
阵营 整数false 1:友方 -1:敌方 0:中立
威望 整数false限制多少威望内 -1:不限制
取出数量 整数false 最多取出几个角色

示例

local 主角对象 = 引擎.地图.主角
local 角色组 = 主角对象.地图.取出角色(主角对象.格子x,主角对象.格子y,5,-主角对象.阵营)
调试输出("附近敌方数量:" ,#角色组)
返回值值的类型说明描述
角色对象组 table {} 返回角色对象数组

查找角色

查找角色
说明:从角色id取出角色对象。
参数名称值的类型是否必填说明描述
id 整数true角色id

示例

local 角色对象
if (self.客户端.cid == tbl.cid) then
    角色对象 = 引擎.地图.主角
else 
    角色对象 = 引擎.地图.查找角色(tbl.id)
end
  if (角色对象 == nil) then
    调试输出("角色不存在")
    return
end

引擎.屏幕提示(tbl.msg,{
  停留时间=12000,动画效果=0,气泡皮肤="透明气泡",限制宽度=6*20,
  x=0,y=-角色对象.角色高度 - 24,
  分组="_msg_" .. tbl.cid, 清空分组=true}
,角色对象) 
返回值值的类型说明描述
角色对象 角色对象

地图格子

地图格子
说明:取出或者改变地图格子状态。
参数名称值的类型是否必填说明描述
格子x 整数true
格子y 整数true
类型 整数false不填表示取出 填写表示设置 0通行 1障碍 2透明 3障碍+透明

示例

调试输出(地图对象.地图格子(20,20)) -- 取出

地图对象.地图格子(20,20,1) -- 设置成障碍
返回值值的类型说明描述
类型 整数0通行 1障碍 2透明 3障碍+透明

地图光源

地图光源
说明:改变地图光源可视状态。
参数名称值的类型是否必填说明描述
名称标识 文本true
可视 逻辑true

示例

引擎.地图.地图光源("光源1",true)

掉落物品

掉落物品
说明:往地图对象中掉落一个物品。
参数名称值的类型是否必填说明描述
格子x 整数true
格子y 整数true
道具名称 文本true延迟执行
是否固定掉落位置 逻辑false
附加 tablefalse如果填写会传递到道具的 创建 事件中。默认:nil

示例

local 损失金币 = 99999
local 道具对象 = 引擎.地图.掉落物品(引擎.地图.主角.格子x,引擎.地图.主角.格子y,"死亡金币",true)
if (道具对象) then
  道具对象.显示名 = "金币("  .. 损失金币 .. ")"
end


引擎.地图.掉落物品(引擎.地图.主角.格子x,引擎.地图.主角.格子y,"棉布衣",true,{系统任务=true})
返回值值的类型说明描述
道具对象 道具对象掉落成功返回道具对象否则为nil

设置主角

设置主角
说明:将一个角色对象设置成主角。
参数名称值的类型是否必填说明描述
角色对象 角色组件true
切换镜头 逻辑false是否自动绑定镜头 默认:true

示例

引擎.地图.设置主角(self.主控角色) 

显示气泡

显示气泡
说明:持久显示一个气泡提示。
参数名称值的类型是否必填说明描述
x 整数true地图坐标x
y 整数true地图坐标y
气泡内容 文本true
气泡皮肤 文本false

示例

引擎.加入事件("系统时钟",{},0,false) -- 持久显示的气泡 需要一个帧事件保持持续显示
-----------------------------------------------------
系统时钟 = function (tbl,dt,time)
  local 鼠标角色 = 引擎.鼠标角色
  if (鼠标角色) then
    local 丰富文本 = "Lv" .. 鼠标角色.等级 .. " " .. 鼠标角色.显示名 
    引擎.地图.显示气泡(鼠标角色.x,鼠标角色.y - 鼠标角色.角色高度 * 0.5,丰富文本)
  end
end,

重置

重置
说明:还原地图到第一次进入时的状态。

示例

引擎.地图.重置();

注意事项
1、地图配置项中的地图角色会重新刷新。
2、会再次触发地图配置项中的创建事件。
3、主角会回到出生点,如果有宠物会自动清空。

抖动

抖动
说明:产生一次地图抖动效果,抖动幅度会根据时间逐渐衰弱。
参数名称值的类型是否必填说明描述
持续时间 整数true单位:毫秒
抖动幅度 整数true

示例

引擎.地图.抖动(2000,10);

坐标转换

坐标转换
说明:转换坐标。
参数名称值的类型是否必填说明描述
x 整数true
y 整数true
模式 整数true0.地图坐标转屏幕坐标
1.屏幕坐标转地图坐标
2.地图坐标转地图格子
3.地图格子转地图坐标

示例

local 地图坐标x,地图坐标y = 引擎.地图.坐标转换(50,50,3)
调试输出(地图坐标x,地图坐标y)
返回值值的类型说明描述
x 整数
y 整数

取出空位

取出空位
说明:从指定格子范围内取出非障碍格子。
参数名称值的类型是否必填说明描述
格子x 整数true
格子y 整数true
范围 整数false指定格子距离 默认:1
模式 整数false默认:0 0:最近的一个有效位置 1:随机一个有效位置

示例

local 主角对象 = 引擎.地图.主角
local 格子x,格子y = 引擎.地图.取出空位(主角对象.格子x,主角对象.格子y)
调试输出(格子x,格子y )
返回值值的类型说明描述
格子x 整数-1:表示取出失败
格子y 整数-1:表示取出失败

添加节点

添加节点
说明:在地图上添加一个节点,成功返回节点对象。
参数名称值的类型是否必填说明描述
组件配置 tabletrue文本,动画...等基石组件
图层 整数false0:地表1:顶层 2:物件排序层 默认:0
z 整数false排序层节点的z值,默认:0

示例


local 选中脚底动画 = {
  名称 = "脚底动画",
  类型 = "动画",
  x = 0,
  y = 0,
  动画 = "脚底动画",
  动作 = "default",
  默认可视 = false,
}

self.脚底动画 = 引擎.地图.添加节点(选中脚底动画,0) -- 0地表  1顶层

返回值值的类型说明描述
组件对象 对象对象 / nil失败返回 nil

取出节点

取出节点
说明:从节点名称取出节点对象。
参数名称值的类型是否必填说明描述
组件名称 文本false

示例

local 脚底动画 = 引擎.地图.取出节点("脚底动画")
脚底动画.可视 = false
返回值值的类型说明描述
组件对象 对象 / nil取出失败返回 nil

清除节点

清除节点
说明:清除节点。销毁模式,清除后不可再次调用!
参数名称值的类型是否必填说明描述
组件名称 文本/组件对象false

示例

引擎.地图.清除节点(L系统.脚底动画)
返回值值的类型说明描述
是否成功 逻辑

加入事件

加入事件
说明:往地图对象中加入一个自定义事件。
参数名称值的类型是否必填说明描述
事件名称 文本true触发的事件名称
附加信息 tablefalse事件触发时可以取出
延迟时间 数值false延迟执行
自动销毁 逻辑false是否只执行一次,默认:true

示例

系统事件 = {

    创建 = function(地图对象)
        地图对象.加入事件("自动刷怪",{},500,false)
    end,

    自动刷怪 = function (地图对象,tbl,dt,time)
        调试输出(tbl,dt,time)
    end,

}

提示

利用自定义事件,可以在不同对象之间进行交互。 自定义事件。

删除事件

删除事件
说明:删除指定自定义事件。
参数名称值的类型是否必填说明描述
事件名称 文本true

示例

系统事件 = {

    创建 = function(地图对象)
        地图对象.加入事件("自动刷怪",{},500,false)
    end,

    自动刷怪 = function (地图对象,tbl,dt,time)
        地图对象.删除事件("自动刷怪")
    end,

}
Prev
引擎
Next
角色