Sistema de 2.2
2 participantes
Página 1 de 1.
Sistema de 2.2
mecanismo: el usuario introduce /pareja y el nick de su pareja, su teammate hace lo mismo, ingresan a la sala de duelos 2vs2. La pareja que quiera enfrentarlos procede de la misma manera. No pueden formar pareja dos usuarios de la misma clase. El comando /abandonar puede ser utilizado unicamente por los usuarios que ingresaron en primera instancia a la sala y si estan ellos dos solos, es decir, si no tienen contrincantes.
Bueno, todo en el servidor:
Arriba de Type tEstadisticasDiarias, ponen
'Casted - pareja 2vs2
Public HayPareja As Boolean
Arriba de Public type Userflags, ponen:
'Casted - pareja 2vs2
Public Pareja As Pareja
Public Type Pareja
Jugador1 As Integer
Jugador2 As Integer
Jugador3 As Integer
Jugador4 As Integer
End Type
Abajo de Public type userflags ponen:
'casted - pareja 2vs2
SuPareja As Integer
EsperaPareja As Boolean
EnPareja As Boolean
En handledata_2 buscan:
Select Case UCase$(Left$(rData, )
abajo ponen:
'Casted - pareja 2vs2
Case "/PAREJA "
rData = Right$(rData, Len(rData) -
tIndex = NameIndex(ReadField(1, rData, 32))
If tIndex = UserIndex Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||No puedes formar pareja contigo mismo" & FONTTYPE_INFO)
Exit Sub
End If
If tIndex <= 0 Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Usuario offline" & FONTTYPE_INFO)
Exit Sub
End If
If UserList(UserIndex).flags.Muerto = 1 Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Estas muerto" & FONTTYPE_INFO)
Exit Sub
End If
If UserList(tIndex).flags.Muerto = 1 Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Esta muerto" & FONTTYPE_INFO)
Exit Sub
End If
If UserList(UserIndex).Pos.Map = 5 Then 'mapa de duelos 2vs2
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Ya estas en la sala de duelos 2vs2" & FONTTYPE_INFO)
Exit Sub
End If
If HayPareja = True Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Esta ocupado" & FONTTYPE_INFO)
Exit Sub
End If
If UserList(UserIndex).Clase = UserList(tIndex).Clase Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||No puedes formar pareja con otro usuario de tu misma clase" & FONTTYPE_INFO)
Exit Sub
End If
If MapInfo(5).NumUsers = 0 Then 'mapa de duelos 2vs2
UserList(tIndex).flags.EsperaPareja = True
UserList(UserIndex).flags.SuPareja = tIndex
If UserList(UserIndex).flags.EsperaPareja = False Then
Call SendData(SendTarget.ToIndex, tIndex, 0, "||Pareja > " & UserList(UserIndex).name & " te ha ofrecido formar pareja, escribe /pareja " & UserList(UserIndex).name & " para ingresar el duelo 2vs2" & FONTTYPE_INFO)
End If
If UserList(tIndex).flags.SuPareja = UserIndex Then
Pareja.Jugador1 = UserIndex
Pareja.Jugador2 = tIndex
UserList(Pareja.Jugador1).flags.EnPareja = True
UserList(Pareja.Jugador2).flags.EnPareja = True
Call WarpUserChar(Pareja.Jugador1, 5, 50, 70) 'mapa 2vs2, posicion jugador numero 1
Call WarpUserChar(Pareja.Jugador2, 5, 50, 72) 'mapa 2vs2, posicion jugador numero 2
Call SendData(SendTarget.ToAll, 0, 0, "||Pareja > " & UserList(UserIndex).name & " y " & UserList(tIndex).name & " ingresaron a la sala de duelos 2vs2, para desafiarlos escribe /pareja y el nombre de tu pareja" & FONTTYPE_GUILD)
End If
Exit Sub
End If
If MapInfo(5).NumUsers = 2 Then 'mapa de duelos 2vs2
UserList(tIndex).flags.EsperaPareja = True
UserList(UserIndex).flags.SuPareja = tIndex
If UserList(UserIndex).flags.EsperaPareja = False Then
Call SendData(SendTarget.ToIndex, tIndex, 0, "||Pareja > " & UserList(UserIndex).name & " te ha ofrecido formar pareja, escribe /pareja " & UserList(UserIndex).name & " para ingresar el duelo 2vs2" & FONTTYPE_INFO)
End If
If UserList(tIndex).flags.SuPareja = UserIndex Then
Pareja.Jugador3 = UserIndex
Pareja.Jugador4 = tIndex
UserList(Pareja.Jugador3).flags.EnPareja = True
UserList(Pareja.Jugador4).flags.EnPareja = True
Call WarpUserChar(Pareja.Jugador3, 5, 50, 74) 'mapa 2vs2, posicion jugador numero 3
Call WarpUserChar(Pareja.Jugador4, 5, 50, 75) 'mapa 2vs2, posicion jugador numero 4
Call SendData(SendTarget.ToAll, 0, 0, "||Pareja > " & UserList(UserIndex).name & " y " & UserList(tIndex).name & " han ingresado a la sala de duelos 2vs2" & FONTTYPE_GUILD)
HayPareja = True
End If
Exit Sub
End If
Arriba del case /est, ponen:
'Casted - pareja 2vs2
Case "/ABANDONAR"
If MapInfo(5).NumUsers = 2 And UserList(UserIndex).flags.EnPareja = True Then 'mapa de duelos 2vs2
Call WarpUserChar(Pareja.Jugador1, 1, 50, 60)
Call WarpUserChar(Pareja.Jugador2, 1, 50, 62)
Call SendData(SendTarget.ToAll, 0, 0, "||Pareja > " & UserList(Pareja.Jugador1).name & " y " & UserList(Pareja.Jugador2).name & " abandonaron la sala de duelos 2vs2" & FONTTYPE_GUILD)
UserList(Pareja.Jugador1).flags.EnPareja = False
UserList(Pareja.Jugador1).flags.EsperaPareja = False
UserList(Pareja.Jugador1).flags.SuPareja = 0
UserList(Pareja.Jugador2).flags.EnPareja = False
UserList(Pareja.Jugador2).flags.EsperaPareja = False
UserList(Pareja.Jugador2).flags.SuPareja = 0
HayPareja = False
Exit Sub
Else
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||No puedes utilizar este comando" & FONTTYPE_INFO)
Exit Sub
End If
En el sub userdie, abajo de userlist(userindex).flags.muerto = 1 ponen:
' >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> casted - pareja 2vs2
If HayPareja = True then
If UserList(Pareja.Jugador1).flags.EnPareja = True And UserList(Pareja.Jugador2).flags.EnPareja = True And UserList(Pareja.Jugador1).flags.Muerto = 1 And UserList(Pareja.Jugador2).flags.Muerto = 1 Then
Call WarpUserChar(Pareja.Jugador1, 1, 50, 61)
Call WarpUserChar(Pareja.Jugador2, 1, 50, 62)
Call WarpUserChar(Pareja.Jugador3, 1, 50, 63)
Call WarpUserChar(Pareja.Jugador4, 1, 50, 64)
UserList(Pareja.Jugador1).flags.EnPareja = False
UserList(Pareja.Jugador1).flags.EsperaPareja = False
UserList(Pareja.Jugador1).flags.SuPareja = 0
UserList(Pareja.Jugador2).flags.EnPareja = False
UserList(Pareja.Jugador2).flags.EsperaPareja = False
UserList(Pareja.Jugador2).flags.SuPareja = 0
UserList(Pareja.Jugador3).flags.EnPareja = False
UserList(Pareja.Jugador3).flags.EsperaPareja = False
UserList(Pareja.Jugador3).flags.SuPareja = 0
UserList(Pareja.Jugador4).flags.EnPareja = False
UserList(Pareja.Jugador4).flags.EsperaPareja = False
UserList(Pareja.Jugador4).flags.SuPareja = 0
HayPareja = False
Call SendData(SendTarget.ToAll, 0, 0, "||Pareja > " & UserList(Pareja.Jugador1).name & " y " & UserList(Pareja.Jugador2).name & " han sido derrotados" & FONTTYPE_GUILD)
End If
If UserList(Pareja.Jugador3).flags.EnPareja = True And UserList(Pareja.Jugador4).flags.EnPareja = True And UserList(Pareja.Jugador3).flags.Muerto = 1 And UserList(Pareja.Jugador4).flags.Muerto = 1 Then
Call WarpUserChar(Pareja.Jugador1, 1, 50, 61)
Call WarpUserChar(Pareja.Jugador2, 1, 50, 62)
Call WarpUserChar(Pareja.Jugador3, 1, 50, 63)
Call WarpUserChar(Pareja.Jugador4, 1, 50, 64)
UserList(Pareja.Jugador1).flags.EnPareja = False
UserList(Pareja.Jugador1).flags.EsperaPareja = False
UserList(Pareja.Jugador1).flags.SuPareja = 0
UserList(Pareja.Jugador2).flags.EnPareja = False
UserList(Pareja.Jugador2).flags.EsperaPareja = False
UserList(Pareja.Jugador2).flags.SuPareja = 0
UserList(Pareja.Jugador3).flags.EnPareja = False
UserList(Pareja.Jugador3).flags.EsperaPareja = False
UserList(Pareja.Jugador3).flags.SuPareja = 0
UserList(Pareja.Jugador4).flags.EnPareja = False
UserList(Pareja.Jugador4).flags.EsperaPareja = False
UserList(Pareja.Jugador4).flags.SuPareja = 0
HayPareja = False
Call SendData(SendTarget.ToAll, 0, 0, "||Pareja > " & UserList(Pareja.Jugador3).name & " y " & UserList(Pareja.Jugador4).name & " han sido derrotados" & FONTTYPE_GUILD)
End If
End If
En el case /SALIR, ponen:
'casted - pareja 2vs2
If UserList(UserIndex).Pos.Map = 3 Then 'mapa de pareja
Exit Sub
End If
Bueno, todo en el servidor:
Arriba de Type tEstadisticasDiarias, ponen
'Casted - pareja 2vs2
Public HayPareja As Boolean
Arriba de Public type Userflags, ponen:
'Casted - pareja 2vs2
Public Pareja As Pareja
Public Type Pareja
Jugador1 As Integer
Jugador2 As Integer
Jugador3 As Integer
Jugador4 As Integer
End Type
Abajo de Public type userflags ponen:
'casted - pareja 2vs2
SuPareja As Integer
EsperaPareja As Boolean
EnPareja As Boolean
En handledata_2 buscan:
Select Case UCase$(Left$(rData, )
abajo ponen:
'Casted - pareja 2vs2
Case "/PAREJA "
rData = Right$(rData, Len(rData) -
tIndex = NameIndex(ReadField(1, rData, 32))
If tIndex = UserIndex Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||No puedes formar pareja contigo mismo" & FONTTYPE_INFO)
Exit Sub
End If
If tIndex <= 0 Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Usuario offline" & FONTTYPE_INFO)
Exit Sub
End If
If UserList(UserIndex).flags.Muerto = 1 Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Estas muerto" & FONTTYPE_INFO)
Exit Sub
End If
If UserList(tIndex).flags.Muerto = 1 Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Esta muerto" & FONTTYPE_INFO)
Exit Sub
End If
If UserList(UserIndex).Pos.Map = 5 Then 'mapa de duelos 2vs2
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Ya estas en la sala de duelos 2vs2" & FONTTYPE_INFO)
Exit Sub
End If
If HayPareja = True Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||Esta ocupado" & FONTTYPE_INFO)
Exit Sub
End If
If UserList(UserIndex).Clase = UserList(tIndex).Clase Then
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||No puedes formar pareja con otro usuario de tu misma clase" & FONTTYPE_INFO)
Exit Sub
End If
If MapInfo(5).NumUsers = 0 Then 'mapa de duelos 2vs2
UserList(tIndex).flags.EsperaPareja = True
UserList(UserIndex).flags.SuPareja = tIndex
If UserList(UserIndex).flags.EsperaPareja = False Then
Call SendData(SendTarget.ToIndex, tIndex, 0, "||Pareja > " & UserList(UserIndex).name & " te ha ofrecido formar pareja, escribe /pareja " & UserList(UserIndex).name & " para ingresar el duelo 2vs2" & FONTTYPE_INFO)
End If
If UserList(tIndex).flags.SuPareja = UserIndex Then
Pareja.Jugador1 = UserIndex
Pareja.Jugador2 = tIndex
UserList(Pareja.Jugador1).flags.EnPareja = True
UserList(Pareja.Jugador2).flags.EnPareja = True
Call WarpUserChar(Pareja.Jugador1, 5, 50, 70) 'mapa 2vs2, posicion jugador numero 1
Call WarpUserChar(Pareja.Jugador2, 5, 50, 72) 'mapa 2vs2, posicion jugador numero 2
Call SendData(SendTarget.ToAll, 0, 0, "||Pareja > " & UserList(UserIndex).name & " y " & UserList(tIndex).name & " ingresaron a la sala de duelos 2vs2, para desafiarlos escribe /pareja y el nombre de tu pareja" & FONTTYPE_GUILD)
End If
Exit Sub
End If
If MapInfo(5).NumUsers = 2 Then 'mapa de duelos 2vs2
UserList(tIndex).flags.EsperaPareja = True
UserList(UserIndex).flags.SuPareja = tIndex
If UserList(UserIndex).flags.EsperaPareja = False Then
Call SendData(SendTarget.ToIndex, tIndex, 0, "||Pareja > " & UserList(UserIndex).name & " te ha ofrecido formar pareja, escribe /pareja " & UserList(UserIndex).name & " para ingresar el duelo 2vs2" & FONTTYPE_INFO)
End If
If UserList(tIndex).flags.SuPareja = UserIndex Then
Pareja.Jugador3 = UserIndex
Pareja.Jugador4 = tIndex
UserList(Pareja.Jugador3).flags.EnPareja = True
UserList(Pareja.Jugador4).flags.EnPareja = True
Call WarpUserChar(Pareja.Jugador3, 5, 50, 74) 'mapa 2vs2, posicion jugador numero 3
Call WarpUserChar(Pareja.Jugador4, 5, 50, 75) 'mapa 2vs2, posicion jugador numero 4
Call SendData(SendTarget.ToAll, 0, 0, "||Pareja > " & UserList(UserIndex).name & " y " & UserList(tIndex).name & " han ingresado a la sala de duelos 2vs2" & FONTTYPE_GUILD)
HayPareja = True
End If
Exit Sub
End If
Arriba del case /est, ponen:
'Casted - pareja 2vs2
Case "/ABANDONAR"
If MapInfo(5).NumUsers = 2 And UserList(UserIndex).flags.EnPareja = True Then 'mapa de duelos 2vs2
Call WarpUserChar(Pareja.Jugador1, 1, 50, 60)
Call WarpUserChar(Pareja.Jugador2, 1, 50, 62)
Call SendData(SendTarget.ToAll, 0, 0, "||Pareja > " & UserList(Pareja.Jugador1).name & " y " & UserList(Pareja.Jugador2).name & " abandonaron la sala de duelos 2vs2" & FONTTYPE_GUILD)
UserList(Pareja.Jugador1).flags.EnPareja = False
UserList(Pareja.Jugador1).flags.EsperaPareja = False
UserList(Pareja.Jugador1).flags.SuPareja = 0
UserList(Pareja.Jugador2).flags.EnPareja = False
UserList(Pareja.Jugador2).flags.EsperaPareja = False
UserList(Pareja.Jugador2).flags.SuPareja = 0
HayPareja = False
Exit Sub
Else
Call SendData(SendTarget.ToIndex, UserIndex, 0, "||No puedes utilizar este comando" & FONTTYPE_INFO)
Exit Sub
End If
En el sub userdie, abajo de userlist(userindex).flags.muerto = 1 ponen:
' >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> casted - pareja 2vs2
If HayPareja = True then
If UserList(Pareja.Jugador1).flags.EnPareja = True And UserList(Pareja.Jugador2).flags.EnPareja = True And UserList(Pareja.Jugador1).flags.Muerto = 1 And UserList(Pareja.Jugador2).flags.Muerto = 1 Then
Call WarpUserChar(Pareja.Jugador1, 1, 50, 61)
Call WarpUserChar(Pareja.Jugador2, 1, 50, 62)
Call WarpUserChar(Pareja.Jugador3, 1, 50, 63)
Call WarpUserChar(Pareja.Jugador4, 1, 50, 64)
UserList(Pareja.Jugador1).flags.EnPareja = False
UserList(Pareja.Jugador1).flags.EsperaPareja = False
UserList(Pareja.Jugador1).flags.SuPareja = 0
UserList(Pareja.Jugador2).flags.EnPareja = False
UserList(Pareja.Jugador2).flags.EsperaPareja = False
UserList(Pareja.Jugador2).flags.SuPareja = 0
UserList(Pareja.Jugador3).flags.EnPareja = False
UserList(Pareja.Jugador3).flags.EsperaPareja = False
UserList(Pareja.Jugador3).flags.SuPareja = 0
UserList(Pareja.Jugador4).flags.EnPareja = False
UserList(Pareja.Jugador4).flags.EsperaPareja = False
UserList(Pareja.Jugador4).flags.SuPareja = 0
HayPareja = False
Call SendData(SendTarget.ToAll, 0, 0, "||Pareja > " & UserList(Pareja.Jugador1).name & " y " & UserList(Pareja.Jugador2).name & " han sido derrotados" & FONTTYPE_GUILD)
End If
If UserList(Pareja.Jugador3).flags.EnPareja = True And UserList(Pareja.Jugador4).flags.EnPareja = True And UserList(Pareja.Jugador3).flags.Muerto = 1 And UserList(Pareja.Jugador4).flags.Muerto = 1 Then
Call WarpUserChar(Pareja.Jugador1, 1, 50, 61)
Call WarpUserChar(Pareja.Jugador2, 1, 50, 62)
Call WarpUserChar(Pareja.Jugador3, 1, 50, 63)
Call WarpUserChar(Pareja.Jugador4, 1, 50, 64)
UserList(Pareja.Jugador1).flags.EnPareja = False
UserList(Pareja.Jugador1).flags.EsperaPareja = False
UserList(Pareja.Jugador1).flags.SuPareja = 0
UserList(Pareja.Jugador2).flags.EnPareja = False
UserList(Pareja.Jugador2).flags.EsperaPareja = False
UserList(Pareja.Jugador2).flags.SuPareja = 0
UserList(Pareja.Jugador3).flags.EnPareja = False
UserList(Pareja.Jugador3).flags.EsperaPareja = False
UserList(Pareja.Jugador3).flags.SuPareja = 0
UserList(Pareja.Jugador4).flags.EnPareja = False
UserList(Pareja.Jugador4).flags.EsperaPareja = False
UserList(Pareja.Jugador4).flags.SuPareja = 0
HayPareja = False
Call SendData(SendTarget.ToAll, 0, 0, "||Pareja > " & UserList(Pareja.Jugador3).name & " y " & UserList(Pareja.Jugador4).name & " han sido derrotados" & FONTTYPE_GUILD)
End If
End If
En el case /SALIR, ponen:
'casted - pareja 2vs2
If UserList(UserIndex).Pos.Map = 3 Then 'mapa de pareja
Exit Sub
End If
santi55Nivel 12 -
Advertencias : 1
Mensajes : 156
Puntos : 51297
Reputación : 1
Fecha de inscripción : 19/12/2010
País :
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.