Fix encoding warnings
warning C4828: The file contains a character starting at offse t 0x132 that is illegal in the current source character set (codepage 65001)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#include "stdafx.h"
|
||||
#include "stdafx.h"
|
||||
#include "utils.h"
|
||||
#include "config.h"
|
||||
#include "char.h"
|
||||
@@ -81,7 +81,7 @@ bool ITEM_MANAGER::Initialize(TItemTable * table, int size)
|
||||
if (m_vec_prototype[i].dwRefinedVnum)
|
||||
m_map_ItemRefineFrom.insert(std::make_pair(m_vec_prototype[i].dwRefinedVnum, m_vec_prototype[i].dwVnum));
|
||||
|
||||
// NOTE : QUEST_GIVE 플래그는 npc 이벤트로 발생.
|
||||
// NOTE : QUEST_GIVE 플래그는 npc 이벤트로 발생.
|
||||
if (m_vec_prototype[i].bType == ITEM_QUEST || IS_SET(m_vec_prototype[i].dwFlags, ITEM_FLAG_QUEST_USE | ITEM_FLAG_QUEST_USE_MULTIPLE))
|
||||
quest::CQuestManager::instance().RegisterNPCVnum(m_vec_prototype[i].dwVnum);
|
||||
|
||||
@@ -159,7 +159,7 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
{
|
||||
if (vnum == 50300 && bTryMagic)
|
||||
{
|
||||
// 수련서를 아이템 번호를 다르게 만들어 준다.
|
||||
// 수련서를 아이템 번호를 다르게 만들어 준다.
|
||||
DWORD dwSkillVnum;
|
||||
|
||||
do
|
||||
@@ -185,7 +185,7 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
|
||||
LPITEM item = NULL;
|
||||
|
||||
//id로 검사해서 존재한다면 -- 리턴!
|
||||
//id로 검사해서 존재한다면 -- 리턴!
|
||||
if (m_map_pkItemByID.find(id) != m_map_pkItemByID.end())
|
||||
{
|
||||
item = m_map_pkItemByID[id];
|
||||
@@ -194,7 +194,7 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//아이템 하나 할당하고
|
||||
//아이템 하나 할당하고
|
||||
#ifdef M2_USE_POOL
|
||||
item = pool_.Construct();
|
||||
#else
|
||||
@@ -203,15 +203,15 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
|
||||
bool bIsNewItem = (0 == id);
|
||||
|
||||
//초기화 하고. 테이블 셋하고
|
||||
//초기화 하고. 테이블 셋하고
|
||||
item->Initialize();
|
||||
item->SetProto(table);
|
||||
item->SetMaskVnum(dwMaskVnum);
|
||||
|
||||
if (item->GetType() == ITEM_ELK) // 돈은 ID가 필요없고 저장도 필요없다.
|
||||
if (item->GetType() == ITEM_ELK) // 돈은 ID가 필요없고 저장도 필요없다.
|
||||
item->SetSkipSave(true);
|
||||
|
||||
// Unique ID를 세팅하자
|
||||
// Unique ID를 세팅하자
|
||||
else if (!bIsNewItem)
|
||||
{
|
||||
item->SetID(id);
|
||||
@@ -221,16 +221,16 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
{
|
||||
item->SetID(GetNewID());
|
||||
|
||||
if (item->GetType() == ITEM_UNIQUE) // 유니크 아이템은 생성시에 소켓에 남은시간을 기록한다.
|
||||
if (item->GetType() == ITEM_UNIQUE) // 유니크 아이템은 생성시에 소켓에 남은시간을 기록한다.
|
||||
{
|
||||
if (item->GetValue(2) == 0)
|
||||
item->SetSocket(ITEM_SOCKET_UNIQUE_REMAIN_TIME, item->GetValue(0)); // 게임 시간 유니크
|
||||
item->SetSocket(ITEM_SOCKET_UNIQUE_REMAIN_TIME, item->GetValue(0)); // 게임 시간 유니크
|
||||
else
|
||||
{
|
||||
//int globalTime = get_global_time();
|
||||
//int lastTime = item->GetValue(0);
|
||||
//int endTime = get_global_time() + item->GetValue(0);
|
||||
item->SetSocket(ITEM_SOCKET_UNIQUE_REMAIN_TIME, get_global_time() + item->GetValue(0)); // 실시간 유니크
|
||||
item->SetSocket(ITEM_SOCKET_UNIQUE_REMAIN_TIME, get_global_time() + item->GetValue(0)); // 실시간 유니크
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -259,9 +259,9 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
break;
|
||||
}
|
||||
|
||||
if (item->GetType() == ITEM_ELK) // 돈은 아무 처리가 필요하지 않음
|
||||
if (item->GetType() == ITEM_ELK) // 돈은 아무 처리가 필요하지 않음
|
||||
;
|
||||
else if (item->IsStackable()) // 합칠 수 있는 아이템의 경우
|
||||
else if (item->IsStackable()) // 합칠 수 있는 아이템의 경우
|
||||
{
|
||||
count = MINMAX(1, count, ITEM_MAX_COUNT);
|
||||
|
||||
@@ -289,7 +289,7 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
|
||||
for (int i=0 ; i < ITEM_LIMIT_MAX_NUM ; i++)
|
||||
{
|
||||
// 아이템 생성 시점부터 사용하지 않아도 시간이 차감되는 방식
|
||||
// 아이템 생성 시점부터 사용하지 않아도 시간이 차감되는 방식
|
||||
if (LIMIT_REAL_TIME == item->GetLimitType(i))
|
||||
{
|
||||
if (item->GetLimitValue(i))
|
||||
@@ -304,11 +304,11 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
item->StartRealTimeExpireEvent();
|
||||
}
|
||||
|
||||
// 기존 유니크 아이템처럼 착용시에만 사용가능 시간이 차감되는 방식
|
||||
// 기존 유니크 아이템처럼 착용시에만 사용가능 시간이 차감되는 방식
|
||||
else if (LIMIT_TIMER_BASED_ON_WEAR == item->GetLimitType(i))
|
||||
{
|
||||
// 이미 착용중인 아이템이면 타이머를 시작하고, 새로 만드는 아이템은 사용 가능 시간을 세팅해준다. (
|
||||
// 아이템몰로 지급하는 경우에는 이 로직에 들어오기 전에 Socket0 값이 세팅이 되어 있어야 한다.
|
||||
// 이미 착용중인 아이템이면 타이머를 시작하고, 새로 만드는 아이템은 사용 가능 시간을 세팅해준다. (
|
||||
// 아이템몰로 지급하는 경우에는 이 로직에 들어오기 전에 Socket0 값이 세팅이 되어 있어야 한다.
|
||||
if (true == item->IsEquipped())
|
||||
{
|
||||
item->StartTimerBasedOnWearExpireEvent();
|
||||
@@ -320,16 +320,16 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
duration = item->GetLimitValue(i);
|
||||
|
||||
if (0 == duration)
|
||||
duration = 60 * 60 * 10; // 정보가 아무것도 없으면 디폴트로 10시간 세팅
|
||||
duration = 60 * 60 * 10; // 정보가 아무것도 없으면 디폴트로 10시간 세팅
|
||||
|
||||
item->SetSocket(0, duration);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (id == 0) // 새로 만드는 아이템일 때만 처리
|
||||
if (id == 0) // 새로 만드는 아이템일 때만 처리
|
||||
{
|
||||
// 새로추가되는 약초들일경우 성능을 다르게처리
|
||||
// 새로추가되는 약초들일경우 성능을 다르게처리
|
||||
if (ITEM_BLEND==item->GetType())
|
||||
{
|
||||
if (Blend_Item_find(item->GetVnum()))
|
||||
@@ -356,7 +356,7 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
if (table->bGainSocketPct)
|
||||
item->AlterToSocketItem(table->bGainSocketPct);
|
||||
|
||||
// 50300 == 기술 수련서
|
||||
// 50300 == 기술 수련서
|
||||
if (vnum == 50300 || vnum == ITEM_SKILLFORGET_VNUM)
|
||||
{
|
||||
DWORD dwSkillVnum;
|
||||
@@ -408,7 +408,7 @@ LPITEM ITEM_MANAGER::CreateItem(DWORD vnum, DWORD count, DWORD id, bool bTryMagi
|
||||
}
|
||||
}
|
||||
|
||||
// 새로 생성되는 용혼석 처리.
|
||||
// 새로 생성되는 용혼석 처리.
|
||||
if (item->IsDragonSoul() && 0 == id)
|
||||
{
|
||||
DSManager::instance().DragonSoulItemInitialize(item);
|
||||
@@ -477,7 +477,7 @@ void ITEM_MANAGER::Update()
|
||||
this_it = it++;
|
||||
LPITEM item = *this_it;
|
||||
|
||||
// SLOW_QUERY 플래그가 있는 것은 종료시에만 저장한다.
|
||||
// SLOW_QUERY 플래그가 있는 것은 종료시에만 저장한다.
|
||||
if (item->GetOwner() && IS_SET(item->GetFlag(), ITEM_FLAG_SLOW_QUERY))
|
||||
continue;
|
||||
|
||||
@@ -500,7 +500,7 @@ void ITEM_MANAGER::RemoveItem(LPITEM item, const char * c_pszReason)
|
||||
// SAFEBOX_TIME_LIMIT_ITEM_BUG_FIX
|
||||
if (item->GetWindow() == MALL || item->GetWindow() == SAFEBOX)
|
||||
{
|
||||
// 20050613.ipkn.시간제 아이템이 상점에 있을 경우 시간만료시 서버가 다운된다.
|
||||
// 20050613.ipkn.시간제 아이템이 상점에 있을 경우 시간만료시 서버가 다운된다.
|
||||
CSafebox* pSafebox = item->GetWindow() == MALL ? o->GetMall() : o->GetSafebox();
|
||||
if (pSafebox)
|
||||
{
|
||||
@@ -764,8 +764,8 @@ class CItemDropInfo
|
||||
extern std::vector<CItemDropInfo> g_vec_pkCommonDropItem[MOB_RANK_MAX_NUM];
|
||||
|
||||
// 20050503.ipkn.
|
||||
// iMinimum 보다 작으면 iDefault 세팅 (단, iMinimum은 0보다 커야함)
|
||||
// 1, 0 식으로 ON/OFF 되는 방식을 지원하기 위해 존재
|
||||
// iMinimum 보다 작으면 iDefault 세팅 (단, iMinimum은 0보다 커야함)
|
||||
// 1, 0 식으로 ON/OFF 되는 방식을 지원하기 위해 존재
|
||||
int GetDropPerKillPct(int iMinimum, int iDefault, int iDeltaPercent, const char * c_pszFlag)
|
||||
{
|
||||
int iVal = 0;
|
||||
@@ -785,8 +785,8 @@ int GetDropPerKillPct(int iMinimum, int iDefault, int iDeltaPercent, const char
|
||||
if (iVal == 0)
|
||||
return 0;
|
||||
|
||||
// 기본 세팅일때 (iDeltaPercent=100)
|
||||
// 40000 iVal 마리당 하나 느낌을 주기 위한 상수임
|
||||
// 기본 세팅일때 (iDeltaPercent=100)
|
||||
// 40000 iVal 마리당 하나 느낌을 주기 위한 상수임
|
||||
return (40000 * iDeltaPercent / iVal);
|
||||
}
|
||||
|
||||
@@ -932,7 +932,7 @@ bool ITEM_MANAGER::CreateDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller, std::
|
||||
CMobItemGroup* pGroup = it->second;
|
||||
|
||||
// MOB_DROP_ITEM_BUG_FIX
|
||||
// 20050805.myevan.MobDropItem 에 아이템이 없을 경우 CMobItemGroup::GetOne() 접근시 문제 발생 수정
|
||||
// 20050805.myevan.MobDropItem 에 아이템이 없을 경우 CMobItemGroup::GetOne() 접근시 문제 발생 수정
|
||||
if (pGroup && !pGroup->IsEmpty())
|
||||
{
|
||||
int iPercent = 40000 * iDeltaPercent / pGroup->GetKillPerDrop();
|
||||
@@ -995,7 +995,7 @@ bool ITEM_MANAGER::CreateDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller, std::
|
||||
}
|
||||
}
|
||||
|
||||
// 잡템
|
||||
// 잡템
|
||||
if (pkChr->GetMobDropItemVnum())
|
||||
{
|
||||
itertype(m_map_dwEtcItemDropProb) it = m_map_dwEtcItemDropProb.find(pkChr->GetMobDropItemVnum());
|
||||
@@ -1044,14 +1044,14 @@ bool ITEM_MANAGER::CreateDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller, std::
|
||||
pdw[1] = 1;
|
||||
pdw[2] = quest::CQuestManager::instance().GetEventFlag("lotto_round");
|
||||
|
||||
// 행운의 서는 소켓을 설정한다
|
||||
// 행운의 서는 소켓을 설정한다
|
||||
DBManager::instance().ReturnQuery(QID_LOTTO, pkKiller->GetPlayerID(), pdw,
|
||||
"INSERT INTO lotto_list VALUES(0, 'server%s', %u, NOW())",
|
||||
get_table_postfix(), pkKiller->GetPlayerID());
|
||||
}
|
||||
|
||||
//
|
||||
// 스페셜 드롭 아이템
|
||||
// 스페셜 드롭 아이템
|
||||
//
|
||||
CreateQuestDropItem(pkChr, pkKiller, vec_item, iDeltaPercent, iRandRange);
|
||||
|
||||
@@ -1062,7 +1062,7 @@ bool ITEM_MANAGER::CreateDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller, std::
|
||||
}
|
||||
|
||||
//
|
||||
// 승룡곡 천의동굴 2층에서만 수룡방 입장권
|
||||
// 승룡곡 천의동굴 2층에서만 수룡방 입장권
|
||||
//
|
||||
if (LC_IsYMIR() || LC_IsKorea())
|
||||
{
|
||||
@@ -1079,21 +1079,21 @@ bool ITEM_MANAGER::CreateDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller, std::
|
||||
}
|
||||
|
||||
//
|
||||
// 승룡곡 1층, 2층에서만 7,8 스킬입문서 드롭
|
||||
// 승룡곡 1층, 2층에서만 7,8 스킬입문서 드롭
|
||||
//
|
||||
if (LC_IsYMIR() || LC_IsKorea())
|
||||
{
|
||||
switch (pkKiller->GetMapIndex())
|
||||
{
|
||||
case 72: // 천의동굴 1층
|
||||
case 73: // 천의동굴 2층
|
||||
case 72: // 천의동굴 1층
|
||||
case 73: // 천의동굴 2층
|
||||
{
|
||||
int vnum = 0;
|
||||
|
||||
if (2403 == pkChr->GetRaceNum()) // 천의법사
|
||||
vnum = 69200; // 7스킬 입문서
|
||||
else if (2411 == pkChr->GetRaceNum()) // 진천의병사
|
||||
vnum = 69201; // 8스킬 입문서
|
||||
if (2403 == pkChr->GetRaceNum()) // 천의법사
|
||||
vnum = 69200; // 7스킬 입문서
|
||||
else if (2411 == pkChr->GetRaceNum()) // 진천의병사
|
||||
vnum = 69201; // 8스킬 입문서
|
||||
else
|
||||
break;
|
||||
|
||||
@@ -1249,11 +1249,11 @@ bool DropEvent_CharStone_SetValue(const std::string& name, int value)
|
||||
// END_OF_DROPEVENT_CHARSTONE
|
||||
|
||||
// fixme
|
||||
// 위의 것과 함께 quest로 뺄것 빼보자.
|
||||
// 이거 너무 더럽잖아...
|
||||
// <EFBFBD>?. 하드코딩 싫다 ㅜㅠ
|
||||
// 계량 아이템 보상 시작.
|
||||
// by rtsummit 고치자 진짜
|
||||
// 위의 것과 함께 quest로 뺄것 빼보자.
|
||||
// 이거 너무 더럽잖아...
|
||||
// ?. 하드코딩 싫다 ㅜㅠ
|
||||
// 계량 아이템 보상 시작.
|
||||
// by rtsummit 고치자 진짜
|
||||
static struct DropEvent_RefineBox
|
||||
{
|
||||
int percent_low;
|
||||
@@ -1373,7 +1373,7 @@ bool DropEvent_RefineBox_SetValue(const std::string& name, int value)
|
||||
|
||||
return true;
|
||||
}
|
||||
// 개량 아이템 보상 끝.
|
||||
// 개량 아이템 보상 끝.
|
||||
|
||||
|
||||
void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller, std::vector<LPITEM> & vec_item, int iDeltaPercent, int iRandRange)
|
||||
@@ -1393,7 +1393,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
// END_OF_DROPEVENT_CHARSTONE
|
||||
__DropEvent_RefineBox_DropItem(*pkKiller, *pkChr, *this, vec_item);
|
||||
|
||||
// 크리스마스 양말
|
||||
// 크리스마스 양말
|
||||
if (quest::CQuestManager::instance().GetEventFlag("xmas_sock"))
|
||||
{
|
||||
//const DWORD SOCK_ITEM_VNUM = 50010;
|
||||
@@ -1435,7 +1435,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
}
|
||||
}
|
||||
|
||||
// 월광 보합
|
||||
// 월광 보합
|
||||
if (quest::CQuestManager::instance().GetEventFlag("drop_moon"))
|
||||
{
|
||||
const DWORD ITEM_VNUM = 50011;
|
||||
@@ -1481,10 +1481,10 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
}
|
||||
}
|
||||
|
||||
//육각보합
|
||||
//육각보합
|
||||
if (GetDropPerKillPct(100, g_iUseLocale ? 2000 : 800, iDeltaPercent, "2006_drop") >= number(1, iRandRange))
|
||||
{
|
||||
sys_log(0, "육각보합 DROP EVENT ");
|
||||
sys_log(0, "육각보합 DROP EVENT ");
|
||||
|
||||
const static DWORD dwVnum = 50037;
|
||||
|
||||
@@ -1493,10 +1493,10 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
|
||||
}
|
||||
|
||||
//육각보합+
|
||||
//육각보합+
|
||||
if (GetDropPerKillPct(100, g_iUseLocale ? 2000 : 800, iDeltaPercent, "2007_drop") >= number(1, iRandRange))
|
||||
{
|
||||
sys_log(0, "육각보합 DROP EVENT ");
|
||||
sys_log(0, "육각보합 DROP EVENT ");
|
||||
|
||||
const static DWORD dwVnum = 50043;
|
||||
|
||||
@@ -1504,17 +1504,17 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
vec_item.push_back(item);
|
||||
}
|
||||
|
||||
// 새해 폭죽 이벤트
|
||||
// 새해 폭죽 이벤트
|
||||
if (GetDropPerKillPct(/* minimum */ 100, /* default */ 1000, iDeltaPercent, "newyear_fire") >= number(1, iRandRange))
|
||||
{
|
||||
// 중국은 폭죽, 한국 팽이
|
||||
// 중국은 폭죽, 한국 팽이
|
||||
const DWORD ITEM_VNUM_FIRE = g_iUseLocale ? 50107 : 50108;
|
||||
|
||||
if ((item = CreateItem(ITEM_VNUM_FIRE, 1, 0, true)))
|
||||
vec_item.push_back(item);
|
||||
}
|
||||
|
||||
// 새해 대보름 원소 이벤트
|
||||
// 새해 대보름 원소 이벤트
|
||||
if (GetDropPerKillPct(100, 500, iDeltaPercent, "newyear_moon") >= number(1, iRandRange))
|
||||
{
|
||||
sys_log(0, "EVENT NEWYEAR_MOON DROP");
|
||||
@@ -1526,7 +1526,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
vec_item.push_back(item);
|
||||
}
|
||||
|
||||
// 발렌타인 데이 이벤트. OGE의 요구에 따라 event 최소값을 1로 변경.(다른 이벤트는 일단 그대로 둠.)
|
||||
// 발렌타인 데이 이벤트. OGE의 요구에 따라 event 최소값을 1로 변경.(다른 이벤트는 일단 그대로 둠.)
|
||||
if (GetDropPerKillPct(1, g_iUseLocale ? 2000 : 800, iDeltaPercent, "valentine_drop") >= number(1, iRandRange))
|
||||
{
|
||||
sys_log(0, "EVENT VALENTINE_DROP");
|
||||
@@ -1538,7 +1538,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
vec_item.push_back(item);
|
||||
}
|
||||
|
||||
// 아이스크림 이벤트
|
||||
// 아이스크림 이벤트
|
||||
if (GetDropPerKillPct(100, g_iUseLocale ? 2000 : 800, iDeltaPercent, "icecream_drop") >= number(1, iRandRange))
|
||||
{
|
||||
const static DWORD icecream = 50123;
|
||||
@@ -1547,8 +1547,8 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
vec_item.push_back(item);
|
||||
}
|
||||
|
||||
// new 크리스마스 이벤트
|
||||
// 53002 : 아기 순록 소환권
|
||||
// new 크리스마스 이벤트
|
||||
// 53002 : 아기 순록 소환권
|
||||
if ((pkKiller->CountSpecifyItem(53002) > 0) && (GetDropPerKillPct(50, 100, iDeltaPercent, "new_xmas_event") >= number(1, iRandRange)))
|
||||
{
|
||||
const static DWORD xmas_sock = 50010;
|
||||
@@ -1592,7 +1592,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
vec_item.push_back(item);
|
||||
}
|
||||
|
||||
// 월드컵 이벤트
|
||||
// 월드컵 이벤트
|
||||
if ( GetDropPerKillPct(100, g_iUseLocale ? 2000 : 800, iDeltaPercent, "football_drop") >= number(1, iRandRange) )
|
||||
{
|
||||
const static DWORD football_item = 50096;
|
||||
@@ -1601,7 +1601,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
vec_item.push_back(item);
|
||||
}
|
||||
|
||||
// 화이트 데이 이벤트
|
||||
// 화이트 데이 이벤트
|
||||
if (GetDropPerKillPct(100, g_iUseLocale ? 2000 : 800, iDeltaPercent, "whiteday_drop") >= number(1, iRandRange))
|
||||
{
|
||||
sys_log(0, "EVENT WHITEDAY_DROP");
|
||||
@@ -1612,7 +1612,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
vec_item.push_back(item);
|
||||
}
|
||||
|
||||
// 어린이날 수수께끼 상자 이벤트
|
||||
// 어린이날 수수께끼 상자 이벤트
|
||||
if (pkKiller->GetLevel()>=50)
|
||||
{
|
||||
if (GetDropPerKillPct(100, 1000, iDeltaPercent, "kids_day_drop_high") >= number(1, iRandRange))
|
||||
@@ -1634,7 +1634,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
}
|
||||
}
|
||||
|
||||
// 올림픽 드롭 이벤트
|
||||
// 올림픽 드롭 이벤트
|
||||
if (pkChr->GetLevel() >= 30 && GetDropPerKillPct(50, 100, iDeltaPercent, "medal_part_drop") >= number(1, iRandRange))
|
||||
{
|
||||
const static DWORD drop_items[] = { 30265, 30266, 30267, 30268, 30269 };
|
||||
@@ -1645,7 +1645,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
}
|
||||
|
||||
// ADD_GRANDMASTER_SKILL
|
||||
// 혼석 아이템 드롭
|
||||
// 혼석 아이템 드롭
|
||||
if (pkChr->GetLevel() >= 40 && pkChr->GetMobRank() >= MOB_RANK_BOSS && GetDropPerKillPct(/* minimum */ 1, /* default */ 1000, iDeltaPercent, "three_skill_item") / GetThreeSkillLevelAdjust(pkChr->GetLevel()) >= number(1, iRandRange))
|
||||
{
|
||||
const DWORD ITEM_VNUM = 50513;
|
||||
@@ -1656,7 +1656,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
// END_OF_ADD_GRANDMASTER_SKILL
|
||||
|
||||
//
|
||||
// 종자 아이템 drop
|
||||
// 종자 아이템 drop
|
||||
//
|
||||
if (GetDropPerKillPct(100, 1000, iDeltaPercent, "dragon_boat_festival_drop") >= number(1, iRandRange))
|
||||
{
|
||||
@@ -1666,7 +1666,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
|
||||
vec_item.push_back(item);
|
||||
}
|
||||
|
||||
// 무신의 축복서용 만년한철 drop
|
||||
// 무신의 축복서용 만년한철 drop
|
||||
if (pkKiller->GetLevel() >= 15 && quest::CQuestManager::instance().GetEventFlag("mars_drop"))
|
||||
{
|
||||
const DWORD ITEM_HANIRON = 70035;
|
||||
@@ -1728,8 +1728,8 @@ DWORD ITEM_MANAGER::GetMaskVnum(DWORD dwVnum)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// pkNewItem으로 모든 속성과 소켓 값들을 목사하는 함수.
|
||||
// 기존에 char_item.cpp 파일에 있던 로컬함수인 TransformRefineItem 그대로 복사함
|
||||
// pkNewItem으로 모든 속성과 소켓 값들을 목사하는 함수.
|
||||
// 기존에 char_item.cpp 파일에 있던 로컬함수인 TransformRefineItem 그대로 복사함
|
||||
void ITEM_MANAGER::CopyAllAttrTo(LPITEM pkOldItem, LPITEM pkNewItem)
|
||||
{
|
||||
// ACCESSORY_REFINE
|
||||
@@ -1744,7 +1744,7 @@ void ITEM_MANAGER::CopyAllAttrTo(LPITEM pkOldItem, LPITEM pkNewItem)
|
||||
// END_OF_ACCESSORY_REFINE
|
||||
else
|
||||
{
|
||||
// 여기서 깨진석이 자동적으로 청소 됨
|
||||
// 여기서 깨진석이 자동적으로 청소 됨
|
||||
for (int i = 0; i < ITEM_SOCKET_MAX_NUM; ++i)
|
||||
{
|
||||
if (!pkOldItem->GetSocket(i))
|
||||
@@ -1753,19 +1753,19 @@ void ITEM_MANAGER::CopyAllAttrTo(LPITEM pkOldItem, LPITEM pkNewItem)
|
||||
pkNewItem->SetSocket(i, 1);
|
||||
}
|
||||
|
||||
// 소켓 설정
|
||||
// 소켓 설정
|
||||
int slot = 0;
|
||||
|
||||
for (int i = 0; i < ITEM_SOCKET_MAX_NUM; ++i)
|
||||
{
|
||||
long socket = pkOldItem->GetSocket(i);
|
||||
const int ITEM_BROKEN_METIN_VNUM = 28960; // 이건 뭐 똑같은 상수가 3군데나 있냐... 하나로 해놓지ㅠㅠㅠ 나는 패스 홍이 할꺼임
|
||||
const int ITEM_BROKEN_METIN_VNUM = 28960; // 이건 뭐 똑같은 상수가 3군데나 있냐... 하나로 해놓지ㅠㅠㅠ 나는 패스 홍이 할꺼임
|
||||
if (socket > 2 && socket != ITEM_BROKEN_METIN_VNUM)
|
||||
pkNewItem->SetSocket(slot++, socket);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 매직 아이템 설정
|
||||
// 매직 아이템 설정
|
||||
pkOldItem->CopyAttributeTo(pkNewItem);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user