This commit is contained in:
Akbar Yahya
2022-11-21 16:30:31 +08:00
commit e0d4d8040c
3326 changed files with 683000 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
-- 地图配置
scene_config = {
begin_pos = { x = -2500, z = -2500 }, -- 地图开始的坐标
size = { x = 5000, z = 5000 }, -- 地图大小
born_pos = { x = 672, y = 56, z = 624 }, -- 出生点
born_rot = { x = 0, y = 0, z = 0 } -- 出生朝向
}
blocks = { }
-- 所有的group
groups = {
}

View File

@@ -0,0 +1,109 @@
--================================================================
--
-- 配置
--
--================================================================
-- 怪物
monsters = {
{ config_id = 1, monster_id = 20103001, level = 10, pos = { x = 705, y = 64, z = 659 }, rot = { x = 0, y = 0, z = 0 } },
{ config_id = 2, monster_id = 20103001, level = 10, pos = { x = 703, y = 64, z = 659 }, rot = { x = 0, y = 0, z = 0 } }
}
-- NPC
npcs = {
{ config_id = 1, npc_id = 1, pos = { x = 674, y = 57, z = 635 }, rot = { x = 0, y = 0, z = 0 } },
{ config_id = 2, npc_id = 2, pos = { x = 699, y = 57, z = 649 }, rot = { x = 0, y = 0, z = 0 } }
}
-- 地图物件
gadgets = {
{ config_id = 1, gadget_id = 1, level = 10, pos = { x = 711, y = 64, z = 659 }, rot = { x = 0, y = 0, z = 0 } },
{ config_id = 2, gadget_id = 2, level = 10, pos = { x = 721, y = 64, z = 659 }, rot = { x = 0, y = 0, z = 0 } },
}
-- 触发器
triggers = {
{ name = "WAIT_MONSTER_DIE", event = EventType.EVENT_ANY_MONSTER_DIE, source = "", condition = "condition_WAIT_MONSTER_DIE", action = "action_WAIT_MONSTER_DIE" },
{ name = "EVENT_VARIABLE_CHANGE", event = EventType.EVENT_VARIABLE_CHANGE, source = "var_MONSTER_NUM", condition = "condition_WAIT_MONSTER_NUM_ZERO", action = "action_WAIT_MONSTER_NUM_ZERO" },
{ name = "ENTER_REGION", event = EventType.EVENT_ENTER_REGION, source = "", condition = "condition_EVENT_ENTER_REGION", action = "action_EVENT_ENTER_REGION" },
}
-- 变量
variables = {
{ name = "var_MONSTER_NUM", value = 1 }
}
--================================================================
--
-- 初始化配置
--
--================================================================
-- 初始化时创建
init_config = {
monsters = { 1, 2 },
npcs = { 1, 2 },
gadgets = { },
triggers = { "WAIT_MONSTER_DIE", "EVENT_VARIABLE_CHANGE", "ENTER_REGION" }
}
--================================================================
--
-- 触发器
--
--================================================================
function condition_WAIT_MONSTER_DIE(context, evt)
-- 判断触发死亡事件的怪是不是100001
if ScriptLib.GetMonsterIdByEntityId(evt.source) == 20103001 then
return true
end
return false
end
function action_WAIT_MONSTER_DIE(context)
-- var_MONSTER_NUM = var_MONSTER_NUM - 1
if 0 ~= ScriptLib.ChangeGroupVariableValue(context, "var_MONSTER_NUM", -1) then
return -1
end
return 0
end
--------------------------------------------------------
function condition_WAIT_MONSTER_NUM_ZERO(context, evt)
-- 判断 var_MONSTER_NUM 是不是0
if ScriptLib.GetGroupVariableValue(context, "var_MONSTER_NUM") == 0 then
return true
end
return false
end
function action_WAIT_MONSTER_NUM_ZERO(context)
-- 所有新创建的Entity都要保存
if 0 ~= ScriptLib.CreateGadget(context, 1) then -- (临时)根据配置ID创建宝箱
return -1
end
return 0
end
--------------------------------------------------------
function condition_EVENT_ENTER_REGION(context, evt)
-- 判断触发死亡事件的区域是不是1
if ScriptLib.GetGadgetIdByEntityId(evt.source) == 1 then
return true
end
return false
end
function action_EVENT_ENTER_REGION(context)
-- var_MONSTER_NUM = var_MONSTER_NUM - 1
if 0 ~= ScriptLib.CreateMonster(context, 2) then
return -1
end
ScriptLib.PrintLog(LogLevel.DEBUG, "CreateMonster succeed")
return 0
end

View File

@@ -0,0 +1,101 @@
--================================================================
--
-- Variables
--
--================================================================
group = {}
variables =
{
-- 这里需要事先声明好所有会用到的变量
var_MONSTER_NUM = null,
-- 如果Entity或Trigger会被别的Action或Event用到也需要事先声明好名称
trigger_WAIT_MONSTER_DIE = null,
trigger_WAIT_MONSTER_NUM_ZERO = null,
}
group.create_all_variables = function(context)
variables.var_MONSTER_NUM = ScriptLib.CreateVariable(context, "int", 3) -- 创建一个初始值为3的int的变量
end
--================================================================
--
-- Entities
--
--================================================================
group.create_all_entities = function(context)
group.create_all_monsters(context)
group.create_all_regions(context)
end
group.create_all_monsters = function(context)
-- initialize all preset monsters
-- 这里会初始化从编辑器里拖到场景里的怪
-- 所有新创建的Entity都要保存
--
ScriptLib.CreateMonster(context, { id = 100001, level = 10, pos = {x = 0, y = 0, z = 10}, rot = { x = 0, y = 0, z = 0 } })
end
group.create_all_regions = function(context)
-- initialize all preset regions
-- 这里会初始化所有从编辑器里拖到场景里的陷阱
end
--================================================================
--
-- Triggers
--
--================================================================
group.create_all_triggers = function(context)
-- initialize all preset triggers
-- 这里会初始化从编辑器里拖到场景里的触发器
-- 所有新创建的Trigger都要保存
--
variables.trigger_WAIT_MONSTER_DIE = ScriptLib.CreateGroupTrigger()
end
group.trigger_conditions_WAIT_MONSTER_DIE = function(context)
-- 判断触发死亡事件的怪是不是100001
if ScriptLib.GetMonsterID(evt.source) == 100001 then
return true
end
return false
end
group.trigger_actions_WAIT_MONSTER_DIE = function(context)
-- var_MONSTER_NUM = var_MONSTER_NUM - 1
ScriptLib.SetVariableValue(var_MONSTER_NUM, ScriptLib.GetVariableValue(var_MONSTER_NUM) - 1)
end
group.trigger_conditions_WAIT_MONSTER_NUM_ZERO = function(context)
-- 判断 var_MONSTER_NUM 是不是0
if ScriptLib.GetVariableValue(evt.var_MONSTER_NUM) == 0 then
return true
end
return false
end
group.trigger_actions_WAIT_MONSTER_NUM_ZERO = function(context)
-- 所有新创建的Entity都要保存
ScriptLib.CreateChest(context, {id = 10002}) -- (临时)根据ID创建宝箱
end
--================================================================
--
-- Group 初始化(第一次进入玩家的视野)
--
--================================================================
group.init = function(context)
group.create_all_entities(context)
group.create_all_triggers(context)
return 0
end

View File

@@ -0,0 +1,22 @@
{
"1": {
"$type": "SceneTransPoint",
"gadgetId": 1001,
"pos": {
"x": 674,
"y": 57,
"z": 635
},
"unlocked": 0
},
"2": {
"$type": "SceneTransPoint",
"gadgetId": 1001,
"pos": {
"x": 699,
"y": 57,
"z": 649
},
"unlocked": 0
}
}