Retos 1vs1

^[GS]^

GS-Zone Admin
Administrador
Está innecesario que pongas el nombre, así que puedes cambiar esto:
Código:
If UCase$(Left$(rdata, 7)) = "/RETAR " Then
    rdata = Right$(rdata, Len(rdata) - 7)
Por esto:

Código:
If UCase$(Left$(rdata, 6)) = "/RETAR" Then
    rdata = Right$(rdata, Len(rdata) - 6)

' y eliminar esto:

If UserList(UserIndex).flags.Canjes < rdata Then
    Call SendData(ToIndex, UserIndex, 0, "||Flashaste salchichon no tenes canjes suficientes." & FONTTYPE_TALK)
    Exit Sub
    End If
Creo que con ese ajuste, podría funcionar. Pero es teoría, hay que revisar bien, se supone que la linea `dudu = UserList(UserIndex).flags.TargetUser` sabe a quien le hiciste el click.
 

Guarde

Newbie Lvl 2
Está innecesario que pongas el nombre, así que puedes cambiar esto:
Código:
If UCase$(Left$(rdata, 7)) = "/RETAR " Then
    rdata = Right$(rdata, Len(rdata) - 7)
Por esto:

Código:
If UCase$(Left$(rdata, 6)) = "/RETAR" Then
    rdata = Right$(rdata, Len(rdata) - 6)

' y eliminar esto:

If UserList(UserIndex).flags.Canjes < rdata Then
    Call SendData(ToIndex, UserIndex, 0, "||Flashaste salchichon no tenes canjes suficientes." & FONTTYPE_TALK)
    Exit Sub
    End If
Creo que con ese ajuste, podría funcionar. Pero es teoría, hay que revisar bien, se supone que la linea `dudu = UserList(UserIndex).flags.TargetUser` sabe a quien le hiciste el click.
MMmm me parece que no me entendiste, lo que quiero es que para retar yo ponga /retar "nick del oponente"
En si lo que yo quiero es hacer un sistema de reto x canjes con frm pero para el frm necesito /retar nick no /retar click, quiero poner el nick en el form style blosam
Algo como esto https://www.gs-zone.org/temas/sistema-de-retos-1-vs-1.28480/ pero x canjes.
 

Ahlev

Newbie Lvl 5
MMmm me parece que no me entendiste, lo que quiero es que para retar yo ponga /retar "nick del oponente"
En si lo que yo quiero es hacer un sistema de reto x canjes con frm pero para el frm necesito /retar nick no /retar click, quiero poner el nick en el form style blosam
Algo como esto https://www.gs-zone.org/temas/sistema-de-retos-1-vs-1.28480/ pero x canjes.
Código:
If UCase$(Left(rdata, 7)) = "/RETAR " Then
rdata = Right$(rdata, Len(rdata) - 7)
tIndex = NameIndex(rdata)
Call EnviaReto(UserIndex, tIndex)
Exit Sub
End If
 

Guarde

Newbie Lvl 2
Código:
If UCase$(Left(rdata, 7)) = "/RETAR " Then
rdata = Right$(rdata, Len(rdata) - 7)
tIndex = NameIndex(rdata)
Call EnviaReto(UserIndex, tIndex)
Exit Sub
End If
Esta perfecto eso, el tema es que pongo /retar ahlev y nos envia directamente a retar, no te da la opcion a vos de aceptar o rechazar...
PD: Estoy pensando en basarme en este sistema de retos https://www.gs-zone.org/temas/sistema-de-retos-1-vs-1.28480/ pero el tema es que quiero hacerlo por canjes y poniendo /retar nick (en un frm el nick) y los canjes tambien en un frm
Este sistema https://www.gs-zone.org/temas/retos-1v1-opciones.60913/ tambien esta bueno pero intente de mil maneras hacer eso /retar "nick", necesito ayudaa
 

gercho

Loading...
Esta perfecto eso, el tema es que pongo /retar ahlev y nos envia directamente a retar, no te da la opcion a vos de aceptar o rechazar...
PD: Estoy pensando en basarme en este sistema de retos https://www.gs-zone.org/temas/sistema-de-retos-1-vs-1.28480/ pero el tema es que quiero hacerlo por canjes y poniendo /retar nick (en un frm el nick) y los canjes tambien en un frm
Este sistema https://www.gs-zone.org/temas/retos-1v1-opciones.60913/ tambien esta bueno pero intente de mil maneras hacer eso /retar "nick", necesito ayudaa
Antes de hacer el llamado al EnviarReto() te conviene un msjbox con Ok y Cancel, en caso de que el "retado" ponga Ok llamas al EnviarReto y si pone Cancel que haga exit..
 

Guarde

Newbie Lvl 2
Pude hacer un sistema de retos mediante /RETAR "nick"@"canjes" pero al finalizar el reto tira saliendo en 10 segundos.. alguna ayuda? cuando pueda solucionar eso aporto el sistema..
 

Toyz

Newbie Lvl 6
Especialista de Argentum
Pude hacer un sistema de retos mediante /RETAR "nick"@"canjes" pero al finalizar el reto tira saliendo en 10 segundos.. alguna ayuda? cuando pueda solucionar eso aporto el sistema..
a ver el código que hiciste
 

Guarde

Newbie Lvl 2
Código:
    If UCase$(Left$(rdata, 7)) = "/RETAR " Then

        dMap = 5
        rdata = Right$(rdata, Len(rdata) - 7)
        dUser = ReadField(1, rdata, Asc("@"))

        If NameIndex(dUser) = 0 Then
            Call SendData(ToIndex, UserIndex, 0, "||Usuario offline." & FONTTYPE_RETOS)
            Exit Sub
        Else
            dIndex = NameIndex(dUser)
        End If

        retocanje = ReadField(2, rdata, Asc("@"))
        If dIndex = UserIndex Then
            Call SendData(ToIndex, UserIndex, 0, "||No podes retarte vos mismo." & FONTTYPE_RETOS)
            Exit Sub
        End If

        If UserList(UserIndex).flags.Canje < val(retocanje) Then
            Call SendData(ToIndex, UserIndex, 0, "||No tenes esa cantidad de canjes." & FONTTYPE_RETOS)
            Exit Sub
        End If

        If UserList(dIndex).flags.Canje < val(retocanje) Then
            Call SendData(ToIndex, UserIndex, 0, "||El usuario no tiene esa cantidad de canjes." & FONTTYPE_RETOS)
            Exit Sub
        End If
        If UserList(UserIndex).POS.Map = 22 Or UserList(UserIndex).POS.Map = 205 Or UserList(UserIndex).POS.Map = 14 Or UserList(UserIndex).POS.Map = 19 Or UserList(UserIndex).POS.Map = 5 Or UserList(UserIndex).POS.Map = 7 Then Exit Sub

        If UserList(UserIndex).flags.Muerto Then
            Call SendData(ToIndex, UserIndex, 0, "||Estas muerto!!." & FONTTYPE_RETOS)
            Exit Sub
        End If
        If UserList(UserIndex).POS.Map = 66 Then
            Call SendData(ToIndex, UserIndex, 0, "||Estas en carcel!!. " & FONTTYPE_RETOS)
            Exit Sub
        End If

        If UserList(dIndex).POS.Map = 66 Then
            Call SendData(ToIndex, UserIndex, 0, "||Esta en carcel tu oponente!!. " & FONTTYPE_RETOS)
            Exit Sub
        End If
        If UserList(dIndex).flags.Muerto Then
            Call SendData(ToIndex, UserIndex, 0, "||El usuario està muerto." & FONTTYPE_RETOS)
            Exit Sub
        End If

        If MapInfo(dMap).NumUsers = 2 Then
            Call SendData(ToIndex, UserIndex, 0, "||Ya hay un reto en curso, esperà que termine." & FONTTYPE_RETOS)
            Exit Sub
        End If
        UserList(dIndex).flags.LeMandaronDuelo = True
        UserList(dIndex).flags.UltimoEnMandarDuelo = UserList(UserIndex).Name
        Call SendData(ToIndex, (dIndex), 0, "||" & UserList(UserIndex).Name & " [" & ListaClases(UserList(UserIndex).Clase) & " - " & UserList(UserIndex).Stats.ELV & "] - te està desafiando en un duelo por " & PonerPuntos(val(dmoney)) & " punto de canjeo, para aceptar tipea /ACEPTAR." & "~15~255~130~1~0")

    End If
 
  If UCase$(Left$(rdata, 8)) = "/ACEPTAR" Then

        If UserList(UserIndex).POS.Map = 22 Or UserList(UserIndex).POS.Map = 205 Or UserList(UserIndex).POS.Map = 14 Or UserList(UserIndex).POS.Map = 19 Or UserList(UserIndex).POS.Map = 5 Or UserList(UserIndex).POS.Map = 7 Then Exit Sub
        If UserList(UserIndex).flags.LeMandaronDuelo = False Then
            Call SendData(ToIndex, UserIndex, 0, "||Nadie te ha retado." & FONTTYPE_RETOS)
            Exit Sub
        Else

            If UserList(UserIndex).flags.Muerto Then
                Call SendData(ToIndex, UserIndex, 0, "||Estas muerto!!." & FONTTYPE_RETOS)
                Exit Sub
            End If

            If UserList(UserIndex).POS.Map = 66 Then
                Call SendData(ToIndex, UserIndex, 0, "||Estas en carcel!!. " & FONTTYPE_RETOS)
                Exit Sub
            End If

            If UserList(UserIndex).flags.Canje < val(retocanje) Then
                Call SendData(ToIndex, UserIndex, 0, "||No tenes " & PonerPuntos(val(retocanje)) & " puntos de canjeo para retar." & FONTTYPE_RETOS)
                Exit Sub
            End If

            If MapInfo(val(dMap)).NumUsers = 2 Then
                Call SendData(ToIndex, UserIndex, 0, "||Ya hay un reto en curso, esperà que termine." & FONTTYPE_RETOS)
                Exit Sub
            End If

            If UserList(NameIndex(UserList(UserIndex).flags.UltimoEnMandarDuelo)).flags.Muerto Then
                Call SendData(ToIndex, UserIndex, 0, "||El usuario està muerto." & FONTTYPE_RETOS)
                Exit Sub
            End If

            If UserList(NameIndex(UserList(UserIndex).flags.UltimoEnMandarDuelo)).POS.Map = 66 Then
                Call SendData(ToIndex, UserIndex, 0, "||Esta en carcel el otro usuario!!. " & FONTTYPE_RETOS)
                Exit Sub
            End If
            If UserList(NameIndex(UserList(UserIndex).flags.UltimoEnMandarDuelo)).flags.Canje < val(dmoney) Then
                Call SendData(ToIndex, UserIndex, 0, "||El usuario no tiene canjes suficiente para retar." & FONTTYPE_RETOS)
                Exit Sub
            End If

            If NameIndex(UserList(UserIndex).flags.UltimoEnMandarDuelo) = 0 Then
                Call SendData(ToIndex, UserIndex, 0, "||El usuario que te reto, està offline." & FONTTYPE_RETOS)
                Exit Sub
            End If

        End If
Eso es la parte del /retar /aceptar, el tema es cuando lo mato a mi contrincante, si lo mato con un hechizo no hay problema, el tema es cuando lo mato con un golpe.. dice saliendo en 10 segs.
 

Toyz

Newbie Lvl 6
Especialista de Argentum
el tema es cuando lo mato con un golpe.. dice saliendo en 10 segs.
una pregunta, esto te pasaba anteriormente?
Porque si es así ya directamente me paso a ver el aporte, sino dejame la parte en donde declarás al usuario como ganador del reto y al otro como perdedor.
 

Guarde

Newbie Lvl 2
Esto me pasa ahora que implemente el "/retar [email protected]" antes era /RETAR Click
te dejo lo del sub userdie
Código:
 If UserList(UserIndex).flags.Endueloo Then

        Dim uDuelo1 As Integer
        Dim uDuelo2 As Integer

        uDuelo2 = NameIndex(UserList(UserIndex).flags.DueliandoContra)
        uDuelo1 = UserIndex

        'Reset reto perdedor
        UserList(uDuelo1).flags.Endueloo = False
        UserList(uDuelo1).flags.DueliandoContra = ""
        UserList(uDuelo1).flags.LeMandaronDuelo = False
        UserList(uDuelo1).flags.UltimoEnMandarDuelo = ""
        '''''''''''''''
        
        'Set Usuario Ganador
        UserList(uDuelo2).flags.Endueloo = False
        UserList(uDuelo2).flags.DueliandoContra = ""
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

        Call SendData(ToAll, 0, 0, "||Retos>" & UserList(uDuelo2).Name & " venció en reto a " & UserList(uDuelo1).Name & " por " & PonerPuntos(val(retocanje)) & " puntos de canjes." & "~15~255~130~0~1")
        UserList(uDuelo2).flags.Canje = UserList(uDuelo2).flags.Canje + (val(retocanje)) * 2
        Call SendUserORO(uDuelo2)
        retocanje = ""
        Call WarpUserChar(uDuelo1, UserList(uDuelo1).flags.ViejaPos.Map, UserList(uDuelo1).flags.ViejaPos.X, UserList(uDuelo1).flags.ViejaPos.Y, True)
        Call WarpUserChar(uDuelo2, UserList(uDuelo2).flags.ViejaPos.Map, UserList(uDuelo2).flags.ViejaPos.X, UserList(uDuelo2).flags.ViejaPos.Y, True)
    End If
 

Toyz

Newbie Lvl 6
Especialista de Argentum
Se me hace complicado resolverlo así, mañana a las 21:15 por team viewer. Si estás lo arreglamos por ahí así meto breakpoints etc dsp dejamos la solucion
 

Guarde

Newbie Lvl 2
Se me hace complicado resolverlo así, mañana a las 21:15 por team viewer. Si estás lo arreglamos por ahí así meto breakpoints etc dsp dejamos la solucion
Buenisimo, voy a estar al tanto..
Post automatically merged:

Les vengo a comentar que no es solamente con los retos.. tambien con saturos, deathmatch y plantes.. Pense que toquetie algo yo y agarre fenix virgen y puse saturos para probar pero la verdad sigue pasando lo mismo y es simplemente al matar a un usuario con un golpe..
 
Última edición:

Ahlev

Newbie Lvl 5
Buenisimo, voy a estar al tanto..
Post automatically merged:

Les vengo a comentar que no es solamente con los retos.. tambien con saturos, deathmatch y plantes.. Pense que toquetie algo yo y agarre fenix virgen y puse saturos para probar pero la verdad sigue pasando lo mismo y es simplemente al matar a un usuario con un golpe..
Cabezear una bala es una buena solucion bro
 
Arriba