ÍndiceCalendarioIndiceFAQBuscarMiembrosGrupos de UsuariosRegistrarseConectarseReglamento
¿Quién está en línea?
En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Ninguno

La mayor cantidad de usuarios en línea fue 16 el Miér Ago 07, 2013 8:12 pm.
Mejores posteadores
Rango
 
Habauc
 
Trogclodita
 
WhoTeR
 
Tomm-
 
ZankuR
 
GM-PekeMixz
 
LuciMoyo
 
MwM
 
Diclut s2 Lalaa♥
 
Estadísticas
Tenemos 97 miembros registrados.
El último usuario registrado es PekeMixzGamer1

Nuestros miembros han publicado un total de 1289 mensajes en 264 argumentos.

Comparte | 
 

 Anti-dupeo x13

Ir abajo 
AutorMensaje
ZankuR
Director
Director
avatar

Cantidad de envíos : 107
Fecha de inscripción : 19/07/2013

MensajeTema: Anti-dupeo x13   Lun Ago 12, 2013 9:16 pm

Bueno, hay muchas personas que quieren hacer un Ao x13 pero no puede ya que se puede dupear con el banco le dejo el anti-dupeo que tiene Hispano Ao y la primera version de dolores AO saludos, fue extraido de Un clon de Hispano Ao 13.0

Empezemos con el servidor :

Buscamos :

Código:
Public Type tCOmercioUsuario
    DestUsu As Integer 'El otro Usuario
    DestNick As String
    Objeto(1 To MAX_OFFER_SLOTS) As Integer 'Indice de los objetos que se desea dar
    GoldAmount As Long
 
    cant(1 To MAX_OFFER_SLOTS) As Long 'Cuantos objetos desea dar
    Acepto As Boolean
    Confirmo As Boolean
End Type
Abajo ponemos:

Código:
Private Type tOfferItem
    ObjIndex As Integer
    Amount As Long
End Type
Buscamos:

Código:
'origen: origen de la transaccion, originador del comando
'destino: receptor de la transaccion
Public Sub IniciarComercioConUsuario(ByVal Origen As Integer, ByVal Destino As Integer)
'***************************************************
'Autor: Unkown
'Last Modification: 25/11/2009
'
'***************************************************
    On Error GoTo ErrHandler
 
    'Si ambos pusieron /comerciar entonces
    If UserList(Origen).ComUsu.DestUsu = Destino And _
      UserList(Destino).ComUsu.DestUsu = Origen Then
Abajo ponemos:

Código:
If UserList(Origen).flags.Comerciando Or UserList(Destino).flags.Comerciando Then
            Call WriteConsoleMsg(Origen, "No puedes comerciar en este momento", FontTypeNames.FONTTYPE_TALK)
            Call WriteConsoleMsg(Destino, "No puedes comerciar en este momento", FontTypeNames.FONTTYPE_TALK)
            Exit Sub
        End If
Buscamos:

Código:
Public Sub AceptarComercioUsu(ByVal UserIndex As Integer)
'***************************************************
'Autor: Unkown
'Last Modification: 06/05/2010
'25/11/2009: ZaMa - Ahora se traspasan hasta 5 items + oro al comerciar
'06/05/2010: ZaMa - Ahora valida si los usuarios tienen los items que ofertan.
'***************************************************
    Dim TradingObj As Obj
    Dim OtroUserIndex As Integer
    Dim OfferSlot As Integer
 
    UserList(UserIndex).ComUsu.Acepto = True
 
    OtroUserIndex = UserList(UserIndex).ComUsu.DestUsu
 
    ' Acepto el otro?
    If UserList(OtroUserIndex).ComUsu.Acepto = False Then
        Exit Sub
    End If
 
    ' User valido?
    If OtroUserIndex <= 0 Or OtroUserIndex > MaxUsers Then
        Call FinComerciarUsu(UserIndex)
        Exit Sub
    End If
Abajo ponemos:

Código:
' Aceptaron ambos, chequeo que tengan los items que ofertaron
    If Not HasOfferedItems(UserIndex) Then
     
        Call WriteConsoleMsg(UserIndex, "¡¡¡El comercio se canceló porque no posees los ítems que ofertaste!!!", FontTypeNames.FONTTYPE_FIGHT)
        Call WriteConsoleMsg(OtroUserIndex, "¡¡¡El comercio se canceló porque " & UserList(UserIndex).Name & " no posee los ítems que ofertó!!!", FontTypeNames.FONTTYPE_FIGHT)
     
        Call FinComerciarUsu(UserIndex)
        Call FinComerciarUsu(OtroUserIndex)
        Call Protocol.FlushBuffer(OtroUserIndex)
     
        Exit Sub
     
    ElseIf Not HasOfferedItems(OtroUserIndex) Then
     
        Call WriteConsoleMsg(UserIndex, "¡¡¡El comercio se canceló porque " & UserList(OtroUserIndex).Name & " no posee los ítems que ofertó!!!", FontTypeNames.FONTTYPE_FIGHT)
        Call WriteConsoleMsg(OtroUserIndex, "¡¡¡El comercio se canceló porque no posees los ítems que ofertaste!!!", FontTypeNames.FONTTYPE_FIGHT)
     
        Call FinComerciarUsu(UserIndex)
        Call FinComerciarUsu(OtroUserIndex)
        Call Protocol.FlushBuffer(OtroUserIndex)
     
        Exit Sub
     
    End If
Alfinal del ModComercioConUsuario ponemos:

Código:
Private Function HasOfferedItems(ByVal UserIndex As Integer) As Boolean
'***************************************************
'Autor: ZaMa
'Last Modification: 05/06/2010
'Checks whether the user has the offered items in his inventory or not.
'***************************************************
 
    Dim OfferedItems(MAX_OFFER_SLOTS - 1) As tOfferItem
    Dim Slot As Long
    Dim SlotAux As Long
    Dim SlotCount As Long
 
    Dim ObjIndex As Integer
 
    With UserList(UserIndex).ComUsu
     
        ' Agrupo los items que son iguales
        For Slot = 1 To MAX_OFFER_SLOTS
                 
            ObjIndex = .Objeto(Slot)
         
            If ObjIndex > 0 Then
         
                For SlotAux = 0 To SlotCount - 1
                 
                    If ObjIndex = OfferedItems(SlotAux).ObjIndex Then
                        ' Son iguales, aumento la cantidad
                        OfferedItems(SlotAux).Amount = OfferedItems(SlotAux).Amount + .cant(Slot)
                        Exit For
                    End If
                 
                Next SlotAux
             
                ' No encontro otro igual, lo agrego
                If SlotAux = SlotCount Then
                    OfferedItems(SlotCount).ObjIndex = ObjIndex
                    OfferedItems(SlotCount).Amount = .cant(Slot)
                 
                    SlotCount = SlotCount + 1
                End If
             
            End If
         
        Next Slot
     
        ' Chequeo que tengan la cantidad en el inventario
        For Slot = 0 To SlotCount - 1
            If Not HasEnoughItems(UserIndex, OfferedItems(Slot).ObjIndex, OfferedItems(Slot).Amount) Then Exit Function
        Next Slot
     
        ' Compruebo que tenga el oro que oferta
        If UserList(UserIndex).Stats.GLD < .GoldAmount Then Exit Function
     
    End With
 
    HasOfferedItems = True
 
End Function
Buscamos:

Código:
Public Sub HerreroConstruirItem(ByVal UserIndex As Integer, ByVal ItemIndex As Integer)
'***************************************************
'Author: Unknown
'Last Modification: 30/05/2010
'16/11/2009: ZaMa - Implementado nuevo sistema de construccion de items.
'22/05/2010: ZaMa - Los caos ya no suben plebe al trabajar.
'30/05/2010: ZaMa - Los pks no suben plebe al trabajar.
'***************************************************
Dim CantidadItems As Integer
Abajo ponemos:

Código:
Dim OtroUserIndex As Integer
Un poquito mas abajo dice:

Código:
With UserList(UserIndex)
Ponemos abajo:

Código:
If .flags.Comerciando Then
        OtroUserIndex = .ComUsu.DestUsu
         
        If OtroUserIndex > 0 And OtroUserIndex <= MaxUsers Then
            Call WriteConsoleMsg(UserIndex, "¡¡Comercio cancelado, no puedes comerciar mientras trabajas!!", FontTypeNames.FONTTYPE_TALK)
            Call WriteConsoleMsg(OtroUserIndex, "¡¡Comercio cancelado por el otro usuario!!", FontTypeNames.FONTTYPE_TALK)
         
            Call LimpiarComercioSeguro(UserIndex)
            Call Protocol.FlushBuffer(OtroUserIndex)
        End If
    End If
Buscamos:

Código:
Public Sub CarpinteroConstruirItem(ByVal UserIndex As Integer, ByVal ItemIndex As Integer)
'***************************************************
'Author: Unknown
'Last Modification: 28/05/2010
'24/08/2008: ZaMa - Validates if the player has the required skill
'16/11/2009: ZaMa - Implementado nuevo sistema de construccion de items
'22/05/2010: ZaMa - Los caos ya no suben plebe al trabajar.
'28/05/2010: ZaMa - Los pks no suben plebe al trabajar.
'***************************************************
On Error GoTo ErrHandler
 
    Dim CantidadItems As Integer
Ponemos abajo:

Código:
Dim OtroUserIndex As Integer
Un poquito mas abajo dice:

Código:
With UserList(UserIndex)
Abajo ponemos:

Código:
If .flags.Comerciando Then
            OtroUserIndex = .ComUsu.DestUsu
             
            If OtroUserIndex > 0 And OtroUserIndex <= MaxUsers Then
                Call WriteConsoleMsg(UserIndex, "¡¡Comercio cancelado, no puedes comerciar mientras trabajas!!", FontTypeNames.FONTTYPE_TALK)
                Call WriteConsoleMsg(OtroUserIndex, "¡¡Comercio cancelado por el otro usuario!!", FontTypeNames.FONTTYPE_TALK)
             
                Call LimpiarComercioSeguro(UserIndex)
                Call Protocol.FlushBuffer(OtroUserIndex)
            End If
        End If
Buscamos:

Código:
Public Sub DoLingotes(ByVal UserIndex As Integer)
'***************************************************
'Author: Unknown
'Last Modification: 16/11/2009
'16/11/2009: ZaMa - Implementado nuevo sistema de construccion de items
'***************************************************
'    Call LogTarea("Sub DoLingotes")
    Dim Slot As Integer
Abajo ponemos:

Código:
Dim OtroUserIndex As Integer
Un poquito mas abajo dice:

Código:
With UserList(UserIndex)
Abajo ponemos:

Código:
If .flags.Comerciando Then
            OtroUserIndex = .ComUsu.DestUsu
             
            If OtroUserIndex > 0 And OtroUserIndex <= MaxUsers Then
                Call WriteConsoleMsg(UserIndex, "¡¡Comercio cancelado, no puedes comerciar mientras trabajas!!", FontTypeNames.FONTTYPE_TALK)
                Call WriteConsoleMsg(OtroUserIndex, "¡¡Comercio cancelado por el otro usuario!!", FontTypeNames.FONTTYPE_TALK)
             
                Call LimpiarComercioSeguro(UserIndex)
                Call Protocol.FlushBuffer(OtroUserIndex)
            End If
        End If
Buscamos:

Código:
Public Sub DoFundir(ByVal UserIndex As Integer)
'***************************************************
'Author: Unknown
'Last Modification: 03/06/2010
'03/06/2010 - Pato: Si es el último ítem a fundir y está equipado lo desequipamos.
'11/03/2010 - ZaMa: Reemplazo división por producto para uan mejor performanse.
'***************************************************
Dim i As Integer
Abajo ponemos:

Código:
Dim OtroUserIndex As Integer
Un poquito mas abajo dice:

Código:
With UserList(UserIndex)
Abajo ponemos:

Código:
If .flags.Comerciando Then
            OtroUserIndex = .ComUsu.DestUsu
             
            If OtroUserIndex > 0 And OtroUserIndex <= MaxUsers Then
                Call WriteConsoleMsg(UserIndex, "¡¡Comercio cancelado, no puedes comerciar mientras trabajas!!", FontTypeNames.FONTTYPE_TALK)
                Call WriteConsoleMsg(OtroUserIndex, "¡¡Comercio cancelado por el otro usuario!!", FontTypeNames.FONTTYPE_TALK)
             
                Call LimpiarComercioSeguro(UserIndex)
                Call Protocol.FlushBuffer(OtroUserIndex)
            End If
        End If
Buscamos:

Código:
Public Sub DoUpgrade(ByVal UserIndex As Integer, ByVal ItemIndex As Integer)
'***************************************************
'Author: Torres Patricio (Pato)
'Last Modification: 12/08/2009
'12/08/2009: Pato - Implementado nuevo sistema de mejora de items
'***************************************************
Dim ItemUpgrade As Integer
Abajo ponemos:

Código:
Dim OtroUserIndex As Integer
Un poquito mas abajo dice:

Código:
With UserList(UserIndex)
Abajo ponemos:

Código:
If .flags.Comerciando Then
        OtroUserIndex = .ComUsu.DestUsu
         
        If OtroUserIndex > 0 And OtroUserIndex <= MaxUsers Then
            Call WriteConsoleMsg(UserIndex, "¡¡Comercio cancelado, no puedes comerciar mientras trabajas!!", FontTypeNames.FONTTYPE_TALK)
            Call WriteConsoleMsg(OtroUserIndex, "¡¡Comercio cancelado por el otro usuario!!", FontTypeNames.FONTTYPE_TALK)
         
            Call LimpiarComercioSeguro(UserIndex)
            Call Protocol.FlushBuffer(OtroUserIndex)
        End If
    End If
Buscamos:

Código:
If res < 3 Then 'Exito robo
                If UserList(VictimaIndex).flags.Comerciando Then
                    OtroUserIndex = UserList(VictimaIndex).ComUsu.DestUsu
Abajo ponemos:

Código:
If OtroUserIndex > 0 And OtroUserIndex <= MaxUsers Then
                        Call WriteConsoleMsg(VictimaIndex, "¡¡Comercio cancelado, te están robando!!", FontTypeNames.FONTTYPE_TALK)
                        Call WriteConsoleMsg(OtroUserIndex, "¡¡Comercio cancelado por el otro usuario!!", FontTypeNames.FONTTYPE_TALK)
                     
                        Call LimpiarComercioSeguro(VictimaIndex)
                        Call Protocol.FlushBuffer(OtroUserIndex)
                    End If
Buscamos:

Código:
Dim res As Integer
res = RandomNumber(1, 100)
If (res < 20) Then
    If TieneObjetosRobables(VictimaIndex) Then
 
        If UserList(VictimaIndex).flags.Comerciando Then
            OtroUserIndex = UserList(VictimaIndex).ComUsu.DestUsu
Abajo ponemos:

Código:
If OtroUserIndex > 0 And OtroUserIndex <= MaxUsers Then
                Call WriteConsoleMsg(VictimaIndex, "¡¡Comercio cancelado, te están robando!!", FontTypeNames.FONTTYPE_TALK)
                Call WriteConsoleMsg(OtroUserIndex, "¡¡Comercio cancelado por el otro usuario!!", FontTypeNames.FONTTYPE_TALK)
             
                Call LimpiarComercioSeguro(VictimaIndex)
                Call Protocol.FlushBuffer(OtroUserIndex)
            End If
Volver arriba Ir abajo
Ver perfil de usuario
 
Anti-dupeo x13
Volver arriba 
Página 1 de 1.
 Temas similares
-
» Espectacular prototipo de casa anti-tornados
» Anti-disolución de equipos.
» QUE VAMOS A HACER CON EL TEMA FAIR PLAY?
» Propuesta Anti-Dictadores

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