Skip to content

Commit

Permalink
Merge pull request #651 from Gapo2055/Cambios-2
Browse files Browse the repository at this point in the history
Captura a la bandera e Info de la puerta del ducto o drenaje.
  • Loading branch information
RecoX authored Oct 28, 2024
2 parents 09b33c5 + 97c7799 commit 5b30086
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 22 deletions.
9 changes: 8 additions & 1 deletion Codigo/Acciones.bas
Original file line number Diff line number Diff line change
Expand Up @@ -874,13 +874,20 @@ Sub AccionParaPuerta(ByVal Map As Integer, ByVal X As Byte, ByVal Y As Byte, ByV

104 puerta = ObjData(MapData(Map, X, Y).ObjInfo.ObjIndex)
106 If puerta.Llave = 1 And Not SinDistancia Then
108 Call WriteConsoleMsg(UserIndex, "La puerta esta cerrada con llave.", e_FontTypeNames.FONTTYPE_INFO)
If puerta.GrhIndex = 11445 Or puerta.GrhIndex = 11444 Or puerta.GrhIndex = 59878 Or puerta.GrhIndex = 59877 Then
Call WriteConsoleMsg(UserIndex, "Al parecer, alguien cerró esta puerta. Debe haber algún interruptor por algún lado...", e_FontTypeNames.FONTTYPE_INFO)
Else
Call WriteConsoleMsg(UserIndex, "La puerta esta cerrada con llave.", e_FontTypeNames.FONTTYPE_INFO)
End If
Exit Sub
End If

110 If puerta.Cerrada = 1 Then 'Abre la puerta
112 MapData(Map, X, Y).ObjInfo.ObjIndex = puerta.IndexAbierta
114 Call BloquearPuerta(Map, X, Y, False)
If puerta.GrhIndex = 11445 Or puerta.GrhIndex = 11444 Or puerta.GrhIndex = 59878 Or puerta.GrhIndex = 59877 Then
Call WriteConsoleMsg(UserIndex, "Has abierto la compuerta del ducto.", e_FontTypeNames.FONTTYPE_INFO)
End If

Else 'Cierra puerta
116 MapData(Map, X, Y).ObjInfo.ObjIndex = puerta.IndexCerrada
Expand Down
8 changes: 4 additions & 4 deletions Codigo/ModCaptura.bas
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,16 @@ Attribute VB_Name = "ModCaptura"
Option Explicit


Public Const CAPTURA_TIEMPO_ESPERA = 180 'Tiempo que dura la inscripcion
Public Const CAPTURA_TIEMPO_ESPERA = 90 'Tiempo que dura la inscripcion

#If DEBUGGING Then
Public Const CAPTURA_TIEMPO_INICIO_RONDA = 10 '60 'Tiempo hasta que se inicia la ronda
#Else
Public Const CAPTURA_TIEMPO_INICIO_RONDA = 60 '60 'Tiempo hasta que se inicia la ronda
#End If
Public Const CAPTURA_TIEMPO_BANDERA = 10 'Tiempo que tiene que estar el user con la bandera en la base
Public Const CAPTURA_TIEMPO_MUERTE = 7 'Tiempo que tarda para poder revivir cuando muere
Public Const CAPTURA_TIEMPO_POR_MUERTE = 3 'Multiplicador de tiempo x veces que murio
Public Const CAPTURA_TIEMPO_BANDERA = 7 'Tiempo que tiene que estar el user con la bandera en la base
Public Const CAPTURA_TIEMPO_MUERTE = 5 'Tiempo que tarda para poder revivir cuando muere
Public Const CAPTURA_TIEMPO_POR_MUERTE = 2 'Multiplicador de tiempo x veces que murio

Public Const MAP_SALA_ESPERA As Integer = 278
Public Const MAP_NEUTRAL As Integer = 276
Expand Down
11 changes: 11 additions & 0 deletions Codigo/Modulo_UsUaRiOs.bas
Original file line number Diff line number Diff line change
Expand Up @@ -3338,6 +3338,17 @@ Public Function CanAttackUser(ByVal AttackerIndex As Integer, ByVal AttackerVers
CanAttackUser = eSameTeam
Exit Function
End If


' Nueva verificación específica para Captura la Bandera
If UserList(attackerIndex).flags.jugando_captura = 1 And UserList(TargetIndex).flags.jugando_captura = 1 Then
If UserList(attackerIndex).flags.CurrentTeam = UserList(TargetIndex).flags.CurrentTeam Then
Call WriteConsoleMsg(attackerIndex, "¡No puedes atacar a miembros de tu propio equipo!", e_FontTypeNames.FONTTYPE_INFO)
CanAttackUser = eSameTeam
Exit Function
End If
End If

Dim T As e_Trigger6

'Estamos en una Arena? o un trigger zona segura?
Expand Down
39 changes: 22 additions & 17 deletions Codigo/clsCaptura.cls
Original file line number Diff line number Diff line change
Expand Up @@ -119,10 +119,10 @@ Public Sub PasarSegundo()
ElseIf tiempo_espera = 0 Then
If participantes.Count < max_participantes / 2 Then
reintentos = reintentos + 1
If reintentos >= 5 Then
If reintentos >= 2 Then
Call finalizarCaptura(-2)
Else
tiempo_espera = 60
tiempo_espera = 30
Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Eventos» Se extendieron las inscripciones por falta de participantes.", e_FontTypeNames.FONTTYPE_GUILD))
End If
Else
Expand Down Expand Up @@ -490,10 +490,22 @@ Public Sub finalizarCaptura(Optional Team As Integer = -1)
ElseIf Team = 0 Then 'Hubo empate
Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Eventos» ¡El evento de captura la bandera ha terminado en empate!.", e_FontTypeNames.FONTTYPE_GUILD))
Else

'Hay premios???

Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Eventos» ¡El evento de captura la bandera ha terminado! Ganador el equipo " & colorEquipo(team) & ".", e_FontTypeNames.FONTTYPE_GUILD))
' La recompensa para cada ganador será su inscripción de vuelta + el precio de inscripción de un perdedor
Dim recompensa As Long
recompensa = precio * 2 ' Tu inscripción + la inscripción de un perdedor

' Entregamos premio al equipo ganador
For Each participante In participantes
If participante.IsValid Then
If participante.Team = Team Then
UserList(participante.PlayerIndex).Stats.GLD = UserList(participante.PlayerIndex).Stats.GLD + recompensa
Call WriteUpdateGold(participante.PlayerIndex)
Call WriteConsoleMsg(participante.PlayerIndex, "¡Has recuperado tu inscripción y ganado " & PonerPuntos(precio) & " monedas de oro adicionales por ganar el evento!", e_FontTypeNames.FONTTYPE_GUILD)
End If
End If
Next participante

Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Eventos> ¡El evento de captura la bandera ha terminado! Ganador el equipo " & colorEquipo(Team) & ".", e_FontTypeNames.FONTTYPE_GUILD))
End If


Expand All @@ -516,17 +528,10 @@ Public Sub finalizarRonda(ByVal Team As Byte)


rondasGanadas(Team) = rondasGanadas(Team) + 1
If ronda_actual >= cantidad_rondas Then
'Se termina la joda

If rondasGanadas(1) > rondasGanadas(2) Then
Team = 1
ElseIf rondasGanadas(2) > rondasGanadas(1) Then
Team = 2
Else
Team = 0
End If

Dim rondasParaGanar As Integer
rondasParaGanar = (cantidad_rondas \ 2) + 1 ' División entera + 1 (ejemplo: en mejor de 3, necesitas 2 victorias)

If rondasGanadas(Team) >= rondasParaGanar Then ' Si un equipo alcanza las rondas necesarias
Call finalizarCaptura(CInt(Team))
Else
Call iniciarRonda
Expand Down

0 comments on commit 5b30086

Please sign in to comment.