ZankuR Director
Cantidad de envíos : 107 Fecha de inscripción : 19/07/2013
| Tema: 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.0Empezemos 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 | |
|