diff --git a/AOprivateServer.pbp b/AOprivateServer.pbp
index 59b10cc..f427e18 100644
--- a/AOprivateServer.pbp
+++ b/AOprivateServer.pbp
@@ -7,7 +7,7 @@
@@ -20,15 +20,15 @@
-
+
-
+
-
+
@@ -41,8 +41,8 @@
sD.ico
-
-
+
+
@@ -76,8 +76,8 @@
owner.ico
-
-
+
+
diff --git a/main.pb b/main.pb
index ff77f67..5099b9b 100644
--- a/main.pb
+++ b/main.pb
@@ -1105,20 +1105,21 @@ Procedure KickBan(kick$,param$,action,*usagePointer.Client)
Clients()\ignore=0
actionn$="undignored"
akck+1
- ResetList(Actions())
- While NextElement(Actions())
- If Actions()\IP=Clients()\IP And Actions()\type=#CIGNORE
- DeleteElement(Actions())
- EndIf
- Wend
+
+ Case #SILENCE
+ Clients()\silence=1
+ actionn$="ignored"
+ akck+1
+
+ Case #UNSILENCE
+ Clients()\silence=0
+ actionn$="unsilenced"
+ akck+1
Case #UNDJ
Clients()\ignoremc=1
actionn$="undj'd"
akck+1
- AddElement(Actions())
- Actions()\IP=Clients()\IP
- Actions()\type=#UNDJ
Case #DJ
Clients()\ignoremc=0
@@ -1480,6 +1481,7 @@ Procedure HandleAOCommand(ClientID)
Case "/bg"
If *usagePointer\perm
bgcomm$=Mid(ctparam$,5)
+ Debug bgcomm$
Channels(*usagePointer\area)\bg=bgcomm$
Sendtarget("Area"+Str(*usagePointer\area),"BN#"+bgcomm$+"#%",*usagePointer)
EndIf
@@ -1488,8 +1490,10 @@ Procedure HandleAOCommand(ClientID)
npos$=Mid(ctparam$,6)
If npos$="def" Or npos$="pro" Or npos$="hlp" Or npos$="hld" Or npos$="wit" Or npos$="jud"
*usagePointer\pos=npos$
+ SendTarget(Str(ClientID),"CT#$HOST#Your position is now: "+*usagePointer\pos+"#%",Server)
Else
*usagePointer\pos=""
+ SendTarget(Str(ClientID),"CT#$HOST#You're back in the default position#%",Server)
EndIf
Case "/g"
@@ -1660,11 +1664,13 @@ Procedure HandleAOCommand(ClientID)
Case "/skip"
If *usagePointer\perm
*usagePointer\skip=1
+ SendTarget(Str(ClientID),"CT#$HOST#You can now skip others#%",Server)
EndIf
Case "/noskip"
If *usagePointer\perm
*usagePointer\skip=0
+ SendTarget(Str(ClientID),"CT#$HOST#You can no longer skip others#%",Server)
EndIf
Case "/toggle"
@@ -1934,6 +1940,18 @@ Procedure HandleAOCommand(ClientID)
SendTarget(Str(ClientID),"CT#$HOST#unmuted "+Str(akck)+" clients#%",Server)
EndIf
+ Case "/silence"
+ If *usagePointer\perm>=#MOD
+ akck=KickBan(Mid(ctparam$,10),StringField(ctparam$,3," "),#SILENCE,*usagePointer)
+ SendTarget(Str(ClientID),"CT#$HOST#silenced "+Str(akck)+" clients#%",Server)
+ EndIf
+
+
+ Case "/unsilence"
+ If *usagePointer\perm>=#MOD
+ akck=KickBan(Mid(ctparam$,12),StringField(ctparam$,3," "),#UNSILENCE,*usagePointer)
+ SendTarget(Str(ClientID),"CT#$HOST#unsilenced "+Str(akck)+" clients#%",Server)
+ EndIf
Case "/undj"
If *usagePointer\perm>=#MOD
@@ -2626,7 +2644,7 @@ Procedure Network(var)
Case #PB_NetworkEvent_Data ;- Received Data
*usagePointer.Client=FindMapElement(Clients(),Str(ClientID))
If *usagePointer
- length=ReceiveNetworkData(ClientID,*Buffer,1024)
+ length=ReceiveNetworkData(ClientID,*Buffer,2048)
If length
rawreceive$=PeekS(*Buffer,length)
Debug rawreceive$
@@ -2694,7 +2712,8 @@ Procedure Network(var)
sc=1
While StringField(rawreceive$,sc,"%")<>""
- subcommand$=ValidateChars(StringField(rawreceive$,sc,"%")+"%")
+ subcommand$=ValidateChars(StringField(rawreceive$,sc,"%"))
+ Debug subcommand$
length=Len(subcommand$)
If ExpertLog
@@ -2761,7 +2780,7 @@ CompilerElse
success=CreateNetworkServer(0,Port,#PB_Network_TCP)
If success
- *Buffer = AllocateMemory(1024)
+ *Buffer = AllocateMemory(2048)
WriteLog("Server started",Server)
@@ -2799,7 +2818,7 @@ CompilerEndIf
End
; IDE Options = PureBasic 5.31 (Windows - x86)
-; CursorPosition = 2535
-; FirstLine = 2517
+; CursorPosition = 1483
+; FirstLine = 1466
; Folding = ------
; EnableXP
\ No newline at end of file
diff --git a/serverD.exe b/serverD.exe
index 23fb095..79f6a21 100644
Binary files a/serverD.exe and b/serverD.exe differ
diff --git a/serverDco.exe b/serverDco.exe
index 7a906cc..f468042 100644
Binary files a/serverDco.exe and b/serverDco.exe differ
diff --git a/server_shared.pb b/server_shared.pb
index 8d6f886..8e13ee6 100644
--- a/server_shared.pb
+++ b/server_shared.pb
@@ -535,10 +535,13 @@ Procedure SendChatMessage(*ntmes.ChatMessage,*seUser.Client)
EndIf
Channels(*seUser\area)\waitstart=ElapsedMilliseconds()
Channels(*seUser\area)\waitdur=Len(*ntmes\message)*40
+ If Channels(*seUser\area)\waitdur>600
+ Channels(*seUser\area)\waitdur=1
+ EndIf
LockMutex(ListMutex)
ResetMap(Clients())
While NextMapElement(Clients())
- If Clients()\area=*seUser\area
+ If Clients()\area=*seUser\area And (*seUser\silence=0 Or *seUser=Clients())
Select Clients()\type
CompilerIf #WEB
Case #WEBSOCKET
@@ -613,7 +616,7 @@ Procedure TrackWait(a)
Until LoopMusic=0
EndProcedure
; IDE Options = PureBasic 5.31 (Windows - x86)
-; CursorPosition = 435
-; FirstLine = 417
+; CursorPosition = 539
+; FirstLine = 503
; Folding = ------
; EnableXP
\ No newline at end of file
diff --git a/serverd.txt b/serverd.txt
index 0be9285..7ab2de4 100644
--- a/serverd.txt
+++ b/serverd.txt
@@ -1,5 +1,4 @@
[Version]
-Compile=1377
-Build=152
-0.0.0.0
- WD-WX21EA45MECN
\ No newline at end of file
+Compile=1362
+Build=153
+0.0.0.0
\ No newline at end of file
diff --git a/shared_headers.pb b/shared_headers.pb
index fa35120..95cd0cb 100644
--- a/shared_headers.pb
+++ b/shared_headers.pb
@@ -108,6 +108,7 @@ Structure Client
type.b
perm.w
ignore.b
+ silence.b
ignoremc.b
hack.b
gimp.b
@@ -172,6 +173,8 @@ Enumeration
#UNMUTE
#CIGNORE
#UNIGNORE
+ #SILENCE
+ #UNSILENCE
#UNDJ
#DJ
#GIMP
@@ -180,6 +183,6 @@ Enumeration
#MOVE
EndEnumeration
; IDE Options = PureBasic 5.31 (Windows - x86)
-; CursorPosition = 71
-; FirstLine = 54
+; CursorPosition = 176
+; FirstLine = 129
; EnableXP
\ No newline at end of file
diff --git a/version.txt b/version.txt
index eb6eb3d..7ab2de4 100644
--- a/version.txt
+++ b/version.txt
@@ -1,4 +1,4 @@
[Version]
-Compile=1377
-Build=152
+Compile=1362
+Build=153
0.0.0.0
\ No newline at end of file