Compare commits
4 Commits
issue-9-sa
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| c87e816b59 | |||
| c7e2a0689c | |||
| 5418a50e99 | |||
|
|
762603aaf5 |
@@ -327,6 +327,7 @@ enum EItemWearableFlag
|
|||||||
WEARABLE_COSTUME_HAIR = (1 << 13),
|
WEARABLE_COSTUME_HAIR = (1 << 13),
|
||||||
WEARABLE_BELT = (1 << 14),
|
WEARABLE_BELT = (1 << 14),
|
||||||
WEARABLE_COSTUME_SASH = (1 << 15),
|
WEARABLE_COSTUME_SASH = (1 << 15),
|
||||||
|
WEARABLE_TALISMAN = (1 << 16),
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ELimitTypes
|
enum ELimitTypes
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ enum EWearPositions
|
|||||||
|
|
||||||
WEAR_BELT, // 23 : 신규 벨트슬롯
|
WEAR_BELT, // 23 : 신규 벨트슬롯
|
||||||
WEAR_COSTUME_SASH, // 24
|
WEAR_COSTUME_SASH, // 24
|
||||||
|
WEAR_TALISMAN, // 25
|
||||||
|
|
||||||
WEAR_MAX = 32 //
|
WEAR_MAX = 32 //
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -298,8 +298,9 @@ int get_Item_Flag_Value(string inputString)
|
|||||||
int get_Item_WearFlag_Value(string inputString)
|
int get_Item_WearFlag_Value(string inputString)
|
||||||
{
|
{
|
||||||
|
|
||||||
string arWearrFlag[] = {"WEAR_BODY", "WEAR_HEAD", "WEAR_FOOTS", "WEAR_WRIST", "WEAR_WEAPON", "WEAR_NECK", "WEAR_EAR", "WEAR_SHIELD", "WEAR_UNIQUE",
|
string arWearrFlag[] = {"WEAR_BODY", "WEAR_HEAD", "WEAR_FOOTS", "WEAR_WRIST", "WEAR_WEAPON", "WEAR_NECK", "WEAR_EAR", "WEAR_UNIQUE",
|
||||||
"WEAR_ARROW", "WEAR_HAIR", "WEAR_ABILITY"};
|
"WEAR_SHIELD", "WEAR_ARROW", "WEAR_HAIR", "WEAR_ABILITY", "WEAR_COSTUME_BODY", "WEAR_COSTUME_HAIR",
|
||||||
|
"WEAR_BELT", "WEAR_COSTUME_SASH", "WEAR_TALISMAN"};
|
||||||
|
|
||||||
|
|
||||||
int retValue = 0;
|
int retValue = 0;
|
||||||
|
|||||||
@@ -54,6 +54,37 @@ namespace
|
|||||||
constexpr int kPickupPatternMinRouteStep = 250;
|
constexpr int kPickupPatternMinRouteStep = 250;
|
||||||
constexpr int kPickupPatternMaxIntervalMs = 15000;
|
constexpr int kPickupPatternMaxIntervalMs = 15000;
|
||||||
|
|
||||||
|
enum ETalismanElement
|
||||||
|
{
|
||||||
|
TALISMAN_ELEMENT_FIRE = 1,
|
||||||
|
TALISMAN_ELEMENT_ICE = 2,
|
||||||
|
TALISMAN_ELEMENT_LIGHTNING = 3,
|
||||||
|
TALISMAN_ELEMENT_WIND = 4,
|
||||||
|
TALISMAN_ELEMENT_EARTH = 5,
|
||||||
|
};
|
||||||
|
|
||||||
|
const char* GetTalismanEffectPath(LPITEM item)
|
||||||
|
{
|
||||||
|
if (!item || item->GetType() != ITEM_TOTEM)
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
switch (item->GetValue(0))
|
||||||
|
{
|
||||||
|
case TALISMAN_ELEMENT_FIRE:
|
||||||
|
return "d:/ymir work/effect/etc/firecracker/newyear_firecracker.mse";
|
||||||
|
case TALISMAN_ELEMENT_ICE:
|
||||||
|
return "d:/ymir work/effect/etc/recuperation/drugup_blue.mse";
|
||||||
|
case TALISMAN_ELEMENT_LIGHTNING:
|
||||||
|
return "d:/ymir work/effect/etc/recuperation/drugup_purple.mse";
|
||||||
|
case TALISMAN_ELEMENT_WIND:
|
||||||
|
return "d:/ymir work/effect/etc/recuperation/drugup_green.mse";
|
||||||
|
case TALISMAN_ELEMENT_EARTH:
|
||||||
|
return "d:/ymir work/effect/etc/buff/buff_item3.mse";
|
||||||
|
default:
|
||||||
|
return "d:/ymir work/effect/etc/buff/buff_item1.mse";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool ValidateStoredRefineNpc(LPCHARACTER ch, DWORD dwRefineNpcVID, const char* action)
|
bool ValidateStoredRefineNpc(LPCHARACTER ch, DWORD dwRefineNpcVID, const char* action)
|
||||||
{
|
{
|
||||||
if (!ch)
|
if (!ch)
|
||||||
@@ -6618,6 +6649,11 @@ bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell)
|
|||||||
{
|
{
|
||||||
this->EffectPacket(SE_EQUIP_LOVE_PENDANT);
|
this->EffectPacket(SE_EQUIP_LOVE_PENDANT);
|
||||||
}
|
}
|
||||||
|
else if (ITEM_TOTEM == item->GetType())
|
||||||
|
{
|
||||||
|
if (const char* c_szEffect = GetTalismanEffectPath(item))
|
||||||
|
SpecificEffectPacket(c_szEffect);
|
||||||
|
}
|
||||||
// ITEM_UNIQUE의 경우, SpecialItemGroup에 정의되어 있고, (item->GetSIGVnum() != NULL)
|
// ITEM_UNIQUE의 경우, SpecialItemGroup에 정의되어 있고, (item->GetSIGVnum() != NULL)
|
||||||
//
|
//
|
||||||
else if (ITEM_UNIQUE == item->GetType() && 0 != item->GetSIGVnum())
|
else if (ITEM_UNIQUE == item->GetType() && 0 != item->GetSIGVnum())
|
||||||
|
|||||||
@@ -535,6 +535,8 @@ int CItem::FindEquipCell(LPCHARACTER ch, int iCandidateCell)
|
|||||||
}
|
}
|
||||||
else if (GetType() == ITEM_BELT)
|
else if (GetType() == ITEM_BELT)
|
||||||
return WEAR_BELT;
|
return WEAR_BELT;
|
||||||
|
else if (GetType() == ITEM_TOTEM)
|
||||||
|
return WEAR_TALISMAN;
|
||||||
else if (GetWearFlag() & WEARABLE_BODY)
|
else if (GetWearFlag() & WEARABLE_BODY)
|
||||||
return WEAR_BODY;
|
return WEAR_BODY;
|
||||||
else if (GetWearFlag() & WEARABLE_HEAD)
|
else if (GetWearFlag() & WEARABLE_HEAD)
|
||||||
|
|||||||
Reference in New Issue
Block a user