Re: [server regulator]CloudyServ 0.982-X3 Public Release [message #484766 is a reply to message #484732] |
Mon, 02 December 2013 06:07 |
|
Xpert
Messages: 1588 Registered: December 2005 Location: New York City
Karma:
|
General (1 Star) |
|
|
ExEric3 wrote on Sat, 30 November 2013 14:03 |
Xpert wrote on Sat, 30 November 2013 19:27 |
This is almost similar to what I do. When gamelog data starts coming in, it overloads the socket and sometimes skips lines.
|
Can you try this code above? Maybe this will works.
|
You're clearly not understanding that I just said it's a similar method and that I already stated that the socket gets overloaded no matter how I write it.
Gen_Blacky wrote on Sat, 30 November 2013 20:13 | I tried this without any noticeable problems. Probably should do it another way with the binvar and endline 0x0
Toggle Spoiler
alias TCPLogConnect {
sockopen TCPLog 127.0.0.1 7025
echo -s Status $Sock(TCPLog).status
}
alias TCPLogDisconnect {
sockclose TCPLog
}
on *:sockopen:TCPLog*:{
echo -s Connection
if ($sockerr) {
echo -s Unable to connect $Sock(TCPLOG).wsmsg
}
}
on *:sockread:TCPLog*:{
if ($sockerr) {
return
}
sockread -n &TCPLogRead
if ($sockbr == 0) {
return
}
var %Offset = 0
var %Len = $bvar(&TCPLogRead,0)
if (%Len < 8) {
return
}
if ($bvar(&TCPLogRead,1) == 0) {
%Offset = 1
}
var %ID = $bvar(&TCPLogRead,$calc(%Offset + 1),3).text
var %Message = $bvar(&TCPLogRead,$calc(%Offset + 15),%Len).text
if ( %Message ) {
if (%ID == 000) {
echo -s %ID %Message
}
else if (%ID == 001) {
echo -s %ID %Message
}
else if (%ID == 002) {
echo -s %ID %Message
}
}
}
|
You probably won't notice the problems, but do something like building info. Like when a flamer is damaging a building, the socket is being flooded with the gamelog damage events and then when the building gets destroyed (especially 2 at the same time), the building info won't update as if it skipped the kills.
Or there will be random moments when a player create event didn't go through the socket, kill messages involving the player won't show their name because it failed the grab the gamelog data.
It got frustrating. IRC simply can't handle that much data flooding the TCP.
Creator of NetGuard, an IRC network regulator.
Developer of the CloudyServ 0.982-X project.
Developer of the CloudyServ Ren-X bot.
Part time streamer - https://twitch.tv/gg_wonder
|
|
|