guild_msg.go 60 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670
  1. package msg
  2. import (
  3. "rocommon"
  4. "rocommon/util"
  5. "roserver/baseserver/model"
  6. model2 "roserver/game/model"
  7. "roserver/serverproto"
  8. "unicode/utf8"
  9. )
  10. func init() {
  11. //创建工会
  12. serverproto.Handle_GAME_CSBuildGuildReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  13. msg := ev.Msg().(*serverproto.CSBuildGuildReq)
  14. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  15. if role == nil {
  16. return
  17. }
  18. util.InfoF("uid=%v receive CSBuildGuildReq msg=%v", role.GetUUid(), msg)
  19. nameLen := utf8.RuneCountInString(msg.GuildName)
  20. if int32(nameLen) < model.GlobalGuildMinNameStringLen || int32(nameLen) > model.GlobalGuildMaxNameStringLen {
  21. ackMsg := &serverproto.SCBuildGuildAck{}
  22. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_GUILD_NAME_LEN)
  23. role.ReplayGate(ackMsg, true)
  24. return
  25. }
  26. bRet := role.(model2.RoleLogicOuter).CheckBuildGuild(msg.GuildName, msg.GuildBadge)
  27. if bRet == serverproto.ErrorCode_ERROR_OK {
  28. msg.Uid = role.GetUUid()
  29. role.(*model2.Role).SendGuild(msg)
  30. }
  31. })
  32. //解散工会
  33. serverproto.Handle_GAME_CSDisbandGuildReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  34. msg := ev.Msg().(*serverproto.CSDisbandGuildReq)
  35. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  36. if role == nil {
  37. return
  38. }
  39. util.InfoF("uid=%v receive CSDisbandGuildReq msg=%v", role.GetUUid(), msg)
  40. guildId := role.(model2.RoleLogicOuter).GetRoleGuildId()
  41. if guildId != 0 { //有工会才能解散
  42. msg.GuildId = guildId
  43. msg.Uid = role.GetUUid()
  44. role.(*model2.Role).SendGuild(msg)
  45. } else {
  46. ackMsg := &serverproto.SCDisbandGuildAck{}
  47. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_GUILD_NOT_IN_GUILD)
  48. role.ReplayGate(ackMsg, true)
  49. }
  50. })
  51. //申请加入工会
  52. serverproto.Handle_GAME_CSApplyGuildReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  53. msg := ev.Msg().(*serverproto.CSApplyGuildReq)
  54. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  55. if role == nil {
  56. return
  57. }
  58. util.InfoF("uid=%v receive CSApplyGuildReq msg=%v", role.GetUUid(), msg)
  59. bRet := role.(model2.RoleLogicOuter).CheckApplyGuild(msg.GuildId)
  60. if bRet {
  61. msg.Uid = role.GetUUid()
  62. msg.Level = role.(*model2.Role).GetRoleLevel()
  63. role.(*model2.Role).SendGuild(msg)
  64. }
  65. })
  66. //退出公会
  67. serverproto.Handle_GAME_CSQuitGuildReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  68. msg := ev.Msg().(*serverproto.CSQuitGuildReq)
  69. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  70. if role == nil {
  71. return
  72. }
  73. util.InfoF("uid=%v receive CSQuitGuildReq msg=%v", role.GetUUid(), msg)
  74. guildId := role.(model2.RoleLogicOuter).GetRoleGuildId()
  75. if guildId != 0 {
  76. msg.GuildId = guildId
  77. msg.Uid = role.GetUUid()
  78. role.(*model2.Role).SendGuild(msg)
  79. } else {
  80. ackMsg := &serverproto.SCQuitGuildAck{}
  81. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_GUILD_NOT_IN_GUILD)
  82. role.ReplayGate(ackMsg, true)
  83. }
  84. })
  85. //踢出公会成员
  86. serverproto.Handle_GAME_CSKickGuildMemberReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  87. msg := ev.Msg().(*serverproto.CSKickGuildMemberReq)
  88. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  89. if role == nil {
  90. return
  91. }
  92. util.InfoF("uid=%v receive CSKickGuildMemberReq msg=%v", role.GetUUid(), msg)
  93. guildId := role.(model2.RoleLogicOuter).GetRoleGuildId()
  94. if guildId != 0 {
  95. msg.PreUid = role.GetUUid()
  96. msg.GuildId = guildId
  97. role.(*model2.Role).SendGuild(msg)
  98. } else {
  99. ackMsg := &serverproto.SCKickGuildMemberAck{}
  100. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_GUILD_NOT_IN_GUILD)
  101. ackMsg.Uid = msg.Uid
  102. role.(*model2.Role).ReplayGate(ackMsg, true)
  103. }
  104. })
  105. //提降官职
  106. serverproto.Handle_GAME_CSChangeMemberTitleReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  107. msg := ev.Msg().(*serverproto.CSChangeMemberTitleReq)
  108. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  109. if role == nil {
  110. return
  111. }
  112. util.InfoF("uid=%v receive CSChangeMemberTitleReq msg=%v", role.GetUUid(), msg)
  113. guildId := role.(model2.RoleLogicOuter).GetRoleGuildId()
  114. if guildId != 0 && msg.Uid != role.GetUUid() { //有公会,不能对自己操作
  115. msg.GuildId = guildId
  116. msg.PreUid = role.GetUUid()
  117. role.(*model2.Role).SendGuild(msg)
  118. } else {
  119. ackMsg := &serverproto.SCChangeMemberTitleAck{
  120. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  121. }
  122. if guildId == 0 {
  123. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_GUILD_NOT_IN_GUILD)
  124. }
  125. role.(*model2.Role).ReplayGate(ackMsg, true)
  126. }
  127. })
  128. //公会申请处理
  129. serverproto.Handle_GAME_CSApplyInfoHandleReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  130. msg := ev.Msg().(*serverproto.CSApplyInfoHandleReq)
  131. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  132. if role == nil {
  133. return
  134. }
  135. util.InfoF("uid=%v receive CSApplyInfoHandleReq msg=%v", role.GetUUid(), msg)
  136. bRet := role.(model2.RoleLogicOuter).CheckApplyInfo(msg)
  137. if bRet == serverproto.ErrorCode_ERROR_OK {
  138. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  139. msg.Uid = role.GetUUid()
  140. role.(*model2.Role).SendGuild(msg)
  141. }
  142. })
  143. //公会信息请求
  144. serverproto.Handle_GAME_CSGuildInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  145. msg := ev.Msg().(*serverproto.CSGuildInfoReq)
  146. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  147. if role == nil {
  148. return
  149. }
  150. util.InfoF("uid=%v receive CSGuildInfoReq msg=%v", role.GetUUid(), msg)
  151. msg.Uid = role.GetUUid()
  152. role.(*model2.Role).SendGuild(msg)
  153. })
  154. //自己公会信息请求
  155. serverproto.Handle_GAME_CSGetSelfGuildInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  156. msg := ev.Msg().(*serverproto.CSGetSelfGuildInfoReq)
  157. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  158. if role == nil {
  159. return
  160. }
  161. util.InfoF("uid=%v receive CSGetSelfGuildInfoReq msg=%v", role.GetUUid(), msg)
  162. guildId := role.(model2.RoleLogicOuter).GetRoleGuildId()
  163. if guildId != 0 {
  164. msg.GuildId = guildId
  165. msg.Uid = role.GetUUid()
  166. role.(*model2.Role).SendGuild(msg)
  167. } else {
  168. ackMsg := &serverproto.SCGetSelfGuildInfoAck{
  169. Error: int32(serverproto.ErrorCode_ERROR_GUILD_NOT_IN_GUILD),
  170. }
  171. role.(*model2.Role).ReplayGate(ackMsg, true)
  172. }
  173. })
  174. //修改公户名称
  175. serverproto.Handle_GAME_CSGuildRenameReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  176. msg := ev.Msg().(*serverproto.CSGuildRenameReq)
  177. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  178. if role == nil {
  179. return
  180. }
  181. util.InfoF("uid=%v receive CSGuildRenameReq msg=%v", role.GetUUid(), msg)
  182. bRet := role.(model2.RoleLogicOuter).CheckGuildRename(msg.GuildName)
  183. if bRet != serverproto.ErrorCode_ERROR_OK {
  184. ackMsg := &serverproto.SCGuildRenameAck{
  185. Error: int32(bRet),
  186. }
  187. role.(*model2.Role).ReplayGate(ackMsg, true)
  188. return
  189. }
  190. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  191. msg.Uid = role.GetUUid()
  192. role.(*model2.Role).SendGuild(msg)
  193. })
  194. //修改公户公告
  195. serverproto.Handle_GAME_CSGuildReNoticeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  196. msg := ev.Msg().(*serverproto.CSGuildReNoticeReq)
  197. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  198. if role == nil {
  199. return
  200. }
  201. util.InfoF("uid=%v receive CSGuildReNoticeReq msg=%v", role.GetUUid(), msg)
  202. bRet := role.(model2.RoleLogicOuter).CheckGuildRenotice(msg.GuildNotice)
  203. if bRet == serverproto.ErrorCode_ERROR_OK {
  204. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  205. msg.Uid = role.GetUUid()
  206. role.(*model2.Role).SendGuild(msg)
  207. } else {
  208. ackMsg := &serverproto.SCGuildReNoticeAck{
  209. Error: int32(bRet),
  210. GuildNotice: msg.GuildNotice,
  211. }
  212. role.(*model2.Role).ReplayGate(ackMsg, true)
  213. }
  214. })
  215. //修改工会招募信息
  216. serverproto.Handle_GAME_CSSetGuildInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  217. msg := ev.Msg().(*serverproto.CSSetGuildInfoReq)
  218. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  219. if role == nil {
  220. return
  221. }
  222. util.InfoF("uid=%v receive CSSetGuildInfoReq msg=%v", msg)
  223. bRet := role.(model2.RoleLogicOuter).CheckGuildModifyInfo(msg)
  224. if bRet != serverproto.ErrorCode_ERROR_OK {
  225. ackMsg := &serverproto.SCSetGuildInfoAck{}
  226. ackMsg.Error = int32(bRet)
  227. ackMsg.JoinLevel = msg.JoinLevel
  228. ackMsg.JoinType = msg.JoinType
  229. ackMsg.GuildBadge = msg.GuildBadge
  230. role.(*model2.Role).ReplayGate(ackMsg, true)
  231. return
  232. }
  233. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  234. msg.Uid = role.GetUUid()
  235. role.(*model2.Role).SendGuild(msg)
  236. })
  237. serverproto.Handle_GAME_CSGuildMemberInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  238. msg := ev.Msg().(*serverproto.CSGuildMemberInfoReq)
  239. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  240. if role == nil {
  241. return
  242. }
  243. util.InfoF("uid=%v receive CSGuildMemberInfoReq msg=%v", role.GetUUid(), msg)
  244. role.(*model2.Role).SendGuild(msg)
  245. })
  246. //推荐公会请求
  247. serverproto.Handle_GAME_CSRecommendGuildInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  248. msg := ev.Msg().(*serverproto.CSRecommendGuildInfoReq)
  249. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  250. if role == nil {
  251. return
  252. }
  253. util.InfoF("uid=%v receive CSRecommendGuildInfoReq msg=%v", role.GetUUid(), msg)
  254. msg.Uid = role.GetUUid()
  255. msg.ReqCount = role.(*model2.Role).GetRoleGuild().GetRecommendCount()
  256. role.(*model2.Role).SendGuild(msg)
  257. })
  258. //玩家上线,一定要请求公会信息的。
  259. serverproto.Handle_GAME_CSOnlinePlayerGuildReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  260. msg := ev.Msg().(*serverproto.CSOnlinePlayerGuildReq)
  261. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  262. if role == nil {
  263. return
  264. }
  265. util.InfoF("uid=%v receive CSOnlinePlayerGuildReq msg=%v", role.GetUUid(), msg)
  266. reqMsg := &serverproto.SSOnlineGuildInfoReq{}
  267. reqMsg.Uid = role.(*model2.Role).GetUUid()
  268. reqMsg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  269. reqMsg.IsRelogin = false
  270. reqMsg.DemonFightTime = role.(*model2.Role).GetRoleGuild().GetDemonFightTime()
  271. role.(*model2.Role).SendGuild(reqMsg)
  272. })
  273. //查找公会
  274. serverproto.Handle_GAME_CSSearchGuildReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  275. msg := ev.Msg().(*serverproto.CSSearchGuildReq)
  276. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  277. if role == nil {
  278. return
  279. }
  280. util.InfoF("uid=%v receive CSSearchGuildReq msg=%v", role.GetUUid(), msg)
  281. nameLen := utf8.RuneCountInString(msg.SearchString)
  282. if int32(nameLen) < model.GlobalGuildMinSearchStringLen || int32(nameLen) > model.GlobalGuildMaxSearchStringLen {
  283. ackMsg := &serverproto.SCSearchGuildAck{}
  284. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_GUILD_NAME_LEN)
  285. ackMsg.SearchString = msg.SearchString
  286. role.ReplayGate(ackMsg, true)
  287. return
  288. }
  289. msg.Uid = role.GetUUid()
  290. role.(*model2.Role).SendGuild(msg)
  291. })
  292. //查找公会
  293. serverproto.Handle_GAME_CSGuildApplyDataReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  294. msg := ev.Msg().(*serverproto.CSGuildApplyDataReq)
  295. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  296. if role == nil {
  297. return
  298. }
  299. util.InfoF("uid=%v receive CSGuildApplyDataReq msg=%v", role.GetUUid(), msg)
  300. //todo wangzhaocan 检查是否有公会
  301. msg.Uid = role.GetUUid()
  302. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  303. role.(*model2.Role).SendGuild(msg)
  304. })
  305. serverproto.Handle_GAME_CSGuildLogInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  306. msg := ev.Msg().(*serverproto.CSGuildLogInfoReq)
  307. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  308. if role == nil {
  309. return
  310. }
  311. util.InfoF("uid=%v receive CSGuildLogInfoReq msg=%v", role.GetUUid(), msg)
  312. guildId := role.(model2.RoleLogicOuter).GetRoleGuildId()
  313. if guildId != 0 {
  314. msg.GuildId = guildId
  315. role.(*model2.Role).SendGuild(msg)
  316. } else {
  317. ackMsg := &serverproto.SCGuildLogInfoAck{}
  318. ackMsg.IsEnd = true
  319. role.ReplayGate(ackMsg, true)
  320. }
  321. })
  322. //请求公会boss
  323. serverproto.Handle_GAME_CSGuildBossInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  324. msg := ev.Msg().(*serverproto.CSGuildBossInfoReq)
  325. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  326. if role == nil {
  327. return
  328. }
  329. util.InfoF("uid=%v receive CSGuildBossInfoReq msg=%v", role.GetUUid(), msg)
  330. guildId := role.(model2.RoleLogicOuter).GetRoleGuildId()
  331. if guildId != 0 {
  332. msg.GuildId = guildId
  333. role.(*model2.Role).SendGuild(msg)
  334. } else {
  335. ackMsg := &serverproto.SCGuildBossInfoAck{}
  336. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_GUILD_NOT_IN_GUILD)
  337. role.ReplayGate(ackMsg, true)
  338. }
  339. })
  340. //公会BOSS日志请求
  341. serverproto.Handle_GAME_CSGuildBossLogReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  342. msg := ev.Msg().(*serverproto.CSGuildBossLogReq)
  343. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  344. if role == nil {
  345. return
  346. }
  347. util.InfoF("uid=%v receive CSGuildBossLogReq msg=%v", role.GetUUid(), msg)
  348. guildId := role.(model2.RoleLogicOuter).GetRoleGuildId()
  349. if guildId != 0 {
  350. msg.GuildId = guildId
  351. role.(*model2.Role).SendGuild(msg)
  352. } else {
  353. ackMsg := &serverproto.SCGuildBossLogAck{}
  354. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_GUILD_NOT_IN_GUILD)
  355. role.ReplayGate(ackMsg, true)
  356. }
  357. })
  358. //公会boss挑战
  359. serverproto.Handle_GAME_CSGuildBossChallengeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  360. msg := ev.Msg().(*serverproto.CSGuildBossChallengeReq)
  361. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  362. if role == nil {
  363. return
  364. }
  365. util.InfoF("uid=%v receive CSGuildBossLogReq msg=%v", role.GetUUid(), msg)
  366. bRet := role.(model2.RoleLogicOuter).CheckGuildBossChallenge(msg.BossId, msg.Damage, msg.BattleTime)
  367. if bRet == serverproto.ErrorCode_ERROR_OK {
  368. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  369. msg.Uid = role.GetUUid()
  370. role.(*model2.Role).SendGuild(msg)
  371. } else {
  372. ackMsg := &serverproto.SCGuildBossChallengeAck{}
  373. ackMsg.Error = int32(bRet)
  374. role.ReplayGate(ackMsg, true)
  375. }
  376. })
  377. //公会boss召唤
  378. serverproto.Handle_GAME_CSGuildBossSummonReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  379. msg := ev.Msg().(*serverproto.CSGuildBossSummonReq)
  380. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  381. if role == nil {
  382. return
  383. }
  384. util.InfoF("uid=%v receive CSGuildBossSummonReq msg=%v", role.GetUUid(), msg)
  385. guildId := role.(model2.RoleLogicOuter).GetRoleGuildId()
  386. if guildId != 0 {
  387. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  388. msg.Uid = role.GetUUid()
  389. role.(*model2.Role).SendGuild(msg)
  390. } else {
  391. ackMsg := &serverproto.SCGuildBossSummonAck{}
  392. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_GUILD_NOT_IN_GUILD)
  393. role.ReplayGate(ackMsg, true)
  394. }
  395. })
  396. //大师奖励
  397. serverproto.Handle_GAME_CSGuildBossExtraRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  398. msg := ev.Msg().(*serverproto.CSGuildBossExtraRewardReq)
  399. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  400. if role == nil {
  401. return
  402. }
  403. util.InfoF("uid=%v receive CSGuildBossExtraRewardReq msg=%v", role.GetUUid(), msg)
  404. guildId := role.(model2.RoleLogicOuter).GetRoleGuildId()
  405. if guildId != 0 {
  406. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  407. role.(*model2.Role).SendGuild(msg)
  408. } else {
  409. ackMsg := &serverproto.SCGuildBossExtraRewardAck{}
  410. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_GUILD_NOT_IN_GUILD)
  411. role.ReplayGate(ackMsg, true)
  412. }
  413. })
  414. //======================================================= 从guildserver过来的消息 =======================================================
  415. serverproto.Handle_GAME_SCBuildGuildAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  416. msg := ev.Msg().(*serverproto.SCBuildGuildAck)
  417. role := model2.RoleMag.GetRole(cliId)
  418. if role == nil {
  419. return
  420. }
  421. util.InfoF("uid=%v receive SCBuildGuildAck msg=%v", role.GetUUid(), msg)
  422. if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
  423. role.(*model2.Role).GetRoleGuild().BuildGuildSuccess(msg.GuildBrief)
  424. }
  425. role.ReplayGate(msg, true)
  426. })
  427. //解散公会
  428. serverproto.Handle_GAME_SCDisbandGuildAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  429. msg := ev.Msg().(*serverproto.SCDisbandGuildAck)
  430. role := model2.RoleMag.GetRole(cliId)
  431. if role == nil {
  432. return
  433. }
  434. util.InfoF("uid=%v receive SCDisbandGuildAck msg=%v", role.GetUUid(), msg)
  435. if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
  436. role.(*model2.Role).GetRoleGuild().DisbandGuild()
  437. }
  438. role.ReplayGate(msg, true)
  439. })
  440. //申请加入公会返回
  441. serverproto.Handle_GAME_SCApplyGuildAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  442. msg := ev.Msg().(*serverproto.SCApplyGuildAck)
  443. role := model2.RoleMag.GetRole(cliId)
  444. if role == nil {
  445. return
  446. }
  447. util.InfoF("uid=%v receive SCApplyGuildAck msg=%v", role.GetUUid(), msg)
  448. role.ReplayGate(msg, true)
  449. })
  450. //离开公会
  451. serverproto.Handle_GAME_SCQuitGuildAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  452. msg := ev.Msg().(*serverproto.SCQuitGuildAck)
  453. role := model2.RoleMag.GetRole(cliId)
  454. if role == nil {
  455. return
  456. }
  457. util.InfoF("uid=%v receive SCQuitGuildAck msg=%v", role.GetUUid(), msg)
  458. if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
  459. role.(*model2.Role).GetRoleGuild().QuitGuild()
  460. }
  461. role.ReplayGate(msg, true)
  462. })
  463. //踢除玩家
  464. serverproto.Handle_GAME_SCKickGuildMemberAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  465. msg := ev.Msg().(*serverproto.SCKickGuildMemberAck)
  466. role := model2.RoleMag.GetRole(cliId)
  467. if role == nil {
  468. return
  469. }
  470. util.InfoF("uid=%v receive SCKickGuildMemberAck msg=%v", role.GetUUid(), msg)
  471. role.ReplayGate(msg, true)
  472. })
  473. //变更玩家官职
  474. serverproto.Handle_GAME_SCChangeMemberTitleAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  475. msg := ev.Msg().(*serverproto.SCChangeMemberTitleAck)
  476. role := model2.RoleMag.GetRole(cliId)
  477. if role == nil {
  478. return
  479. }
  480. util.InfoF("uid=%v receive SCChangeMemberTitleAck msg=%v", role.GetUUid(), msg)
  481. role.ReplayGate(msg, true)
  482. })
  483. //设置公会信息返回包
  484. serverproto.Handle_GAME_SCSetGuildInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  485. msg := ev.Msg().(*serverproto.SCSetGuildInfoAck)
  486. role := model2.RoleMag.GetRole(cliId)
  487. if role == nil {
  488. return
  489. }
  490. util.InfoF("uid=%v receive SCSetGuildInfoAck msg=%v", role.GetUUid(), msg)
  491. role.ReplayGate(msg, true)
  492. })
  493. //Guild返回请求公会消息
  494. serverproto.Handle_GAME_SCGuildInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  495. msg := ev.Msg().(*serverproto.SCGuildInfoAck)
  496. role := model2.RoleMag.GetRole(cliId)
  497. if role == nil {
  498. return
  499. }
  500. util.InfoF("uid=%v receive SCGuildInfoAck msg=%v", role.GetUUid(), msg)
  501. role.ReplayGate(msg, true)
  502. })
  503. //Guild返回请求公会消息
  504. serverproto.Handle_GAME_SCGetSelfGuildInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  505. msg := ev.Msg().(*serverproto.SCGetSelfGuildInfoAck)
  506. role := model2.RoleMag.GetRole(cliId)
  507. if role == nil {
  508. return
  509. }
  510. util.InfoF("uid=%v receive SCGetSelfGuildInfoAck msg=%v", role.GetUUid(), msg)
  511. if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
  512. msg.RoleGuild = role.(*model2.Role).GetRoleGuild().GetGuildInfo()
  513. }
  514. role.ReplayGate(msg, true)
  515. })
  516. //Guild返回请求公会消息
  517. serverproto.Handle_GAME_SCApplyInfoHandleAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  518. msg := ev.Msg().(*serverproto.SCApplyInfoHandleAck)
  519. role := model2.RoleMag.GetRole(cliId)
  520. if role == nil {
  521. return
  522. }
  523. util.InfoF("uid=%v receive SCApplyInfoHandleAck msg=%v", role.GetUUid(), msg)
  524. role.ReplayGate(msg, true)
  525. })
  526. //客户端上线请求公会相关
  527. serverproto.Handle_GAME_SSOnlineGuildInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  528. msg := ev.Msg().(*serverproto.SSOnlineGuildInfoAck)
  529. role := model2.RoleMag.GetRole(cliId)
  530. if role == nil {
  531. util.InfoF("uid=%v receive SSOnlineGuildInfoAck role not found")
  532. return
  533. }
  534. util.InfoF("uid=%v receive SSOnlineGuildInfoAck msg=%v", role.GetUUid(), msg)
  535. if msg.Data != nil && msg.Data.Brief != nil {
  536. role.(*model2.Role).GetRoleGuild().SetOnlineGuildInfo(msg.Data.Brief.GuildId, msg.Data.Brief.GuildName)
  537. } else if msg.Data == nil {
  538. role.(*model2.Role).GetRoleGuild().SetOnlineGuildInfo(0, "")
  539. }
  540. ackMsg := &serverproto.SCOnlinePlayerGuildAck{}
  541. ackMsg.InGuildBattle = msg.InGuildBattle
  542. ackMsg.Data = msg.Data
  543. ackMsg.NextJoin = msg.NextJoin
  544. ackMsg.MsgRec = msg.MsgRec
  545. // ackMsg.Boss = msg.Boss
  546. bRet := role.(*model2.Role).GetRoleGuild().HasBattleCount(msg)
  547. ackMsg.Boss = bRet
  548. ackMsg.NextJoin = role.(*model2.Role).GetRoleGuild().GetNextJoin()
  549. role.ReplayGate(ackMsg, true)
  550. if msg.GuildSys != nil {
  551. ntfMsg := &serverproto.SCSystemMessageNtf{}
  552. ntfMsg.SysMsg = append(ntfMsg.SysMsg, msg.GuildSys)
  553. role.ReplayGate(ntfMsg, true)
  554. }
  555. })
  556. //修改公户名称
  557. serverproto.Handle_GAME_SCGuildRenameAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  558. msg := ev.Msg().(*serverproto.SCGuildRenameAck)
  559. role := model2.RoleMag.GetRole(cliId)
  560. if role == nil {
  561. return
  562. }
  563. util.InfoF("uid=%v receive SCGuildRenameAck msg=%v", role.GetUUid(), msg)
  564. if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
  565. role.(model2.RoleLogicOuter).OnChangeGuileNameSuccess()
  566. }
  567. role.ReplayGate(msg, true)
  568. })
  569. //修改公户公告
  570. serverproto.Handle_GAME_SCGuildReNoticeAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  571. msg := ev.Msg().(*serverproto.SCGuildReNoticeAck)
  572. role := model2.RoleMag.GetRole(cliId)
  573. if role == nil {
  574. return
  575. }
  576. util.InfoF("uid=%v receive SCGuildReNoticeAck msg=%v", role.GetUUid(), msg)
  577. role.ReplayGate(msg, true)
  578. })
  579. //公会成员信息返回
  580. serverproto.Handle_GAME_SCGuildMemberInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  581. msg := ev.Msg().(*serverproto.SCGuildMemberInfoAck)
  582. role := model2.RoleMag.GetRole(cliId)
  583. if role == nil {
  584. return
  585. }
  586. util.InfoF("uid=%v receive SCGuildMemberInfoAck msg=%v", role.GetUUid(), msg)
  587. role.ReplayGate(msg, true)
  588. })
  589. //查询工会结果返回
  590. serverproto.Handle_GAME_SCSearchGuildAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  591. msg := ev.Msg().(*serverproto.SCSearchGuildAck)
  592. role := model2.RoleMag.GetRole(cliId)
  593. if role == nil {
  594. return
  595. }
  596. util.InfoF("uid=%v receive SCSearchGuildAck msg=%v", role.GetUUid(), msg)
  597. role.ReplayGate(msg, true)
  598. })
  599. //推荐公会列表返回
  600. serverproto.Handle_GAME_SCRecommendGuildInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  601. msg := ev.Msg().(*serverproto.SCRecommendGuildInfoAck)
  602. role := model2.RoleMag.GetRole(cliId)
  603. if role == nil {
  604. return
  605. }
  606. util.InfoF("uid=%v receive SCRecommendGuildInfoAck msg=%v", role.GetUUid(), msg)
  607. role.ReplayGate(msg, true)
  608. })
  609. //公会信息通知(有玩家直接加入公会,或者会长批准入会)
  610. serverproto.Handle_GAME_SCApplyInfoHandleNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  611. msg := ev.Msg().(*serverproto.SCApplyInfoHandleNtf)
  612. role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
  613. if role == nil {
  614. return
  615. }
  616. util.InfoF("uid=%v receive SCApplyInfoHandleNtf msg=%v", role.GetUUid(), msg)
  617. if msg.ApplyResult == 1 { //1:Guild_Apply_Accept
  618. role.(*model2.Role).GetRoleGuild().SetOnlineGuildInfo(msg.GuildId, msg.Data.Brief.GuildName)
  619. }
  620. role.ReplayGate(msg, true)
  621. })
  622. //公会申请列表返回
  623. serverproto.Handle_GAME_SCGuildApplyDataAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  624. msg := ev.Msg().(*serverproto.SCGuildApplyDataAck)
  625. role := model2.RoleMag.GetRole(cliId)
  626. if role == nil {
  627. return
  628. }
  629. util.InfoF("uid=%v receive SCGuildApplyDataAck msg=%v", role.GetUUid(), msg)
  630. role.ReplayGate(msg, true)
  631. })
  632. //公会日志列表返回
  633. serverproto.Handle_GAME_SCGuildLogInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  634. msg := ev.Msg().(*serverproto.SCGuildLogInfoAck)
  635. role := model2.RoleMag.GetRole(cliId)
  636. if role == nil {
  637. return
  638. }
  639. util.InfoF("uid=%v receive SCGuildLogInfoAck msg=%v", role.GetUUid(), msg)
  640. role.ReplayGate(msg, true)
  641. })
  642. //更改公会成员头衔返回
  643. serverproto.Handle_GAME_SCChangeMemberTitleNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  644. msg := ev.Msg().(*serverproto.SCChangeMemberTitleNtf)
  645. role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
  646. if role == nil {
  647. return
  648. }
  649. util.InfoF("uid=%v receive SCChangeMemberTitleNtf msg=%v", role.GetUUid(), msg)
  650. role.ReplayGate(msg, true)
  651. })
  652. //踢出玩家通知(通知到被踢玩家)
  653. serverproto.Handle_GAME_SCKickGuildMemberNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  654. msg := ev.Msg().(*serverproto.SCKickGuildMemberNtf)
  655. role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
  656. if role == nil {
  657. return
  658. }
  659. util.InfoF("uid=%v receive SCKickGuildMemberNtf msg=%v", role.GetUUid(), msg)
  660. role.(*model2.Role).GetRoleGuild().SetOnlineGuildInfo(0, "")
  661. role.ReplayGate(msg, true)
  662. })
  663. //boss信息
  664. serverproto.Handle_GAME_SCGuildBossInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  665. msg := ev.Msg().(*serverproto.SCGuildBossInfoAck)
  666. role := model2.RoleMag.GetRole(cliId)
  667. if role == nil {
  668. return
  669. }
  670. util.InfoF("uid=%v receive SCGuildBossInfoAck msg=%v", role.GetUUid(), msg)
  671. role.(*model2.Role).GetRoleGuild().SetFightCount(msg)
  672. role.ReplayGate(msg, true)
  673. })
  674. //boss日志
  675. serverproto.Handle_GAME_SCGuildBossLogAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  676. msg := ev.Msg().(*serverproto.SCGuildBossLogAck)
  677. role := model2.RoleMag.GetRole(cliId)
  678. if role == nil {
  679. return
  680. }
  681. util.InfoF("uid=%v receive SCGuildBossLogAck msg=%v", role.GetUUid(), msg)
  682. role.ReplayGate(msg, true)
  683. })
  684. //boss挑战
  685. serverproto.Handle_GAME_SCGuildBossChallengeAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  686. msg := ev.Msg().(*serverproto.SCGuildBossChallengeAck)
  687. role := model2.RoleMag.GetRole(cliId)
  688. if role == nil {
  689. return
  690. }
  691. util.InfoF("uid=%v receive SCGuildBossChallengeAck msg=%v", role.GetUUid(), msg)
  692. if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
  693. role.(*model2.Role).GetRoleGuild().GuildBossFightSuccess(msg)
  694. }
  695. role.ReplayGate(msg, true)
  696. })
  697. //boss召唤
  698. serverproto.Handle_GAME_SCGuildBossSummonAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  699. msg := ev.Msg().(*serverproto.SCGuildBossSummonAck)
  700. role := model2.RoleMag.GetRole(cliId)
  701. if role == nil {
  702. return
  703. }
  704. util.InfoF("uid=%v receive SCGuildBossSummonAck msg=%v", role.GetUUid(), msg)
  705. if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
  706. nCount := role.(*model2.Role).GetRoleGuild().GetBossFightCount(msg.BossId)
  707. msg.FightCount = nCount
  708. }
  709. role.ReplayGate(msg, true)
  710. })
  711. //公会boss额外奖励
  712. serverproto.Handle_GAME_SCGuildBossExtraRewardAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  713. msg := ev.Msg().(*serverproto.SCGuildBossExtraRewardAck)
  714. role := model2.RoleMag.GetRole(cliId)
  715. if role == nil {
  716. return
  717. }
  718. util.InfoF("uid=%v receive SCGuildBossExtraRewardAck msg=%v", role.GetUUid(), msg)
  719. role.ReplayGate(msg, true)
  720. })
  721. //公会boss额外奖励
  722. serverproto.Handle_GAME_SSGuildBossRefreshNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  723. msg := ev.Msg().(*serverproto.SSGuildBossRefreshNtf)
  724. role := model2.RoleMag.GetRole(cliId)
  725. if role == nil {
  726. return
  727. }
  728. util.InfoF("uid=%v receive SSGuildBossRefreshNtf msg=%v", role.GetUUid(), msg)
  729. role.(*model2.Role).GetRoleGuild().BossRefreshData(msg)
  730. })
  731. //公会名字修改
  732. serverproto.Handle_GAME_SCGuildNameChangeNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  733. msg := ev.Msg().(*serverproto.SCGuildNameChangeNtf)
  734. role := model2.RoleMag.GetRoleFromUUid(msg.Uid)
  735. if role == nil {
  736. return
  737. }
  738. util.InfoF("uid=%v receive SCGuildNameChangeNtf msg=%v", role.GetUUid(), msg)
  739. role.(*model2.Role).GetRoleGuild().GuildNameChange(msg.GuildId, msg.GuildName)
  740. role.ReplayGate(msg, true)
  741. })
  742. //////公会战
  743. //公会战贡献点
  744. serverproto.Handle_GAME_CSGuildBattleCPRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  745. msg := ev.Msg().(*serverproto.CSGuildBattleCPRankReq)
  746. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  747. if role == nil {
  748. return
  749. }
  750. util.InfoF("uid=%v receive CSGuildBattleCPRankReq msg=%v", role.GetUUid(), msg)
  751. //请求消息时间拦截(防止频繁请求)
  752. bRet := role.(*model2.Role).GetRoleGuild().CheckReqTime()
  753. if !bRet {
  754. return
  755. }
  756. //转发到公会服务器
  757. reqMsg := &serverproto.SSGuildBattleCPRankReq{}
  758. reqMsg.Uid = role.GetUUid()
  759. reqMsg.GuildId = uint64(role.(model2.RoleLogicOuter).GetRoleGuildId())
  760. role.(*model2.Role).SendGuild(reqMsg)
  761. })
  762. serverproto.Handle_GAME_SSGuildBattleCPRankAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  763. msg := ev.Msg().(*serverproto.SSGuildBattleCPRankAck)
  764. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  765. if role == nil {
  766. return
  767. }
  768. util.InfoF("uid=%v receive SSGuildBattleCPRankAck msg=%v", role.GetUUid(), msg)
  769. //转发到公会服务器
  770. ackMsg := &serverproto.SCGuildBattleCPRankAck{}
  771. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_OK)
  772. ackMsg.CpList = msg.CpList
  773. ackMsg.SelfGuildRank = msg.SelfGuildRank
  774. ackMsg.SelfGuildCp = msg.SelfGuildCp
  775. role.(*model2.Role).ReplayGate(ackMsg, true)
  776. })
  777. //公会战对阵表
  778. serverproto.Handle_GAME_CSGuildBattleCountPartReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  779. msg := ev.Msg().(*serverproto.CSGuildBattleCountPartReq)
  780. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  781. if role == nil {
  782. return
  783. }
  784. util.InfoF("uid=%v receive CSGuildBattleCountPartReq msg=%v", role.GetUUid(), msg)
  785. //请求消息时间拦截(防止频繁请求)
  786. bRet := role.(*model2.Role).GetRoleGuild().CheckReqTime()
  787. if !bRet {
  788. return
  789. }
  790. //转发到公会服务器
  791. reqMsg := &serverproto.SSGuildBattleCountPartReq{}
  792. reqMsg.Uid = role.GetUUid()
  793. role.(*model2.Role).SendGuild(reqMsg)
  794. })
  795. serverproto.Handle_GAME_SSGuildBattleCountPartAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  796. msg := ev.Msg().(*serverproto.SSGuildBattleCountPartAck)
  797. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  798. if role == nil {
  799. return
  800. }
  801. util.InfoF("uid=%v receive SSGuildBattleCountPartAck msg=%v", role.GetUUid(), msg)
  802. //转发到公会服务器
  803. ackMsg := &serverproto.SCGuildBattleCountPartAck{}
  804. ackMsg.CurStge = msg.CurStge
  805. ackMsg.Champion = msg.Champion
  806. if msg.Table != nil {
  807. ackMsg.Data = append(ackMsg.Data, msg.Table.Data...)
  808. }
  809. ackMsg.TournamentPrepare = msg.TournamentPrepare
  810. ackMsg.TournamentBegin = msg.TournamentBegin
  811. ackMsg.TournamentEnd = msg.TournamentEnd
  812. ackMsg.SemifinalsPrepare = msg.SemifinalsPrepare
  813. ackMsg.SemifinalsBegin = msg.SemifinalsBegin
  814. ackMsg.SemifinalsEnd = msg.SemifinalsEnd
  815. ackMsg.FinalsPrepare = msg.FinalsPrepare
  816. ackMsg.FinalsBegin = msg.FinalsBegin
  817. ackMsg.FinalsEnd = msg.FinalsEnd
  818. role.(*model2.Role).ReplayGate(ackMsg, true)
  819. })
  820. //公会战查看界面数据请求
  821. serverproto.Handle_GAME_CSGuildBattleMvpInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  822. msg := ev.Msg().(*serverproto.CSGuildBattleMvpInfoReq)
  823. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  824. if role == nil {
  825. return
  826. }
  827. util.InfoF("uid=%v receive CSGuildBattleMvpInfoReq msg=%v", role.GetUUid(), msg)
  828. //转发到公会服务器
  829. reqMsg := &serverproto.SSGuildBattleMvpInfoReq{}
  830. role.(*model2.Role).SendGuild(reqMsg)
  831. })
  832. serverproto.Handle_GAME_SSGuildBattleMvpInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  833. msg := ev.Msg().(*serverproto.SSGuildBattleMvpInfoAck)
  834. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  835. if role == nil {
  836. return
  837. }
  838. util.InfoF("uid=%v receive SSGuildBattleMvpInfoAck msg=%v", role.GetUUid(), msg)
  839. //转发到公会服务器
  840. ackMsg := &serverproto.SCGuildBattleMvpInfoAck{}
  841. ackMsg.GuildBattleIdx = msg.GuildBattleIdx
  842. ackMsg.Error = msg.Error
  843. ackMsg.Detail = msg.Detail
  844. ackMsg.CountPart = msg.CountPart
  845. role.(*model2.Role).ReplayGate(ackMsg, true)
  846. })
  847. //公会战MVP详情请求
  848. serverproto.Handle_GAME_CSGuildBattleMvpDetailReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  849. msg := ev.Msg().(*serverproto.CSGuildBattleMvpDetailReq)
  850. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  851. if role == nil {
  852. return
  853. }
  854. util.InfoF("uid=%v receive CSGuildBattleMvpDetailReq msg=%v", role.GetUUid(), msg)
  855. //转发到公会服务器
  856. reqMsg := &serverproto.SSGuildBattleMvpDetailReq{}
  857. role.(*model2.Role).SendGuild(reqMsg)
  858. })
  859. serverproto.Handle_GAME_SSGuildBattleMvpDetailAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  860. msg := ev.Msg().(*serverproto.SSGuildBattleMvpDetailAck)
  861. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  862. if role == nil {
  863. return
  864. }
  865. util.InfoF("uid=%v receive SSGuildBattleMvpDetailAck msg=%v", role.GetUUid(), msg)
  866. //转发到公会服务器
  867. ackMsg := &serverproto.SCGuildBattleMvpDetailAck{}
  868. role.(*model2.Role).ReplayGate(ackMsg, true)
  869. })
  870. //获取对阵双方信息(打开界面时的信息)
  871. serverproto.Handle_GAME_CSGuildBattleInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  872. msg := ev.Msg().(*serverproto.CSGuildBattleInfoReq)
  873. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  874. if role == nil {
  875. return
  876. }
  877. util.InfoF("uid=%v receive CSGuildBattleInfoReq msg=%v", role.GetUUid(), msg)
  878. if msg.GuildBattleIdx > 7 || msg.GuildBattleIdx <= 0 {
  879. ackMsg := &serverproto.SCGuildBattleInfoAck{}
  880. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_FAIL)
  881. role.ReplayGate(ackMsg, true)
  882. return
  883. }
  884. msg.SelfGuildId = uint64(role.(model2.RoleLogicOuter).GetRoleGuildId())
  885. role.(*model2.Role).SendGuild(msg)
  886. })
  887. //from guild
  888. serverproto.Handle_GAME_SCGuildBattleInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  889. msg := ev.Msg().(*serverproto.SCGuildBattleInfoAck)
  890. role := model2.RoleMag.GetRole(cliId)
  891. if role == nil {
  892. return
  893. }
  894. util.InfoF("uid=%v receive SCGuildBattleInfoAck msg=%v", role.GetUUid(), msg)
  895. msg.BuyChallengeNum = role.(*model2.Role).GetRoleGuild().GetBuyChallengeNum()
  896. role.ReplayGate(msg, true)
  897. })
  898. //设置自动购买,复活CD(数据变更通过SCGuildBattleInfoNtf)
  899. serverproto.Handle_GAME_CSGuildBattleSettingReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  900. msg := ev.Msg().(*serverproto.CSGuildBattleSettingReq)
  901. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  902. if role == nil {
  903. return
  904. }
  905. util.InfoF("uid=%v receive CSGuildBattleSettingReq msg=%v", role.GetUUid(), msg)
  906. if msg.GuildBattleIdx > 7 || msg.GuildBattleIdx <= 0 {
  907. ackMsg := &serverproto.SCGuildBattleSettingAck{}
  908. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_FAIL)
  909. role.ReplayGate(ackMsg, true)
  910. return
  911. }
  912. msg.SelfGuildId = uint64(role.(model2.RoleLogicOuter).GetRoleGuildId())
  913. role.(*model2.Role).SendGuild(msg)
  914. })
  915. //from guild
  916. serverproto.Handle_GAME_SCGuildBattleSettingAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  917. msg := ev.Msg().(*serverproto.SCGuildBattleSettingAck)
  918. role := model2.RoleMag.GetRole(cliId)
  919. if role == nil {
  920. return
  921. }
  922. util.InfoF("uid=%v receive SCGuildBattleSettingAck msg=%v", role.GetUUid(), msg)
  923. role.ReplayGate(msg, true)
  924. })
  925. //挑战次数手动购买
  926. serverproto.Handle_GAME_CSGuildBattleBuyChallengeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  927. msg := ev.Msg().(*serverproto.CSGuildBattleBuyChallengeReq)
  928. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  929. if role == nil {
  930. return
  931. }
  932. util.InfoF("uid=%v receive CSGuildBattleBuyChallengeReq msg=%v", role.GetUUid(), msg)
  933. role.(*model2.Role).GetRoleGuild().GuildBattleBuyChallengeNum(msg)
  934. })
  935. //from guild
  936. serverproto.Handle_GAME_SCGuildBattleBuyChallengeAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  937. msg := ev.Msg().(*serverproto.SCGuildBattleBuyChallengeAck)
  938. role := model2.RoleMag.GetRole(cliId)
  939. if role == nil {
  940. return
  941. }
  942. util.InfoF("uid=%v receive SCGuildBattleBuyChallengeAck msg=%v", role.GetUUid(), msg)
  943. if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
  944. role.(*model2.Role).GetRoleGuild().AddBuyChallengeCount(true)
  945. msg.BuyChallengeNum = role.(*model2.Role).GetRoleGuild().GetBuyChallengeNum()
  946. }
  947. role.ReplayGate(msg, true)
  948. })
  949. //手动重置复活CD
  950. serverproto.Handle_GAME_CSGuildBattleRebornReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  951. msg := ev.Msg().(*serverproto.CSGuildBattleRebornReq)
  952. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  953. if role == nil {
  954. return
  955. }
  956. util.InfoF("uid=%v receive CSGuildBattleRebornReq msg=%v", role.GetUUid(), msg)
  957. role.(*model2.Role).GetRoleGuild().GuildBattleResetReborn(msg)
  958. })
  959. //from guild
  960. serverproto.Handle_GAME_SCGuildBattleRebornAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  961. msg := ev.Msg().(*serverproto.SCGuildBattleRebornAck)
  962. role := model2.RoleMag.GetRole(cliId)
  963. if role == nil {
  964. return
  965. }
  966. util.InfoF("uid=%v receive CSGuildBattleRebornAck msg=%v", role.GetUUid(), msg)
  967. role.(*model2.Role).GetRoleGuild().OnGuildBattleResetReborn(msg)
  968. })
  969. //战斗排行(1积分排行/2击杀排行)
  970. serverproto.Handle_GAME_CSGuildBattleRankListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  971. msg := ev.Msg().(*serverproto.CSGuildBattleRankListReq)
  972. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  973. if role == nil {
  974. return
  975. }
  976. util.InfoF("uid=%v receive CSGuildBattleRankListReq msg=%v", role.GetUUid(), msg)
  977. if msg.PageIdx < 0 || msg.PageIdx > 20 || msg.GuildBattleIdx <= 0 || msg.GuildBattleIdx > 7 {
  978. ackMsg := &serverproto.SCGuildBattleRankListAck{
  979. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  980. }
  981. role.ReplayGate(ackMsg, true)
  982. return
  983. }
  984. role.(*model2.Role).SendGuild(msg)
  985. })
  986. //from guild
  987. serverproto.Handle_GAME_SCGuildBattleRankListAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  988. msg := ev.Msg().(*serverproto.SCGuildBattleRankListAck)
  989. role := model2.RoleMag.GetRole(cliId)
  990. if role == nil {
  991. return
  992. }
  993. util.InfoF("uid=%v receive SCGuildBattleRankListAck msg=%v", role.GetUUid(), msg)
  994. role.ReplayGate(msg, true)
  995. })
  996. //获取位置信息,上限20
  997. serverproto.Handle_GAME_CSGuildBattlePosIdxListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  998. msg := ev.Msg().(*serverproto.CSGuildBattlePosIdxListReq)
  999. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1000. if role == nil {
  1001. return
  1002. }
  1003. util.InfoF("uid=%v receive CSGuildBattlePosIdxListReq msg=%v", role.GetUUid(), msg)
  1004. if msg.GuildBattleIdx <= 0 || msg.GuildBattleIdx > 7 || len(msg.PosIdxList) > 25 {
  1005. ackMsg := &serverproto.SCGuildBattlePosIdxListAck{
  1006. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  1007. }
  1008. role.ReplayGate(ackMsg, true)
  1009. return
  1010. }
  1011. role.(*model2.Role).SendGuild(msg)
  1012. })
  1013. //from guild
  1014. serverproto.Handle_GAME_SCGuildBattlePosIdxListAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1015. msg := ev.Msg().(*serverproto.SCGuildBattlePosIdxListAck)
  1016. role := model2.RoleMag.GetRole(cliId)
  1017. if role == nil {
  1018. return
  1019. }
  1020. util.InfoF("uid=%v receive SCGuildBattlePosIdxListAck msg=%v", role.GetUUid(), msg)
  1021. role.ReplayGate(msg, true)
  1022. })
  1023. //占领记录
  1024. serverproto.Handle_GAME_CSGuildBattleLogReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1025. msg := ev.Msg().(*serverproto.CSGuildBattleLogReq)
  1026. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1027. if role == nil {
  1028. return
  1029. }
  1030. util.InfoF("uid=%v receive CSGuildBattleLogReq msg=%v", role.GetUUid(), msg)
  1031. if msg.GuildBattleIdx <= 0 || msg.GuildBattleIdx > 7 {
  1032. ackMsg := &serverproto.SCGuildBattleLogAck{
  1033. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  1034. }
  1035. role.ReplayGate(ackMsg, true)
  1036. return
  1037. }
  1038. role.(*model2.Role).SendGuild(msg)
  1039. })
  1040. //from guild
  1041. serverproto.Handle_GAME_SCGuildBattleLogAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1042. msg := ev.Msg().(*serverproto.SCGuildBattleLogAck)
  1043. role := model2.RoleMag.GetRole(cliId)
  1044. if role == nil {
  1045. return
  1046. }
  1047. util.InfoF("uid=%v receive SCGuildBattleLogAck msg=%v", role.GetUUid(), msg)
  1048. role.ReplayGate(msg, true)
  1049. })
  1050. //挑战占位
  1051. serverproto.Handle_GAME_CSGuildBattleChallengeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1052. msg := ev.Msg().(*serverproto.CSGuildBattleChallengeReq)
  1053. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1054. if role == nil {
  1055. return
  1056. }
  1057. util.InfoF("uid=%v receive CSGuildBattleChallengeReq msg=%v", role.GetUUid(), msg)
  1058. if msg.GuildBattleIdx <= 0 || msg.GuildBattleIdx > 7 {
  1059. ackMsg := &serverproto.SCGuildBattleChallengeAck{
  1060. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  1061. }
  1062. role.ReplayGate(ackMsg, true)
  1063. return
  1064. }
  1065. ret := role.(*model2.Role).GetRoleGuild().GuildBattleChallengePre(msg.GuildBattleIdx, msg.PosIdx)
  1066. if ret != serverproto.ErrorCode_ERROR_OK {
  1067. ackMsg := &serverproto.SCGuildBattleChallengeAck{
  1068. Error: int32(ret),
  1069. }
  1070. role.ReplayGate(ackMsg, true)
  1071. }
  1072. })
  1073. //from guild
  1074. serverproto.Handle_GAME_SSGuildBattleChallengeAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1075. msg := ev.Msg().(*serverproto.SSGuildBattleChallengeAck)
  1076. role := model2.RoleMag.GetRole(cliId)
  1077. if role == nil {
  1078. return
  1079. }
  1080. util.InfoF("uid=%v receive SSGuildBattleChallengeAck msg=%v", role.GetUUid(), msg)
  1081. role.(*model2.Role).GetRoleGuild().OnGuildBattleChallengePre(msg)
  1082. })
  1083. //战斗结果通知
  1084. serverproto.Handle_GAME_CSGuildBattleChallengeResultReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1085. msg := ev.Msg().(*serverproto.CSGuildBattleChallengeResultReq)
  1086. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1087. if role == nil {
  1088. return
  1089. }
  1090. util.InfoF("uid=%v receive CSGuildBattleChallengeResultReq msg=%v", role.GetUUid(), msg)
  1091. if msg.GuildBattleIdx <= 0 || msg.GuildBattleIdx > 7 {
  1092. ackMsg := &serverproto.SCGuildBattleChallengeResultAck{
  1093. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  1094. }
  1095. role.ReplayGate(ackMsg, true)
  1096. return
  1097. }
  1098. role.(*model2.Role).GetRoleGuild().GuildBattleChallengeResult(msg)
  1099. })
  1100. //from guild
  1101. serverproto.Handle_GAME_SCGuildBattleChallengeResultAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1102. msg := ev.Msg().(*serverproto.SCGuildBattleChallengeResultAck)
  1103. role := model2.RoleMag.GetRole(cliId)
  1104. if role == nil {
  1105. return
  1106. }
  1107. util.InfoF("uid=%v receive SCGuildBattleChallengeResultAck msg=%v", role.GetUUid(), msg)
  1108. role.ReplayGate(msg, true)
  1109. })
  1110. //保持战斗状态消息通知(60s内未收到消息判定为失败)
  1111. serverproto.Handle_GAME_CSGuildBattleChallengePingReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1112. msg := ev.Msg().(*serverproto.CSGuildBattleChallengePingReq)
  1113. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1114. if role == nil {
  1115. return
  1116. }
  1117. util.InfoF("uid=%v receive CSGuildBattleChallengePingReq msg=%v", role.GetUUid(), msg)
  1118. role.(*model2.Role).GetRoleGuild().GuildBattleChallengePint(msg)
  1119. })
  1120. serverproto.Handle_GAME_SCGuildBattleChallengePingAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1121. msg := ev.Msg().(*serverproto.SCGuildBattleChallengePingAck)
  1122. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1123. if role == nil {
  1124. return
  1125. }
  1126. util.InfoF("uid=%v receive SCGuildBattleChallengePingAck msg=%v", role.GetUUid(), msg)
  1127. role.ReplayGate(msg, true)
  1128. })
  1129. //客户端刷新最新pk数据(道场数量/积分数量)
  1130. serverproto.Handle_GAME_CSGuildBattlePKDataReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1131. msg := ev.Msg().(*serverproto.CSGuildBattlePKDataReq)
  1132. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1133. if role == nil {
  1134. return
  1135. }
  1136. util.InfoF("uid=%v receive CSGuildBattlePKDataReq msg=%v", role.GetUUid(), msg)
  1137. if msg.GuildBattleIdx <= 0 || msg.GuildBattleIdx > 7 {
  1138. ackMsg := &serverproto.SCGuildBattlePKDataAck{
  1139. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  1140. }
  1141. role.ReplayGate(ackMsg, true)
  1142. return
  1143. }
  1144. role.(*model2.Role).SendGuild(msg)
  1145. })
  1146. //客户端购买buff
  1147. serverproto.Handle_GAME_CSGuildBattleBuyBuffReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1148. msg := ev.Msg().(*serverproto.CSGuildBattleBuyBuffReq)
  1149. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1150. if role == nil {
  1151. return
  1152. }
  1153. util.InfoF("uid=%v receive CSGuildBattleBuyBuffReq msg=%v", role.GetUUid(), msg)
  1154. if msg.GuildBattleIdx <= 0 || msg.GuildBattleIdx > 7 {
  1155. ackMsg := &serverproto.SCGuildBattleBuyBuffAck{
  1156. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  1157. }
  1158. role.ReplayGate(ackMsg, true)
  1159. return
  1160. }
  1161. reqMsg := &serverproto.SSGuildBattleBuyBuffReq{
  1162. GuildBattleIdx: msg.GuildBattleIdx,
  1163. BuffIdList: msg.BuffIdList,
  1164. Uid: role.GetUUid(),
  1165. GuildId: role.(model2.RoleLogicOuter).GetRoleGuildId(),
  1166. TotalGold: role.(*model2.Role).GetResNum(int32(serverproto.ResType_Res_Rmb)),
  1167. }
  1168. role.(*model2.Role).SendGuild(reqMsg)
  1169. })
  1170. ////客户端购买buff(rank返回)
  1171. serverproto.Handle_GAME_SSGuildBattleBuyBuffAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1172. msg := ev.Msg().(*serverproto.SSGuildBattleBuyBuffAck)
  1173. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1174. if role == nil {
  1175. return
  1176. }
  1177. util.InfoF("uid=%v receive SSGuildBattleBuyBuffAck msg=%v", role.GetUUid(), msg)
  1178. if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
  1179. //扣除金币
  1180. role.(*model2.Role).GetRoleGuild().RemoveBuyBuffGold(msg.NeedRes)
  1181. }
  1182. ackMsg := &serverproto.SCGuildBattleBuyBuffAck{
  1183. Error: msg.Error,
  1184. SelfData: msg.SelfData,
  1185. GuildBattleIdx: msg.GuildBattleIdx,
  1186. }
  1187. role.(*model2.Role).ReplayGate(ackMsg, true)
  1188. })
  1189. //from guild
  1190. serverproto.Handle_GAME_SCGuildBattlePKDataAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1191. msg := ev.Msg().(*serverproto.SCGuildBattlePKDataAck)
  1192. role := model2.RoleMag.GetRole(cliId)
  1193. if role == nil {
  1194. return
  1195. }
  1196. util.InfoF("uid=%v receive SCGuildBattlePKDataAck msg=%v", role.GetUUid(), msg)
  1197. role.ReplayGate(msg, true)
  1198. })
  1199. //from guild(战场中玩家数据变更通知)
  1200. serverproto.Handle_GAME_SCGuildBattleDataChangeNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1201. msg := ev.Msg().(*serverproto.SCGuildBattleDataChangeNtf)
  1202. util.InfoF("uid=%v receive SCGuildBattleDataChangeNtf msg=%v", cliId.SessID, msg)
  1203. targetRole := model2.RoleMag.GetRoleFromUUid(msg.NtfUid)
  1204. if targetRole == nil {
  1205. targetRole = model2.RoleMag.GetRoleFromOffline(msg.NtfUid)
  1206. }
  1207. if targetRole != nil {
  1208. targetRole.ReplayGate(msg, true)
  1209. } else if !msg.FromSocial {
  1210. role := model2.RoleMag.GetRole(cliId)
  1211. if role == nil {
  1212. return
  1213. }
  1214. //通知的是自己
  1215. if role.GetUUid() != msg.NtfUid {
  1216. role.(*model2.Role).SendSocial(msg)
  1217. }
  1218. }
  1219. })
  1220. //
  1221. serverproto.Handle_GAME_SSGuildBattleStageChangeNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1222. msg := ev.Msg().(*serverproto.SSGuildBattleStageChangeNtf)
  1223. util.InfoF("uid=%v receive SSGuildBattleStageChangeNtf msg=%v", cliId.SessID, msg)
  1224. //通知在线玩家活动开始
  1225. model2.RoleMag.GuildBattleBeginNtf(msg.InGuildBattle)
  1226. })
  1227. //发送公会战排名奖励
  1228. serverproto.Handle_GAME_SSGuildBattleRewardNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1229. msg := ev.Msg().(*serverproto.SSGuildBattleRewardNtf)
  1230. util.ErrorF("uid=%v receive SSGuildBattleRewardNtf msg=%v", cliId.SessID, msg)
  1231. if msg.GuildPre != 0 {
  1232. newCliId := &model.ClientID{
  1233. SessID: msg.GuildPre,
  1234. }
  1235. role := model2.RoleMag.GetRole(*newCliId)
  1236. if role != nil {
  1237. round := role.(*model2.Role).GetRoleGuild().GetGuildBattleRewardRound()
  1238. if round < msg.GuildRound {
  1239. //获取奖励列表
  1240. reward, ok := model.GuildBattleRankReward[msg.RewardType]
  1241. if ok {
  1242. role.(model2.RoleLogicOuter).AddMail1(model.GlobalMailGuildBattlePreReward, int32(serverproto.MailType_MailType_GuildBattle_Pre),
  1243. reward.LeaderRewardList, []int32{msg.RewardType}, "", "")
  1244. //todo wangzhaocan 设置领奖标记
  1245. role.(*model2.Role).GetRoleGuild().SetGuildBattleRewardRound(msg.GuildRound)
  1246. }
  1247. }
  1248. }
  1249. }
  1250. reward, ok := model.GuildBattleRankReward[msg.RewardType]
  1251. if ok {
  1252. for _, uid := range msg.UidList {
  1253. newCliId := &model.ClientID{
  1254. SessID: uid,
  1255. }
  1256. role := model2.RoleMag.GetRole(*newCliId)
  1257. if role == nil {
  1258. continue
  1259. }
  1260. round := role.(*model2.Role).GetRoleGuild().GetGuildBattleRewardRound()
  1261. if round < msg.GuildRound {
  1262. role.(model2.RoleLogicOuter).AddMail1(model.GlobalMailGuildBattleMemReward, int32(serverproto.MailType_MailType_GuildBattle_Member),
  1263. reward.MemberRewardList, []int32{msg.RewardType}, "", "")
  1264. //todo wangzhaocan 设置领奖标记
  1265. role.(*model2.Role).GetRoleGuild().SetGuildBattleRewardRound(msg.GuildRound)
  1266. }
  1267. }
  1268. }
  1269. })
  1270. //玩家上线,请求未发送的邮件奖励
  1271. serverproto.Handle_GAME_SSGuildBattleOnlineGetRewardAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1272. msg := ev.Msg().(*serverproto.SSGuildBattleOnlineGetRewardAck)
  1273. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1274. if role == nil {
  1275. return
  1276. }
  1277. util.InfoF("uid=%v receive SSGuildBattleOnlineGetRewardAck msg=%v", cliId.SessID, msg)
  1278. for _, data := range msg.RoundReward {
  1279. reward, ok := model.GuildBattleRankReward[data.RewardType]
  1280. if ok {
  1281. if data.IsPre == true {
  1282. role.(model2.RoleLogicOuter).AddMail1(model.GlobalMailGuildBattlePreReward, int32(serverproto.MailType_MailType_GuildBattle_Pre),
  1283. reward.LeaderRewardList, []int32{data.RewardType}, "", "")
  1284. } else {
  1285. role.(model2.RoleLogicOuter).AddMail1(model.GlobalMailGuildBattleMemReward, int32(serverproto.MailType_MailType_GuildBattle_Member),
  1286. reward.MemberRewardList, []int32{data.RewardType}, "", "")
  1287. }
  1288. //设领奖标记
  1289. role.(*model2.Role).GetRoleGuild().SetGuildBattleRewardRound(msg.CurBattleRound)
  1290. }
  1291. }
  1292. //发送积分奖励
  1293. for _, data := range msg.ScoreMvp {
  1294. reward, ok := model.GuildBattleScoreMvpReward[data.RewardType]
  1295. if ok {
  1296. role.(model2.RoleLogicOuter).AddMail1(model.GlobalMailGuildBattleScoreReward, int32(serverproto.MailType_MailType_GuildBattle_Score),
  1297. reward.RewardList, []int32{data.RewardType}, "", "")
  1298. }
  1299. }
  1300. //发送击杀奖励
  1301. for _, data := range msg.KillerMvp {
  1302. reward, ok := model.GuildBattleKillMvpReward[data.RewardType]
  1303. if ok {
  1304. role.(model2.RoleLogicOuter).AddMail1(model.GlobalMailGuildBattleKillerReward, int32(serverproto.MailType_MailType_GuildBattle_Killer),
  1305. reward.RewardList, []int32{data.RewardType}, "", "")
  1306. }
  1307. }
  1308. //todo wangzhaocan 设置MVP领奖标记
  1309. if msg.CurMvpRound != 0 {
  1310. role.(*model2.Role).GetRoleGuild().SetGuildBattleMvpRound(msg.CurMvpRound)
  1311. }
  1312. })
  1313. //赛季结束,发送MVP奖励
  1314. serverproto.Handle_GAME_SSGuildBattleSendMvpRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1315. msg := ev.Msg().(*serverproto.SSGuildBattleSendMvpRewardReq)
  1316. util.InfoF("uid=%v receive SSGuildBattleSendMvpRewardReq msg=%v", cliId.SessID, msg)
  1317. ackMsg := &serverproto.SSGuildBattleSendMvpRewardAck{}
  1318. //发送积分奖励
  1319. uidList := map[uint64]int32{}
  1320. for _, data := range msg.ScoreMvp {
  1321. newCliId := &model.ClientID{
  1322. SessID: data.Uid,
  1323. }
  1324. role := model2.RoleMag.GetRole(*newCliId)
  1325. if role == nil {
  1326. continue
  1327. }
  1328. reward, ok := model.GuildBattleScoreMvpReward[data.RewardType]
  1329. if ok {
  1330. role.(model2.RoleLogicOuter).AddMail1(model.GlobalMailGuildBattleScoreReward, int32(serverproto.MailType_MailType_GuildBattle_Score),
  1331. reward.RewardList, []int32{data.RewardType}, "", "")
  1332. ackMsg.ScoreMvp = append(ackMsg.ScoreMvp, &serverproto.MvpRewardInfo{
  1333. Uid: data.Uid,
  1334. BattleIndex: data.BattleIndex,
  1335. })
  1336. }
  1337. uidList[data.Uid] = 1
  1338. }
  1339. //发送击杀奖励
  1340. for _, data := range msg.KillerMvp {
  1341. newCliId := &model.ClientID{
  1342. SessID: data.Uid,
  1343. }
  1344. role := model2.RoleMag.GetRole(*newCliId)
  1345. if role == nil {
  1346. continue
  1347. }
  1348. reward, ok := model.GuildBattleKillMvpReward[data.RewardType]
  1349. if ok {
  1350. role.(model2.RoleLogicOuter).AddMail1(model.GlobalMailGuildBattleKillerReward, int32(serverproto.MailType_MailType_GuildBattle_Killer),
  1351. reward.RewardList, []int32{data.RewardType}, "", "")
  1352. ackMsg.KillerMvp = append(ackMsg.KillerMvp, &serverproto.MvpRewardInfo{
  1353. Uid: data.Uid,
  1354. BattleIndex: data.BattleIndex,
  1355. })
  1356. }
  1357. uidList[data.Uid] = 1
  1358. }
  1359. if len(ackMsg.KillerMvp) > 0 || len(ackMsg.ScoreMvp) > 0 {
  1360. model2.SendGuild(ackMsg)
  1361. }
  1362. })
  1363. //魔王信息请求
  1364. serverproto.Handle_GAME_CSGuildDemonInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1365. msg := ev.Msg().(*serverproto.CSGuildDemonInfoReq)
  1366. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1367. if role == nil {
  1368. return
  1369. }
  1370. util.InfoF("uid=%v receive CSGuildDemonInfoReq msg=%v", role.GetUUid(), msg)
  1371. msg.Uid = role.GetUUid()
  1372. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  1373. model2.SendGuild(msg)
  1374. })
  1375. //战斗结果通知
  1376. serverproto.Handle_GAME_CSGuildDemonFightReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1377. msg := ev.Msg().(*serverproto.CSGuildDemonFightReq)
  1378. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1379. if role == nil {
  1380. return
  1381. }
  1382. util.InfoF("uid=%v receive CSGuildDemonFightReq msg=%v", role.GetUUid(), msg)
  1383. /*
  1384. ackMsg := &serverproto.SCGuildDemonFightAck{
  1385. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  1386. }
  1387. role.ReplayGate(ackMsg, true)
  1388. return
  1389. */
  1390. //check中直接扣除次数
  1391. bRet := role.(*model2.Role).GetRoleGuild().CheckDemonChallenge()
  1392. if bRet != serverproto.ErrorCode_ERROR_OK {
  1393. ackMsg := &serverproto.SCGuildDemonFightAck{
  1394. Error: int32(bRet),
  1395. }
  1396. role.ReplayGate(ackMsg, true)
  1397. return
  1398. }
  1399. //返回包返回到game再重置次数
  1400. reqMsg := &serverproto.SSGuildDemonFightReq{
  1401. DemonId: msg.DemonId,
  1402. Damage: msg.Damage,
  1403. GuildId: role.(model2.RoleLogicOuter).GetRoleGuildId(),
  1404. Uid: role.GetUUid(),
  1405. }
  1406. model2.SendGuild(reqMsg)
  1407. })
  1408. //魔王公会排名
  1409. serverproto.Handle_GAME_CSGuildDemonGuildRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1410. msg := ev.Msg().(*serverproto.CSGuildDemonGuildRankReq)
  1411. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1412. if role == nil {
  1413. return
  1414. }
  1415. util.InfoF("uid=%v receive CSGuildDemonGuildRankReq msg=%v", role.GetUUid(), msg)
  1416. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  1417. msg.Uid = role.GetUUid()
  1418. //返回包返回到game再重置次数
  1419. model2.SendGuild(msg)
  1420. })
  1421. //魔王公会排名
  1422. serverproto.Handle_GAME_CSGuildDemonMVPRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1423. msg := ev.Msg().(*serverproto.CSGuildDemonMVPRankReq)
  1424. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1425. if role == nil {
  1426. return
  1427. }
  1428. util.InfoF("uid=%v receive CSGuildDemonMVPRankReq msg=%v", role.GetUUid(), msg)
  1429. msg.GuildId = role.(model2.RoleLogicOuter).GetRoleGuildId()
  1430. msg.Uid = role.GetUUid()
  1431. //返回包返回到game再重置次数
  1432. model2.SendGuild(msg)
  1433. })
  1434. //购买战斗次数
  1435. serverproto.Handle_GAME_CSGuildDemonBuyFightCountReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1436. msg := ev.Msg().(*serverproto.CSGuildDemonBuyFightCountReq)
  1437. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1438. if role == nil {
  1439. return
  1440. }
  1441. util.InfoF("uid=%v receive CSGuildDemonBuyFightCountReq msg=%v", role.GetUUid(), msg)
  1442. role.(model2.RoleLogicOuter).GuildDemonBuyFightCount(msg.FightCount)
  1443. })
  1444. //=========================== 魔王,公会服务器返回 =================================
  1445. //魔王公会排名
  1446. serverproto.Handle_GAME_SCGuildDemonInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1447. msg := ev.Msg().(*serverproto.SCGuildDemonInfoAck)
  1448. newCliId := &model.ClientID{
  1449. SessID: msg.ReqUid,
  1450. }
  1451. role := model2.RoleMag.GetRole(*newCliId)
  1452. if role == nil {
  1453. return
  1454. }
  1455. util.InfoF("uid=%v receive SCGuildDemonInfoAck msg=%v", role.GetUUid(), msg)
  1456. role.(*model2.Role).GetRoleGuild().GetGuildDemonInfo(msg)
  1457. //返回包返回到game再重置次数
  1458. role.ReplayGate(msg, true)
  1459. })
  1460. //魔王公会排名
  1461. serverproto.Handle_GAME_SSGuildDemonFightAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1462. msg := ev.Msg().(*serverproto.SSGuildDemonFightAck)
  1463. newCliId := &model.ClientID{
  1464. SessID: msg.ReqUid,
  1465. }
  1466. role := model2.RoleMag.GetRole(*newCliId)
  1467. if role == nil {
  1468. return
  1469. }
  1470. util.InfoF("uid=%v receive SSGuildDemonFightAck msg=%v", role.GetUUid(), msg)
  1471. ackMsg := &serverproto.SCGuildDemonFightAck{
  1472. Error: msg.Error,
  1473. DemonId: msg.DemonId,
  1474. FightCount: msg.FightCount,
  1475. TotalDamage: msg.TotalDamage,
  1476. }
  1477. //返回包返回到game再重置次数
  1478. role.(*model2.Role).GetRoleGuild().OnGuildDemonFight(msg.RefreshTime, msg.FreeFightCount, ackMsg)
  1479. role.ReplayGate(ackMsg, true)
  1480. if msg.RewardLevel > 0 {
  1481. role.(*model2.Role).GetRoleGuild().SendGuildDemonBroadCast(msg.DemonId, msg.GuildName, msg.RewardLevel)
  1482. }
  1483. })
  1484. //魔王公会排名
  1485. serverproto.Handle_GAME_SCGuildDemonGuildRankAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1486. msg := ev.Msg().(*serverproto.SCGuildDemonGuildRankAck)
  1487. newCliId := &model.ClientID{
  1488. SessID: msg.Uid,
  1489. }
  1490. role := model2.RoleMag.GetRole(*newCliId)
  1491. if role == nil {
  1492. return
  1493. }
  1494. util.InfoF("uid=%v receive SCGuildDemonGuildRankAck msg=%v", role.GetUUid(), msg)
  1495. //返回包返回到game再重置次数
  1496. role.ReplayGate(msg, true)
  1497. })
  1498. //魔王公会排名
  1499. serverproto.Handle_GAME_SCGuildDemonMVPRankAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1500. msg := ev.Msg().(*serverproto.SCGuildDemonMVPRankAck)
  1501. newCliId := &model.ClientID{
  1502. SessID: msg.Uid,
  1503. }
  1504. role := model2.RoleMag.GetRole(*newCliId)
  1505. if role == nil {
  1506. return
  1507. }
  1508. util.InfoF("uid=%v receive SCGuildDemonMVPRankAck msg=%v", role.GetUUid(), msg)
  1509. role.ReplayGate(msg, true)
  1510. })
  1511. //魔王公会上线奖励
  1512. serverproto.Handle_GAME_SSGuildDemonOnlineGetRewardNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1513. msg := ev.Msg().(*serverproto.SSGuildDemonOnlineGetRewardNtf)
  1514. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  1515. if role == nil {
  1516. return
  1517. }
  1518. // return
  1519. util.InfoF("uid=%v receive SSGuildDemonOnlineGetRewardNtf msg=%v", role.GetUUid(), msg)
  1520. role.(*model2.Role).GetRoleGuild().OnlineAddGuildDemonReward(msg)
  1521. })
  1522. //邮件
  1523. serverproto.Handle_GAME_SSGuildDemonRewardNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  1524. msg := ev.Msg().(*serverproto.SSGuildDemonRewardNtf)
  1525. util.InfoF("receive SSGuildDemonRewardNtf msg=%v", msg)
  1526. demonData := model.GetDemonDataByConfigId(msg.DemonId)
  1527. if demonData == nil || len(demonData.BaseReward) <= 0 {
  1528. util.ErrorF("get demon config not found : demon:%v", msg.DemonId)
  1529. return
  1530. }
  1531. var rewardData []*serverproto.KeyValueType
  1532. for _, data := range demonData.RewardStage {
  1533. if data.StageMin <= msg.TotalDamage && (msg.TotalDamage <= data.StageMax || data.Level >= int32(len(demonData.RewardStage))) {
  1534. rewardData = data.Reward
  1535. break
  1536. }
  1537. }
  1538. if len(rewardData) <= 0 {
  1539. util.InfoF("reward list empty: demon:%v, damage:%v", msg.DemonId, msg.TotalDamage)
  1540. return
  1541. }
  1542. for _, uid := range msg.UidList {
  1543. role := model2.RoleMag.GetRoleFromUUid(uid)
  1544. if role == nil {
  1545. role = model2.RoleMag.GetRoleFromOffline(uid)
  1546. }
  1547. if role != nil {
  1548. role.(*model2.Role).GetRoleGuild().AddGuildDemonReward(rewardData, msg)
  1549. }
  1550. }
  1551. })
  1552. }