El autor de este mensaje ha sido baneado del foro - Ver el mensaje
- Mi name is eMNivel 3
- Aportes : 3
Mensajes : 189
Edad : 33
Localización : Mar del plata
Esaa, que se piensan.. que nanshe roba aca nomas?? nooo !! JAJA
Empezamos, este codgo es para 0.11.5 pero se puede adaptar para 0.12.1 muy facil ^^
Servidor:
Mover items del inventario...
Buscas:
Arriba pones:
En el Mod Declaraciones, abajo del option explicit pones:
Mod General, abajo de todo pones:
Eso es el servidor, Ahora el cliente !:
Buscamos
Abajo Ponemos:
Buscamos:
Y reemplazas toda la función por:
Al final del clsGraphicalInventory pones:
Buscamos:
y abajo ponemos:
BIEEEN, ESO SERIA EL DRAG & DROP COMO TIENE TIERRAS DEL NORTE AHORA... QUE NO SE VE EL ITEM, PARA QUE SE VEA EL ITEM ESTA ACA ONLY DirectX8 (Hay qe tener DX8 ¬¬)
Hacemos esto, para que se vea el item:
Buscamos:
Abajo Ponemos:
En el mod Declaraciones abajo del Option Explicit ponemos:
En el sub DrawInventory buscamos:
Y arriba ponemos:
Buscamos:
Y reemplazas todo el sub por :
Buscamos:
Y abajo colocamos:
En InventoryWindow_MouseMove Buscamos:
Y debajo ponemos:
Y listo ese seria el Drag & Drop, EN EL INVENTARIO, para 0.11.5 Con o sin DX8...
Empezamos, este codgo es para 0.11.5 pero se puede adaptar para 0.12.1 muy facil ^^
Servidor:
Mover items del inventario...
Buscas:
Case "INFS" 'Informacion del hechizo
Arriba pones:
Case "SWAP" ' Te muevo el item
rData = Right$(rData, Len(rData) - 4)
ObjSlot1 = ReadField(1, rData, 44)
ObjSlot2 = ReadField(2, rData, 44)
SwapObjects (UserIndex)
Exit Sub
En el Mod Declaraciones, abajo del option explicit pones:
' te re muevo el item By eM
Public ObjSlot1 As Byte
Public ObjSlot2 As Byte
Mod General, abajo de todo pones:
Public Sub SwapObjects(ByVal UserIndex As Integer)
Dim tmpUserObj As UserOBJ
With UserList(UserIndex)
'Cambiamos si alguno es una herramienta
If .Invent.HerramientaEqpSlot = ObjSlot1 Then
.Invent.HerramientaEqpSlot = ObjSlot2
ElseIf .Invent.HerramientaEqpSlot = ObjSlot2 Then
.Invent.HerramientaEqpSlot = ObjSlot1
End If
'Cambiamos si alguno es un armor
If .Invent.ArmourEqpSlot = ObjSlot1 Then
.Invent.ArmourEqpSlot = ObjSlot2
ElseIf .Invent.ArmourEqpSlot = ObjSlot2 Then
.Invent.ArmourEqpSlot = ObjSlot1
End If
'Cambiamos si alguno es un barco
If .Invent.BarcoSlot = ObjSlot1 Then
.Invent.BarcoSlot = ObjSlot2
ElseIf .Invent.BarcoSlot = ObjSlot2 Then
.Invent.BarcoSlot = ObjSlot1
End If
'Cambiamos si alguno es un casco
If .Invent.CascoEqpSlot = ObjSlot1 Then
.Invent.CascoEqpSlot = ObjSlot2
ElseIf .Invent.CascoEqpSlot = ObjSlot2 Then
.Invent.CascoEqpSlot = ObjSlot1
End If
'Cambiamos si alguno es un escudo
If .Invent.EscudoEqpSlot = ObjSlot1 Then
.Invent.EscudoEqpSlot = ObjSlot2
ElseIf .Invent.EscudoEqpSlot = ObjSlot2 Then
.Invent.EscudoEqpSlot = ObjSlot1
End If
'Cambiamos si alguno es munición
If .Invent.MunicionEqpSlot = ObjSlot1 Then
.Invent.MunicionEqpSlot = ObjSlot2
ElseIf .Invent.MunicionEqpSlot = ObjSlot2 Then
.Invent.MunicionEqpSlot = ObjSlot1
End If
'Cambiamos si alguno es un arma
If .Invent.WeaponEqpSlot = ObjSlot1 Then
.Invent.WeaponEqpSlot = ObjSlot2
ElseIf .Invent.WeaponEqpSlot = ObjSlot2 Then
.Invent.WeaponEqpSlot = ObjSlot1
End If
'Hacemos el intercambio propiamente dicho
tmpUserObj = .Invent.Object(ObjSlot1)
.Invent.Object(ObjSlot1) = .Invent.Object(ObjSlot2)
.Invent.Object(ObjSlot2) = tmpUserObj
'Actualizamos los 2 slots que cambiamos solamente
Call UpdateUserInv(False, UserIndex, ObjSlot1)
Call UpdateUserInv(False, UserIndex, ObjSlot2)
End With
End Sub
Eso es el servidor, Ahora el cliente !:
Buscamos
Dim InvSelectedItem As Long 'Currently selected item
Abajo Ponemos:
Dim MouseDownSelectedItem As Long
Buscamos:
Private Function ClickItem(ByVal x As Long, ByVal y As Long) As Long
Y reemplazas toda la función por:
Private Function ClickItem(ByVal x As Long, ByVal y As Long) As Long
'***************************************************
'Author: Juan Martín Sotuyo Dodero (Maraxus)
'Last Modify Date: 27/07/04
'Selects the item clicked if it's valid and return's it's index
'***************************************************
Dim TempItem As Long
Dim temp_x As Long
Dim temp_y As Long
temp_x = x \ 32 'TilePixelWidth
temp_y = y \ 32 'TilePixelHeight
TempItem = temp_x + (temp_y + InventoryOffset) * (InventoryWindow.ScaleWidth \ 32) + 1
'Make sure it's within limits
If TempItem <= MAX_INVENTORY_SLOTS Then
ClickItem = TempItem
End If
End Function
Al final del clsGraphicalInventory pones:
Private Sub InventoryWindow_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim TempItem As Long
If Button = 2 Then 'click derecho
TempItem = ClickItem(x, y)
If UserInventory(TempItem).GrhIndex Then
MouseDownSelectedItem = TempItem
Exit Sub
End If
End If
MouseDownSelectedItem = 0
End Sub
Buscamos:
InvSelectedItem = ClickItem(CInt(x), CInt(y))
y abajo ponemos:
If InvSelectedItem <> MouseDownSelectedItem And MouseDownSelectedItem <> 0 And InvSelectedItem <> 0 Then
Call SendData("SWAP" & InvSelectedItem & "," & MouseDownSelectedItem)
End If
BIEEEN, ESO SERIA EL DRAG & DROP COMO TIENE TIERRAS DEL NORTE AHORA... QUE NO SE VE EL ITEM, PARA QUE SE VEA EL ITEM ESTA ACA ONLY DirectX8 (Hay qe tener DX8 ¬¬)
Hacemos esto, para que se vea el item:
Buscamos:
Dim MouseDownSelectedItem As Long
Abajo Ponemos:
Dim MouseX As Integer
Dim MouseY As Integer
En el mod Declaraciones abajo del Option Explicit ponemos:
'Inventory Items, eM
Public MouseOK As Boolean
Public MouseItem As Integer
Public MouseRendOK As Boolean
Public OfMouse As Boolean
Public ButtonIN As Boolean
Public PUEDO As Boolean
En el sub DrawInventory buscamos:
For i = 1 To UBound(UserInventory)
Y arriba ponemos:
If MouseOK = True Then
Call engine.Draw_GrhIndex(MouseItem, MouseX, MouseY)
End If
Buscamos:
Private Sub InventoryWindow_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Y reemplazas todo el sub por :
Private Sub InventoryWindow_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim TempItem As Long
If Button = vbMiddleButton Then
PUEDO = True
MouseItem = 0
End If
If Button = 2 Then 'click derecho
TempItem = ClickItem(x, y)
If UserInventory(TempItem).grhindex Then
MouseDownSelectedItem = TempItem
Exit Sub
End If
End If
MouseDownSelectedItem = 0
End Sub
Buscamos:
If InvSelectedItem <> MouseDownSelectedItem And MouseDownSelectedItem <> 0 And InvSelectedItem <> 0 Then
Call SendData("SWAP" & InvSelectedItem & "," & MouseDownSelectedItem)
End If
Y abajo colocamos:
If Button = vbRightButton Then
MouseOK = False
MouseItem = 0
End If
MouseItem = 0
En InventoryWindow_MouseMove Buscamos:
If TempItem <= MAX_INVENTORY_SLOTS Then
InventoryWindow.ToolTipText = UserInventory(TempItem).Name
End If
Y debajo ponemos:
If MouseItem = 0 And Button = 2 Then
MouseItem = UserInventory(TempItem).grhindex
End If
If MouseItem = 0 And PUEDO = True Then
MouseItem = UserInventory(TempItem).grhindex
End If
If Button = vbRightButton Then
MouseX = x
MouseY = y
MouseOK = True
End If
If PUEDO = True Then
MouseX = x
MouseY = y
MouseOK = True
ButtonIN = True
End If
Y listo ese seria el Drag & Drop, EN EL INVENTARIO, para 0.11.5 Con o sin DX8...
- NansheNivel Máximo
- Aportes : 20
Mensajes : 3811
País :
Edad : 28
Localización : Argentina
Yo no robo, aporto :A (GRacias por explicar (?)
es para 11.5? Adaptala y te sumoo al aporte (?)
Veo como avanza y te sumo el aporte
Saludos
NANSHE
es para 11.5? Adaptala y te sumoo al aporte (?)
Veo como avanza y te sumo el aporte
Saludos
NANSHE
Permisos de este foro:
No puedes responder a temas en este foro.