diff --git a/modules/stonehenge/api_event.go b/modules/stonehenge/api_event.go index 90111a886..3f896bd32 100644 --- a/modules/stonehenge/api_event.go +++ b/modules/stonehenge/api_event.go @@ -3,8 +3,10 @@ package stonehenge import ( "fmt" "go_dreamfactory/comm" + "go_dreamfactory/modules/battle" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" + "math" "strconv" ) @@ -176,7 +178,36 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq } return } - + case EventType17: // 英雄回血 + case EventType18: + var sz []int32 // 获取 + var szHero []string + for _, v := range stone.Hero { + if v.Currhp > 0 { + szHero = append(szHero, v.Oid) + sz = append(sz, 100) + } + } + for _, v := range comm.GetRandWs(sz, eventConf.Value2) { + objId := szHero[v] + maxHp := stone.Hero[objId].Property[battle.AttributesTransBase("hp")] + stone.Hero[objId].Currhp += int32(math.Floor(float64(maxHp*eventConf.Value1) / 1000)) // 回血 + } + update["hero"] = stone.Hero + case EventType19: + var sz []int32 // 获取 + var szHero []string + for _, v := range stone.Hero { // 过滤死亡英雄 + if v.Currhp > 0 { + szHero = append(szHero, v.Oid) + sz = append(sz, 100) + } + } + for _, v := range comm.GetRandWs(sz, eventConf.Value2) { + objId := szHero[v] + stone.Hero[objId].Currhp -= int32(math.Floor(float64(stone.Hero[objId].Currhp*eventConf.Value1) / 1000)) // 扣除当前生命值X(千分比) + } + update["hero"] = stone.Hero } stone.Rooms.Eventid[req.Eventid] = true // diff --git a/modules/stonehenge/api_gotoroom.go b/modules/stonehenge/api_gotoroom.go index 2a85db2e3..9745c216b 100644 --- a/modules/stonehenge/api_gotoroom.go +++ b/modules/stonehenge/api_gotoroom.go @@ -91,6 +91,7 @@ func (this *apiComp) GotoRoom(session comm.IUserSession, req *pb.StonehengeGotoR Index: stone.CurRoomIndes, Roomid: curRoomConf.RoomId, // 第一个房间的房间id读配置 Box: map[int32]int32{}, // 重置宝箱事件 + // Shop: map[int32]int32{}, // 商店事件 } if curRoomConf.EventrewardGroup != 0 { // 垃圾事件组 diff --git a/modules/stonehenge/core.go b/modules/stonehenge/core.go index 645f0c867..6971adc4c 100644 --- a/modules/stonehenge/core.go +++ b/modules/stonehenge/core.go @@ -5,6 +5,9 @@ const ( EventType10 = 10 // 宝箱事件 EventType14 = 14 // 战斗事件 EventType16 = 16 // 捡垃圾事件 + EventType17 = 17 // 回血事件 + EventType18 = 18 // 回血事件 非场景 + EventType19 = 19 // 扣血事件 非场景 EventType25 = 25 // buff三选一 EventType28 = 28 // BOSS 战斗 )