-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathItem.h
221 lines (173 loc) · 7.67 KB
/
Item.h
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
// Item.h: interface for the CItem class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ITEM_H__211A1360_91B9_11D2_B143_00001C7030A6__INCLUDED_)
#define AFX_ITEM_H__211A1360_91B9_11D2_B143_00001C7030A6__INCLUDED_
#include <windows.h>
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#define DEF_MAXITEMEQUIPPOS 15
#define DEF_EQUIPPOS_NONE 0
#define DEF_EQUIPPOS_HEAD 1 //66Ah m_pClientList[]->m_sItemEquipmentStatus[DEF_EQUIPPOS_HEAD]
#define DEF_EQUIPPOS_BODY 2 //66Ch m_pClientList[]->m_sItemEquipmentStatus[DEF_EQUIPPOS_BODY]
#define DEF_EQUIPPOS_ARMS 3 //66Eh m_pClientList[]->m_sItemEquipmentStatus[DEF_EQUIPPOS_ARMS]
#define DEF_EQUIPPOS_PANTS 4 //670h m_pClientList[]->m_sItemEquipmentStatus[DEF_EQUIPPOS_PANTS]
#define DEF_EQUIPPOS_LEGGINGS 5 //672h m_pClientList[]->m_sItemEquipmentStatus[DEF_EQUIPPOS_LEGGINGS]
#define DEF_EQUIPPOS_NECK 6 //674h m_pClientList[]->m_sItemEquipmentStatus[DEF_EQUIPPOS_NECK]
#define DEF_EQUIPPOS_LHAND 7 //676h m_pClientList[]->m_sItemEquipmentStatus[DEF_EQUIPPOS_LHAND]
#define DEF_EQUIPPOS_RHAND 8 //678h m_pClientList[]->m_sItemEquipmentStatus[DEF_EQUIPPOS_RHAND]
#define DEF_EQUIPPOS_TWOHAND 9 //67Ah m_pClientList[]->m_sItemEquipmentStatus[DEF_EQUIPPOS_TWOHAND]
#define DEF_EQUIPPOS_RFINGER 10 //67Ch
#define DEF_EQUIPPOS_LFINGER 11 //67Eh
#define DEF_EQUIPPOS_BACK 12 //680h
#define DEF_EQUIPPOS_RELEASEALL 13 //682h
#define DEF_ITEMTYPE_NOTUSED -1 // v1.4 기존에 사용되었으나 현재로서는 사용되지 않는 아이템: 포상금으로 대체된다.
#define DEF_ITEMTYPE_NONE 0
#define DEF_ITEMTYPE_EQUIP 1
#define DEF_ITEMTYPE_APPLY 2
#define DEF_ITEMTYPE_USE_DEPLETE 3
#define DEF_ITEMTYPE_INSTALL 4
#define DEF_ITEMTYPE_CONSUME 5
#define DEF_ITEMTYPE_ARROW 6
#define DEF_ITEMTYPE_EAT 7
#define DEF_ITEMTYPE_USE_SKILL 8
#define DEF_ITEMTYPE_USE_PERM 9
#define DEF_ITEMTYPE_USE_SKILL_ENABLEDIALOGBOX 10
#define DEF_ITEMTYPE_USE_DEPLETE_DEST 11
#define DEF_ITEMTYPE_MATERIAL 12
#define DEF_ITEMEFFECTTYPE_NONE 0
#define DEF_ITEMEFFECTTYPE_ATTACK 1 // 공격치: value1 D value2 + value3
#define DEF_ITEMEFFECTTYPE_DEFENSE 2 // 방어능력
#define DEF_ITEMEFFECTTYPE_ATTACK_ARROW 3 // 화살을 사용하는 공격무기. 무기 자체는 공격력이 없다.
#define DEF_ITEMEFFECTTYPE_HP 4 // HP관련 효과
#define DEF_ITEMEFFECTTYPE_MP 5 // MP관련 효과
#define DEF_ITEMEFFECTTYPE_SP 6 // SP관련 효과
#define DEF_ITEMEFFECTTYPE_HPSTOCK 7 // HP관련 효과. 즉각적으로 반응이 나타나지는 않는다.
#define DEF_ITEMEFFECTTYPE_GET 8 // 얻는다. 물고기나 광물등
#define DEF_ITEMEFFECTTYPE_STUDYSKILL 9 // 기술을 배우는 아이템이다.
#define DEF_ITEMEFFECTTYPE_SHOWLOCATION 10 // 위치를 표시하는 아이템.
#define DEF_ITEMEFFECTTYPE_MAGIC 11 // 사용하면 마법 효과를 얻는 아이템
#define DEF_ITEMEFFECTTYPE_CHANGEATTR 12 // 플레이어의 속성을 변환시킨다. 성별, 머리모양, 피부색, 헤어스타일
#define DEF_ITEMEFFECTTYPE_ATTACK_MANASAVE 13 // 공격효과와 더불어 마나의 절약 효과가 있다.(마법사용)
#define DEF_ITEMEFFECTTYPE_ADDEFFECT 14 // 추가 효과
#define DEF_ITEMEFFECTTYPE_MAGICDAMAGESAVE 15 // 마법으로 인한 공격의 대미지를 절감한다. 반지나 목걸이류
#define DEF_ITEMEFFECTTYPE_OCCUPYFLAG 16 // 점령 깃발
#define DEF_ITEMEFFECTTYPE_DYE 17 // 염색약.
#define DEF_ITEMEFFECTTYPE_STUDYMAGIC 18 // 마법을 배우는 아이템이다.
#define DEF_ITEMEFFECTTYPE_ATTACK_MAXHPDOWN 19 // 공격 효과와 함께 최대 HP 및 HP 회복량이 떨어지는 아이템
#define DEF_ITEMEFFECTTYPE_ATTACK_DEFENSE 20 // 공격 효과와 함께 갑옷과 같이 물리 방어구 효과가 있는 아이템
#define DEF_ITEMEFFECTTYPE_MATERIAL_ATTR 21 // 무기 제작 재료 속성
#define DEF_ITEMEFFECTTYPE_FIRMSTAMINAR 22 // 스태미너 고정 아이템
#define DEF_ITEMEFFECTTYPE_LOTTERY 23 // 복권 아이n
#define DEF_ITEMEFFECTTYPE_ATTACK_SPECABLTY 24 // 공격 아이템 특수 효과
#define DEF_ITEMEFFECTTYPE_DEFENSE_SPECABLTY 25 // 방어구 아이템 특수 효과
#define DEF_ITEMEFFECTTYPE_ALTERITEMDROP 26 // 다른 아이템 떨어질 것 대신 이 아이템이 떨어진다.
#define DEF_ITEMEFFECTTYPE_CONSTRUCTIONKIT 27 // 건축 키트
#define DEF_ITEMEFFECTTYPE_WARM 28 // Unfreeze pot
#define DEF_ITEMEFFECTTYPE_FARMING 30
#define DEF_ITEMEFFECTTYPE_SLATES 31 // Ancient Tablets
#define DEF_ITEMEFFECTTYPE_ARMORDYE 32 // Armor Dyes
#define DEF_ITEMEFFECTTYPE_CRITKOMM 33 // Crit Candy
#define DEF_ITEMEFFECTTYPE_WEAPONDYE 34 // Weapons Dyes
#define DEF_ITET_UNIQUE_OWNER 1 // ItemTouchEffect: 주인을 갖는 아이템
#define DEF_ITET_ID 2 // 그냥 아이템 아이디
#define DEF_ITET_DATE 3 // 사용가능한 날짜가 지정된 아이템
class CItem
{
public:
CItem();
virtual ~CItem();
char m_cName[21];
short m_sIDnum; // 아이템의 고유 번호
char m_cItemType;
char m_cEquipPos;
short m_sItemEffectType;
short m_sItemEffectValue1, m_sItemEffectValue2, m_sItemEffectValue3;
short m_sItemEffectValue4, m_sItemEffectValue5, m_sItemEffectValue6;
WORD m_wMaxLifeSpan;
short m_sSpecialEffect;
//short m_sSM_HitRatio, m_sL_HitRatio;
//v1.432 명중률 가감 사용 안한다. 대신 특수 능력 수치가 들어간다.
short m_sSpecialEffectValue1, m_sSpecialEffectValue2;
short m_sSprite;
short m_sSpriteFrame;
char m_cApprValue;
char m_cSpeed;
DWORD m_wPrice;
WORD m_wWeight;
short m_sLevelLimit;
char m_cGenderLimit;
short m_sRelatedSkill;
char m_cCategory;
BOOL m_bIsForSale;
DWORD m_dwCount;
short m_sTouchEffectType;
short m_sTouchEffectValue1, m_sTouchEffectValue2, m_sTouchEffectValue3;
char m_cItemColor; // v1.4 에서 아이템 색으로 변경되었다.
short m_sItemSpecEffectValue1, m_sItemSpecEffectValue2, m_sItemSpecEffectValue3;
WORD m_wCurLifeSpan;
DWORD m_dwAttribute; // aaaa bbbb cccc dddd eeee ffff xxxx xxx1
// 1: Custom-Made Item flag
// a: Item 속성 종류
// b: Item 속성 정도
// c: 특수 아이템 성질 Flag
// d: 특수 아이템 성질 정도
// e: 특수 아이템 추가 성질 Flag
// f: 특수 아이템 추가 성질 정도
};
/*
아이템 정의파일에 필요한 내용 - 게임 서버용
char cItemType
- 아이템의 종류. 장착되는 것인지 소모되는 것인지에 대한 정의
char cEquipPos
- 장착되는 아이템이라면 그 위치
short sItemEffectType
- 아이템의 효과 종류.
short sItemEffectValue1, 2, 3 ...
- 아이템 효과의 수치 1, 2, 3...
WORD wMaxLifeSpan
- 아이템의 최대 수명
short sMaxFixCount
- 최대 고칠수 있는 횟수
short sSprite
short sSpriteFrame
- 아이템 스프라이트 번호
WORD wPrice
- 아이템 가격
WORD wWeight
- 아이템 무게
short sLevelLimit
- 아이템 레벨 제한
char cGenderLimit
- 아이템 성별 제한
short m_SM_HitRatio, m_sL_HitRatio
- 목표별 명중률 가감치 (무기일 경우)
short sRelatedSkill
- 연결된 Skill
플레이어 데이터 파일에 저장되어야 할 정보 - 로그 서버용
DWORD dwCount
- 아이템의 갯수. (같은 종류의 화살이나 포션, Gold등만이 의미를 갖는다)
WORD wCurLifeSpan
- 현재 남은 수명
short sCurFixCount
- 현재까지 수리한 횟수
short sTouchEffectType
- 아이템을 처음 건드렸을때 작동되는 효과 종류
short sTouchEffectValue1, 2, 3...
- 아이템 접촉 효과의 수치
short sItemSpecEffectType
- 아이템의 특수효과 종류 (ex:마법이 걸린 무기라면 공격력이나 방어력에 영향이 있을수도)
short sItemSpecEffectValue1, 2, 3...
- 아이템 특수효과의 수치 1, 2, 3...
옷 아이템인 경우(Equip Position이 Body, Leggings, Arms인 경우)
sItemEffectValue4: 옷의 특정 특성치 제한 종류를 나타낸다.
10: Str
11: Dex
12: Vit
13: Int
14: Mag
15: Chr
sItemEffectValue5: 옷의 특정 특성치 제한 수준
*/
#endif // !defined(AFX_ITEM_H__211A1360_91B9_11D2_B143_00001C7030A6__INCLUDED_)