mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-13 07:25:03 +01:00
CanRecruit function in guild
This commit is contained in:
@@ -824,7 +824,7 @@ func handleMsgMhfOperateGuildMember(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
|
|
||||||
actorCharacter, err := GetCharacterGuildData(s, s.charID)
|
actorCharacter, err := GetCharacterGuildData(s, s.charID)
|
||||||
|
|
||||||
if err != nil || (!actorCharacter.IsSubLeader() && guild.LeaderCharID != s.charID) || (!actorCharacter.Recruiter && guild.LeaderCharID != s.charID) {
|
if err != nil || (!actorCharacter.IsSubLeader() && guild.LeaderCharID != s.charID) {
|
||||||
doAckSimpleFail(s, pkt.AckHandle, make([]byte, 4))
|
doAckSimpleFail(s, pkt.AckHandle, make([]byte, 4))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,8 +26,21 @@ type GuildMember struct {
|
|||||||
WeaponType uint16 `db:"weapon_type"`
|
WeaponType uint16 `db:"weapon_type"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (gm *GuildMember) CanRecruit() bool {
|
||||||
|
if gm.Recruiter {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if gm.OrderIndex <= 3 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if gm.IsLeader {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func (gm *GuildMember) IsSubLeader() bool {
|
func (gm *GuildMember) IsSubLeader() bool {
|
||||||
return gm.OrderIndex <= 3 && !gm.AvoidLeadership
|
return gm.OrderIndex <= 3
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gm *GuildMember) Save(s *Session) error {
|
func (gm *GuildMember) Save(s *Session) error {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ func handleMsgMhfPostGuildScout(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if actorCharGuildData == nil || (!actorCharGuildData.Recruiter && !actorCharGuildData.IsLeader && !actorCharGuildData.IsSubLeader()) {
|
if actorCharGuildData == nil || !actorCharGuildData.CanRecruit() {
|
||||||
doAckBufFail(s, pkt.AckHandle, make([]byte, 4))
|
doAckBufFail(s, pkt.AckHandle, make([]byte, 4))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -98,7 +98,7 @@ func handleMsgMhfCancelGuildScout(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if guildCharData == nil || (!guildCharData.Recruiter && !guildCharData.IsLeader && !guildCharData.IsSubLeader()) {
|
if guildCharData == nil || !guildCharData.CanRecruit() {
|
||||||
doAckBufFail(s, pkt.AckHandle, make([]byte, 4))
|
doAckBufFail(s, pkt.AckHandle, make([]byte, 4))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user