refactor(blazing): 重构任务系统并优化相关功能
- 重构了任务系统的数据结构和执行逻辑 - 优化了地图加载和怪物刷新机制 - 改进了宠物系统的基础架构 - 调整了玩家信息和背包的处理方式 - 统一了数据访问层的接口和实现
This commit is contained in:
@@ -83,27 +83,25 @@ func RandomStringFromSlice(s []string) string {
|
||||
func (t *InInfo) genMonster(mapid uint32) *OgreInfo {
|
||||
// 设置怪物信息
|
||||
t1 := OgreInfo{}
|
||||
for _, tc := range xmlres.Monster.Maps {
|
||||
|
||||
if tc.ID == gconv.Int(mapid) && tc.Monsters != nil {
|
||||
|
||||
for i, m := range tc.Monsters.Monsters { //这里是9个
|
||||
id := strings.Split(m.ID, " ")
|
||||
lv := strings.Split(m.Lv, " ")
|
||||
ttt := OgrePetInfo{
|
||||
Id: gconv.Uint32(RandomStringFromSlice(id)),
|
||||
}
|
||||
if ttt.Id != 0 {
|
||||
ttt.Shiny = 0 //待确认是否刷新异色
|
||||
ttt.Lv = gconv.Uint32(RandomStringFromSlice(lv))
|
||||
}
|
||||
t1.Data[i] = ttt
|
||||
mapss, ok := xmlres.MonsterMap[gconv.Int(mapid)]
|
||||
|
||||
if ok && mapss.Monsters != nil {
|
||||
for i, m := range mapss.Monsters.Monsters { //这里是9个
|
||||
id := strings.Split(m.ID, " ")
|
||||
lv := strings.Split(m.Lv, " ")
|
||||
ttt := OgrePetInfo{
|
||||
Id: gconv.Uint32(RandomStringFromSlice(id)),
|
||||
}
|
||||
break
|
||||
if ttt.Id != 0 {
|
||||
ttt.Shiny = 0 //待确认是否刷新异色
|
||||
ttt.Lv = gconv.Uint32(RandomStringFromSlice(lv))
|
||||
}
|
||||
t1.Data[i] = ttt
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
t2 := OgreInfo{}
|
||||
for i := 0; i < 3; i++ {
|
||||
|
||||
@@ -292,3 +290,14 @@ func NewOutInfo() *OutInfo {
|
||||
|
||||
return l
|
||||
}
|
||||
|
||||
func LeaveMap(c *socket.Player) {
|
||||
t := handler.NewTomeeHeader(2002, c.Info.UserID)
|
||||
|
||||
space.GetSpace(c.Info.MapID).Range(func(playerID uint32, player *socket.Player) bool {
|
||||
|
||||
player.SendPack(t.Pack(&LeaveMapOutboundInfo{UserID: c.Info.UserID}))
|
||||
return true
|
||||
})
|
||||
space.GetSpace(c.Info.MapID).Delete(c.Info.UserID)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user