From f7e5880092c921b19c260bbf4a13dcc10ad6fa68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <12574910+72wo@users.noreply.github.com> Date: Wed, 25 Feb 2026 22:47:16 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(space):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=A4=A9=E6=B0=94=E5=8F=98=E5=8C=96=E8=B0=83=E8=AF=95=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=B9=B6=E4=BC=98=E5=8C=96=E5=9C=B0=E5=9B=BE=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在天气变化时添加调试打印语句,便于追踪空间天气变化情况 - 重构地图节点模型,将NodeID重命名为TriggerID以更好地表达其用途 - 添加触发器ID字段用于区分精灵和NPC,支持高ID控制NPC逻辑 - 更新注释说明剧情相关配置的重构计划,通过NPC节点判断类型 - 调整地图怪信息结构体初始化逻辑,直接使用TriggerID作为ID ``` --- logic/service/space/space.go | 6 +++--- modules/config/model/map_node.go | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/logic/service/space/space.go b/logic/service/space/space.go index e66bd2b7a..c9b850c18 100644 --- a/logic/service/space/space.go +++ b/logic/service/space/space.go @@ -114,6 +114,7 @@ func GetSpace(id uint32) *Space { if neww != uint32(ret.MapBossSInfo.Wer) { ret.IsChange = true ret.MapBossSInfo.Wer = int32(neww) + println(ret.Name, "change weather", neww) } else { ret.IsChange = false @@ -127,15 +128,14 @@ func GetSpace(id uint32) *Space { if v.IsBroadcast != 0 { //说明是地图怪 info := info.MapBossInfo{ - + Id: v.TriggerID, Region: v.NodeID, //这个是注册的index Hp: v.HP, PosInfo: ParseCoordinateString(v.Pos), MaxHP: int(v.HP), Wer: v.Weather, } - bossid := uint32(service.NewBossService().Get(v.BossIds[0])[0].MonID) - info.Id = bossid + ret.MapBossSInfo.INFO = append(ret.MapBossSInfo.INFO, info) } diff --git a/modules/config/model/map_node.go b/modules/config/model/map_node.go index 62b512861..13d182414 100644 --- a/modules/config/model/map_node.go +++ b/modules/config/model/map_node.go @@ -25,8 +25,9 @@ type MapNode struct { *Event // 嵌入BOSS事件配置 // 基础关联字段 MapID int32 `gorm:"not null;index;comment:'所属地图ID'" json:"map_id" description:"地图ID"` - - NodeID uint32 `gorm:"not null;default:0;comment:'节点ID'" json:"node_id" description:"节点ID"` + //可以是精灵也可以是NPC ,到时候npc用高ID去控制就行 + TriggerID uint32 `gorm:"comment:'触发器ID'" json:"trigger_id" description:"触发器ID"` + NodeID uint32 `gorm:"not null;default:0;comment:'节点ID'" json:"node_id" description:"节点ID"` NodeName string `gorm:"type:varchar(100);default:'';comment:'节点名称'" json:"node_name" description:"节点名称"` //节点激活脚本 @@ -38,7 +39,7 @@ type MapNode struct { FailBonusID int `gorm:"type:int;default:0;comment:'失败奖励ID'" json:"fail_bonus_id"` //是否需要广播,比如雷伊 IsBroadcast int `gorm:"type:int;default:0;comment:'是否需要广播'" json:"is_broadcast"` - // 剧情相关配置 + // 剧情相关配置 通过剧情去主动触发boss显示和对话显示 ,待重构通过NPC节点判断哪种类型 TriggerPlotID uint32 `gorm:"default:0;comment:'触发剧情ID(0表示无剧情)'" json:"trigger_plot_id" description:"触发剧情ID"` //BindPlotIDs []uint32 `gorm:"type:int[];comment:'绑定的剧情ID列表'" json:"bind_plot_ids" description:"绑定剧情ID列表"` //完成后的脚本回调,比如战胜和击败绑定不同的任务ID,以及剧情绑定不同的ID