Argentum Online
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.



 
ÍndicePortalÚltimas imágenesBuscarRegistrarseConectarse
Mundo Argentum
Banner Invierno Usuario con mas de 1.000 mensajes. Chat de Argentum Online
Redes Sociales de Argentum Online
Facebook de la comunidad. Twitter de la comunidad.

Comparte
 

 [APORTE]Sistema de Deathmatch

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
JuliánC
[Usuario De Mundo Argentum]
[Usuario De Mundo Argentum]
JuliánC

Mensajes : 35
Temas : 11
Fecha de inscripción : 20/06/2013
Edad : 25
Localización : Chascomús

[APORTE]Sistema de Deathmatch Empty
MensajeTema: [APORTE]Sistema de Deathmatch   [APORTE]Sistema de Deathmatch Icon_minitimeJue Jun 20, 2013 2:23 am

Buenas les traigo el Sistema de Deathmatch TPAO style.

Citación :
Explicación: El torneo trata de que un usuario mediante un formulario crea un torneo para 16 participantes entonces van entrando todos y cuando se llena los lleva a todos los participantes a una sala de pelea donde van a pelear , manda una cuenta regresiva antes de la cuenta no van a poder atacarse para que se ordenen bien y cuando termina la cuenta se pueden atacar , si un usuario muere lo lleva a tanaris y cuando queda 1 usuario solo el que quedo le da puntos de torneo y lo lleva a tanaris.Tambien si el creador antes de que comienze el torneo desloguea se cancela el torneo.


Empezamos!

Servidor.

en el sub closeuser ponen


Código:
If userlist(userindex).pos.map = 154 then
call warpuserchar(userindex,28,50,50)
end if



Buscamos:
Código:
Case "/ONLINE"

Arriba:

Código:
Case "/CREARTORNEO"
If haytorneo = True Or ComenzoTorneo = True Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Ya hay un torneo de usuarios." & FONTTYPE_INFO)
Exit Sub
End If
haytorneo = True
UserList(UserIndex).flags.creadortorneouser = True
UserList(UserIndex).flags.EnTorneoDm = True
Call SendData(SendTarget.ToAll, 0, 0, "||[Torneo De Usuarios]" & UserList(UserIndex).name & " Está organizando un deathmatch para 16 participantes." & FONTTYPE_VERDEN)
If usuariostorneo = 0 Then
usuariostorneo = usuariostorneo + 1
Creador = UserList(UserIndex).name
Exit Sub
End If
 
Case "/INGRESAR"
Dim userstorne As Integer
 if userlist(userindex).flags.entorneodm = true then
SendData SendTarget.ToIndex, AttackerIndex, 0, "||Ya te encuentras en el torneo de usuarios." & fonttype_info)
exit sub
end if
If ComenzoTorneo = True Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||El torneo ya comenzo , Te has quedado afuera." & FONTTYPE_INFO)
Exit Sub
End If
If haytorneo = False Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||No hay ningún torneo de usuarios." & FONTTYPE_INFO)
Exit Sub
End If
UserList(UserIndex).flags.EnTorneoDm = True
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Ok, Estas inscripto al torneo." & FONTTYPE_VERDEN)
usuariostorneo = usuariostorneo + 1
If usuariostorneo = 16 Then
Call SendData(SendTarget.ToAll, 0, 0, "||[Torneo De Usuarios]El torneo ha comenzado." & FONTTYPE_VERDEN)
For userstorne = 1 To LastUser
If UserList(userstorne).flags.EnTorneoDm = True Then
Call WarpUserChar(userstorne, 154, 50, 55) 'Cambiamos las coordenadas.
CuentaTorneoUser = 11
usuariostorneo = 0
UserList(userstorne).flags.EnTorneoDm = False
haytorneo = False
ComenzoTorneo = True
End If
Next userstorne
Exit Sub
End If
 
Case "/PARTICIPANTESTORNEOUSER"
            If haytorneo = True Or ComenzoTorneo = True Then
                tStr = ""
                For LoopC = 1 To LastUser
                    'If UserList(LoopC).name <> "" And UserList(LoopC).flags.Privilegios <= PlayerType.Consejero Then
                    If UserList(UserIndex).flags.EnTorneoDm = True And UserList(LoopC).name <> "" Then
                        tStr = tStr & UserList(LoopC).name & ", "
                    End If
                Next LoopC
            If Len(tStr) > 2 Then
                tStr = Left(tStr, Len(tStr) - 2)
            End If
                Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Participantes: " & tStr & FONTTYPE_VERDEN)
                Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Número de usuarios en el torneo: " & usuariostorneo & FONTTYPE_VERDEN)
            Else
                Call SendData(SendTarget.ToIndex, UserIndex, 0, "||En este momento no hay ningún torneo." & FONTTYPE_INFO)
            End If
        Exit Sub


Buscamos
Código:
 If CuentaRegresiva > 0 Then
        If CuentaRegresiva > 1 Then
            Call SendData(SendTarget.ToAll, 0, 0, "||Contando..." & CuentaRegresiva - 1 & FONTTYPE_GUILD)
        Else
            Call SendData(SendTarget.ToAll, 0, 0, "||YA!!!!!!!!!" & "~255~0~0~1~0")
        End If
        CuentaRegresiva = CuentaRegresiva - 1
    End If
    
 
Arriba ponemos:
 
Código:
If CuentaTorneoUser > 0 Then
        If CuentaTorneoUser > 1 Then
            Call SendData(SendTarget.ToTorneoUser, 0, 0, "||El torneo comenzará en " & CuentaTorneoUser - 1 & FONTTYPE_ROJO)
        Else
            Call SendData(SendTarget.ToTorneoUser, 0, 0, "||El torneo ha comenzado , Ya pueden atacarse." & FONTTYPE_ROJO)
        End If
        CuentaTorneoUser = CuentaTorneoUser - 1
    End If
 
Buscamos:
 
Código:
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Le has quitado " & daño & " puntos de vida a " & UserList(tempChr).name & FONTTYPE_BORDON)
 
Y arriba de:
 
   
Código:
Call InfoHechizo(UserIndex)
    
    UserList(tempChr).Stats.MinHP = UserList(tempChr).Stats.MinHP - daño
 
Ponemos:
 
Código:
 If CuentaTorneoUser > 0 Then
    Call SendData(ToIndex, UserIndex, 0, "||No puedes atacar a nadie antes de la cuenta regresiva." & FONTTYPE_ROJO)
    Exit Sub
     End If
 
Buscamos en el Sub Puedeatacar
 
Código:
If UserList(AttackerIndex).flags.Muerto = 1 Then
    SendData SendTarget.ToIndex, AttackerIndex, 0, "||No podes atacar porque estas muerto" & FONTTYPE_INFO
    PuedeAtacar = False
    Exit Function
End If
 
Arriba ponemos;
 
Código:
If CuentaTorneoUser > 0 Then
    Call SendData(ToIndex, AttackerIndex, 0, "||No puedes atacar a nadie antes de la cuenta regresiva." & FONTTYPE_ROJO)


Buscamos:

Código:
Public Type UserFlags

Abajo:
Código:
creadortorneouser As Byte
EnTorneoDm As Byte

En el Sub Actstats agregamos:

Código:
If UserList(VictimIndex).Pos.Map = 154 Or UserList(AttackerIndex).Pos.Map = 154 And ComenzoTorneo = True Then 'Coordenada del DM
Call WarpUserChar(VictimIndex, 28, 50, 50) 'Coordenada a donde envia el ganador
UserList(VictimIndex).flags.creadortorneouser = False ' Si es el creador le mandamos false
UserList(VictimIndex).flags.EnTorneoDm = False
If MapInfo(154).NumUsers = 1 Then
Call SendData(SendTarget.ToAll, 0, 0, "||[Torneo De Usuarios] " & UserList(AttackerIndex).name & " Ganó el torneo de usuarios , El usuario se ha ganado 25 puntos de torneo." & FONTTYPE_VERDEN)
UserList(AttackerIndex).Stats.PuntosTorneo = UserList(AttackerIndex).Stats.PuntosTorneo + 25
ComenzoTorneo = False
Call EnviarPuntos(AttackerIndex)
Call WarpUserChar(AttackerIndex, 28, 50, 50) 'Coordenada a donde envia el ganador
End If

Por si les tira error en alguno de fonttype_verden o fonttype_rojo

Buscamos:

Código:
Public Const FONTTYPE_ADVERTENCIAS As String = "~128~0~0~1~1"

Abajo ponemos:

Código:
Public Const FONTTYPE_VERDEN As String = "~0~255~0~1~0"
Public Const FONTTYPE_ROJO As String = "~255~0~0~1~0"

En el módulo Declaraciones:

Código:
Public Creador As String
Public crearontorneo As String
Public ComenzoTorneo As Boolean
Public CuentaTorneoUser As Long
Public usuariostorneo As Integer
Public haytorneo As Boolean

Cliente.

• Agregamos este formulario: [descargas] http://www.mediafire.com/?u63s3r6c18quh44[/descargas]

En el módulo TCP buscamos:

Código:
Case "PART"
            Call AddtoRichTextBox(frmMain.RecTxt, MENSAJE_ENTRAR_PARTY_1 & ReadField(1, Rdata, 44) & MENSAJE_ENTRAR_PARTY_2, 0, 255, 0, False, False, False)
            Exit Sub

Abajo:

Código:
Case "INFE"
            Rdata = Right$(Rdata, Len(Rdata) - 4)
            Dim creador As String
            creador = ReadField(1, Rdata, 44)
            FRMTORNEOUSER.Label1.Caption = creador
            FRMTORNEOUSER.Label1.Visible = True
            FRMTORNEOUSER.Label2.Visible = False
            FRMTORNEOUSER.Label1.Visible = False
            FRMTORNEOUSER.Label3.Visible = True
            FRMTORNEOUSER.crear.Visible = True
            FRMTORNEOUSER.participantes.Visible = False
            FRMTORNEOUSER.INGRESAR.Visible = False
            FRMTORNEOUSER.participantes.Visible = False
            FRMTORNEOUSER.Show
            Exit Sub
 
Case "INFO"
            Rdata = Right$(Rdata, Len(Rdata) - 4)
            creador = ReadField(1, Rdata, 44)
            FRMTORNEOUSER.Label1.Caption = creador
            FRMTORNEOUSER.Label1.Visible = False
            FRMTORNEOUSER.Label2.Visible = True
            FRMTORNEOUSER.Label1.Visible = True
            FRMTORNEOUSER.Label3.Visible = False
            FRMTORNEOUSER.crear.Visible = False
            FRMTORNEOUSER.INGRESAR.Visible = True
            FRMTORNEOUSER.participantes.Visible = True
            FRMTORNEOUSER.Show
            Exit Sub


Y ahi ya estaria todo ! un sistema de deathmatch..

Eh amiwÓh, un saludos a Gohan SSJ.

[size=150]EDIT: Un Plus cortesia de Hugo Very Happy[/size]
Busca:
Código:
Case "NENE"             ' >>>>> Nro de Personajes :: NENE

Y arriba mandale:  

Código:
Case "TORU"
            Rdata = Right$(Rdata, Len(Rdata) - 4)
            Dim Users As Integer
            For Users = 1 To 16
               FRMTORNEOUSER.Users.Clear
               FRMTORNEOUSER.Users.AddItem (ReadField(Users, Rdata, 44))
            Next Users
            FRMTORNEOUSER.Show , frmMain
            Exit Sub

y remplaza el comando este /PARTICIPANTESTORNEOUSER por este :

Código:
Case "/PARTICIPANTESTORNEOUSER"
    If haytorneo = True Or ComenzoTorneo = True Then
        For LoopC = 1 To LastUser
            If (UserList(LoopC).name <> "") And UserList(LoopC).flags.EnTorneoDm = True Then
                tStr = tStr & UserList(LoopC).name & ", "
            End If
        Next LoopC
        If tStr <> "" Then
            tStr = Left$(tStr, Len(tStr) - 2)
            Call SendData(SendTarget.ToIndex, UserIndex, 0, "TORU" & tStr)'envia los names
        Else
            Call SendData(SendTarget.ToIndex, UserIndex, 0, "||En este momento no hay ningún torneo." & FONTTYPE_INFO)
        End If
        End If
                    
        Exit Sub
Volver arriba Ir abajo
RetrxM
[Administrador Del Foro]
[Administrador Del Foro]
RetrxM

Mensajes : 196
Temas : 47
Fecha de inscripción : 18/06/2013

[APORTE]Sistema de Deathmatch Empty
MensajeTema: Re: [APORTE]Sistema de Deathmatch   [APORTE]Sistema de Deathmatch Icon_minitimeJue Jun 20, 2013 2:29 am

Gracias por El aporte
Segui asi Juli
Volver arriba Ir abajo
Axters
[Administrador Del Foro]
[Administrador Del Foro]
avatar

Mensajes : 197
Temas : 46
Fecha de inscripción : 16/06/2013

[APORTE]Sistema de Deathmatch Empty
MensajeTema: Re: [APORTE]Sistema de Deathmatch   [APORTE]Sistema de Deathmatch Icon_minitimeJue Jun 20, 2013 2:30 am

Buen aporte juli 

Seguí así.
Volver arriba Ir abajo
Invitado
Invitado
avatar


[APORTE]Sistema de Deathmatch Empty
MensajeTema: Re: [APORTE]Sistema de Deathmatch   [APORTE]Sistema de Deathmatch Icon_minitimeJue Jun 20, 2013 1:13 pm

SArpado Aporte.
Volver arriba Ir abajo
JuliánC
[Usuario De Mundo Argentum]
[Usuario De Mundo Argentum]
JuliánC

Mensajes : 35
Temas : 11
Fecha de inscripción : 20/06/2013
Edad : 25
Localización : Chascomús

[APORTE]Sistema de Deathmatch Empty
MensajeTema: Re: [APORTE]Sistema de Deathmatch   [APORTE]Sistema de Deathmatch Icon_minitimeJue Jun 20, 2013 2:12 pm

Jaj sii!, y anoche se salvaron los rangos (?. no me dejaba postear más cosas.
Volver arriba Ir abajo
Invitado
Invitado
avatar


[APORTE]Sistema de Deathmatch Empty
MensajeTema: Re: [APORTE]Sistema de Deathmatch   [APORTE]Sistema de Deathmatch Icon_minitimeJue Jun 20, 2013 3:54 pm

Porqué no te dejaba postear?, mandame un mp y te ayudo
Volver arriba Ir abajo
Contenido patrocinado




[APORTE]Sistema de Deathmatch Empty
MensajeTema: Re: [APORTE]Sistema de Deathmatch   [APORTE]Sistema de Deathmatch Icon_minitime

Volver arriba Ir abajo
 

[APORTE]Sistema de Deathmatch

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
Argentum Online :: Argentum Online :: Programación-