引导订单优化
This commit is contained in:
parent
e3628c77b7
commit
01e7a90efd
@ -1,4 +1,4 @@
|
|||||||
package guildCfg
|
package GuideCfg
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"server/game/mod/item"
|
"server/game/mod/item"
|
||||||
@ -7,15 +7,15 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
GUILD_REWARD = "GuildReward"
|
GUIDE_REWARD = "GuideReward"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
gamedata.InitCfg(GUILD_REWARD)
|
gamedata.InitCfg(GUIDE_REWARD)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetGuildReward(Id int) ([]*item.Item, int) {
|
func GetGuideReward(Id int) ([]*item.Item, int) {
|
||||||
data, err := gamedata.GetDataByIntKey(GUILD_REWARD, Id)
|
data, err := gamedata.GetDataByIntKey(GUIDE_REWARD, Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debug("GuildCfg GetGuildReward Id:%v not found", Id)
|
log.Debug("GuildCfg GetGuildReward Id:%v not found", Id)
|
||||||
return nil, 0
|
return nil, 0
|
||||||
@ -312,8 +312,8 @@ func ReqGmCommand_(player *Player, Command string) error {
|
|||||||
BaseMod.LogoutTime = GoUtil.Now() - 7*86400
|
BaseMod.LogoutTime = GoUtil.Now() - 7*86400
|
||||||
TriggerComfortOrder(player)
|
TriggerComfortOrder(player)
|
||||||
player.PushClientRes(player.PlayMod.getOrderMod().BackData())
|
player.PushClientRes(player.PlayMod.getOrderMod().BackData())
|
||||||
case "resetGuiid":
|
case "resetGuide":
|
||||||
GuildMod := player.PlayMod.getGuildMod()
|
GuildMod := player.PlayMod.getGuideMod()
|
||||||
GuildMod.Reward = make(map[int]int)
|
GuildMod.Reward = make(map[int]int)
|
||||||
player.PushClientRes(GuildMod.BackData())
|
player.PushClientRes(GuildMod.BackData())
|
||||||
case "setDecorateArea":
|
case "setDecorateArea":
|
||||||
|
|||||||
@ -602,6 +602,36 @@ func BackChampship(p *Player) {
|
|||||||
p.PushClientRes(ChampshipMod.BackData(MyRank, MyPreRank))
|
p.PushClientRes(ChampshipMod.BackData(MyRank, MyPreRank))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GuideTriggerOrder(p *Player) error {
|
||||||
|
GuideMod := p.PlayMod.getGuideMod()
|
||||||
|
GuideOrder := GuideMod.GetGuideOrder()
|
||||||
|
if GuideOrder {
|
||||||
|
return fmt.Errorf("not")
|
||||||
|
}
|
||||||
|
OrderMod := p.PlayMod.getOrderMod()
|
||||||
|
MinOrderId := 0
|
||||||
|
for k := range OrderMod.GetOrderList() {
|
||||||
|
if MinOrderId == 0 {
|
||||||
|
MinOrderId = k
|
||||||
|
}
|
||||||
|
if k < MinOrderId {
|
||||||
|
MinOrderId = k
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BaseMod := p.PlayMod.getBaseMod()
|
||||||
|
ChessMod := p.PlayMod.getChessMod()
|
||||||
|
if MinOrderId < 12 {
|
||||||
|
return fmt.Errorf("not")
|
||||||
|
}
|
||||||
|
if MinOrderId < 14 && BaseMod.GetEnergy() > 0 {
|
||||||
|
return fmt.Errorf("not")
|
||||||
|
}
|
||||||
|
OrderMod.GuideTriggerOrder(ChessMod.GetUnlockChessList())
|
||||||
|
GuideMod.SetGuideOrder(true)
|
||||||
|
p.PlayMod.save()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func PlayroomOrderTrigger(p *Player) error {
|
func PlayroomOrderTrigger(p *Player) error {
|
||||||
CD := playroomCfg.GetTriggerCd()
|
CD := playroomCfg.GetTriggerCd()
|
||||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import (
|
|||||||
"server/game/mod/friend"
|
"server/game/mod/friend"
|
||||||
"server/game/mod/friendTreasure.go"
|
"server/game/mod/friendTreasure.go"
|
||||||
guesscolor "server/game/mod/guessColor"
|
guesscolor "server/game/mod/guessColor"
|
||||||
"server/game/mod/guild"
|
"server/game/mod/guide"
|
||||||
"server/game/mod/handbook"
|
"server/game/mod/handbook"
|
||||||
"server/game/mod/invite"
|
"server/game/mod/invite"
|
||||||
"server/game/mod/item"
|
"server/game/mod/item"
|
||||||
@ -54,7 +54,7 @@ type PlayerModList struct {
|
|||||||
Decorate decorate.Decorate //装饰
|
Decorate decorate.Decorate //装饰
|
||||||
Card card.CardMod //卡牌
|
Card card.CardMod //卡牌
|
||||||
Var Var.Var // 变量
|
Var Var.Var // 变量
|
||||||
Guild guild.Guild // 引导
|
Guide guide.Guide // 引导
|
||||||
DailyTask dailyTask.DailyTaskMod // 每日任务
|
DailyTask dailyTask.DailyTaskMod // 每日任务
|
||||||
Face face.FaceMod // 头像
|
Face face.FaceMod // 头像
|
||||||
Avatar avatar.AvatarMod // 头像框
|
Avatar avatar.AvatarMod // 头像框
|
||||||
@ -156,7 +156,7 @@ func (p *PlayerModData) InitMod(player *Player) (bool, error) {
|
|||||||
p.ModList.Decorate.InitData()
|
p.ModList.Decorate.InitData()
|
||||||
p.ModList.Card.InitData()
|
p.ModList.Card.InitData()
|
||||||
p.ModList.Var.InitData()
|
p.ModList.Var.InitData()
|
||||||
p.ModList.Guild.InitData()
|
p.ModList.Guide.InitData()
|
||||||
p.ModList.DailyTask.InitData()
|
p.ModList.DailyTask.InitData()
|
||||||
p.ModList.Face.InitData()
|
p.ModList.Face.InitData()
|
||||||
p.ModList.Avatar.InitData()
|
p.ModList.Avatar.InitData()
|
||||||
@ -272,8 +272,8 @@ func (p *PlayerMod) getVarMod() *Var.Var {
|
|||||||
return &p.mod_list.Var
|
return &p.mod_list.Var
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PlayerMod) getGuildMod() *guild.Guild {
|
func (p *PlayerMod) getGuideMod() *guide.Guide {
|
||||||
return &p.mod_list.Guild
|
return &p.mod_list.Guide
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PlayerMod) getDailyTaskMod() *dailyTask.DailyTaskMod {
|
func (p *PlayerMod) getDailyTaskMod() *dailyTask.DailyTaskMod {
|
||||||
|
|||||||
@ -353,6 +353,7 @@ func ReqRewardOrder(player *Player, buf []byte) error {
|
|||||||
}
|
}
|
||||||
// playroom 触发式订单
|
// playroom 触发式订单
|
||||||
err = PlayroomOrderTrigger(player)
|
err = PlayroomOrderTrigger(player)
|
||||||
|
GuideTriggerOrder(player)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResRewardOrder{
|
player.SendErrClienRes(&msg.ResRewardOrder{
|
||||||
Code: msg.RES_CODE_FAIL,
|
Code: msg.RES_CODE_FAIL,
|
||||||
@ -545,6 +546,11 @@ func UpdatePlayerChessDataFunc(player *Player, buf []byte) error {
|
|||||||
}
|
}
|
||||||
RedBackData(player)
|
RedBackData(player)
|
||||||
player.UpdateUserInfo()
|
player.UpdateUserInfo()
|
||||||
|
err1 := GuideTriggerOrder(player)
|
||||||
|
if err1 == nil {
|
||||||
|
OrderMod := player.PlayMod.getOrderMod()
|
||||||
|
player.PushClientRes(OrderMod.BackData())
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1030,8 +1036,8 @@ func ReqAllCollectReward(player *Player, buf []byte) error {
|
|||||||
func ReqGuideReward(player *Player, buf []byte) error {
|
func ReqGuideReward(player *Player, buf []byte) error {
|
||||||
req := &msg.ReqGuideReward{}
|
req := &msg.ReqGuideReward{}
|
||||||
proto.Unmarshal(buf, req)
|
proto.Unmarshal(buf, req)
|
||||||
GuildMod := player.PlayMod.getGuildMod()
|
GuideMod := player.PlayMod.getGuideMod()
|
||||||
itemList, err := GuildMod.GetReward(int(req.Id))
|
itemList, err := GuideMod.GetReward(int(req.Id))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResGuideReward{
|
player.SendErrClienRes(&msg.ResGuideReward{
|
||||||
Code: msg.RES_CODE_FAIL,
|
Code: msg.RES_CODE_FAIL,
|
||||||
@ -1049,7 +1055,7 @@ func ReqGuideReward(player *Player, buf []byte) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
player.PlayMod.save()
|
player.PlayMod.save()
|
||||||
player.PushClientRes(GuildMod.BackData())
|
player.PushClientRes(GuideMod.BackData())
|
||||||
player.PushClientRes(&msg.ResGuideReward{
|
player.PushClientRes(&msg.ResGuideReward{
|
||||||
Code: msg.RES_CODE_SUCCESS,
|
Code: msg.RES_CODE_SUCCESS,
|
||||||
})
|
})
|
||||||
|
|||||||
57
src/server/game/mod/guide/Guide.go
Normal file
57
src/server/game/mod/guide/Guide.go
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
package guide
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"server/GoUtil"
|
||||||
|
GuideCfg "server/conf/Guide"
|
||||||
|
"server/game/mod/item"
|
||||||
|
"server/msg"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Guide struct {
|
||||||
|
Guide int
|
||||||
|
GuideOrder bool
|
||||||
|
Reward map[int]int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Guide) InitData() {
|
||||||
|
g.Reward = make(map[int]int)
|
||||||
|
if g.Reward == nil {
|
||||||
|
g.Reward = make(map[int]int)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Guide) GetReward(Id int) ([]*item.Item, error) {
|
||||||
|
Items, Num := GuideCfg.GetGuideReward(Id)
|
||||||
|
n, ok := g.Reward[Id]
|
||||||
|
if !ok {
|
||||||
|
n = 0
|
||||||
|
}
|
||||||
|
if n >= Num {
|
||||||
|
return nil, fmt.Errorf("Guide GetReward Id:%v has been received", Id)
|
||||||
|
}
|
||||||
|
g.Reward[Id]++
|
||||||
|
return Items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Guide) BackData() *msg.ResGuideInfo {
|
||||||
|
return &msg.ResGuideInfo{
|
||||||
|
Reward: GoUtil.MapIntToInt32(g.Reward),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Guide) GetGuide() int {
|
||||||
|
return g.Guide
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Guide) SetGuide(guide int) {
|
||||||
|
g.Guide = guide
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Guide) GetGuideOrder() bool {
|
||||||
|
return g.GuideOrder
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Guide) SetGuideOrder(guideOrder bool) {
|
||||||
|
g.GuideOrder = guideOrder
|
||||||
|
}
|
||||||
@ -1,40 +0,0 @@
|
|||||||
package guild
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"server/GoUtil"
|
|
||||||
guildCfg "server/conf/guild"
|
|
||||||
"server/game/mod/item"
|
|
||||||
"server/msg"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Guild struct {
|
|
||||||
Guild int
|
|
||||||
Reward map[int]int
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g *Guild) InitData() {
|
|
||||||
g.Reward = make(map[int]int)
|
|
||||||
if g.Reward == nil {
|
|
||||||
g.Reward = make(map[int]int)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g *Guild) GetReward(Id int) ([]*item.Item, error) {
|
|
||||||
Items, Num := guildCfg.GetGuildReward(Id)
|
|
||||||
n, ok := g.Reward[Id]
|
|
||||||
if !ok {
|
|
||||||
n = 0
|
|
||||||
}
|
|
||||||
if n >= Num {
|
|
||||||
return nil, fmt.Errorf("Guild GetReward Id:%v has been received", Id)
|
|
||||||
}
|
|
||||||
g.Reward[Id]++
|
|
||||||
return Items, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g *Guild) BackData() *msg.ResGuildInfo {
|
|
||||||
return &msg.ResGuildInfo{
|
|
||||||
Reward: GoUtil.MapIntToInt32(g.Reward),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -37,19 +37,19 @@ type Order struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
Common_type = 1 // 普通订单
|
Common_type = 1 // 普通订单
|
||||||
Extra_type = 2 // 额外订单
|
Extra_type = 2 // 额外订单
|
||||||
Super_type = 3 // 超级订单
|
Super_type = 3 // 超级订单
|
||||||
Preheat_type = 4 // 预热订单
|
Preheat_type = 4 // 预热订单
|
||||||
Trigger_type = 5 // 触发订单
|
Trigger_type = 5 // 触发订单
|
||||||
Clean_type = 6 // 退役发射器清理订单
|
Clean_type = 6 // 退役发射器清理订单
|
||||||
Clean_Order_type = 7 // 清理无法生成订单的棋子
|
Clean_Order_type = 7 // 清理无法生成订单的棋子
|
||||||
Clean_type2 = 8 // 棋盘空格不足清理棋子的订单
|
Clean_type2 = 8 // 棋盘空格不足清理棋子的订单
|
||||||
COMFORT_TYPE = 9 // 安慰订单
|
COMFORT_TYPE = 9 // 安慰订单
|
||||||
|
Guide_type = 10 // 引导订单
|
||||||
DIFF_LOW = 1 // 低难度
|
DIFF_LOW = 1 // 低难度
|
||||||
DIFF_MID = 2 // 中难度
|
DIFF_MID = 2 // 中难度
|
||||||
DIFF_HIGH = 3 // 高难度
|
DIFF_HIGH = 3 // 高难度
|
||||||
)
|
)
|
||||||
|
|
||||||
func (o *OrderMod) InitData() {
|
func (o *OrderMod) InitData() {
|
||||||
@ -104,6 +104,9 @@ func (o *OrderMod) RewardOrder(id int) ([]*item.Item, []int, int, int, error) {
|
|||||||
} else {
|
} else {
|
||||||
ItemList = append(ItemList, &item.Item{Id: item.ITEM_STAR_ID, Num: Star})
|
ItemList = append(ItemList, &item.Item{Id: item.ITEM_STAR_ID, Num: Star})
|
||||||
}
|
}
|
||||||
|
if v.Type == Guide_type {
|
||||||
|
return nil, []int{}, v.Type, 0, nil
|
||||||
|
}
|
||||||
return ItemList, v.MergeId, v.Type, Star, nil
|
return ItemList, v.MergeId, v.Type, Star, nil
|
||||||
}
|
}
|
||||||
return ItemList, MergeList, 0, 0, fmt.Errorf("订单不存在, 订单id%d", id)
|
return ItemList, MergeList, 0, 0, fmt.Errorf("订单不存在, 订单id%d", id)
|
||||||
@ -491,6 +494,19 @@ func (o *OrderMod) addOrder(ChessList []int, Diff int, Type int) {
|
|||||||
o.LastDiff = Diff
|
o.LastDiff = Diff
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o *OrderMod) GuideTriggerOrder(ChessList []int) bool {
|
||||||
|
//rand := map[int]int{1: 10, 2: 10, 21: 10, 22: 10, 41: 10, 42: 10}
|
||||||
|
C := []int{1, 2, 21, 22, 41, 42}
|
||||||
|
for _, v := range C {
|
||||||
|
if GoUtil.InArray(v, ChessList) {
|
||||||
|
o.addOrder([]int{v}, DIFF_LOW, Guide_type)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
o.addOrder([]int{1}, DIFF_LOW, Guide_type)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
func (o *OrderMod) CreateCleanOrder(ChessList []int) bool {
|
func (o *OrderMod) CreateCleanOrder(ChessList []int) bool {
|
||||||
o.addOrder(ChessList, DIFF_LOW, Clean_type)
|
o.addOrder(ChessList, DIFF_LOW, Clean_type)
|
||||||
return true
|
return true
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user