Merge branch 'sdk' into online
This commit is contained in:
commit
d773192b85
@ -52,7 +52,9 @@ func RandSlice(slice []int) int {
|
||||
return slice[Id]
|
||||
}
|
||||
|
||||
func RandSliceNum(slice []int, num int) []int {
|
||||
func RandSliceNum(s []int, num int) []int {
|
||||
slice := make([]int, len(s))
|
||||
copy(slice, s)
|
||||
r := make([]int, 0, num)
|
||||
if num <= 0 || len(slice) < num {
|
||||
return slice
|
||||
@ -82,7 +84,9 @@ func RandSliceNum2(s []interface{}, num int) []interface{} {
|
||||
return r
|
||||
}
|
||||
|
||||
func RandSliceNumNonAdjacent(slice []int, num int) []int {
|
||||
func RandSliceNumNonAdjacent(s []int, num int) []int {
|
||||
slice := make([]int, len(s))
|
||||
copy(slice, s)
|
||||
if len(slice) < 2*num {
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -93,6 +93,14 @@ func RedisZRangeWithScores(key string, start, stop int64) ([]redis.Z, error) {
|
||||
return val, nil
|
||||
}
|
||||
|
||||
func RedisZRevRangeWithScores(key string, start, stop int64) ([]redis.Z, error) {
|
||||
val, err := Rdb.ZRevRangeWithScores(ctx, key, start, stop).Result()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return val, nil
|
||||
}
|
||||
|
||||
func RedisZRankWithScores(key, member string) (int64, float64, error) {
|
||||
val, err := Rdb.ZRank(ctx, key, member).Result()
|
||||
if err != nil {
|
||||
|
||||
@ -474,7 +474,10 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
|
||||
ResCard := make([]*msg.CardPack, 0)
|
||||
ResItem := make([]*msg.ItemInfo, 0)
|
||||
ItemMod := p.PlayMod.getItemMod()
|
||||
|
||||
AvatarMod := p.PlayMod.getAvatarMod()
|
||||
EmojiMod := p.PlayMod.getEmojiMod()
|
||||
FaceMod := p.PlayMod.getFaceMod()
|
||||
BackDataType := map[int]struct{}{}
|
||||
for _, v := range itemList {
|
||||
if v.Num == 0 {
|
||||
continue
|
||||
@ -625,14 +628,30 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
|
||||
"piggy_bank_id": Effect,
|
||||
"income_from": Label,
|
||||
})
|
||||
case item.ITEM_TYPE_AVATAR:
|
||||
case item.ITEM_TYPE_AVATAR: // 头像框
|
||||
Effect := itemCfg.GetItemEffectList(v.Id)
|
||||
AvatarMod := p.PlayMod.getAvatarMod()
|
||||
AvatarMod.Unlock(Effect[0], Effect[1])
|
||||
p.TeLog("avatarIcon_income", map[string]interface{}{
|
||||
"avatar_id": Effect[0],
|
||||
"income_from": Label,
|
||||
})
|
||||
BackDataType[item.ITEM_TYPE_AVATAR] = struct{}{}
|
||||
case item.ITEM_TYPE_EMOJI: // 表情
|
||||
Effect := itemCfg.GetItemEffectList(v.Id)
|
||||
EmojiMod.Unlock(Effect[0], Effect[1])
|
||||
p.TeLog("emoji_income", map[string]interface{}{
|
||||
"emoji_id": Effect[0],
|
||||
"income_from": Label,
|
||||
})
|
||||
BackDataType[item.ITEM_TYPE_EMOJI] = struct{}{}
|
||||
case item.ITEM_TYPE_FACE: // 头像
|
||||
Effect := itemCfg.GetItemEffectList(v.Id)
|
||||
FaceMod.Unlock(Effect[0], Effect[1])
|
||||
p.TeLog("face_income", map[string]interface{}{
|
||||
"face_id": Effect[0],
|
||||
"income_from": Label,
|
||||
})
|
||||
BackDataType[item.ITEM_TYPE_FACE] = struct{}{}
|
||||
case item.ITEM_TYPE_ACTIVITY_RACE: // 活动竞速
|
||||
RaceMod := p.PlayMod.getRaceMod()
|
||||
RaceMod.AddCoin(v.Num)
|
||||
@ -662,6 +681,14 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
|
||||
Lable: Label,
|
||||
})
|
||||
}
|
||||
for k := range BackDataType {
|
||||
switch k {
|
||||
case item.ITEM_TYPE_AVATAR:
|
||||
case item.ITEM_TYPE_EMOJI:
|
||||
case item.ITEM_TYPE_FACE:
|
||||
BackUserInfo(p)
|
||||
}
|
||||
}
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
p.PushClientRes(CardMod.NotifyCard())
|
||||
p.PushClientRes(ItemMod.NotifyItem())
|
||||
|
||||
@ -281,7 +281,7 @@ func getChesslvRange(Emit int, EnergyMul int) (int, int) {
|
||||
|
||||
func triggerComposeChess(player *Player, ChessId, EnergyMul int, Emit []int) {
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
if OrderMod.Step != 12 {
|
||||
if OrderMod.Step < 12 {
|
||||
return
|
||||
}
|
||||
if !checkChess(ChessId, EnergyMul, Emit) {
|
||||
|
||||
@ -117,7 +117,7 @@ func (r *RankMgr) getRankInfo(m *msg.Msg) (interface{}, error) {
|
||||
}
|
||||
|
||||
func (r *RankMgr) getRedisRankInfo(m *msg.Msg) (interface{}, error) {
|
||||
RedisList, err := db.RedisZRangeWithScores(RANK_USER, 0, 100)
|
||||
RedisList, err := db.RedisZRevRangeWithScores(RANK_USER, 0, 100)
|
||||
if err != nil {
|
||||
return &RankInfo{}, nil
|
||||
}
|
||||
|
||||
@ -364,7 +364,7 @@ func ReqDelOrder(player *Player, buf []byte) error {
|
||||
req := &msg.ReqDelOrder{}
|
||||
proto.Unmarshal(buf, req)
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
err := OrderMod.DelOrder(int(req.OrderId))
|
||||
DelOrder, err := OrderMod.DelOrder(int(req.OrderId))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResDelOrder{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
@ -375,6 +375,10 @@ func ReqDelOrder(player *Player, buf []byte) error {
|
||||
player.PushAndSendClienRes(&msg.ResDelOrder{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.TeLog("order_delete", map[string]interface{}{
|
||||
"order_id": int(req.OrderId),
|
||||
"order": DelOrder,
|
||||
})
|
||||
player.PushClientRes(OrderMod.BackData())
|
||||
return nil
|
||||
}
|
||||
@ -741,9 +745,12 @@ func ReqUpgradeChess(player *Player, buf []byte) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
Handbook := player.PlayMod.getHandbookMod()
|
||||
Handbook.SetHandbook(NewChess)
|
||||
triggerComposeChess(player, NewChess, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList())
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(ChessMod.BackData())
|
||||
player.PushClientRes(Handbook.BackData())
|
||||
player.PushClientRes(&msg.ResUpgradeChess{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
|
||||
@ -196,15 +196,26 @@ func UnitOrder2(p *Player, Lv, EnergyMul int) float64 {
|
||||
return Energy / float64(5000)
|
||||
}
|
||||
|
||||
func UnitOrder3(player *Player) error {
|
||||
triggerComposeChess(player, 15, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList())
|
||||
func UnitChess1(p *Player) error {
|
||||
ChessMod := p.PlayMod.getChessMod()
|
||||
p.PushClientRes(ChessMod.BackData())
|
||||
EmitRetireTrigger1(p)
|
||||
DailyTaskMod := p.PlayMod.getDailyTaskMod()
|
||||
p.PushClientRes(DailyTaskMod.BackData())
|
||||
return nil
|
||||
}
|
||||
|
||||
func UnitPlayroom(p *Player) error {
|
||||
PlayroomMod := p.PlayMod.getPlayroomMod()
|
||||
PlayroomMod.Physiology[1].Num = 10
|
||||
PlayroomMod.Physiology[1].Time = 1738978968
|
||||
LimitedTimePlayroomTrigger(p)
|
||||
PlayroomMod.UnLock(15)
|
||||
PlayroomBackData(p)
|
||||
return nil
|
||||
}
|
||||
|
||||
func UnitDailyTask(p *Player) error {
|
||||
DailyTaskMod := p.PlayMod.getDailyTaskMod()
|
||||
for i := 0; i < 1000; i++ {
|
||||
DailyTaskMod.WeekUpdate()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -29,6 +29,12 @@ const (
|
||||
CHESS_UPGRADE = 708 // 升级器
|
||||
)
|
||||
|
||||
const (
|
||||
EMIT_RETIRE_START = 1
|
||||
EMIT_RETIRE_ING = 2
|
||||
EMIT_RETIRE_END = 3
|
||||
)
|
||||
|
||||
type ChessBorad struct {
|
||||
ChessList []int
|
||||
EmitList map[int]int
|
||||
@ -254,7 +260,7 @@ func (cb *ChessBorad) GetEmitList() []int {
|
||||
if EmitID == "" {
|
||||
continue
|
||||
}
|
||||
if cb.Retire[EmitID] == 2 {
|
||||
if cb.Retire[EmitID] == EMIT_RETIRE_END {
|
||||
continue
|
||||
}
|
||||
EmitType := mergeDataCfg.GetEmitType(k)
|
||||
@ -473,7 +479,7 @@ func (cb *ChessBorad) BeginRetire(EmitType string) error {
|
||||
if ok {
|
||||
return errors.New("chess has been retired")
|
||||
}
|
||||
cb.Retire[EmitType] = 1
|
||||
cb.Retire[EmitType] = EMIT_RETIRE_START
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -493,7 +499,7 @@ func (cb *ChessBorad) RetireOrder(EmitType string) error {
|
||||
|
||||
sort.Sort(sort.Reverse(sort.IntSlice(chess)))
|
||||
cb.RetireChessMap[EmitType] = chess
|
||||
cb.Retire[EmitType] = 2
|
||||
cb.Retire[EmitType] = EMIT_RETIRE_ING
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -502,7 +508,7 @@ func (cb *ChessBorad) FinishRetire(EmitType string) error {
|
||||
if !ok {
|
||||
return errors.New("chess has not been retired")
|
||||
}
|
||||
cb.Retire[EmitType] = 3
|
||||
cb.Retire[EmitType] = EMIT_RETIRE_END
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@ -40,6 +40,8 @@ const (
|
||||
ITEM_TYPE_ACTIVITY = 106 // 活动道具
|
||||
ITEM_TYPE_ACTIVITY_RACE = 107 // 竞赛活动道具
|
||||
ITEM_TYPE_PLAYROOM_VISIT = 108 // playroom拜访道具
|
||||
ITEM_TYPE_EMOJI = 109 // 表情
|
||||
ITEM_TYPE_FACE = 110 // 头像
|
||||
)
|
||||
|
||||
func (i *ItemMod) InitData() {
|
||||
|
||||
@ -658,16 +658,16 @@ func (o *OrderMod) Retire(EmitId string) {
|
||||
o.EmitShuffle = nil
|
||||
}
|
||||
|
||||
func (o *OrderMod) DelOrder(OrderId int) error {
|
||||
func (o *OrderMod) DelOrder(OrderId int) (*Order, error) {
|
||||
Order, ok := o.OrderList[OrderId]
|
||||
if !ok {
|
||||
return fmt.Errorf("order not exist")
|
||||
return nil, fmt.Errorf("order not exist")
|
||||
}
|
||||
if Order.Type != Clean_Order_type {
|
||||
return fmt.Errorf("order type wrong")
|
||||
return nil, fmt.Errorf("order type wrong")
|
||||
}
|
||||
delete(o.OrderList, OrderId)
|
||||
return nil
|
||||
return &Order, nil
|
||||
}
|
||||
|
||||
func (o *OrderMod) CreateComfortOrder(lv int, Emit []int, EnergyMul, Diff, ChessNum int) error {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user