Merge branch 'develop' into sdk
This commit is contained in:
commit
9a332a845c
@ -12,6 +12,7 @@ import (
|
||||
|
||||
const (
|
||||
FEISHU_WEBHOOK = "https://gadmin.bywaystudios.com/api/feishu/notify"
|
||||
FEISHU_ORDER = "https://gadmin.bywaystudios.com/api/feishu/notify/order"
|
||||
)
|
||||
|
||||
// AAqFpbuPhFSEx
|
||||
@ -55,6 +56,46 @@ func SendFeishuFatal(PlayerId int, FuncName string, msg string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func SendFeishuOrder(PlayerId int, OrderId string, Price float64, ProductName string, PayTime, VerityTime int64) error {
|
||||
// 创建请求体
|
||||
|
||||
payload := map[string]interface{}{
|
||||
"UID": PlayerId,
|
||||
"OrderId": OrderId,
|
||||
"Product": String(Price),
|
||||
"ProductName": ProductName,
|
||||
"EventRecovery": time.Unix(PayTime, 0).Format("2006-01-02 15:04:05"),
|
||||
"EventAge": time.Unix(VerityTime, 0).Format("2006-01-02 15:04:05"),
|
||||
}
|
||||
|
||||
payloadBytes, err := json.Marshal(payload)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 创建HTTP请求
|
||||
req, err := http.NewRequest("POST", FEISHU_ORDER, bytes.NewBuffer(payloadBytes))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
|
||||
// 发送请求
|
||||
client := &http.Client{}
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// 检查响应状态码
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return fmt.Errorf("failed to send message, status code: %d", resp.StatusCode)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func SendFeishuMsg2(msg string) error {
|
||||
// 创建请求体
|
||||
payload := map[string]interface{}{
|
||||
|
||||
@ -7,7 +7,7 @@ import (
|
||||
|
||||
func RandMap(d map[int]int) int {
|
||||
if len(d) == 0 {
|
||||
return -1
|
||||
return 0
|
||||
}
|
||||
total := 0
|
||||
for _, v := range d {
|
||||
@ -26,7 +26,7 @@ func RandMap(d map[int]int) int {
|
||||
}
|
||||
|
||||
// 如果没有找到,返回一个默认值
|
||||
return -1
|
||||
return 0
|
||||
}
|
||||
|
||||
func RandStringMap(d map[string]int) string {
|
||||
|
||||
@ -160,6 +160,17 @@ func PopElemSlice(s []int, Id int) ([]int, bool) {
|
||||
return s, false
|
||||
}
|
||||
|
||||
func PopStringElemSlice(s0 []string, Id string) ([]string, bool) {
|
||||
s := make([]string, len(s0))
|
||||
copy(s, s0)
|
||||
for k, v := range s {
|
||||
if v == Id {
|
||||
return append(s[0:k], s[k+1:]...), true
|
||||
}
|
||||
}
|
||||
return s, false
|
||||
}
|
||||
|
||||
func ElemInSlice(s []int, Id int) bool {
|
||||
for _, v := range s {
|
||||
if v == Id {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package GuideTaskCfg
|
||||
|
||||
import (
|
||||
"server/GoUtil"
|
||||
"server/game/mod/item"
|
||||
"server/gamedata"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
@ -42,6 +43,13 @@ func GetTaskActive(Id int) int {
|
||||
}
|
||||
return gamedata.GetIntValue(data, "Active")
|
||||
}
|
||||
func GetUnlock(Id int) int {
|
||||
data, err := gamedata.GetDataByIntKey(GUIDE_TASK_TASK, Id)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
return gamedata.GetIntValue(data, "Unlock")
|
||||
}
|
||||
|
||||
func GetActiveReward(Id int) ([]*item.Item, int) {
|
||||
data, err := gamedata.GetDataByIntKey(GUIDE_TASK_ACTIVE, Id)
|
||||
@ -50,6 +58,23 @@ func GetActiveReward(Id int) ([]*item.Item, int) {
|
||||
}
|
||||
return gamedata.GetItemList(data, "Items"), gamedata.GetIntValue(data, "Active")
|
||||
}
|
||||
func GetActiveReward2(reward []int, Active int) []*item.Item {
|
||||
data, err := gamedata.GetData(GUIDE_TASK_ACTIVE)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
for k, v := range data {
|
||||
active := gamedata.GetIntValue(v, "Active")
|
||||
if active < Active {
|
||||
continue
|
||||
}
|
||||
if GoUtil.InArray(GoUtil.Int(k), reward) {
|
||||
continue
|
||||
}
|
||||
return gamedata.GetItemList(v, "Items")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetUnlockLv() int {
|
||||
data, err := gamedata.GetDataByKey(GUIDE_TASK_CONST, "UnlockLv")
|
||||
|
||||
@ -194,6 +194,21 @@ func GetEmitRetire(Id string) int {
|
||||
return gamedata.GetIntValue(data, "Retire")
|
||||
}
|
||||
|
||||
func GetEmitProductNumByColor(Id string) int {
|
||||
data, err := gamedata.GetData(CFG_MERGE_EMIT)
|
||||
if err != nil {
|
||||
log.Debug("GetEmitProductNumByColor GetOne Id:%v not found", Id)
|
||||
return 0
|
||||
}
|
||||
for _, v := range data {
|
||||
ColorList := strings.Split(gamedata.GetStringValue(v, "Product_Type"), ",")
|
||||
if GoUtil.InStringArray(Id, ColorList) {
|
||||
return len(strings.Split(gamedata.GetStringValue(v, "Product_Type"), ","))
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// 根据Id获取棋子类型
|
||||
func GetTypeById(Id int) string {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_NAME, Id)
|
||||
@ -377,7 +392,29 @@ func GetHighSourceChestItem() []*item.Item {
|
||||
r = append(r, item.NewItem(item.ITEM_ENERGY_ID, B4))
|
||||
return r
|
||||
}
|
||||
|
||||
func DynamicLevRev(Lv int, EmitId int, Color string) int {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId)
|
||||
if err != nil {
|
||||
log.Debug("DynamicLev GetOne EmitId:%v not found", EmitId)
|
||||
return Lv
|
||||
}
|
||||
DynamicLv := gamedata.GetStringValue(data, "Dynamic")
|
||||
if DynamicLv == "" {
|
||||
return Lv
|
||||
}
|
||||
Arr := strings.Split(DynamicLv, ",")
|
||||
for _, v := range Arr {
|
||||
Arr2 := strings.Split(v, "=")
|
||||
if len(Arr2) != 2 {
|
||||
continue
|
||||
}
|
||||
if Color == Arr2[0] {
|
||||
NewLv, _ := strconv.Atoi(Arr2[1])
|
||||
return Lv + NewLv
|
||||
}
|
||||
}
|
||||
return Lv
|
||||
}
|
||||
func DynamicLev(Lv int, EmitId int, Color string) int {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId)
|
||||
if err != nil {
|
||||
|
||||
@ -13,6 +13,7 @@ const (
|
||||
CFG_START_ORDER = "StartOrder"
|
||||
CFG_CONST = "OrderConst"
|
||||
CFG_ORDER_SCENE = "OrderScene"
|
||||
CFG_ORDER_K = "OrderK"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -22,6 +23,18 @@ func init() {
|
||||
gamedata.InitCfg(CFG_START_ORDER)
|
||||
gamedata.InitCfg(CFG_CONST)
|
||||
gamedata.InitCfg(CFG_ORDER_SCENE)
|
||||
gamedata.InitCfg(CFG_ORDER_K)
|
||||
}
|
||||
|
||||
func GetOrderK(Lv int) int {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_ORDER_K, Lv)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
Energy := gamedata.GetIntValue(data, "Energy")
|
||||
K := gamedata.GetFloatValue(data, "K")
|
||||
a := float64(Energy)*K/10 + 0.5
|
||||
return int(a) * 10
|
||||
}
|
||||
|
||||
func GetOrderFactor(Scene int) int {
|
||||
@ -81,6 +94,14 @@ func GetOrderNum(Level int) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func GetStartOrderInfo(Id int) (int, int) {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_START_ORDER, Id)
|
||||
if err != nil {
|
||||
return -1, -1
|
||||
}
|
||||
return gamedata.GetIntValue(data, "group"), gamedata.GetIntValue(data, "step")
|
||||
}
|
||||
|
||||
func GetStartOrderList() []*gamedata.StartOrderData {
|
||||
ret := make([]*gamedata.StartOrderData, 0)
|
||||
data, err := gamedata.GetData(CFG_START_ORDER)
|
||||
@ -95,6 +116,8 @@ func GetStartOrderList() []*gamedata.StartOrderData {
|
||||
Appear: gamedata.GetStringValue(v, "appear"),
|
||||
Preview: gamedata.GetStringValue(v, "preview"),
|
||||
Items: gamedata.GetItemList(v, "reward"),
|
||||
Group: gamedata.GetIntValue(v, "group"),
|
||||
Step: gamedata.GetIntValue(v, "step"),
|
||||
})
|
||||
}
|
||||
sort.Slice(ret, func(i, j int) bool {
|
||||
|
||||
@ -65,6 +65,38 @@ func GetLevUpExp(lv int) (int, int) {
|
||||
return gamedata.GetIntValue(data, "Exp"), gamedata.GetIntValue(data, "PExp")
|
||||
}
|
||||
|
||||
func GetNewLevUpExp(lv int, Exp int, PetExt int) (int, int) {
|
||||
ExpLv := lv
|
||||
PetLv := lv
|
||||
for {
|
||||
data1, err := gamedata.GetDataByIntKey(CFG_NAME, ExpLv)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
ExpNeed := gamedata.GetIntValue(data1, "Exp")
|
||||
if Exp >= ExpNeed {
|
||||
Exp -= ExpNeed
|
||||
ExpLv++
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
for {
|
||||
data2, err := gamedata.GetDataByIntKey(CFG_NAME, PetLv)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
PetNeed := gamedata.GetIntValue(data2, "PExp")
|
||||
if PetExt >= PetNeed {
|
||||
PetExt -= PetNeed
|
||||
PetLv++
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
return ExpLv, PetLv
|
||||
}
|
||||
|
||||
// 获取能量回复时间
|
||||
func GetRecover(lv int) int {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_NAME, lv)
|
||||
|
||||
@ -196,7 +196,7 @@ func ReqGmCommand_(player *Player, Command string) error {
|
||||
EnergyMul := player.PlayMod.getBaseMod().GetEnergyMul()
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
OrderMod.LastOrder.Type = 1
|
||||
OrderMod.CreateOrder(Lv, EmitList, EnergyMul)
|
||||
OrderMod.CreateOrder(Lv, EmitList, EnergyMul, order.Common_type)
|
||||
player.PushClientRes(player.PlayMod.getOrderMod().BackData())
|
||||
case "resetCardReq":
|
||||
CardMod := player.PlayMod.getCardMod()
|
||||
|
||||
@ -279,6 +279,8 @@ func (p *Player) InitPlayer(UserName string) error {
|
||||
ChargeMod := p.PlayMod.getChargeMod()
|
||||
ChessMod := p.PlayMod.getChessMod()
|
||||
ChargeMod.FixBug(ChessMod.GetEmitList())
|
||||
p.FixOrderBug()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@ -537,9 +537,12 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int, pexp int) (int, error)
|
||||
player.TeLog("level_up", map[string]interface{}{
|
||||
"after_level": BaseMod.Level,
|
||||
})
|
||||
NewExpLv, NewPetLv := userCfg.GetNewLevUpExp(BaseMod.Level, BaseMod.Exp, BaseMod.PExp)
|
||||
player.TeLog("property_level_up", map[string]interface{}{
|
||||
"property_level": BaseMod.Level,
|
||||
"property_level_reward": userCfg.GetUnlock(int(BaseMod.Level)),
|
||||
"story_level": NewExpLv,
|
||||
"pet_level": NewPetLv,
|
||||
})
|
||||
player.HandleInUserRank()
|
||||
}
|
||||
@ -550,6 +553,7 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int, pexp int) (int, error)
|
||||
}
|
||||
}
|
||||
EmitRetireTrigger2(player)
|
||||
player.InitOrderItem()
|
||||
player.PushClientRes(p.BackAsset())
|
||||
return upLv, nil
|
||||
}
|
||||
|
||||
@ -105,6 +105,7 @@ func (p *PlayerChessData) UpdatePlayerChessData(player *Player, buf []byte) erro
|
||||
ChessMod.ChessMap = update.MChessData
|
||||
Update := OrderMod.CreateExtraOrder(AddChessList, AddNewEmit, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel())
|
||||
if Update {
|
||||
player.InitOrderItem()
|
||||
player.PushClientRes(OrderMod.BackData())
|
||||
}
|
||||
return nil
|
||||
@ -283,6 +284,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa
|
||||
}
|
||||
player.QuestTriggerList(TriggerList)
|
||||
EmitRetireTrigger1(player)
|
||||
player.InitOrderItem()
|
||||
player.PushClientRes(ChessMod.BackData())
|
||||
player.PlayMod.save()
|
||||
return AddChessList, AddNewEmit, nil
|
||||
@ -313,18 +315,22 @@ func checkChess(ChessId, EnergyMul int, Emit []int) bool {
|
||||
break
|
||||
}
|
||||
}
|
||||
_, Max := getChesslvRange(EmitId, EnergyMul)
|
||||
_, Max := getChesslvRange(EmitId, EnergyMul, false)
|
||||
Adjust := mergeDataCfg.GetAdjust(EmitId, ChessIdColor)
|
||||
return ChessIdLv > Max-Adjust
|
||||
}
|
||||
|
||||
func getChesslvRange(Emit int, EnergyMul int) (int, int) {
|
||||
func getChesslvRange(Emit int, EnergyMul int, IsCharge bool) (int, int) {
|
||||
RandEmitLv := mergeDataCfg.GetLvById(Emit)
|
||||
EmitId := mergeDataCfg.GetEmitId(Emit)
|
||||
RandMaxLv := mergeDataCfg.GetMaxLvById(Emit)
|
||||
RandEmitMinLv := mergeDataCfg.GetEmitMinLvById(EmitId)
|
||||
Ratio := mergeDataCfg.GetEmitRatio(EmitId)
|
||||
m := int(float64(1+RandEmitLv-RandEmitMinLv) / float64(1+RandMaxLv-RandEmitMinLv) / Ratio * 100)
|
||||
if IsCharge {
|
||||
m += 10
|
||||
}
|
||||
m = max(1, m)
|
||||
m = min(100, m)
|
||||
ChessMinLev := orderCfg.GetLvMin(EnergyMul)
|
||||
ChessMaxLev := orderCfg.GetLvMax(EnergyMul, m)
|
||||
return ChessMinLev, ChessMaxLev
|
||||
|
||||
@ -75,7 +75,7 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
PlayroomBackData(p)
|
||||
p.TeLog("friend_add", map[string]interface{}{
|
||||
"player_id": m.From,
|
||||
"add_type": "invite add friend",
|
||||
"add_type": "发起申请",
|
||||
})
|
||||
p.PlayMod.save()
|
||||
case msg.HANDLE_TYPE_INVITE_FRIEND: // 邀请好友
|
||||
@ -103,7 +103,10 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
p.PushClientRes(CardMod.NotifyCard())
|
||||
p.PushClientRes(CardMod.NotifyTimes())
|
||||
case msg.HANDLE_TYPE_EX_CARD_TIMEOUT: // B收到A同意置换卡牌超时
|
||||
CardInfo := m.Extra.(card.CardInfo)
|
||||
CardInfo, ok := m.Extra.(card.CardInfo)
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
p.AddCard(CardInfo.ExId)
|
||||
p.PushClientRes(CardMod.NotifyCard())
|
||||
@ -209,7 +212,7 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
Extra := m.Extra.([]int)
|
||||
p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CHAMPSHIP, fmt.Sprintf("%d_%d", Extra[0], Extra[1]), m.SendT)
|
||||
case msg.HANDLE_TYPE_TREASURE_RESULT: // # 好友宝藏结果
|
||||
p.AddLog(m.From, friend.LOG_TYPE_TREASURE, fmt.Sprintf("%d", m.Extra.(int)), m.SendT)
|
||||
//p.AddLog(m.From, friend.LOG_TYPE_TREASURE, fmt.Sprintf("%d", m.Extra.(int)), m.SendT)
|
||||
case msg.HANDLE_TYPE_MAIL: // 邮件操作
|
||||
SyncMailMsg(p)
|
||||
case msg.HANDLE_TYPE_PLAYROOM_LOSE: // # 玩家输了
|
||||
@ -264,9 +267,16 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
if m.Extra != nil {
|
||||
Items = m.Extra.([]*item.Item)
|
||||
}
|
||||
p.AddLog(m.From, friend.LOG_TYPE_TREASURE_HELP, "", m.SendT)
|
||||
p.HandleItem(Items, proto.ITEM_POP_LABEL_Friendtreasure.String())
|
||||
case msg.HANDLE_TYPE_HANDBOOK_COLLECTION: // 图鉴收集奖励
|
||||
data := m.Extra.(msg.HandbookMsg)
|
||||
if m.Extra != nil {
|
||||
return nil
|
||||
}
|
||||
data, ok := m.Extra.(msg.HandbookMsg)
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK, data.Type, m.SendT)
|
||||
case msg.HANDLE_TYPE_HANDBOOK_UPVOTE: // 图鉴点赞
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
@ -402,7 +412,7 @@ func HandleFriendMsg(p *Player, m *msg.Msg) error {
|
||||
PlayroomBackData(p)
|
||||
p.TeLog("friend_add", map[string]interface{}{
|
||||
"player_id": m.From,
|
||||
"add_type": "agree",
|
||||
"add_type": "接受申请",
|
||||
})
|
||||
p.AddLog(m.From, friend.LOG_TYPE_FRIEND_BECOME, "", m.SendT)
|
||||
case msg.HANDLE_TYPE_DEL: // 删除好友
|
||||
@ -881,7 +891,7 @@ func EmitRetireTrigger2(p *Player) {
|
||||
}
|
||||
|
||||
NeedFinishOrder := false
|
||||
Produce := mergeDataCfg.GetEmitProduce(k)
|
||||
Produce := mergeDataCfg.GetEmitOrderProduce(k)
|
||||
for _, v1 := range Produce {
|
||||
if _, ok := AllChess[v1]; ok {
|
||||
NeedFinishOrder = true
|
||||
@ -988,7 +998,131 @@ func (player *Player) GetPetOrderItemExp() int {
|
||||
return playroomCfg.GetPetOrderItemExpByList(itemList)
|
||||
}
|
||||
|
||||
func (player *Player) FormatOrderReward() {
|
||||
// 触发生成新的固定订单
|
||||
func (player *Player) TriggerOrder(lv int, Type string, Emit []int, EnergyMul int) error {
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
TriggerOrderList := orderCfg.GetStartOrderList()
|
||||
FixedOrder := 0
|
||||
for _, v := range OrderMod.OrderList {
|
||||
if v.Type == order.Fixed_type {
|
||||
FixedOrder++
|
||||
}
|
||||
}
|
||||
OrderList := make(map[int]order.Order, len(OrderMod.OrderList))
|
||||
for k, v := range OrderMod.OrderList {
|
||||
OrderList[k] = v
|
||||
}
|
||||
// 触发生成新的固定订单
|
||||
for _, v := range TriggerOrderList {
|
||||
if GoUtil.InArray(v.Id, OrderMod.FinishOrder) {
|
||||
continue
|
||||
}
|
||||
orderInfo, exists := OrderList[v.Id]
|
||||
if exists && v.Preview == "" {
|
||||
continue
|
||||
}
|
||||
// 预览条件不为空且未存在且未完成
|
||||
if v.Preview != "" && !exists && !GoUtil.InArray(v.Id, OrderMod.FinishOrder) {
|
||||
if OrderMod.CheckCondition(lv, v.Preview, Type, Emit, FixedOrder, OrderList) {
|
||||
OrderMod.AddFixOrder(v.Id, v.MergeList, order.Preview_type, v.Items)
|
||||
player.TeLog("preset_order_birth", map[string]interface{}{
|
||||
"order_id": v.Id,
|
||||
"order_item_id": v.MergeList,
|
||||
"preset_order_group": v.Group,
|
||||
"preset_order_step": v.Step,
|
||||
})
|
||||
}
|
||||
}
|
||||
if v.Appear != "" {
|
||||
if OrderMod.CheckCondition(lv, v.Appear, Type, Emit, FixedOrder, OrderList) {
|
||||
Type := order.Fixed_type
|
||||
OrderType := orderCfg.GetOrderType(v.Id)
|
||||
if OrderType != 0 {
|
||||
Type = OrderType
|
||||
}
|
||||
if exists {
|
||||
orderInfo.Type = order.Fixed_type
|
||||
OrderMod.OrderList[v.Id] = orderInfo
|
||||
} else {
|
||||
OrderMod.AddFixOrder(v.Id, v.MergeList, Type, v.Items)
|
||||
if v.Id == 78 {
|
||||
OrderMod.Retire("D")
|
||||
OrderMod.AutoEmit = append(OrderMod.AutoEmit, "D")
|
||||
}
|
||||
if v.Id == 79 {
|
||||
OrderMod.Retire("I")
|
||||
OrderMod.AutoEmit = append(OrderMod.AutoEmit, "I")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (player *Player) AddOrder() {
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
MaxOrderNum := orderCfg.GetOrderNum(BaseMod.GetLevel())
|
||||
n := 0
|
||||
if OrderMod.LastOrder.Type == order.Preheat_type {
|
||||
ChessId := OrderMod.LastOrder.MergeId[0]
|
||||
ChessColor := mergeDataCfg.GetColorById(ChessId)
|
||||
PreheatStep := OrderMod.PreheatStep[ChessColor]
|
||||
OrderMod.PreheatStep[ChessColor]++
|
||||
if PreheatStep < 4 {
|
||||
NewChessId := mergeDataCfg.GetChessIdByLvAndColor(BaseMod.GetEnergyMul()+PreheatStep+1, ChessColor)
|
||||
Items, ok := order.PreheatItems[OrderMod.PreheatStep[ChessColor]]
|
||||
if !ok {
|
||||
Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{NewChessId}, ChessMod.GetOrderEmit()))}
|
||||
}
|
||||
OrderMod.AddPreheatOrder([]int{NewChessId}, order.DIFF_LOW, order.Preheat_type, Items)
|
||||
}
|
||||
}
|
||||
for _, v := range OrderMod.OrderList {
|
||||
if v.Type == order.Common_type || v.Type == order.Pet_type || v.Type == order.Part_type || v.Type == order.Fixed_type || v.Type == order.Preview_type {
|
||||
n++
|
||||
}
|
||||
}
|
||||
for i := n; i < MaxOrderNum; i++ {
|
||||
player.CreateNormalOrder()
|
||||
}
|
||||
}
|
||||
|
||||
func (player *Player) FixOrderBug() {
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
for k, v := range OrderMod.PreheatStep {
|
||||
if v > 4 {
|
||||
continue
|
||||
}
|
||||
Exit := false
|
||||
for _, o := range OrderMod.OrderList {
|
||||
if o.Type != order.Preheat_type {
|
||||
continue
|
||||
}
|
||||
Color := mergeDataCfg.GetColorById(o.MergeId[0])
|
||||
if Color == k {
|
||||
Exit = true
|
||||
break
|
||||
}
|
||||
|
||||
}
|
||||
if Exit {
|
||||
continue
|
||||
}
|
||||
NewChessId := mergeDataCfg.GetChessIdByLvAndColor(BaseMod.GetEnergyMul()+v+1, k)
|
||||
OrderMod.PreheatStep[k]++
|
||||
Items, ok := order.PreheatItems[OrderMod.PreheatStep[k]]
|
||||
if !ok {
|
||||
Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{NewChessId}, ChessMod.GetOrderEmit()))}
|
||||
}
|
||||
OrderMod.AddPreheatOrder([]int{NewChessId}, order.DIFF_LOW, order.Preheat_type, Items)
|
||||
}
|
||||
}
|
||||
|
||||
func (player *Player) CreateNormalOrder() {
|
||||
Exp, PExp := userCfg.GetLevUpExp(player.GetPlayerBaseMod().GetLevel())
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
DecorateMod := player.PlayMod.getDecorateMod()
|
||||
@ -997,33 +1131,47 @@ func (player *Player) FormatOrderReward() {
|
||||
ExpCoin := (Exp-BaseMod.GetExp())*decorateCfg.GetAreaPerPExp(DecorateMod.GetAreaId()) - BaseMod.GetStar()
|
||||
PExpCoin := (PExp-BaseMod.GetPExp())*50 - player.GetPetOrderItemExp()
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
if ExpCoin > PExpCoin || BaseMod.GetLevel() < 17 {
|
||||
|
||||
// 预热订单
|
||||
|
||||
// 安慰订单
|
||||
Now := GoUtil.Now()
|
||||
if OrderMod.LastOrder.Type == order.COMFORT_TYPE && Now < int64(OrderMod.ComfortEndTime) {
|
||||
OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.COMFORT_TYPE)
|
||||
for k, v := range OrderMod.GetOrderList() {
|
||||
if len(v.Items) != 0 {
|
||||
continue
|
||||
}
|
||||
if v.Type != order.Common_type {
|
||||
continue
|
||||
}
|
||||
Star := order.GetOrderStar(v.MergeId)
|
||||
Star = int(float64(Star)*float64(OrderFactor)/10) * 10
|
||||
v.Items = append(v.Items, &item.Item{
|
||||
Id: item.ITEM_STAR_ID,
|
||||
Num: Star,
|
||||
})
|
||||
OrderMod.OrderList[k] = v
|
||||
}
|
||||
} else {
|
||||
for k, v := range OrderMod.GetOrderList() {
|
||||
if len(v.Items) != 0 {
|
||||
continue
|
||||
}
|
||||
if v.Type != order.Common_type {
|
||||
if k == OrderMod.Auto_id {
|
||||
if v.Type != order.COMFORT_TYPE {
|
||||
continue
|
||||
}
|
||||
Items := make([]*item.Item, 0)
|
||||
Star := order.GetOrderStar(v.MergeId)
|
||||
Star = int(float64(Star)*float64(OrderFactor)/10) * 10
|
||||
Star := order.GetOrderStar(v.MergeId, ChessMod.GetOrderEmit())
|
||||
Star = int(float64(Star)*float64(OrderFactor)/1000) * 10
|
||||
v.Items = append(Items, &item.Item{Id: item.ITEM_STAR_ID, Num: Star})
|
||||
OrderMod.OrderList[k] = v
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
PetTrigger := true
|
||||
for _, v := range OrderMod.GetOrderList() {
|
||||
if v.Type == order.Pet_type {
|
||||
PetTrigger = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if PExpCoin > ExpCoin && PetTrigger && BaseMod.GetLevel() >= 17 {
|
||||
OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type)
|
||||
for k, v := range OrderMod.GetOrderList() {
|
||||
if len(v.Items) != 0 {
|
||||
continue
|
||||
}
|
||||
if v.Type != order.Pet_type {
|
||||
continue
|
||||
}
|
||||
Items := make([]*item.Item, 0)
|
||||
Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList())
|
||||
Star = int(float64(Star)*float64(OrderFactor)/1000) * 10
|
||||
Items = player.GetPetOrderReward(Star, Items)
|
||||
if len(Items) == 1 && Items[0].Id == item.ITEM_STAR_ID {
|
||||
v.Type = order.Common_type
|
||||
@ -1033,7 +1181,45 @@ func (player *Player) FormatOrderReward() {
|
||||
v.Items = Items
|
||||
OrderMod.OrderList[k] = v
|
||||
}
|
||||
return
|
||||
}
|
||||
// if ExpCoin > PExpCoin || BaseMod.GetLevel() < 17 {
|
||||
// for k, v := range OrderMod.GetOrderList() {
|
||||
// if len(v.Items) != 0 {
|
||||
// continue
|
||||
// }
|
||||
// if v.Type != order.Common_type {
|
||||
// continue
|
||||
// }
|
||||
// Star := order.GetOrderStar(v.MergeId)
|
||||
// Star = int(float64(Star)*float64(OrderFactor)/10) * 10
|
||||
// v.Items = append(v.Items, &item.Item{
|
||||
// Id: item.ITEM_STAR_ID,
|
||||
// Num: Star,
|
||||
// })
|
||||
// OrderMod.OrderList[k] = v
|
||||
// }
|
||||
// } else {
|
||||
// for k, v := range OrderMod.GetOrderList() {
|
||||
// if len(v.Items) != 0 {
|
||||
// continue
|
||||
// }
|
||||
// if v.Type != order.Common_type {
|
||||
// continue
|
||||
// }
|
||||
// Items := make([]*item.Item, 0)
|
||||
// Star := order.GetOrderStar(v.MergeId)
|
||||
// Star = int(float64(Star)*float64(OrderFactor)/10) * 10
|
||||
// Items = player.GetPetOrderReward(Star, Items)
|
||||
// if len(Items) == 1 && Items[0].Id == item.ITEM_STAR_ID {
|
||||
// v.Type = order.Common_type
|
||||
// } else {
|
||||
// v.Type = order.Pet_type
|
||||
// }
|
||||
// v.Items = Items
|
||||
// OrderMod.OrderList[k] = v
|
||||
// }
|
||||
// }
|
||||
|
||||
// 触发式订单 满足条件生成零件订单
|
||||
PartCost := DecorateMod.GetPartCost()
|
||||
@ -1050,22 +1236,38 @@ func (player *Player) FormatOrderReward() {
|
||||
Trigger2 = true
|
||||
}
|
||||
}
|
||||
if Trigger && Trigger2 {
|
||||
if Trigger && Trigger2 && BaseMod.GetLevel() >= 12 {
|
||||
OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Part_type)
|
||||
for k, v := range OrderMod.GetOrderList() {
|
||||
if v.Type != order.Common_type && v.Type != order.Pet_type {
|
||||
continue
|
||||
}
|
||||
if v.Diff == order.DIFF_LOW {
|
||||
continue
|
||||
}
|
||||
if v.Type == order.Part_type {
|
||||
v.Items = []*item.Item{item.NewItem(item.ITEM_LAUNCHER_ID, 2)}
|
||||
v.Type = order.Part_type
|
||||
OrderMod.OrderList[k] = v
|
||||
break
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Common_type)
|
||||
|
||||
}
|
||||
func (player *Player) InitOrderItem() {
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
DecorateMod := player.PlayMod.getDecorateMod()
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
OrderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId())
|
||||
for k, v := range OrderMod.GetOrderList() {
|
||||
if v.Type == order.Super_type {
|
||||
continue
|
||||
}
|
||||
if len(v.Items) != 0 {
|
||||
continue
|
||||
}
|
||||
Items := make([]*item.Item, 0)
|
||||
Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList())
|
||||
Star = int(float64(Star)*float64(OrderFactor)/1000+0.5) * 10
|
||||
v.Items = append(Items, &item.Item{Id: item.ITEM_STAR_ID, Num: Star})
|
||||
OrderMod.OrderList[k] = v
|
||||
}
|
||||
}
|
||||
func (player *Player) GetPetOrderReward(Star int, Items []*item.Item) []*item.Item {
|
||||
OrderItem := playroomCfg.GetOrderItem(Star)
|
||||
type sortData struct {
|
||||
@ -1194,3 +1396,98 @@ func (p *Player) GetPetThiefReward(Target int) error {
|
||||
p.HandleItem([]*item.Item{{Id: ItemId, Num: 1}}, proto.ITEM_POP_LABEL_PetTheif.String())
|
||||
return nil
|
||||
}
|
||||
|
||||
// 高级产物订单
|
||||
func (p *Player) AddHighOrder() {
|
||||
OrderMod := p.PlayMod.getOrderMod()
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
ChessMod := p.PlayMod.getChessMod()
|
||||
LastChess := OrderMod.LastOrder.MergeId[len(OrderMod.LastOrder.MergeId)-1]
|
||||
maxId := 0
|
||||
for k := range OrderMod.GetOrderList() {
|
||||
maxId = max(maxId, k)
|
||||
}
|
||||
if maxId == 0 || BaseMod.GetLevel() < 12 {
|
||||
return
|
||||
}
|
||||
NewChess := OrderMod.GetOrderList()[maxId].MergeId[0]
|
||||
LastColor := mergeDataCfg.GetColorById(LastChess)
|
||||
NewColor := mergeDataCfg.GetColorById(NewChess)
|
||||
LastEmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), LastColor)
|
||||
AddNewEmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), NewColor)
|
||||
Product := []string{}
|
||||
Product = append(Product, mergeDataCfg.GetEmitProduceType(LastEmitId)...)
|
||||
Product = append(Product, mergeDataCfg.GetEmitProduceType(AddNewEmitId)...)
|
||||
ChessMap := make(map[string]int, 0)
|
||||
ChessList := ChessMod.GetUnlockChessList()
|
||||
for _, v := range ChessList {
|
||||
ChessType := mergeDataCfg.GetTypeById(v)
|
||||
if ChessType != "Product" {
|
||||
continue
|
||||
}
|
||||
Color := mergeDataCfg.GetColorById(v)
|
||||
if GoUtil.InStringArray(Color, Product) {
|
||||
continue
|
||||
}
|
||||
if v > ChessMap[Color] {
|
||||
ChessMap[Color] = v
|
||||
}
|
||||
}
|
||||
|
||||
for Color, ChessId := range ChessMap {
|
||||
EmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), Color)
|
||||
_, ChessMaxLv := getChesslvRange(EmitId, BaseMod.GetEnergyMul(), OrderMod.IsCharge)
|
||||
NewLev2 := mergeDataCfg.DynamicLev(ChessMaxLv, EmitId, Color)
|
||||
NewLev3 := order.AdjustLev(NewLev2, BaseMod.GetEnergyMul())
|
||||
ChessLv := mergeDataCfg.GetLvById(ChessId)
|
||||
if NewLev3 >= ChessLv {
|
||||
continue
|
||||
}
|
||||
Add := true
|
||||
for _, v := range OrderMod.GetOrderList() {
|
||||
if GoUtil.InArray(ChessId, v.MergeId) {
|
||||
Add = false
|
||||
}
|
||||
}
|
||||
if Add {
|
||||
OrderMod.AddExtraOrder([]int{ChessId})
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 高级产物订单
|
||||
func (p *Player) AddHighOrder2() {
|
||||
OrderMod := p.PlayMod.getOrderMod()
|
||||
ChessMod := p.PlayMod.getChessMod()
|
||||
ChessList := ChessMod.GetUnlockChessList()
|
||||
ChessMap := make(map[int]int, 0)
|
||||
for _, v := range ChessList {
|
||||
Lv := mergeDataCfg.GetLvById(v)
|
||||
MaxLv := mergeDataCfg.GetMaxLvById(v)
|
||||
if Lv != MaxLv {
|
||||
continue
|
||||
}
|
||||
Type := mergeDataCfg.GetTypeById(v)
|
||||
if Type != "Product" {
|
||||
continue
|
||||
}
|
||||
ChessMap[v]++
|
||||
}
|
||||
for ChessId, Num := range ChessMap {
|
||||
if Num < 3 {
|
||||
continue
|
||||
}
|
||||
add := true
|
||||
for _, v := range OrderMod.GetOrderList() {
|
||||
if GoUtil.SliceEqual(v.MergeId, []int{ChessId, ChessId, ChessId}) {
|
||||
add = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if add {
|
||||
OrderMod.AddExtraOrder([]int{ChessId, ChessId, ChessId})
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,10 +10,12 @@ import (
|
||||
collectCfg "server/conf/collect"
|
||||
decorateCfg "server/conf/decorate"
|
||||
emojiCfg "server/conf/emoji"
|
||||
GuideTaskCfg "server/conf/guideTask"
|
||||
handbookCfg "server/conf/handbook"
|
||||
limitedTimeEventCfg "server/conf/limitedTimeEvent"
|
||||
mergeDataCfg "server/conf/mergeData"
|
||||
miningCfg "server/conf/mining"
|
||||
orderCfg "server/conf/order"
|
||||
playroomCfg "server/conf/playroom"
|
||||
"server/db"
|
||||
"server/game/internal"
|
||||
@ -144,7 +146,8 @@ func RegSetEneryFunc(player *Player, buf []byte) error {
|
||||
Emit := player.PlayMod.getChessMod().GetOrderEmit()
|
||||
ChessList := player.PlayMod.getChessMod().GetUnlockChessList()
|
||||
OrderMod.ChangeEnergyMul(Lv, Emit, int(req.EnergyMul), ChessList)
|
||||
player.FormatOrderReward()
|
||||
player.InitOrderItem()
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(OrderMod.BackData())
|
||||
player.PushClientRes(player.PlayMod.getBaseMod().BackData())
|
||||
return nil
|
||||
@ -338,6 +341,7 @@ func ReqRewardOrder(player *Player, buf []byte) error {
|
||||
if OrderType != order.Preview_type && OrderType != order.Fixed_type {
|
||||
preset_order_group = -1
|
||||
}
|
||||
preset_order_group, preset_order_step := orderCfg.GetStartOrderInfo(int(req.OrderId))
|
||||
player.TeLog("order_finish", map[string]interface{}{
|
||||
"order_id": int(req.OrderId),
|
||||
"order_item_id": mergeList,
|
||||
@ -346,6 +350,7 @@ func ReqRewardOrder(player *Player, buf []byte) error {
|
||||
"order_item_reward": order_item_reward,
|
||||
"order_star_value": Star,
|
||||
"preset_order_group": preset_order_group,
|
||||
"preset_order_step": preset_order_step,
|
||||
})
|
||||
player.PetItemGetLog(Item, nil, "Order")
|
||||
EmitRetireTrigger2(player)
|
||||
@ -360,15 +365,28 @@ func ReqRewardOrder(player *Player, buf []byte) error {
|
||||
// OrderMod.CreateOrderSeed(NewOrder)
|
||||
// }
|
||||
OrderMod.TriggerOrder(Lv, order.TRIGGER_TYPE_ORDER, Emit, EnergyMul)
|
||||
player.FormatOrderReward()
|
||||
player.AddOrder()
|
||||
player.AddHighOrder()
|
||||
player.AddHighOrder2()
|
||||
player.InitOrderItem()
|
||||
// 存钱罐增加钻石
|
||||
PiggyBankMod := player.PlayMod.getPiggyBankMod()
|
||||
PiggyBankMod.Trigger()
|
||||
|
||||
// 锦标赛增加积分
|
||||
if player.GetPlayerBaseMod().GetLevel() >= 17 {
|
||||
ChessList := make([]int, 0)
|
||||
for _, v := range mergeList {
|
||||
color := mergeDataCfg.GetColorById(v)
|
||||
Emit := order.GetEmitByColor(ChessMod.GetStarEmitList(), color)
|
||||
EmitType := mergeDataCfg.GetEmitType(Emit)
|
||||
if EmitType == "auto" {
|
||||
continue
|
||||
}
|
||||
ChessList = append(ChessList, v)
|
||||
}
|
||||
ChampshipMod := player.PlayMod.getChampshipMod()
|
||||
ChampshipMod.AddScore(mergeList)
|
||||
ChampshipMod.AddScore(ChessList)
|
||||
player.HandleInChampshipRank()
|
||||
}
|
||||
FriendTreasureMod := player.PlayMod.getFriendTreasureMod()
|
||||
@ -633,6 +651,7 @@ func ReqGetChessFromBuff(player *Player, buf []byte) error {
|
||||
}
|
||||
triggerComposeChess(player, ChessId, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList())
|
||||
EmitRetireTrigger1(player)
|
||||
player.InitOrderItem()
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(ChessMod.BackData())
|
||||
player.PushClientRes(&msg.ResGetChessFromBuff{
|
||||
@ -743,6 +762,7 @@ func ReqTakeChessOutBag(player *Player, buf []byte) error {
|
||||
"bag_id": req.BagId,
|
||||
"chess_id": ChessId,
|
||||
})
|
||||
player.InitOrderItem()
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(ChessMod.BackData())
|
||||
player.PushClientRes(&msg.ResTakeChessOutBag{
|
||||
@ -1213,7 +1233,7 @@ func ReqGetDailyTaskReward(player *Player, buf []byte) error {
|
||||
"task_id": int(req.Id),
|
||||
"item_list": itemList,
|
||||
"task_type": "daily",
|
||||
"task_score_reward": 0,
|
||||
"task_score_reward": DailyTaskMod.GetWeekReward2(),
|
||||
})
|
||||
return nil
|
||||
}
|
||||
@ -1287,9 +1307,11 @@ func ReqGetGuideTaskReward(player *Player, buf []byte) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.TeLog("ReqGetGuideTaskReward", map[string]interface{}{
|
||||
player.TeLog("new_player_task", map[string]interface{}{
|
||||
"task_id": int(req.Id),
|
||||
"item_list": itemList,
|
||||
"task_gruop": GuideTaskCfg.GetUnlock(int(req.Id)),
|
||||
"task_score_reward": GuideTaskCfg.GetActiveReward2(GuideTaskMod.Reward, GuideTaskMod.Active),
|
||||
})
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(GuideTaskMod.BackData())
|
||||
@ -1702,10 +1724,6 @@ func ReqApplyFriend(player *Player, buf []byte) error {
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
PlayroomMod.AddRoomPointInvite(BaseMod.GetLevel())
|
||||
PlayroomBackData(player)
|
||||
player.TeLog("friend_add", map[string]interface{}{
|
||||
"player_id": Uid,
|
||||
"add_type": "apply",
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -1737,7 +1755,7 @@ func ReqAgreeFriend(player *Player, buf []byte) error {
|
||||
})
|
||||
player.TeLog("friend_add", map[string]interface{}{
|
||||
"player_id": Uid,
|
||||
"add_type": "agree",
|
||||
"add_type": "接受申请",
|
||||
})
|
||||
player.AddLog(Uid, friend.LOG_TYPE_FRIEND_BECOME, "", GoUtil.Now())
|
||||
FriendApplyBackData(player)
|
||||
@ -3027,7 +3045,7 @@ func ReqAutoAddInviteFriend(player *Player, buf []byte) error {
|
||||
PlayroomBackData(player)
|
||||
player.TeLog("friend_add", map[string]interface{}{
|
||||
"player_id": req.Id,
|
||||
"add_type": "invite add friend",
|
||||
"add_type": "邀请注册",
|
||||
})
|
||||
return nil
|
||||
}
|
||||
@ -3068,7 +3086,7 @@ func ReqAutoAddInviteFriend2(player *Player, buf []byte) error {
|
||||
PlayroomBackData(player)
|
||||
player.TeLog("friend_add", map[string]interface{}{
|
||||
"player_id": req.Id,
|
||||
"add_type": "invite add friend",
|
||||
"add_type": "邀请注册",
|
||||
})
|
||||
return nil
|
||||
}
|
||||
@ -3078,7 +3096,7 @@ func ReqSelectLimitEvent(player *Player, buf []byte) error {
|
||||
proto.Unmarshal(buf, req)
|
||||
LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod()
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
Items, EventName, slot_order_number, err := LimitedTimeEventMod.SelectProgressReward(int(req.Id), BaseMod.GetLevel(), BaseMod.GetEnergy())
|
||||
Items, EventType, OrderNum, RewardList, err := LimitedTimeEventMod.SelectProgressReward(int(req.Id), BaseMod.GetLevel(), BaseMod.GetEnergy())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResSelectLimitEvent{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -3095,9 +3113,9 @@ func ReqSelectLimitEvent(player *Player, buf []byte) error {
|
||||
return err
|
||||
}
|
||||
player.TeLog("time_limited_slot", map[string]interface{}{
|
||||
"slot_order_number": slot_order_number,
|
||||
"slot_reward_list": EventName,
|
||||
"slot_reward": EventName,
|
||||
"slot_order_number": OrderNum,
|
||||
"slot_reward_list": RewardList,
|
||||
"slot_reward": limitedTimeEventCfg.GetEventName(EventType),
|
||||
})
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(LimitedTimeEventMod.BackData())
|
||||
@ -3917,9 +3935,10 @@ func ReqPlayroomTask(player *Player, buf []byte) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
Type := playroomCfg.GetDailyTaskType(int(req.Id))
|
||||
player.TeLog("room_daily_task", map[string]interface{}{
|
||||
"task_id": req.Id,
|
||||
"is_reward": PlayroomMod.DailyTaskCanReward(int(req.Id)),
|
||||
"is_reward": PlayroomMod.DailyTaskCanReward(Type),
|
||||
})
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResPlayroomTask{
|
||||
@ -4193,15 +4212,16 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error {
|
||||
return err
|
||||
}
|
||||
for _, v := range FriendTreasureMod.List {
|
||||
if v.Status != 1 {
|
||||
continue
|
||||
ItemNum := 0
|
||||
if v.Status == 1 {
|
||||
ItemNum = FriendItemNum
|
||||
}
|
||||
G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{
|
||||
From: int(player.M_DwUin),
|
||||
To: int(v.Uid),
|
||||
Type: MsqMod.FRIEND_TREASURE_HANDLE,
|
||||
SendT: GoUtil.Now(),
|
||||
Extra: []*item.Item{item.NewItem(item.ITEM_STAR_ID, FriendItemNum)},
|
||||
Extra: []*item.Item{item.NewItem(item.ITEM_STAR_ID, ItemNum)},
|
||||
})
|
||||
}
|
||||
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_FriendtreasureEnd.String())
|
||||
@ -4219,7 +4239,9 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error {
|
||||
"pet_treasure_box": FriendTreasureMod.BoxItems,
|
||||
"pet_treasure_reward": append(Items, FriendTreasureMod.BoxItems...),
|
||||
})
|
||||
FriendTreasureMod.ResetGame()
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(FriendTreasureMod.BackData())
|
||||
player.PushClientRes(&msg.ResFriendTreasureEnd{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
|
||||
@ -114,6 +114,10 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) {
|
||||
GoUtil.SendFeishuFatal(int(player.M_DwUin), "GoogleVerify支付校验异常", fmt.Sprintf("GoogleVerify parmas OrderSn:%s; ProduceId:%s; Token:%s", OrderSn, req.ProduceId, req.Token))
|
||||
log.Debug("[order data nil] Uid:%d;OrderSn:%s;PayOrder:%s;", player.M_DwUin, OrderSn, req.ProduceId)
|
||||
return
|
||||
} else {
|
||||
if conf.Server.GameName == "Merge_Pet_online" {
|
||||
GoUtil.SendFeishuOrder(int(player.M_DwUin), OrderData.PayChannelOrderId, OrderData.Price, req.ProduceId, OrderData.PayTime, GoUtil.Now())
|
||||
}
|
||||
}
|
||||
log.Debug("[order verify success] Uid:%d;OrderSn:%s;PayOrder:%s;Token:%s", player.M_DwUin, OrderData.OrderId, OrderData.PayChannelOrderId, req.Token)
|
||||
player.lock.Lock()
|
||||
@ -133,8 +137,7 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) {
|
||||
SendCharge(player, OrderExtraData)
|
||||
}
|
||||
OrderData.PayStatus = MergeConst.ORDER_STATUS_SHIP
|
||||
OrderData.PayChannelOrderId = req.Token
|
||||
OrderData.ProductDesc = req.ProduceId
|
||||
OrderData.ProductName = req.ProduceId
|
||||
db.UpdatePlayerChargeData(OrderData)
|
||||
player.PlayMod.save()
|
||||
orderDataMap := map[string]interface{}{
|
||||
@ -158,34 +161,15 @@ func TriggerComfortOrder(p *Player) {
|
||||
Now := GoUtil.Now()
|
||||
Lv := BaseMod.GetLevel()
|
||||
|
||||
if Now-BaseMod.GetLogoutTime() < 7*86400 || Lv < 17 {
|
||||
if Now-BaseMod.GetLogoutTime() < 7*86400 || Lv < 23 {
|
||||
return
|
||||
}
|
||||
OrderMod := p.PlayMod.getOrderMod()
|
||||
ChessMod := p.PlayMod.getChessMod()
|
||||
ChessList := ChessMod.GetUnlockChessList()
|
||||
TriggerType := 1
|
||||
for _, Order := range OrderMod.GetOrderList() {
|
||||
if GoUtil.IsContain(ChessList, Order.MergeId) {
|
||||
continue
|
||||
}
|
||||
if Order.Diff == order.DIFF_LOW {
|
||||
return
|
||||
}
|
||||
if Order.Diff == order.DIFF_MID {
|
||||
TriggerType = 2
|
||||
}
|
||||
}
|
||||
OrderMod.ComfortEndTime = int(Now + 86400)
|
||||
EmitList := ChessMod.GetEmitList()
|
||||
EnergyMul := BaseMod.GetEnergyMul()
|
||||
if TriggerType == 1 {
|
||||
OrderMod.CreateComfortOrder(Lv, EmitList, EnergyMul, order.DIFF_LOW, 2)
|
||||
OrderMod.CreateComfortOrder(Lv, EmitList, EnergyMul, order.DIFF_LOW, 3)
|
||||
OrderMod.CreateComfortOrder(Lv, EmitList, EnergyMul, order.DIFF_MID, 2)
|
||||
} else {
|
||||
OrderMod.CreateComfortOrder(Lv, EmitList, EnergyMul, order.DIFF_LOW, 2)
|
||||
OrderMod.CreateComfortOrder(Lv, EmitList, EnergyMul, order.DIFF_LOW, 3)
|
||||
}
|
||||
OrderMod.CreateNormalOrder(BaseMod.GetLevel(), EmitList, EnergyMul, order.COMFORT_TYPE)
|
||||
}
|
||||
|
||||
func TriggerSeed(player *Player) {
|
||||
|
||||
@ -4,7 +4,9 @@ import (
|
||||
"fmt"
|
||||
"math"
|
||||
mergeDataCfg "server/conf/mergeData"
|
||||
orderCfg "server/conf/order"
|
||||
"server/game/mod/decorate"
|
||||
"server/game/mod/item"
|
||||
"server/game/mod/order"
|
||||
"server/game/mod/quest"
|
||||
"server/msg"
|
||||
@ -45,15 +47,29 @@ func UnitOrder(p *Player) error {
|
||||
ChessMod := p.PlayMod.getChessMod()
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
//OrderMod.OrderList = make(map[int]order.Order)
|
||||
for i := 0; i < 100; i++ {
|
||||
for i := 0; i < 1000; i++ {
|
||||
//OrderMod.ChessPool = nil
|
||||
//OrderMod.EmitShuffle = nil
|
||||
err := OrderMod.CreateNormalOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul())
|
||||
err := OrderMod.CreateNormalOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Common_type)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for k, v := range OrderMod.OrderList {
|
||||
if v.Type == order.Super_type {
|
||||
continue
|
||||
}
|
||||
if len(v.Items) > 0 {
|
||||
continue
|
||||
}
|
||||
if v.Diff == 0 {
|
||||
continue
|
||||
}
|
||||
Star := order.GetOrderStar(v.MergeId, ChessMod.GetOrderEmit())
|
||||
v.Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, Star)}
|
||||
OrderMod.OrderList[k] = v
|
||||
fmt.Printf("OrderId %d, Diff %d, MergeId %v, Star %d\n", k, v.Diff, v.MergeId, Star)
|
||||
}
|
||||
}
|
||||
p.FormatOrderReward()
|
||||
NumMap := make(map[int]int)
|
||||
for _, v := range OrderMod.OrderList {
|
||||
NumMap[len(v.MergeId)]++
|
||||
@ -235,7 +251,7 @@ func UnitOrder2(p *Player, Lv, EnergyMul int) float64 {
|
||||
// fmt.Println(EmitList)
|
||||
// OrderMod.Debug = make(map[int]int)
|
||||
for i := 0; i < 5000; i++ {
|
||||
err := OrderMod.CreateNormalOrder(Lv, Emit, EnergyMul)
|
||||
err := OrderMod.CreateNormalOrder(Lv, Emit, EnergyMul, order.Common_type)
|
||||
log.Debug("OrderMod.CreateNormalOrder %d", i)
|
||||
if err != nil {
|
||||
return 0
|
||||
@ -289,9 +305,13 @@ func UnitPlayroomOrder(p *Player) error {
|
||||
}
|
||||
|
||||
func UnitPetOrder(p *Player) error {
|
||||
VarMod := p.PlayMod.getVarMod()
|
||||
VarMod.DailyResetTime = 0
|
||||
p.ZeroUpdate(nil)
|
||||
p.CreateNormalOrder()
|
||||
ChessMod := p.PlayMod.getChessMod()
|
||||
DecorateMod := p.PlayMod.getDecorateMod()
|
||||
OrderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId())
|
||||
Star := order.GetOrderStar([]int{305}, ChessMod.GetStarEmitList())
|
||||
a := int(float64(Star)*float64(OrderFactor)/1000+0.5) * 10
|
||||
fmt.Print(a)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -321,7 +341,7 @@ func UnitOrderTrigger(p *Player) error {
|
||||
Emit := ChessMod.GetEmitList()
|
||||
EnergyMul := BaseMod.GetEnergyMul()
|
||||
OrderMod.TriggerOrder(Lv, order.TRIGGER_TYPE_ORDER, Emit, EnergyMul)
|
||||
|
||||
order.GetOrderStar([]int{1146}, ChessMod.GetOrderEmit())
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@ -133,7 +133,7 @@ func (c *ChargeMod) NoonUpdate(Emit []int) {
|
||||
}
|
||||
|
||||
func (c *ChargeMod) FixBug(Emit []int) {
|
||||
if len(c.ChessShop) < 6 {
|
||||
if len(c.ChessShop) < 5 {
|
||||
c.InitChessShop(Emit)
|
||||
}
|
||||
}
|
||||
|
||||
@ -261,7 +261,31 @@ func (cb *ChessBorad) RemoveChess(Id int) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cb *ChessBorad) GetStarEmitList() []int {
|
||||
result := make([]int, 0, len(cb.EmitList))
|
||||
EM := make(map[string]int)
|
||||
for k, v := range cb.EmitList {
|
||||
if v <= 0 {
|
||||
delete(cb.EmitList, k)
|
||||
continue
|
||||
}
|
||||
EmitID := mergeDataCfg.GetEmitId(k)
|
||||
if EmitID == "" {
|
||||
continue
|
||||
}
|
||||
EmitType := mergeDataCfg.GetEmitType(k)
|
||||
if EmitType == "sub" {
|
||||
continue
|
||||
}
|
||||
if v > 0 {
|
||||
EM[EmitID] = max(EM[EmitID], k)
|
||||
}
|
||||
}
|
||||
for _, v := range EM {
|
||||
result = append(result, v)
|
||||
}
|
||||
return result
|
||||
}
|
||||
func (cb *ChessBorad) GetEmitList() []int {
|
||||
result := make([]int, 0, len(cb.EmitList))
|
||||
EM := make(map[string]int)
|
||||
@ -274,7 +298,7 @@ func (cb *ChessBorad) GetEmitList() []int {
|
||||
if EmitID == "" {
|
||||
continue
|
||||
}
|
||||
if cb.Retire[EmitID] == EMIT_RETIRE_START {
|
||||
if cb.Retire[EmitID] >= EMIT_RETIRE_START {
|
||||
continue
|
||||
}
|
||||
EmitType := mergeDataCfg.GetEmitType(k)
|
||||
@ -386,7 +410,7 @@ func (cb *ChessBorad) BackData() *msg.ResPlayerChessInfo {
|
||||
}
|
||||
Re := make([]string, 0)
|
||||
for k, v := range cb.Retire {
|
||||
if v == 3 {
|
||||
if v == EMIT_RETIRE_END {
|
||||
Re = append(Re, k)
|
||||
}
|
||||
}
|
||||
@ -554,7 +578,7 @@ func (cb *ChessBorad) RetireOrder(EmitType string) error {
|
||||
return errors.New("chess has not been retired")
|
||||
}
|
||||
chess := make([]int, 0)
|
||||
EmitProduct := mergeDataCfg.GetEmitProduce(EmitType)
|
||||
EmitProduct := mergeDataCfg.GetEmitOrderProduce(EmitType)
|
||||
for k, v := range cb.ChessMap {
|
||||
arr := strings.Split(k, "@")
|
||||
Color := mergeDataCfg.GetColorById(int(v))
|
||||
|
||||
@ -192,3 +192,23 @@ func (dt *DailyTaskMod) GetWeekReward(id int) ([]*item.Item, error) {
|
||||
}
|
||||
return nil, fmt.Errorf("task not finish")
|
||||
}
|
||||
|
||||
func (dt *DailyTaskMod) GetWeekReward2() []*item.Item {
|
||||
max := 0
|
||||
for id := range dt.WeekReward {
|
||||
if id > max {
|
||||
max = id
|
||||
}
|
||||
}
|
||||
max++
|
||||
if v, ok := dt.WeekReward[max]; ok {
|
||||
NeedActive := dailyTaskCfg.GetTaskActiveById(max)
|
||||
if dt.Active < NeedActive {
|
||||
return nil
|
||||
}
|
||||
if !v.Status {
|
||||
return v.Items
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -27,6 +27,7 @@ type BubbleInfo struct {
|
||||
Id int // 气泡ID
|
||||
Time int64 // 气泡时间
|
||||
Type int
|
||||
ItemList []*item.Item // 奖励物品
|
||||
}
|
||||
|
||||
type FriendInfo struct {
|
||||
@ -82,6 +83,7 @@ const (
|
||||
LOG_TYPE_PLAYROOM_CAT_LOSE = 27 // 小猫游戏,装箱小猫未成功
|
||||
LOG_TYPE_CARD_GIVE_ACCEPT = 28 // 接受卡牌请求
|
||||
LOG_TYPE_FRIEND_INVITE = 29 // 邀请注册
|
||||
LOG_TYPE_TREASURE_HELP = 30 // 好友宝藏帮助
|
||||
)
|
||||
|
||||
const (
|
||||
@ -271,20 +273,25 @@ func (f *FriendMod) AddLog(Uid, Type int, Param string) int {
|
||||
})
|
||||
switch Type {
|
||||
case LOG_TYPE_HANDBOOK_UPVOTE:
|
||||
f.AddBubble(f.AutoId, Type)
|
||||
f.AddBubble(f.AutoId, Type, nil)
|
||||
case LOG_TYPE_PLAYROOM_UPVOTE:
|
||||
f.AddBubble(f.AutoId, Type)
|
||||
f.AddBubble(f.AutoId, Type, nil)
|
||||
case LOG_TYPE_TREASURE_HELP:
|
||||
ItemNum := GoUtil.RandNum(2, 5)
|
||||
ItemList := []*item.Item{item.NewItem(item.ITEM_STAR_ID, ItemNum)}
|
||||
f.AddBubble(f.AutoId, Type, ItemList)
|
||||
}
|
||||
if len(f.Log) > 30 {
|
||||
f.Log = f.Log[len(f.Log)-30:]
|
||||
}
|
||||
return f.AutoId
|
||||
}
|
||||
func (f *FriendMod) AddBubble(Id, Type int) {
|
||||
func (f *FriendMod) AddBubble(Id, Type int, ItemList []*item.Item) {
|
||||
f.Bubble[Id] = &BubbleInfo{
|
||||
Id: Id,
|
||||
Time: GoUtil.Now(),
|
||||
Type: Type,
|
||||
ItemList: ItemList,
|
||||
}
|
||||
}
|
||||
|
||||
@ -293,6 +300,7 @@ func (f *FriendMod) GetBubbble(Id int) *msg.FriendBubbleInfo {
|
||||
return &msg.FriendBubbleInfo{
|
||||
Id: int32(v.Id),
|
||||
Type: int32(v.Type),
|
||||
Items: item.ItemToMsg(v.ItemList),
|
||||
}
|
||||
}
|
||||
return nil
|
||||
@ -304,6 +312,7 @@ func (f *FriendMod) BubbleBackData() *msg.ResFriendBubble {
|
||||
rs = append(rs, &msg.FriendBubbleInfo{
|
||||
Id: int32(v.Id),
|
||||
Type: int32(v.Type),
|
||||
Items: item.ItemToMsg(v.ItemList),
|
||||
})
|
||||
}
|
||||
return &msg.ResFriendBubble{
|
||||
@ -348,6 +357,8 @@ func (f *FriendMod) GetReward(Id int) ([]*item.Item, error) {
|
||||
reward = append(reward, item.NewItem(item.ITEM_ENERGY_ID, 5))
|
||||
case LOG_TYPE_PLAYROOM_UPVOTE:
|
||||
reward = append(reward, item.NewItem(item.ITEM_ENERGY_ID, 5))
|
||||
case LOG_TYPE_TREASURE_HELP:
|
||||
reward = append(reward, info.ItemList...)
|
||||
default:
|
||||
return nil, fmt.Errorf("log type not support")
|
||||
}
|
||||
|
||||
@ -22,6 +22,9 @@ const (
|
||||
ITEM_FIVE_STAR_CARD_PACK = 100008
|
||||
ITEM_RACING_BATTERY_ID = 100027
|
||||
ITEM_LAUNCHER_ID = 1602
|
||||
ITEM_LAUNCHER_lOW_ID = 1601
|
||||
ITEM_ENERGY_GIFT_ID = 562
|
||||
ITEM_DIAMOND_LV2_ID = 502
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@ -350,13 +350,14 @@ func (l *LimitedTimeEventMod) AddProgress(Lv int) {
|
||||
}
|
||||
|
||||
// 选择进度奖励
|
||||
func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv, Energy int) ([]*item.Item, int, int, error) {
|
||||
func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv, Energy int) ([]*item.Item, int, int, map[int]int, error) {
|
||||
RewardId, ok := l.ProgressReward[Id]
|
||||
RewardList := l.ProgressReward
|
||||
if !ok {
|
||||
return nil, 0, 0, fmt.Errorf("RewardId not exist")
|
||||
return nil, 0, 0, nil, fmt.Errorf("RewardId not exist")
|
||||
}
|
||||
r2 := l.ProgressMax
|
||||
Item := limitedTimeEventCfg.GetProgressReward(RewardId)
|
||||
OrderNum := l.ProgressMax
|
||||
l.LastSelect = RewardId
|
||||
l.ProgressReward = make(map[int]int)
|
||||
l.Progress = 0
|
||||
@ -389,7 +390,7 @@ func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv, Energy int) ([]*item.
|
||||
}
|
||||
l.LastOption = r
|
||||
l.FirstReward = true
|
||||
return Item, limitedTimeEventCfg.GetProgressRewardType(RewardId), r2, nil
|
||||
return Item, limitedTimeEventCfg.GetProgressRewardType(RewardId), OrderNum, RewardList, nil
|
||||
}
|
||||
|
||||
func (l *LimitedTimeEventMod) RemoveSuperOrder() bool {
|
||||
|
||||
@ -2,7 +2,6 @@ package order
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"server/GoUtil"
|
||||
limitedTimeEventCfg "server/conf/limitedTimeEvent"
|
||||
mergeDataCfg "server/conf/mergeData"
|
||||
@ -26,11 +25,14 @@ type OrderMod struct {
|
||||
ColorShuffle []string // 棋子系列乱序
|
||||
LastColor string // 上次生成订单的棋子系列
|
||||
ChessPool []int // 棋子池
|
||||
ChessPool2 map[string][]int // 按系列分类的棋子池
|
||||
OrderPool map[int]*Order // 订单池
|
||||
FinishOrder []int // 已完成订单
|
||||
IsCharge bool // 是否充值
|
||||
AutoEmit []string // 自动发射器
|
||||
LastChess int // 上次生成订单的棋子
|
||||
NextDiff int // 下次订单难度
|
||||
ComfortEndTime int
|
||||
}
|
||||
|
||||
type Order struct {
|
||||
@ -43,6 +45,12 @@ type Order struct {
|
||||
Items []*item.Item // 奖励物品
|
||||
}
|
||||
|
||||
var PreheatItems = map[int][]*item.Item{
|
||||
1: {item.NewItem(item.ITEM_ENERGY_GIFT_ID, 1)},
|
||||
2: {item.NewItem(item.ITEM_DIAMOND_LV2_ID, 1)},
|
||||
3: {item.NewItem(item.ITEM_LAUNCHER_lOW_ID, 1)},
|
||||
}
|
||||
|
||||
const (
|
||||
Common_type = 1 // 普通订单
|
||||
Extra_type = 2 // 额外订单 弃用
|
||||
@ -87,6 +95,9 @@ func (o *OrderMod) InitData() {
|
||||
delete(o.OrderList, k)
|
||||
}
|
||||
}
|
||||
if o.ChessPool2 == nil {
|
||||
o.ChessPool2 = make(map[string][]int)
|
||||
}
|
||||
if o.Auto_id == 0 {
|
||||
o.Auto_id = 10000
|
||||
}
|
||||
@ -119,6 +130,12 @@ func (o *OrderMod) RewardOrder(id int) ([]*item.Item, []int, int, int, error) {
|
||||
if v.Type == Fixed_type || v.Type == Playroom_type {
|
||||
o.FinishOrder = append(o.FinishOrder, id)
|
||||
}
|
||||
if GoUtil.InArray(78, o.FinishOrder) {
|
||||
o.AutoEmit, _ = GoUtil.PopStringElemSlice(o.AutoEmit, "D")
|
||||
}
|
||||
if GoUtil.InArray(79, o.FinishOrder) {
|
||||
o.AutoEmit, _ = GoUtil.PopStringElemSlice(o.AutoEmit, "I")
|
||||
}
|
||||
return ItemList, v.MergeId, v.Type, Star, nil
|
||||
}
|
||||
return ItemList, MergeList, 0, 0, fmt.Errorf("订单不存在, 订单id%d", id)
|
||||
@ -228,9 +245,6 @@ func (o *OrderMod) TriggerOrder(lv int, Type string, Emit []int, EnergyMul int)
|
||||
}
|
||||
}
|
||||
}
|
||||
if lv >= 12 {
|
||||
o.CreateOrder(lv, Emit, EnergyMul)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -290,7 +304,7 @@ func (o *OrderMod) CheckCondition(lv int, condition, Type string, Emit []int, Fi
|
||||
}
|
||||
|
||||
// 生成新订单
|
||||
func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error {
|
||||
func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul, OrderType int) error {
|
||||
if len(Emit) == 0 {
|
||||
return nil
|
||||
}
|
||||
@ -298,21 +312,9 @@ func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul int) error {
|
||||
if o.CreatePriorityOrder(lv, Emit) {
|
||||
return nil
|
||||
}
|
||||
MaxOrderNum := orderCfg.GetOrderNum(lv)
|
||||
n := 0
|
||||
for _, v := range o.OrderList {
|
||||
if v.Type == Common_type || v.Type == Clean_type || v.Type == Pet_type || v.Type == Part_type || v.Type == Fixed_type || v.Type == Preview_type {
|
||||
n++
|
||||
}
|
||||
}
|
||||
for i := n; i < MaxOrderNum; i++ {
|
||||
err := o.CreateNormalOrder(lv, Emit, EnergyMul)
|
||||
if err != nil {
|
||||
err := o.CreateNormalOrder(lv, Emit, EnergyMul, OrderType)
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (o *OrderMod) CreatePriorityOrder(lv int, Emit []int) bool {
|
||||
if len(Emit) == 0 {
|
||||
@ -404,7 +406,7 @@ func (o *OrderMod) CreateNormalOrderSeed(lv int, Emit []int, EnergyMul int, Diff
|
||||
}
|
||||
|
||||
// 生成新订单
|
||||
func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul int) error {
|
||||
func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul, OrderType int) error {
|
||||
if len(Emit) == 0 {
|
||||
return nil
|
||||
}
|
||||
@ -417,7 +419,7 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul int) error {
|
||||
break
|
||||
}
|
||||
randNum++
|
||||
mergeList, OrderDiff, err = randOrderChess(o, lv, Emit, EnergyMul)
|
||||
mergeList, OrderDiff, err = randOrderChess(o, lv, Emit, EnergyMul, OrderType)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
@ -446,8 +448,7 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul int) error {
|
||||
// }
|
||||
|
||||
// }
|
||||
log.Printf("CreateNormalOrder: %v, %v, %v", mergeList, OrderDiff, err)
|
||||
o.addOrder(mergeList, OrderDiff, Common_type)
|
||||
o.addOrder(mergeList, OrderDiff, OrderType)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -485,6 +486,28 @@ func (o *OrderMod) CreateSuperOrder(lv int, Emit []int, EnergyMul int) error {
|
||||
o.addOrder(mergeList, OrderDiff, Super_type)
|
||||
return nil
|
||||
}
|
||||
func (o *OrderMod) addOrder(ChessList []int, Diff int, Type int) int {
|
||||
o.Auto_id++
|
||||
Order := Order{
|
||||
MergeId: ChessList,
|
||||
Diff: Diff,
|
||||
Type: Type,
|
||||
Timestamp: time.Now().Unix(),
|
||||
Items: nil,
|
||||
}
|
||||
o.OrderList[o.Auto_id] = Order
|
||||
if Type == Common_type {
|
||||
o.LastNormalOrder = Order
|
||||
}
|
||||
o.LastDiff = Diff
|
||||
return o.Auto_id
|
||||
}
|
||||
func (o *OrderMod) AddExtraOrder(ChessList []int) {
|
||||
o.addOrder(ChessList, DIFF_LOW, Extra_type)
|
||||
}
|
||||
func (o *OrderMod) AddFixOrder(Id int, ChessList []int, Type int, Items []*item.Item) {
|
||||
o.addFixOrder(Id, ChessList, Type, Items)
|
||||
}
|
||||
func (o *OrderMod) addFixOrder(Id int, ChessList []int, Type int, Items []*item.Item) {
|
||||
Order := Order{
|
||||
MergeId: ChessList,
|
||||
@ -494,13 +517,11 @@ func (o *OrderMod) addFixOrder(Id int, ChessList []int, Type int, Items []*item.
|
||||
}
|
||||
o.OrderList[Id] = Order
|
||||
}
|
||||
func (o *OrderMod) addOrder(ChessList []int, Diff int, Type int) int {
|
||||
o.Auto_id++
|
||||
Star := GetOrderStar(ChessList)
|
||||
Items := make([]*item.Item, 0)
|
||||
if Type != Common_type && Type != Super_type {
|
||||
Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, Star)}
|
||||
func (o *OrderMod) AddPreheatOrder(ChessList []int, Diff int, Type int, Items []*item.Item) int {
|
||||
return o.addPreheatOrder(ChessList, Diff, Type, Items)
|
||||
}
|
||||
func (o *OrderMod) addPreheatOrder(ChessList []int, Diff int, Type int, Items []*item.Item) int {
|
||||
o.Auto_id++
|
||||
Order := Order{
|
||||
MergeId: ChessList,
|
||||
Diff: Diff,
|
||||
@ -509,10 +530,6 @@ func (o *OrderMod) addOrder(ChessList []int, Diff int, Type int) int {
|
||||
Items: Items,
|
||||
}
|
||||
o.OrderList[o.Auto_id] = Order
|
||||
if Type == Common_type {
|
||||
o.LastNormalOrder = Order
|
||||
}
|
||||
o.LastDiff = Diff
|
||||
return o.Auto_id
|
||||
}
|
||||
|
||||
@ -558,7 +575,7 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, Energ
|
||||
//额外订单补充2;当玩家的棋盘中出现三个相同的满级产物时,立刻生成一个对应的收购订单;
|
||||
for k := range MaxLvChess {
|
||||
ChessNum := GoUtil.GetElemNum(ChessList, k)
|
||||
if ChessNum == 3 && Level >= 12 {
|
||||
if ChessNum >= 3 && Level >= 12 {
|
||||
b2 := true
|
||||
for _, v := range o.OrderList {
|
||||
if GoUtil.SliceEqual(v.MergeId, []int{k, k, k}) {
|
||||
@ -581,7 +598,8 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, Energ
|
||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul+1, ChessColor[0])
|
||||
if ChessId != 0 {
|
||||
o.PreheatStep[ChessColor[0]] = 1
|
||||
o.addOrder([]int{ChessId}, DIFF_LOW, Preheat_type)
|
||||
Items := PreheatItems[1]
|
||||
o.addPreheatOrder([]int{ChessId}, DIFF_LOW, Preheat_type, Items)
|
||||
}
|
||||
}
|
||||
return b1 || b3
|
||||
@ -626,7 +644,6 @@ func (o *OrderMod) CheckSuperOrder() bool {
|
||||
* 根据能量倍数 调整订单
|
||||
*/
|
||||
func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList []int) {
|
||||
|
||||
for k, v := range o.OrderList {
|
||||
if v.Type == Preheat_type { // 预热订单 修改倍数时修改棋子等级
|
||||
ChessId := v.MergeId[0]
|
||||
@ -637,7 +654,11 @@ func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList
|
||||
continue
|
||||
}
|
||||
delete(o.OrderList, k)
|
||||
o.addOrder([]int{NewChessId}, DIFF_LOW, Preheat_type)
|
||||
Items, ok := PreheatItems[PreheatStep]
|
||||
if !ok {
|
||||
Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, GetOrderStar([]int{NewChessId}, Emit))}
|
||||
}
|
||||
o.addPreheatOrder([]int{NewChessId}, DIFF_LOW, Preheat_type, Items)
|
||||
}
|
||||
}
|
||||
|
||||
@ -670,14 +691,14 @@ func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList
|
||||
*/
|
||||
if NeedTrigger {
|
||||
delete(o.OrderList, k)
|
||||
o.CreateNormalOrder(lv, Emit, EnergyMul)
|
||||
o.CreateNormalOrder(lv, Emit, EnergyMul, v.Type)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (o *OrderMod) Retire(EmitId string) {
|
||||
ChessPool := make([]int, 0)
|
||||
Product := mergeDataCfg.GetEmitProduce(EmitId)
|
||||
Product := mergeDataCfg.GetEmitOrderProduce(EmitId)
|
||||
for _, v := range o.ChessPool {
|
||||
Color := mergeDataCfg.GetColorById(v)
|
||||
if GoUtil.InStringArray(Color, Product) {
|
||||
|
||||
@ -1,14 +1,94 @@
|
||||
package order
|
||||
|
||||
import (
|
||||
"math"
|
||||
"server/GoUtil"
|
||||
mergeDataCfg "server/conf/mergeData"
|
||||
orderCfg "server/conf/order"
|
||||
userCfg "server/conf/user"
|
||||
"sort"
|
||||
)
|
||||
|
||||
var reflectChess = map[int]int{} // 棋子难度映射表
|
||||
|
||||
var orderCfgMap = map[int]orderConfig{
|
||||
1: {
|
||||
Min: 15,
|
||||
Max: 150,
|
||||
Pool: map[int]orderConfigInfo{
|
||||
1: {lv: 5, energy: 16, t: 0},
|
||||
2: {lv: 6, energy: 32, t: 0},
|
||||
3: {lv: 7, energy: 64, t: 0},
|
||||
4: {lv: 8, energy: 128, t: 0},
|
||||
},
|
||||
},
|
||||
2: {
|
||||
Min: 20,
|
||||
Max: 300,
|
||||
Pool: map[int]orderConfigInfo{
|
||||
2: {lv: 6, energy: 32, t: 0},
|
||||
3: {lv: 7, energy: 64, t: 0},
|
||||
4: {lv: 8, energy: 128, t: 0},
|
||||
},
|
||||
},
|
||||
3: {
|
||||
Min: 40,
|
||||
Max: 400,
|
||||
Pool: map[int]orderConfigInfo{
|
||||
1: {lv: 5, energy: 16, t: 0},
|
||||
2: {lv: 6, energy: 32, t: 0},
|
||||
3: {lv: 7, energy: 64, t: 0},
|
||||
4: {lv: 8, energy: 128, t: 0},
|
||||
5: {lv: 9, energy: 256, t: 0},
|
||||
},
|
||||
},
|
||||
4: {
|
||||
Min: 40,
|
||||
Max: 200,
|
||||
Pool: map[int]orderConfigInfo{
|
||||
1: {lv: 5, energy: 16, t: 1},
|
||||
2: {lv: 6, energy: 32, t: 1},
|
||||
3: {lv: 7, energy: 64, t: 0},
|
||||
4: {lv: 8, energy: 128, t: 0},
|
||||
},
|
||||
},
|
||||
5: {
|
||||
Min: 100,
|
||||
Max: 600,
|
||||
Pool: map[int]orderConfigInfo{
|
||||
1: {lv: 6, energy: 32, t: 1},
|
||||
2: {lv: 7, energy: 64, t: 1},
|
||||
3: {lv: 8, energy: 128, t: 0},
|
||||
4: {lv: 9, energy: 256, t: 0},
|
||||
5: {lv: 10, energy: 512, t: 0},
|
||||
},
|
||||
},
|
||||
6: {
|
||||
Min: 500,
|
||||
Max: 1200,
|
||||
Pool: map[int]orderConfigInfo{
|
||||
1: {lv: 6, energy: 32, t: 1},
|
||||
2: {lv: 7, energy: 64, t: 1},
|
||||
3: {lv: 8, energy: 128, t: 0},
|
||||
4: {lv: 9, energy: 256, t: 0},
|
||||
5: {lv: 10, energy: 512, t: 0},
|
||||
6: {lv: 11, energy: 1024, t: 0},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
type orderConfig struct {
|
||||
Min int
|
||||
Max int
|
||||
Pool map[int]orderConfigInfo
|
||||
}
|
||||
|
||||
type orderConfigInfo struct {
|
||||
lv int
|
||||
energy int
|
||||
t int
|
||||
}
|
||||
|
||||
// 订单棋子数量
|
||||
func getChessNumRand(OrderN int) map[int]int {
|
||||
return map[int]int{
|
||||
@ -19,8 +99,23 @@ func getChessNumRand(OrderN int) map[int]int {
|
||||
}
|
||||
|
||||
// 根据上一个订单难度和系数 生成订单难度
|
||||
func getOrderDiffRand(Diff, OrderN int) map[int]int {
|
||||
func getOrderDiffRand(Lv, Diff, OrderN int) map[int]int {
|
||||
var d map[int]int
|
||||
if Lv < 24 {
|
||||
switch Diff {
|
||||
case DIFF_MID:
|
||||
d = map[int]int{
|
||||
DIFF_LOW: 50,
|
||||
DIFF_MID: 50,
|
||||
}
|
||||
default:
|
||||
d = map[int]int{
|
||||
DIFF_LOW: 30,
|
||||
DIFF_MID: 70,
|
||||
}
|
||||
}
|
||||
return d
|
||||
}
|
||||
switch Diff {
|
||||
case DIFF_MID:
|
||||
d = map[int]int{
|
||||
@ -44,6 +139,32 @@ func getOrderDiffRand(Diff, OrderN int) map[int]int {
|
||||
return d
|
||||
}
|
||||
|
||||
func getChessByDiff(Lv, Diff, Type int) (int, int, int) {
|
||||
if Type == Common_type {
|
||||
switch Diff {
|
||||
case DIFF_MID:
|
||||
return 100, 600, GoUtil.RandMap(map[int]int{1: 50, 2: 50})
|
||||
case DIFF_HIGH:
|
||||
return 500, 1200, GoUtil.RandMap(map[int]int{1: 33, 2: 67})
|
||||
default:
|
||||
if Lv < 23 {
|
||||
return 15, 150, GoUtil.RandMap(map[int]int{1: 67, 2: 33})
|
||||
}
|
||||
return 30, 200, GoUtil.RandMap(map[int]int{1: 67, 2: 33})
|
||||
}
|
||||
}
|
||||
if Type == Pet_type {
|
||||
return 40, 200, GoUtil.RandMap(map[int]int{1: 50, 2: 50})
|
||||
}
|
||||
if Type == Part_type {
|
||||
return 100, 600, GoUtil.RandMap(map[int]int{1: 50, 2: 50})
|
||||
}
|
||||
if Type == COMFORT_TYPE {
|
||||
return 15, 150, GoUtil.RandMap(map[int]int{1: 33, 2: 67})
|
||||
}
|
||||
return 100, 600, GoUtil.RandMap(map[int]int{1: 50, 2: 50})
|
||||
}
|
||||
|
||||
// 根据订单难度生成棋子难度
|
||||
func getChessDiff(ChessNum, OrderDiff, OrderN int) map[int]int {
|
||||
var rs map[int]int
|
||||
@ -266,10 +387,6 @@ func getChesslvRange(Emit int, EnergyMul int, IsCharge bool) (int, int) {
|
||||
RandEmitMinLv := mergeDataCfg.GetEmitMinLvById(EmitId)
|
||||
Ratio := mergeDataCfg.GetEmitRatio(EmitId)
|
||||
m := int(float64(1+RandEmitLv-RandEmitMinLv) / float64(1+RandMaxLv-RandEmitMinLv) / Ratio * 100)
|
||||
EmitN := mergeDataCfg.GetEmitN(EmitId)
|
||||
ProductList := mergeDataCfg.GetEmitProduceType(Emit)
|
||||
m = m - (len(ProductList)-2)*10
|
||||
m = m - EmitN*10
|
||||
if IsCharge {
|
||||
m += 10
|
||||
}
|
||||
@ -365,39 +482,44 @@ func randOrderChessWithDiff(o *OrderMod, lv int, Emit []int, EnergyMul, OrderDif
|
||||
}
|
||||
|
||||
// 随机生成订单棋子
|
||||
func randOrderChess(o *OrderMod, lv int, Emit []int, EnergyMul int) ([]int, int, error) {
|
||||
func randOrderChess(o *OrderMod, lv int, Emit []int, EnergyMul, OrderType int) ([]int, int, error) {
|
||||
initReflectChess(Emit, EnergyMul)
|
||||
filterPool(o)
|
||||
OrderN, err := userCfg.GetOrderNByLv(lv)
|
||||
RandChessNum := getChessNumRand(OrderN)
|
||||
//RandChessNum := getChessNumRand(OrderN)
|
||||
if err != nil {
|
||||
return nil, DIFF_LOW, err
|
||||
}
|
||||
// 生成订单难度和棋子数量
|
||||
ChessNum := GoUtil.RandMap(RandChessNum)
|
||||
OrderDiffRand := getOrderDiffRand(o.LastDiff, OrderN)
|
||||
//ChessNum := GoUtil.RandMap(RandChessNum)
|
||||
OrderDiffRand := getOrderDiffRand(lv, o.LastDiff, OrderN)
|
||||
OrderDiff := GoUtil.RandMap(OrderDiffRand)
|
||||
ChessDiff := getChessDiff(ChessNum, OrderDiff, OrderN)
|
||||
mergeList := make([]int, 0, len(ChessDiff))
|
||||
// 根据订单棋子难度生成棋子
|
||||
for _, v := range ChessDiff {
|
||||
ChessId := 0
|
||||
Num := 0
|
||||
for {
|
||||
Num++
|
||||
if Num > 50 {
|
||||
break
|
||||
}
|
||||
ChessId = getChessFromPoolByDiff(o, v, Emit, EnergyMul)
|
||||
if ChessId == 0 {
|
||||
continue
|
||||
}
|
||||
if !GoUtil.InArray(ChessId, mergeList) {
|
||||
break
|
||||
}
|
||||
}
|
||||
mergeList = append(mergeList, ChessId)
|
||||
if o.NextDiff != 0 {
|
||||
OrderDiff = o.NextDiff
|
||||
o.NextDiff = 0
|
||||
}
|
||||
//获取订单体力范围和棋子数量
|
||||
MinEnergy, MaxEnergy, ChessNum := getChessByDiff(lv, OrderDiff, OrderType)
|
||||
mergeList := getChessFromPoolByEnergy(o, MinEnergy, MaxEnergy, ChessNum, Emit, EnergyMul, OrderDiff)
|
||||
// // 根据订单棋子难度生成棋子
|
||||
// for _, v := range ChessDiff {
|
||||
// ChessId := 0
|
||||
// Num := 0
|
||||
// for {
|
||||
// Num++
|
||||
// if Num > 50 {
|
||||
// break
|
||||
// }
|
||||
// ChessId = getChessFromPoolByDiff(o, v, Emit, EnergyMul)
|
||||
// if ChessId == 0 {
|
||||
// continue
|
||||
// }
|
||||
// if !GoUtil.InArray(ChessId, mergeList) {
|
||||
// break
|
||||
// }
|
||||
// }
|
||||
// mergeList = append(mergeList, ChessId)
|
||||
// }
|
||||
return mergeList, OrderDiff, nil
|
||||
}
|
||||
|
||||
@ -447,16 +569,23 @@ func filterPool(o *OrderMod) {
|
||||
|
||||
func ShuffleColor(List []string, Last string) []string {
|
||||
Break := 0
|
||||
List2 := make([]string, len(List))
|
||||
List3 := make([]string, len(List))
|
||||
for _, v := range List {
|
||||
if mergeDataCfg.GetEmitProductNumByColor(v) == 1 {
|
||||
List2 = append(List2, v)
|
||||
} else {
|
||||
List3 = append(List3, v)
|
||||
}
|
||||
}
|
||||
|
||||
for {
|
||||
Break++
|
||||
if Break > 1000 {
|
||||
break
|
||||
}
|
||||
Same := false
|
||||
NewList := GoUtil.ShuffleStringArray(List)
|
||||
if NewList[0] == Last {
|
||||
continue
|
||||
}
|
||||
NewList := GoUtil.ShuffleStringArray(List2)
|
||||
for i := 1; i < len(NewList); i++ {
|
||||
BeforeSries := mergeDataCfg.GetEmitTypeByColor(NewList[i-1])
|
||||
NowSries := mergeDataCfg.GetEmitTypeByColor(NewList[i])
|
||||
@ -464,8 +593,23 @@ func ShuffleColor(List []string, Last string) []string {
|
||||
Same = true
|
||||
break
|
||||
}
|
||||
|
||||
}
|
||||
// 将 List3 随机插入 NewList 中
|
||||
if len(List3) > 0 {
|
||||
for _, v := range GoUtil.ShuffleStringArray(List3) {
|
||||
idx := GoUtil.RandNum(0, len(NewList))
|
||||
if idx >= len(NewList) {
|
||||
NewList = append(NewList, v)
|
||||
} else {
|
||||
NewList = append(NewList[:idx+1], NewList[idx:]...)
|
||||
NewList[idx] = v
|
||||
}
|
||||
}
|
||||
}
|
||||
if NewList[0] == Last {
|
||||
continue
|
||||
}
|
||||
|
||||
if !Same {
|
||||
return NewList
|
||||
}
|
||||
@ -498,24 +642,43 @@ func ShuffleColor(List []string, Last string) []string {
|
||||
|
||||
// 获取发射器系列
|
||||
func getEmitSeries(o *OrderMod, Emit []int) string {
|
||||
if o.ColorShuffle == nil {
|
||||
ColorShuffle := make([]string, 0)
|
||||
for _, v := range Emit {
|
||||
EmitId := mergeDataCfg.GetEmitId(v)
|
||||
if GoUtil.InStringArray(EmitId, o.AutoEmit) {
|
||||
o.initColorShuffle(Emit)
|
||||
PopEmitId := ""
|
||||
NewSlice := make([]string, 0)
|
||||
ChessColorNum := map[string]int{}
|
||||
for _, v := range o.OrderList {
|
||||
for _, c := range v.MergeId {
|
||||
Color := mergeDataCfg.GetColorById(c)
|
||||
ChessColorNum[Color]++
|
||||
}
|
||||
}
|
||||
Break := 0
|
||||
for {
|
||||
if Break > 1000 {
|
||||
break
|
||||
}
|
||||
Break++
|
||||
PopEmitId, NewSlice = GoUtil.PopStringArray(o.ColorShuffle)
|
||||
o.ColorShuffle = NewSlice
|
||||
if PopEmitId == "" {
|
||||
o.initColorShuffle(Emit)
|
||||
continue
|
||||
}
|
||||
EmitProduct := mergeDataCfg.GetEmitProduceType(v)
|
||||
if len(EmitProduct) == 0 || EmitProduct[0] == "" {
|
||||
PopEmitIdProductNum := mergeDataCfg.GetEmitProductNumByColor(PopEmitId)
|
||||
o.initColorShuffle(Emit)
|
||||
if PopEmitIdProductNum == 1 && ChessColorNum[PopEmitId] >= 2 {
|
||||
continue
|
||||
} else {
|
||||
break
|
||||
}
|
||||
ColorShuffle = append(ColorShuffle, EmitProduct...)
|
||||
}
|
||||
o.ColorShuffle = ShuffleColor(ColorShuffle, o.LastColor)
|
||||
}
|
||||
PopEmitId, NewSlice := GoUtil.PopStringArray(o.ColorShuffle)
|
||||
o.ColorShuffle = NewSlice
|
||||
o.LastColor = PopEmitId
|
||||
o.initColorShuffle(Emit)
|
||||
return PopEmitId
|
||||
}
|
||||
|
||||
func (o *OrderMod) initColorShuffle(Emit []int) {
|
||||
if len(o.ColorShuffle) == 0 {
|
||||
ColorShuffle := make([]string, 0)
|
||||
for _, v := range Emit {
|
||||
@ -524,21 +687,34 @@ func getEmitSeries(o *OrderMod, Emit []int) string {
|
||||
continue
|
||||
}
|
||||
EmitProduct := mergeDataCfg.GetEmitProduceType(v)
|
||||
|
||||
if len(EmitProduct) == 0 || EmitProduct[0] == "" {
|
||||
continue
|
||||
}
|
||||
Preheat, ok := o.PreheatStep[EmitProduct[0]]
|
||||
// 预热订单未全部完成 排除
|
||||
if ok && Preheat < 5 {
|
||||
continue
|
||||
}
|
||||
ColorShuffle = append(ColorShuffle, EmitProduct...)
|
||||
}
|
||||
o.ColorShuffle = ShuffleColor(ColorShuffle, o.LastColor)
|
||||
}
|
||||
return PopEmitId
|
||||
}
|
||||
|
||||
// 订单能获取的宠物币
|
||||
func GetOrderStar(ChessList []int) int {
|
||||
func GetOrderStar(ChessList []int, EmitList []int) int {
|
||||
Star := 0
|
||||
for _, v := range ChessList {
|
||||
Star += mergeDataCfg.GetStarById(v)
|
||||
ChessLv := mergeDataCfg.GetLvById(v)
|
||||
Color := mergeDataCfg.GetColorById(v)
|
||||
EmitId := GetEmitByColor(EmitList, Color)
|
||||
if EmitId == 0 {
|
||||
continue
|
||||
}
|
||||
NewChessLv := mergeDataCfg.DynamicLevRev(ChessLv, EmitId, Color)
|
||||
n := orderCfg.GetOrderK(NewChessLv)
|
||||
Star += n
|
||||
}
|
||||
return Star
|
||||
}
|
||||
@ -556,6 +732,155 @@ func GetChessByDiff(EmitId, EnergyMul, Diff int, Color string) []int {
|
||||
}
|
||||
return GoUtil.UniqueInts(ChessIds)
|
||||
}
|
||||
func (o *OrderMod) getChessLvFromConfig1(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int {
|
||||
rand := []int{}
|
||||
t := 0
|
||||
if LastEnergy > 0 {
|
||||
t = 1
|
||||
}
|
||||
for _, v := range orderCfgMap {
|
||||
if MinEnergy >= v.Min && MaxEnergy <= v.Max {
|
||||
for _, info := range v.Pool {
|
||||
if MinLv <= info.lv && MaxLv >= info.lv && LastEnergy+info.energy <= MaxEnergy && LastEnergy+info.energy >= MinEnergy && t >= info.t {
|
||||
rand = append(rand, info.lv)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(rand) == 0 {
|
||||
return rand
|
||||
}
|
||||
return rand
|
||||
}
|
||||
|
||||
func (o *OrderMod) getChessLvFromConfig2(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int {
|
||||
rand := []int{}
|
||||
for _, v := range orderCfgMap {
|
||||
if MinEnergy >= v.Min && MaxEnergy <= v.Max {
|
||||
for _, info := range v.Pool {
|
||||
if MinLv <= info.lv && MaxLv >= info.lv {
|
||||
rand = append(rand, info.lv)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return rand
|
||||
}
|
||||
func (o *OrderMod) getChessLvFromConfig3(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int {
|
||||
rand := []int{}
|
||||
for _, v := range orderCfgMap {
|
||||
if MinEnergy >= v.Min && MaxEnergy <= v.Max {
|
||||
for _, info := range v.Pool {
|
||||
if MinLv <= info.lv && MaxLv >= info.lv && LastEnergy+info.energy <= MaxEnergy && LastEnergy+info.energy >= MinEnergy {
|
||||
rand = append(rand, info.lv)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return rand
|
||||
}
|
||||
|
||||
func (o *OrderMod) ChessPoolChess(Color string, Lv int) bool {
|
||||
for _, v := range o.ChessPool2[Color] {
|
||||
if v > Lv {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (o *OrderMod) getFromPool(Emit int, Color string, Lv int) {
|
||||
for i, v := range o.ChessPool2[Color] {
|
||||
if v == Lv {
|
||||
o.ChessPool2[Color] = append(o.ChessPool2[Color][:i], o.ChessPool2[Color][i+1:]...)
|
||||
return
|
||||
}
|
||||
}
|
||||
for i, v := range o.ChessPool2[Color] {
|
||||
if v > Lv {
|
||||
o.ChessPool2[Color] = append(o.ChessPool2[Color][:i], o.ChessPool2[Color][i+1:]...)
|
||||
for k := Lv; k < v; k++ {
|
||||
o.ChessPool2[Color] = append(o.ChessPool2[Color], k)
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
Product := mergeDataCfg.GetEmitProduceType(Emit)
|
||||
if len(Product) < 2 {
|
||||
return
|
||||
}
|
||||
for _, v := range Product {
|
||||
if Color == v {
|
||||
continue
|
||||
}
|
||||
o.ChessPool2[Color] = append(o.ChessPool2[Color], Lv)
|
||||
}
|
||||
}
|
||||
|
||||
func (o *OrderMod) getChessIdPool(Emit []int, Color string, EnergyMul, Lv, MinEnergy, MaxEnergy, OrderDiff, LastEnergy int) (int, int) {
|
||||
ChessLv := 0
|
||||
EmitChessId := getEmitBySeries(Emit, Color)
|
||||
ChessMinLv, ChessMaxLv := getChesslvRange(EmitChessId, EnergyMul, o.IsCharge)
|
||||
ChessLvRand := o.getChessLvFromConfig1(MinEnergy, MaxEnergy, ChessMinLv, ChessMaxLv, LastEnergy)
|
||||
Pool := o.ChessPool2[Color]
|
||||
ChessLvRand2 := make([]int, 0)
|
||||
for _, v := range ChessLvRand {
|
||||
if GoUtil.InArray(v, Pool) {
|
||||
ChessLvRand2 = append(ChessLvRand2, v)
|
||||
}
|
||||
}
|
||||
if len(ChessLvRand2) > 0 {
|
||||
ChessLv = GoUtil.RandSlice(ChessLvRand2)
|
||||
}
|
||||
sort.Ints(ChessLvRand)
|
||||
if len(ChessLvRand) > 0 && len(ChessLvRand2) == 0 && o.ChessPoolChess(Color, ChessLvRand[len(ChessLvRand)-1]) {
|
||||
ChessLv = ChessLvRand[len(ChessLvRand)-1]
|
||||
}
|
||||
if len(ChessLvRand) > 0 && len(ChessLvRand2) == 0 && !o.ChessPoolChess(Color, ChessLvRand[len(ChessLvRand)-1]) && len(ChessLvRand) > 0 {
|
||||
ChessLv = GoUtil.RandSlice(ChessLvRand)
|
||||
}
|
||||
if ChessLv == 0 {
|
||||
ChessLv = 6
|
||||
o.NextDiff = OrderDiff
|
||||
}
|
||||
o.getFromPool(EmitChessId, Color, ChessLv)
|
||||
NewLev := mergeDataCfg.DynamicLev(ChessLv, EmitChessId, Color)
|
||||
MaxLev := mergeDataCfg.GetMaxLvByColor(Color)
|
||||
NewLev1 := adjustLev(NewLev, EnergyMul)
|
||||
NewLev2 := min(NewLev1, MaxLev)
|
||||
Chess := mergeDataCfg.GetChessIdByLvAndColor(NewLev2, Color)
|
||||
if Chess == 0 {
|
||||
Chess = mergeDataCfg.GetChessIdByLvAndColor(6, Color)
|
||||
}
|
||||
return Chess, ChessLv
|
||||
}
|
||||
func getChessFromPoolByEnergy(o *OrderMod, MinEnergy, MaxEnergy, ChessNum int, Emit []int, EnergyMul, OrderDiff int) []int {
|
||||
ColorArr := make([]string, 0)
|
||||
for i := 0; i < ChessNum; i++ {
|
||||
ColorArr = append(ColorArr, getEmitSeries(o, Emit))
|
||||
}
|
||||
ChessArr := make([]int, 0)
|
||||
if len(ColorArr) == 1 {
|
||||
Chess, _ := o.getChessIdPool(Emit, ColorArr[0], EnergyMul, 0, MinEnergy, MaxEnergy, OrderDiff, 0)
|
||||
if Chess == 0 {
|
||||
Chess = mergeDataCfg.GetChessIdByLvAndColor(6, ColorArr[0])
|
||||
}
|
||||
return []int{Chess}
|
||||
}
|
||||
if len(ColorArr) == 2 {
|
||||
Chess1, Chess1Lv := o.getChessIdPool(Emit, ColorArr[0], EnergyMul, 0, MinEnergy, MaxEnergy, OrderDiff, 0)
|
||||
if Chess1 == 0 {
|
||||
Chess1 = mergeDataCfg.GetChessIdByLvAndColor(6, ColorArr[0])
|
||||
}
|
||||
Energy := int(math.Pow(2, float64(Chess1Lv-1)))
|
||||
Chess2, _ := o.getChessIdPool(Emit, ColorArr[1], EnergyMul, 0, MinEnergy, MaxEnergy, OrderDiff, Energy)
|
||||
return []int{Chess1, Chess2}
|
||||
}
|
||||
|
||||
return ChessArr
|
||||
}
|
||||
|
||||
// 从棋子池中获取棋子
|
||||
func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) int {
|
||||
@ -668,10 +993,29 @@ func initReflectChess2(Color string, Start, End, Diff, adjust int) {
|
||||
reflectChess[ChessId] = Diff
|
||||
}
|
||||
}
|
||||
func AdjustLev(Lev, EnergyMul int) int {
|
||||
return adjustLev(Lev, EnergyMul)
|
||||
}
|
||||
|
||||
// 调整棋子等级
|
||||
func adjustLev(Lev, EnergyMul int) int {
|
||||
return max(min(Lev, EnergyMul+12), EnergyMul+1)
|
||||
randMapList := map[int]map[int]int{
|
||||
1: {},
|
||||
2: {0: 30, 1: 70},
|
||||
3: {1: 90, 2: 10},
|
||||
4: {1: 30, 2: 70},
|
||||
5: {2: 40, 3: 60},
|
||||
6: {2: 10, 3: 50, 4: 40},
|
||||
7: {3: 20, 4: 40, 5: 40},
|
||||
8: {4: 40, 5: 60},
|
||||
9: {4: 20, 5: 40, 6: 40},
|
||||
10: {5: 40, 6: 60},
|
||||
11: {5: 20, 6: 70, 7: 10},
|
||||
}
|
||||
if v, ok := randMapList[EnergyMul]; ok {
|
||||
Lev += GoUtil.RandMap(v)
|
||||
}
|
||||
return Lev
|
||||
}
|
||||
|
||||
// 获取发射器系列
|
||||
|
||||
@ -24,6 +24,7 @@ type StartOrderData struct {
|
||||
Step int `json:"step"`
|
||||
Appear string `json:"appear"`
|
||||
Preview string `json:"preview"`
|
||||
Group int `json:"group"`
|
||||
Items []*item.Item
|
||||
}
|
||||
|
||||
|
||||
@ -536,6 +536,7 @@ const (
|
||||
ORDER_TYPE_Pet_type ORDER_TYPE = 11 // 宠物订单
|
||||
ORDER_TYPE_Preview_type ORDER_TYPE = 12 // 预览订单
|
||||
ORDER_TYPE_Fixed_type ORDER_TYPE = 13 // 修复订单
|
||||
ORDER_TYPE_Playroom_type ORDER_TYPE = 14 // playroom订单
|
||||
)
|
||||
|
||||
// Enum value maps for ORDER_TYPE.
|
||||
@ -555,6 +556,7 @@ var (
|
||||
11: "Pet_type",
|
||||
12: "Preview_type",
|
||||
13: "Fixed_type",
|
||||
14: "Playroom_type",
|
||||
}
|
||||
ORDER_TYPE_value = map[string]int32{
|
||||
"ORDER_TYPE_DEFAULT": 0,
|
||||
@ -571,6 +573,7 @@ var (
|
||||
"Pet_type": 11,
|
||||
"Preview_type": 12,
|
||||
"Fixed_type": 13,
|
||||
"Playroom_type": 14,
|
||||
}
|
||||
)
|
||||
|
||||
@ -682,6 +685,7 @@ const (
|
||||
TIME_LINE_TYPE_LOG_TYPE_PLAYROOM_CAT_LOSE TIME_LINE_TYPE = 27 // 小猫游戏,装箱小猫未成功
|
||||
TIME_LINE_TYPE_LOG_TYPE_CARD_GIVE_ACCEPT TIME_LINE_TYPE = 28 // 接受卡牌请求
|
||||
TIME_LINE_TYPE_LOG_TYPE_FRIEND_INVITE TIME_LINE_TYPE = 29 // 邀请注册
|
||||
TIME_LINE_TYPE_LOG_TYPE_TREASURE_HELP TIME_LINE_TYPE = 30 // 宠物宝藏帮助
|
||||
)
|
||||
|
||||
// Enum value maps for TIME_LINE_TYPE.
|
||||
@ -715,6 +719,7 @@ var (
|
||||
27: "LOG_TYPE_PLAYROOM_CAT_LOSE",
|
||||
28: "LOG_TYPE_CARD_GIVE_ACCEPT",
|
||||
29: "LOG_TYPE_FRIEND_INVITE",
|
||||
30: "LOG_TYPE_TREASURE_HELP",
|
||||
}
|
||||
TIME_LINE_TYPE_value = map[string]int32{
|
||||
"DEFAULT": 0,
|
||||
@ -745,6 +750,7 @@ var (
|
||||
"LOG_TYPE_PLAYROOM_CAT_LOSE": 27,
|
||||
"LOG_TYPE_CARD_GIVE_ACCEPT": 28,
|
||||
"LOG_TYPE_FRIEND_INVITE": 29,
|
||||
"LOG_TYPE_TREASURE_HELP": 30,
|
||||
}
|
||||
)
|
||||
|
||||
@ -3199,7 +3205,7 @@ type ResPlayerChessInfo struct {
|
||||
ChessBag *ChessBag `protobuf:"bytes,3,opt,name=ChessBag,proto3" json:"ChessBag,omitempty"`
|
||||
RetireEmit []string `protobuf:"bytes,4,rep,name=RetireEmit,proto3" json:"RetireEmit,omitempty"`
|
||||
Honor []int32 `protobuf:"varint,5,rep,packed,name=Honor,proto3" json:"Honor,omitempty"`
|
||||
PartBag *PartBag `protobuf:"bytes,6,opt,name=PartBag,proto3" json:"PartBag,omitempty"`
|
||||
PartBag *PartBag `protobuf:"bytes,6,opt,name=PartBag,proto3" json:"PartBag,omitempty"` // 满级零件
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
@ -13191,6 +13197,7 @@ type FriendBubbleInfo struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 气泡id
|
||||
Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 气泡类型 1:普通 2:
|
||||
Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
@ -13239,6 +13246,13 @@ func (x *FriendBubbleInfo) GetType() int32 {
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *FriendBubbleInfo) GetItems() []*ItemInfo {
|
||||
if x != nil {
|
||||
return x.Items
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type NotifyFriendCard struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Info *ResFriendCard `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"`
|
||||
@ -26825,10 +26839,11 @@ const file_proto_Gameapi_proto_rawDesc = "" +
|
||||
"\x06Upvote\x18\x06 \x01(\bR\x06Upvote\"q\n" +
|
||||
"\x0fNotifyFriendLog\x12*\n" +
|
||||
"\x04info\x18\x01 \x01(\v2\x16.tutorial.ResFriendLogR\x04info\x122\n" +
|
||||
"\x06Bubble\x18\x02 \x01(\v2\x1a.tutorial.FriendBubbleInfoR\x06Bubble\"6\n" +
|
||||
"\x06Bubble\x18\x02 \x01(\v2\x1a.tutorial.FriendBubbleInfoR\x06Bubble\"`\n" +
|
||||
"\x10FriendBubbleInfo\x12\x0e\n" +
|
||||
"\x02Id\x18\x01 \x01(\x05R\x02Id\x12\x12\n" +
|
||||
"\x04Type\x18\x02 \x01(\x05R\x04Type\"?\n" +
|
||||
"\x04Type\x18\x02 \x01(\x05R\x04Type\x12(\n" +
|
||||
"\x05Items\x18\x03 \x03(\v2\x12.tutorial.ItemInfoR\x05Items\"?\n" +
|
||||
"\x10NotifyFriendCard\x12+\n" +
|
||||
"\x04Info\x18\x01 \x01(\v2\x17.tutorial.ResFriendCardR\x04Info\"\x91\x02\n" +
|
||||
"\rResFriendCard\x12\x10\n" +
|
||||
@ -27843,7 +27858,7 @@ const file_proto_Gameapi_proto_rawDesc = "" +
|
||||
"\x14ACT_TYPE_GUESS_COLOR\x10\x02\x12\x11\n" +
|
||||
"\rACT_TYPE_RACE\x10\x03\x12\x1a\n" +
|
||||
"\x16ACT_TYPE_DISCOUNT_GIFT\x10\x04\x12\x15\n" +
|
||||
"\x11ACT_TYPE_ADD_GIFT\x10\x05*\x82\x02\n" +
|
||||
"\x11ACT_TYPE_ADD_GIFT\x10\x05*\x95\x02\n" +
|
||||
"\n" +
|
||||
"ORDER_TYPE\x12\x16\n" +
|
||||
"\x12ORDER_TYPE_DEFAULT\x10\x00\x12\x0f\n" +
|
||||
@ -27865,13 +27880,14 @@ const file_proto_Gameapi_proto_rawDesc = "" +
|
||||
"\bPet_type\x10\v\x12\x10\n" +
|
||||
"\fPreview_type\x10\f\x12\x0e\n" +
|
||||
"\n" +
|
||||
"Fixed_type\x10\r*A\n" +
|
||||
"Fixed_type\x10\r\x12\x11\n" +
|
||||
"\rPlayroom_type\x10\x0e*A\n" +
|
||||
"\n" +
|
||||
"LOGIN_TYPE\x12\x11\n" +
|
||||
"\rACCOUNT_LOGIN\x10\x00\x12\x0e\n" +
|
||||
"\n" +
|
||||
"CODE_LOGIN\x10\x01\x12\x10\n" +
|
||||
"\fDEVICE_LOGIN\x10\x02*\x9d\x06\n" +
|
||||
"\fDEVICE_LOGIN\x10\x02*\xb9\x06\n" +
|
||||
"\x0eTIME_LINE_TYPE\x12\v\n" +
|
||||
"\aDEFAULT\x10\x00\x12\x19\n" +
|
||||
"\x15LOG_TYPE_FRIEND_APPLY\x10\x01\x12\x1a\n" +
|
||||
@ -27901,7 +27917,8 @@ const file_proto_Gameapi_proto_rawDesc = "" +
|
||||
"\x19LOG_TYPE_PLAYROOM_CAT_WIN\x10\x1a\x12\x1e\n" +
|
||||
"\x1aLOG_TYPE_PLAYROOM_CAT_LOSE\x10\x1b\x12\x1d\n" +
|
||||
"\x19LOG_TYPE_CARD_GIVE_ACCEPT\x10\x1c\x12\x1a\n" +
|
||||
"\x16LOG_TYPE_FRIEND_INVITE\x10\x1d*\x9b\x01\n" +
|
||||
"\x16LOG_TYPE_FRIEND_INVITE\x10\x1d\x12\x1a\n" +
|
||||
"\x16LOG_TYPE_TREASURE_HELP\x10\x1e*\x9b\x01\n" +
|
||||
"\rCHESS_EX_TYPE\x12\x11\n" +
|
||||
"\rCHESS_EX_NONE\x10\x00\x12\x13\n" +
|
||||
"\x0fCHESS_EX_BUBBLE\x10\x01\x12\x10\n" +
|
||||
@ -28592,169 +28609,170 @@ var file_proto_Gameapi_proto_depIdxs = []int32{
|
||||
225, // 123: tutorial.ResFriendLog.Player:type_name -> tutorial.ResPlayerSimple
|
||||
227, // 124: tutorial.NotifyFriendLog.info:type_name -> tutorial.ResFriendLog
|
||||
229, // 125: tutorial.NotifyFriendLog.Bubble:type_name -> tutorial.FriendBubbleInfo
|
||||
231, // 126: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard
|
||||
494, // 127: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry
|
||||
2, // 128: tutorial.ResFriendByCode.Code:type_name -> tutorial.RES_CODE
|
||||
225, // 129: tutorial.ResFriendByCode.Player:type_name -> tutorial.ResPlayerSimple
|
||||
225, // 130: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple
|
||||
2, // 131: tutorial.ResFriendIgnore.Code:type_name -> tutorial.RES_CODE
|
||||
225, // 132: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple
|
||||
2, // 133: tutorial.ResAddNpc.Code:type_name -> tutorial.RES_CODE
|
||||
246, // 134: tutorial.ResFriendApply.ApplyList:type_name -> tutorial.ResFriendApplyInfo
|
||||
225, // 135: tutorial.ResFriendApplyInfo.Player:type_name -> tutorial.ResPlayerSimple
|
||||
231, // 136: tutorial.ResFriendCardMsg.MsgList:type_name -> tutorial.ResFriendCard
|
||||
246, // 137: tutorial.ResWishApplyList.ApplyList:type_name -> tutorial.ResFriendApplyInfo
|
||||
2, // 138: tutorial.ResWishApply.Code:type_name -> tutorial.RES_CODE
|
||||
227, // 139: tutorial.ResFriendTimeLine.Log:type_name -> tutorial.ResFriendLog
|
||||
229, // 140: tutorial.ResFriendBubble.Bubble:type_name -> tutorial.FriendBubbleInfo
|
||||
2, // 141: tutorial.ResFriendTLUpvote.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 142: tutorial.ResFriendTReward.Code:type_name -> tutorial.RES_CODE
|
||||
225, // 143: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple
|
||||
2, // 144: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 145: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE
|
||||
225, // 146: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple
|
||||
2, // 147: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 148: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE
|
||||
495, // 149: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry
|
||||
496, // 150: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry
|
||||
164, // 151: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo
|
||||
273, // 152: tutorial.MailNotify.Info:type_name -> tutorial.MailInfo
|
||||
2, // 153: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 154: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 155: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE
|
||||
497, // 156: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry
|
||||
498, // 157: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry
|
||||
499, // 158: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry
|
||||
282, // 159: tutorial.ResCharge.Wish:type_name -> tutorial.WishList
|
||||
2, // 160: tutorial.ResAddWish.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 161: tutorial.ResGetWish.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 162: tutorial.ResSendWishBeg.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 163: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 164: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE
|
||||
500, // 165: tutorial.ReqBuyChessShop2.mChessData:type_name -> tutorial.ReqBuyChessShop2.MChessDataEntry
|
||||
2, // 166: tutorial.ResBuyChessShop2.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 167: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE
|
||||
501, // 168: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry
|
||||
164, // 169: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo
|
||||
2, // 170: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 171: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 172: tutorial.ResChargeReceive.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 173: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 174: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 175: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE
|
||||
502, // 176: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry
|
||||
503, // 177: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry
|
||||
504, // 178: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry
|
||||
505, // 179: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry
|
||||
506, // 180: tutorial.ResNotifyCard.Handbook:type_name -> tutorial.ResNotifyCard.HandbookEntry
|
||||
2, // 181: tutorial.ResSetFacebookUrl.Code:type_name -> tutorial.RES_CODE
|
||||
507, // 182: tutorial.ResMining.Map:type_name -> tutorial.ResMining.MapEntry
|
||||
508, // 183: tutorial.ReqMiningTake.Map:type_name -> tutorial.ReqMiningTake.MapEntry
|
||||
2, // 184: tutorial.ResMiningTake.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 185: tutorial.ResMiningReward.Code:type_name -> tutorial.RES_CODE
|
||||
509, // 186: tutorial.ResActRed.Red:type_name -> tutorial.ResActRed.RedEntry
|
||||
200, // 187: tutorial.ActivityNotify.Info:type_name -> tutorial.ActivityInfo
|
||||
510, // 188: tutorial.ResItem.Item:type_name -> tutorial.ResItem.ItemEntry
|
||||
511, // 189: tutorial.ItemNotify.Item:type_name -> tutorial.ItemNotify.ItemEntry
|
||||
352, // 190: tutorial.ResGuessColor.MapList:type_name -> tutorial.GuessColorInfo
|
||||
512, // 191: tutorial.ResGuessColor.OMap:type_name -> tutorial.ResGuessColor.OMapEntry
|
||||
350, // 192: tutorial.ResGuessColor.Opponent:type_name -> tutorial.opponent
|
||||
352, // 193: tutorial.ReqGuessColorTake.Map:type_name -> tutorial.GuessColorInfo
|
||||
513, // 194: tutorial.ReqGuessColorTake.OMap:type_name -> tutorial.ReqGuessColorTake.OMapEntry
|
||||
514, // 195: tutorial.GuessColorInfo.Map:type_name -> tutorial.GuessColorInfo.MapEntry
|
||||
2, // 196: tutorial.ResGuessColorTake.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 197: tutorial.ResGuessColorReward.Code:type_name -> tutorial.RES_CODE
|
||||
358, // 198: tutorial.ResRace.Opponent:type_name -> tutorial.raceopponent
|
||||
2, // 199: tutorial.ResRaceStart.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 200: tutorial.ResRaceReward.Code:type_name -> tutorial.RES_CODE
|
||||
164, // 201: tutorial.ResPlayroom.Items:type_name -> tutorial.ItemInfo
|
||||
392, // 202: tutorial.ResPlayroom.Opponent:type_name -> tutorial.RoomOpponent
|
||||
391, // 203: tutorial.ResPlayroom.Friend:type_name -> tutorial.FriendRoom
|
||||
515, // 204: tutorial.ResPlayroom.Playroom:type_name -> tutorial.ResPlayroom.PlayroomEntry
|
||||
377, // 205: tutorial.ResPlayroom.collect:type_name -> tutorial.PlayroomCollectInfo
|
||||
516, // 206: tutorial.ResPlayroom.Mood:type_name -> tutorial.ResPlayroom.MoodEntry
|
||||
164, // 207: tutorial.ResPlayroom.LoseItem:type_name -> tutorial.ItemInfo
|
||||
387, // 208: tutorial.ResPlayroom.Chip:type_name -> tutorial.ChipInfo
|
||||
517, // 209: tutorial.ResPlayroom.Physiology:type_name -> tutorial.ResPlayroom.PhysiologyEntry
|
||||
518, // 210: tutorial.ResPlayroom.Dress:type_name -> tutorial.ResPlayroom.DressEntry
|
||||
519, // 211: tutorial.ResPlayroom.DressSet:type_name -> tutorial.ResPlayroom.DressSetEntry
|
||||
376, // 212: tutorial.ResPlayroom.PetAir:type_name -> tutorial.PlayroomAirInfo
|
||||
174, // 213: tutorial.ResPlayroom.DailyTask:type_name -> tutorial.DailyTask
|
||||
389, // 214: tutorial.ResPlayroom.AdItem:type_name -> tutorial.AdItem
|
||||
391, // 215: tutorial.ResPlayroom.Target:type_name -> tutorial.FriendRoom
|
||||
174, // 216: tutorial.NotifyPlayroomTask.DailyTask:type_name -> tutorial.DailyTask
|
||||
2, // 217: tutorial.ResPlayroomTask.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 218: tutorial.ResPlayroomTaskReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 219: tutorial.ResPlayroomUnlock.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 220: tutorial.ResPlayroomUpvote.Code:type_name -> tutorial.RES_CODE
|
||||
375, // 221: tutorial.PlayroomDress.List:type_name -> tutorial.PlayroomDressInfo
|
||||
520, // 222: tutorial.ReqPlayroomDressSet.DressSet:type_name -> tutorial.ReqPlayroomDressSet.DressSetEntry
|
||||
2, // 223: tutorial.ResPlayroomDressSet.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 224: tutorial.ResPlayroomPetAirSet.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 225: tutorial.ResPlayroomWrokOutline.Code:type_name -> tutorial.RES_CODE
|
||||
164, // 226: tutorial.NotifyPlayroomLose.LoseItem:type_name -> tutorial.ItemInfo
|
||||
387, // 227: tutorial.NotifyPlayroomLose.Chip:type_name -> tutorial.ChipInfo
|
||||
521, // 228: tutorial.NotifyPlayroomMood.Mood:type_name -> tutorial.NotifyPlayroomMood.MoodEntry
|
||||
522, // 229: tutorial.NotifyPlayroomMood.Physiology:type_name -> tutorial.NotifyPlayroomMood.PhysiologyEntry
|
||||
389, // 230: tutorial.NotifyPlayroomMood.AdItem:type_name -> tutorial.AdItem
|
||||
523, // 231: tutorial.ResPlayroomInfo.Playroom:type_name -> tutorial.ResPlayroomInfo.PlayroomEntry
|
||||
524, // 232: tutorial.ResPlayroomInfo.Items:type_name -> tutorial.ResPlayroomInfo.ItemsEntry
|
||||
525, // 233: tutorial.ResPlayroomInfo.flip:type_name -> tutorial.ResPlayroomInfo.FlipEntry
|
||||
526, // 234: tutorial.ResPlayroomInfo.Emoji:type_name -> tutorial.ResPlayroomInfo.EmojiEntry
|
||||
527, // 235: tutorial.ResPlayroomInfo.DressSet:type_name -> tutorial.ResPlayroomInfo.DressSetEntry
|
||||
2, // 236: tutorial.ResPlayroomFlip.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 237: tutorial.ResPlayroomGuide.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 238: tutorial.ResPlayroomFlipReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 239: tutorial.ResPlayroomGame.Code:type_name -> tutorial.RES_CODE
|
||||
528, // 240: tutorial.ResPlayroomGame.Items:type_name -> tutorial.ResPlayroomGame.ItemsEntry
|
||||
164, // 241: tutorial.ResPlayroomGameShowReward.Items:type_name -> tutorial.ItemInfo
|
||||
2, // 242: tutorial.ResPlayroomInteract.Code:type_name -> tutorial.RES_CODE
|
||||
529, // 243: tutorial.ReqPlayroomSetRoom.Playroom:type_name -> tutorial.ReqPlayroomSetRoom.PlayroomEntry
|
||||
2, // 244: tutorial.ResPlayroomSetRoom.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 245: tutorial.ResPlayroomSelectReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 246: tutorial.ResPlayroomLose.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 247: tutorial.ResPlayroomWork.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 248: tutorial.ResPlayroomRest.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 249: tutorial.ResPlayroomDraw.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 250: tutorial.ResPlayroomChip.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 251: tutorial.ResPlayroomBuyItem.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 252: tutorial.ResPlayroomShop.Code:type_name -> tutorial.RES_CODE
|
||||
427, // 253: tutorial.ResFriendTreasure.List:type_name -> tutorial.TreasureInfo
|
||||
427, // 254: tutorial.ReqFriendTreasureStart.List:type_name -> tutorial.TreasureInfo
|
||||
2, // 255: tutorial.ResFriendTreasureStart.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 256: tutorial.ResFriendTreasureEnd.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 257: tutorial.ResFriendTreasureFilp.Code:type_name -> tutorial.RES_CODE
|
||||
438, // 258: tutorial.ResCollectInfo.Items:type_name -> tutorial.CollectItem
|
||||
164, // 259: tutorial.CollectItem.Items:type_name -> tutorial.ItemInfo
|
||||
2, // 260: tutorial.ResCollect.Code:type_name -> tutorial.RES_CODE
|
||||
443, // 261: tutorial.ResCatnip.GameList:type_name -> tutorial.CatnipGame
|
||||
225, // 262: tutorial.CatnipGame.Partner:type_name -> tutorial.ResPlayerSimple
|
||||
2, // 263: tutorial.ResCatnipInvite.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 264: tutorial.ResCatnipAgree.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 265: tutorial.ResCatnipRefuse.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 266: tutorial.ResCatnipMultiply.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 267: tutorial.ResCatnipPlay.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 268: tutorial.ResCatnipReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 269: tutorial.ResCatnipGrandReward.Code:type_name -> tutorial.RES_CODE
|
||||
167, // 270: tutorial.ResGuideTask.TaskEntry.value:type_name -> tutorial.GuideTask
|
||||
173, // 271: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek
|
||||
174, // 272: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask
|
||||
210, // 273: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent
|
||||
225, // 274: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple
|
||||
273, // 275: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo
|
||||
289, // 276: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop
|
||||
290, // 277: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop
|
||||
301, // 278: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo
|
||||
226, // 279: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank
|
||||
226, // 280: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank
|
||||
374, // 281: tutorial.ResPlayroom.DressEntry.value:type_name -> tutorial.PlayroomDress
|
||||
164, // 282: tutorial.ResPlayroomInfo.ItemsEntry.value:type_name -> tutorial.ItemInfo
|
||||
164, // 283: tutorial.ResPlayroomGame.ItemsEntry.value:type_name -> tutorial.ItemInfo
|
||||
284, // [284:284] is the sub-list for method output_type
|
||||
284, // [284:284] is the sub-list for method input_type
|
||||
284, // [284:284] is the sub-list for extension type_name
|
||||
284, // [284:284] is the sub-list for extension extendee
|
||||
0, // [0:284] is the sub-list for field type_name
|
||||
164, // 126: tutorial.FriendBubbleInfo.Items:type_name -> tutorial.ItemInfo
|
||||
231, // 127: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard
|
||||
494, // 128: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry
|
||||
2, // 129: tutorial.ResFriendByCode.Code:type_name -> tutorial.RES_CODE
|
||||
225, // 130: tutorial.ResFriendByCode.Player:type_name -> tutorial.ResPlayerSimple
|
||||
225, // 131: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple
|
||||
2, // 132: tutorial.ResFriendIgnore.Code:type_name -> tutorial.RES_CODE
|
||||
225, // 133: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple
|
||||
2, // 134: tutorial.ResAddNpc.Code:type_name -> tutorial.RES_CODE
|
||||
246, // 135: tutorial.ResFriendApply.ApplyList:type_name -> tutorial.ResFriendApplyInfo
|
||||
225, // 136: tutorial.ResFriendApplyInfo.Player:type_name -> tutorial.ResPlayerSimple
|
||||
231, // 137: tutorial.ResFriendCardMsg.MsgList:type_name -> tutorial.ResFriendCard
|
||||
246, // 138: tutorial.ResWishApplyList.ApplyList:type_name -> tutorial.ResFriendApplyInfo
|
||||
2, // 139: tutorial.ResWishApply.Code:type_name -> tutorial.RES_CODE
|
||||
227, // 140: tutorial.ResFriendTimeLine.Log:type_name -> tutorial.ResFriendLog
|
||||
229, // 141: tutorial.ResFriendBubble.Bubble:type_name -> tutorial.FriendBubbleInfo
|
||||
2, // 142: tutorial.ResFriendTLUpvote.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 143: tutorial.ResFriendTReward.Code:type_name -> tutorial.RES_CODE
|
||||
225, // 144: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple
|
||||
2, // 145: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 146: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE
|
||||
225, // 147: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple
|
||||
2, // 148: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 149: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE
|
||||
495, // 150: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry
|
||||
496, // 151: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry
|
||||
164, // 152: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo
|
||||
273, // 153: tutorial.MailNotify.Info:type_name -> tutorial.MailInfo
|
||||
2, // 154: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 155: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 156: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE
|
||||
497, // 157: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry
|
||||
498, // 158: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry
|
||||
499, // 159: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry
|
||||
282, // 160: tutorial.ResCharge.Wish:type_name -> tutorial.WishList
|
||||
2, // 161: tutorial.ResAddWish.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 162: tutorial.ResGetWish.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 163: tutorial.ResSendWishBeg.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 164: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 165: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE
|
||||
500, // 166: tutorial.ReqBuyChessShop2.mChessData:type_name -> tutorial.ReqBuyChessShop2.MChessDataEntry
|
||||
2, // 167: tutorial.ResBuyChessShop2.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 168: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE
|
||||
501, // 169: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry
|
||||
164, // 170: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo
|
||||
2, // 171: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 172: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 173: tutorial.ResChargeReceive.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 174: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 175: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 176: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE
|
||||
502, // 177: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry
|
||||
503, // 178: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry
|
||||
504, // 179: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry
|
||||
505, // 180: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry
|
||||
506, // 181: tutorial.ResNotifyCard.Handbook:type_name -> tutorial.ResNotifyCard.HandbookEntry
|
||||
2, // 182: tutorial.ResSetFacebookUrl.Code:type_name -> tutorial.RES_CODE
|
||||
507, // 183: tutorial.ResMining.Map:type_name -> tutorial.ResMining.MapEntry
|
||||
508, // 184: tutorial.ReqMiningTake.Map:type_name -> tutorial.ReqMiningTake.MapEntry
|
||||
2, // 185: tutorial.ResMiningTake.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 186: tutorial.ResMiningReward.Code:type_name -> tutorial.RES_CODE
|
||||
509, // 187: tutorial.ResActRed.Red:type_name -> tutorial.ResActRed.RedEntry
|
||||
200, // 188: tutorial.ActivityNotify.Info:type_name -> tutorial.ActivityInfo
|
||||
510, // 189: tutorial.ResItem.Item:type_name -> tutorial.ResItem.ItemEntry
|
||||
511, // 190: tutorial.ItemNotify.Item:type_name -> tutorial.ItemNotify.ItemEntry
|
||||
352, // 191: tutorial.ResGuessColor.MapList:type_name -> tutorial.GuessColorInfo
|
||||
512, // 192: tutorial.ResGuessColor.OMap:type_name -> tutorial.ResGuessColor.OMapEntry
|
||||
350, // 193: tutorial.ResGuessColor.Opponent:type_name -> tutorial.opponent
|
||||
352, // 194: tutorial.ReqGuessColorTake.Map:type_name -> tutorial.GuessColorInfo
|
||||
513, // 195: tutorial.ReqGuessColorTake.OMap:type_name -> tutorial.ReqGuessColorTake.OMapEntry
|
||||
514, // 196: tutorial.GuessColorInfo.Map:type_name -> tutorial.GuessColorInfo.MapEntry
|
||||
2, // 197: tutorial.ResGuessColorTake.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 198: tutorial.ResGuessColorReward.Code:type_name -> tutorial.RES_CODE
|
||||
358, // 199: tutorial.ResRace.Opponent:type_name -> tutorial.raceopponent
|
||||
2, // 200: tutorial.ResRaceStart.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 201: tutorial.ResRaceReward.Code:type_name -> tutorial.RES_CODE
|
||||
164, // 202: tutorial.ResPlayroom.Items:type_name -> tutorial.ItemInfo
|
||||
392, // 203: tutorial.ResPlayroom.Opponent:type_name -> tutorial.RoomOpponent
|
||||
391, // 204: tutorial.ResPlayroom.Friend:type_name -> tutorial.FriendRoom
|
||||
515, // 205: tutorial.ResPlayroom.Playroom:type_name -> tutorial.ResPlayroom.PlayroomEntry
|
||||
377, // 206: tutorial.ResPlayroom.collect:type_name -> tutorial.PlayroomCollectInfo
|
||||
516, // 207: tutorial.ResPlayroom.Mood:type_name -> tutorial.ResPlayroom.MoodEntry
|
||||
164, // 208: tutorial.ResPlayroom.LoseItem:type_name -> tutorial.ItemInfo
|
||||
387, // 209: tutorial.ResPlayroom.Chip:type_name -> tutorial.ChipInfo
|
||||
517, // 210: tutorial.ResPlayroom.Physiology:type_name -> tutorial.ResPlayroom.PhysiologyEntry
|
||||
518, // 211: tutorial.ResPlayroom.Dress:type_name -> tutorial.ResPlayroom.DressEntry
|
||||
519, // 212: tutorial.ResPlayroom.DressSet:type_name -> tutorial.ResPlayroom.DressSetEntry
|
||||
376, // 213: tutorial.ResPlayroom.PetAir:type_name -> tutorial.PlayroomAirInfo
|
||||
174, // 214: tutorial.ResPlayroom.DailyTask:type_name -> tutorial.DailyTask
|
||||
389, // 215: tutorial.ResPlayroom.AdItem:type_name -> tutorial.AdItem
|
||||
391, // 216: tutorial.ResPlayroom.Target:type_name -> tutorial.FriendRoom
|
||||
174, // 217: tutorial.NotifyPlayroomTask.DailyTask:type_name -> tutorial.DailyTask
|
||||
2, // 218: tutorial.ResPlayroomTask.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 219: tutorial.ResPlayroomTaskReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 220: tutorial.ResPlayroomUnlock.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 221: tutorial.ResPlayroomUpvote.Code:type_name -> tutorial.RES_CODE
|
||||
375, // 222: tutorial.PlayroomDress.List:type_name -> tutorial.PlayroomDressInfo
|
||||
520, // 223: tutorial.ReqPlayroomDressSet.DressSet:type_name -> tutorial.ReqPlayroomDressSet.DressSetEntry
|
||||
2, // 224: tutorial.ResPlayroomDressSet.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 225: tutorial.ResPlayroomPetAirSet.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 226: tutorial.ResPlayroomWrokOutline.Code:type_name -> tutorial.RES_CODE
|
||||
164, // 227: tutorial.NotifyPlayroomLose.LoseItem:type_name -> tutorial.ItemInfo
|
||||
387, // 228: tutorial.NotifyPlayroomLose.Chip:type_name -> tutorial.ChipInfo
|
||||
521, // 229: tutorial.NotifyPlayroomMood.Mood:type_name -> tutorial.NotifyPlayroomMood.MoodEntry
|
||||
522, // 230: tutorial.NotifyPlayroomMood.Physiology:type_name -> tutorial.NotifyPlayroomMood.PhysiologyEntry
|
||||
389, // 231: tutorial.NotifyPlayroomMood.AdItem:type_name -> tutorial.AdItem
|
||||
523, // 232: tutorial.ResPlayroomInfo.Playroom:type_name -> tutorial.ResPlayroomInfo.PlayroomEntry
|
||||
524, // 233: tutorial.ResPlayroomInfo.Items:type_name -> tutorial.ResPlayroomInfo.ItemsEntry
|
||||
525, // 234: tutorial.ResPlayroomInfo.flip:type_name -> tutorial.ResPlayroomInfo.FlipEntry
|
||||
526, // 235: tutorial.ResPlayroomInfo.Emoji:type_name -> tutorial.ResPlayroomInfo.EmojiEntry
|
||||
527, // 236: tutorial.ResPlayroomInfo.DressSet:type_name -> tutorial.ResPlayroomInfo.DressSetEntry
|
||||
2, // 237: tutorial.ResPlayroomFlip.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 238: tutorial.ResPlayroomGuide.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 239: tutorial.ResPlayroomFlipReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 240: tutorial.ResPlayroomGame.Code:type_name -> tutorial.RES_CODE
|
||||
528, // 241: tutorial.ResPlayroomGame.Items:type_name -> tutorial.ResPlayroomGame.ItemsEntry
|
||||
164, // 242: tutorial.ResPlayroomGameShowReward.Items:type_name -> tutorial.ItemInfo
|
||||
2, // 243: tutorial.ResPlayroomInteract.Code:type_name -> tutorial.RES_CODE
|
||||
529, // 244: tutorial.ReqPlayroomSetRoom.Playroom:type_name -> tutorial.ReqPlayroomSetRoom.PlayroomEntry
|
||||
2, // 245: tutorial.ResPlayroomSetRoom.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 246: tutorial.ResPlayroomSelectReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 247: tutorial.ResPlayroomLose.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 248: tutorial.ResPlayroomWork.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 249: tutorial.ResPlayroomRest.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 250: tutorial.ResPlayroomDraw.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 251: tutorial.ResPlayroomChip.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 252: tutorial.ResPlayroomBuyItem.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 253: tutorial.ResPlayroomShop.Code:type_name -> tutorial.RES_CODE
|
||||
427, // 254: tutorial.ResFriendTreasure.List:type_name -> tutorial.TreasureInfo
|
||||
427, // 255: tutorial.ReqFriendTreasureStart.List:type_name -> tutorial.TreasureInfo
|
||||
2, // 256: tutorial.ResFriendTreasureStart.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 257: tutorial.ResFriendTreasureEnd.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 258: tutorial.ResFriendTreasureFilp.Code:type_name -> tutorial.RES_CODE
|
||||
438, // 259: tutorial.ResCollectInfo.Items:type_name -> tutorial.CollectItem
|
||||
164, // 260: tutorial.CollectItem.Items:type_name -> tutorial.ItemInfo
|
||||
2, // 261: tutorial.ResCollect.Code:type_name -> tutorial.RES_CODE
|
||||
443, // 262: tutorial.ResCatnip.GameList:type_name -> tutorial.CatnipGame
|
||||
225, // 263: tutorial.CatnipGame.Partner:type_name -> tutorial.ResPlayerSimple
|
||||
2, // 264: tutorial.ResCatnipInvite.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 265: tutorial.ResCatnipAgree.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 266: tutorial.ResCatnipRefuse.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 267: tutorial.ResCatnipMultiply.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 268: tutorial.ResCatnipPlay.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 269: tutorial.ResCatnipReward.Code:type_name -> tutorial.RES_CODE
|
||||
2, // 270: tutorial.ResCatnipGrandReward.Code:type_name -> tutorial.RES_CODE
|
||||
167, // 271: tutorial.ResGuideTask.TaskEntry.value:type_name -> tutorial.GuideTask
|
||||
173, // 272: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek
|
||||
174, // 273: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask
|
||||
210, // 274: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent
|
||||
225, // 275: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple
|
||||
273, // 276: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo
|
||||
289, // 277: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop
|
||||
290, // 278: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop
|
||||
301, // 279: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo
|
||||
226, // 280: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank
|
||||
226, // 281: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank
|
||||
374, // 282: tutorial.ResPlayroom.DressEntry.value:type_name -> tutorial.PlayroomDress
|
||||
164, // 283: tutorial.ResPlayroomInfo.ItemsEntry.value:type_name -> tutorial.ItemInfo
|
||||
164, // 284: tutorial.ResPlayroomGame.ItemsEntry.value:type_name -> tutorial.ItemInfo
|
||||
285, // [285:285] is the sub-list for method output_type
|
||||
285, // [285:285] is the sub-list for method input_type
|
||||
285, // [285:285] is the sub-list for extension type_name
|
||||
285, // [285:285] is the sub-list for extension extendee
|
||||
0, // [0:285] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_proto_Gameapi_proto_init() }
|
||||
|
||||
Loading…
Reference in New Issue
Block a user