```
feat(config): 更新服务器配置字段注释并修复VIP标识逻辑 - 修改config.go中IsVip字段注释,明确其表示测试服状态 - 添加isdebug字段注释说明本地服标识 - 从.gitignore添加login-login-linux-amd64到忽略列表 - 移除已废弃的coolconfig.SetTest函数 fix(item_buy): 注释掉金币购买功能代码 - 将BuyGoldItem方法注释掉,暂时禁用金币购买商品功能 - 移除未使用的gconv导入包 fix(server): 修正调试模式判断条件 - 将server.go中的IsVip判断改为IsDebug,确保调试模式正确启用 refactor(item_service): 优化模型调用并添加VIP标识 - 修复ItemService.UPDATE方法中模型调用的一致性问题 - 添加is_vip字段到数据记录中用于区分服务器类型 feat(pet_service): 为宠物数据添加VIP标识 - 在宠物服务中为新捕捉的宠物添加IsVip字段设置 ```
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -44,3 +44,4 @@ logic/logic1
|
|||||||
public/logic-linux-amd64
|
public/logic-linux-amd64
|
||||||
public/login-linux-amd64
|
public/login-linux-amd64
|
||||||
|
|
||||||
|
public/login-login-linux-amd64
|
||||||
|
|||||||
@@ -31,8 +31,9 @@ type ServerList struct {
|
|||||||
//密码
|
//密码
|
||||||
Password string `gorm:"type:string;comment:'密码'" json:"password"`
|
Password string `gorm:"type:string;comment:'密码'" json:"password"`
|
||||||
CanPort []uint32 `gorm:"type:jsonb;comment:'可连接端口'" json:"can_port"`
|
CanPort []uint32 `gorm:"type:jsonb;comment:'可连接端口'" json:"can_port"`
|
||||||
|
//是否测试服
|
||||||
IsVip uint32 `gorm:"default:0;not null;comment:'是否为VIP服务器'" json:"is_vip"`
|
IsVip uint32 `gorm:"default:0;not null;comment:'是否为VIP服务器'" json:"is_vip"`
|
||||||
//isdebug
|
//isdebug 是否本地服
|
||||||
IsDebug uint8 `gorm:"default:0;comment:'是否为调试模式'" json:"is_debug"`
|
IsDebug uint8 `gorm:"default:0;comment:'是否为调试模式'" json:"is_debug"`
|
||||||
//服务器异色概率设定ServerList
|
//服务器异色概率设定ServerList
|
||||||
ShinyRate uint8 `gorm:"default:0;comment:'异色概率'" json:"shiny_rate"`
|
ShinyRate uint8 `gorm:"default:0;comment:'异色概率'" json:"shiny_rate"`
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
package cool
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/gogf/gf/v2/frame/g"
|
|
||||||
)
|
|
||||||
|
|
||||||
func SetTest(m g.Map) g.Map {
|
|
||||||
if Config.ServerInfo.IsVip != 0 {
|
|
||||||
m["is_vip"] = Config.ServerInfo.IsVip
|
|
||||||
}
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
@@ -6,8 +6,6 @@ import (
|
|||||||
|
|
||||||
"blazing/logic/service/item"
|
"blazing/logic/service/item"
|
||||||
"blazing/logic/service/player"
|
"blazing/logic/service/player"
|
||||||
|
|
||||||
"github.com/gogf/gf/v2/util/gconv"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// 防止封包通过领取来获取道具
|
// 防止封包通过领取来获取道具
|
||||||
@@ -92,34 +90,34 @@ func (h Controller) BuyMultipleItems(data *item.BuyMultiInboundInfo, player *pla
|
|||||||
// data: 包含金豆购买商品信息的输入数据
|
// data: 包含金豆购买商品信息的输入数据
|
||||||
// player: 当前玩家对象
|
// player: 当前玩家对象
|
||||||
// 返回: 金豆购买结果和错误码
|
// 返回: 金豆购买结果和错误码
|
||||||
func (h Controller) BuyGoldItem(data *item.C2S_GOLD_BUY_PRODUCT, player *player.Player) (result *item.S2C_GoldBuyProductInfo, err errorcode.ErrorCode) {
|
// func (h Controller) BuyGoldItem(data *item.C2S_GOLD_BUY_PRODUCT, player *player.Player) (result *item.S2C_GoldBuyProductInfo, err errorcode.ErrorCode) {
|
||||||
product, exists := xmlres.GoldProductMap[int(data.ProductID)]
|
// product, exists := xmlres.GoldProductMap[int(data.ProductID)]
|
||||||
if !exists {
|
// if !exists {
|
||||||
return nil, errorcode.ErrorCodes.ErrSystemError
|
// return nil, errorcode.ErrorCodes.ErrSystemError
|
||||||
}
|
// }
|
||||||
|
|
||||||
useGold := uint32(data.Count) * uint32(gconv.Float64(product.Price)*100)
|
// useGold := uint32(data.Count) * uint32(gconv.Float64(product.Price)*100)
|
||||||
if !player.UseGold(useGold) {
|
// if !player.UseGold(useGold) {
|
||||||
return &item.S2C_GoldBuyProductInfo{
|
// return &item.S2C_GoldBuyProductInfo{
|
||||||
Gold: player.User.GetGold(uint(player.Info.UserID)),
|
// Gold: player.User.GetGold(uint(player.Info.UserID)),
|
||||||
PayGold: 0,
|
// PayGold: 0,
|
||||||
Reserved: 0,
|
// Reserved: 0,
|
||||||
}, errorcode.ErrorCodes.ErrXinDouInsufficient
|
// }, errorcode.ErrorCodes.ErrXinDouInsufficient
|
||||||
}
|
// }
|
||||||
|
|
||||||
addSuccess := player.ItemAdd(uint32(gconv.Uint32(product.ItemID)), uint32(data.Count))
|
// addSuccess := player.ItemAdd(uint32(gconv.Uint32(product.ItemID)), uint32(data.Count))
|
||||||
if addSuccess {
|
// if addSuccess {
|
||||||
player.User.UpdateGold(player.Info.UserID, -int64(useGold))
|
// player.User.UpdateGold(player.Info.UserID, -int64(useGold))
|
||||||
return &item.S2C_GoldBuyProductInfo{
|
// return &item.S2C_GoldBuyProductInfo{
|
||||||
Gold: player.User.GetGold(uint(player.Info.UserID)),
|
// Gold: player.User.GetGold(uint(player.Info.UserID)),
|
||||||
PayGold: useGold,
|
// PayGold: useGold,
|
||||||
Reserved: 0,
|
// Reserved: 0,
|
||||||
}, 0
|
// }, 0
|
||||||
}
|
// }
|
||||||
|
|
||||||
return &item.S2C_GoldBuyProductInfo{
|
// return &item.S2C_GoldBuyProductInfo{
|
||||||
Gold: player.User.GetGold(uint(player.Info.UserID)),
|
// Gold: player.User.GetGold(uint(player.Info.UserID)),
|
||||||
PayGold: 0,
|
// PayGold: 0,
|
||||||
Reserved: 0,
|
// Reserved: 0,
|
||||||
}, errorcode.ErrorCodes.ErrSystemError
|
// }, errorcode.ErrorCodes.ErrSystemError
|
||||||
}
|
// }
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ func Start() {
|
|||||||
serverID := cool.Config.GameOnlineID
|
serverID := cool.Config.GameOnlineID
|
||||||
cool.Config.ServerInfo = config.NewServerService().GetServerID(serverID).ServerList
|
cool.Config.ServerInfo = config.NewServerService().GetServerID(serverID).ServerList
|
||||||
|
|
||||||
if cool.Config.ServerInfo.IsVip == 1 {
|
if cool.Config.ServerInfo.IsDebug == 1 {
|
||||||
g.DB().SetDebug(true)
|
g.DB().SetDebug(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
39
logic/service/fight/boss/NewSeIdx_112.go
Normal file
39
logic/service/fight/boss/NewSeIdx_112.go
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
package effect
|
||||||
|
|
||||||
|
import (
|
||||||
|
"blazing/logic/service/fight/info"
|
||||||
|
"blazing/logic/service/fight/input"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewSel112 受到物理时使自身的一种 battle_lv 提升1个等级,可提升n次;(a1: which blv, a2: max_blv_up_times)
|
||||||
|
// TODO: 实现受到物理时使自身的一种 battle_lv 提升1个等级,可提升n次;(a1: which blv, a2: max_blv_up_times)的核心逻辑
|
||||||
|
type NewSel112 struct {
|
||||||
|
NewSel0
|
||||||
|
count int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *NewSel112) DamageDivEx(t *info.DamageZone) bool {
|
||||||
|
|
||||||
|
// fmt.Println(e.ID().GetCatchTime(), e.Ctx().Our.CurrentPet.Info.CatchTime)
|
||||||
|
if e.ID().GetCatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
// 2. 技能为空或非物理攻击,不触发
|
||||||
|
skill := e.Ctx().SkillEntity
|
||||||
|
if skill == nil {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if skill.Category() != info.Category.PHYSICAL {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if e.count >= int(e.Args()[1].IntPart()) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
e.Ctx().Our.SetProp(e.Ctx().Our, int8(e.Args()[0].IntPart()), 1, info.AbilityOpType.ADD)
|
||||||
|
e.count++
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
func init() {
|
||||||
|
input.InitEffect(input.EffectType.NewSel, 112, &NewSel112{})
|
||||||
|
}
|
||||||
15
logic/service/fight/boss/NewSeIdx_113.go
Normal file
15
logic/service/fight/boss/NewSeIdx_113.go
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package effect
|
||||||
|
|
||||||
|
import (
|
||||||
|
"blazing/logic/service/fight/input"
|
||||||
|
)
|
||||||
|
|
||||||
|
// todo "只有当自己处于异常状态时才会受到伤害"
|
||||||
|
type NewSel113 struct {
|
||||||
|
NewSel0
|
||||||
|
count int
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
input.InitEffect(input.EffectType.NewSel, 113, &NewSel113{})
|
||||||
|
}
|
||||||
@@ -28,7 +28,7 @@ func (s *ItemService) UPDATE(id uint32, count int) {
|
|||||||
m := s.TestModel(s.Model)
|
m := s.TestModel(s.Model)
|
||||||
|
|
||||||
if t, _ := m.Where("item_id", id).Exist(); t {
|
if t, _ := m.Where("item_id", id).Exist(); t {
|
||||||
_, err := m.Where("item_id", id).Increment("item_cnt", count)
|
_, err := s.TestModel(s.Model).Where("item_id", id).Increment("item_cnt", count)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@@ -38,8 +38,8 @@ func (s *ItemService) UPDATE(id uint32, count int) {
|
|||||||
"player_id": s.userid,
|
"player_id": s.userid,
|
||||||
"item_id": id,
|
"item_id": id,
|
||||||
"item_cnt": count,
|
"item_cnt": count,
|
||||||
|
"is_vip": cool.Config.ServerInfo.IsVip,
|
||||||
}
|
}
|
||||||
data = cool.SetTest(data)
|
|
||||||
|
|
||||||
m.Data(data).Insert()
|
m.Data(data).Insert()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ RETURNING max_ts;
|
|||||||
player.Data = *y
|
player.Data = *y
|
||||||
player.CatchTime = y.CatchTime
|
player.CatchTime = y.CatchTime
|
||||||
player.Free = 0
|
player.Free = 0
|
||||||
|
player.IsVip = cool.Config.ServerInfo.IsVip
|
||||||
|
|
||||||
_, err = m1.Insert(player)
|
_, err = m1.Insert(player)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user