258 lines
7.2 KiB
Go
258 lines
7.2 KiB
Go
package fishing
|
|
|
|
import (
|
|
"mongo.games.com/game/srvdata"
|
|
"mongo.games.com/goserver/core"
|
|
"mongo.games.com/goserver/core/logger"
|
|
)
|
|
|
|
type Policy struct {
|
|
Data map[int32][]IPolicyData
|
|
MaxTick int32
|
|
}
|
|
|
|
type IPolicyData interface {
|
|
GetId() int32
|
|
GetTime() int32
|
|
GetFishId() int32
|
|
GetPaths() []int32
|
|
GetCount() int32
|
|
GetSpeed() int32
|
|
GetEvent() int32
|
|
GetRefreshInterval() int32
|
|
GetTimeToLive() int32
|
|
}
|
|
|
|
func init() {
|
|
core.RegisteHook(core.HOOK_BEFORE_START, func() error {
|
|
logger.Logger.Info("初始化鱼灯[S]")
|
|
defer logger.Logger.Info("初始化鱼灯[E]")
|
|
/*
|
|
* 101,102,103-151,152,153
|
|
*/
|
|
data := []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy101Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(101, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy102Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(102, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy103Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(103, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy151Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(151, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy152Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(152, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy153Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(153, data)
|
|
/*
|
|
* 201,202,203-251,252,253
|
|
*/
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy201Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(201, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy202Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(202, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy203Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(203, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy251Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(251, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy252Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(252, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy253Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(253, data)
|
|
/*
|
|
* 301,302,303-351,352,353
|
|
*/
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy301Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(301, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy302Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(302, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy303Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(303, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy351Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(351, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy352Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(352, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy353Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(353, data)
|
|
/*
|
|
* 401,402,403-451,452,453
|
|
*/
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy401Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(401, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy402Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(402, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy403Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(403, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy451Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(451, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy452Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(452, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy453Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(453, data)
|
|
/*
|
|
* 501,502-811,812,813,814,815,816
|
|
*/
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy501Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(501, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy502Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(502, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy811Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(811, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy812Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(812, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy813Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(813, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy814Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(814, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy815Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(815, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy816Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(816, data)
|
|
/*
|
|
* 701,702
|
|
*/
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy701Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(701, data)
|
|
data = []IPolicyData{}
|
|
for _, value := range srvdata.PBDB_Policy702Mgr.Datas.Arr {
|
|
data = append(data, value)
|
|
}
|
|
FishPolicyMgrSington.AddPolicyData(702, data)
|
|
|
|
return nil
|
|
})
|
|
}
|
|
|
|
// FishPolicyMgrSington 机器人使用
|
|
var FishPolicyMgrSington = &FishPolicyMgr{
|
|
data: make(map[int32]*Policy),
|
|
}
|
|
|
|
type FishPolicyMgr struct {
|
|
data map[int32]*Policy
|
|
}
|
|
|
|
func (this *FishPolicyMgr) GetFishByTime(policyId int32, tick int32) []IPolicyData {
|
|
if data, ok := this.data[policyId]; ok {
|
|
return data.Data[tick]
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (this *FishPolicyMgr) AddPolicyData(id int32, data []IPolicyData) {
|
|
p := &Policy{
|
|
Data: make(map[int32][]IPolicyData),
|
|
MaxTick: 0,
|
|
}
|
|
for _, value := range data {
|
|
tick := value.GetTime()
|
|
fishsArr := p.Data[tick]
|
|
if fishsArr == nil {
|
|
p.Data[tick] = []IPolicyData{value}
|
|
} else {
|
|
p.Data[tick] = append(fishsArr, value)
|
|
}
|
|
if tick > p.MaxTick {
|
|
p.MaxTick = tick
|
|
}
|
|
}
|
|
this.data[id] = p
|
|
}
|