2025/6/16 进入房间

This commit is contained in:
fatiao 2025-06-16 20:46:51 +08:00
parent 886c3d88b6
commit 7e03f18619
16 changed files with 1662 additions and 1520 deletions

View File

@ -6,17 +6,24 @@
<component name="ChangeListManager">
<list default="true" id="d78b3961-331c-4a35-ae41-f23409fbe1fd" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/../doc/etcd-v3.5.17-windows-amd64/default.etcd/member/snap/db" beforeDir="false" afterPath="$PROJECT_DIR$/../doc/etcd-v3.5.17-windows-amd64/default.etcd/member/snap/db" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../doc/etcd-v3.5.17-windows-amd64/default.etcd/member/wal/0.tmp" beforeDir="false" afterPath="$PROJECT_DIR$/../doc/etcd-v3.5.17-windows-amd64/default.etcd/member/wal/0.tmp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../doc/etcd-v3.5.17-windows-amd64/default.etcd/member/wal/0000000000000000-0000000000000000.wal" beforeDir="false" afterPath="$PROJECT_DIR$/../doc/etcd-v3.5.17-windows-amd64/default.etcd/member/wal/0000000000000000-0000000000000000.wal" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/config/csv/FruitAwardCfg.csv" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/config/csv/FruitAwardCfg.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/baseserver/router/route_table.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/baseserver/router/route_table.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/fruit/model/fruit_manager.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/fruit/model/fruit_manager.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/fruit/model/fruit_player.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/fruit/model/fruit_player.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/fruit/model/fruit_room.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/fruit/model/fruit_room.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/fruit/msg/fruit_msg.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/fruit/msg/fruit_msg.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/game/model/role_bag.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/game/model/role_bag.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/game/model/role_battle.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/game/model/role_battle.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/game/msg/fruit_msg.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/game/msg/fruit_msg.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/pprof/guildmem.pprof/mem.pprof" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/pprof/guildmem.pprof/mem.pprof" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/serverproto/login.pb.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/serverproto/login.pb.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/serverproto/login.proto" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/serverproto/login.proto" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/serverproto/user.pb.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/serverproto/user.pb.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/serverproto/user.proto" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/serverproto/user.proto" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/serverproto/messagedef.pb.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/serverproto/messagedef.pb.go" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/serverproto/messagedef.proto" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/serverproto/messagedef.proto" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/serverproto/messagedefclient.proto" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/serverproto/messagedefclient.proto" afterDir="false" />
<change beforePath="$PROJECT_DIR$/roserver/serverproto/pbbind_gen.go" beforeDir="false" afterPath="$PROJECT_DIR$/roserver/serverproto/pbbind_gen.go" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@ -342,6 +342,7 @@ func init(){
addRule("SCFruitSettleNtf","game,fruit","game",1760)
addRule("SCFruitSecTickNtf","game,fruit","game",1761)
addRule("SCFruitPlayerAwardRankNtf","game,fruit","game",1762)
addRule("SCFruitStartBetNtf","game,fruit","game",1763)
addRule("SSCrossYuanHangTrialViewListReq","crossserver","crossserver",6002)
addRule("SSCrossYuanHangTrialReq","crossserver","crossserver",6004)
addRule("SSCrossYuanHangTrialChallengeReq","crossserver","crossserver",6006)

View File

@ -5,36 +5,39 @@ import (
)
type FruitManager struct {
mapRouterNode string
socialNode string
updateTimer util.ServerTimer
Room *FruitRoom
players map[uint64]*FruitPlayer
mapRouterNode string
socialNode string
updateTimer util.ServerTimer
deletePlayerTimer util.ServerTimer
Room *FruitRoom
players map[uint64]*FruitPlayer
}
func newFruitManager() *FruitManager {
fruitManager := &FruitManager{
Room: newFruitRoom(100000),
updateTimer: util.NewDurationTimer(util.GetTimeMilliseconds(), 1000),
players: make(map[uint64]*FruitPlayer),
Room: newFruitRoom(100000),
updateTimer: util.NewDurationTimer(util.GetTimeMilliseconds(), 1000),
deletePlayerTimer: util.NewDurationTimer(util.GetTimeMilliseconds(), 60*1000),
players: make(map[uint64]*FruitPlayer),
}
return fruitManager
}
func (self *FruitManager) AddPlayer(uid uint64, name string) {
func (self *FruitManager) AddPlayer(uid uint64, name string) *FruitPlayer {
_, exist := self.players[uid]
if exist == false {
self.players[uid] = newFruitPlayer(uid, name)
}
self.players[uid].Online = true
self.players[uid].Online = false
self.players[uid].WaitLeaveRoom = false
self.players[uid].LeaveRoom = false
util.InfoF("AddPlayer: ", uid)
return self.players[uid]
}
func (self *FruitManager) RemovePlayer(uid uint64) {
//delete(self.players, uid)
_, exist := self.players[uid]
if exist {
self.players[uid].Online = false
}
util.InfoF("RemovePlayer: ", uid)
delete(self.players, uid)
}
func (self *FruitManager) GetPlayer(uid uint64) *FruitPlayer {
@ -42,8 +45,18 @@ func (self *FruitManager) GetPlayer(uid uint64) *FruitPlayer {
}
func (self *FruitManager) Update(ms uint64) {
if !self.updateTimer.IsStart() || !self.updateTimer.IsExpired(ms) {
return
if self.updateTimer.IsStart() && self.updateTimer.IsExpired(ms) {
self.Room.Update()
}
if self.deletePlayerTimer.IsStart() && self.deletePlayerTimer.IsExpired(ms) {
deletePlayerUidList := make([]uint64, 0)
for _, player := range self.players {
if player.LeaveRoom == true && player.Online == false {
deletePlayerUidList = append(deletePlayerUidList, player.Uid)
}
}
for i := 0; i < len(deletePlayerUidList); i++ {
self.RemovePlayer(deletePlayerUidList[i])
}
}
self.Room.Update()
}

View File

@ -3,9 +3,11 @@ package model
import "roserver/serverproto"
type FruitPlayer struct {
Uid uint64
Name string
Online bool
Uid uint64
Name string
Online bool
WaitLeaveRoom bool
LeaveRoom bool
ChipNum int32
CurrBetInfo map[int32]int32
@ -20,14 +22,18 @@ func newFruitPlayer(uid uint64, name string) *FruitPlayer {
Name: name,
CurrBetInfo: make(map[int32]int32),
CurrAwardChipNum: 0,
WaitLeaveRoom: false,
LeaveRoom: false,
Online: false,
}
player.ResetBetInfo()
player.ResetInfo()
return player
}
func (self *FruitPlayer) ResetBetInfo() {
func (self *FruitPlayer) ResetInfo() {
var i int32
for i = 1; i <= 8; i++ {
self.CurrBetInfo[i] = 0
}
self.CurrAwardChipNum = 0
}

View File

@ -11,7 +11,7 @@ import (
const (
ROOM_STAGE_BET = 1 //押注阶段
ROOM_STAGE_SETTLE = 2 //开奖阶段
DURATION_BET_SEC = 15
DURATION_BET_SEC = 30
DURATION_SETTLE_SEC = 5
MAX_POOL_CHIP = 10000
MAX_SETTLE_HISTORY_COUNT = 7
@ -78,6 +78,9 @@ func (self *FruitRoom) Join(uid uint64) {
if isExist == false {
self.uidList = append(self.uidList, uid)
}
player := FruitMgr.GetPlayer(uid)
player.LeaveRoom = false
player.WaitLeaveRoom = false
}
func sliceRemoveValueFast(slice []uint64, value uint64) []uint64 {
@ -91,8 +94,25 @@ func sliceRemoveValueFast(slice []uint64, value uint64) []uint64 {
}
return slice
}
func (self *FruitRoom) ResetRoomPlayers() {
offlineUidList := make([]uint64, 0)
for i := 0; i < len(self.uidList); i++ {
uid := self.uidList[i]
player := FruitMgr.GetPlayer(uid)
player.ResetInfo()
if player.WaitLeaveRoom == true {
offlineUidList = append(offlineUidList, uid)
player.LeaveRoom = true
}
}
for i := 0; i < len(offlineUidList); i++ {
uid := offlineUidList[i]
self.uidList = sliceRemoveValueFast(self.uidList, uid)
}
}
func (self *FruitRoom) Leave(uid uint64) {
self.uidList = sliceRemoveValueFast(self.uidList, uid)
player := FruitMgr.GetPlayer(uid)
player.WaitLeaveRoom = true
}
func (self *FruitRoom) Bet(uid uint64, betInfo []*serverproto.FruitSlotInfo) serverproto.ErrorCode {
@ -128,11 +148,12 @@ func (self *FruitRoom) JumpStage(stage int32) {
// 开始押注
func (self *FruitRoom) StartBet() {
self.ResetRoomPlayers()
self.ResetTotalBetInfo()
for i := 0; i < len(self.uidList); i++ {
uid := self.uidList[i]
player := FruitMgr.GetPlayer(uid)
player.ResetBetInfo()
ntfMsg := &serverproto.SCFruitStartBetNtf{Uid: uid}
SendToAllGame(ntfMsg)
}
}

View File

@ -14,22 +14,23 @@ func init() {
serverproto.Handle_FRUIT_SSPlayerOnlineNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SSPlayerOnlineNtf)
util.InfoF("receive SSPlayerOnlineNtf msg:%v", msg)
model2.FruitMgr.AddPlayer(msg.BriefInfo.Uid, msg.BriefInfo.NickName)
player := model2.FruitMgr.AddPlayer(msg.BriefInfo.Uid, msg.BriefInfo.NickName)
player.Online = true
})
serverproto.Handle_FRUIT_SSPlayerOfflineNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SSPlayerOfflineNtf)
util.InfoF("receive SSPlayerOfflineNtf msg:%v", msg)
model2.FruitMgr.Room.Leave(msg.Uid)
model2.FruitMgr.RemovePlayer(msg.Uid)
player := model2.FruitMgr.GetPlayer(msg.Uid)
player.Online = false
})
serverproto.Handle_FRUIT_CSFruitJoinReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.CSFruitJoinReq)
util.InfoF("receive CSFruitJoinReq msg:%v", msg)
model2.FruitMgr.Room.Join(msg.Uid)
player := model2.FruitMgr.GetPlayer(msg.Uid)
player.ChipNum = 10000
player.ChipNum = msg.ChipNum
model2.FruitMgr.Room.Join(msg.Uid)
totalBetInfo := make([]*serverproto.FruitSlotInfo, 0)
for slot := 1; slot <= 8; slot++ {
betNum := model2.FruitMgr.Room.TotalBetInfo[int32(slot)]

View File

@ -99,6 +99,7 @@ const (
AddFrom_ActivityFundOnekey //83 基金活动
AddFrom_PetRankAward //84 宠物比拼
AddFrom_DrawLevelupSummon //可升级的抽奖卡池
AddFrom_Fruit
)
type RoleBag struct {

View File

@ -23,7 +23,7 @@ func (this *Role) Income() {
}
}
//battle相关
// battle相关
func (this *Role) BattleBossReq() {
if this.roleBattle != nil {
ret, deltaTime, factorList := this.roleBattle.BossRewardPre()
@ -53,7 +53,7 @@ func (this *Role) BossReward(challengeTime uint32, mapId, mapLevel uint32, recor
}
}
//evil
// evil
func (this *Role) BattleEvilRefresh(bForce bool, watchAd bool) {
if this.roleBattle != nil {
ret, changeIdxList := this.roleBattle.BattleEvilRefresh(bForce, watchAd)
@ -78,7 +78,7 @@ func (this *Role) BattleEvilChallenge(posIdx int32) {
}
}
//expedition
// expedition
func (this *Role) ExpeditionChallengePre(expeditionType int32) {
ackMsg := &serverproto.SCExpeditionChallengePreAck{
Error: int32(serverproto.ErrorCode_ERROR_FAIL),
@ -90,7 +90,7 @@ func (this *Role) ExpeditionChallengePre(expeditionType int32) {
this.ReplayGate(ackMsg, true)
}
//挑战区域地图关卡boss结束上报
// 挑战区域地图关卡boss结束上报
func (this *Role) ExpeditionChallenge(expeditionType, battleLevel int32, heroInfoList []*serverproto.BattleExpeditionActor,
bossChangeHpList []*serverproto.BattleExpeditionActor, battleTime int32, bossIdx, flag int32) {
ackMsg := &serverproto.SCExpeditionChallengeAck{
@ -241,7 +241,7 @@ const (
EvilBossType_Glod = 4
)
//战斗相关处理
// 战斗相关处理
type RoleBattle struct {
SaveObject
@ -603,7 +603,7 @@ func (this *RoleBattle) getDeltaMapCount(mapIdOld, mapLevelOld, mapIdNew, mapLev
return rewardCount
}
//获取关卡累计奖励
// 获取关卡累计奖励
func (this *RoleBattle) GetMapShowReward(addItemList map[int32]int32) {
showNum := this.getMapRewardShowCount()
if showNum > 0 {
@ -676,7 +676,7 @@ func (this *RoleBattle) SetMapRank(selfRank, totalRanks uint32, topRankList []*s
}
}
//通关指定关卡次数,目前都是一次,后续有特殊关卡会记录通关次数
// 通关指定关卡次数,目前都是一次,后续有特殊关卡会记录通关次数
func (this *RoleBattle) GetPassBattleIdNum(passBattleId int32) int32 {
if this.getLevelId(this.mapId, this.mapLevel) > passBattleId {
return 1
@ -759,7 +759,15 @@ func (this *RoleBattle) addMapRank(rewardCount uint32, oldMapId, oldMapLevel uin
this.role.GetRoleBase().SetFightPower(0)
}
//收益
func (this *RoleBattle) FruitIncome(incomeNum int32) map[int32]int32 {
var addItemList = make(map[int32]int32, 0)
levelId := this.getLevelId(this.mapId, this.mapLevel)
this.levelOnlineReward(levelId, addItemList, incomeNum)
this.role.AddItemList(addItemList, AddFrom_Fruit, false)
return addItemList
}
// 收益
func (this *RoleBattle) Income() serverproto.ErrorCode {
levelId := this.getLevelId(this.mapId, this.mapLevel)
nowTime := util.GetTimeMilliseconds()
@ -929,7 +937,7 @@ func (this *RoleBattle) GMSetMapLevel(mapId, mapLevel uint32) {
this.changeBattleDataNtf()
}
//开启所有解锁的关卡区域地图
// 开启所有解锁的关卡区域地图
func (this *RoleBattle) GmExpeditionOpenAll() {
if this.expeditionData != nil {
for _, val := range model.ConvertExpeditionDataList {
@ -973,7 +981,7 @@ func (this *RoleBattle) GmExpeditionRankScore(score int32) {
this.expeditionChangeNtf(false)
}
//点击挑战时的预处理
// 点击挑战时的预处理
func (this *RoleBattle) BossRewardPre() (serverproto.ErrorCode, int32, []*serverproto.KeyValueType) {
this.role.roleBattleAttr.BattleAttrInit()
@ -1042,7 +1050,7 @@ func (this *RoleBattle) getDecayList(kvList map[int32]int32, nowTime uint64) {
util.InfoF("uid=%v RoleBattleDecay kv=%v", this.role.GetUUid(), kvList)
}
//挑战BOSS奖励
// 挑战BOSS奖励
func (this *RoleBattle) BossReward(challengeTime uint32, mapId, mapLevel uint32, recordTimeStamp uint64) serverproto.ErrorCode {
//合法性检测
//机器人处理
@ -1422,7 +1430,7 @@ func (this *RoleBattle) GetQuickBattleReward(watchAd bool) {
TaskMagCheck(this.role, serverproto.TaskType_Eve_Use_Quick_Battle, 1)
}
//evil
// evil
func (this *RoleBattle) evilDataChangeNtf() {
ntfMsg := &serverproto.SCEvilChangeNtf{
EvilInfo: this.evilData,
@ -1763,7 +1771,7 @@ func (this *RoleBattle) GetEvilLvl() int32 {
return this.evilData.EvilLevel
}
//expedition
// expedition
func (this *RoleBattle) expeditionChangeNtf(dayReset bool) {
ntfMsg := &serverproto.SCExpeditionChangeNtf{
ExpeditionInfo: this.expeditionData,
@ -2341,8 +2349,8 @@ func (this *RoleBattle) ExpeditionHelp(beHelpedUid uint64, msgType int32, helpMs
return serverproto.ErrorCode_ERROR_OK
}
//from social
//被救助玩家离线返回发起救助玩家并进行db操作
// from social
// 被救助玩家离线返回发起救助玩家并进行db操作
func (this *RoleBattle) OnExpeditionHelp(beHelpedUid uint64, retCode int32) {
switch retCode {
case int32(serverproto.ErrorCode_ERROR_EXPEDITION_NOT_FIND_SERVICE_ID):
@ -2377,7 +2385,7 @@ func (this *RoleBattle) OnExpeditionHelp(beHelpedUid uint64, retCode int32) {
}
}
//判断是否可以成功被救助(玩家最近在线直接内存操作不涉及DB操作)
// 判断是否可以成功被救助(玩家最近在线直接内存操作不涉及DB操作)
func (this *RoleBattle) OnExpeditionBeHelp(fromUid, beHelpedUid uint64, helpMsgSendTime uint64) serverproto.ErrorCode {
if this.expeditionData.BeAssistNum != nil {
//该玩家被救助的次数达到上限,无法救助
@ -2482,7 +2490,7 @@ func (this *RoleBattle) ExpeditionPassReward(expeditionType int32) serverproto.E
return serverproto.ErrorCode_ERROR_OK
}
//救助日志过期惰性删除
// 救助日志过期惰性删除
func (this *RoleBattle) checkBeHelpUidListExpire() {
idx := 0
for idx < len(this.expeditionData.BeAssistUidList) {
@ -2568,12 +2576,12 @@ func (this *RoleBattle) GenWarriorScore(levelInfo *model.ConvertExpeditionDetail
this.SetDirty(true)
}
//获取当前正在调整的boss id
// 获取当前正在调整的boss id
func (this *RoleBattle) findBattleBossIdx() int32 {
return this.expeditionData.BattleIdx
}
//判断挑战使用的英雄是否有已经死亡的
// 判断挑战使用的英雄是否有已经死亡的
func (this *RoleBattle) isCurBattleHeroDied(heroInfoList []*serverproto.BattleExpeditionActor, flag int32) serverproto.ErrorCode {
if flag == 1 {
if len(heroInfoList) <= 0 {
@ -2727,7 +2735,7 @@ func (this *RoleBattle) expeditionRewardBox(cfgData *model.ConvertExpedition, re
return serverproto.ErrorCode_ERROR_OK
}
//============================================== 冲榜相关 ===========================================
// ============================================== 冲榜相关 ===========================================
func (this *RoleBattle) OnlineGetRushMapBaseReward(rewardRound int32) {
if this.rushMap == nil || rewardRound <= 0 {
return
@ -2875,7 +2883,7 @@ func (this *RoleBattle) GetFightCountMailReward(rushRound int32) {
}
}
//去排行榜服务器校验是否活动内
// 去排行榜服务器校验是否活动内
func (this *RoleBattle) OnRushMapScoreChange(score2 int32, score3 int32) {
reqMsg := &serverproto.SSRushDataChangeReq{}
reqMsg.Uid = this.role.GetUUid()
@ -2885,7 +2893,7 @@ func (this *RoleBattle) OnRushMapScoreChange(score2 int32, score3 int32) {
this.role.SendRank(reqMsg)
}
//score2 战斗分数 score3 礼包分数
// score2 战斗分数 score3 礼包分数
func (this *RoleBattle) AddRushMapScore(rushRound int32, score2 int32, score3 int32) {
if rushRound == 0 {
return
@ -2925,7 +2933,7 @@ func (this *RoleBattle) AddRushMapScore(rushRound int32, score2 int32, score3 in
this.SetDirty(true)
}
//同步积分到rank服务器
// 同步积分到rank服务器
func (this *RoleBattle) sendRushMapScoreToRank() {
ntfMsg := &serverproto.SSRushMapScoreNtf{
Uid: this.role.GetUUid(),

View File

@ -17,6 +17,7 @@ func init() {
}
util.InfoF("uid=%v receive CSFruitJoinReq msg=%v", role.GetUUid(), msg)
msg.Uid = role.GetUUid()
msg.ChipNum = int32(role.(*model2.Role).GetRmb())
role.(*model2.Role).SendAllFruit(msg)
})
serverproto.Handle_GAME_SCFruitJoinAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
@ -68,10 +69,25 @@ func init() {
if role == nil {
return
}
if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
subRmb := int32(role.(*model2.Role).GetRoleBase().GetRmb()) - msg.MyChipNum
//role.(*model2.Role).AddRmb(model2.AddItemST{ItemCount: subRmb}, false)
role.(*model2.Role).DelItem(int32(serverproto.ResType_Res_Rmb), subRmb, model2.AddItemST{AddFrom: model2.AddFrom_Fruit})
}
util.InfoF("uid=%v receive SCFruitBetAck msg=%v", role.GetUUid(), msg)
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCFruitStartBetNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitStartBetNtf)
newCliId := &model.ClientID{SessID: msg.Uid}
role := model2.RoleMag.GetRole(*newCliId)
if role == nil {
return
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCFruitSettleNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitSettleNtf)
util.InfoF("uid=%v receive SCFruitSettleNtf msg=%v", msg.Uid, msg)
@ -80,11 +96,15 @@ func init() {
if role == nil {
return
}
if msg.AwardChipNum > 0 {
addRmb := msg.AwardChipNum
role.(*model2.Role).AddItem(int32(serverproto.ResType_Res_Rmb), addRmb, model2.AddFrom_Fruit)
}
role.ReplayGate(msg, true)
})
serverproto.Handle_GAME_SCFruitSecTickNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
msg := ev.Msg().(*serverproto.SCFruitSecTickNtf)
util.InfoF("uid=%v receive SCFruitSecTickNtf msg=%v", msg.Uid, msg)
//util.InfoF("uid=%v receive SCFruitSecTickNtf msg=%v", msg.Uid, msg)
newCliId := &model.ClientID{SessID: msg.Uid}
role := model2.RoleMag.GetRole(*newCliId)
if role == nil {

File diff suppressed because it is too large Load Diff

View File

@ -3771,6 +3771,7 @@ message SCLevelupSummonStartupNtf{
message CSFruitJoinReq { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 room_no = 2;
int32 chip_num = 3;
}
message SCFruitJoinAck { //project game|fruit //RouteRule game
uint64 uid = 1;
@ -3818,6 +3819,9 @@ message SCFruitSettleNtf { //project game|fruit //RouteRule game
int32 target_slot = 9;
repeated int32 award_items = 10; //
}
message SCFruitStartBetNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
}
message SCFruitSecTickNtf { //project game|fruit //RouteRule game
uint64 uid = 1;
int32 sec = 2;

File diff suppressed because it is too large Load Diff

View File

@ -742,6 +742,7 @@ enum protoMsgId{
SC_FRUIT_SETTLE_NTF = 1760; // SCFruitSettleNtf **SCFruitSettleNtf **login.proto **game,fruit [SCFruitSettleNtf]
SC_FRUIT_SEC_TICK_NTF = 1761; // SCFruitSecTickNtf **SCFruitSecTickNtf **login.proto **game,fruit [SCFruitSecTickNtf]
SC_FRUIT_PLAYER_AWARD_RANK_NTF = 1762; // SCFruitPlayerAwardRankNtf **SCFruitPlayerAwardRankNtf **login.proto **game,fruit [SCFruitPlayerAwardRankNtf]
SC_FRUIT_START_BET_NTF = 1763; // SCFruitStartBetNtf **SCFruitStartBetNtf **login.proto **game,fruit [SCFruitStartBetNtf]
SS_WEB_GM_CHAT_MSG_NTF = 3000; // SSWebGMChatMsgNtf **SSWebGMChatMsgNtf **logic.proto **db [SSWebGMChatMsgNtf]
SS_WEB_GM_ADD_MAIL_NTF = 3001; // SSWebGMAddMailNtf **SSWebGMAddMailNtf **logic.proto **social,game,db [SSWebGMAddMailNtf]
SS_WEB_GM_BAN_NTF = 3002; // SSWebGMBanNtf **SSWebGMBanNtf **logic.proto **social,game [SSWebGMBanNtf]

View File

@ -720,5 +720,6 @@ enum protoMsgId{
SC_FRUIT_SETTLE_NTF = 1760; // SCFruitSettleNtf **SCFruitSettleNtf **login.proto **game,fruit [SCFruitSettleNtf]
SC_FRUIT_SEC_TICK_NTF = 1761; // SCFruitSecTickNtf **SCFruitSecTickNtf **login.proto **game,fruit [SCFruitSecTickNtf]
SC_FRUIT_PLAYER_AWARD_RANK_NTF = 1762; // SCFruitPlayerAwardRankNtf **SCFruitPlayerAwardRankNtf **login.proto **game,fruit [SCFruitPlayerAwardRankNtf]
SC_FRUIT_START_BET_NTF = 1763; // SCFruitStartBetNtf **SCFruitStartBetNtf **login.proto **game,fruit [SCFruitStartBetNtf]
}

View File

@ -173,6 +173,7 @@ var(
Handle_FRUIT_SCFruitSettleNtf =func(e rocommon.ProcEvent){panic("SCFruitSettleNtf not implements")}
Handle_FRUIT_SCFruitSecTickNtf =func(e rocommon.ProcEvent){panic("SCFruitSecTickNtf not implements")}
Handle_FRUIT_SCFruitPlayerAwardRankNtf =func(e rocommon.ProcEvent){panic("SCFruitPlayerAwardRankNtf not implements")}
Handle_FRUIT_SCFruitStartBetNtf =func(e rocommon.ProcEvent){panic("SCFruitStartBetNtf not implements")}
Handle_FRUIT_SSPlayerOnlineNtf =func(e rocommon.ProcEvent){panic("SSPlayerOnlineNtf not implements")}
Handle_FRUIT_SSPlayerOfflineNtf =func(e rocommon.ProcEvent){panic("SSPlayerOfflineNtf not implements")}
Handle_FRUIT_Default func(e rocommon.ProcEvent)
@ -566,6 +567,7 @@ var(
Handle_GAME_SCFruitSettleNtf =func(e rocommon.ProcEvent){panic("SCFruitSettleNtf not implements")}
Handle_GAME_SCFruitSecTickNtf =func(e rocommon.ProcEvent){panic("SCFruitSecTickNtf not implements")}
Handle_GAME_SCFruitPlayerAwardRankNtf =func(e rocommon.ProcEvent){panic("SCFruitPlayerAwardRankNtf not implements")}
Handle_GAME_SCFruitStartBetNtf =func(e rocommon.ProcEvent){panic("SCFruitStartBetNtf not implements")}
Handle_GAME_SSWebGMAddMailNtf =func(e rocommon.ProcEvent){panic("SSWebGMAddMailNtf not implements")}
Handle_GAME_SSWebGMBanNtf =func(e rocommon.ProcEvent){panic("SSWebGMBanNtf not implements")}
Handle_GAME_SSWebGMNoticeNtf =func(e rocommon.ProcEvent){panic("SSWebGMNoticeNtf not implements")}
@ -1143,6 +1145,7 @@ func GetMessageHandler(sreviceName string) rocommon.EventCallBack {
case *SCFruitSettleNtf: Handle_FRUIT_SCFruitSettleNtf(e)
case *SCFruitSecTickNtf: Handle_FRUIT_SCFruitSecTickNtf(e)
case *SCFruitPlayerAwardRankNtf: Handle_FRUIT_SCFruitPlayerAwardRankNtf(e)
case *SCFruitStartBetNtf: Handle_FRUIT_SCFruitStartBetNtf(e)
case *SSPlayerOnlineNtf: Handle_FRUIT_SSPlayerOnlineNtf(e)
case *SSPlayerOfflineNtf: Handle_FRUIT_SSPlayerOfflineNtf(e)
default:
@ -1541,6 +1544,7 @@ func GetMessageHandler(sreviceName string) rocommon.EventCallBack {
case *SCFruitSettleNtf: Handle_GAME_SCFruitSettleNtf(e)
case *SCFruitSecTickNtf: Handle_GAME_SCFruitSecTickNtf(e)
case *SCFruitPlayerAwardRankNtf: Handle_GAME_SCFruitPlayerAwardRankNtf(e)
case *SCFruitStartBetNtf: Handle_GAME_SCFruitStartBetNtf(e)
case *SSWebGMAddMailNtf: Handle_GAME_SSWebGMAddMailNtf(e)
case *SSWebGMBanNtf: Handle_GAME_SSWebGMBanNtf(e)
case *SSWebGMNoticeNtf: Handle_GAME_SSWebGMNoticeNtf(e)
@ -2698,6 +2702,7 @@ func init() {
registerInfo(1760, reflect.TypeOf((*SCFruitSettleNtf)(nil)).Elem(), 0)
registerInfo(1761, reflect.TypeOf((*SCFruitSecTickNtf)(nil)).Elem(), 0)
registerInfo(1762, reflect.TypeOf((*SCFruitPlayerAwardRankNtf)(nil)).Elem(), 0)
registerInfo(1763, reflect.TypeOf((*SCFruitStartBetNtf)(nil)).Elem(), 0)
registerInfo(3000, reflect.TypeOf((*SSWebGMChatMsgNtf)(nil)).Elem(), 0)
registerInfo(3001, reflect.TypeOf((*SSWebGMAddMailNtf)(nil)).Elem(), 0)
registerInfo(3002, reflect.TypeOf((*SSWebGMBanNtf)(nil)).Elem(), 0)