Agus Admin
Mensajes : 69 Fecha de inscripción : 01/07/2008
| Tema: Cartel de invisibilidad Jue Jul 03, 2008 6:05 am | |
| Este código muestra un mensaje en la pantalla del tiempo que le resta al hechizo de invisibilidad, como en el servidor Tierras Perdidas, nada más que este código es enviado por el servidor en el tiempo que corresponde, por lo tanto si uno está invisible durante el tiempo que el servidor está pausado (por ejemplo, en un WorldSave), el tiempo estará sincronizado con el del servidor y no informará de valores inexactos. Primera parte: SERVIDOR 0.11.5 En el módulo General (General.bas), reemplazamos el Sub EfectoInvisibilidad por el siguiente: - Código:
-
Public Sub EfectoInvisibilidad(ByVal UserIndex As Integer) Dim TiempoTranscurrido As Long If UserList(UserIndex).Counters.Invisibilidad < IntervaloInvisible Then UserList(UserIndex).Counters.Invisibilidad = UserList(UserIndex).Counters.Invisibilidad + 1 TiempoTranscurrido = (UserList(UserIndex).Counters.Invisibilidad * frmMain.GameTimer.Interval) If TiempoTranscurrido Mod 1000 = 0 Or TiempoTranscurrido = 40 Then If TiempoTranscurrido = 40 Then Call SendData(SendTarget.ToIndex, UserIndex, 0, "INVI" & ((IntervaloInvisible * frmMain.GameTimer.Interval) / 1000)) Else Call SendData(SendTarget.ToIndex, UserIndex, 0, "INVI" & (((IntervaloInvisible * frmMain.GameTimer.Interval) / 1000) - (TiempoTranscurrido / 1000))) End If End If Else UserList(UserIndex).Counters.Invisibilidad = 0 UserList(UserIndex).flags.Invisible = 0 If UserList(UserIndex).flags.Oculto = 0 Then Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Has vuelto a ser visible." & FONTTYPE_INFO) Call SendData(SendTarget.ToMap, 0, UserList(UserIndex).Pos.Map, "NOVER" & UserList(UserIndex).Char.CharIndex & ",0") Call SendData(SendTarget.ToIndex, UserIndex, 0, "INVI0") End If End If End Sub
Segunda parte: CLIENTE 0.11.5 En el módulo Mod_Declaraciones (Declares.bas), al final del mismo, colocamos: - Código:
-
Public CartelInvisibilidad As Integer
Luego, en el módulo Mod_TCP (TCP.bas), buscamos: - Código:
-
sData = UCase$(Rdata)
Y justo abajo de esa línea colocamos lo siguiente: - Código:
-
If Left$(sData, 4) = "INVI" Then CartelInvisibilidad = Right$(sData, Len(sData) - 4)
Finalmente, en el módulo Mod_TileEngine (TileEngine.bas), buscamos: - Código:
-
If IScombate Then Call Dialogos.DrawText(260, 260, "MODO COMBATE", vbRed)
Y justo abajo de esa línea colocamos lo siguiente: - Código:
-
If CartelInvisibilidad Then Call Dialogos.DrawText(260, 520, CartelInvisibilidad & " segundos restantes de Invisibilidad", vbCyan)
| |
|