固定订单,新手任务

This commit is contained in:
hahwu 2025-08-26 11:59:12 +08:00
parent 2446ba6a23
commit e00a2292ae
5 changed files with 35 additions and 9 deletions

View File

@ -91,7 +91,7 @@ func ReqGmCommand_(player *Player, Command string) error {
player.PushClientRes(player.PlayerBaseMod.BackAsset())
player.initAcitivity()
player.PlayMod.getGuideTaskMod().Unlock(num)
player.PlayMod.getOrderMod().TriggerOrder(num, order.TRIGGER_TYPE_LV)
player.PlayMod.getOrderMod().TriggerOrder(num, order.TRIGGER_TYPE_LV, nil, 1)
player.PushClientRes(player.PlayMod.getOrderMod().BackData())
player.BackDataActivity()
case "zeroUpdate":

View File

@ -532,6 +532,9 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
if err != nil {
return err
}
if v.Num < 0 {
p.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_STAR, A: []interface{}{-v.Num}})
}
p.TeLog("asset_change", map[string]interface{}{
"item_id": v.Id,
"change_type": change_type,

View File

@ -343,7 +343,7 @@ func ReqRewardOrder(player *Player, buf []byte) error {
} else {
OrderMod.CreateOrderSeed(NewOrder)
}
OrderMod.TriggerOrder(Lv, order.TRIGGER_TYPE_ORDER)
OrderMod.TriggerOrder(Lv, order.TRIGGER_TYPE_ORDER, Emit, EnergyMul)
player.FormatOrderReward()
// 存钱罐增加钻石
PiggyBankMod := player.PlayMod.getPiggyBankMod()

View File

@ -72,13 +72,16 @@ func (o *OrderMod) InitData() {
}
if len(o.OrderList) == 0 {
o.OrderList = make(map[int]Order)
o.TriggerOrder(1, TRIGGER_TYPE_ORDER)
o.TriggerOrder(1, TRIGGER_TYPE_ORDER, nil, 1)
}
for k, v := range o.OrderList {
if GoUtil.InArray(0, v.MergeId) || len(v.MergeId) == 0 {
delete(o.OrderList, k)
}
}
if o.Auto_id == 0 {
o.Auto_id = 10000
}
}
func (o *OrderMod) GetOrderList() map[int]Order {
@ -166,7 +169,7 @@ func (o *OrderMod) CreatOrderPool(lv int, Emit []int, EnergyMul int) error {
}
// 触发生成新的固定订单
func (o *OrderMod) TriggerOrder(lv int, Type string) error {
func (o *OrderMod) TriggerOrder(lv int, Type string, Emit []int, EnergyMul int) error {
TriggerOrderList := orderCfg.GetStartOrderList()
for _, v := range TriggerOrderList {
if GoUtil.InArray(v.Id, o.FinishOrder) {
@ -177,12 +180,12 @@ func (o *OrderMod) TriggerOrder(lv int, Type string) error {
continue
}
if v.Preview != "" && !exists {
if o.CheckCondition(lv, v.Preview, Type) {
if o.CheckCondition(lv, v.Preview, Type, Emit) {
o.addFixOrder(v.Id, v.MergeList, Preview_type, v.Items)
}
}
if v.Appear != "" {
if o.CheckCondition(lv, v.Appear, Type) {
if o.CheckCondition(lv, v.Appear, Type, Emit) {
if exists {
orderInfo.Type = Fixed_type
o.OrderList[v.Id] = orderInfo
@ -192,10 +195,21 @@ func (o *OrderMod) TriggerOrder(lv int, Type string) error {
}
}
}
if lv >= 12 {
normalOrder := 0
for _, v := range o.OrderList {
if v.Type == Common_type {
normalOrder++
}
}
for i := normalOrder; i < 3; i++ {
o.CreateNormalOrder(lv, Emit, EnergyMul)
}
}
return nil
}
func (o *OrderMod) CheckCondition(lv int, condition, Type string) bool {
func (o *OrderMod) CheckCondition(lv int, condition, Type string, Emit []int) bool {
r1 := strings.Split(condition, "|")
for _, v := range r1 {
r2 := strings.Split(v, "=")
@ -224,6 +238,14 @@ func (o *OrderMod) CheckCondition(lv int, condition, Type string) bool {
if !GoUtil.InArray(id, o.FinishOrder) && !ok {
return false
}
case "Emit":
Class := []string{}
for _, v := range Emit {
Class = append(Class, mergeDataCfg.GetColorById(v))
}
if !GoUtil.InStringArray(r2[1], Class) {
return false
}
}
}
return true
@ -231,7 +253,6 @@ func (o *OrderMod) CheckCondition(lv int, condition, Type string) bool {
// 生成新订单
func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error {
return nil
if len(Emit) == 0 {
return nil
}

View File

@ -18,7 +18,8 @@ const (
TRIGGER_LABEL_MERGELVTIME = "MergeLvTime"
TRIGGER_LABEL_FINISHORDER = "FinishOrder"
TRIGGER_LABEL_ENERGY = "Energy"
TRIGGER_LABEL_STAR = "Star" // 收集宠物币
TRIGGER_LABEL_STAR = "Star" // 收集宠物币
TRIGGER_LABEL_DIAMOND = "Diamond" // 消耗钻石
TRIGGER_LABEL_MERGETIME = "MergeTime"
TRIGGER_LABEL_STOKECAT = "StokeCat"
TRIGGER_LABEL_TAKECAT = "TakeCat"
@ -75,6 +76,7 @@ func TriggerQuestProgress(q *QuestProgress, Tr *Trigger) bool {
switch q.Label {
case TRIGGER_LABEL_ENERGY,
TRIGGER_LABEL_STAR,
TRIGGER_LABEL_DIAMOND,
TRIGGER_LABEL_DECORATE: // 消耗x能量
AddNum := Tr.A[0].(int)
q.Num += AddNum