Todo sobre AO
 
ÍndiceFAQBuscarMiembrosGrupos de UsuariosRegistrarseConectarse

Comparte | 
 

 Sistema de Torneo como TwistAO

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Agus
Admin


Mensajes : 69
Fecha de inscripción : 01/07/2008

MensajeTema: Sistema de Torneo como TwistAO   Sáb Ago 23, 2008 3:11 pm

Torneo como twist ao, funciona asi, el GM pone /HACERTORNEO, aparece un form que dice varias opciones, entre ellas; Elegir clase, Nivel minimo, Nivel máximo, Cupo máximo, Facción/Alineación, Sumoneador automático.
y manda a la consola que hay un torneeo, entonces el user pone /TORNEO y va al torneo (si cumple las opciones que el gm elige mencionadas anteriormente), y para que se cierre el torneo el GM pone /CERRARTORNEO.
1-Creamos un form en el cliente que se llame "frmConsolaTorneo que tenga todo esto:

2-Adentro del form ponemos esto:
Citación :


Option Explicit

Private Sub Command4_Click()
If Not CheckDatos Then Exit Sub

SendData "/TOR " & Txt_LvlMin & " " & Txt_LvlMax & " " & Txt_Cupo & " " & Check1.value & " " & Check2.value & " " & Check3.value & " " & Check4.value & " " & Check5.value & " " & Check6.value & " " & Check7.value & " " & Check8.value & " " & Check9.value & " " & TxtMap & " " & TxtX & " " & TxtY & " " & Check10.value & " " & Check11.value & " " & Check12.value & " " & Check13.value

Unload Me
End Sub

Private Sub Command5_Click()
Unload Me
End Sub

Function CheckDatos() As Boolean
CheckDatos = True

If Txt_LvlMax = "" Then
CheckDatos = False
MsgBox "Falta completa el nivel máximo."
Exit Function
End If

If Txt_LvlMin = "" Then
MsgBox "Falta completa el nivel mínimo."
CheckDatos = False
Exit Function
End If

If Txt_Cupo = "" Then
MsgBox "Falta completa el cupo."
CheckDatos = False
Exit Function
End If

If Not IsNumeric(Txt_LvlMax) Then
CheckDatos = False
MsgBox "Nivel máximo no numérico."
Exit Function
End If

If Not IsNumeric(Txt_LvlMin) Then
MsgBox "Nivel mínimo no numérico."
CheckDatos = False
Exit Function
End If

If Not IsNumeric(Txt_Cupo) Then
MsgBox "Cupo no numérico."
CheckDatos = False
Exit Function
End If

End Function

3-Buscan
Citación :

ElseIf UCase$(stxtbuffer) = "/FUNDARCLAN" Then
Y arriba ponen
Citación :


ElseIf UCase$(stxtbuffer) = "/HACERTORNEO" Then
FrmConsolaTorneo.Show vbModeless, Me
stxtbuffer = ""
SendTxt.Text = ""
KeyCode = 0
SendTxt.Visible = False

4-Buscan
Citación :


Case "LISTUSU"

Y arriba ponen
Citación :


Case "PANTOR"
Call FrmConsolaTorneo.Show(vbModeless, frmMain)
Exit Sub

Ahora proseguimos con el servidor:
5-Buscan:
Citación :


Public ListaRazas(1 To NUMRAZAS) As String

Y abajo ponen
Citación :


Public Torneo_Clases_Validas(1 To Cool As String
Public Torneo_Alineacion_Validas(1 To Cool As String
Public Torneo_Clases_Validas2(1 To Cool As Integer
Public Torneo_Alineacion_Validas2(1 To 4) As Integer

6-Buscan
Citación :


Public haciendoBK As Boolean

Y abajo ponen
Citación :


Public Torneo_Map As Integer
Public Torneo_X As Integer
Public Torneo_Y As Integer
Public Hay_Torneo As Boolean
'Public Torneo_Clases_Validas() As String
'Public Torneo_Clases_Validas2() As Integer
'Public Torneo_Alineacion_Validas() As String
'Public Torneo_Alineacion_Validas2() As Integer
Public Torneo_Nivel_Minimo As Long
Public Torneo_Nivel_Maximo As Long
Public Torneo_Cantidad As Long
Public Torneo_Inscriptos As Long

7-Buscan
Citación :


Public Ayuda As New cCola

Y abajo ponen
Citación :


Public Torneo As New cCola

8-Buscan
Citación :


ListaRazas(5) = "Enano"

Y abajo ponen
Citación :


Torneo_Clases_Validas(1) = "Guerrero"
Torneo_Clases_Validas(2) = "Mago"
Torneo_Clases_Validas(3) = "Paladin"
Torneo_Clases_Validas(4) = "Clerigo"
Torneo_Clases_Validas(5) = "Bardo"
Torneo_Clases_Validas(6) = "Asesino"
Torneo_Clases_Validas(7) = "Druida"
Torneo_Clases_Validas(Cool = "Cazador"

Torneo_Alineacion_Validas(1) = "Criminal"
Torneo_Alineacion_Validas(2) = "Ciudadano"
Torneo_Alineacion_Validas(3) = "Armada CAOS"
Torneo_Alineacion_Validas(4) = "Armada REAL"

9-Buscan
Citación :


If Ayuda.Existe(UserList(UserIndex).name) Then Call Ayuda.Quitar(UserList(UserIndex).name)

Y abajo ponen
Citación :


If Torneo.Existe(UserList(UserIndex).name) Then Call Torneo.Quitar(UserList(UserIndex).name)

10-Buscan
Citación :


If UCase$(Left$(rData, 5)) = "/SUM " Then

Y arriba ponen
Citación :


If UCase$(Left$(rData, 5)) = "/TOR " Then
rData = Right$(rData, Len(rData) - 5)
If Hay_Torneo = False Then
Hay_Torneo = True
Torneo_Nivel_Minimo = val(ReadField(1, rData, 32))
Torneo_Nivel_Maximo = val(ReadField(2, rData, 32))
Torneo_Cantidad = val(ReadField(3, rData, 32))
Torneo_Clases_Validas2(1) = val(ReadField(4, rData, 32))
Torneo_Clases_Validas2(2) = val(ReadField(5, rData, 32))
Torneo_Clases_Validas2(3) = val(ReadField(6, rData, 32))
Torneo_Clases_Validas2(4) = val(ReadField(7, rData, 32))
Torneo_Clases_Validas2(5) = val(ReadField(8, rData, 32))
Torneo_Clases_Validas2(6) = val(ReadField(9, rData, 32))
Torneo_Clases_Validas2(7) = val(ReadField(10, rData, 32))
Torneo_Clases_Validas2(Cool = val(ReadField(11, rData, 32))
Torneo_SumAuto = val(ReadField(12, rData, 32))
Torneo_Map = val(ReadField(13, rData, 32))
Torneo_X = val(ReadField(14, rData, 32))
Torneo_Y = val(ReadField(15, rData, 32))
Torneo_Alineacion_Validas2(1) = val(ReadField(16, rData, 32))
Torneo_Alineacion_Validas2(1) = val(ReadField(17, rData, 32))
Torneo_Alineacion_Validas2(1) = val(ReadField(18, rData, 32))
Torneo_Alineacion_Validas2(1) = val(ReadField(19, rData, 32))
Dim Data As String
Call SendData(SendTarget.ToAll, 0, 0, "||[TORNEO BY " & UserList(UserIndex).name & "]" & FONTTYPE_CELESTE_NEGRITA)
Call SendData(SendTarget.ToAll, 0, 0, "||Nivel máximo: " & Torneo_Nivel_Maximo & FONTTYPE_CELESTE_NEGRITA)
Call SendData(SendTarget.ToAll, 0, 0, "||Nivel minimo: " & Torneo_Nivel_Minimo & FONTTYPE_CELESTE_NEGRITA)
Call SendData(SendTarget.ToAll, 0, 0, "||Cupo máximo: " & Torneo_Cantidad & FONTTYPE_CELESTE_NEGRITA)
For i = 1 To 8
If Torneo_Clases_Validas2(i) = 1 Then
Data = Data & Torneo_Clases_Validas(i) & ","
End If
Next
Data = Left$(Data, Len(Data) - 1)
Data = Data & "."
Call SendData(SendTarget.ToAll, 0, 0, "||Clases válidas: " & Data & FONTTYPE_CELESTE_NEGRITA)
Data = ""
For i = 1 To 4
If Torneo_Alineacion_Validas2(i) = 1 Then
Data = Data & Torneo_Alineacion_Validas(i) & ","
End If
Next
Data = Left$(Data, Len(Data) - 1)
Data = Data & "."
Call SendData(SendTarget.ToAll, 0, 0, "||Alineación válidas: Todas." & FONTTYPE_CELESTE_NEGRITA)
Call SendData(SendTarget.ToAll, 0, 0, "||/TORNEO para participar." & FONTTYPE_CELESTE_NEGRITA)

Else
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Ya hay un torneo." & FONTTYPE_INFO)
End If
End If

If UCase$(rData) = "/HACERTORNEO" Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "PANTOR")
End If

If UCase$(rData) = "/CERRARTORNEO" Then
If Hay_Torneo = True Then
Call SendData(SendTarget.ToAll, 0, 0, "||Torneo Finalizado" & FONTTYPE_CELESTE_NEGRITA)
Hay_Torneo = False
Torneo_Inscriptos = 0
End If
End If

11-Buscan en [size=150]TCP_HANDLEDATA 2[/size][code=vb]
Select Case UCase$(Left$(rData, 3))
[/quote]
Y abajo ponen
Citación :


Select Case UCase$(Left$(rData, 7))
Case "/TORNEO"
If Hay_Torneo = False Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||No hay ningún torneo disponible." & FONTTYPE_INFO)
Exit Sub
End If
If UserList(UserIndex).Stats.ELV < Torneo_Nivel_Minimo Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Tu nivel es: " & UserList(UserIndex).Stats.ELV & ".El requerido es: " & Torneo_Nivel_Minimo & FONTTYPE_INFO)
Exit Sub
End If
If UserList(UserIndex).Stats.ELV > Torneo_Nivel_Maximo Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Tu nivel es: " & UserList(UserIndex).Stats.ELV & ".El máximo es: " & Torneo_Nivel_Maximo & FONTTYPE_INFO)
Exit Sub
End If
If Torneo_Inscriptos >= Torneo_Cantidad Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||El cupo ya ha sido alcanzado." & FONTTYPE_INFO)
Exit Sub
End If
For i = 1 To 8
If UCase$(UserList(UserIndex).Clase) = UCase$(Torneo_Clases_Validas(i)) And Torneo_Clases_Validas2(i) = 0 Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Tu clase no es válida en este torneo." & FONTTYPE_INFO)
Exit Sub
End If
Next

Dim NuevaPos As WorldPos


'Old, si entras no salis =P
If Not Torneo.Existe(UserList(UserIndex).name) Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Estás en la lista de espera del torneo. Estás en el puesto nº " & Torneo.Longitud + 1 & FONTTYPE_INFO)
Call Torneo.Push(rData, UserList(UserIndex).name)

Call SendData(SendTarget.ToAdmins, 0, 0, "||/TORNEO [" & UserList(UserIndex).name & "]" & FONTTYPE_INFOBOLD)
Torneo_Inscriptos = Torneo_Inscriptos + 1
If Torneo_Inscriptos = Torneo_Cantidad Then
Call SendData(SendTarget.ToAll, 0, 0, "||Cupo alcanzado." & FONTTYPE_CELESTE_NEGRITA)
End If
If Torneo_SumAuto = 1 Then
Dim FuturePos As WorldPos
FuturePos.Map = Torneo_Map
FuturePos.X = Torneo_X: FuturePos.Y = Torneo_Y
Call ClosestLegalPos(FuturePos, NuevaPos)
If NuevaPos.X <> 0 And NuevaPos.Y <> 0 Then Call WarpUserChar(UserIndex, NuevaPos.Map, NuevaPos.X, NuevaPos.Y, True)
End If
Else
' Call Torneo.Quitar(UserList(Userindex).Name)
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Ya estás en la lista de espera del torneo." & FONTTYPE_INFO)
' Torneo_Inscriptos = Torneo_Inscriptos - 1
' If Torneo_SumAuto = 1 Then
' Call WarpUserChar(Userindex, 1, 50, 50, True)
' End If
End If
Exit Sub
End Select

12-Buscan
Citación :


Public Const FONTTYPE_TALK As String = "~255~255~255~0~0"

Y abajo ponen
Citación :


Public Const FONTTYPE_CELESTE_NEGRITA As String = "~0~128~255~1~0"

Testeado & 100% Funcional ^^
Volver arriba Ir abajo
Ver perfil de usuario http://recompilacionao.forosactivos.com
 
Sistema de Torneo como TwistAO
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Reglamento OFICIAL del Torneo NBA
» emmmm..BlackJack....mamita
» Mazo artefactos
» Sistema del club: como preparar o apuntarte a partidas
» Deck Golgari Aggro

Permisos de este foro:No puedes responder a temas en este foro.
 :: Argentum Online :: jijijijijiij-
Cambiar a: