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