mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-14 16:04:38 +01:00
fix and rework various Raviente ID systems
This commit is contained in:
@@ -16,7 +16,7 @@ func handleMsgMhfRegisterEvent(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
}
|
}
|
||||||
bf.WriteUint8(uint8(pkt.WorldID))
|
bf.WriteUint8(uint8(pkt.WorldID))
|
||||||
bf.WriteUint8(uint8(pkt.LandID))
|
bf.WriteUint8(uint8(pkt.LandID))
|
||||||
bf.WriteUint16(0x1142) // Probably random ID
|
bf.WriteUint16(s.server.raviente.id)
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, bf.Data())
|
doAckSimpleSucceed(s, pkt.AckHandle, bf.Data())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,15 +142,11 @@ func (s *Session) notifyRavi() {
|
|||||||
|
|
||||||
func (s *Server) getRaviSemaphore() *Semaphore {
|
func (s *Server) getRaviSemaphore() *Semaphore {
|
||||||
for _, semaphore := range s.semaphore {
|
for _, semaphore := range s.semaphore {
|
||||||
if strings.HasPrefix(semaphore.id_semaphore, "hs_l0u3B5") && strings.HasSuffix(semaphore.id_semaphore, "3") {
|
if strings.HasPrefix(semaphore.id_semaphore, "hs_l0") && strings.HasSuffix(semaphore.id_semaphore, "3") {
|
||||||
return semaphore
|
return semaphore
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func resetRavi(s *Session) {
|
|
||||||
s.server.raviente = NewRaviente()
|
|
||||||
}
|
|
||||||
|
|
||||||
func handleMsgSysNotifyRegister(s *Session, p mhfpacket.MHFPacket) {}
|
func handleMsgSysNotifyRegister(s *Session, p mhfpacket.MHFPacket) {}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ func destructEmptySemaphores(s *Session) {
|
|||||||
s.server.semaphoreLock.Unlock()
|
s.server.semaphoreLock.Unlock()
|
||||||
delete(s.server.semaphore, id)
|
delete(s.server.semaphore, id)
|
||||||
s.server.semaphoreLock.Lock()
|
s.server.semaphoreLock.Lock()
|
||||||
if strings.HasPrefix(id, "hs_l0u3B5") {
|
if strings.HasPrefix(id, "hs_l0") {
|
||||||
releaseRaviSemaphore(s, sema)
|
releaseRaviSemaphore(s, sema)
|
||||||
}
|
}
|
||||||
s.logger.Debug("Destructed semaphore", zap.String("sema.id_semaphore", id))
|
s.logger.Debug("Destructed semaphore", zap.String("sema.id_semaphore", id))
|
||||||
@@ -49,7 +49,7 @@ func releaseRaviSemaphore(s *Session, sema *Semaphore) {
|
|||||||
delete(sema.clients, s)
|
delete(sema.clients, s)
|
||||||
if strings.HasSuffix(sema.id_semaphore, "2") && len(sema.clients) == 0 {
|
if strings.HasSuffix(sema.id_semaphore, "2") && len(sema.clients) == 0 {
|
||||||
s.logger.Debug("Main raviente semaphore is empty, resetting")
|
s.logger.Debug("Main raviente semaphore is empty, resetting")
|
||||||
resetRavi(s)
|
s.server.resetRaviente()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ func handleMsgSysDeleteSemaphore(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
s.server.semaphoreLock.Lock()
|
s.server.semaphoreLock.Lock()
|
||||||
for id, sema := range s.server.semaphore {
|
for id, sema := range s.server.semaphore {
|
||||||
if sema.id == pkt.SemaphoreID {
|
if sema.id == pkt.SemaphoreID {
|
||||||
if strings.HasPrefix(id, "hs_l0u3B5") {
|
if strings.HasPrefix(id, "hs_l0") {
|
||||||
releaseRaviSemaphore(s, sema)
|
releaseRaviSemaphore(s, sema)
|
||||||
s.server.semaphoreLock.Unlock()
|
s.server.semaphoreLock.Unlock()
|
||||||
return
|
return
|
||||||
@@ -84,7 +84,7 @@ func handleMsgSysCreateAcquireSemaphore(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
fmt.Printf("Got reserve stage req, StageID: %v\n\n", SemaphoreID)
|
fmt.Printf("Got reserve stage req, StageID: %v\n\n", SemaphoreID)
|
||||||
if !exists {
|
if !exists {
|
||||||
s.server.semaphoreLock.Lock()
|
s.server.semaphoreLock.Lock()
|
||||||
if strings.HasPrefix(SemaphoreID, "hs_l0u3B5") {
|
if strings.HasPrefix(SemaphoreID, "hs_l0") {
|
||||||
suffix, _ := strconv.Atoi(pkt.SemaphoreID[len(pkt.SemaphoreID)-1:])
|
suffix, _ := strconv.Atoi(pkt.SemaphoreID[len(pkt.SemaphoreID)-1:])
|
||||||
s.server.semaphore[SemaphoreID] = &Semaphore{
|
s.server.semaphore[SemaphoreID] = &Semaphore{
|
||||||
id_semaphore: pkt.SemaphoreID,
|
id_semaphore: pkt.SemaphoreID,
|
||||||
|
|||||||
@@ -76,18 +76,17 @@ type Server struct {
|
|||||||
|
|
||||||
type Raviente struct {
|
type Raviente struct {
|
||||||
sync.Mutex
|
sync.Mutex
|
||||||
|
id uint16
|
||||||
register []uint32
|
register []uint32
|
||||||
state []uint32
|
state []uint32
|
||||||
support []uint32
|
support []uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewRaviente() *Raviente {
|
func (s *Server) resetRaviente() {
|
||||||
raviente := &Raviente{
|
s.raviente.id = s.raviente.id + 1
|
||||||
register: make([]uint32, 30),
|
s.raviente.register = make([]uint32, 30)
|
||||||
state: make([]uint32, 30),
|
s.raviente.state = make([]uint32, 30)
|
||||||
support: make([]uint32, 30),
|
s.raviente.support = make([]uint32, 30)
|
||||||
}
|
|
||||||
return raviente
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) GetRaviMultiplier() float64 {
|
func (s *Server) GetRaviMultiplier() float64 {
|
||||||
@@ -158,7 +157,11 @@ func NewServer(config *Config) *Server {
|
|||||||
semaphoreIndex: 7,
|
semaphoreIndex: 7,
|
||||||
discordBot: config.DiscordBot,
|
discordBot: config.DiscordBot,
|
||||||
name: config.Name,
|
name: config.Name,
|
||||||
raviente: NewRaviente(),
|
raviente: &Raviente{
|
||||||
|
register: make([]uint32, 30),
|
||||||
|
state: make([]uint32, 30),
|
||||||
|
support: make([]uint32, 30),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mezeporta
|
// Mezeporta
|
||||||
|
|||||||
Reference in New Issue
Block a user