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