mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-14 07:55:33 +01:00
add player reload command
This commit is contained in:
@@ -165,6 +165,66 @@ func handleMsgSysCastBinary(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
|
|
||||||
fmt.Printf("Got chat message: %+v\n", chatMessage)
|
fmt.Printf("Got chat message: %+v\n", chatMessage)
|
||||||
|
|
||||||
|
// Flush all objects and users and reload
|
||||||
|
if strings.HasPrefix(chatMessage.Message, "!reload") {
|
||||||
|
sendServerChatMessage(s, "Reloading players...")
|
||||||
|
var temp mhfpacket.MHFPacket
|
||||||
|
deleteNotif := byteframe.NewByteFrame()
|
||||||
|
for _, object := range s.stage.objects {
|
||||||
|
if object.ownerCharID == s.charID {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
temp = &mhfpacket.MsgSysDeleteObject{ObjID: object.id}
|
||||||
|
deleteNotif.WriteUint16(uint16(temp.Opcode()))
|
||||||
|
temp.Build(deleteNotif, s.clientContext)
|
||||||
|
}
|
||||||
|
for _, session := range s.server.sessions {
|
||||||
|
if s == session {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
temp = &mhfpacket.MsgSysDeleteUser{CharID: session.charID}
|
||||||
|
deleteNotif.WriteUint16(uint16(temp.Opcode()))
|
||||||
|
temp.Build(deleteNotif, s.clientContext)
|
||||||
|
}
|
||||||
|
deleteNotif.WriteUint16(0x0010)
|
||||||
|
s.QueueSend(deleteNotif.Data())
|
||||||
|
time.Sleep(500 * time.Millisecond)
|
||||||
|
reloadNotif := byteframe.NewByteFrame()
|
||||||
|
for _, session := range s.server.sessions {
|
||||||
|
if s == session {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
temp = &mhfpacket.MsgSysInsertUser{CharID: session.charID}
|
||||||
|
reloadNotif.WriteUint16(uint16(temp.Opcode()))
|
||||||
|
temp.Build(reloadNotif, s.clientContext)
|
||||||
|
for i := 0; i < 3; i++ {
|
||||||
|
temp = &mhfpacket.MsgSysNotifyUserBinary{
|
||||||
|
CharID: session.charID,
|
||||||
|
BinaryType: uint8(i + 1),
|
||||||
|
}
|
||||||
|
reloadNotif.WriteUint16(uint16(temp.Opcode()))
|
||||||
|
temp.Build(reloadNotif, s.clientContext)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, obj := range s.stage.objects {
|
||||||
|
if obj.ownerCharID == s.charID {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
temp = &mhfpacket.MsgSysDuplicateObject{
|
||||||
|
ObjID: obj.id,
|
||||||
|
X: obj.x,
|
||||||
|
Y: obj.y,
|
||||||
|
Z: obj.z,
|
||||||
|
Unk0: 0,
|
||||||
|
OwnerCharID: obj.ownerCharID,
|
||||||
|
}
|
||||||
|
reloadNotif.WriteUint16(uint16(temp.Opcode()))
|
||||||
|
temp.Build(reloadNotif, s.clientContext)
|
||||||
|
}
|
||||||
|
reloadNotif.WriteUint16(0x0010)
|
||||||
|
s.QueueSend(reloadNotif.Data())
|
||||||
|
}
|
||||||
|
|
||||||
// Set account rights
|
// Set account rights
|
||||||
if strings.HasPrefix(chatMessage.Message, "!rights") {
|
if strings.HasPrefix(chatMessage.Message, "!rights") {
|
||||||
var v uint32
|
var v uint32
|
||||||
|
|||||||
Reference in New Issue
Block a user