diff --git a/logic/controller/fight_boss野怪和地图怪.go b/logic/controller/fight_boss野怪和地图怪.go index 787046643..6cb2bd385 100644 --- a/logic/controller/fight_boss野怪和地图怪.go +++ b/logic/controller/fight_boss野怪和地图怪.go @@ -184,11 +184,9 @@ func (Controller) OnPlayerFightNpcMonster(data1 *fight.FightNpcMonsterInboundInf } if p.CanGetItem() { - mapinfo := service.NewMapService().GetData(p.Info.MapID) - if len(mapinfo.DropItemIds) > 0 { - - item := int64(mapinfo.DropItemIds[grand.Intn(len(mapinfo.DropItemIds))]) + item := p.GetSpace().GetDrop() + if item != 0 { count := int64(grand.Intn(2) + 1) ok := p.ItemAdd(item, count) if ok { diff --git a/logic/service/space/space.go b/logic/service/space/space.go index 00989ed05..78d969048 100644 --- a/logic/service/space/space.go +++ b/logic/service/space/space.go @@ -44,9 +44,9 @@ type Space struct { WeatherType []uint32 TimeBoss info.S2C_2022 //Weather uint32 - IsTime bool - - PitS *csmap.CsMap[int, []model.MapPit] + IsTime bool + DropItemIds []uint32 + PitS *csmap.CsMap[int, []model.MapPit] } // NewSyncMap 创建一个新的玩家同步map @@ -189,7 +189,7 @@ func (ret *Space) init() { r := service.NewMapService().GetData(ret.ID) if r != nil { - + ret.DropItemIds = r.DropItemIds if r.IsTimeSpace != 0 { ret.IsTime = true } @@ -278,3 +278,14 @@ func (ret *Space) GenWer() { //} } + +func (ret *Space) GetDrop() int64 { + + if len(ret.DropItemIds) > 0 { + + item := int64(ret.DropItemIds[grand.Intn(len(ret.DropItemIds))]) + + return int64(item) + } + return 0 +} diff --git a/modules/base/middleware/server.go b/modules/base/middleware/server.go index a2ae854ba..c2997d50c 100644 --- a/modules/base/middleware/server.go +++ b/modules/base/middleware/server.go @@ -284,7 +284,7 @@ echo "设置执行权限:%s{exe_path}" chmod +x "%s{exe_path}" || { echo "❌ 设置权限失败"; exit 1; } echo "启动Screen会话[%s{screen_name}]..." -screen -dmS "%s{screen_name}" bash -c '"%s{exe_path}" -id=%s{online_id} 2>&1 | tee -a "$HOME/run_%s{randomFileName}.log" stty intr ^_' +screen -dmS "%s{screen_name}" bash -c '"%s{exe_path}" -id=%s{online_id} 2>&1 | tee -a "$HOME/run_%s{randomFileName}.log" stty intr ^C' sleep 2 if screen -ls | grep -q "%s{screen_name}"; then