forked from Elfocrash/L2dotNET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInventory.cs
More file actions
110 lines (101 loc) · 3.59 KB
/
Copy pathInventory.cs
File metadata and controls
110 lines (101 loc) · 3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using L2dotNET.DataContracts;
using L2dotNET.DataContracts.Shared.Enums;
using L2dotNET.Models.Items;
using L2dotNET.Models.Player;
using L2dotNET.Services.Contracts;
using L2dotNET.Tables;
using L2dotNET.World;
namespace L2dotNET.Models.Inventory
{
public class Inventory : ItemContainer
{
public Inventory(L2Character owner) : base(owner)
{
Paperdoll = new L2Item[PaperdollTotalslots];
}
public static readonly int PaperdollUnder = 0;
public static readonly int PaperdollLear = 1;
public static readonly int PaperdollRear = 2;
public static readonly int PaperdollNeck = 3;
public static readonly int PaperdollLfinger = 4;
public static readonly int PaperdollRfinger = 5;
public static readonly int PaperdollHead = 6;
public static readonly int PaperdollRhand = 7;
public static readonly int PaperdollLhand = 8;
public static readonly int PaperdollGloves = 9;
public static readonly int PaperdollChest = 10;
public static readonly int PaperdollLegs = 11;
public static readonly int PaperdollFeet = 12;
public static readonly int PaperdollBack = 13;
public static readonly int PaperdollFace = 14;
public static readonly int PaperdollHair = 15;
public static readonly int PaperdollHairall = 16;
public static readonly int PaperdollTotalslots = 17;
public L2Item[] Paperdoll;
public L2Item GetPaperdollItem(int slot)
{
return Paperdoll[slot];
}
public List<L2Item> GetPaperdollItems()
{
return Paperdoll.Where(item => item != null).ToList();
}
public override async Task Restore(L2Character owner)
{
IEnumerable<ItemContract> models = await _itemService.RestoreInventory(owner.ObjectId);
List<L2Item> items = RestoreFromDb(models.ToList());
foreach (L2Item item in items)
{
L2World.AddObject(item);
Owner = owner;
AddItem(item, (L2Player)Owner);
}
}
public static int GetPaperdollIndex(int slot)
{
switch (slot)
{
case 0x0001:
return PaperdollUnder;
case 0x0002:
return PaperdollRear;
case 0x0004:
return PaperdollLear;
case 0x0008:
return PaperdollNeck;
case 0x0010:
return PaperdollRfinger;
case 0x0020:
return PaperdollLfinger;
case 0x0040:
return PaperdollHead;
case 0x0080:
case 0x4000:
return PaperdollRhand;
case 0x0100:
return PaperdollLhand;
case 0x0200:
return PaperdollGloves;
case 0x0400:
case 0x8000:
case 0x020000:
return PaperdollChest;
case 0x0800:
return PaperdollLegs;
case 0x1000:
return PaperdollFeet;
case 0x2000:
return PaperdollBack;
case 0x010000:
case 0x080000:
return PaperdollFace;
case 0x040000:
return PaperdollHair;
}
return -1;
}
}
}