![]() |
Another Visual Inventory - Printable Version +- Mirage Source (https://mirage-engine.uk/forums) +-- Forum: Mirage Source (Nostalgia) (https://mirage-engine.uk/forums/forumdisplay.php?fid=61) +--- Forum: Archive (2006-2011) (https://mirage-engine.uk/forums/forumdisplay.php?fid=18) +---- Forum: Resources (https://mirage-engine.uk/forums/forumdisplay.php?fid=49) +---- Thread: Another Visual Inventory (/showthread.php?tid=1869) |
Another Visual Inventory - Jacob - 26-06-2008 This Visual Inventory uses BltToDc to draw your inventory instead of picture boxes. All Client Side frmMirage Add a Picture Box Name it picVisInv Set AutoRedraw to True modConstants Add the following: Code: ' Visual Inventory InvX and InvY are where the first item will be drawn within the picVisInv InvOffsetX and InvOffsetY are the offsets in between the items modGameLogic Add the following sub: [code]Public Sub BltInventory() Dim i As Long Dim x As Long Dim y As Long If frmMirage.picVisInv.Visible Then frmMirage.picVisInv.Cls For i = 1 To MAX_INV If GetPlayerInvItemNum(MyIndex, i) > 0 And GetPlayerInvItemNum(MyIndex, i) Re: Another Visual Inventory - Robin - 26-06-2008 I thought this was already tutorialised >_> Oh well, if not, as good as ever Re: Another Visual Inventory - Jacob - 26-06-2008 [quote="Robin"]I thought this was already tutorialised >_> Oh well, if not, as good as ever Re: Another Visual Inventory - Jacob - 26-06-2008 Asrrin29 Wrote:the thing with a visual inventory is that you either need to show it all at once or have a way to scroll. plus adding in all the code to interact with the items sounds really tedious. I just added the code that interacts with the items. ![]() In my test client that's how I displayed the inventory. Re: Another Visual Inventory - Ligaman - 26-06-2008 What code do i add to use/drop item? Re: Another Visual Inventory - Tony - 27-06-2008 Ligaman Wrote:What code do i add to use/drop item? I remember almost 2 years ago Obsidian was guiding me and the only way I could come up with is find the coordinates of where I clicked. Code: If (x > 32 and x < 64) and (y etc.. I think that's what I did. I'm guessing that it's a really bad way to do it. Re: Another Visual Inventory - Jacob - 27-06-2008 It was after the edit: Double clicking an item will use it: Code: Private Sub picVisInv_DblClick() Right clicking an item will drop it: Code: Private Sub picVisInv_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Re: Another Visual Inventory - Ligaman - 27-06-2008 It works ok but I cant click on the items displayed neither dbl click or right click to drop.The items are unselectable. Some help? Re: Another Visual Inventory - Jacob - 27-06-2008 Ligaman Wrote:It works ok but I cant click on the items displayed neither dbl click or right click to drop.The items are unselectable. Did you put the code in frmMirage ? [code] Private Sub picVisInv_DblClick() Dim i As Long Dim InvNum As Long InvNum = IsItem(InvPosX, InvPosY) If InvNum 0 Then If GetPlayerInvItemNum(MyIndex, InvNum) = ITEM_TYPE_NONE Then Exit Sub Call SendUseItem(InvNum) Exit Sub End If End Sub Private Sub picVisInv_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim i As Long Dim InvNum As Long If Button = 2 Then InvNum = IsItem(X, Y) If InvNum 0 Then If Item(GetPlayerInvItemNum(MyIndex, InvNum)).Type = ITEM_TYPE_CURRENCY Then frmDrop.Show vbModal Else Call SendDropItem(InvNum, 0) End If End If End If End Sub Private Sub picVisInv_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim i As Long Dim InvNum As Long Dim ItemNum As Long InvPosX = X InvPosY = Y InvNum = IsItem(X, Y) If InvNum 0 Then ItemNum = GetPlayerInvItemNum(MyIndex, InvNum) lblItemName.Caption = Trim$(Item(ItemNum).Name) picItemDesc.top = (Y + (picItemDesc.Height * 0.5)) + picVisInv.top + 5 picItemDesc.Left = (X - picItemDesc.Width) + picVisInv.Left picItemDesc.Visible = True Exit Sub End If picItemDesc.Visible = False End Sub Private Function IsItem(ByVal X As Single, ByVal Y As Single) As Long Dim tempRec As RECT Dim i As Long For i = 1 To MAX_INV If GetPlayerInvItemNum(MyIndex, i) > 0 And GetPlayerInvItemNum(MyIndex, i) = tempRec.Left And X = tempRec.top And Y Re: Another Visual Inventory - Ligaman - 27-06-2008 Yep but i cannot click on items. Re: Another Visual Inventory - Coke - 28-06-2008 Dugor Wrote:Asrrin29 Wrote:the thing with a visual inventory is that you either need to show it all at once or have a way to scroll. plus adding in all the code to interact with the items sounds really tedious. Thats a Zelda:Lttp key xP Re: Another Visual Inventory - Labmonkey - 28-06-2008 lol that games owns. ![]() |