Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
d6b7440331
@ -472,6 +472,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr
|
|||||||
func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) {
|
func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) {
|
||||||
var (
|
var (
|
||||||
atno []*pb.UserAtno
|
atno []*pb.UserAtno
|
||||||
|
consumeexp int32
|
||||||
winindex int32
|
winindex int32
|
||||||
res []*cfg.Gameatn
|
res []*cfg.Gameatn
|
||||||
lostPlayer *pb.PlayerData // 输的玩家
|
lostPlayer *pb.PlayerData // 输的玩家
|
||||||
@ -510,6 +511,7 @@ func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) {
|
|||||||
if v.A == "attr" && v.T == "consumeexp" {
|
if v.A == "attr" && v.T == "consumeexp" {
|
||||||
list.Consumeexp += int32(v.N*pro) / 1000
|
list.Consumeexp += int32(v.N*pro) / 1000
|
||||||
winScore = int32(v.N*pro) / 1000
|
winScore = int32(v.N*pro) / 1000
|
||||||
|
consumeexp += winScore
|
||||||
update["consumeexp"] = list.Consumeexp
|
update["consumeexp"] = list.Consumeexp
|
||||||
winner.Consumeexp = list.Consumeexp
|
winner.Consumeexp = list.Consumeexp
|
||||||
if list.Consumeexp > list.Maxconsumeexp { // 写最高积分
|
if list.Consumeexp > list.Maxconsumeexp { // 写最高积分
|
||||||
@ -520,6 +522,7 @@ func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) {
|
|||||||
list.Maxsocre = winner.Score
|
list.Maxsocre = winner.Score
|
||||||
update["maxsocre"] = list.Maxsocre
|
update["maxsocre"] = list.Maxsocre
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
res = append(res, v)
|
res = append(res, v)
|
||||||
}
|
}
|
||||||
@ -527,6 +530,13 @@ func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) {
|
|||||||
if errdata, atno = this.module.DispenseAtno(this.szSession[winindex], res, true); errdata != nil {
|
if errdata, atno = this.module.DispenseAtno(this.szSession[winindex], res, true); errdata != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if consumeexp > 0 {
|
||||||
|
atno = append(atno, &pb.UserAtno{
|
||||||
|
A: "attr",
|
||||||
|
T: "consumeexp",
|
||||||
|
N: consumeexp,
|
||||||
|
})
|
||||||
|
}
|
||||||
this.szSession[winindex].Push()
|
this.szSession[winindex].Push()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -746,20 +756,18 @@ func (this *Room) LianShengAdd(liansheng int32) (permillage int32) {
|
|||||||
result []*cfg.GameConsumeTxtData
|
result []*cfg.GameConsumeTxtData
|
||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
|
|
||||||
if result, err = this.module.configure.getLianShengReward(); err == nil {
|
if result, err = this.module.configure.getLianShengReward(); err == nil {
|
||||||
for pos, v := range result {
|
for i := len(result) - 1; i >= 0; i-- {
|
||||||
if len(result) > pos+1 {
|
if liansheng >= result[i].Winningstreak {
|
||||||
if result[pos+1].Winningstreak >= liansheng { // 下一等级小于当前值
|
permillage = result[i].Winningstreak
|
||||||
permillage = result[pos].Rewarddata
|
break
|
||||||
return
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
permillage = v.Rewarddata
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if permillage == 0 {
|
if permillage == 0 {
|
||||||
permillage = 1
|
permillage = 1000
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,9 @@ func (this *Mail) SendNewMail(mail *pb.DBMailData, uid ...string) bool {
|
|||||||
mail.ObjId = primitive.NewObjectID().Hex()
|
mail.ObjId = primitive.NewObjectID().Hex()
|
||||||
mail.Check = false
|
mail.Check = false
|
||||||
mail.Reward = true
|
mail.Reward = true
|
||||||
|
mail.Uid = id
|
||||||
|
mail.CreateTime = uint64(configure.Now().Unix())
|
||||||
|
mail.DueTime = uint64(configure.Now().Unix()) + 30*24*3600
|
||||||
if len(mail.GetItems()) > 0 {
|
if len(mail.GetItems()) > 0 {
|
||||||
mail.Reward = false
|
mail.Reward = false
|
||||||
}
|
}
|
||||||
|
@ -114,5 +114,7 @@ func (this *Moonlv) GMCreateMoonlv(session comm.IUserSession, lv int32) {
|
|||||||
if lv <= 0 {
|
if lv <= 0 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.modelMoonlv.modifyMoonlvList(session.GetUserId(), map[string]interface{}{"lv": lv})
|
if _, err := this.modelMoonlv.module.configure.GetMoonLvConf(lv + 1); err == nil {
|
||||||
|
this.modelMoonlv.modifyMoonlvList(session.GetUserId(), map[string]interface{}{"cid": lv + 1})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,6 +128,9 @@ func (this *apiComp) ChallengeCycleOver(session comm.IUserSession, req *pb.Pagod
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
db.Uinfo = comm.GetUserBaseInfo(user)
|
db.Uinfo = comm.GetUserBaseInfo(user)
|
||||||
}
|
}
|
||||||
|
db.Data[conf.Floors] = &pb.CycleData{
|
||||||
|
Consttime: costTime,
|
||||||
|
}
|
||||||
db.Data[conf.Floors].Line = &pb.LineData{
|
db.Data[conf.Floors].Line = &pb.LineData{
|
||||||
Leadpos: Leadpos,
|
Leadpos: Leadpos,
|
||||||
Line: szLine,
|
Line: szLine,
|
||||||
|
@ -118,7 +118,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PlunderCha
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
lock, err = this.module.modelLand.landMutexLock(list.Landid)
|
lock, err = this.module.modelLand.landMutexLock(list.Landid)
|
||||||
lock.Lock()
|
err = lock.Lock()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errdata = &pb.ErrorData{
|
errdata = &pb.ErrorData{
|
||||||
Code: pb.ErrorCode_DBError,
|
Code: pb.ErrorCode_DBError,
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package plunder
|
package plunder
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
@ -32,10 +33,22 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.PlunderGetListRe
|
|||||||
}
|
}
|
||||||
update = make(map[string]interface{})
|
update = make(map[string]interface{})
|
||||||
if list, err = this.module.modelPlunder.getPlunderData(session); err != nil {
|
if list, err = this.module.modelPlunder.getPlunderData(session); err != nil {
|
||||||
errdata = &pb.ErrorData{
|
var customErr = new(comm.CustomError)
|
||||||
Code: pb.ErrorCode_DBError,
|
if errors.As(err, &customErr) {
|
||||||
Message: err.Error(),
|
code := customErr.Code
|
||||||
|
errdata = &pb.ErrorData{
|
||||||
|
Code: code,
|
||||||
|
Title: code.ToString(),
|
||||||
|
Message: err.Error(),
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
errdata = &pb.ErrorData{
|
||||||
|
Code: pb.ErrorCode_DBError,
|
||||||
|
Title: pb.ErrorCode_DBError.ToString(),
|
||||||
|
Message: err.Error(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ func (this *apiComp) PvpChallenge(session comm.IUserSession, req *pb.PlunderPvpC
|
|||||||
}
|
}
|
||||||
|
|
||||||
lock, err = this.module.modelLand.landMutexLock(list.Landid)
|
lock, err = this.module.modelLand.landMutexLock(list.Landid)
|
||||||
lock.Lock()
|
err = lock.Lock()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errdata = &pb.ErrorData{
|
errdata = &pb.ErrorData{
|
||||||
Code: pb.ErrorCode_DBError,
|
Code: pb.ErrorCode_DBError,
|
||||||
|
@ -47,7 +47,7 @@ func (this *apiComp) PvpChallengeOver(session comm.IUserSession, req *pb.Plunder
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
lock, err = this.module.modelLand.landMutexLock(list.Landid)
|
lock, err = this.module.modelLand.landMutexLock(list.Landid)
|
||||||
lock.Lock()
|
err = lock.Lock()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errdata = &pb.ErrorData{
|
errdata = &pb.ErrorData{
|
||||||
Code: pb.ErrorCode_DBError,
|
Code: pb.ErrorCode_DBError,
|
||||||
|
@ -47,7 +47,7 @@ func (this *apiComp) Reach(session comm.IUserSession, req *pb.PlunderReachReq) (
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
lock, err = this.module.modelLand.landMutexLock(list.Landid)
|
lock, err = this.module.modelLand.landMutexLock(list.Landid)
|
||||||
lock.Lock()
|
err = lock.Lock()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errdata = &pb.ErrorData{
|
errdata = &pb.ErrorData{
|
||||||
Code: pb.ErrorCode_DBError,
|
Code: pb.ErrorCode_DBError,
|
||||||
@ -111,14 +111,18 @@ func (this *apiComp) Reach(session comm.IUserSession, req *pb.PlunderReachReq) (
|
|||||||
this.module.ModuleUser.AddUserHidenum(session, conf.Hidenum)
|
this.module.ModuleUser.AddUserHidenum(session, conf.Hidenum)
|
||||||
} else {
|
} else {
|
||||||
res = append(res, conf.Exreward...) // 高级奖励
|
res = append(res, conf.Exreward...) // 高级奖励
|
||||||
|
if !bPlunder { // 没有被掠夺
|
||||||
|
res = append(res, conf.Keepreward...)
|
||||||
|
list.Score += conf.Numitem.N
|
||||||
|
land.Score[session.GetUserId()] = list.Score
|
||||||
|
this.module.ModuleUser.AddUserHidenum(session, conf.Hidenum)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if !bPlunder { // 掠夺成功
|
|
||||||
res = append(res, conf.Keepreward...)
|
|
||||||
}
|
|
||||||
if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil {
|
if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if bExReward {
|
if bExReward && !bPlunder { // 高级运输且没用被掠夺
|
||||||
if conf.Numitem.N > 0 {
|
if conf.Numitem.N > 0 {
|
||||||
atno = append(atno, &pb.UserAtno{
|
atno = append(atno, &pb.UserAtno{
|
||||||
A: conf.Numitem.A,
|
A: conf.Numitem.A,
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package plunder
|
package plunder
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/lego/sys/mgo"
|
"go_dreamfactory/lego/sys/mgo"
|
||||||
@ -77,7 +76,8 @@ func (this *modelPlunder) getPlunderData(session comm.IUserSession) (info *pb.DB
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if user.Name == "" { // 临时处理没创角不让进 后面走功能开启配置
|
if user.Name == "" { // 临时处理没创角不让进 后面走功能开启配置
|
||||||
err = fmt.Errorf("getPlunderData need create ")
|
//err = fmt.Errorf("getPlunderData need create")
|
||||||
|
err = comm.NewCustomError(pb.ErrorCode_RoleNeedCreated)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
info = &pb.DBPlunder{
|
info = &pb.DBPlunder{
|
||||||
|
Loading…
Reference in New Issue
Block a user