Merge branch 'develop' into sdk
This commit is contained in:
commit
4f984125c5
@ -1,6 +1,7 @@
|
|||||||
package avatarCfg
|
package avatarCfg
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math/rand"
|
||||||
"server/gamedata"
|
"server/gamedata"
|
||||||
"server/pkg/github.com/name5566/leaf/log"
|
"server/pkg/github.com/name5566/leaf/log"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -31,6 +32,15 @@ func GetInitList() []int {
|
|||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetRandInitId() int {
|
||||||
|
list := GetInitList()
|
||||||
|
if len(list) == 0 {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
index := rand.Intn(len(list))
|
||||||
|
return list[index]
|
||||||
|
}
|
||||||
|
|
||||||
func CheckExist(Id int) bool {
|
func CheckExist(Id int) bool {
|
||||||
data, err := gamedata.GetData(CFG_AVATAR)
|
data, err := gamedata.GetData(CFG_AVATAR)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -47,7 +47,7 @@ func GetChessScore(ChessLv int) int {
|
|||||||
return gamedata.GetIntValue(data, "Score")
|
return gamedata.GetIntValue(data, "Score")
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetReward(Reward, Score, activityId int) (int, []*item.Item) {
|
func GetReward(Reward, Score, activityId, orderFactor int) (int, []*item.Item) {
|
||||||
data, err := gamedata.GetData(CFG_CHAMPSHIP_JACKPOT)
|
data, err := gamedata.GetData(CFG_CHAMPSHIP_JACKPOT)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debug("GetReward err:%v, Reward=%d, Score=%d", err, Reward, Score)
|
log.Debug("GetReward err:%v, Reward=%d, Score=%d", err, Reward, Score)
|
||||||
@ -64,10 +64,18 @@ func GetReward(Reward, Score, activityId int) (int, []*item.Item) {
|
|||||||
if Reward >= Id {
|
if Reward >= Id {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if Score >= gamedata.GetIntValue(v, "Total") {
|
if Score < gamedata.GetIntValue(v, "Total") {
|
||||||
Items := item.ParseItem(gamedata.GetValue(v, "Items"))
|
continue
|
||||||
r = item.Merge(r, Items)
|
}
|
||||||
NewReward = max(NewReward, Id)
|
Items := item.ParseItem(gamedata.GetValue(v, "Items"))
|
||||||
|
r = item.Merge(r, Items)
|
||||||
|
NewReward = max(NewReward, Id)
|
||||||
|
starReward := gamedata.GetIntValue(v, "StarReward")
|
||||||
|
if starReward > 0 {
|
||||||
|
starnum := int((float64(starReward) * float64(orderFactor) / 500)) * 5
|
||||||
|
if starnum > 0 {
|
||||||
|
r = append(r, item.NewItem(item.ITEM_STAR_ID, starnum))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return NewReward, r
|
return NewReward, r
|
||||||
|
|||||||
@ -36,6 +36,21 @@ func GetStarCost(AreaId, SortId int) int {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetStarCostByAreaId(AreaId int) int {
|
||||||
|
data, err := gamedata.GetData(DECORATE_COST)
|
||||||
|
if err != nil {
|
||||||
|
log.Debug("GetStarCost err:%v, AreaId=%d", err, AreaId)
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
var total int
|
||||||
|
for _, v := range data {
|
||||||
|
if gamedata.GetIntValue(v, "AreaId") == AreaId {
|
||||||
|
total += gamedata.GetIntValue(v, "CostCount")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return total
|
||||||
|
}
|
||||||
|
|
||||||
func GetAreaId(id int) int {
|
func GetAreaId(id int) int {
|
||||||
value, err := gamedata.GetDataByIntKey("DecorateCost", id)
|
value, err := gamedata.GetDataByIntKey("DecorateCost", id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package faceCfg
|
package faceCfg
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math/rand"
|
||||||
"server/gamedata"
|
"server/gamedata"
|
||||||
"server/pkg/github.com/name5566/leaf/log"
|
"server/pkg/github.com/name5566/leaf/log"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -35,6 +36,15 @@ func GetInitList() []int {
|
|||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetRandInitId() int {
|
||||||
|
list := GetInitList()
|
||||||
|
if len(list) == 0 {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
index := rand.Intn(len(list))
|
||||||
|
return list[index]
|
||||||
|
}
|
||||||
|
|
||||||
func CheckExist(Id int) bool {
|
func CheckExist(Id int) bool {
|
||||||
data, err := gamedata.GetData(CFG_FACE)
|
data, err := gamedata.GetData(CFG_FACE)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -46,6 +46,14 @@ func GetLoseItem(Id int) []*item.Item {
|
|||||||
return gamedata.GetItemList(data, "ItemCost")
|
return gamedata.GetItemList(data, "ItemCost")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetStartItemNum(Id int) int {
|
||||||
|
data, err := gamedata.GetDataByIntKey(CFG_MINING_TEMPLATE, Id)
|
||||||
|
if err != nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
return gamedata.GetIntValue(data, "StartItemNum")
|
||||||
|
}
|
||||||
|
|
||||||
func GetPassArea(Id int) int {
|
func GetPassArea(Id int) int {
|
||||||
data, err := gamedata.GetDataByIntKey(CFG_MINING_PASS, Id)
|
data, err := gamedata.GetDataByIntKey(CFG_MINING_PASS, Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -88,7 +96,7 @@ func GetRandItem() []*item.Item {
|
|||||||
return gamedata.GetItemList(Info, "Items")
|
return gamedata.GetItemList(Info, "Items")
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPassItem(Id int, needStar int) []*item.Item {
|
func GetPassItem(Id int, orderFactor int) []*item.Item {
|
||||||
data, err := gamedata.GetDataByIntKey(CFG_MINING_PASS, Id)
|
data, err := gamedata.GetDataByIntKey(CFG_MINING_PASS, Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil
|
return nil
|
||||||
@ -97,7 +105,7 @@ func GetPassItem(Id int, needStar int) []*item.Item {
|
|||||||
starReward := gamedata.GetIntValue(data, "StarReward")
|
starReward := gamedata.GetIntValue(data, "StarReward")
|
||||||
var starnum int
|
var starnum int
|
||||||
if starReward > 0 {
|
if starReward > 0 {
|
||||||
starnum = int(needStar * starReward / 100)
|
starnum = int((float64(starReward) * float64(orderFactor) / 500)) * 5
|
||||||
if starnum > 0 {
|
if starnum > 0 {
|
||||||
items = append(items, &item.Item{
|
items = append(items, &item.Item{
|
||||||
Id: item.ITEM_STAR_ID,
|
Id: item.ITEM_STAR_ID,
|
||||||
@ -108,7 +116,7 @@ func GetPassItem(Id int, needStar int) []*item.Item {
|
|||||||
return items
|
return items
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPassItemList(needStar int) map[int][]*item.Item {
|
func GetPassItemList(orderFactor int) map[int][]*item.Item {
|
||||||
data, err := gamedata.GetData(CFG_MINING_PASS)
|
data, err := gamedata.GetData(CFG_MINING_PASS)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil
|
return nil
|
||||||
@ -116,7 +124,7 @@ func GetPassItemList(needStar int) map[int][]*item.Item {
|
|||||||
result := make(map[int][]*item.Item)
|
result := make(map[int][]*item.Item)
|
||||||
for k := range data {
|
for k := range data {
|
||||||
Id := GoUtil.Int(k)
|
Id := GoUtil.Int(k)
|
||||||
result[Id] = GetPassItem(Id, needStar)
|
result[Id] = GetPassItem(Id, orderFactor)
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package orderCfg
|
package orderCfg
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math"
|
||||||
"server/gamedata"
|
"server/gamedata"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -33,8 +34,7 @@ func GetOrderK(Lv int) int {
|
|||||||
}
|
}
|
||||||
Energy := gamedata.GetIntValue(data, "Energy")
|
Energy := gamedata.GetIntValue(data, "Energy")
|
||||||
K := gamedata.GetFloatValue(data, "K")
|
K := gamedata.GetFloatValue(data, "K")
|
||||||
a := float64(Energy)*K/10 + 0.5
|
return int(math.Round(float64(Energy)*K/10) * 10)
|
||||||
return int(a) * 10
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetOrderFactor(Scene int) int {
|
func GetOrderFactor(Scene int) int {
|
||||||
|
|||||||
@ -219,6 +219,20 @@ func RedisZRevRangeWithScores(key string, start, stop int64) ([]redis.Z, error)
|
|||||||
return val, nil
|
return val, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func RedisZGetByIndexWithScore(key string, index int64) (*redis.Z, error) {
|
||||||
|
if RdbRead == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
val, err := RdbRead.ZRangeWithScores(ctx, key, index, index).Result()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if len(val) == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return &val[0], nil
|
||||||
|
}
|
||||||
|
|
||||||
func RedisZRankWithScores(key, member string) (int64, float64, error) {
|
func RedisZRankWithScores(key, member string) (int64, float64, error) {
|
||||||
if RdbRead == nil {
|
if RdbRead == nil {
|
||||||
return 0, 0, nil
|
return 0, 0, nil
|
||||||
@ -234,6 +248,17 @@ func RedisZRankWithScores(key, member string) (int64, float64, error) {
|
|||||||
return val, score, nil
|
return val, score, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func RedisZCard(key string) (int64, error) {
|
||||||
|
if RdbRead == nil {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
val, err := RdbRead.ZCard(ctx, key).Result()
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return val, nil
|
||||||
|
}
|
||||||
|
|
||||||
func RedisDel(key string) {
|
func RedisDel(key string) {
|
||||||
if RdbWrite == nil {
|
if RdbWrite == nil {
|
||||||
log.Debug("redis write client is nil")
|
log.Debug("redis write client is nil")
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import (
|
|||||||
guesscolorCfg "server/conf/guess_color"
|
guesscolorCfg "server/conf/guess_color"
|
||||||
languageCfg "server/conf/language"
|
languageCfg "server/conf/language"
|
||||||
miningCfg "server/conf/mining"
|
miningCfg "server/conf/mining"
|
||||||
|
orderCfg "server/conf/order"
|
||||||
passCfg "server/conf/pass"
|
passCfg "server/conf/pass"
|
||||||
raceCfg "server/conf/race"
|
raceCfg "server/conf/race"
|
||||||
"server/game/mod/activity"
|
"server/game/mod/activity"
|
||||||
@ -16,6 +17,7 @@ import (
|
|||||||
"server/game/mod/mail"
|
"server/game/mod/mail"
|
||||||
GoUtil "server/game_util"
|
GoUtil "server/game_util"
|
||||||
"server/msg"
|
"server/msg"
|
||||||
|
"server/pkg/github.com/name5566/leaf/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 活动模块 登录
|
// 活动模块 登录
|
||||||
@ -77,6 +79,16 @@ func (p *Player) ActivityLogin() {
|
|||||||
p.SendActivityMail(ItemId, ItemNum, PassActivityId, RewardItems)
|
p.SendActivityMail(ItemId, ItemNum, PassActivityId, RewardItems)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 初始化活动道具
|
||||||
|
initItem := p.GetMiningMod().GetInitItem()
|
||||||
|
if len(initItem) > 0 {
|
||||||
|
err := p.HandleItem(initItem, "")
|
||||||
|
if err != nil {
|
||||||
|
log.Debug("ActivityLogin initItem err : %s", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送活动邮件
|
// 发送活动邮件
|
||||||
@ -188,8 +200,8 @@ func (p *Player) MiningBackData() {
|
|||||||
Status := p.GetActivityStatus(activity.ACT_TYPE_MINING)
|
Status := p.GetActivityStatus(activity.ACT_TYPE_MINING)
|
||||||
Template := miningCfg.GetTemplate(ActivityInfo.Id)
|
Template := miningCfg.GetTemplate(ActivityInfo.Id)
|
||||||
DecorateMod := p.PlayMod.getDecorateMod()
|
DecorateMod := p.PlayMod.getDecorateMod()
|
||||||
needStar := DecorateMod.GetNextNeedStar()
|
orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId())
|
||||||
passRewardList := miningCfg.GetPassItemList(needStar)
|
passRewardList := miningCfg.GetPassItemList(orderFactor)
|
||||||
resPassRewardList := make(map[int32]*msg.ItemList)
|
resPassRewardList := make(map[int32]*msg.ItemList)
|
||||||
for k, v := range passRewardList {
|
for k, v := range passRewardList {
|
||||||
resPassRewardList[int32(k)] = item.ItemListToMsg(v)
|
resPassRewardList[int32(k)] = item.ItemListToMsg(v)
|
||||||
|
|||||||
@ -3,9 +3,14 @@ package game
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
|
"math/rand"
|
||||||
|
|
||||||
|
avatarCfg "server/conf/avatar"
|
||||||
champshipCfg "server/conf/champship"
|
champshipCfg "server/conf/champship"
|
||||||
|
faceCfg "server/conf/face"
|
||||||
randnameCfg "server/conf/randname"
|
randnameCfg "server/conf/randname"
|
||||||
"server/db"
|
"server/db"
|
||||||
|
"server/game/mod/friend"
|
||||||
"server/game/mod/msg"
|
"server/game/mod/msg"
|
||||||
GoUtil "server/game_util"
|
GoUtil "server/game_util"
|
||||||
proto "server/msg"
|
proto "server/msg"
|
||||||
@ -55,6 +60,11 @@ type ChampshipRobot struct {
|
|||||||
Time int64
|
Time int64
|
||||||
Score float64
|
Score float64
|
||||||
PerScore float64
|
PerScore float64
|
||||||
|
Playroom map[int]int
|
||||||
|
DressSet map[int]int
|
||||||
|
FurSet int
|
||||||
|
ActLog *friend.ActLogInfo
|
||||||
|
PetName string
|
||||||
}
|
}
|
||||||
|
|
||||||
type GroupInfo struct {
|
type GroupInfo struct {
|
||||||
@ -276,28 +286,54 @@ func (c *ChampshipMgr) GetPreRankMsg(Uid int) *proto.ResChampshipPreRank {
|
|||||||
if Robot == nil {
|
if Robot == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
last := &proto.ActLog{}
|
||||||
|
if Robot.ActLog != nil {
|
||||||
|
last = &proto.ActLog{
|
||||||
|
Type: int32(Robot.ActLog.Type),
|
||||||
|
Time: Robot.ActLog.Time,
|
||||||
|
Param: Robot.ActLog.Param,
|
||||||
|
}
|
||||||
|
}
|
||||||
RL[int32(k+1)] = &proto.ResPlayerRank{
|
RL[int32(k+1)] = &proto.ResPlayerRank{
|
||||||
Uid: int64(v.Uid),
|
Uid: int64(v.Uid),
|
||||||
Score: float32(v.Score),
|
Score: float32(v.Score),
|
||||||
Name: Robot.Name,
|
Name: Robot.Name,
|
||||||
Avatar: int32(Robot.Avatar),
|
Avatar: int32(Robot.Avatar),
|
||||||
Face: int32(Robot.Face),
|
Face: int32(Robot.Face),
|
||||||
Level: int32(Robot.Level),
|
Level: int32(Robot.Level),
|
||||||
Type: int32(v.Type),
|
Type: int32(v.Type),
|
||||||
|
PlayroomSet: GoUtil.MapIntToInt32(Robot.Playroom),
|
||||||
|
DressSet: GoUtil.MapIntToInt32(Robot.DressSet),
|
||||||
|
FurSet: int32(Robot.FurSet),
|
||||||
|
PetName: Robot.PetName,
|
||||||
|
Last: last,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SimplePlayer := G_GameLogicPtr.GetResSimplePlayerByUid(v.Uid)
|
SimplePlayer := G_GameLogicPtr.GetSimplePlayerByUid(v.Uid)
|
||||||
if SimplePlayer == nil {
|
if SimplePlayer == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
last := &proto.ActLog{}
|
||||||
|
if SimplePlayer.ActLog != nil {
|
||||||
|
last = &proto.ActLog{
|
||||||
|
Type: int32(SimplePlayer.ActLog.Type),
|
||||||
|
Time: SimplePlayer.ActLog.Time,
|
||||||
|
Param: SimplePlayer.ActLog.Param,
|
||||||
|
}
|
||||||
|
}
|
||||||
RL[int32(k+1)] = &proto.ResPlayerRank{
|
RL[int32(k+1)] = &proto.ResPlayerRank{
|
||||||
Uid: int64(v.Uid),
|
Uid: int64(v.Uid),
|
||||||
Score: float32(v.Score),
|
Score: float32(v.Score),
|
||||||
Name: SimplePlayer.Name,
|
Name: SimplePlayer.Name,
|
||||||
Avatar: int32(SimplePlayer.Avatar),
|
Avatar: int32(SimplePlayer.Avatar),
|
||||||
Face: int32(SimplePlayer.Face),
|
Face: int32(SimplePlayer.Face),
|
||||||
Level: int32(SimplePlayer.Level),
|
Level: int32(SimplePlayer.Level),
|
||||||
Type: int32(v.Type),
|
Type: int32(v.Type),
|
||||||
|
PlayroomSet: GoUtil.MapIntToInt32(SimplePlayer.Playroom),
|
||||||
|
DressSet: GoUtil.MapIntToInt32(SimplePlayer.DressSet),
|
||||||
|
FurSet: int32(SimplePlayer.PetFur),
|
||||||
|
PetName: SimplePlayer.PetName,
|
||||||
|
Last: last,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -335,28 +371,54 @@ func (c *ChampshipMgr) GetRankMsg(Uid int) *proto.ResChampshipRank {
|
|||||||
if Robot == nil {
|
if Robot == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
last := &proto.ActLog{}
|
||||||
|
if Robot.ActLog != nil {
|
||||||
|
last = &proto.ActLog{
|
||||||
|
Type: int32(Robot.ActLog.Type),
|
||||||
|
Time: Robot.ActLog.Time,
|
||||||
|
Param: Robot.ActLog.Param,
|
||||||
|
}
|
||||||
|
}
|
||||||
RL[int32(k+1)] = &proto.ResPlayerRank{
|
RL[int32(k+1)] = &proto.ResPlayerRank{
|
||||||
Uid: int64(v.Uid),
|
Uid: int64(v.Uid),
|
||||||
Score: float32(v.Score),
|
Score: float32(v.Score),
|
||||||
Name: Robot.Name,
|
Name: Robot.Name,
|
||||||
Avatar: int32(Robot.Avatar),
|
Avatar: int32(Robot.Avatar),
|
||||||
Face: int32(Robot.Face),
|
Face: int32(Robot.Face),
|
||||||
Level: int32(Robot.Level),
|
Level: int32(Robot.Level),
|
||||||
Type: int32(v.Type),
|
Type: int32(v.Type),
|
||||||
|
PlayroomSet: GoUtil.MapIntToInt32(Robot.Playroom),
|
||||||
|
DressSet: GoUtil.MapIntToInt32(Robot.DressSet),
|
||||||
|
FurSet: int32(Robot.FurSet),
|
||||||
|
PetName: Robot.PetName,
|
||||||
|
Last: last,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SimplePlayer := G_GameLogicPtr.GetResSimplePlayerByUid(v.Uid)
|
SimplePlayer := G_GameLogicPtr.GetSimplePlayerByUid(v.Uid)
|
||||||
if SimplePlayer == nil {
|
if SimplePlayer == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
last := &proto.ActLog{}
|
||||||
|
if SimplePlayer.ActLog != nil {
|
||||||
|
last = &proto.ActLog{
|
||||||
|
Type: int32(SimplePlayer.ActLog.Type),
|
||||||
|
Time: SimplePlayer.ActLog.Time,
|
||||||
|
Param: SimplePlayer.ActLog.Param,
|
||||||
|
}
|
||||||
|
}
|
||||||
RL[int32(k+1)] = &proto.ResPlayerRank{
|
RL[int32(k+1)] = &proto.ResPlayerRank{
|
||||||
Uid: int64(v.Uid),
|
Uid: int64(v.Uid),
|
||||||
Score: float32(v.Score),
|
Score: float32(v.Score),
|
||||||
Name: SimplePlayer.Name,
|
Name: SimplePlayer.Name,
|
||||||
Avatar: int32(SimplePlayer.Avatar),
|
Avatar: int32(SimplePlayer.Avatar),
|
||||||
Face: int32(SimplePlayer.Face),
|
Face: int32(SimplePlayer.Face),
|
||||||
Level: int32(SimplePlayer.Level),
|
Level: int32(SimplePlayer.Level),
|
||||||
Type: int32(v.Type),
|
Type: int32(v.Type),
|
||||||
|
PlayroomSet: GoUtil.MapIntToInt32(SimplePlayer.Playroom),
|
||||||
|
DressSet: GoUtil.MapIntToInt32(SimplePlayer.DressSet),
|
||||||
|
FurSet: int32(SimplePlayer.PetFur),
|
||||||
|
PetName: SimplePlayer.PetName,
|
||||||
|
Last: last,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -434,6 +496,9 @@ func (c *ChampshipMgr) group(iszero bool) (interface{}, error) {
|
|||||||
for j := StartId; j <= ChampshipData.AutoId; j++ { // 填充机器人
|
for j := StartId; j <= ChampshipData.AutoId; j++ { // 填充机器人
|
||||||
RobotNum := 30 - len(ChampshipData.Rank[j])
|
RobotNum := 30 - len(ChampshipData.Rank[j])
|
||||||
RobotList := CreateRobotList(i, RobotNum, j)
|
RobotList := CreateRobotList(i, RobotNum, j)
|
||||||
|
for i := 0; i < RobotNum; i++ {
|
||||||
|
FormatRobotInfo(RobotList[i], i+1)
|
||||||
|
}
|
||||||
for _, v := range RobotList {
|
for _, v := range RobotList {
|
||||||
ChampshipData.Robot[ChampshipData.RobotId] = v
|
ChampshipData.Robot[ChampshipData.RobotId] = v
|
||||||
ChampshipData.Rank[j] = append(ChampshipData.Rank[j], &ChampshipRank{
|
ChampshipData.Rank[j] = append(ChampshipData.Rank[j], &ChampshipRank{
|
||||||
@ -837,21 +902,68 @@ func CreateRobot(M float64, GroupId int) *ChampshipRobot {
|
|||||||
PerScore = math.Round((M/10*0.34)/(float64(GoUtil.NextZeroTimestampDuration())/1800)*100) / 100
|
PerScore = math.Round((M/10*0.34)/(float64(GoUtil.NextZeroTimestampDuration())/1800)*100) / 100
|
||||||
Score = 2
|
Score = 2
|
||||||
}
|
}
|
||||||
|
num, err := db.RedisZCard(RANK_USER)
|
||||||
|
if err != nil {
|
||||||
|
num = 0
|
||||||
|
}
|
||||||
|
id := rand.Intn(int(num)) + 1
|
||||||
|
rinfo, err := db.RedisZGetByIndexWithScore(RANK_USER, int64(id))
|
||||||
|
playerSimpleData := G_GameLogicPtr.GetSimplePlayerByUid(GoUtil.Int(rinfo.Member))
|
||||||
return &ChampshipRobot{
|
return &ChampshipRobot{
|
||||||
Max: M / 10,
|
Max: M / 10,
|
||||||
Type: Type,
|
Type: Type,
|
||||||
Name: randnameCfg.GetRandName(),
|
Name: randnameCfg.GetRandName(),
|
||||||
Avatar: GoUtil.RandNum(1, 10),
|
Avatar: avatarCfg.GetRandInitId(),
|
||||||
Face: GoUtil.RandNum(1, 10),
|
Face: faceCfg.GetRandInitId(),
|
||||||
Level: GoUtil.RandNum(1, 10),
|
Level: GoUtil.RandNum(1, 10),
|
||||||
GroupId: GroupId,
|
GroupId: GroupId,
|
||||||
Time: GoUtil.Now(),
|
Time: GoUtil.Now(),
|
||||||
Score: Score,
|
Score: Score,
|
||||||
PerScore: PerScore,
|
PerScore: PerScore,
|
||||||
|
Playroom: playerSimpleData.Playroom,
|
||||||
|
DressSet: playerSimpleData.DressSet,
|
||||||
|
FurSet: playerSimpleData.PetFur,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FormatRobotInfo(Robot *ChampshipRobot, index int) {
|
||||||
|
num, err := db.RedisZCard(RANK_USER)
|
||||||
|
if err != nil {
|
||||||
|
num = 0
|
||||||
|
}
|
||||||
|
x := int(num) / 30
|
||||||
|
if index > int(x) {
|
||||||
|
index = int(x)
|
||||||
|
}
|
||||||
|
start := int64((index - 1) * x)
|
||||||
|
end := int64(index*x - 1)
|
||||||
|
rinfo, err := db.RedisZRevRangeWithScores(RANK_USER, start, end)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("FormatRobotInfo RedisZRevRangeWithScores error: %v, start %d, end %d", err, start, end)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if len(rinfo) == 0 {
|
||||||
|
log.Error("FormatRobotInfo RedisZRevRangeWithScores no data, start %d, end %d", start, end)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
id := rand.Intn(len(rinfo))
|
||||||
|
if id >= len(rinfo) {
|
||||||
|
id = len(rinfo) - 1
|
||||||
|
}
|
||||||
|
playerSimpleData := G_GameLogicPtr.GetSimplePlayerByUid(GoUtil.Int(rinfo[id].Member))
|
||||||
|
if playerSimpleData == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
Robot.Level = playerSimpleData.Level
|
||||||
|
Robot.Avatar = playerSimpleData.Avatar
|
||||||
|
Robot.Face = playerSimpleData.Face
|
||||||
|
Robot.Playroom = playerSimpleData.Playroom
|
||||||
|
Robot.DressSet = playerSimpleData.DressSet
|
||||||
|
Robot.FurSet = playerSimpleData.PetFur
|
||||||
|
Robot.ActLog = playerSimpleData.ActLog
|
||||||
|
Robot.PetName = playerSimpleData.PetName
|
||||||
|
}
|
||||||
|
|
||||||
func (c *ChampshipMgr) SetRankCache(Uid int) {
|
func (c *ChampshipMgr) SetRankCache(Uid int) {
|
||||||
PreRank := c.unsafe_getLastMyRank(Uid)
|
PreRank := c.unsafe_getLastMyRank(Uid)
|
||||||
Rank := c.unsafe_getMyRank(Uid)
|
Rank := c.unsafe_getMyRank(Uid)
|
||||||
|
|||||||
@ -80,7 +80,7 @@ func (p *Player) ActivityFire(ChargeId int) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
p.PlayMod.save()
|
p.PlayMod.save()
|
||||||
p.initAcitivity()
|
p.initActivity()
|
||||||
p.BackDataActivity()
|
p.BackDataActivity()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -101,7 +101,7 @@ func ReqGmCommand_(player *Player, Command string) error {
|
|||||||
player.PlayMod.getBaseMod().Level = num
|
player.PlayMod.getBaseMod().Level = num
|
||||||
player.PlayMod.getBaseMod().Exp = 0
|
player.PlayMod.getBaseMod().Exp = 0
|
||||||
player.PushClientRes(player.PlayerBaseMod.BackAsset())
|
player.PushClientRes(player.PlayerBaseMod.BackAsset())
|
||||||
player.initAcitivity()
|
player.initActivity()
|
||||||
player.PlayMod.getGuideTaskMod().Unlock(num)
|
player.PlayMod.getGuideTaskMod().Unlock(num)
|
||||||
player.PlayMod.getOrderMod().TriggerOrder(num, order.TRIGGER_TYPE_LV, nil, 1)
|
player.PlayMod.getOrderMod().TriggerOrder(num, order.TRIGGER_TYPE_LV, nil, 1)
|
||||||
player.PushClientRes(player.PlayMod.getOrderMod().BackData())
|
player.PushClientRes(player.PlayMod.getOrderMod().BackData())
|
||||||
@ -124,7 +124,7 @@ func ReqGmCommand_(player *Player, Command string) error {
|
|||||||
ActivityMod.Var = nil
|
ActivityMod.Var = nil
|
||||||
ActivityMod.InitData()
|
ActivityMod.InitData()
|
||||||
player.PlayMod.save()
|
player.PlayMod.save()
|
||||||
player.initAcitivity()
|
player.initActivity()
|
||||||
player.BackDataActivity()
|
player.BackDataActivity()
|
||||||
case "weekUpdate":
|
case "weekUpdate":
|
||||||
VarMod := player.PlayMod.getVarMod()
|
VarMod := player.PlayMod.getVarMod()
|
||||||
@ -417,7 +417,7 @@ func ReqGmCommand_(player *Player, Command string) error {
|
|||||||
FriendMod.Npc = nil
|
FriendMod.Npc = nil
|
||||||
FriendMod.Id = 0
|
FriendMod.Id = 0
|
||||||
FriendMod.Log = nil
|
FriendMod.Log = nil
|
||||||
FriendMod.InitData()
|
FriendMod.InitData(player.M_DwUin)
|
||||||
player.FriendListBackData()
|
player.FriendListBackData()
|
||||||
player.FriendLogBackData()
|
player.FriendLogBackData()
|
||||||
case "addFriend":
|
case "addFriend":
|
||||||
|
|||||||
@ -553,6 +553,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
Face: GoUtil.IntToInt32(faceList),
|
Face: GoUtil.IntToInt32(faceList),
|
||||||
Count: GoUtil.Int32(info["apply_count"]),
|
Count: GoUtil.Int32(info["apply_count"]),
|
||||||
FacebookPic: facebookPic,
|
FacebookPic: facebookPic,
|
||||||
|
Uids: applyUids,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
otherUids, ok := info["other_uids"].([]int64)
|
otherUids, ok := info["other_uids"].([]int64)
|
||||||
@ -574,6 +575,7 @@ func (p *Player) handle(m *msg.Msg) error {
|
|||||||
Face: GoUtil.IntToInt32(faceList),
|
Face: GoUtil.IntToInt32(faceList),
|
||||||
Count: GoUtil.Int32(info["other_count"]),
|
Count: GoUtil.Int32(info["other_count"]),
|
||||||
FacebookPic: facebookPic,
|
FacebookPic: facebookPic,
|
||||||
|
Uids: otherUids,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -631,7 +633,7 @@ func ClusterSendMsg(ServerId int, m *msg.Msg) {
|
|||||||
func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard {
|
func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard {
|
||||||
Uid := 0
|
Uid := 0
|
||||||
if CardInfo.Type == card.TYPE_CARD_SEND {
|
if CardInfo.Type == card.TYPE_CARD_SEND {
|
||||||
Uid = CardInfo.BUid
|
Uid = CardInfo.AUid
|
||||||
}
|
}
|
||||||
|
|
||||||
if CardInfo.Type == card.TYPE_CARD_GIVE {
|
if CardInfo.Type == card.TYPE_CARD_GIVE {
|
||||||
@ -1133,7 +1135,7 @@ func (player *Player) InitOrderItem() {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList())
|
Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList())
|
||||||
Star = int(float64(Star)*float64(OrderFactor)/1000+0.5) * 10
|
Star = int(float64(Star)*float64(OrderFactor)/1000) * 10
|
||||||
v.Items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: Star}}
|
v.Items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: Star}}
|
||||||
OrderMod.OrderList[k] = v
|
OrderMod.OrderList[k] = v
|
||||||
}
|
}
|
||||||
@ -1273,13 +1275,18 @@ func (p *Player) AddHighOrder() {
|
|||||||
ChessMap[Color] = v
|
ChessMap[Color] = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
RetireProduceColor := ChessMod.GetRetireProduceColor()
|
||||||
for Color, ChessId := range ChessMap {
|
for Color, ChessId := range ChessMap {
|
||||||
EmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), Color)
|
EmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), Color)
|
||||||
_, ChessMaxLv := getChesslvRange(EmitId, BaseMod.GetEnergyMul(), OrderMod.IsCharge)
|
_, ChessMaxLv := getChesslvRange(EmitId, BaseMod.GetEnergyMul(), OrderMod.IsCharge)
|
||||||
NewLev2 := mergeDataCfg.DynamicLev(ChessMaxLv, EmitId, Color)
|
NewLev2 := mergeDataCfg.DynamicLev(ChessMaxLv, EmitId, Color)
|
||||||
NewLev3 := order.AdjustLev(NewLev2, BaseMod.GetEnergyMul())
|
NewLev3 := order.AdjustLev(NewLev2, BaseMod.GetEnergyMul())
|
||||||
ChessLv := mergeDataCfg.GetLvById(ChessId)
|
ChessLv := mergeDataCfg.GetLvById(ChessId)
|
||||||
|
chessColor := mergeDataCfg.GetColorById(ChessId)
|
||||||
|
// 退役产物不生成订单
|
||||||
|
if GoUtil.InStringArray(chessColor, RetireProduceColor) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
if NewLev3 >= ChessLv {
|
if NewLev3 >= ChessLv {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -1318,10 +1325,16 @@ func (p *Player) AddHighOrder2() {
|
|||||||
}
|
}
|
||||||
ChessMap[v]++
|
ChessMap[v]++
|
||||||
}
|
}
|
||||||
|
RetireProduceColor := ChessMod.GetRetireProduceColor()
|
||||||
for ChessId, Num := range ChessMap {
|
for ChessId, Num := range ChessMap {
|
||||||
if Num < 2 {
|
if Num < 2 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
chessColor := mergeDataCfg.GetColorById(ChessId)
|
||||||
|
// 退役产物不生成订单
|
||||||
|
if GoUtil.InStringArray(chessColor, RetireProduceColor) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
add := true
|
add := true
|
||||||
for _, v := range OrderMod.GetOrderList() {
|
for _, v := range OrderMod.GetOrderList() {
|
||||||
if GoUtil.SliceEqual(v.MergeId, []int{ChessId, ChessId}) || GoUtil.SliceEqual(v.MergeId, []int{ChessId, ChessId, ChessId}) {
|
if GoUtil.SliceEqual(v.MergeId, []int{ChessId, ChessId}) || GoUtil.SliceEqual(v.MergeId, []int{ChessId, ChessId, ChessId}) {
|
||||||
|
|||||||
@ -1,20 +1,18 @@
|
|||||||
package activity
|
package activity
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
activityCfg "server/conf/activity"
|
activityCfg "server/conf/activity"
|
||||||
"server/game/mod/item"
|
"server/game/mod/item"
|
||||||
GoUtil "server/game_util"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// 活动礼包
|
// 活动礼包
|
||||||
func (a *Activity) Fire(Id int) ([]*item.Item, error) {
|
func (a *Activity) Fire(Id int) ([]*item.Item, error) {
|
||||||
AId := activityCfg.GetActivityGiftId(Id)
|
// AId := activityCfg.GetActivityGiftId(Id)
|
||||||
Var := a.getGiftVar(AId)
|
// Var := a.getGiftVar(AId)
|
||||||
if Var.Buy {
|
// if Var.Buy {
|
||||||
return nil, fmt.Errorf("Id%d已购买", Id)
|
// return nil, fmt.Errorf("Id%d已购买", Id)
|
||||||
}
|
// }
|
||||||
Var.Buy = true
|
// Var.Buy = true
|
||||||
Var.Time = GoUtil.Now()
|
// Var.Time = GoUtil.Now()
|
||||||
return activityCfg.GetActivityGiftItems(Id), nil
|
return activityCfg.GetActivityGiftItems(Id), nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,8 +56,8 @@ func (c *ChampshipMod) AddScore(Chess []int) {
|
|||||||
c.Score += score
|
c.Score += score
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ChampshipMod) GetReward(activityId int) []*item.Item {
|
func (c *ChampshipMod) GetReward(activityId, orderFactor int) []*item.Item {
|
||||||
Reward, Items := champshipCfg.GetReward(c.Reward, c.Score, activityId)
|
Reward, Items := champshipCfg.GetReward(c.Reward, c.Score, activityId, orderFactor)
|
||||||
c.Reward = Reward
|
c.Reward = Reward
|
||||||
c.Max = max(c.Max, c.Reward)
|
c.Max = max(c.Max, c.Reward)
|
||||||
return Items
|
return Items
|
||||||
|
|||||||
@ -288,6 +288,26 @@ func (c *ChargeMod) FireAdReward(ChargeId int) []*item.Item {
|
|||||||
return Items
|
return Items
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *ChargeMod) AddAdTime(PetWorkDay int) {
|
||||||
|
if PetWorkDay > 0 {
|
||||||
|
Now := GoUtil.Now()
|
||||||
|
if c.AdEndTime < Now {
|
||||||
|
c.AdEndTime = Now + int64(PetWorkDay*secondsIn1Day)
|
||||||
|
} else {
|
||||||
|
c.AdEndTime += int64(PetWorkDay * secondsIn1Day)
|
||||||
|
}
|
||||||
|
c.PetWorkTime += int64(PetWorkDay * secondsIn1Day)
|
||||||
|
c.Ad = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *ChargeMod) CheckAd() bool {
|
||||||
|
if !c.Ad {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
// 免费商店
|
// 免费商店
|
||||||
func (c *ChargeMod) FireFreeShop() ([]*item.Item, error) {
|
func (c *ChargeMod) FireFreeShop() ([]*item.Item, error) {
|
||||||
if c.FreeShop >= 2 {
|
if c.FreeShop >= 2 {
|
||||||
|
|||||||
@ -725,3 +725,13 @@ func (cb *ChessBorad) GetRetireReward(Id string) ([]*item.Item, error) {
|
|||||||
cb.RetireReward[Id] = true
|
cb.RetireReward[Id] = true
|
||||||
return mergeDataCfg.GetRetireReward(), nil
|
return mergeDataCfg.GetRetireReward(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cb *ChessBorad) GetRetireProduceColor() []string {
|
||||||
|
color := make([]string, 0, len(cb.Retire))
|
||||||
|
for k, v := range cb.Retire {
|
||||||
|
if v == EMIT_RETIRE_ING {
|
||||||
|
color = append(color, mergeDataCfg.GetEmitTypeByColor(k))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return color
|
||||||
|
}
|
||||||
|
|||||||
@ -132,6 +132,10 @@ func (d *Decorate) GetNextNeedStar() int {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *Decorate) GetAreaCost() int {
|
||||||
|
return decorateCfg.GetStarCostByAreaId(d.AreaId)
|
||||||
|
}
|
||||||
|
|
||||||
// 一键装饰
|
// 一键装饰
|
||||||
func (d *Decorate) DecorateAll(Star int, DecorateOffIsExist bool) ([]*item.Item, []*item.Item, int, []int, []interface{}, int) {
|
func (d *Decorate) DecorateAll(Star int, DecorateOffIsExist bool) ([]*item.Item, []*item.Item, int, []int, []interface{}, int) {
|
||||||
DecorateAll := decorateCfg.GetAllSortIdByAreaId(d.AreaId)
|
DecorateAll := decorateCfg.GetAllSortIdByAreaId(d.AreaId)
|
||||||
|
|||||||
@ -189,7 +189,7 @@ type LogInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
func (f *FriendMod) InitData() {
|
func (f *FriendMod) InitData(M_DwUin int64) {
|
||||||
if f.FriendList == nil {
|
if f.FriendList == nil {
|
||||||
f.FriendList = make(map[int]struct{})
|
f.FriendList = make(map[int]struct{})
|
||||||
}
|
}
|
||||||
@ -224,6 +224,26 @@ func (f *FriendMod) InitData() {
|
|||||||
if f.NewApplyList == nil {
|
if f.NewApplyList == nil {
|
||||||
f.NewApplyList = make(map[int]*ApplyInfo)
|
f.NewApplyList = make(map[int]*ApplyInfo)
|
||||||
}
|
}
|
||||||
|
for k, v := range f.Card {
|
||||||
|
if v.AUid != 0 && !f.CheckFriend(v.AUid) && v.AUid != int(M_DwUin) {
|
||||||
|
delete(f.Card, k)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if v.BUid != 0 && !f.CheckFriend(v.BUid) && v.BUid != int(M_DwUin) {
|
||||||
|
delete(f.Card, k)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(f.ReplyList) > 0 {
|
||||||
|
validReplyList := make([]*ReplyInfo, 0, len(f.ReplyList))
|
||||||
|
for _, v := range f.ReplyList {
|
||||||
|
if f.CheckFriend(v.Uid) {
|
||||||
|
validReplyList = append(validReplyList, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
f.ReplyList = validReplyList
|
||||||
|
}
|
||||||
f.version()
|
f.version()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,6 +322,9 @@ func (f *FriendMod) Interact(id, t int, T int64) {
|
|||||||
VisitTime: T,
|
VisitTime: T,
|
||||||
Type: t,
|
Type: t,
|
||||||
})
|
})
|
||||||
|
if len(f.NewFriendList[id].Interact) > 30 {
|
||||||
|
f.NewFriendList[id].Interact = f.NewFriendList[id].Interact[len(f.NewFriendList[id].Interact)-30:]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取好友交互时间
|
// 获取好友交互时间
|
||||||
|
|||||||
@ -59,6 +59,7 @@ const (
|
|||||||
ITEM_TYPE_PLAYROOM_BOX = 115 // playroom宝箱
|
ITEM_TYPE_PLAYROOM_BOX = 115 // playroom宝箱
|
||||||
ITEM_TYPE_ACT_PASS = 116 // 通行证活动道具
|
ITEM_TYPE_ACT_PASS = 116 // 通行证活动道具
|
||||||
ITEM_TYPE_PET_FUR = 117 // 宠物毛皮
|
ITEM_TYPE_PET_FUR = 117 // 宠物毛皮
|
||||||
|
ITEM_TYPE_AD_CARD = 118 // 免广告卡
|
||||||
)
|
)
|
||||||
|
|
||||||
func (i *Item) String() string {
|
func (i *Item) String() string {
|
||||||
|
|||||||
@ -274,7 +274,19 @@ func (l *LimitedTimeEventMod) GetChestReward(MergeList, EmitList []int) []*item.
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取场景冲刺奖励
|
// 获取场景冲刺奖励
|
||||||
func (l *LimitedTimeEventMod) GetSceneDashReward() (int, []*item.Item) {
|
func (l *LimitedTimeEventMod) GetSceneDashReward() (int, []*item.Item, error) {
|
||||||
|
limitInfo, ok := l.EventList[EVENT_TYPE_SENCE_DASH]
|
||||||
|
if !ok {
|
||||||
|
return 0, nil, fmt.Errorf("sence dash not active")
|
||||||
|
}
|
||||||
|
if limitInfo.Info == nil {
|
||||||
|
return 0, nil, fmt.Errorf("sence dash info error")
|
||||||
|
}
|
||||||
|
times := GoUtil.Int(limitInfo.Info["Times"])
|
||||||
|
if times <= 0 {
|
||||||
|
return 0, nil, fmt.Errorf("no dash times")
|
||||||
|
}
|
||||||
|
limitInfo.Info["Times"] = times - 1
|
||||||
ProbList := limitedTimeEventCfg.GetSenceJackpotProb()
|
ProbList := limitedTimeEventCfg.GetSenceJackpotProb()
|
||||||
Id := GoUtil.RandMap(ProbList)
|
Id := GoUtil.RandMap(ProbList)
|
||||||
Items := limitedTimeEventCfg.GetSenceJackpotReward(Id)
|
Items := limitedTimeEventCfg.GetSenceJackpotReward(Id)
|
||||||
@ -282,7 +294,7 @@ func (l *LimitedTimeEventMod) GetSceneDashReward() (int, []*item.Item) {
|
|||||||
// 多个奖励时,随机选择一个
|
// 多个奖励时,随机选择一个
|
||||||
Items = []*item.Item{GoUtil.RandItem(Items)}
|
Items = []*item.Item{GoUtil.RandItem(Items)}
|
||||||
}
|
}
|
||||||
return Id, Items
|
return Id, Items, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取连击快手奖励
|
// 获取连击快手奖励
|
||||||
@ -434,6 +446,10 @@ func (l *LimitedTimeEventMod) GetCatTrickReward() ([]*item.Item, error) {
|
|||||||
// #region 事件信息初始化
|
// #region 事件信息初始化
|
||||||
func initEventInfo(E *LTEInfo, EventType int) {
|
func initEventInfo(E *LTEInfo, EventType int) {
|
||||||
switch EventType {
|
switch EventType {
|
||||||
|
case EVENT_TYPE_SENCE_DASH:
|
||||||
|
E.Info = map[string]interface{}{
|
||||||
|
"Times": 0,
|
||||||
|
}
|
||||||
case EVENT_TYPE_FAST_PRODUCE:
|
case EVENT_TYPE_FAST_PRODUCE:
|
||||||
E.Info = map[string]interface{}{
|
E.Info = map[string]interface{}{
|
||||||
"Times": 0,
|
"Times": 0,
|
||||||
@ -515,6 +531,9 @@ func getLimitEventMsg(t int, e *LTEInfo) *msg.LimitEvent {
|
|||||||
case EVENT_TYPE_PAYBACK_DAY:
|
case EVENT_TYPE_PAYBACK_DAY:
|
||||||
d := e.D.(*PaybackDay)
|
d := e.D.(*PaybackDay)
|
||||||
Param[msg.LimitEventParam_PAYBACK_DAY_COUNT.String()] = int32(d.Count)
|
Param[msg.LimitEventParam_PAYBACK_DAY_COUNT.String()] = int32(d.Count)
|
||||||
|
case EVENT_TYPE_SENCE_DASH:
|
||||||
|
Times := GoUtil.Int(e.Info["Times"])
|
||||||
|
Param[msg.LimitEventParam_SENCE_DASH_TIMES.String()] = int32(Times)
|
||||||
}
|
}
|
||||||
return &msg.LimitEvent{
|
return &msg.LimitEvent{
|
||||||
EndTime: EndTime,
|
EndTime: EndTime,
|
||||||
@ -537,3 +556,15 @@ func (l *LimitedTimeEventMod) GetCatDaySaleEndTime() int64 {
|
|||||||
}
|
}
|
||||||
return v.StartT + v.Remian
|
return v.StartT + v.Remian
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (l *LimitedTimeEventMod) AddSenceDashTimes() bool {
|
||||||
|
SenceInfo, ok := l.EventList[EVENT_TYPE_SENCE_DASH]
|
||||||
|
if !ok {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if SenceInfo.Info == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
SenceInfo.Info["Times"] = GoUtil.Int(SenceInfo.Info["Times"]) + 1
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|||||||
@ -7,11 +7,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type MiningMod struct {
|
type MiningMod struct {
|
||||||
Id int
|
Id int
|
||||||
Map map[int32]string
|
Map map[int32]string
|
||||||
Gem []int
|
Gem []int
|
||||||
Pass int
|
Pass int
|
||||||
Mining int
|
Mining int
|
||||||
|
InitItem bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MiningMod) InitData() {
|
func (m *MiningMod) InitData() {
|
||||||
@ -34,9 +35,26 @@ func (m *MiningMod) Login(Id int) int {
|
|||||||
m.Gem = nil
|
m.Gem = nil
|
||||||
m.Pass = 1
|
m.Pass = 1
|
||||||
m.Mining = 0
|
m.Mining = 0
|
||||||
|
m.InitItem = false
|
||||||
return OldId
|
return OldId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *MiningMod) GetInitItem() []*item.Item {
|
||||||
|
if m.InitItem {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if m.Id == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
initItemNum := miningCfg.GetStartItemNum(m.Id)
|
||||||
|
initItemId := miningCfg.GetActivityItemId(m.Id)
|
||||||
|
if initItemNum > 0 && initItemId > 0 {
|
||||||
|
m.InitItem = true
|
||||||
|
return []*item.Item{item.NewItem(initItemId, initItemNum)}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (m *MiningMod) ZeroUpdate(Id int) {
|
func (m *MiningMod) ZeroUpdate(Id int) {
|
||||||
m.Login(Id)
|
m.Login(Id)
|
||||||
}
|
}
|
||||||
@ -81,12 +99,12 @@ func (m *MiningMod) Take(Map map[int32]string, Gem int) ([]*item.Item, error) {
|
|||||||
return Items, nil
|
return Items, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MiningMod) GetReward(needStar int) ([]*item.Item, int, error) {
|
func (m *MiningMod) GetReward(orderFactor int) ([]*item.Item, int, error) {
|
||||||
GemList := miningCfg.GetPassGem(m.Pass)
|
GemList := miningCfg.GetPassGem(m.Pass)
|
||||||
if len(m.Gem) < len(GemList) {
|
if len(m.Gem) < len(GemList) {
|
||||||
return nil, 0, fmt.Errorf("gem is not full")
|
return nil, 0, fmt.Errorf("gem is not full")
|
||||||
}
|
}
|
||||||
Items := miningCfg.GetPassItem(m.Pass, needStar)
|
Items := miningCfg.GetPassItem(m.Pass, orderFactor)
|
||||||
m.Pass++
|
m.Pass++
|
||||||
Ming := m.Mining
|
Ming := m.Mining
|
||||||
m.Mining = 0
|
m.Mining = 0
|
||||||
|
|||||||
@ -564,22 +564,22 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, Energ
|
|||||||
}
|
}
|
||||||
b3 := false
|
b3 := false
|
||||||
//额外订单补充2;当玩家的棋盘中出现2个相同的满级产物时,立刻生成一个对应的收购订单;
|
//额外订单补充2;当玩家的棋盘中出现2个相同的满级产物时,立刻生成一个对应的收购订单;
|
||||||
for k := range MaxLvChess {
|
// for k := range MaxLvChess {
|
||||||
ChessNum := GoUtil.GetElemNum(ChessList, k)
|
// ChessNum := GoUtil.GetElemNum(ChessList, k)
|
||||||
if ChessNum >= 2 && Level >= 12 {
|
// if ChessNum >= 2 && Level >= 12 {
|
||||||
b2 := true
|
// b2 := true
|
||||||
for _, v := range o.OrderList {
|
// for _, v := range o.OrderList {
|
||||||
if GoUtil.SliceEqual(v.MergeId, []int{k, k}) {
|
// if GoUtil.SliceEqual(v.MergeId, []int{k, k}) {
|
||||||
b2 = false
|
// b2 = false
|
||||||
break
|
// break
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if b2 {
|
// if b2 {
|
||||||
b3 = true
|
// b3 = true
|
||||||
o.addOrder([]int{k, k}, DIFF_LOW, Extra_type)
|
// o.addOrder([]int{k, k}, DIFF_LOW, Extra_type)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
//额外订单补充1;CDEG发射器首次合成时,生成其对应2及棋子订单,完成后生成3及,再完成生成4及的;
|
//额外订单补充1;CDEG发射器首次合成时,生成其对应2及棋子订单,完成后生成3及,再完成生成4及的;
|
||||||
if b1 {
|
if b1 {
|
||||||
ChessColor := mergeDataCfg.GetEmitProduceChessType(OrderEmit)
|
ChessColor := mergeDataCfg.GetEmitProduceChessType(OrderEmit)
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import (
|
|||||||
"server/game/mod/face"
|
"server/game/mod/face"
|
||||||
"server/game/mod/friend"
|
"server/game/mod/friend"
|
||||||
"server/game/mod/fur"
|
"server/game/mod/fur"
|
||||||
|
"server/game/mod/item"
|
||||||
limitedTimeEvent "server/game/mod/limited_time_event"
|
limitedTimeEvent "server/game/mod/limited_time_event"
|
||||||
"server/game/mod/mail"
|
"server/game/mod/mail"
|
||||||
"server/game/mod/mining"
|
"server/game/mod/mining"
|
||||||
@ -90,3 +91,7 @@ func (p *Player) GetMiningMod() *mining.MiningMod {
|
|||||||
func (p *Player) GetDailyTaskMod() *dailyTask.DailyTaskMod {
|
func (p *Player) GetDailyTaskMod() *dailyTask.DailyTaskMod {
|
||||||
return p.PlayMod.getDailyTaskMod()
|
return p.PlayMod.getDailyTaskMod()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *Player) GetItemMod() *item.ItemMod {
|
||||||
|
return p.PlayMod.getItemMod()
|
||||||
|
}
|
||||||
|
|||||||
@ -394,6 +394,9 @@ func (p *Player) FriendLogBackData() {
|
|||||||
Uid: int64(v.Uid),
|
Uid: int64(v.Uid),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if !FriendMod.CheckFriend(v.Uid) && v.Uid > 10000 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
reply = append(reply, &proto.ResFriendReply{
|
reply = append(reply, &proto.ResFriendReply{
|
||||||
Player: ps,
|
Player: ps,
|
||||||
Type: int32(v.Type),
|
Type: int32(v.Type),
|
||||||
@ -414,6 +417,12 @@ func (p *Player) FriendCardBackData() {
|
|||||||
FriendMod := p.PlayMod.getFriendMod()
|
FriendMod := p.PlayMod.getFriendMod()
|
||||||
msgList := make([]*proto.ResFriendCard, 0, len(FriendMod.Card))
|
msgList := make([]*proto.ResFriendCard, 0, len(FriendMod.Card))
|
||||||
for _, v := range FriendMod.Card {
|
for _, v := range FriendMod.Card {
|
||||||
|
if !FriendMod.CheckFriend(v.AUid) && v.AUid != int(p.M_DwUin) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if !FriendMod.CheckFriend(v.BUid) && v.BUid != int(p.M_DwUin) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
msgList = append(msgList, GetCardInfoMsg(v))
|
msgList = append(msgList, GetCardInfoMsg(v))
|
||||||
}
|
}
|
||||||
p.PushClientRes(&proto.ResFriendCardMsg{
|
p.PushClientRes(&proto.ResFriendCardMsg{
|
||||||
|
|||||||
@ -561,7 +561,7 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int, pexp int) (int, error)
|
|||||||
player.TriggerOrder(BaseMod.Level, order.TRIGGER_TYPE_LV, ChessMod.GetOrderEmit(), player.PlayMod.getBaseMod().GetEnergyMul())
|
player.TriggerOrder(BaseMod.Level, order.TRIGGER_TYPE_LV, ChessMod.GetOrderEmit(), player.PlayMod.getBaseMod().GetEnergyMul())
|
||||||
player.PushClientRes(OrderMod.BackData())
|
player.PushClientRes(OrderMod.BackData())
|
||||||
// 重载活动
|
// 重载活动
|
||||||
player.initAcitivity()
|
player.initActivity()
|
||||||
player.BackDataActivity()
|
player.BackDataActivity()
|
||||||
player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_UPLV})
|
player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_UPLV})
|
||||||
player.TeLog("level_up", map[string]interface{}{
|
player.TeLog("level_up", map[string]interface{}{
|
||||||
|
|||||||
@ -248,7 +248,7 @@ func (p *Player) InitPlayer(UserName string) error {
|
|||||||
log.Debug("AddFunc failed:", err)
|
log.Debug("AddFunc failed:", err)
|
||||||
}
|
}
|
||||||
p.McronSave.Start()
|
p.McronSave.Start()
|
||||||
p.initAcitivity()
|
p.initActivity()
|
||||||
p.ZeroUpdate(nil)
|
p.ZeroUpdate(nil)
|
||||||
p.NoonUpdate(nil)
|
p.NoonUpdate(nil)
|
||||||
p.Login()
|
p.Login()
|
||||||
@ -307,7 +307,7 @@ func (p *Player) InitPlayerByUid(Uid int) error {
|
|||||||
log.Debug("AddFunc failed:", err)
|
log.Debug("AddFunc failed:", err)
|
||||||
}
|
}
|
||||||
p.McronSave.Start()
|
p.McronSave.Start()
|
||||||
p.initAcitivity()
|
p.initActivity()
|
||||||
p.ZeroUpdate(nil)
|
p.ZeroUpdate(nil)
|
||||||
p.NoonUpdate(nil)
|
p.NoonUpdate(nil)
|
||||||
p.Login()
|
p.Login()
|
||||||
@ -384,7 +384,7 @@ func (p *Player) ZeroUpdate(a []interface{}) {
|
|||||||
}
|
}
|
||||||
p.PlayroomBackData()
|
p.PlayroomBackData()
|
||||||
p.PlayMod.getChampshipMod().ZeroUpdate()
|
p.PlayMod.getChampshipMod().ZeroUpdate()
|
||||||
p.initAcitivity()
|
p.initActivity()
|
||||||
p.ActivityZeroUpdate()
|
p.ActivityZeroUpdate()
|
||||||
|
|
||||||
// 每日任务
|
// 每日任务
|
||||||
@ -907,6 +907,11 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
|
|||||||
"fur_coin_cost": fur_cfg.GetFurShopCostNum(v.Id),
|
"fur_coin_cost": fur_cfg.GetFurShopCostNum(v.Id),
|
||||||
"pet_fur_get_type": Label,
|
"pet_fur_get_type": Label,
|
||||||
})
|
})
|
||||||
|
case item.ITEM_TYPE_AD_CARD: // 广告卡
|
||||||
|
ChargeMod := p.PlayMod.getChargeMod()
|
||||||
|
Effect := itemCfg.GetItemEffect(v.Id)
|
||||||
|
ChargeMod.AddAdTime(Effect)
|
||||||
|
BackDataType[item.ITEM_TYPE_AD_CARD] = struct{}{}
|
||||||
default:
|
default:
|
||||||
err := ItemMod.AddItem(v.Id, v.Num)
|
err := ItemMod.AddItem(v.Id, v.Num)
|
||||||
p.TeLog("asset_change", map[string]interface{}{
|
p.TeLog("asset_change", map[string]interface{}{
|
||||||
@ -949,6 +954,8 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error {
|
|||||||
case item.ITEM_TYPE_PET_FUR:
|
case item.ITEM_TYPE_PET_FUR:
|
||||||
FurMod := p.PlayMod.getFurMod()
|
FurMod := p.PlayMod.getFurMod()
|
||||||
p.PushClientRes(FurMod.BackData())
|
p.PushClientRes(FurMod.BackData())
|
||||||
|
case item.ITEM_TYPE_AD_CARD:
|
||||||
|
p.ChargeBackData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
p.PetItemUseLog(itemList)
|
p.PetItemUseLog(itemList)
|
||||||
@ -1164,7 +1171,7 @@ func (p *Player) TeLog(Type string, Param map[string]interface{}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 初始化活动
|
// 初始化活动
|
||||||
func (p *Player) initAcitivity() {
|
func (p *Player) initActivity() {
|
||||||
p.activity = make(map[int]*ActivityInfo)
|
p.activity = make(map[int]*ActivityInfo)
|
||||||
ActivityList := activityCfg.GetActivityList()
|
ActivityList := activityCfg.GetActivityList()
|
||||||
Level := p.GetPlayerBaseMod().GetLevel()
|
Level := p.GetPlayerBaseMod().GetLevel()
|
||||||
@ -1186,6 +1193,7 @@ func (p *Player) initAcitivity() {
|
|||||||
Title: v.Title,
|
Title: v.Title,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
p.ActivityLogin()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Player) BackDataActivity() {
|
func (p *Player) BackDataActivity() {
|
||||||
|
|||||||
@ -206,7 +206,7 @@ func (p *PlayerModData) InitMod(player *Player) (bool, error) {
|
|||||||
p.ModList.Base.InitData(int(p.Data.DwUin), Ip)
|
p.ModList.Base.InitData(int(p.Data.DwUin), Ip)
|
||||||
p.ModList.SevenLogin.InitData()
|
p.ModList.SevenLogin.InitData()
|
||||||
p.ModList.LimitedTimeEvent.InitData(BaseMod.GetLevel())
|
p.ModList.LimitedTimeEvent.InitData(BaseMod.GetLevel())
|
||||||
p.ModList.Friend.InitData()
|
p.ModList.Friend.InitData(p.ModList.Base.Uid)
|
||||||
p.ModList.Mail.InitData()
|
p.ModList.Mail.InitData()
|
||||||
p.ModList.Charge.InitData()
|
p.ModList.Charge.InitData()
|
||||||
p.ModList.Endless.InitData()
|
p.ModList.Endless.InitData()
|
||||||
|
|||||||
@ -539,7 +539,12 @@ func ReqDecorate(player *Player, buf []byte) error {
|
|||||||
"item_list": AddItem,
|
"item_list": AddItem,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 跨越场景
|
||||||
if DecorateMod.GetAreaId() != AreaId { // 解锁上报
|
if DecorateMod.GetAreaId() != AreaId { // 解锁上报
|
||||||
|
LimitEventMod := player.PlayMod.getLimitedTimeEventMod()
|
||||||
|
if LimitEventMod.AddSenceDashTimes() {
|
||||||
|
player.PushClientRes(LimitEventMod.BackData())
|
||||||
|
}
|
||||||
player.TeLog("plot_unlock", map[string]interface{}{
|
player.TeLog("plot_unlock", map[string]interface{}{
|
||||||
"plot_id": DecorateMod.GetAreaId(),
|
"plot_id": DecorateMod.GetAreaId(),
|
||||||
})
|
})
|
||||||
@ -636,6 +641,15 @@ func ReqDecorateAll(player *Player, buf []byte) error {
|
|||||||
player.TeLog("scene_reward", v.(map[string]interface{}))
|
player.TeLog("scene_reward", v.(map[string]interface{}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if DecorateMod.GetAreaId() != AreaId { // 解锁上报
|
||||||
|
LimitEventMod := player.PlayMod.getLimitedTimeEventMod()
|
||||||
|
if LimitEventMod.AddSenceDashTimes() {
|
||||||
|
player.PushClientRes(LimitEventMod.BackData())
|
||||||
|
}
|
||||||
|
player.TeLog("plot_unlock", map[string]interface{}{
|
||||||
|
"plot_id": DecorateMod.GetAreaId(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
player.PlayMod.save()
|
player.PlayMod.save()
|
||||||
player.PushClientRes(DecorateMod.BackData())
|
player.PushClientRes(DecorateMod.BackData())
|
||||||
@ -1755,9 +1769,16 @@ func ReqLimitSenceReward(player *Player, buf []byte) error {
|
|||||||
return fmt.Errorf("not exist")
|
return fmt.Errorf("not exist")
|
||||||
|
|
||||||
}
|
}
|
||||||
Id, Items := limitedTimeEventMod.GetSceneDashReward()
|
Id, Items, err := limitedTimeEventMod.GetSceneDashReward()
|
||||||
|
if err != nil {
|
||||||
|
player.SendErrClienRes(&msg.ResLimitSenceReward{
|
||||||
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
Msg: err.Error(),
|
||||||
|
})
|
||||||
|
return err
|
||||||
|
}
|
||||||
player.args["ResItemPopId"] = Id
|
player.args["ResItemPopId"] = Id
|
||||||
err := player.HandleItem(Items, msg.ITEM_POP_LABEL_LimitSenceReward.String())
|
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_LimitSenceReward.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResLimitSenceReward{
|
player.SendErrClienRes(&msg.ResLimitSenceReward{
|
||||||
Code: msg.RES_CODE_FAIL,
|
Code: msg.RES_CODE_FAIL,
|
||||||
@ -2739,8 +2760,10 @@ func ReqShippingOrder(player *Player, buf []byte) error {
|
|||||||
func ReqChampshipReward(player *Player, buf []byte) error {
|
func ReqChampshipReward(player *Player, buf []byte) error {
|
||||||
ChampshipMod := player.PlayMod.getChampshipMod()
|
ChampshipMod := player.PlayMod.getChampshipMod()
|
||||||
todayActivityId, _ := player.GetChampshipActivityId()
|
todayActivityId, _ := player.GetChampshipActivityId()
|
||||||
|
DecorateMod := player.PlayMod.getDecorateMod()
|
||||||
|
orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId())
|
||||||
RewardId := ChampshipMod.Reward
|
RewardId := ChampshipMod.Reward
|
||||||
itemList := ChampshipMod.GetReward(todayActivityId)
|
itemList := ChampshipMod.GetReward(todayActivityId, orderFactor)
|
||||||
err := player.HandleItem(itemList, msg.ITEM_POP_LABEL_ChampshipReward.String())
|
err := player.HandleItem(itemList, msg.ITEM_POP_LABEL_ChampshipReward.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResChampshipReward{
|
player.SendErrClienRes(&msg.ResChampshipReward{
|
||||||
@ -3165,8 +3188,8 @@ func ReqMiningReward(player *Player, buf []byte) error {
|
|||||||
return fmt.Errorf("activity not start")
|
return fmt.Errorf("activity not start")
|
||||||
}
|
}
|
||||||
DecorateMod := player.PlayMod.getDecorateMod()
|
DecorateMod := player.PlayMod.getDecorateMod()
|
||||||
needStar := DecorateMod.GetNextNeedStar()
|
orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId())
|
||||||
itemList, Mining, err := MiningMod.GetReward(needStar)
|
itemList, Mining, err := MiningMod.GetReward(orderFactor)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
player.SendErrClienRes(&msg.ResMiningReward{
|
player.SendErrClienRes(&msg.ResMiningReward{
|
||||||
Code: msg.RES_CODE_FAIL,
|
Code: msg.RES_CODE_FAIL,
|
||||||
@ -3417,12 +3440,12 @@ func ReqPlayroomInfo(player *Player, buf []byte) error {
|
|||||||
} else {
|
} else {
|
||||||
PlayroomMod.SetGameId(playroom.GAME_TYPE_FILP)
|
PlayroomMod.SetGameId(playroom.GAME_TYPE_FILP)
|
||||||
DecorateMod := player.PlayMod.getDecorateMod()
|
DecorateMod := player.PlayMod.getDecorateMod()
|
||||||
needStar := DecorateMod.GetNextNeedStar()
|
needStar := DecorateMod.GetAreaCost()
|
||||||
highReward := int(float64(needStar) * 0.75)
|
highReward := int(float64(needStar) * 0.75)
|
||||||
if highReward < PlayerData.Star {
|
if highReward < PlayerData.Star {
|
||||||
PlayroomMod.SetGameRewardFlip(max(int(float64(needStar)*0.1), 10), max(int(float64(needStar)*0.3), 10), max(int(float64(needStar)*0.75), 10))
|
PlayroomMod.SetGameRewardFlip(max(int(float64(needStar)*0.1), 10), max(int(float64(needStar)*0.3), 50), max(int(float64(needStar)*0.75), 100))
|
||||||
} else {
|
} else {
|
||||||
PlayroomMod.SetGameRewardFlip(max(10, int(float64(PlayerData.Star)*0.1)), max(10, int(float64(PlayerData.Star)*0.5)), max(PlayerData.Star, 10))
|
PlayroomMod.SetGameRewardFlip(max(10, int(float64(PlayerData.Star)*0.1)), max(50, int(float64(PlayerData.Star)*0.5)), max(PlayerData.Star, 100))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
player.PlayMod.save()
|
player.PlayMod.save()
|
||||||
@ -4622,7 +4645,7 @@ func ReqActivityReward(player *Player, buf []byte) error {
|
|||||||
"Items": Items,
|
"Items": Items,
|
||||||
})
|
})
|
||||||
player.PlayMod.save()
|
player.PlayMod.save()
|
||||||
player.initAcitivity()
|
player.initActivity()
|
||||||
player.BackDataActivity()
|
player.BackDataActivity()
|
||||||
player.PushClientRes(&msg.ResActivityReward{
|
player.PushClientRes(&msg.ResActivityReward{
|
||||||
Code: msg.RES_CODE_SUCCESS,
|
Code: msg.RES_CODE_SUCCESS,
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package test
|
package test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
champshipCfg "server/conf/champship"
|
champshipCfg "server/conf/champship"
|
||||||
"server/game"
|
"server/game"
|
||||||
"testing"
|
"testing"
|
||||||
@ -35,3 +36,14 @@ func TestReqChampshipReward(t *testing.T) {
|
|||||||
ChampshipMod.Score = 1000
|
ChampshipMod.Score = 1000
|
||||||
game.ReqChampshipReward(p1, nil)
|
game.ReqChampshipReward(p1, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestChampionshipCreateRobot(t *testing.T) {
|
||||||
|
RobotNum := 30
|
||||||
|
i := 5
|
||||||
|
j := 1
|
||||||
|
RobotList := game.CreateRobotList(i, RobotNum, j)
|
||||||
|
for i := 0; i < RobotNum; i++ {
|
||||||
|
game.FormatRobotInfo(RobotList[i], i+1)
|
||||||
|
}
|
||||||
|
fmt.Print("success")
|
||||||
|
}
|
||||||
|
|||||||
@ -15,7 +15,7 @@ func TestGetStarEmitList(t *testing.T) {
|
|||||||
OrderMod := p1.GetOrderMod()
|
OrderMod := p1.GetOrderMod()
|
||||||
OrderMod.OrderList = map[int]order.Order{
|
OrderMod.OrderList = map[int]order.Order{
|
||||||
1: {
|
1: {
|
||||||
MergeId: []int{25, 25},
|
MergeId: []int{15, 15},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
p1.InitOrderItem()
|
p1.InitOrderItem()
|
||||||
|
|||||||
@ -3,7 +3,9 @@ package test
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"server/backend"
|
"server/backend"
|
||||||
|
avatarCfg "server/conf/avatar"
|
||||||
decorateCfg "server/conf/decorate"
|
decorateCfg "server/conf/decorate"
|
||||||
|
faceCfg "server/conf/face"
|
||||||
languageCfg "server/conf/language"
|
languageCfg "server/conf/language"
|
||||||
notification_cfg "server/conf/notification"
|
notification_cfg "server/conf/notification"
|
||||||
"server/db"
|
"server/db"
|
||||||
@ -256,3 +258,14 @@ func TestMsgFormat(t *testing.T) {
|
|||||||
}
|
}
|
||||||
fmt.Printf("Msg: %v\n", m)
|
fmt.Printf("Msg: %v\n", m)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRandFace(t *testing.T) {
|
||||||
|
face := faceCfg.GetRandInitId()
|
||||||
|
avatar := avatarCfg.GetRandInitId()
|
||||||
|
fmt.Printf("Random Face ID: %d, Random Avatar ID: %d\n", face, avatar)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestChampionShipCreateRobot(t *testing.T) {
|
||||||
|
robot := game.CreateRobot(1.0, 1)
|
||||||
|
fmt.Printf("Created Robot: %v\n", robot)
|
||||||
|
}
|
||||||
|
|||||||
@ -46,3 +46,11 @@ func TestReqApplyFriend(t *testing.T) {
|
|||||||
game.ReqApplyFriend(p1, buf)
|
game.ReqApplyFriend(p1, buf)
|
||||||
p1.FriendListBackData()
|
p1.FriendListBackData()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFriendBackData(t *testing.T) {
|
||||||
|
p1 := new(game.Player)
|
||||||
|
p1.InitPlayerByUid(100001)
|
||||||
|
p1.M_DwUin = 100100129
|
||||||
|
p1.FriendLogBackData()
|
||||||
|
p1.FriendCardBackData()
|
||||||
|
}
|
||||||
|
|||||||
@ -28,3 +28,17 @@ func TestFast(t *testing.T) {
|
|||||||
}
|
}
|
||||||
t.Logf("Fast produce items: %v", items)
|
t.Logf("Fast produce items: %v", items)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSenceDash(t *testing.T) {
|
||||||
|
p := new(game.Player)
|
||||||
|
p.InitPlayer("3625212")
|
||||||
|
LimitEventMod := p.GetLimitEventMod()
|
||||||
|
LimitEventMod.AddEvent(limitedTimeEvent.EVENT_TYPE_SENCE_DASH, 60)
|
||||||
|
LimitEventMod.AddSenceDashTimes() // 模拟一次场景冲刺
|
||||||
|
Id, items, err := LimitEventMod.GetSceneDashReward()
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("GetSceneDashReward error: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
t.Logf("Scene dash reward: Id=%d, items=%v", Id, items)
|
||||||
|
}
|
||||||
|
|||||||
@ -18,3 +18,9 @@ func TestGetPassReward(t *testing.T) {
|
|||||||
}
|
}
|
||||||
player.MiningBackData()
|
player.MiningBackData()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInitActivityItem(t *testing.T) {
|
||||||
|
player := new(game.Player)
|
||||||
|
player.GetBaseMod().Level = 15
|
||||||
|
player.Login()
|
||||||
|
}
|
||||||
|
|||||||
@ -40,3 +40,15 @@ func TestChestRain(t *testing.T) {
|
|||||||
f := LimitEventMod.GetMeteorReward([]int{226}, ChessMod.GetStarEmitList())
|
f := LimitEventMod.GetMeteorReward([]int{226}, ChessMod.GetStarEmitList())
|
||||||
fmt.Printf("chest rain reward:%v", f)
|
fmt.Printf("chest rain reward:%v", f)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInitOrderItem(t *testing.T) {
|
||||||
|
p1 := new(game.Player)
|
||||||
|
p1.InitPlayer("3625212")
|
||||||
|
OrderMod := p1.GetOrderMod()
|
||||||
|
OrderMod.OrderList = make(map[int]order.Order)
|
||||||
|
OrderMod.OrderList[1] = order.Order{
|
||||||
|
MergeId: []int{15, 15},
|
||||||
|
}
|
||||||
|
p1.InitOrderItem()
|
||||||
|
fmt.Printf("order item:%v", OrderMod.OrderList[1].Items)
|
||||||
|
}
|
||||||
|
|||||||
16
src/server/test/playroom_test.go
Normal file
16
src/server/test/playroom_test.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"server/game"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestPlayroomFlipGame(t *testing.T) {
|
||||||
|
p1 := new(game.Player)
|
||||||
|
p1.InitPlayerByUid(100001)
|
||||||
|
DecorateMod := p1.GetDecorateMod()
|
||||||
|
needStar := DecorateMod.GetAreaCost()
|
||||||
|
highReward := int(float64(needStar) * 0.75)
|
||||||
|
fmt.Printf("needStar: %d, highReward: %d\n", needStar, highReward)
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user