Ahora lo que nos falta hacer es el comando para crear subastas, para participar en una subasta, para cerrar una subasta y para ver la informacion de la subasta asi que ahora hacemos esto.
Código:
'Subastar
If UCase$(Left$(rdata, 10)) = "/SUBASTAR " Then
rdata = Right$(rdata, Len(rdata) - 10)
If Not UserList(UserIndex).Stats.UserSkills(Comerciar) >= 50 Then
Call SendData(ToIndex, UserIndex, 0, "||Nesesitas almenos 50 puntos en comercio para poder subastar." & FONTTYPE_INFO)
Exit Sub
End If
If frmMain.subastaActivada.Caption = 0 Then
Call SendData(ToIndex, UserIndex, 0, "||Los gms han desactivado el sistema de subastas, porfavor espera un rato y vuelve a intentar." & FONTTYPE_INFO)
Exit Sub
End If
If UserList(UserIndex).Stats.ELV < 15 Then
Call SendData(ToIndex, UserIndex, 0, "||Nesesitas nivel 25 para organizar una subasta." & FONTTYPE_INFO)
Exit Sub
End If
'Gracias gs por la ayuda con algunos parametros.
' [GS]
If InStr(rdata, "@") = False Then
Call SendData(ToIndex, UserIndex, 0, "||Debes usar @ para separar los terminos." & FONTTYPE_INFO)
Exit Sub
End If
If Numeric(ReadField(1, rdata, Asc("@"))) = False Or Numeric(ReadField(2, rdata, Asc("@"))) = False Or Numeric(ReadField(3, rdata, Asc("@"))) = False Then
Call SendData(ToIndex, UserIndex, 0, "||Uno de tus parametros no es numericos." & FONTTYPE_INFO)
Exit Sub
End If
If ReadField(1, rdata, Asc("@")) < 1 Or ReadField(1, rdata, Asc("@")) > 20 Or ReadField(2, rdata, Asc("@")) < 1 Or ReadField(2, rdata, Asc("@")) > 10000 Or ReadField(3, rdata, Asc("@")) < 1 Then
Call SendData(ToIndex, UserIndex, 0, "||Uno de tus parametros es invalido." & FONTTYPE_INFO)
Exit Sub
End If
' [/GS]
Dim LagaIndex
LagaIndex = ReadField(1, rdata, Asc("@")) ' SLOT
If UserList(UserIndex).Invent.Object(LagaIndex).Amount > 0 Then
LagaObj.ObjIndex = UserList(UserIndex).Invent.Object(LagaIndex).ObjIndex
Else
Call SendData(ToIndex, UserIndex, 0, "||No hay ningun item en ese slot!." & FONTTYPE_INFO)
Exit Sub
End If
If UserList(UserIndex).Invent.Object(LagaIndex).Equipped > 0 Then
Call SendData(ToIndex, UserIndex, 0, "||No puedes subastar ese item porque lo estas usando!." & FONTTYPE_INFO)
Exit Sub
End If
LagaObj.Amount = ReadField(2, rdata, Asc("@")) ' CANTIDAD
Dim LagaInicial
LagaInicial = ReadField(3, rdata, Asc("@")) ' VALOR INICIAL
'If (Not IsNumeric(ReadField(1, rdata, Asc("@")))) Or LagaObj.Amount = "" Or LagaInicial = "" Then
' Call SendData(ToIndex, UserIndex, 0, "||Utilice /Subastar Slot@Cantidad@Precio" & FONTTYPE_INFO)
' Exit Sub
' End If
Dim LagaSubActivaA
LagaSubActivaA = GetVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Activa")
If LagaSubActivaA = 1 Then
Call SendData(ToIndex, UserIndex, 0, "||Ya hay una subasta activa en estos momentos!." & FONTTYPE_INFO)
Exit Sub
End If
If Not ObjData(LagaObj.ObjIndex).Subastable = 1 Then
Call SendData(ToIndex, UserIndex, 0, "||Este objeto no puede ser subastado!." & FONTTYPE_INFO)
Exit Sub
End If
If Not TieneObjetos(LagaObj.ObjIndex, LagaObj.Amount, UserIndex) Then
Call SendData(ToIndex, UserIndex, 0, "||No posees el objeto o la cantidad que deseas subastar." & FONTTYPE_INFO)
Exit Sub
End If
Dim LagaNombre
LagaNombre = ObjData(LagaObj.ObjIndex).Name
frmMain.SubastaLabel2 = 180
frmMain.SubastaLabel = 180
Call WriteVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Activa", "1")
Call WriteVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Ofertaron", "0")
Call WriteVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Valor", "" & LagaInicial & "")
Call WriteVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Vendedor", "" & UserList(UserIndex).Name & "")
Call WriteVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Comprador", "0")
Call WriteVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Objeto", "" & LagaObj.ObjIndex & "")
Call WriteVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Cantidad", "" & LagaObj.Amount & "")
Call SendData(ToAll, 0, 0, "||" & UserList(UserIndex).Name & " esta subastando " & LagaObj.Amount & " " & LagaNombre & " con un valor inicial de " & LagaInicial & " monedas de oro, Para participar escribe /Ofertar Cantidad, les recuerdo que solamente tienen 5 minuto para ofertar." & FONTTYPE_SUBASTA)
frmMain.SubastaTIMER.Enabled = True
Exit Sub
End If
If UCase$(Left$(rdata, 9)) = "/OFERTAR " Then
Dim LagaOro As Long
LagaOro = Right$(rdata, Len(rdata) - 9)
Dim LagaSubActiva
LagaSubActiva = GetVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Activa")
Dim LagaValorFinalXI As Long
LagaValorFinalXI = GetVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Valor")
If UserList(UserIndex).Stats.ELV < 15 Then
Call SendData(ToIndex, UserIndex, 0, "||Nesesitas almenos tener nivel 15 para poder participar en una subasta." & FONTTYPE_INFO)
Exit Sub
End If
If Not UserList(UserIndex).Stats.UserSkills(Comerciar) >= 20 Then
Call SendData(ToIndex, UserIndex, 0, "||Nesesitas tener almenos 20 puntos en comercio para poder participar en una subasta." & FONTTYPE_INFO)
Exit Sub
End If
If LagaSubActiva = 0 Then
Call SendData(ToIndex, UserIndex, 0, "||No hay ninguna subasta activa!." & FONTTYPE_INFO)
Exit Sub
End If
If LagaOro > UserList(UserIndex).Stats.GLD Then
Call SendData(ToIndex, UserIndex, 0, "||No posees esa cantidad de oro." & FONTTYPE_INFO)
Exit Sub
End If
If Not LagaOro > LagaValorFinalXI + 499 Then
Call SendData(ToIndex, UserIndex, 0, "||Debe haber almenos una diferencia de 500 monedas a la ultima oferta!." & FONTTYPE_INFO)
Exit Sub
End If
If LagaOro > LagaValorFinalXI Then
LagaValorFinalXI = LagaOro
Call WriteVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Valor", "" & LagaValorFinalXI & "")
Call WriteVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Comprador", "" & UserList(UserIndex).Name & "")
Call SendData(ToAll, 0, 0, "||" & UserList(UserIndex).Name & " a superado la oferta anterior ofreciendo " & LagaValorFinalXI & " Monedas de oro, Para participar escribe /Ofertar Cantidad." & FONTTYPE_SUBASTA)
Call WriteVar(App.Path & "\Dat\" & "Subasta.ini", "Subasta", "Ofertaron", "1")
Else
Call SendData(ToIndex, UserIndex, 0, "||Losiento, ya hay una oferta mayor o igual a la tuya." & FONTTYPE_INFO)
Exit Sub
End If
Exit Sub
End If