[APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Ir abajo

[APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Toyz el 23/2/2015, 1:00 pm

¿Como funciona?: es simple, con el comando /nuevot "number". /nuevot 1 serian 2 participantes "/nuevot4 sería 16 participantes así van probando ustedes.
Premio 1kk , si quieren editar eso solo me avisan.

Creado hecho por mi desde 0.

En servidor.

Buscamos:

Código:
Ping                    '/PING

Abajo:
Código:
Torneo

Buscamos:
Código:
Case ClientPacketID.Ping                    '/PING
            Call HandlePing(UserIndex)

Abajo:

Código:
Case ClientPacketID.Torneo
        UserList(UserIndex).incomingData.ReadByte
         
            Select Case UserList(UserIndex).incomingData.PeekByte()
         
            Case TorneoPacketID.ATorneo
                Call HandleArrancaTorneo(UserIndex)
 
            Case TorneoPacketID.CTorneo
                Call HandleCancelaTorneo(UserIndex)
             
            Case TorneoPacketID.PTorneo
                Call HandleParticipar(UserIndex)
             
            End Select

Buscamos:
Código:
Public Enum FontTypeNames

Arriba:
Código:
Private Enum TorneoPacketID
    ATorneo                '/ARRANCARTORNEO
    CTorneo                '/CANCELART
    PTorneo                '/PARTICIPAR
End Enum

Al final del modulo protocol.bas
Código:
 
Public Sub HandleArrancaTorneo(UserIndex As Integer)
    With UserList(UserIndex)
        Call .incomingData.ReadByte
        Dim Torneos As Byte
        Torneos = .incomingData.ReadByte()
        If .flags.Privilegios And (PlayerType.User Or PlayerType.Consejero Or PlayerType.SemiDios Or PlayerType.RoleMaster) Then Exit Sub
        If (Torneos > 0 And Torneos < 6) Then Call Torneos_Inicia(UserIndex, Torneos)
        Call LogGM(.name, .name & "ha arrancado un torneo.")
    End With
 
    End Sub
 
    Public Sub HandleCancelaTorneo(UserIndex As Integer)
 
    With UserList(UserIndex)
        Call .incomingData.ReadByte
        If .flags.Privilegios And (PlayerType.User Or PlayerType.Consejero Or PlayerType.SemiDios Or PlayerType.RoleMaster) Then Exit Sub
        Call LogGM(.name, .name & "ha cancelado un torneo.")
        Call Rondas_Cancela
    End With
    End Sub
 
    Public Sub HandleParticipar(UserIndex As Integer)
 
    With UserList(UserIndex)
        Call .incomingData.ReadByte
    If UserList(UserIndex).flags.Muerto = 1 Then
    Call WriteConsoleMsg(UserIndex, "¡Estás muerto!", FontTypeNames.FONTTYPE_INFO)
    Exit Sub
    End If
    Call Torneos_Entra(UserIndex)
    End With
 
    End Sub

Buscamos:
Código:
Type userflags

Abajo:
Código:
automatico As Boolean

Buscamos:
Código:
'<<Cerramos comercio seguro>>
        Call LimpiarComercioSeguro(UserIndex)

Abajo:
Código:
  If UserList(UserIndex).flags.Automatico = True Then
        Call Rondas_UsuarioMuere(UserIndex)
        End If

Buscamos:
Código:
 
If UserIndex = LastUser Then
        Do Until UserList(LastUser).flags.UserLogged
            LastUser = LastUser - 1
            If LastUser < 1 Then Exit Do
        Loop
    End If

Abajo:
Código:
    If UserList(UserIndex).flags.Automatico = True Then
    Call Rondas_UsuarioDesconecta(UserIndex)
    End If

Creamos un modulo con el nombre Torneo1vs1
Código:
Option Explicit
' Codigo: Torneos1vs1 100%
' Autor: Luciano de Tolosa / Nick servers-argentum: SXEX.
Public Torneo_Activo As Boolean
Public Torneo_Esperando As Boolean
Private Torneo_Rondas As Integer
Private Torneo_Luchadores() As Integer
 
Private Const mapatorneo As Integer = 289
' esquinas superior isquierda del ring
Private Const esquina1x As Integer = 38
Private Const esquina1y As Integer = 53
' esquina inferior derecha del ring
Private Const esquina2x As Integer = 65
Private Const esquina2y As Integer = 69
' Donde esperan los tios
Private Const esperax As Integer = 49
Private Const esperay As Integer = 22
' Mapa desconecta
Private Const mapa_fuera As Integer = 1
Private Const fueraesperay As Integer = 50
Private Const fueraesperax As Integer = 50
 ' estas son las pocisiones de las 2 esquinas de la zona de espera, en su mapa tienen que tener en la misma posicion las 2 esquinas. hecho por sxex
Private Const X1 As Integer = 37
Private Const X2 As Integer = 62
Private Const Y1 As Integer = 18
Private Const Y2 As Integer = 26
 
Sub Torneoauto_Cancela()
On Error GoTo errorh:
    If (Not Torneo_Activo And Not Torneo_Esperando) Then Exit Sub
    Torneo_Activo = False
    Torneo_Esperando = False
    Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Se canceló por falta de participantes.", FontTypeNames.FONTTYPE_GUILD))
    Dim i As Integer
    For i = LBound(Torneo_Luchadores) To UBound(Torneo_Luchadores)
                If (Torneo_Luchadores(i) <> -1) Then
                Dim NuevaPos As WorldPos
                  Dim FuturePos As WorldPos
                    FuturePos.Map = mapa_fuera
                    FuturePos.X = fueraesperax: FuturePos.Y = fueraesperay
                    Call ClosestLegalPos(FuturePos, NuevaPos)
                    If NuevaPos.X <> 0 And NuevaPos.Y <> 0 Then Call WarpUserChar(Torneo_Luchadores(i), NuevaPos.Map, NuevaPos.X, NuevaPos.Y, True)
                      UserList(Torneo_Luchadores(i)).flags.automatico = False
                End If
        Next i
errorh:
End Sub
Sub Rondas_Cancela()
On Error GoTo errorh
    If (Not Torneo_Activo And Not Torneo_Esperando) Then Exit Sub
    Torneo_Activo = False
    Torneo_Esperando = False
  Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Cancelado por un Game Master.", FontTypeNames.FONTTYPE_GUILD))
    Dim i As Integer
    For i = LBound(Torneo_Luchadores) To UBound(Torneo_Luchadores)
                If (Torneo_Luchadores(i) <> -1) Then
                        Dim NuevaPos As WorldPos
                  Dim FuturePos As WorldPos
                    FuturePos.Map = mapa_fuera
                    FuturePos.X = fueraesperax: FuturePos.Y = fueraesperay
                    Call ClosestLegalPos(FuturePos, NuevaPos)
                    If NuevaPos.X <> 0 And NuevaPos.Y <> 0 Then Call WarpUserChar(Torneo_Luchadores(i), NuevaPos.Map, NuevaPos.X, NuevaPos.Y, True)
                    UserList(Torneo_Luchadores(i)).flags.automatico = False
                End If
        Next i
errorh:
End Sub
Sub Rondas_UsuarioMuere(ByVal UserIndex As Integer, Optional Real As Boolean = True, Optional CambioMapa As Boolean = False)
On Error GoTo rondas_usuariomuere_errorh
        Dim i As Integer, Pos As Integer, j As Integer
        Dim combate As Integer, LI1 As Integer, LI2 As Integer
        Dim UI1 As Integer, UI2 As Integer
If (Not Torneo_Activo) Then
                Exit Sub
            ElseIf (Torneo_Activo And Torneo_Esperando) Then
                For i = LBound(Torneo_Luchadores) To UBound(Torneo_Luchadores)
                    If (Torneo_Luchadores(i) = UserIndex) Then
                        Torneo_Luchadores(i) = -1
                        Call WarpUserChar(UserIndex, mapa_fuera, fueraesperay, fueraesperax, True)
                        UserList(UserIndex).flags.automatico = False
                        Exit Sub
                    End If
                Next i
                Exit Sub
            End If
 
        For Pos = LBound(Torneo_Luchadores) To UBound(Torneo_Luchadores)
                If (Torneo_Luchadores(Pos) = UserIndex) Then Exit For
        Next Pos
 
        ' si no lo ha encontrado
        If (Torneo_Luchadores(Pos) <> UserIndex) Then Exit Sub
     
 '  Ojo con esta parte, aqui es donde verifica si el usuario esta en la posicion de espera del torneo, en estas cordenadas tienen que fijarse al crear su Mapa de torneos.
 
If UserList(UserIndex).Pos.X >= X1 And UserList(UserIndex).Pos.X <= X2 And UserList(UserIndex).Pos.Y >= Y1 And UserList(UserIndex).Pos.Y <= Y2 Then
Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> " & UserList(UserIndex).name & " Se fue del Torneo1vs1 mientras esperaba pelear", FontTypeNames.FONTTYPE_GUILD))
Call WarpUserChar(UserIndex, mapa_fuera, fueraesperax, fueraesperay, True)
UserList(UserIndex).flags.automatico = False
Torneo_Luchadores(Pos) = -1
Exit Sub
End If
 
        combate = 1 + (Pos - 1) \ 2
 
        'ponemos li1 y li2 (luchador index) de los que combatian
        LI1 = 2 * (combate - 1) + 1
        LI2 = LI1 + 1
 
        'se informa a la gente
        If (Real) Then
                Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> " & UserList(UserIndex).name & " Pierde el combate", FontTypeNames.FONTTYPE_GUILD))
        Else
                Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> " & UserList(UserIndex).name & " Se fue del combate", FontTypeNames.FONTTYPE_GUILD))
        End If
 
        'se le teleporta fuera si murio
        If (Real) Then
                Call WarpUserChar(UserIndex, mapa_fuera, fueraesperax, fueraesperay, True)
                UserList(UserIndex).flags.automatico = False
        ElseIf (Not CambioMapa) Then
           
                Call WarpUserChar(UserIndex, mapa_fuera, fueraesperax, fueraesperay, True)
                  UserList(UserIndex).flags.automatico = False
        End If
 
        'se le borra de la lista y se mueve el segundo a li1
        If (Torneo_Luchadores(LI1) = UserIndex) Then
                Torneo_Luchadores(LI1) = Torneo_Luchadores(LI2) 'cambiamos slot
                Torneo_Luchadores(LI2) = -1
        Else
                Torneo_Luchadores(LI2) = -1
        End If
 
    'si es la ultima ronda
    If (Torneo_Rondas = 1) Then
        Call WarpUserChar(Torneo_Luchadores(LI1), mapa_fuera, 51, 51, True)
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> " & UserList(UserIndex).name & " Pierde el combate", FontTypeNames.FONTTYPE_GUILD))
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Ganador del torneo: " & UserList(Torneo_Luchadores(LI1)).name, FontTypeNames.FONTTYPE_GUILD))
        UserList(Torneo_Luchadores(LI1)).Stats.GLD = UserList(Torneo_Luchadores(LI1)).Stats.GLD + 1000000
        Call WriteUpdateGold(Torneo_Luchadores(LI1))
        UserList(Torneo_Luchadores(LI1)).flags.automatico = False
        Torneo_Activo = False
     
        Exit Sub
    Else
        'a su compañero se le teleporta dentro, condicional por seguridad
        Call WarpUserChar(Torneo_Luchadores(LI1), mapatorneo, esperax, esperay, True)
    End If
 
             
        'si es el ultimo combate de la ronda
        If (2 ^ Torneo_Rondas = 2 * combate) Then
             
                Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Siguiente ronda", FontTypeNames.FONTTYPE_GUILD))
                Torneo_Rondas = Torneo_Rondas - 1
 
        'antes de llamar a la proxima ronda hay q copiar a los tipos
        For i = 1 To 2 ^ Torneo_Rondas
                UI1 = Torneo_Luchadores(2 * (i - 1) + 1)
                UI2 = Torneo_Luchadores(2 * i)
                If (UI1 = -1) Then UI1 = UI2
                Torneo_Luchadores(i) = UI1
        Next i
ReDim Preserve Torneo_Luchadores(1 To 2 ^ Torneo_Rondas) As Integer
        Call Rondas_Combate(1)
        Exit Sub
        End If
 
        'vamos al siguiente combate
        Call Rondas_Combate(combate + 1)
rondas_usuariomuere_errorh:
 
End Sub
 
 
 
Sub Rondas_UsuarioDesconecta(ByVal UserIndex As Integer)
On Error GoTo errorh
Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> " & UserList(UserIndex).name & " ha desconectado en Torneo1vs1, se le penaliza quitandoles 500.000 monedas de oro.", FontTypeNames.FONTTYPE_GUILD))
 If UserList(UserIndex).Stats.GLD >= 500000 Then
UserList(UserIndex).Stats.GLD = UserList(UserIndex).Stats.GLD - 500000
End If
Call Rondas_UsuarioMuere(UserIndex, False, False)
errorh:
End Sub
 
 
 
Sub Rondas_UsuarioCambiamapa(ByVal UserIndex As Integer)
On Error GoTo errorh
        Call Rondas_UsuarioMuere(UserIndex, False, True)
errorh:
End Sub
 
Sub torneos_auto(ByVal rondas As Integer)
On Error GoTo errorh
If (Torneo_Activo) Then
             
                Exit Sub
        End If
     
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo 1vs1> Torneo1vs1 de " & val(2 ^ rondas) & " Participantes, para participar pone el comando /PARTICIPAR - (No caen Items)", FontTypeNames.FONTTYPE_GUILD))
        Torneo_Rondas = rondas
        Torneo_Activo = True
        Torneo_Esperando = True
 
        ReDim Torneo_Luchadores(1 To 2 ^ rondas) As Integer
        Dim i As Integer
        For i = LBound(Torneo_Luchadores) To UBound(Torneo_Luchadores)
                Torneo_Luchadores(i) = -1
        Next i
errorh:
End Sub
 
Sub Torneos_Inicia(ByVal UserIndex As Integer, ByVal rondas As Integer)
On Error GoTo errorh
 
        If (Torneo_Activo) Then
                Call WriteConsoleMsg(UserIndex, "Ya hay un torneo en curso", FontTypeNames.FONTTYPE_GUILD)
                Exit Sub
        End If
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo 1vs1> Torneo1vs1 de " & val(2 ^ rondas) & " Participantes, para participar pone el comando /PARTICIPAR - (No caen Items)", FontTypeNames.FONTTYPE_GUILD))
 
        Torneo_Rondas = rondas
        Torneo_Activo = True
        Torneo_Esperando = True
 
        ReDim Torneo_Luchadores(1 To 2 ^ rondas) As Integer
        Dim i As Integer
        For i = LBound(Torneo_Luchadores) To UBound(Torneo_Luchadores)
                Torneo_Luchadores(i) = -1
        Next i
errorh:
End Sub
 
 
 
Sub Torneos_Entra(ByVal UserIndex As Integer)
On Error GoTo errorh
        Dim i As Integer
     
        If (Not Torneo_Activo) Then
                Call WriteConsoleMsg(UserIndex, "No hay ningún torneo en curso", FontTypeNames.FONTTYPE_INFO)
                Exit Sub
        End If
     
        If (Not Torneo_Esperando) Then
                Call WriteConsoleMsg(UserIndex, "Cupos llenos.", FontTypeNames.FONTTYPE_GUILD)
                Exit Sub
        End If
     
        For i = LBound(Torneo_Luchadores) To UBound(Torneo_Luchadores)
                If (Torneo_Luchadores(i) = UserIndex) Then
                        Call WriteConsoleMsg(UserIndex, "Ya estás dentro del torneo", FontTypeNames.FONTTYPE_GUILD)
                        Exit Sub
                End If
        Next i
 
        For i = LBound(Torneo_Luchadores) To UBound(Torneo_Luchadores)
        If (Torneo_Luchadores(i) = -1) Then
                Torneo_Luchadores(i) = UserIndex
                Dim NuevaPos As WorldPos
                  Dim FuturePos As WorldPos
                    FuturePos.Map = mapatorneo
                    FuturePos.X = esperax: FuturePos.Y = esperay
                    Call ClosestLegalPos(FuturePos, NuevaPos)
                 
                    If NuevaPos.X <> 0 And NuevaPos.Y <> 0 Then Call WarpUserChar(Torneo_Luchadores(i), NuevaPos.Map, NuevaPos.X, NuevaPos.Y, True)
                UserList(Torneo_Luchadores(i)).flags.automatico = True
               
                Call WriteConsoleMsg(UserIndex, "Has ingresado al torneo", FontTypeNames.FONTTYPE_GUILD)
              Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> El personaje " & UserList(UserIndex).name & " ingresó al Torneo1vs1.", FontTypeNames.FONTTYPE_GUILD))
                If (i = UBound(Torneo_Luchadores)) Then
                Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Comienza el torneo", FontTypeNames.FONTTYPE_GUILD))
                Torneo_Esperando = False
                Call Rondas_Combate(1)
   
                End If
                  Exit Sub
        End If
        Next i
errorh:
End Sub
 
 
Sub Rondas_Combate(combate As Integer)
On Error GoTo errorh
Dim UI1 As Integer, UI2 As Integer
    UI1 = Torneo_Luchadores(2 * (combate - 1) + 1)
    UI2 = Torneo_Luchadores(2 * combate)
 
    If (UI2 = -1) Then
        UI2 = Torneo_Luchadores(2 * (combate - 1) + 1)
        UI1 = Torneo_Luchadores(2 * combate)
    End If
 
    If (UI1 = -1) Then
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Combate anulado por la desconexión de uno de los dos participantes.", FontTypeNames.FONTTYPE_GUILD))
        If (Torneo_Rondas = 1) Then
            If (UI2 <> -1) Then
                Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Torneo terminado, ganador del torneo por eliminación " & UserList(UI2).name & ".", FontTypeNames.FONTTYPE_GUILD))
                UserList(UI2).flags.automatico = False
                ' dale_recompensa()
                Torneo_Activo = False
                Exit Sub
            End If
            Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> No hay ganador del evento por la desconexión de todos sus participantes.", FontTypeNames.FONTTYPE_GUILD))
            Exit Sub
        End If
        If (UI2 <> -1) Then _
            Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> El usuario " & UserList(UI2).name & " pasó a la siguiente ronda.", FontTypeNames.FONTTYPE_GUILD))
         
        If (2 ^ Torneo_Rondas = 2 * combate) Then
            Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Siguiente ronda.", FontTypeNames.FONTTYPE_GUILD))
            Torneo_Rondas = Torneo_Rondas - 1
            'antes de llamar a la proxima ronda hay q copiar a los tipos
            Dim i As Integer, j As Integer
            For i = 1 To 2 ^ Torneo_Rondas
                UI1 = Torneo_Luchadores(2 * (i - 1) + 1)
                UI2 = Torneo_Luchadores(2 * i)
                If (UI1 = -1) Then UI1 = UI2
                Torneo_Luchadores(i) = UI1
            Next i
            ReDim Preserve Torneo_Luchadores(1 To 2 ^ Torneo_Rondas) As Integer
            Call Rondas_Combate(1)
            Exit Sub
        End If
        Call Rondas_Combate(combate + 1)
        Exit Sub
    End If
    Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> " & UserList(UI1).name & " vs. " & UserList(UI2).name & ". Esquinas, Peleen", FontTypeNames.FONTTYPE_GUILD))
    Call WarpUserChar(UI1, mapatorneo, esquina1x, esquina1y, True)
    Call WarpUserChar(UI2, mapatorneo, esquina2x, esquina2y, True)
errorh:
End Sub

Cliente:

Buscamos:
Código:
Ping                    '/PING

Abajo:
Código:
Torneo 'Hecho por SXEX S-A

Buscamos:
Código:
Public Enum FontTypeNames

Abajo:
Código:
Private Enum TorneoPacketID
    ATorneo                'Hacer nuevo torneo
    CTorneo                'Cancelar nuevo torneo
    PTorneo                'Participar en un torneo
    'Hecho por Sxex S-A
End Enum


En el modulo Protocol ponen esto:

Código:
Public Sub WriteHacerT(ByVal Torneos As Byte)
'Hecho por SXEX S-A
    With outgoingData
    Call .WriteByte(ClientPacketID.Torneo)
    Call .WriteByte(TorneoPacketID.ATorneo)
    Call .WriteByte(Torneos)
    End With
End Sub
 
Public Sub WriteCancelarT()
'Hecho por SXEX S-A
    With outgoingData
    Call .WriteByte(ClientPacketID.Torneo)
    Call .WriteByte(TorneoPacketID.CTorneo)
    End With
End Sub
 
Public Sub WriteParticiparT()
'Hecho por SXEX S-A
    With outgoingData
    Call .WriteByte(ClientPacketID.Torneo)
    Call .WriteByte(TorneoPacketID.PTorneo)
    End With
End Sub

Buscamos:
Código:
Case "/MEDITAR"
                If UserMinMAN = UserMaxMAN Then Exit Sub
             
                If UserEstado = 1 Then 'Muerto
                    With FontTypes(FontTypeNames.FONTTYPE_INFO)
                        Call ShowConsoleMsg("¡¡Estás muerto!!", .red, .green, .blue, .bold, .italic)
                    End With
                    Exit Sub

Abajo:
Código:
Case "/NUEVOT"
                If notNullArguments Then
                    If ValidNumber(ArgumentosRaw, eNumber_Types.ent_integer) Then
                        Call WriteHacerT(ArgumentosRaw)
                    Else
                        'No es numerico
                        Call ShowConsoleMsg("Cupos incorrectos. Utilice /NUEVOT CANTIDAD.")
                    End If
                Else
                    'Avisar que falta el parametro
                    Call ShowConsoleMsg("Cupos incorrectos. Utilice /NUEVOT CANTIDAD.")
                End If
             
                Case "/CANCELART"
                Call WriteCancelarT
             
                Case "/PARTICIPAR"
                If UserEstado = 1 Then 'Muerto
                    With FontTypes(FontTypeNames.FONTTYPE_INFO)
                        Call ShowConsoleMsg("¡¡Estás muerto!!", .red, .green, .blue, .bold, .italic)
                    End With
                    Exit Sub
                End If
                Call WriteParticiparT

100% FUNCIONAL! Testiado por mi.
100% hecho desde 0, 4 días de trabajo Very Happy


Cualquier duda o consulta, solo pregunte.
Saludos.


_______________

Como saben yo aporto bastante en Servers-Argentum y les quiero decir que todos tienen derecho de usar y de aportar en otra comunidad mis aportes pero sólo con un requisito y es tan simple que dejar los créditos. Gracias.
Si conocen otra comunidad y en esa misma mis aportes no están aportados, si tenés tiempo y ganas, aportalo! A mucha gente le puede servir. No te olvides del requisito Razz

MIS MEJORES APORTES:

Compra/venta de personajes:
https://goo.gl/A44Av0

Juegos del Hambre:
https://goo.gl/u6aNUG

Deathmatch automático:
https://goo.gl/GQF4fK

Sistema de retos vía MMR con búsqueda, emparejamiento, etc:
https://goo.gl/40uP0f

Sistemas de eventos automáticos de 1vs1 hasta 10vs10:
https://goo.gl/XYKygc

1VS1 - AIM - MELEE - Gana Sigue (Se liberan cupos)
https://goo.gl/qq83wx

Retos 3vs3 - [Items, 2 rounds, múltiples arenas, oro]
https://goo.gl/x8SMnV

Eliminar sistema de Skill (COMPLETO)
https://goo.gl/mKxHzC
avatar
Toyz
Administrador
Administrador

¿BANEADO? : No.
Premios :
[1er puesto] Usuario del año 2016
Cantidad de envíos : 5044
Edad : 16
Localización : Global.
Fecha de inscripción : 28/09/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por NachoDlc el 25/2/2015, 7:44 pm

Como pongo para que de premio de 1 copa de oro

NachoDlc
Nivel 1
Nivel 1

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 6
Localización : Argentina
Fecha de inscripción : 07/10/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Toyz el 25/2/2015, 9:39 pm

Vas al modulo que creaste, el que se llama Torneo1vs1 y buscas este codigo.
Premio copa de oro.

Buscas:
Código:
    'si es la ultima ronda
    If (Torneo_Rondas = 1) Then
        Call WarpUserChar(Torneo_Luchadores(LI1), mapa_fuera, 51, 51, True)
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> " & UserList(UserIndex).name & " Pierde el combate", FontTypeNames.FONTTYPE_GUILD))
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Ganador del torneo: " & UserList(Torneo_Luchadores(LI1)).name, FontTypeNames.FONTTYPE_GUILD))
        UserList(Torneo_Luchadores(LI1)).Stats.GLD = UserList(Torneo_Luchadores(LI1)).Stats.GLD + 1000000
        Call WriteUpdateGold(Torneo_Luchadores(LI1))
        UserList(Torneo_Luchadores(LI1)).flags.automatico = False
        Torneo_Activo = False

y lo remplazas por este:
Código:
    'si es la ultima ronda
    If (Torneo_Rondas = 1) Then
        Call WarpUserChar(Torneo_Luchadores(LI1), mapa_fuera, 51, 51, True)
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> " & UserList(UserIndex).name & " Pierde el combate", FontTypeNames.FONTTYPE_GUILD))
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Ganador del torneo: " & UserList(Torneo_Luchadores(LI1)).name, FontTypeNames.FONTTYPE_GUILD))
        Dim COPA As Obj
        COPA.Amount = 1  'Las copas que se dan
        COPA.ObjIndex = 710  'Numero de la copa según alkon 13.0
        Call MeterItemEnInventario(UserList(Torneo_Luchadores(LI1)), COPA)  'metemos la copa en el inventario
        Call WriteUpdateGold(Torneo_Luchadores(LI1))
        UserList(Torneo_Luchadores(LI1)).flags.automatico = False
        Torneo_Activo = False

Simple, espero que te sirva.
Saludos.


_______________

Como saben yo aporto bastante en Servers-Argentum y les quiero decir que todos tienen derecho de usar y de aportar en otra comunidad mis aportes pero sólo con un requisito y es tan simple que dejar los créditos. Gracias.
Si conocen otra comunidad y en esa misma mis aportes no están aportados, si tenés tiempo y ganas, aportalo! A mucha gente le puede servir. No te olvides del requisito Razz

MIS MEJORES APORTES:

Compra/venta de personajes:
https://goo.gl/A44Av0

Juegos del Hambre:
https://goo.gl/u6aNUG

Deathmatch automático:
https://goo.gl/GQF4fK

Sistema de retos vía MMR con búsqueda, emparejamiento, etc:
https://goo.gl/40uP0f

Sistemas de eventos automáticos de 1vs1 hasta 10vs10:
https://goo.gl/XYKygc

1VS1 - AIM - MELEE - Gana Sigue (Se liberan cupos)
https://goo.gl/qq83wx

Retos 3vs3 - [Items, 2 rounds, múltiples arenas, oro]
https://goo.gl/x8SMnV

Eliminar sistema de Skill (COMPLETO)
https://goo.gl/mKxHzC
avatar
Toyz
Administrador
Administrador

¿BANEADO? : No.
Premios :
[1er puesto] Usuario del año 2016
Cantidad de envíos : 5044
Edad : 16
Localización : Global.
Fecha de inscripción : 28/09/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por NachoDlc el 26/2/2015, 1:35 pm

Muchas gracias

NachoDlc
Nivel 1
Nivel 1

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 6
Localización : Argentina
Fecha de inscripción : 07/10/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por NachoDlc el 26/2/2015, 2:07 pm

Me tira este error ahora" />

NachoDlc
Nivel 1
Nivel 1

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 6
Localización : Argentina
Fecha de inscripción : 07/10/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Toyz el 26/2/2015, 2:47 pm

Pone bien la imagen, no aparece nada, si no dejame la line del code.


_______________

Como saben yo aporto bastante en Servers-Argentum y les quiero decir que todos tienen derecho de usar y de aportar en otra comunidad mis aportes pero sólo con un requisito y es tan simple que dejar los créditos. Gracias.
Si conocen otra comunidad y en esa misma mis aportes no están aportados, si tenés tiempo y ganas, aportalo! A mucha gente le puede servir. No te olvides del requisito Razz

MIS MEJORES APORTES:

Compra/venta de personajes:
https://goo.gl/A44Av0

Juegos del Hambre:
https://goo.gl/u6aNUG

Deathmatch automático:
https://goo.gl/GQF4fK

Sistema de retos vía MMR con búsqueda, emparejamiento, etc:
https://goo.gl/40uP0f

Sistemas de eventos automáticos de 1vs1 hasta 10vs10:
https://goo.gl/XYKygc

1VS1 - AIM - MELEE - Gana Sigue (Se liberan cupos)
https://goo.gl/qq83wx

Retos 3vs3 - [Items, 2 rounds, múltiples arenas, oro]
https://goo.gl/x8SMnV

Eliminar sistema de Skill (COMPLETO)
https://goo.gl/mKxHzC
avatar
Toyz
Administrador
Administrador

¿BANEADO? : No.
Premios :
[1er puesto] Usuario del año 2016
Cantidad de envíos : 5044
Edad : 16
Localización : Global.
Fecha de inscripción : 28/09/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por NachoDlc el 26/2/2015, 3:21 pm

Call MeterItemEnInventario("UserList" me marca eso (Torneo_Luchadores(LI1)), COPA) 'metemos la copa en el inventario

Y me tira Error de compilación : No coinciden los tipos

NachoDlc
Nivel 1
Nivel 1

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 6
Localización : Argentina
Fecha de inscripción : 07/10/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por JAKE MATE II el 26/2/2015, 3:56 pm

El sistema anda de 10 vos sos el que no sabes poner bien las cosas !
avatar
JAKE MATE II
Nivel 4
Nivel 4

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 170
Edad : 19
Localización : C.P.V.B Escuela
Fecha de inscripción : 07/06/2013

Ver perfil de usuario http://WWW.ESÈRANZA-AO.COM.AR

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Toyz el 27/2/2015, 3:22 pm

@Nachodlc escribió:Call MeterItemEnInventario("UserList" me marca eso (Torneo_Luchadores(LI1)), COPA) 'metemos la copa en el inventario

Y me tira Error de compilación : No coinciden los tipos

Ponelo por oro, en ves de ese code pone:
Código:
    'si es la ultima ronda
    If (Torneo_Rondas = 1) Then
        Call WarpUserChar(Torneo_Luchadores(LI1), mapa_fuera, 51, 51, True)
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> " & UserList(UserIndex).name & " Pierde el combate", FontTypeNames.FONTTYPE_GUILD))
        Call SendData(SendTarget.ToAll, 0, PrepareMessageConsoleMsg("Torneo1vs1> Ganador del torneo: " & UserList(Torneo_Luchadores(LI1)).name, FontTypeNames.FONTTYPE_GUILD))
        UserList(Torneo_Luchadores(LI1)).Stats.GLD = UserList(Torneo_Luchadores(LI1)).Stats.GLD + 1000000
        Call WriteUpdateGold(Torneo_Luchadores(LI1))
        UserList(Torneo_Luchadores(LI1)).flags.automatico = False
        Torneo_Activo = False


_______________

Como saben yo aporto bastante en Servers-Argentum y les quiero decir que todos tienen derecho de usar y de aportar en otra comunidad mis aportes pero sólo con un requisito y es tan simple que dejar los créditos. Gracias.
Si conocen otra comunidad y en esa misma mis aportes no están aportados, si tenés tiempo y ganas, aportalo! A mucha gente le puede servir. No te olvides del requisito Razz

MIS MEJORES APORTES:

Compra/venta de personajes:
https://goo.gl/A44Av0

Juegos del Hambre:
https://goo.gl/u6aNUG

Deathmatch automático:
https://goo.gl/GQF4fK

Sistema de retos vía MMR con búsqueda, emparejamiento, etc:
https://goo.gl/40uP0f

Sistemas de eventos automáticos de 1vs1 hasta 10vs10:
https://goo.gl/XYKygc

1VS1 - AIM - MELEE - Gana Sigue (Se liberan cupos)
https://goo.gl/qq83wx

Retos 3vs3 - [Items, 2 rounds, múltiples arenas, oro]
https://goo.gl/x8SMnV

Eliminar sistema de Skill (COMPLETO)
https://goo.gl/mKxHzC
avatar
Toyz
Administrador
Administrador

¿BANEADO? : No.
Premios :
[1er puesto] Usuario del año 2016
Cantidad de envíos : 5044
Edad : 16
Localización : Global.
Fecha de inscripción : 28/09/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Dhiego el 1/3/2015, 12:38 pm

Todos aportes de enfermo hace este pib3 , lo hice yo desde 0 dice este sistema ya esta en todos lados o es igual al torneo 1vs1 de saturos Twisted Evil

Dhiego
Nivel 1
Nivel 1

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 10
Localización : rio tercero
Fecha de inscripción : 19/08/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Toyz el 1/3/2015, 4:13 pm

Ok :p, no es necesario bardiar...
De tu envidia nace mi fama JAJAJ
Saludos.


_______________

Como saben yo aporto bastante en Servers-Argentum y les quiero decir que todos tienen derecho de usar y de aportar en otra comunidad mis aportes pero sólo con un requisito y es tan simple que dejar los créditos. Gracias.
Si conocen otra comunidad y en esa misma mis aportes no están aportados, si tenés tiempo y ganas, aportalo! A mucha gente le puede servir. No te olvides del requisito Razz

MIS MEJORES APORTES:

Compra/venta de personajes:
https://goo.gl/A44Av0

Juegos del Hambre:
https://goo.gl/u6aNUG

Deathmatch automático:
https://goo.gl/GQF4fK

Sistema de retos vía MMR con búsqueda, emparejamiento, etc:
https://goo.gl/40uP0f

Sistemas de eventos automáticos de 1vs1 hasta 10vs10:
https://goo.gl/XYKygc

1VS1 - AIM - MELEE - Gana Sigue (Se liberan cupos)
https://goo.gl/qq83wx

Retos 3vs3 - [Items, 2 rounds, múltiples arenas, oro]
https://goo.gl/x8SMnV

Eliminar sistema de Skill (COMPLETO)
https://goo.gl/mKxHzC
avatar
Toyz
Administrador
Administrador

¿BANEADO? : No.
Premios :
[1er puesto] Usuario del año 2016
Cantidad de envíos : 5044
Edad : 16
Localización : Global.
Fecha de inscripción : 28/09/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Metrosersuah el 13/3/2016, 7:10 am

"100% FUNCIONAL! Testiado por mi.
100% hecho desde 0, 4 días de trabajo"
avatar
Metrosersuah
Nivel 5
Nivel 5

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 227
Localización : 4 Paredes
Fecha de inscripción : 13/02/2016

Ver perfil de usuario http://www.argentumonline.com.ar

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Toyz el 13/3/2016, 3:12 pm

Ni recuerdo haber hecho este aporte va, hice tantos, como 70.
No se de donde lo saque y dudo yo lo haya hecho, no tenía ni idea del protocolo binario. Solo se que es funcional.
Obviamente hoy en día hacer este eventos es demasiado fácil. Te invito a leer el código.
avatar
Toyz
Administrador
Administrador

¿BANEADO? : No.
Premios :
[1er puesto] Usuario del año 2016
Cantidad de envíos : 5044
Edad : 16
Localización : Global.
Fecha de inscripción : 28/09/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por BAHTANG el 21/3/2016, 6:06 pm

Buen aporte, lo testeo el miercoles, si es funcional dejo creditos en el code y en la seccion implementaciones de mi pagina.
avatar
BAHTANG
Nivel 6
Nivel 6

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 331
Edad : 18
Localización : Ullathorpe
Fecha de inscripción : 20/03/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por fryda el 12/4/2016, 2:07 am



Como soluciono esto , hice las cosas 3 veces y me pasa lo mismo


EDIT: Ya está lo puse arriba tendriás que editar esa parte te confundiste en ves de poner arriba pusiste abajo , Saludos

fryda
Nivel 6
Nivel 6

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 252
Localización : Que les importa
Fecha de inscripción : 16/07/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por AlanCuervo el 24/4/2016, 11:03 pm



¿Alguna solución?

AlanCuervo
Nivel 1
Nivel 1

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 3
Localización : Mar del Plata
Fecha de inscripción : 23/04/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Toyz el 26/4/2016, 1:32 am

Leé bien el copypasteo que hiciste.


_______________

Como saben yo aporto bastante en Servers-Argentum y les quiero decir que todos tienen derecho de usar y de aportar en otra comunidad mis aportes pero sólo con un requisito y es tan simple que dejar los créditos. Gracias.
Si conocen otra comunidad y en esa misma mis aportes no están aportados, si tenés tiempo y ganas, aportalo! A mucha gente le puede servir. No te olvides del requisito Razz

MIS MEJORES APORTES:

Compra/venta de personajes:
https://goo.gl/A44Av0

Juegos del Hambre:
https://goo.gl/u6aNUG

Deathmatch automático:
https://goo.gl/GQF4fK

Sistema de retos vía MMR con búsqueda, emparejamiento, etc:
https://goo.gl/40uP0f

Sistemas de eventos automáticos de 1vs1 hasta 10vs10:
https://goo.gl/XYKygc

1VS1 - AIM - MELEE - Gana Sigue (Se liberan cupos)
https://goo.gl/qq83wx

Retos 3vs3 - [Items, 2 rounds, múltiples arenas, oro]
https://goo.gl/x8SMnV

Eliminar sistema de Skill (COMPLETO)
https://goo.gl/mKxHzC
avatar
Toyz
Administrador
Administrador

¿BANEADO? : No.
Premios :
[1er puesto] Usuario del año 2016
Cantidad de envíos : 5044
Edad : 16
Localización : Global.
Fecha de inscripción : 28/09/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por elpapuem el 17/12/2016, 9:56 pm

pude implementarlo pero me da un error cada ves que creo un torneo y intento poner /participar me dice que no hay ningun evento en curso..., Como arreglo eso?

elpapuem
Nivel 1
Nivel 1

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 1
Localización : argentina
Fecha de inscripción : 05/12/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Toyz el 17/12/2016, 10:34 pm

Es muy feo este código, no te lo recomiendo. Ni siquera es mío, mentí a la hora de crearlo (mi antiguo yo).

Usá este aporte:

https://goo.gl/XYKygc


_______________

Como saben yo aporto bastante en Servers-Argentum y les quiero decir que todos tienen derecho de usar y de aportar en otra comunidad mis aportes pero sólo con un requisito y es tan simple que dejar los créditos. Gracias.
Si conocen otra comunidad y en esa misma mis aportes no están aportados, si tenés tiempo y ganas, aportalo! A mucha gente le puede servir. No te olvides del requisito Razz

MIS MEJORES APORTES:

Compra/venta de personajes:
https://goo.gl/A44Av0

Juegos del Hambre:
https://goo.gl/u6aNUG

Deathmatch automático:
https://goo.gl/GQF4fK

Sistema de retos vía MMR con búsqueda, emparejamiento, etc:
https://goo.gl/40uP0f

Sistemas de eventos automáticos de 1vs1 hasta 10vs10:
https://goo.gl/XYKygc

1VS1 - AIM - MELEE - Gana Sigue (Se liberan cupos)
https://goo.gl/qq83wx

Retos 3vs3 - [Items, 2 rounds, múltiples arenas, oro]
https://goo.gl/x8SMnV

Eliminar sistema de Skill (COMPLETO)
https://goo.gl/mKxHzC
avatar
Toyz
Administrador
Administrador

¿BANEADO? : No.
Premios :
[1er puesto] Usuario del año 2016
Cantidad de envíos : 5044
Edad : 16
Localización : Global.
Fecha de inscripción : 28/09/2014

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Metrosersuah el 18/12/2016, 2:29 am

@elpapuem escribió:pude implementarlo pero me da un error cada ves que creo un torneo y intento poner /participar me dice que no hay ningun evento en curso..., Como arreglo eso?

Es por qué ya tenes otro torneo y se ingresa con el mismo comando, cambia el case "/participar" por el que quieras.
avatar
Metrosersuah
Nivel 5
Nivel 5

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 227
Localización : 4 Paredes
Fecha de inscripción : 13/02/2016

Ver perfil de usuario http://www.argentumonline.com.ar

Volver arriba Ir abajo

AYUDAA

Mensaje por AYUDENME el 2/2/2018, 10:30 pm

Hola! Me tira error de compilación No válido dentro de enum Ayuda.
Public Enum FontTypeNames
Private Enum TorneoPacketID
   ATorneo                'Hacer nuevo torneo
   CTorneo                'Cancelar nuevo torneo
   PTorneo                'Participar en un torneo
   'Hecho por Sxex S-A
End Enum

AYUDENME
Nivel 1
Nivel 1

¿BANEADO? : No.
Premios : Ninguno.
Cantidad de envíos : 6
Localización : NECOCHEA
Fecha de inscripción : 02/02/2018

Ver perfil de usuario

Volver arriba Ir abajo

Re: [APORT#16] Torneo 1vs1 Automatico ALKON 13.0

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.