mirror of
https://github.com/FlourishingWorld/hk4e.git
synced 2026-02-04 16:32:27 +08:00
191 lines
8.0 KiB
Go
191 lines
8.0 KiB
Go
package gdconf
|
|
|
|
import (
|
|
"hk4e/pkg/logger"
|
|
)
|
|
|
|
type QuestCond struct {
|
|
Type int32
|
|
Param []int32
|
|
ComplexParam string
|
|
Count int32
|
|
}
|
|
|
|
// QuestData 任务配置表
|
|
type QuestData struct {
|
|
QuestId int32 `csv:"子任务ID"`
|
|
ParentQuestId int32 `csv:"父任务ID,omitempty"`
|
|
Sequence int32 `csv:"序列,omitempty"`
|
|
// 领取条件
|
|
AcceptCondCompose int32 `csv:"[领取条件]组合,omitempty"`
|
|
AcceptCondType1 int32 `csv:"[领取条件]1类型,omitempty"`
|
|
AcceptCondType1Param1 int32 `csv:"[领取条件]1参数1,omitempty"`
|
|
AcceptCondType1Param2 int32 `csv:"[领取条件]1参数2,omitempty"`
|
|
AcceptCondType1Param3 int32 `csv:"[领取条件]1参数3,omitempty"`
|
|
AcceptCondType2 int32 `csv:"[领取条件]2类型,omitempty"`
|
|
AcceptCondType2Param1 int32 `csv:"[领取条件]2参数1,omitempty"`
|
|
AcceptCondType2Param2 int32 `csv:"[领取条件]2参数2,omitempty"`
|
|
AcceptCondType2Param3 int32 `csv:"[领取条件]2参数3,omitempty"`
|
|
AcceptCondType3 int32 `csv:"[领取条件]3类型,omitempty"`
|
|
AcceptCondType3Param1 int32 `csv:"[领取条件]3参数1,omitempty"`
|
|
AcceptCondType3Param2 int32 `csv:"[领取条件]3参数2,omitempty"`
|
|
AcceptCondType3Param3 int32 `csv:"[领取条件]3参数3,omitempty"`
|
|
// 完成条件
|
|
FinishCondCompose int32 `csv:"[完成条件]组合,omitempty"`
|
|
FinishCondType1 int32 `csv:"[完成条件]1类型,omitempty"`
|
|
FinishCondType1Param1 int32 `csv:"[完成条件]1参数1,omitempty"`
|
|
FinishCondType1Param2 int32 `csv:"[完成条件]1参数2,omitempty"`
|
|
FinishCondType1ComplexParam string `csv:"[完成条件]1复杂参数,omitempty"`
|
|
FinishCondType1Count int32 `csv:"[完成条件]1次数,omitempty"`
|
|
FinishCondType2 int32 `csv:"[完成条件]2类型,omitempty"`
|
|
FinishCondType2Param1 int32 `csv:"[完成条件]2参数1,omitempty"`
|
|
FinishCondType2Param2 int32 `csv:"[完成条件]2参数2,omitempty"`
|
|
FinishCondType2ComplexParam string `csv:"[完成条件]2复杂参数,omitempty"`
|
|
FinishCondType2Count int32 `csv:"[完成条件]2次数,omitempty"`
|
|
FinishCondType3 int32 `csv:"[完成条件]3类型,omitempty"`
|
|
FinishCondType3Param1 int32 `csv:"[完成条件]3参数1,omitempty"`
|
|
FinishCondType3Param2 int32 `csv:"[完成条件]3参数2,omitempty"`
|
|
FinishCondType3ComplexParam string `csv:"[完成条件]3复杂参数,omitempty"`
|
|
FinishCondType3Count int32 `csv:"[完成条件]3次数,omitempty"`
|
|
// 失败条件
|
|
FailCondCompose int32 `csv:"[失败条件]组合,omitempty"`
|
|
FailCondType1 int32 `csv:"[失败条件]1类型,omitempty"`
|
|
FailCondType1Param1 int32 `csv:"[失败条件]1参数1,omitempty"`
|
|
FailCondType1Param2 int32 `csv:"[失败条件]1参数2,omitempty"`
|
|
FailCondType1ComplexParam string `csv:"[失败条件]1复杂参数,omitempty"`
|
|
FailCondType1Count int32 `csv:"[失败条件]1次数,omitempty"`
|
|
FailCondType2 int32 `csv:"[失败条件]2类型,omitempty"`
|
|
FailCondType2Param1 int32 `csv:"[失败条件]2参数1,omitempty"`
|
|
FailCondType2Param2 int32 `csv:"[失败条件]2参数2,omitempty"`
|
|
FailCondType2ComplexParam string `csv:"[失败条件]2复杂参数,omitempty"`
|
|
FailCondType2Count int32 `csv:"[失败条件]2次数,omitempty"`
|
|
FailCondType3 int32 `csv:"[失败条件]3类型,omitempty"`
|
|
FailCondType3Param1 int32 `csv:"[失败条件]3参数1,omitempty"`
|
|
FailCondType3Param2 int32 `csv:"[失败条件]3参数2,omitempty"`
|
|
FailCondType3ComplexParam string `csv:"[失败条件]3复杂参数,omitempty"`
|
|
FailCondType3Count int32 `csv:"[失败条件]3次数,omitempty"`
|
|
|
|
AcceptCondList []*QuestCond // 领取条件
|
|
FinishCondList []*QuestCond // 完成条件
|
|
FailCondList []*QuestCond // 失败条件
|
|
}
|
|
|
|
func (g *GameDataConfig) loadQuestData() {
|
|
g.QuestDataMap = make(map[int32]*QuestData)
|
|
fileNameList := []string{"QuestData.txt", "QuestData_Exported.txt"}
|
|
for _, fileName := range fileNameList {
|
|
questDataList := make([]*QuestData, 0)
|
|
readTable[QuestData](g.txtPrefix+fileName, &questDataList)
|
|
for _, questData := range questDataList {
|
|
// 领取条件
|
|
questData.AcceptCondList = make([]*QuestCond, 0)
|
|
if questData.AcceptCondType1 != 0 {
|
|
paramList := make([]int32, 0)
|
|
if questData.AcceptCondType1Param1 != 0 {
|
|
paramList = append(paramList, questData.AcceptCondType1Param1)
|
|
}
|
|
if questData.AcceptCondType1Param2 != 0 {
|
|
paramList = append(paramList, questData.AcceptCondType1Param2)
|
|
}
|
|
if questData.AcceptCondType1Param3 != 0 {
|
|
paramList = append(paramList, questData.AcceptCondType1Param3)
|
|
}
|
|
questData.AcceptCondList = append(questData.AcceptCondList, &QuestCond{
|
|
Type: questData.AcceptCondType1,
|
|
Param: paramList,
|
|
})
|
|
}
|
|
if questData.AcceptCondType2 != 0 {
|
|
paramList := make([]int32, 0)
|
|
if questData.AcceptCondType2Param1 != 0 {
|
|
paramList = append(paramList, questData.AcceptCondType2Param1)
|
|
}
|
|
if questData.AcceptCondType2Param2 != 0 {
|
|
paramList = append(paramList, questData.AcceptCondType2Param2)
|
|
}
|
|
if questData.AcceptCondType2Param3 != 0 {
|
|
paramList = append(paramList, questData.AcceptCondType2Param3)
|
|
}
|
|
questData.AcceptCondList = append(questData.AcceptCondList, &QuestCond{
|
|
Type: questData.AcceptCondType2,
|
|
Param: paramList,
|
|
})
|
|
}
|
|
if questData.AcceptCondType3 != 0 {
|
|
paramList := make([]int32, 0)
|
|
if questData.AcceptCondType3Param1 != 0 {
|
|
paramList = append(paramList, questData.AcceptCondType3Param1)
|
|
}
|
|
if questData.AcceptCondType3Param2 != 0 {
|
|
paramList = append(paramList, questData.AcceptCondType3Param2)
|
|
}
|
|
if questData.AcceptCondType3Param3 != 0 {
|
|
paramList = append(paramList, questData.AcceptCondType3Param3)
|
|
}
|
|
questData.AcceptCondList = append(questData.AcceptCondList, &QuestCond{
|
|
Type: questData.AcceptCondType3,
|
|
Param: paramList,
|
|
})
|
|
}
|
|
// 完成条件
|
|
questData.FinishCondList = make([]*QuestCond, 0)
|
|
if questData.FinishCondType1 != 0 {
|
|
paramList := make([]int32, 0)
|
|
if questData.FinishCondType1Param1 != 0 {
|
|
paramList = append(paramList, questData.FinishCondType1Param1)
|
|
}
|
|
if questData.FinishCondType1Param2 != 0 {
|
|
paramList = append(paramList, questData.FinishCondType1Param2)
|
|
}
|
|
questData.FinishCondList = append(questData.FinishCondList, &QuestCond{
|
|
Type: questData.FinishCondType1,
|
|
Param: paramList,
|
|
ComplexParam: questData.FinishCondType1ComplexParam,
|
|
Count: questData.FinishCondType1Count,
|
|
})
|
|
}
|
|
if questData.FinishCondType2 != 0 {
|
|
paramList := make([]int32, 0)
|
|
if questData.FinishCondType2Param1 != 0 {
|
|
paramList = append(paramList, questData.FinishCondType2Param1)
|
|
}
|
|
if questData.FinishCondType2Param2 != 0 {
|
|
paramList = append(paramList, questData.FinishCondType2Param2)
|
|
}
|
|
questData.FinishCondList = append(questData.FinishCondList, &QuestCond{
|
|
Type: questData.FinishCondType2,
|
|
Param: paramList,
|
|
ComplexParam: questData.FinishCondType2ComplexParam,
|
|
Count: questData.FinishCondType2Count,
|
|
})
|
|
}
|
|
if questData.FinishCondType3 != 0 {
|
|
paramList := make([]int32, 0)
|
|
if questData.FinishCondType3Param1 != 0 {
|
|
paramList = append(paramList, questData.FinishCondType3Param1)
|
|
}
|
|
if questData.FinishCondType3Param2 != 0 {
|
|
paramList = append(paramList, questData.FinishCondType3Param2)
|
|
}
|
|
questData.FinishCondList = append(questData.FinishCondList, &QuestCond{
|
|
Type: questData.FinishCondType3,
|
|
Param: paramList,
|
|
ComplexParam: questData.FinishCondType3ComplexParam,
|
|
Count: questData.FinishCondType3Count,
|
|
})
|
|
}
|
|
// 失败条件
|
|
g.QuestDataMap[questData.QuestId] = questData
|
|
}
|
|
}
|
|
logger.Info("QuestData count: %v", len(g.QuestDataMap))
|
|
}
|
|
|
|
func GetQuestDataById(questId int32) *QuestData {
|
|
return CONF.QuestDataMap[questId]
|
|
}
|
|
|
|
func GetQuestDataMap() map[int32]*QuestData {
|
|
return CONF.QuestDataMap
|
|
}
|