ZankuR Director
Cantidad de envíos : 107 Fecha de inscripción : 19/07/2013
| Tema: Sistema Global con anti Flodeo! Dom Ago 11, 2013 1:24 pm | |
| •El sistema consiste, que por medio del comando "/GLOBAL MENSAJE", se publique un mensaje/texto en consola, visible para todos los usuarios conectados al servidor. Por ejemplo, si introducimos "/GLOBAL Hola!", la consola escribirá : "Agushh> Hola!". •También el sistema posee un Anti Flodeo, al enviar el mensaje una variable boleana (se puede hacer con un byte pero bueno) pasa a verdadera [TRUE], y por medio del timer, controla el intervalo. Para aclarar, no se agrega ningún timer, se utiliza uno ya existente que es el GameTimer. Empezemos... SERVER Crear un nuevo módulo con el nombre de mod_Global y poner dentro : - Código:
-
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 'Author: J.A.O (Juan Agu$tín Oliva) 'mod_Global(global.bas) ' -- ' -- ' -- ' - - - ' - - - ' - - ' - ' 'MODULO FUNCTION ; Sistema Global Por ' Users '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Option Explicit Private Const ORO_GLOBAL = 7000 'Modificar acá la cantidad de oro requerido para el global 'jao Public Type tUserGlobal SendMSGGlobal As Boolean Intervalo As Byte End Type 'jao Public Sub SendMenssageGlobal(ByVal UserIndex As Integer, ByVal agush As String) If EsNewbie(UserIndex) Then Call WriteConsoleMsg(UserIndex, "No es permitido utilizar el global si eres newbie.", FontTypeNames.FONTTYPE_INFO) ElseIf UserList(UserIndex).Stats.GLD < ORO_GLOBAL Then Call WriteConsoleMsg(UserIndex, "No es permitido utilizar el global si no tienes al menos " & oro_global & " monedas de oros!.", FontTypeNames.FONTTYPE_INFO) ElseIf agush = "" Then Call WriteConsoleMsg(UserIndex, "Escriba un mensaje!.", FontTypeNames.FONTTYPE_INFO) ElseIf UserList(UserIndex).flags.Silenciado = 1 Then 'si esta silenciado.. mmm, by JAO! Call WriteConsoleMsg(UserIndex, "¡Te encuentras silenciado!.", FontTypeNames.FONTTYPE_INFO) ElseIf UserList(UserIndex).SendMSGGlobal = True Then 'esto es para que no flodeen Call WriteConsoleMsg(UserIndex, "Debes esperar unos segundos para poder enviar otro mensaje...", FontTypeNames.FONTTYPE_INFO) Else Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("" & UserList(UserIndex).name & ": " & agush & " ", FontTypeNames.FONTTYPE_INFOBOLD)) UserList(UserIndex).UserGlobal.SendMSGGlobal = True userlist(userindex).stats.gld = userlist(userindex).stats.gld - ORO_GLOBAL Call WriteUpdateUserStats(UserIndex) End If End Sub Buscar - Código:
-
Private Sub HandleOnline(ByVal UserIndex As Integer) Y después del End Sub de ese mismo Sub poner : - Código:
-
Private Sub HandleGlobalUser(ByVal UserIndex As Integer) If UserList(UserIndex).incomingData.length < 3 Then Err.Raise UserList(UserIndex).incomingData.NotEnoughDataErrCode Exit Sub End If On Error GoTo Errhandler With UserList(UserIndex) Dim buffer As New clsByteQueue Call buffer.CopyBuffer(.incomingData) Call buffer.ReadByte Dim msjagush As String NumDefensor = buffer.ReadASCIIString() Call mod_Global.SendMenssageGlobal(UserIndex, msjagush) Call .incomingData.CopyBuffer(buffer) End With Errhandler: Dim error As Long error = Err.Number On Error GoTo 0 Set buffer = Nothing If error <> 0 Then _ Err.Raise error End Sub Buscar - Código:
-
Public Type User Y debajo poner : - Código:
-
UserGlobal As tUserGlobal Ahora vamos al FRMMAIN del servidor, y buscamos el timer "GameTimer", en ese mismo timer buscamos : - Código:
-
If .flags.Ceguera = 1 Or .flags.Estupidez Then Call EfectoCegueEstu(iUserIndex) Y debajo ponemos : - Código:
-
If Not .UserGlobal.SendMSGGlobal = True Then .UserGlobal.Intervalo = 0 'anti flodeo del global If .SendMSGGlobal = True Then .UserGlobal.Intervalo = .UserGlobal + 1 If .UserGlobal.Intervalo = 250 Then .UserGlobal.SendMSGGlobal = False End If End If Buscar en el enum ClientPacketid - Código:
-
Online '/ONLINE Y debajo poner - Código:
-
GlobalUser Buscar - Código:
-
Case ClientPacketID.Online '/ONLINE Call HandleOnline(UserIndex) debajo poner - Código:
-
Case ClientPacketID.GlobalUser Call HandleGlobalUser(UserIndex) Ok, ahora pasamos al código del CLIENTE. Buscar en el Enum ClientPacketID - Código:
-
Online debajo poner - Código:
-
UserGlobal Busca : - Código:
-
Public Sub WriteOnline() '*************************************************** 'Author: Juan Martín Sotuyo Dodero (Maraxus) 'Last Modification: 05/17/06 'Writes the "Online" message to the outgoing data buffer '*************************************************** Call outgoingData.WriteByte(ClientPacketID.Online) End Sub debajo poner - Código:
-
Public Sub WriteGlobalUser(ByVal JAO As String) 'Author : Juan Agustín Oliva (JAO) 'Last Modification : None 'Comments: KB ! xD Call outgoingData.WriteByte(ClientPacketID.UserGlobal) Call outgoingData.WriteASCIIString(JAO) '[/jao] End Sub Buscar - Código:
-
Case "/ONLINE" Call WriteOnline Debajo poner - Código:
-
Case "/GLOBAL" If CantidadArgumentos > 0 Then Call WriteGlobalUser(ArgumentosRaw) Else Call ShowConsoleMsg("Escriba un mensaje para poder enviarlo por medio del global!.") End If Nose Que fuente es ya que igual lo tenia en un block de notas saludos | |
|
Trogclodita Director de Tropas
Cantidad de envíos : 144 Fecha de inscripción : 18/07/2013
| Tema: Re: Sistema Global con anti Flodeo! Dom Ago 11, 2013 3:33 pm | |
| Todos los tenías en block de notas? ...
Fuente GS ZONE.
Gracias por traer el aporte al foro. D: | |
|
ZankuR Director
Cantidad de envíos : 107 Fecha de inscripción : 19/07/2013
| Tema: Re: Sistema Global con anti Flodeo! Dom Ago 11, 2013 4:21 pm | |
| Si Jajaja porque hace 4 o 3 Meses Atras agarraba y lo pegaba en block de notas y lo iva modificando y despues lo ponia desde el vb pero no me acuerdo de que fuente era sino dejaria xd | |
|
Contenido patrocinado
| Tema: Re: Sistema Global con anti Flodeo! | |
| |
|