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