forked from metin2/server
1
0
Fork 0

convert korean characters in string literals to string encoded bytes

This commit is contained in:
sdgmt2 2024-04-05 22:24:46 +02:00
parent aae9b169df
commit 4a1460f36e
No known key found for this signature in database
59 changed files with 1370 additions and 1370 deletions

View File

@ -102,14 +102,14 @@ EVENTFUNC(battle_arena_event)
case 0:
{
++pInfo->state;
BroadcastNotice(LC_TEXT("몬스터들의 공격까지 5분 남았습니다!!!"));
BroadcastNotice(LC_TEXT("\xB8\xF3\xBD\xBA\xC5\xCD\xB5\xE9\xC0\xC7 \xB0\xF8\xB0\xDD\xB1\xEE\xC1\xF6 5\xBA\xD0 \xB3\xB2\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9!!!"));
}
return test_server ? PASSES_PER_SEC(60) : PASSES_PER_SEC(60*4);
case 1:
{
++pInfo->state;
BroadcastNotice(LC_TEXT("몬스터들의 공격까지 1분 남았습니다!!!"));
BroadcastNotice(LC_TEXT("\xB8\xF3\xBD\xBA\xC5\xCD\xB5\xE9\xC0\xC7 \xB0\xF8\xB0\xDD\xB1\xEE\xC1\xF6 1\xBA\xD0 \xB3\xB2\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9!!!"));
}
return test_server ? PASSES_PER_SEC(10) : PASSES_PER_SEC(60);
@ -119,7 +119,7 @@ EVENTFUNC(battle_arena_event)
pInfo->wait_count = 0;
quest::CQuestManager::instance().RequestSetEventFlag("battle_arena", 0);
BroadcastNotice(LC_TEXT("몬스터들이 성을 공격하기 시작했습니다."));
BroadcastNotice(LC_TEXT("\xB8\xF3\xBD\xBA\xC5\xCD\xB5\xE9\xC0\xCC \xBC\xBA\xC0\xBB \xB0\xF8\xB0\xDD\xC7\xCF\xB1\xE2 \xBD\xC3\xC0\xDB\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."));
LPSECTREE_MAP sectree = SECTREE_MANAGER::instance().GetMap(pInfo->nMapIndex);
@ -141,7 +141,7 @@ EVENTFUNC(battle_arena_event)
if ( SECTREE_MANAGER::instance().GetMonsterCountInMap(pInfo->nMapIndex) <= 0 )
{
pInfo->state = 6;
SendNoticeMap(LC_TEXT("중앙 제단에 악의 기운이 모여듭니다."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("\xC1\xDF\xBE\xD3 \xC1\xA6\xB4\xDC\xBF\xA1 \xBE\xC7\xC0\xC7 \xB1\xE2\xBF\xEE\xC0\xCC \xB8\xF0\xBF\xA9\xB5\xEC\xB4\xCF\xB4\xD9."), pInfo->nMapIndex, false);
}
else
{
@ -150,7 +150,7 @@ EVENTFUNC(battle_arena_event)
if ( pInfo->wait_count >= 5 )
{
pInfo->state++;
SendNoticeMap(LC_TEXT("몬스터들이 물러갈 조짐을 보입니다."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("\xB8\xF3\xBD\xBA\xC5\xCD\xB5\xE9\xC0\xCC \xB9\xB0\xB7\xAF\xB0\xA5 \xC1\xB6\xC1\xFC\xC0\xBB \xBA\xB8\xC0\xD4\xB4\xCF\xB4\xD9."), pInfo->nMapIndex, false);
}
else
{
@ -163,8 +163,8 @@ EVENTFUNC(battle_arena_event)
case 4 :
{
pInfo->state++;
SendNoticeMap(LC_TEXT("몬스터들이 물러가기 시작했습니다."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("잠시 후 마을로 돌아갑니다."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("\xB8\xF3\xBD\xBA\xC5\xCD\xB5\xE9\xC0\xCC \xB9\xB0\xB7\xAF\xB0\xA1\xB1\xE2 \xBD\xC3\xC0\xDB\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("\xC0\xE1\xBD\xC3 \xC8\xC4 \xB8\xB6\xC0\xBB\xB7\xCE \xB5\xB9\xBE\xC6\xB0\xA9\xB4\xCF\xB4\xD9."), pInfo->nMapIndex, false);
SECTREE_MANAGER::instance().PurgeMonstersInMap(pInfo->nMapIndex);
}
@ -189,8 +189,8 @@ EVENTFUNC(battle_arena_event)
pInfo->state++;
pInfo->wait_count = 0;
SendNoticeMap(LC_TEXT("몬스터들의 대장이 나타났습니다."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("30분 내로 귀목령주를 물리쳐주세요."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("\xB8\xF3\xBD\xBA\xC5\xCD\xB5\xE9\xC0\xC7 \xB4\xEB\xC0\xE5\xC0\xCC \xB3\xAA\xC5\xB8\xB3\xB5\xBD\xC0\xB4\xCF\xB4\xD9."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("30\xBA\xD0 \xB3\xBB\xB7\xCE \xB1\xCD\xB8\xF1\xB7\xC9\xC1\xD6\xB8\xA6 \xB9\xB0\xB8\xAE\xC3\xC4\xC1\xD6\xBC\xBC\xBF\xE4."), pInfo->nMapIndex, false);
CBattleArena::instance().SpawnLastBoss();
}
@ -200,8 +200,8 @@ EVENTFUNC(battle_arena_event)
{
if ( SECTREE_MANAGER::instance().GetMonsterCountInMap(pInfo->nMapIndex) <= 0 )
{
SendNoticeMap(LC_TEXT("귀목령주와 그의 부하들을 모두 물리쳤습니다."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("잠시 후 마을로 돌아갑니다."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("\xB1\xCD\xB8\xF1\xB7\xC9\xC1\xD6\xBF\xCD \xB1\xD7\xC0\xC7 \xBA\xCE\xC7\xCF\xB5\xE9\xC0\xBB \xB8\xF0\xB5\xCE \xB9\xB0\xB8\xAE\xC3\xC6\xBD\xC0\xB4\xCF\xB4\xD9."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("\xC0\xE1\xBD\xC3 \xC8\xC4 \xB8\xB6\xC0\xBB\xB7\xCE \xB5\xB9\xBE\xC6\xB0\xA9\xB4\xCF\xB4\xD9."), pInfo->nMapIndex, false);
pInfo->state = 5;
@ -212,8 +212,8 @@ EVENTFUNC(battle_arena_event)
if ( pInfo->wait_count >= 6 )
{
SendNoticeMap(LC_TEXT("귀목령주가 퇴각하였습니다."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("잠시 후 마을로 돌아갑니다."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("\xB1\xCD\xB8\xF1\xB7\xC9\xC1\xD6\xB0\xA1 \xC5\xF0\xB0\xA2\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("\xC0\xE1\xBD\xC3 \xC8\xC4 \xB8\xB6\xC0\xBB\xB7\xCE \xB5\xB9\xBE\xC6\xB0\xA9\xB4\xCF\xB4\xD9."), pInfo->nMapIndex, false);
SECTREE_MANAGER::instance().PurgeMonstersInMap(pInfo->nMapIndex);
SECTREE_MANAGER::instance().PurgeStonesInMap(pInfo->nMapIndex);
@ -243,9 +243,9 @@ bool CBattleArena::Start(int nEmpire)
m_nEmpire = nEmpire;
char szBuf[1024];
snprintf(szBuf, sizeof(szBuf), LC_TEXT("%s의 성으로 몬스터들이 진군하고 있습니다."), EMPIRE_NAME(m_nEmpire));
snprintf(szBuf, sizeof(szBuf), LC_TEXT("%s\xC0\xC7 \xBC\xBA\xC0\xB8\xB7\xCE \xB8\xF3\xBD\xBA\xC5\xCD\xB5\xE9\xC0\xCC \xC1\xF8\xB1\xBA\xC7\xCF\xB0\xED \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."), EMPIRE_NAME(m_nEmpire));
BroadcastNotice(szBuf);
BroadcastNotice(LC_TEXT("10분 뒤 성을 공격할 예정입니다."));
BroadcastNotice(LC_TEXT("10\xBA\xD0 \xB5\xDA \xBC\xBA\xC0\xBB \xB0\xF8\xB0\xDD\xC7\xD2 \xBF\xB9\xC1\xA4\xC0\xD4\xB4\xCF\xB4\xD9."));
if (m_pEvent != NULL) {
event_cancel(&m_pEvent);

View File

@ -91,7 +91,7 @@ EVENTFUNC( DragonLair_Collapse_Event )
if (0 == pInfo->step)
{
char buf[512];
snprintf(buf, 512, LC_TEXT("용가리가 %d 초만에 죽어써효ㅠㅠ"), pInfo->pLair->GetEstimatedTime());
snprintf(buf, 512, LC_TEXT("\xBF\xEB\xB0\xA1\xB8\xAE\xB0\xA1 %d \xC3\xCA\xB8\xB8\xBF\xA1 \xC1\xD7\xBE\xEE\xBD\xE1\xC8\xBF\xA4\xD0\xA4\xD0"), pInfo->pLair->GetEstimatedTime());
SendNoticeMap(buf, pInfo->InstanceMapIndex, true);
pInfo->step++;
@ -146,7 +146,7 @@ DWORD CDragonLair::GetEstimatedTime() const
void CDragonLair::OnDragonDead(LPCHARACTER pDragon)
{
SPDLOG_DEBUG("DragonLair: 도라곤이 죽어써효");
SPDLOG_DEBUG("DragonLair: \xB5\xB5\xB6\xF3\xB0\xEF\xC0\xCC \xC1\xD7\xBE\xEE\xBD\xE1\xC8\xBF");
LogManager::instance().DragonSlayLog( GuildID_, pDragon->GetMobTable().dwVnum, StartTime_, get_global_time() );
}

View File

@ -322,7 +322,7 @@ bool DSManager::ExtractDragonHeart(LPCHARACTER ch, LPITEM pItem, LPITEM pExtract
return false;
if (pItem->IsEquipped())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("착용 중인 용혼석은 추출할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC2\xF8\xBF\xEB \xC1\xDF\xC0\xCE \xBF\xEB\xC8\xA5\xBC\xAE\xC0\xBA \xC3\xDF\xC3\xE2\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
@ -366,7 +366,7 @@ bool DSManager::ExtractDragonHeart(LPCHARACTER ch, LPITEM pItem, LPITEM pExtract
}
LogManager::instance().ItemLog(ch, pItem, "DS_HEART_EXTRACT_FAIL", "");
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용심 추출에 실패하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xBD\xC9 \xC3\xDF\xC3\xE2\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
else
@ -392,7 +392,7 @@ bool DSManager::ExtractDragonHeart(LPCHARACTER ch, LPITEM pItem, LPITEM pExtract
std::string s = boost::lexical_cast <std::string> (iCharge);
s += "%s";
LogManager::instance().ItemLog(ch, pItem, "DS_HEART_EXTRACT_SUCCESS", s.c_str());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용심 추출에 성공하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xBD\xC9 \xC3\xDF\xC3\xE2\xBF\xA1 \xBC\xBA\xB0\xF8\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
return true;
}
}
@ -412,7 +412,7 @@ bool DSManager::PullOut(LPCHARACTER ch, TItemPos DestCell, LPITEM& pItem, LPITEM
int iEmptyCell = ch->GetEmptyDragonSoulInventory(pItem);
if (iEmptyCell < 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("소지품에 빈 공간이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xD2\xC1\xF6\xC7\xB0\xBF\xA1 \xBA\xF3 \xB0\xF8\xB0\xA3\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
else
@ -469,7 +469,7 @@ bool DSManager::PullOut(LPCHARACTER ch, TItemPos DestCell, LPITEM& pItem, LPITEM
sprintf(buf, "dice(%d) prob(%d)", (int)fDice, (int)fProb);
}
LogManager::instance().ItemLog(ch, pItem, "DS_PULL_OUT_SUCCESS", buf);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용혼석 추출에 성공하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xC8\xA5\xBC\xAE \xC3\xDF\xC3\xE2\xBF\xA1 \xBC\xBA\xB0\xF8\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
pItem->AddToCharacter(ch, DestCell);
return true;
}
@ -490,12 +490,12 @@ bool DSManager::PullOut(LPCHARACTER ch, TItemPos DestCell, LPITEM& pItem, LPITEM
{
LPITEM pByProduct = ch->AutoGiveItem(dwByProduct, true);
if (pByProduct)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용혼석 추출에 실패하여 %s를 얻었습니다."), pByProduct->GetName());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xC8\xA5\xBC\xAE \xC3\xDF\xC3\xE2\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xA9 %s\xB8\xA6 \xBE\xF2\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."), pByProduct->GetName());
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용혼석 추출에 실패하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xC8\xA5\xBC\xAE \xC3\xDF\xC3\xE2\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용혼석 추출에 실패하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xC8\xA5\xBC\xAE \xC3\xDF\xC3\xE2\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
@ -532,7 +532,7 @@ bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL
// 용혼석이 아닌 아이템이 개량창에 있을 수 없다.
if (!pItem->IsDragonSoul())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("등급 개량에 필요한 재료가 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xEE\xB1\xDE \xB0\xB3\xB7\xAE\xBF\xA1 \xC7\xCA\xBF\xE4\xC7\xD1 \xC0\xE7\xB7\xE1\xB0\xA1 \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL, TItemPos(pItem->GetWindow(), pItem->GetCell()));
return false;
@ -566,7 +566,7 @@ bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL
if (!m_pTable->GetRefineGradeValues(ds_type, grade_idx, need_count, fee, vec_probs))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("등급 개량할 수 없는 용혼석입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xEE\xB1\xDE \xB0\xB3\xB7\xAE\xC7\xD2 \xBC\xF6 \xBE\xF8\xB4\xC2 \xBF\xEB\xC8\xA5\xBC\xAE\xC0\xD4\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL, TItemPos(pItem->GetWindow(), pItem->GetCell()));
return false;
@ -585,7 +585,7 @@ bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL
if (ds_type != GetType(pItem->GetVnum()) || grade_idx != GetGradeIdx(pItem->GetVnum()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("등급 개량에 필요한 재료가 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xEE\xB1\xDE \xB0\xB3\xB7\xAE\xBF\xA1 \xC7\xCA\xBF\xE4\xC7\xD1 \xC0\xE7\xB7\xE1\xB0\xA1 \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL, TItemPos(pItem->GetWindow(), pItem->GetCell()));
return false;
@ -603,7 +603,7 @@ bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL
if (ch->GetGold() < fee)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("개량을 하기 위한 돈이 부족합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xB3\xB7\xAE\xC0\xBB \xC7\xCF\xB1\xE2 \xC0\xA7\xC7\xD1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MONEY, NPOS);
return false;
}
@ -648,7 +648,7 @@ bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL
char buf[128];
sprintf(buf, "GRADE : %d -> %d", grade_idx, result_grade);
LogManager::instance().ItemLog(ch, pResultItem, "DS_GRADE_REFINE_SUCCESS", buf);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("등급 개량에 성공했습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xEE\xB1\xDE \xB0\xB3\xB7\xAE\xBF\xA1 \xBC\xBA\xB0\xF8\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_SUCCEED, TItemPos (pResultItem->GetWindow(), pResultItem->GetCell()));
return true;
}
@ -657,7 +657,7 @@ bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL
char buf[128];
sprintf(buf, "GRADE : %d -> %d", grade_idx, result_grade);
LogManager::instance().ItemLog(ch, pResultItem, "DS_GRADE_REFINE_FAIL", buf);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("등급 개량에 실패했습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xEE\xB1\xDE \xB0\xB3\xB7\xAE\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL, TItemPos (pResultItem->GetWindow(), pResultItem->GetCell()));
return false;
}
@ -690,7 +690,7 @@ bool DSManager::DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_
// 용혼석이 아닌 아이템이 개량창에 있을 수 없다.
if (!pItem->IsDragonSoul())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("단계 개량에 필요한 재료가 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xDC\xB0\xE8 \xB0\xB3\xB7\xAE\xBF\xA1 \xC7\xCA\xBF\xE4\xC7\xD1 \xC0\xE7\xB7\xE1\xB0\xA1 \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL, TItemPos(pItem->GetWindow(), pItem->GetCell()));
return false;
}
@ -721,7 +721,7 @@ bool DSManager::DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_
if (!m_pTable->GetRefineStepValues(ds_type, step_idx, need_count, fee, vec_probs))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("단계 개량할 수 없는 용혼석입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xDC\xB0\xE8 \xB0\xB3\xB7\xAE\xC7\xD2 \xBC\xF6 \xBE\xF8\xB4\xC2 \xBF\xEB\xC8\xA5\xBC\xAE\xC0\xD4\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL, TItemPos(pItem->GetWindow(), pItem->GetCell()));
return false;
}
@ -738,7 +738,7 @@ bool DSManager::DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_
}
if (ds_type != GetType(pItem->GetVnum()) || grade_idx != GetGradeIdx(pItem->GetVnum()) || step_idx != GetStepIdx(pItem->GetVnum()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("단계 개량에 필요한 재료가 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xDC\xB0\xE8 \xB0\xB3\xB7\xAE\xBF\xA1 \xC7\xCA\xBF\xE4\xC7\xD1 \xC0\xE7\xB7\xE1\xB0\xA1 \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL, TItemPos(pItem->GetWindow(), pItem->GetCell()));
return false;
}
@ -755,7 +755,7 @@ bool DSManager::DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_
if (ch->GetGold() < fee)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("개량을 하기 위한 돈이 부족합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xB3\xB7\xAE\xC0\xBB \xC7\xCF\xB1\xE2 \xC0\xA7\xC7\xD1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MONEY, NPOS);
return false;
}
@ -800,7 +800,7 @@ bool DSManager::DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_
char buf[128];
sprintf(buf, "STEP : %d -> %d", step_idx, result_step);
LogManager::instance().ItemLog(ch, pResultItem, "DS_STEP_REFINE_SUCCESS", buf);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("단계 개량에 성공했습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xDC\xB0\xE8 \xB0\xB3\xB7\xAE\xBF\xA1 \xBC\xBA\xB0\xF8\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_SUCCEED, TItemPos (pResultItem->GetWindow(), pResultItem->GetCell()));
return true;
}
@ -809,7 +809,7 @@ bool DSManager::DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_
char buf[128];
sprintf(buf, "STEP : %d -> %d", step_idx, result_step);
LogManager::instance().ItemLog(ch, pResultItem, "DS_STEP_REFINE_FAIL", buf);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("단계 개량에 실패했습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xDC\xB0\xE8 \xB0\xB3\xB7\xAE\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL, TItemPos (pResultItem->GetWindow(), pResultItem->GetCell()));
return false;
}
@ -892,7 +892,7 @@ bool DSManager::DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_S
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("강화에 필요한 재료가 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xAD\xC8\xAD\xBF\xA1 \xC7\xCA\xBF\xE4\xC7\xD1 \xC0\xE7\xB7\xE1\xB0\xA1 \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL, TItemPos(pItem->GetWindow(), pItem->GetCell()));
return false;
}
@ -915,14 +915,14 @@ bool DSManager::DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_S
// 가중치 값이 없다면 강화할 수 없는 용혼석
if (!m_pTable->GetWeight(bType, bGrade, bStep, bStrength + 1, fWeight))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("강화할 수 없는 용혼석입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xAD\xC8\xAD\xC7\xD2 \xBC\xF6 \xBE\xF8\xB4\xC2 \xBF\xEB\xC8\xA5\xBC\xAE\xC0\xD4\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_MAX_REFINE, TItemPos(pDragonSoul->GetWindow(), pDragonSoul->GetCell()));
return false;
}
// 강화했을 때 가중치가 0이라면 더 이상 강화되서는 안된다.
if (fWeight < FLT_EPSILON)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("강화할 수 없는 용혼석입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xAD\xC8\xAD\xC7\xD2 \xBC\xF6 \xBE\xF8\xB4\xC2 \xBF\xEB\xC8\xA5\xBC\xAE\xC0\xD4\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_MAX_REFINE, TItemPos(pDragonSoul->GetWindow(), pDragonSoul->GetCell()));
return false;
}
@ -931,7 +931,7 @@ bool DSManager::DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_S
float fProb;
if (!m_pTable->GetRefineStrengthValues(bType, pRefineStone->GetSubType(), bStrength, fee, fProb))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("강화할 수 없는 용혼석입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xAD\xC8\xAD\xC7\xD2 \xBC\xF6 \xBE\xF8\xB4\xC2 \xBF\xEB\xC8\xA5\xBC\xAE\xC0\xD4\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL, TItemPos(pDragonSoul->GetWindow(), pDragonSoul->GetCell()));
return false;
@ -939,7 +939,7 @@ bool DSManager::DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_S
if (ch->GetGold() < fee)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("개량을 하기 위한 돈이 부족합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xB3\xB7\xAE\xC0\xBB \xC7\xCF\xB1\xE2 \xC0\xA7\xC7\xD1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9."));
SendRefineResultPacket(ch, DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MONEY, NPOS);
return false;
}
@ -967,7 +967,7 @@ bool DSManager::DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_S
char buf[128];
sprintf(buf, "STRENGTH : %d -> %d", bStrength, bStrength + 1);
LogManager::instance().ItemLog(ch, pDragonSoul, "DS_STRENGTH_REFINE_SUCCESS", buf);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("강화에 성공했습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xAD\xC8\xAD\xBF\xA1 \xBC\xBA\xB0\xF8\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->AutoGiveItem(pResult, true);
bSubHeader = DS_SUB_HEADER_REFINE_SUCCEED;
}
@ -991,7 +991,7 @@ bool DSManager::DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_S
// strength강화는 실패시 깨질 수도 있어, 원본 아이템을 바탕으로 로그를 남김.
LogManager::instance().ItemLog(ch, pDragonSoul, "DS_STRENGTH_REFINE_FAIL", buf);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("강화에 실패했습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xAD\xC8\xAD\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."));
pDragonSoul->SetCount(pDragonSoul->GetCount() - 1);
pRefineStone->SetCount(pRefineStone->GetCount() - 1);
if (NULL != pResult)

View File

@ -155,11 +155,11 @@ bool COXEventManager::ShowQuizList(LPCHARACTER pkChar)
{
for (size_t j = 0; j < m_vec_quiz[i].size(); ++j, ++c)
{
pkChar->ChatPacket(CHAT_TYPE_INFO, "%d %s %s", m_vec_quiz[i][j].level, m_vec_quiz[i][j].Quiz, m_vec_quiz[i][j].answer ? LC_TEXT("") : LC_TEXT("거짓"));
pkChar->ChatPacket(CHAT_TYPE_INFO, "%d %s %s", m_vec_quiz[i][j].level, m_vec_quiz[i][j].Quiz, m_vec_quiz[i][j].answer ? LC_TEXT("\xC2\xFC") : LC_TEXT("\xB0\xC5\xC1\xFE"));
}
}
pkChar->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("총 퀴즈 수: %d"), c);
pkChar->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xD1 \xC4\xFB\xC1\xEE \xBC\xF6: %d"), c);
return true;
}
@ -197,22 +197,22 @@ EVENTFUNC(oxevent_timer)
switch (flag)
{
case 0:
SendNoticeMap(LC_TEXT("10초뒤 판정하겠습니다."), OXEVENT_MAP_INDEX, true);
SendNoticeMap(LC_TEXT("10\xC3\xCA\xB5\xDA \xC6\xC7\xC1\xA4\xC7\xCF\xB0\xDA\xBD\xC0\xB4\xCF\xB4\xD9."), OXEVENT_MAP_INDEX, true);
flag++;
return PASSES_PER_SEC(10);
case 1:
SendNoticeMap(LC_TEXT("정답은"), OXEVENT_MAP_INDEX, true);
SendNoticeMap(LC_TEXT("\xC1\xA4\xB4\xE4\xC0\xBA"), OXEVENT_MAP_INDEX, true);
if (info->answer == true)
{
COXEventManager::instance().CheckAnswer(true);
SendNoticeMap(LC_TEXT("O 입니다"), OXEVENT_MAP_INDEX, true);
SendNoticeMap(LC_TEXT("O \xC0\xD4\xB4\xCF\xB4\xD9"), OXEVENT_MAP_INDEX, true);
}
else
{
COXEventManager::instance().CheckAnswer(false);
SendNoticeMap(LC_TEXT("X 입니다"), OXEVENT_MAP_INDEX, true);
SendNoticeMap(LC_TEXT("X \xC0\xD4\xB4\xCF\xB4\xD9"), OXEVENT_MAP_INDEX, true);
}
if (LC_IsJapan())
@ -221,7 +221,7 @@ EVENTFUNC(oxevent_timer)
}
else
{
SendNoticeMap(LC_TEXT("5초 뒤 틀리신 분들을 바깥으로 이동 시키겠습니다."), OXEVENT_MAP_INDEX, true);
SendNoticeMap(LC_TEXT("5\xC3\xCA \xB5\xDA \xC6\xB2\xB8\xAE\xBD\xC5 \xBA\xD0\xB5\xE9\xC0\xBB \xB9\xD9\xB1\xF9\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF \xBD\xC3\xC5\xB0\xB0\xDA\xBD\xC0\xB4\xCF\xB4\xD9."), OXEVENT_MAP_INDEX, true);
}
flag++;
@ -230,7 +230,7 @@ EVENTFUNC(oxevent_timer)
case 2:
COXEventManager::instance().WarpToAudience();
COXEventManager::instance().SetStatus(OXEVENT_CLOSE);
SendNoticeMap(LC_TEXT("다음 문제 준비해주세요."), OXEVENT_MAP_INDEX, true);
SendNoticeMap(LC_TEXT("\xB4\xD9\xC0\xBD \xB9\xAE\xC1\xA6 \xC1\xD8\xBA\xF1\xC7\xD8\xC1\xD6\xBC\xBC\xBF\xE4."), OXEVENT_MAP_INDEX, true);
flag = 0;
break;
}
@ -247,9 +247,9 @@ bool COXEventManager::Quiz(unsigned char level, int timelimit)
int idx = Random::get<int>(0, m_vec_quiz[level].size() - 1);
SendNoticeMap(LC_TEXT("문제 입니다."), OXEVENT_MAP_INDEX, true);
SendNoticeMap(LC_TEXT("\xB9\xAE\xC1\xA6 \xC0\xD4\xB4\xCF\xB4\xD9."), OXEVENT_MAP_INDEX, true);
SendNoticeMap(m_vec_quiz[level][idx].Quiz, OXEVENT_MAP_INDEX, true);
SendNoticeMap(LC_TEXT("맞으면 O, 틀리면 X로 이동해주세요"), OXEVENT_MAP_INDEX, true);
SendNoticeMap(LC_TEXT("\xB8\xC2\xC0\xB8\xB8\xE9 O, \xC6\xB2\xB8\xAE\xB8\xE9 X\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD8\xC1\xD6\xBC\xBC\xBF\xE4"), OXEVENT_MAP_INDEX, true);
if (m_timedEvent != NULL) {
event_cancel(&m_timedEvent);
@ -312,7 +312,7 @@ bool COXEventManager::CheckAnswer(bool answer)
}
else
{
pkChar->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("정답입니다!"));
pkChar->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xA4\xB4\xE4\xC0\xD4\xB4\xCF\xB4\xD9!"));
// pkChar->CreateFly(Random::get(FLY_FIREWORK1, FLY_FIREWORK6), pkChar);
char chatbuf[256];
int len = snprintf(chatbuf, sizeof(chatbuf),

View File

@ -233,17 +233,17 @@ EVENTFUNC(ready_to_start_event)
if (chA != NULL)
{
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련 상대가 사라져 대련을 종료합니다."));
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3 \xBB\xF3\xB4\xEB\xB0\xA1 \xBB\xE7\xB6\xF3\xC1\xAE \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
SPDLOG_DEBUG("ARENA: Oppernent is disappered. MyPID({}) OppPID({})", pArena->GetPlayerAPID(), pArena->GetPlayerBPID());
}
if (chB != NULL)
{
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련 상대가 사라져 대련을 종료합니다."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3 \xBB\xF3\xB4\xEB\xB0\xA1 \xBB\xE7\xB6\xF3\xC1\xAE \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
SPDLOG_DEBUG("ARENA: Oppernent is disappered. MyPID({}) OppPID({})", pArena->GetPlayerBPID(), pArena->GetPlayerAPID());
}
pArena->SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("대련 상대가 사라져 대련을 종료합니다."));
pArena->SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xEB\xB7\xC3 \xBB\xF3\xB4\xEB\xB0\xA1 \xBB\xE7\xB6\xF3\xC1\xAE \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
pArena->EndDuel();
return 0;
@ -260,20 +260,20 @@ EVENTFUNC(ready_to_start_event)
if (count > 10000)
{
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("물약 제한이 없습니다."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("물약 제한이 없습니다."));
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB9\xB0\xBE\xE0 \xC1\xA6\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB9\xB0\xBE\xE0 \xC1\xA6\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
chA->SetPotionLimit(count);
chB->SetPotionLimit(count);
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("물약을 %d 개 까지 사용 가능합니다."), chA->GetPotionLimit());
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("물약을 %d 개 까지 사용 가능합니다."), chB->GetPotionLimit());
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB9\xB0\xBE\xE0\xC0\xBB %d \xB0\xB3 \xB1\xEE\xC1\xF6 \xBB\xE7\xBF\xEB \xB0\xA1\xB4\xC9\xC7\xD5\xB4\xCF\xB4\xD9."), chA->GetPotionLimit());
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB9\xB0\xBE\xE0\xC0\xBB %d \xB0\xB3 \xB1\xEE\xC1\xF6 \xBB\xE7\xBF\xEB \xB0\xA1\xB4\xC9\xC7\xD5\xB4\xCF\xB4\xD9."), chB->GetPotionLimit());
}
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10초뒤 대련이 시작됩니다."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10초뒤 대련이 시작됩니다."));
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("10초뒤 대련이 시작됩니다."));
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10\xC3\xCA\xB5\xDA \xB4\xEB\xB7\xC3\xC0\xCC \xBD\xC3\xC0\xDB\xB5\xCB\xB4\xCF\xB4\xD9."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10\xC3\xCA\xB5\xDA \xB4\xEB\xB7\xC3\xC0\xCC \xBD\xC3\xC0\xDB\xB5\xCB\xB4\xCF\xB4\xD9."));
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("10\xC3\xCA\xB5\xDA \xB4\xEB\xB7\xC3\xC0\xCC \xBD\xC3\xC0\xDB\xB5\xCB\xB4\xCF\xB4\xD9."));
info->state++;
return PASSES_PER_SEC(10);
@ -282,9 +282,9 @@ EVENTFUNC(ready_to_start_event)
case 1:
{
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련이 시작되었습니다."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련이 시작되었습니다."));
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("대련이 시작되었습니다."));
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xCC \xBD\xC3\xC0\xDB\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xCC \xBD\xC3\xC0\xDB\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xCC \xBD\xC3\xC0\xDB\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
TPacketGCDuelStart duelStart;
duelStart.header = HEADER_GC_DUEL_START;
@ -354,9 +354,9 @@ EVENTFUNC(ready_to_start_event)
buf2.write(&dwOppList[0], 4);
chB->GetDesc()->Packet(buf2.read_peek(), buf2.size());
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련이 시작되었습니다."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련이 시작되었습니다."));
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("대련이 시작되었습니다."));
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xCC \xBD\xC3\xC0\xDB\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xCC \xBD\xC3\xC0\xDB\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xCC \xBD\xC3\xC0\xDB\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
pArena->ClearEvent();
@ -366,9 +366,9 @@ EVENTFUNC(ready_to_start_event)
default:
{
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장 문제로 인하여 대련을 종료합니다."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장 문제로 인하여 대련을 종료합니다."));
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("대련장 문제로 인하여 대련을 종료합니다."));
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xE5 \xB9\xAE\xC1\xA6\xB7\xCE \xC0\xCE\xC7\xCF\xBF\xA9 \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xE5 \xB9\xAE\xC1\xA6\xB7\xCE \xC0\xCE\xC7\xCF\xBF\xA9 \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xE5 \xB9\xAE\xC1\xA6\xB7\xCE \xC0\xCE\xC7\xCF\xBF\xA9 \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
SPDLOG_DEBUG("ARENA: Something wrong in event func. info->state({})", info->state);
@ -407,17 +407,17 @@ EVENTFUNC(duel_time_out)
{
if (chA != NULL)
{
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련 상대가 사라져 대련을 종료합니다."));
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3 \xBB\xF3\xB4\xEB\xB0\xA1 \xBB\xE7\xB6\xF3\xC1\xAE \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
SPDLOG_DEBUG("ARENA: Oppernent is disappered. MyPID({}) OppPID({})", pArena->GetPlayerAPID(), pArena->GetPlayerBPID());
}
if (chB != NULL)
{
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련 상대가 사라져 대련을 종료합니다."));
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3 \xBB\xF3\xB4\xEB\xB0\xA1 \xBB\xE7\xB6\xF3\xC1\xAE \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
SPDLOG_DEBUG("ARENA: Oppernent is disappered. MyPID({}) OppPID({})", pArena->GetPlayerBPID(), pArena->GetPlayerAPID());
}
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("대련 상대가 사라져 대련을 종료합니다."));
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3 \xBB\xF3\xB4\xEB\xB0\xA1 \xBB\xE7\xB6\xF3\xC1\xAE \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
pArena->EndDuel();
return 0;
@ -427,14 +427,14 @@ EVENTFUNC(duel_time_out)
switch (info->state)
{
case 0:
pArena->SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("대련 시간 초과로 대련을 중단합니다."));
pArena->SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("10초뒤 마을로 이동합니다."));
pArena->SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xEB\xB7\xC3 \xBD\xC3\xB0\xA3 \xC3\xCA\xB0\xFA\xB7\xCE \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xDF\xB4\xDC\xC7\xD5\xB4\xCF\xB4\xD9."));
pArena->SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("10\xC3\xCA\xB5\xDA \xB8\xB6\xC0\xBB\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD5\xB4\xCF\xB4\xD9."));
chA->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("대련 시간 초과로 대련을 중단합니다."));
chA->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("10초뒤 마을로 이동합니다."));
chA->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xEB\xB7\xC3 \xBD\xC3\xB0\xA3 \xC3\xCA\xB0\xFA\xB7\xCE \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xDF\xB4\xDC\xC7\xD5\xB4\xCF\xB4\xD9."));
chA->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("10\xC3\xCA\xB5\xDA \xB8\xB6\xC0\xBB\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD5\xB4\xCF\xB4\xD9."));
chB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("대련 시간 초과로 대련을 중단합니다."));
chB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("10초뒤 마을로 이동합니다."));
chB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xEB\xB7\xC3 \xBD\xC3\xB0\xA3 \xC3\xCA\xB0\xFA\xB7\xCE \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xDF\xB4\xDC\xC7\xD5\xB4\xCF\xB4\xD9."));
chB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("10\xC3\xCA\xB5\xDA \xB8\xB6\xC0\xBB\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD5\xB4\xCF\xB4\xD9."));
TPacketGCDuelStart duelStart;
duelStart.header = HEADER_GC_DUEL_START;
@ -729,19 +729,19 @@ bool CArena::OnDead(DWORD dwPIDA, DWORD dwPIDB)
if (pCharA == NULL && pCharB == NULL)
{
// µÑ´Ù Á¢¼ÓÀÌ ²÷¾îÁ³´Ù ?!
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("대련자 문제로 인하여 대련을 중단합니다."));
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xDA \xB9\xAE\xC1\xA6\xB7\xCE \xC0\xCE\xC7\xCF\xBF\xA9 \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xDF\xB4\xDC\xC7\xD5\xB4\xCF\xB4\xD9."));
restart = false;
}
else if (pCharA == NULL && pCharB != NULL)
{
pCharB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("상대방 캐릭터의 문제로 인하여 대련을 종료합니다."));
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("대련자 문제로 인하여 대련을 종료합니다."));
pCharB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6 \xC4\xB3\xB8\xAF\xC5\xCD\xC0\xC7 \xB9\xAE\xC1\xA6\xB7\xCE \xC0\xCE\xC7\xCF\xBF\xA9 \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xDA \xB9\xAE\xC1\xA6\xB7\xCE \xC0\xCE\xC7\xCF\xBF\xA9 \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
restart = false;
}
else if (pCharA != NULL && pCharB == NULL)
{
pCharA->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("상대방 캐릭터의 문제로 인하여 대련을 종료합니다."));
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("대련자 문제로 인하여 대련을 종료합니다."));
pCharA->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6 \xC4\xB3\xB8\xAF\xC5\xCD\xC0\xC7 \xB9\xAE\xC1\xA6\xB7\xCE \xC0\xCE\xC7\xCF\xBF\xA9 \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xDA \xB9\xAE\xC1\xA6\xB7\xCE \xC0\xCE\xC7\xCF\xBF\xA9 \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xD5\xB4\xCF\xB4\xD9."));
restart = false;
}
else if (pCharA != NULL && pCharB != NULL)
@ -752,9 +752,9 @@ bool CArena::OnDead(DWORD dwPIDA, DWORD dwPIDB)
if (m_dwSetPointOfA >= m_dwSetCount)
{
pCharA->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("%s 님이 대련에서 승리하였습니다."), pCharA->GetName());
pCharB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("%s 님이 대련에서 승리하였습니다."), pCharA->GetName());
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("%s 님이 대련에서 승리하였습니다."), pCharA->GetName());
pCharA->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("%s \xB4\xD4\xC0\xCC \xB4\xEB\xB7\xC3\xBF\xA1\xBC\xAD \xBD\xC2\xB8\xAE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pCharA->GetName());
pCharB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("%s \xB4\xD4\xC0\xCC \xB4\xEB\xB7\xC3\xBF\xA1\xBC\xAD \xBD\xC2\xB8\xAE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pCharA->GetName());
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("%s \xB4\xD4\xC0\xCC \xB4\xEB\xB7\xC3\xBF\xA1\xBC\xAD \xBD\xC2\xB8\xAE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pCharA->GetName());
SPDLOG_DEBUG("ARENA: Duel is end. Winner {}({}) Loser {}({})",
pCharA->GetName(), GetPlayerAPID(), pCharB->GetName(), GetPlayerBPID());
@ -762,10 +762,10 @@ bool CArena::OnDead(DWORD dwPIDA, DWORD dwPIDB)
else
{
restart = true;
pCharA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님이 승리하였습니다."), pCharA->GetName());
pCharA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xCC \xBD\xC2\xB8\xAE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pCharA->GetName());
pCharA->ChatPacket(CHAT_TYPE_NOTICE, "%s %d : %d %s", pCharA->GetName(), m_dwSetPointOfA, m_dwSetPointOfB, pCharB->GetName());
pCharB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님이 승리하였습니다."), pCharA->GetName());
pCharB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xCC \xBD\xC2\xB8\xAE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pCharA->GetName());
pCharB->ChatPacket(CHAT_TYPE_NOTICE, "%s %d : %d %s", pCharA->GetName(), m_dwSetPointOfA, m_dwSetPointOfB, pCharB->GetName());
SendChatPacketToObserver(CHAT_TYPE_NOTICE, "%s %d : %d %s", pCharA->GetName(), m_dwSetPointOfA, m_dwSetPointOfB, pCharB->GetName());
@ -779,19 +779,19 @@ bool CArena::OnDead(DWORD dwPIDA, DWORD dwPIDB)
m_dwSetPointOfB++;
if (m_dwSetPointOfB >= m_dwSetCount)
{
pCharA->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("%s 님이 대련에서 승리하였습니다."), pCharB->GetName());
pCharB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("%s 님이 대련에서 승리하였습니다."), pCharB->GetName());
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("%s 님이 대련에서 승리하였습니다."), pCharB->GetName());
pCharA->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("%s \xB4\xD4\xC0\xCC \xB4\xEB\xB7\xC3\xBF\xA1\xBC\xAD \xBD\xC2\xB8\xAE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pCharB->GetName());
pCharB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("%s \xB4\xD4\xC0\xCC \xB4\xEB\xB7\xC3\xBF\xA1\xBC\xAD \xBD\xC2\xB8\xAE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pCharB->GetName());
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("%s \xB4\xD4\xC0\xCC \xB4\xEB\xB7\xC3\xBF\xA1\xBC\xAD \xBD\xC2\xB8\xAE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pCharB->GetName());
SPDLOG_DEBUG("ARENA: Duel is end. Winner({}) Loser({})", GetPlayerBPID(), GetPlayerAPID());
}
else
{
restart = true;
pCharA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님이 승리하였습니다."), pCharB->GetName());
pCharA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xCC \xBD\xC2\xB8\xAE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pCharB->GetName());
pCharA->ChatPacket(CHAT_TYPE_NOTICE, "%s %d : %d %s", pCharA->GetName(), m_dwSetPointOfA, m_dwSetPointOfB, pCharB->GetName());
pCharB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님이 승리하였습니다."), pCharB->GetName());
pCharB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xCC \xBD\xC2\xB8\xAE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pCharB->GetName());
pCharB->ChatPacket(CHAT_TYPE_NOTICE, "%s %d : %d %s", pCharA->GetName(), m_dwSetPointOfA, m_dwSetPointOfB, pCharB->GetName());
SendChatPacketToObserver(CHAT_TYPE_NOTICE, "%s %d : %d %s", pCharA->GetName(), m_dwSetPointOfA, m_dwSetPointOfB, pCharB->GetName());
@ -817,12 +817,12 @@ bool CArena::OnDead(DWORD dwPIDA, DWORD dwPIDB)
if (restart == false)
{
if (pCharA != NULL)
pCharA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10초뒤 마을로 되돌아갑니다."));
pCharA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10\xC3\xCA\xB5\xDA \xB8\xB6\xC0\xBB\xB7\xCE \xB5\xC7\xB5\xB9\xBE\xC6\xB0\xA9\xB4\xCF\xB4\xD9."));
if ( pCharB != NULL)
pCharB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10초뒤 마을로 되돌아갑니다."));
pCharB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10\xC3\xCA\xB5\xDA \xB8\xB6\xC0\xBB\xB7\xCE \xB5\xC7\xB5\xB9\xBE\xC6\xB0\xA9\xB4\xCF\xB4\xD9."));
SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("10초뒤 마을로 되돌아갑니다."));
SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("10\xC3\xCA\xB5\xDA \xB8\xB6\xC0\xBB\xB7\xCE \xB5\xC7\xB5\xB9\xBE\xC6\xB0\xA9\xB4\xCF\xB4\xD9."));
if (m_pEvent != NULL) {
event_cancel(&m_pEvent);
@ -838,12 +838,12 @@ bool CArena::OnDead(DWORD dwPIDA, DWORD dwPIDB)
else
{
if (pCharA != NULL)
pCharA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10초뒤 다음 판을 시작합니다."));
pCharA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10\xC3\xCA\xB5\xDA \xB4\xD9\xC0\xBD \xC6\xC7\xC0\xBB \xBD\xC3\xC0\xDB\xC7\xD5\xB4\xCF\xB4\xD9."));
if (pCharB != NULL)
pCharB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10초뒤 다음 판을 시작합니다."));
pCharB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("10\xC3\xCA\xB5\xDA \xB4\xD9\xC0\xBD \xC6\xC7\xC0\xBB \xBD\xC3\xC0\xDB\xC7\xD5\xB4\xCF\xB4\xD9."));
SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("10초뒤 다음 판을 시작합니다."));
SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("10\xC3\xCA\xB5\xDA \xB4\xD9\xC0\xBD \xC6\xC7\xC0\xBB \xBD\xC3\xC0\xDB\xC7\xD5\xB4\xCF\xB4\xD9."));
if (m_pEvent != NULL) {
event_cancel(&m_pEvent);
@ -949,7 +949,7 @@ void CArena::OnDisconnect(DWORD pid)
if (m_dwPIDA == pid)
{
if (GetPlayerB() != NULL)
GetPlayerB()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방 캐릭터가 접속을 종료하여 대련을 중지합니다."));
GetPlayerB()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6 \xC4\xB3\xB8\xAF\xC5\xCD\xB0\xA1 \xC1\xA2\xBC\xD3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xCF\xBF\xA9 \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xDF\xC1\xF6\xC7\xD5\xB4\xCF\xB4\xD9."));
SPDLOG_DEBUG("ARENA : Duel is end because of Opp({}) is disconnect. MyPID({})", GetPlayerAPID(), GetPlayerBPID());
EndDuel();
@ -957,7 +957,7 @@ void CArena::OnDisconnect(DWORD pid)
else if (m_dwPIDB == pid)
{
if (GetPlayerA() != NULL)
GetPlayerA()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방 캐릭터가 접속을 종료하여 대련을 중지합니다."));
GetPlayerA()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6 \xC4\xB3\xB8\xAF\xC5\xCD\xB0\xA1 \xC1\xA2\xBC\xD3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xCF\xBF\xA9 \xB4\xEB\xB7\xC3\xC0\xBB \xC1\xDF\xC1\xF6\xC7\xD5\xB4\xCF\xB4\xD9."));
SPDLOG_DEBUG("ARENA : Duel is end because of Opp({}) is disconnect. MyPID({})", GetPlayerBPID(), GetPlayerAPID());
EndDuel();

View File

@ -881,21 +881,21 @@ void AuctionManager::enroll_auction (LPCHARACTER ch, LPITEM item, BYTE empire, i
}
if (item->IsEquipped())
{
ch->ChatPacket(CHAT_TYPE_INFO, "장착한 건 등록할 수 없어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xE5\xC2\xF8\xC7\xD1 \xB0\xC7 \xB5\xEE\xB7\xCF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBE\xEE.");
return;
}
if (GetAuctionItemInfo (item->GetID()))
{
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
ch->ChatPacket(CHAT_TYPE_INFO, "이미 등록한 거야. 도대체 뭐지?");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xCC\xB9\xCC \xB5\xEE\xB7\xCF\xC7\xD1 \xB0\xC5\xBE\xDF. \xB5\xB5\xB4\xEB\xC3\xBC \xB9\xB9\xC1\xF6?");
return;
}
if (item->GetWindow() == AUCTION)
{
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
ch->ChatPacket(CHAT_TYPE_INFO, "얜 또 뭐냐..");
ch->ChatPacket(CHAT_TYPE_INFO, "\xBE\xEB \xB6\xC7 \xB9\xB9\xB3\xC4..");
return;
}
@ -918,21 +918,21 @@ void AuctionManager::enroll_sale (LPCHARACTER ch, LPITEM item, DWORD wisher_id,
}
if (item->IsEquipped())
{
ch->ChatPacket(CHAT_TYPE_INFO, "장착한 건 등록할 수 없어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xE5\xC2\xF8\xC7\xD1 \xB0\xC7 \xB5\xEE\xB7\xCF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBE\xEE.");
return;
}
if (GetSaleItemInfo (item->GetID()))
{
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
ch->ChatPacket(CHAT_TYPE_INFO, "이미 등록한 거야. 도대체 뭐지?");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xCC\xB9\xCC \xB5\xEE\xB7\xCF\xC7\xD1 \xB0\xC5\xBE\xDF. \xB5\xB5\xB4\xEB\xC3\xBC \xB9\xB9\xC1\xF6?");
return;
}
if (item->GetWindow() == AUCTION)
{
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
ch->ChatPacket(CHAT_TYPE_INFO, "얜 또 뭐냐..");
ch->ChatPacket(CHAT_TYPE_INFO, "\xBE\xEB \xB6\xC7 \xB9\xB9\xB3\xC4..");
return;
}
@ -959,11 +959,11 @@ void AuctionManager::bid (LPCHARACTER ch, DWORD item_id, int bid_price)
std::pair <int, bool> mb = MyBid.GetMoney(ch->GetPlayerID(), item_id);
if (mb.first != -1)
{
ch->ChatPacket (CHAT_TYPE_INFO, "재입찰을 하란 말이다.");
ch->ChatPacket (CHAT_TYPE_INFO, "\xC0\xE7\xC0\xD4\xC2\xFB\xC0\xBB \xC7\xCF\xB6\xF5 \xB8\xBB\xC0\xCC\xB4\xD9.");
}
if (ch->GetGold() < bid_price)
{
ch->ChatPacket(CHAT_TYPE_INFO, "돈이 부족해");
ch->ChatPacket(CHAT_TYPE_INFO, "\xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD8");
return;
}
@ -988,13 +988,13 @@ void AuctionManager::immediate_purchase (LPCHARACTER ch, DWORD item_id)
if (item_info->get_impur_price() == 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, "즉구 할 수 엄서");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC1\xEF\xB1\xB8 \xC7\xD2 \xBC\xF6 \xBE\xF6\xBC\xAD");
return;
}
if (ch->GetGold() < item_info->get_impur_price())
{
ch->ChatPacket(CHAT_TYPE_INFO, "돈이 부족해");
ch->ChatPacket(CHAT_TYPE_INFO, "\xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD8");
return;
}
@ -1013,7 +1013,7 @@ void AuctionManager::get_auctioned_item (LPCHARACTER ch, DWORD item_id, DWORD it
if (pos == -1)
{
ch->ChatPacket(CHAT_TYPE_INFO, "자리가 엄서");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xDA\xB8\xAE\xB0\xA1 \xBE\xF6\xBC\xAD");
return;
}
@ -1069,13 +1069,13 @@ void AuctionManager::rebid (LPCHARACTER ch, DWORD item_id, int bid_price)
if (lock)
{
ch->ChatPacket(CHAT_TYPE_INFO, "입찰 중이야.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xD4\xC2\xFB \xC1\xDF\xC0\xCC\xBE\xDF.");
return;
}
if (ch->GetGold() + money < bid_price)
{
ch->ChatPacket(CHAT_TYPE_INFO, "돈이 부족해");
ch->ChatPacket(CHAT_TYPE_INFO, "\xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD8");
return;
}
@ -1101,14 +1101,14 @@ void AuctionManager::bid_cancel (LPCHARACTER ch, DWORD item_id)
if (lock)
{
ch->ChatPacket(CHAT_TYPE_INFO, "입찰 중이야.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xD4\xC2\xFB \xC1\xDF\xC0\xCC\xBE\xDF.");
return;
}
TAuctionItemInfo* item_info = GetAuctionItemInfo(item_id);
if (item_info->get_bidder_id() == ch->GetPlayerID())
{
ch->ChatPacket(CHAT_TYPE_INFO, "니가 최고 입찰자야. 취소 못해.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xB4\xCF\xB0\xA1 \xC3\xD6\xB0\xED \xC0\xD4\xC2\xFB\xC0\xDA\xBE\xDF. \xC3\xEB\xBC\xD2 \xB8\xF8\xC7\xD8.");
return;
}
@ -1142,7 +1142,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
Auction.InsertItemInfo (item_info);
if (ch != NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, "경매장에 등록했어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xB0\xE6\xB8\xC5\xC0\xE5\xBF\xA1 \xB5\xEE\xB7\xCF\xC7\xDF\xBE\xEE.");
}
break;
}
@ -1157,7 +1157,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID (player_item->owner);
ch->AutoGiveItem (item, true);
ch->ChatPacket(CHAT_TYPE_INFO, "경매장에 등록하지 못했어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xB0\xE6\xB8\xC5\xC0\xE5\xBF\xA1 \xB5\xEE\xB7\xCF\xC7\xCF\xC1\xF6 \xB8\xF8\xC7\xDF\xBE\xEE.");
}
break;
}
@ -1179,7 +1179,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
Sale.InsertItemInfo (item_info);
if (ch != NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, "판매장에 등록했어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC6\xC7\xB8\xC5\xC0\xE5\xBF\xA1 \xB5\xEE\xB7\xCF\xC7\xDF\xBE\xEE.");
}
break;
}
@ -1193,7 +1193,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
ch->AutoGiveItem (item, true);
ch->ChatPacket(CHAT_TYPE_INFO, "판매장에 등록하지 못했어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC6\xC7\xB8\xC5\xC0\xE5\xBF\xA1 \xB5\xEE\xB7\xCF\xC7\xCF\xC1\xF6 \xB8\xF8\xC7\xDF\xBE\xEE.");
}
break;
}
@ -1210,7 +1210,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
Wish.InsertItemInfo (item_info);
if (ch != NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, "삽니다에 등록했어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xBB\xF0\xB4\xCF\xB4\xD9\xBF\xA1 \xB5\xEE\xB7\xCF\xC7\xDF\xBE\xEE.");
}
break;
}
@ -1218,7 +1218,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
{
if (ch != NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, "삽니다에 등록하지 못했어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xBB\xF0\xB4\xCF\xB4\xD9\xBF\xA1 \xB5\xEE\xB7\xCF\xC7\xCF\xC1\xF6 \xB8\xF8\xC7\xDF\xBE\xEE.");
}
break;
}
@ -1238,7 +1238,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
MyBid.Insert(new_item_info->bidder_id, new_item_info->item_id, new_item_info->get_bid_price());
if (ch != NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, "입찰했어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xD4\xC2\xFB\xC7\xDF\xBE\xEE.");
}
}
break;
@ -1254,7 +1254,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
memcpy (old_item_info, new_item_info, sizeof(TAuctionItemInfo));
if (ch != NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, "즉구 해버렸어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC1\xEF\xB1\xB8 \xC7\xD8\xB9\xF6\xB7\xC8\xBE\xEE.");
}
}
break;
@ -1277,7 +1277,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
{
LPITEM item = ITEM_MANAGER::instance().CreateItem(player_item->vnum, player_item->count, item_id);
ch->AutoGiveItem (item, true);
ch->ChatPacket(CHAT_TYPE_INFO, "가져왔어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xB0\xA1\xC1\xAE\xBF\xD4\xBE\xEE.");
if (cmd == AUCTION_GET_AUC || cmd == AUCTION_CANCEL_AUC)
{
TPacketGDCommnadAuction pack_dai;
@ -1337,7 +1337,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
}
else if (ch != NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, "취소했어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC3\xEB\xBC\xD2\xC7\xDF\xBE\xEE.");
}
}
break;

View File

@ -147,10 +147,10 @@ int battle_melee_attack(LPCHARACTER ch, LPCHARACTER victim)
}
if (timed_event_cancel(ch))
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("전투가 시작 되어 취소 되었습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xFC\xC5\xF5\xB0\xA1 \xBD\xC3\xC0\xDB \xB5\xC7\xBE\xEE \xC3\xEB\xBC\xD2 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
if (timed_event_cancel(victim))
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("전투가 시작 되어 취소 되었습니다."));
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xFC\xC5\xF5\xB0\xA1 \xBD\xC3\xC0\xDB \xB5\xC7\xBE\xEE \xC3\xEB\xBC\xD2 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->SetPosition(POS_FIGHTING);
ch->SetVictim(victim);

View File

@ -250,7 +250,7 @@ EVENTFUNC(castle_siege_event)
// 공성 시작후 30분 이내라면 안내만 하자
if (info->pulse < PASSES_PER_SEC(30*60))
{
snprintf(buf, sizeof(buf), LC_TEXT("%s에서 봉화를 둘러싸고 전투가 진행중입니다."),
snprintf(buf, sizeof(buf), LC_TEXT("%s\xBF\xA1\xBC\xAD \xBA\xC0\xC8\xAD\xB8\xA6 \xB5\xD1\xB7\xAF\xBD\xCE\xB0\xED \xC0\xFC\xC5\xF5\xB0\xA1 \xC1\xF8\xC7\xE0\xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."),
EMPIRE_NAME(GET_SIEGE_EMPIRE()));
BroadcastNotice(buf);
@ -264,10 +264,10 @@ EVENTFUNC(castle_siege_event)
case CASTLE_SIEGE_STRUGGLE:
{
snprintf(buf, sizeof(buf), LC_TEXT("%s이 수성에 성공했습니다."), EMPIRE_NAME(GET_SIEGE_EMPIRE()));
snprintf(buf, sizeof(buf), LC_TEXT("%s\xC0\xCC \xBC\xF6\xBC\xBA\xBF\xA1 \xBC\xBA\xB0\xF8\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."), EMPIRE_NAME(GET_SIEGE_EMPIRE()));
BroadcastNotice(buf);
snprintf(buf, sizeof(buf), LC_TEXT("지금부터 %s은 30분간 봉화를 파괴하여 보상을 획득 할 수 있습니다."), EMPIRE_NAME(GET_SIEGE_EMPIRE()));
snprintf(buf, sizeof(buf), LC_TEXT("\xC1\xF6\xB1\xDD\xBA\xCE\xC5\xCD %s\xC0\xBA 30\xBA\xD0\xB0\xA3 \xBA\xC0\xC8\xAD\xB8\xA6 \xC6\xC4\xB1\xAB\xC7\xCF\xBF\xA9 \xBA\xB8\xBB\xF3\xC0\xBB \xC8\xB9\xB5\xE6 \xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."), EMPIRE_NAME(GET_SIEGE_EMPIRE()));
BroadcastNotice(buf);
GET_SIEGE_STATE() = CASTLE_SIEGE_END;
@ -276,7 +276,7 @@ EVENTFUNC(castle_siege_event)
}
break;
case CASTLE_SIEGE_END:
BroadcastNotice(LC_TEXT("30분이 경과했습니다.. 봉화가 사라집니다."));
BroadcastNotice(LC_TEXT("30\xBA\xD0\xC0\xCC \xB0\xE6\xB0\xFA\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9.. \xBA\xC0\xC8\xAD\xB0\xA1 \xBB\xE7\xB6\xF3\xC1\xFD\xB4\xCF\xB4\xD9."));
castle_end_siege();
break;
}
@ -796,7 +796,7 @@ bool castle_spawn_tower(int empire, int tower_count)
// broad cast
{
char buf[1024];
snprintf(buf, sizeof(buf), LC_TEXT("%s에 전쟁의 시작을 알리는 봉화가 나타났습니다."), EMPIRE_NAME(empire));
snprintf(buf, sizeof(buf), LC_TEXT("%s\xBF\xA1 \xC0\xFC\xC0\xEF\xC0\xC7 \xBD\xC3\xC0\xDB\xC0\xBB \xBE\xCB\xB8\xAE\xB4\xC2 \xBA\xC0\xC8\xAD\xB0\xA1 \xB3\xAA\xC5\xB8\xB3\xB5\xBD\xC0\xB4\xCF\xB4\xD9."), EMPIRE_NAME(empire));
BroadcastNotice(buf);
}
return true;
@ -864,7 +864,7 @@ void castle_tower_die(LPCHARACTER ch, LPCHARACTER killer)
case CASTLE_SIEGE_END:
{
int siege_end = true;
snprintf(buf, sizeof(buf), LC_TEXT("%s이 봉화를 파괴했습니다."), EMPIRE_NAME(killer_empire));
snprintf(buf, sizeof(buf), LC_TEXT("%s\xC0\xCC \xBA\xC0\xC8\xAD\xB8\xA6 \xC6\xC4\xB1\xAB\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."), EMPIRE_NAME(killer_empire));
BroadcastNotice(buf);
LogManager::instance().CharLog(killer, 0, "CASTLE_TORCH_KILL", "");
@ -885,12 +885,12 @@ void castle_tower_die(LPCHARACTER ch, LPCHARACTER killer)
{
if (GET_SIEGE_STATE() == CASTLE_SIEGE_STRUGGLE)
{
snprintf(buf, sizeof(buf), LC_TEXT("%s이 수성에 실패하여 전쟁에 패배하였습니다.."), EMPIRE_NAME(GET_SIEGE_EMPIRE()));
snprintf(buf, sizeof(buf), LC_TEXT("%s\xC0\xCC \xBC\xF6\xBC\xBA\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xA9 \xC0\xFC\xC0\xEF\xBF\xA1 \xC6\xD0\xB9\xE8\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9.."), EMPIRE_NAME(GET_SIEGE_EMPIRE()));
BroadcastNotice(buf);
}
else
{
snprintf(buf, sizeof(buf), LC_TEXT("%s이 모든 봉화를 파괴하였습니다."), EMPIRE_NAME(GET_SIEGE_EMPIRE()));
snprintf(buf, sizeof(buf), LC_TEXT("%s\xC0\xCC \xB8\xF0\xB5\xE7 \xBA\xC0\xC8\xAD\xB8\xA6 \xC6\xC4\xB1\xAB\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), EMPIRE_NAME(GET_SIEGE_EMPIRE()));
BroadcastNotice(buf);
}
castle_end_siege();

View File

@ -559,7 +559,7 @@ void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE
{
if (GetPart(PART_MAIN) > 2)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
@ -591,7 +591,7 @@ void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE
if (GOLD_MAX <= nTotalMoney)
{
SPDLOG_ERROR("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id {} name {}", GetPlayerID(), GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʰ<EFBFBD><CAB0>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB0\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xBF\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD"));
return;
}
@ -607,7 +607,7 @@ void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE
{
if (CBanwordManager::instance().CheckString(m_stShopSign.c_str(), m_stShopSign.length()))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD>Ӿ <20><><EFBFBD><20><><EFBFBD>Ե<EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xD3\xBE\xEE\xB3\xAA \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEE\xB0\xA1 \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xD4\xB5\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
}
@ -634,19 +634,19 @@ void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE
if (item_table && (IS_SET(item_table->dwAntiFlags, ITEM_ANTIFLAG_GIVE | ITEM_ANTIFLAG_MYSHOP)))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD><C7B8><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC8\xAD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCE\xBB\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xC7\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
if (pkItem->IsEquipped() == true)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD><C7B8><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCE\xBB\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xC7\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
if (true == pkItem->isLocked())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD><C7B8><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCE\xBB\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xC7\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
@ -1097,14 +1097,14 @@ void CHARACTER::SetPosition(int pos)
{
case POS_FIGHTING:
if (!IsState(m_stateBattle))
MonsterLog("[BATTLE] <EFBFBD>ο<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
MonsterLog("[BATTLE] \xEF\xBF\xBD\xCE\xBF\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD");
GotoState(m_stateBattle);
break;
default:
if (!IsState(m_stateIdle))
MonsterLog("[IDLE] <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>");
MonsterLog("[IDLE] \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD");
GotoState(m_stateIdle);
break;
@ -2659,7 +2659,7 @@ bool CHARACTER::Sync(int x, int y)
void CHARACTER::Stop()
{
if (!IsState(m_stateIdle))
MonsterLog("[IDLE] <EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
MonsterLog("[IDLE] \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD");
GotoState(m_stateIdle);
@ -2694,7 +2694,7 @@ bool CHARACTER::Goto(int x, int y)
if (!IsState(m_stateMove))
{
MonsterLog("[MOVE] %s", GetVictim() ? "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" : "<EFBFBD>׳<EFBFBD><EFBFBD>̵<EFBFBD>");
MonsterLog("[MOVE] %s", GetVictim() ? "\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD" : "\xEF\xBF\xBD\xD7\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xCC\xB5\xEF\xBF\xBD");
if (GetVictim())
{
@ -3919,7 +3919,7 @@ void CHARACTER::mining_cancel()
{
SPDLOG_DEBUG("XXX MINING CANCEL");
event_cancel(&m_pkMiningEvent);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ä<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ߴ<EFBFBD><DFB4>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xDF\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
}
}
@ -3941,7 +3941,7 @@ void CHARACTER::mining(LPCHARACTER chLoad)
if (!pick || pick->GetType() != ITEM_PICK)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEE\xB1\xAA\xEF\xBF\xBD\xCC\xB8\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD."));
return;
}
@ -3980,7 +3980,7 @@ void CHARACTER::fishing()
if (IS_SET(dwAttr, ATTR_BLOCK))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD> <20><> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ƴմϴ<D5B4>"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC3\xB8\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB4\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xC6\xB4\xD5\xB4\xCF\xB4\xEF\xBF\xBD"));
return;
}
}
@ -3990,13 +3990,13 @@ void CHARACTER::fishing()
// <20><><EFBFBD>ô<EFBFBD> <20><><EFBFBD><EFBFBD>
if (!rod || rod->GetType() != ITEM_ROD)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD>ô븦 <20><><EFBFBD><EFBFBD> <20>ϼ<EFBFBD><CFBC><EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC3\xB4\xEB\xB8\xA6 \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCF\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD."));
return;
}
if (0 == rod->GetSocket(2))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD>̳<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xCC\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD."));
return;
}
@ -4022,7 +4022,7 @@ void CHARACTER::fishing_take()
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD>ô밡 <20>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ø<EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>!"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC3\xB4\xEB\xB0\xA1 \xEF\xBF\xBD\xC6\xB4\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC3\xB8\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD!"));
}
event_cancel(&m_pkFishingEvent);
@ -4062,7 +4062,7 @@ void CHARACTER::SetNextStatePulse(int iNextPulse)
m_dwNextStatePulse = iNextPulse;
if (iNextPulse < 10)
MonsterLog("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·ξ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
MonsterLog("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC2\xB7\xCE\xBE\xEE\xBC\xAD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD");
}
@ -4299,7 +4299,7 @@ bool CHARACTER::RequestToParty(LPCHARACTER leader)
if (!leader)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>°<EFBFBD> <20>ƴ϶<C6B4> <20><>û<EFBFBD><C3BB> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC2\xB0\xEF\xBF\xBD \xEF\xBF\xBD\xC6\xB4\xCF\xB6\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC3\xBB\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
}
@ -4320,38 +4320,38 @@ bool CHARACTER::RequestToParty(LPCHARACTER leader)
break;
case PERR_SERVER:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xC3\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
case PERR_DIFFEMPIRE:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20>̷<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xD9\xB8\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB7\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
case PERR_DUNGEON:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ <20>ʴ븦 <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xC8\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xCA\xB4\xEB\xB8\xA6 \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
case PERR_OBSERVER:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E5BFA1> <20><>Ƽ <20>ʴ븦 <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xE5\xBF\xA1\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xCA\xB4\xEB\xB8\xA6 \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
case PERR_LVBOUNDARY:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> -30 ~ +30 <20><><EFBFBD><EFBFBD> <20>̳<EFBFBD><CCB3><EFBFBD> <20><><EFBFBD><20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> -30 ~ +30 \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xE6\xB8\xB8 \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
case PERR_LOWLEVEL:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB0\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD 30\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
case PERR_HILEVEL:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD 30\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
case PERR_ALREADYJOIN:
return false;
case PERR_PARTYISFULL:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><> <20>̻<EFBFBD> <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xBB\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
default:
@ -4367,7 +4367,7 @@ bool CHARACTER::RequestToParty(LPCHARACTER leader)
SetPartyRequestEvent(event_create(party_request_event, info, PASSES_PER_SEC(10)));
leader->ChatPacket(CHAT_TYPE_COMMAND, "PartyRequest %u", (DWORD) GetVID());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s <EFBFBD>Կ<EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20>߽<EFBFBD><DFBD>ϴ<EFBFBD>."), leader->GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xEF\xBF\xBD\xD4\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC3\xBB\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xDF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."), leader->GetName());
return true;
}
@ -4421,7 +4421,7 @@ void CHARACTER::AcceptToParty(LPCHARACTER member)
event_cancel(&member->m_pkPartyRequestEvent);
if (!GetParty())
member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>."));
member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
else
{
if (GetPlayerID() != GetParty()->GetLeaderPID())
@ -4431,16 +4431,16 @@ void CHARACTER::AcceptToParty(LPCHARACTER member)
switch (errcode)
{
case PERR_NONE: member->PartyJoin(this); return;
case PERR_SERVER: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.")); break;
case PERR_DUNGEON: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ <20>ʴ븦 <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.")); break;
case PERR_OBSERVER: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E5BFA1> <20><>Ƽ <20>ʴ븦 <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.")); break;
case PERR_LVBOUNDARY: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> -30 ~ +30 <20><><EFBFBD><EFBFBD> <20>̳<EFBFBD><CCB3><EFBFBD> <20><><EFBFBD><20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.")); break;
case PERR_LOWLEVEL: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.")); break;
case PERR_HILEVEL: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.")); break;
case PERR_SERVER: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xC3\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD.")); break;
case PERR_DUNGEON: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xC8\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xCA\xB4\xEB\xB8\xA6 \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD.")); break;
case PERR_OBSERVER: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xE5\xBF\xA1\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xCA\xB4\xEB\xB8\xA6 \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD.")); break;
case PERR_LVBOUNDARY: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> -30 ~ +30 \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xE6\xB8\xB8 \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD.")); break;
case PERR_LOWLEVEL: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB0\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD 30\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD.")); break;
case PERR_HILEVEL: member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD 30\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD.")); break;
case PERR_ALREADYJOIN: break;
case PERR_PARTYISFULL: {
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><> <20>̻<EFBFBD> <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC> <20>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD><CAB0>Ͽ<EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xBB\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
member->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCE\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB0\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xBF\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
break;
}
default: SPDLOG_ERROR("Do not process party join error({})", (int) errcode);
@ -4479,12 +4479,12 @@ void CHARACTER::PartyInvite(LPCHARACTER pchInvitee)
{
if (GetParty() && GetParty()->GetLeaderPID() != GetPlayerID())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB4\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
else if (pchInvitee->IsBlockMode(BLOCK_PARTY_INVITE))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> %s <20><><EFBFBD><EFBFBD> <20><>Ƽ <20>ź<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>."), pchInvitee->GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> %s \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xC5\xBA\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xD4\xB4\xCF\xB4\xEF\xBF\xBD."), pchInvitee->GetName());
return;
}
@ -4496,39 +4496,39 @@ void CHARACTER::PartyInvite(LPCHARACTER pchInvitee)
break;
case PERR_SERVER:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xC3\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_DIFFEMPIRE:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20>̷<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xD9\xB8\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB7\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_DUNGEON:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ <20>ʴ븦 <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xC8\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xCA\xB4\xEB\xB8\xA6 \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_OBSERVER:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E5BFA1> <20><>Ƽ <20>ʴ븦 <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xE5\xBF\xA1\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xCA\xB4\xEB\xB8\xA6 \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_LVBOUNDARY:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> -30 ~ +30 <20><><EFBFBD><EFBFBD> <20>̳<EFBFBD><CCB3><EFBFBD> <20><><EFBFBD><20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> -30 ~ +30 \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xE6\xB8\xB8 \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_LOWLEVEL:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB0\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD 30\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_HILEVEL:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD 30\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_ALREADYJOIN:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20>̹<EFBFBD> %s<><73><EFBFBD><EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>."), pchInvitee->GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xCC\xB9\xEF\xBF\xBD %s\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."), pchInvitee->GetName());
return;
case PERR_PARTYISFULL:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><> <20>̻<EFBFBD> <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xBB\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
default:
@ -4574,7 +4574,7 @@ void CHARACTER::PartyInviteAccept(LPCHARACTER pchInvitee)
if (GetParty() && GetParty()->GetLeaderPID() != GetPlayerID())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB4\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
@ -4586,36 +4586,36 @@ void CHARACTER::PartyInviteAccept(LPCHARACTER pchInvitee)
break;
case PERR_SERVER:
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xC3\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_DUNGEON:
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ <20>ʴ뿡 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xC8\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xCA\xB4\xEB\xBF\xA1 \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_OBSERVER:
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E5BFA1> <20><>Ƽ <20>ʴ븦 <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xE5\xBF\xA1\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xCA\xB4\xEB\xB8\xA6 \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_LVBOUNDARY:
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> -30 ~ +30 <20><><EFBFBD><EFBFBD> <20>̳<EFBFBD><CCB3><EFBFBD> <20><><EFBFBD><20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>."));
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> -30 ~ +30 \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xE6\xB8\xB8 \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_LOWLEVEL:
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB0\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD 30\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_HILEVEL:
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD 30\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_ALREADYJOIN:
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ <20>ʴ뿡 <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xCA\xB4\xEB\xBF\xA1 \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
case PERR_PARTYISFULL:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><> <20>̻<EFBFBD> <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20>ʴ<EFBFBD><CAB4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> <20><>Ƽ<EFBFBD><C6BC> <20>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD><CAB0>Ͽ<EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xBB\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB4\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCE\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCA\xB0\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xBF\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
default:
@ -4654,13 +4654,13 @@ void CHARACTER::PartyInviteDeny(DWORD dwPID)
LPCHARACTER pchInvitee = CHARACTER_MANAGER::instance().FindByPID(dwPID);
if (pchInvitee)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> %s<><73><EFBFBD><EFBFBD> <20><>Ƽ <20>ʴ븦 <20><><EFBFBD><EFBFBD><EFBFBD>ϼ̽<CFBC><CCBD>ϴ<EFBFBD>."), pchInvitee->GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> %s\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC \xEF\xBF\xBD\xCA\xB4\xEB\xB8\xA6 \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xBC\xCC\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."), pchInvitee->GetName());
}
void CHARACTER::PartyJoin(LPCHARACTER pLeader)
{
pLeader->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> %s<><73><EFBFBD><EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ̽<CFBC><CCBD>ϴ<EFBFBD>."), GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<<EFBFBD><EFBFBD>Ƽ> %s<><73><EFBFBD><EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ̽<CFBC><CCBD>ϴ<EFBFBD>."), pLeader->GetName());
pLeader->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> %s\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xBC\xCC\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."), GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC> %s\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC6\xBC\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xBC\xCC\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."), pLeader->GetName());
pLeader->GetParty()->Join(GetPlayerID());
pLeader->GetParty()->Link(this);
@ -4871,7 +4871,7 @@ void CHARACTER::OnClick(LPCHARACTER pkChrCauser)
{
if ((GetExchange() || IsOpenSafebox() || GetShopOwner()) || IsCubeOpen())
{
pkChrCauser->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD>ٸ<EFBFBD> <20>ŷ<EFBFBD><C5B7><EFBFBD><><C3A2>,<2C><>ȯ,<2C><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD> <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
pkChrCauser->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xD9\xB8\xEF\xBF\xBD \xEF\xBF\xBD\xC5\xB7\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD(\xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD,\xEF\xBF\xBD\xEF\xBF\xBD\xC8\xAF,\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD)\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCE\xBB\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
}
@ -4880,7 +4880,7 @@ void CHARACTER::OnClick(LPCHARACTER pkChrCauser)
// Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ/â<><C3A2>/<2F><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><CCBF><EFBFBD><EFBFBD>̶<EFBFBD><CCB6> <20>Ұ<EFBFBD>
if ((pkChrCauser->GetExchange() || pkChrCauser->IsOpenSafebox() || pkChrCauser->GetMyShop() || pkChrCauser->GetShopOwner()) || pkChrCauser->IsCubeOpen() )
{
pkChrCauser->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD>ٸ<EFBFBD> <20>ŷ<EFBFBD><C5B7><EFBFBD><><C3A2>,<2C><>ȯ,<2C><><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD> <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
pkChrCauser->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xD9\xB8\xEF\xBF\xBD \xEF\xBF\xBD\xC5\xB7\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD(\xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD,\xEF\xBF\xBD\xEF\xBF\xBD\xC8\xAF,\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD)\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCE\xBB\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
@ -4888,7 +4888,7 @@ void CHARACTER::OnClick(LPCHARACTER pkChrCauser)
//if ((GetExchange() || IsOpenSafebox() || GetShopOwner()))
if ((GetExchange() || IsOpenSafebox() || IsCubeOpen()))
{
pkChrCauser->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20>ŷ<EFBFBD><C5B7><EFBFBD> <20>ϰ<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD>Դϴ<D4B4>."));
pkChrCauser->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD9\xB8\xEF\xBF\xBD \xEF\xBF\xBD\xC5\xB7\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCF\xB0\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB4\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xD4\xB4\xCF\xB4\xEF\xBF\xBD."));
return;
}
}
@ -5333,7 +5333,7 @@ bool CHARACTER::Return()
SendMovePacket(FUNC_WAIT, 0, 0, 0, 0);
SPDLOG_TRACE("{} {} <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD>ư<EFBFBD><C6B0><EFBFBD>! {} {}", GetName(), (void*) this, x, y);
SPDLOG_TRACE("{} {} \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB0\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC6\xB0\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD! {} {}", GetName(), (void*) this, x, y);
if (GetParty())
GetParty()->SendMessage(this, PM_RETURN, x, y);
@ -5486,7 +5486,7 @@ bool CHARACTER::Follow(LPCHARACTER pkChr, float fMinDistance)
}
SendMovePacket(FUNC_WAIT, 0, 0, 0, 0);
//MonsterLog("<EFBFBD>Ѿư<EFBFBD><EFBFBD><EFBFBD>; %s", pkChr->GetName());
//MonsterLog("\xEF\xBF\xBD\xD1\xBE\xC6\xB0\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD; %s", pkChr->GetName());
return true;
}
@ -5509,12 +5509,12 @@ void CHARACTER::ReqSafeboxLoad(const char* pszPassword)
{
if (!*pszPassword || strlen(pszPassword) > SAFEBOX_PASSWORD_MAX_LEN)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<â<EFBFBD><EFBFBD>> <20>߸<EFBFBD><DFB8><EFBFBD> <20><>ȣ<EFBFBD><C8A3> <20>Է<EFBFBD><D4B7>ϼ̽<CFBC><CCBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD> \xEF\xBF\xBD\xDF\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC8\xA3\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD4\xB7\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xBC\xCC\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
else if (m_pkSafebox)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<â<EFBFBD><EFBFBD>> â<><C3A2> <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD> \xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB9\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xD6\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
@ -5522,12 +5522,12 @@ void CHARACTER::ReqSafeboxLoad(const char* pszPassword)
if (iPulse - GetSafeboxLoadTime() < PASSES_PER_SEC(10))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<â<EFBFBD><EFBFBD>> â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10<31><30> <20>ȿ<EFBFBD><C8BF><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD> \xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD 10\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xC8\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
else if (GetDistanceFromSafeboxOpen() > 1000)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<â<EFBFBD><EFBFBD>> <20>Ÿ<EFBFBD><C5B8><EFBFBD> <20>־ â<><C3A2> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD> \xEF\xBF\xBD\xC5\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xBE\xEE\xBC\xAD \xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return;
}
else if (m_bOpeningSafebox)
@ -5798,9 +5798,9 @@ void CHARACTER::SetNowWalking(bool bWalkFlag)
if (IsNPC())
{
if (m_bNowWalking)
MonsterLog("<EFBFBD>ȴ´<EFBFBD>");
MonsterLog("\xEF\xBF\xBD\xC8\xB4\xC2\xB4\xEF\xBF\xBD");
else
MonsterLog("<EFBFBD>ڴ<EFBFBD>");
MonsterLog("\xEF\xBF\xBD\xDA\xB4\xEF\xBF\xBD");
}
}
}
@ -6514,13 +6514,13 @@ bool CHARACTER::WarpToPID(DWORD dwPID)
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB4\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
}
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB4\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
}
}
@ -6534,25 +6534,25 @@ bool CHARACTER::WarpToPID(DWORD dwPID)
if (!pcci)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><C2B6><EFBFBD> <20><><EFBFBD>°<EFBFBD> <20>ƴմϴ<D5B4>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xC2\xB6\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC2\xB0\xEF\xBF\xBD \xEF\xBF\xBD\xC6\xB4\xD5\xB4\xCF\xB4\xEF\xBF\xBD."));
return false;
}
if (pcci->bChannel != g_bChannel)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d ä<>ο<EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>. (<28><><EFBFBD><EFBFBD> ä<><C3A4> %d)"), pcci->bChannel, g_bChannel);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD %d \xC3\xA4\xEF\xBF\xBD\xCE\xBF\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD. (\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xC3\xA4\xEF\xBF\xBD\xEF\xBF\xBD %d)"), pcci->bChannel, g_bChannel);
return false;
}
else if (false == IS_SUMMONABLE_ZONE(pcci->lMapIndex))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB4\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
}
else
{
if (!CAN_ENTER_ZONE(this, pcci->lMapIndex))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD6\xB4\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."));
return false;
}
@ -6634,7 +6634,7 @@ bool CHARACTER::IsHack(bool bSendMsg, bool bCheckShopOwner, int limittime)
if (iPulse - GetSafeboxLoadTime() < PASSES_PER_SEC(limittime))
{
if (bSendMsg)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("â<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> %d<><64> <20>̳<EFBFBD><CCB3><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD><CCB5>Ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."), limittime);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD %d\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD9\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB5\xEF\xBF\xBD\xEF\xBF\xBD\xD2\xBC\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."), limittime);
if (test_server)
ChatPacket(CHAT_TYPE_INFO, "[TestOnly]Pulse %d LoadTime %d PASS %d", iPulse, GetSafeboxLoadTime(), PASSES_PER_SEC(limittime));
@ -6647,7 +6647,7 @@ bool CHARACTER::IsHack(bool bSendMsg, bool bCheckShopOwner, int limittime)
if (GetExchange() || GetMyShop() || GetShopOwner() || IsOpenSafebox() || IsCubeOpen())
{
if (bSendMsg)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD>ŷ<EFBFBD>â,â<><C3A2> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD>,<2C><><EFBFBD><EFBFBD> <20>Ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xC5\xB7\xEF\xBF\xBD\xC3\xA2,\xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC2\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD9\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB5\xEF\xBF\xBD,\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD2\xBC\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD"));
return true;
}
@ -6657,7 +6657,7 @@ bool CHARACTER::IsHack(bool bSendMsg, bool bCheckShopOwner, int limittime)
if (GetExchange() || GetMyShop() || IsOpenSafebox() || IsCubeOpen())
{
if (bSendMsg)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD>ŷ<EFBFBD>â,â<><C3A2> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD>,<2C><><EFBFBD><EFBFBD> <20>Ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xC5\xB7\xEF\xBF\xBD\xC3\xA2,\xC3\xA2\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC2\xBF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD9\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB5\xEF\xBF\xBD,\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD2\xBC\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD"));
return true;
}
@ -6668,7 +6668,7 @@ bool CHARACTER::IsHack(bool bSendMsg, bool bCheckShopOwner, int limittime)
if (iPulse - GetExchangeTime() < PASSES_PER_SEC(limittime))
{
if (bSendMsg)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD>ŷ<EFBFBD> <20><> %d<><64> <20>̳<EFBFBD><CCB3><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."), limittime );
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xC5\xB7\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD %d\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD9\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB5\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."), limittime );
return true;
}
//END_PREVENT_PORTAL_AFTER_EXCHANGE
@ -6677,14 +6677,14 @@ bool CHARACTER::IsHack(bool bSendMsg, bool bCheckShopOwner, int limittime)
if (iPulse - GetMyShopTime() < PASSES_PER_SEC(limittime))
{
if (bSendMsg)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD>ŷ<EFBFBD> <20><> %d<><64> <20>̳<EFBFBD><CCB3><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̵<EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."), limittime);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xC5\xB7\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD %d\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xD9\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB5\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."), limittime);
return true;
}
if (iPulse - GetRefineTime() < PASSES_PER_SEC(limittime))
{
if (bSendMsg)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d<><64> <20>̳<EFBFBD><CCB3><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF>,<2C><>ȯ<EFBFBD><C8AF><EFBFBD>θ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."), limittime);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD %d\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCC\xB3\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xC8\xAF\xEF\xBF\xBD\xEF\xBF\xBD,\xEF\xBF\xBD\xEF\xBF\xBD\xC8\xAF\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCE\xB8\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xCF\xB4\xEF\xBF\xBD."), limittime);
return true;
}
//END_PREVENT_ITEM_COPY

View File

@ -533,7 +533,7 @@ bool CHARACTER::AddAffect(DWORD dwType, BYTE bApplyOn, int lApplyValue, DWORD dw
// CHAT_BLOCK
if (dwType == AFFECT_BLOCK_CHAT && lDuration > 1)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("운영자 제제로 채팅이 금지 되었습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEE\xBF\xB5\xC0\xDA \xC1\xA6\xC1\xA6\xB7\xCE \xC3\xA4\xC6\xC3\xC0\xCC \xB1\xDD\xC1\xF6 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
}
// END_OF_CHAT_BLOCK
@ -713,7 +713,7 @@ bool CHARACTER::RemoveAffect(DWORD dwType)
// CHAT_BLOCK
if (dwType == AFFECT_BLOCK_CHAT)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("채팅 금지가 풀렸습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA4\xC6\xC3 \xB1\xDD\xC1\xF6\xB0\xA1 \xC7\xAE\xB7\xC8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
// END_OF_CHAT_BLOCK

View File

@ -286,14 +286,14 @@ void CHARACTER::DeathPenalty(BYTE bTown)
if (GetLevel() < 10)
{
SPDLOG_DEBUG("NO_DEATH_PENALTY_LESS_LV10({})", GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용신의 가호로 경험치가 떨어지지 않았습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xBD\xC5\xC0\xC7 \xB0\xA1\xC8\xA3\xB7\xCE \xB0\xE6\xC7\xE8\xC4\xA1\xB0\xA1 \xB6\xB3\xBE\xEE\xC1\xF6\xC1\xF6 \xBE\xCA\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (Random::get(0, 2))
{
SPDLOG_DEBUG("NO_DEATH_PENALTY_LUCK({})", GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용신의 가호로 경험치가 떨어지지 않았습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xBD\xC5\xC0\xC7 \xB0\xA1\xC8\xA3\xB7\xCE \xB0\xE6\xC7\xE8\xC4\xA1\xB0\xA1 \xB6\xB3\xBE\xEE\xC1\xF6\xC1\xF6 \xBE\xCA\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -307,7 +307,7 @@ void CHARACTER::DeathPenalty(BYTE bTown)
if (FindAffect(AFFECT_NO_DEATH_PENALTY))
{
SPDLOG_DEBUG("NO_DEATH_PENALTY_AFFECT({})", GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용신의 가호로 경험치가 떨어지지 않았습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xBD\xC5\xC0\xC7 \xB0\xA1\xC8\xA3\xB7\xCE \xB0\xE6\xC7\xE8\xC4\xA1\xB0\xA1 \xB6\xB3\xBE\xEE\xC1\xF6\xC1\xF6 \xBE\xCA\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."));
RemoveAffect(AFFECT_NO_DEATH_PENALTY);
return;
}
@ -317,7 +317,7 @@ void CHARACTER::DeathPenalty(BYTE bTown)
if (FindAffect(AFFECT_NO_DEATH_PENALTY))
{
SPDLOG_DEBUG("NO_DEATH_PENALTY_AFFECT({})", GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용신의 가호로 경험치가 떨어지지 않았습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xBD\xC5\xC0\xC7 \xB0\xA1\xC8\xA3\xB7\xCE \xB0\xE6\xC7\xE8\xC4\xA1\xB0\xA1 \xB6\xB3\xBE\xEE\xC1\xF6\xC1\xF6 \xBE\xCA\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."));
RemoveAffect(AFFECT_NO_DEATH_PENALTY);
return;
}
@ -1330,7 +1330,7 @@ void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead)
}
if (Random::get(1, 100) < iNoPenaltyProb)
pkKiller->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용신의 보호로 아이템이 떨어지지 않았습니다."));
pkKiller->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xBD\xC5\xC0\xC7 \xBA\xB8\xC8\xA3\xB7\xCE \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xB6\xB3\xBE\xEE\xC1\xF6\xC1\xF6 \xBE\xCA\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."));
else
{
if (g_iUseLocale && pkKiller->GetParty())
@ -1413,7 +1413,7 @@ void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead)
if (pkKiller->m_dwUnderGuildWarInfoMessageTime < get_dword_time())
{
pkKiller->m_dwUnderGuildWarInfoMessageTime = get_dword_time() + 60000;
pkKiller->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드전중에는 사냥에 따른 이익이 없습니다."));
pkKiller->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xFC\xC1\xDF\xBF\xA1\xB4\xC2 \xBB\xE7\xB3\xC9\xBF\xA1 \xB5\xFB\xB8\xA5 \xC0\xCC\xC0\xCD\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
}
@ -1768,7 +1768,7 @@ bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type) // retu
IsPenetrate = true;
if (test_server)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("관통 추가 데미지 %d"), GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xFC\xC5\xEB \xC3\xDF\xB0\xA1 \xB5\xA5\xB9\xCC\xC1\xF6 %d"), GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100);
dam += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100;
@ -1792,8 +1792,8 @@ bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type) // retu
{
if (test_server)
{
pAttacker->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 블럭! (%d%%)"), GetName(), GetPoint(POINT_BLOCK));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 블럭! (%d%%)"), GetName(), GetPoint(POINT_BLOCK));
pAttacker->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xBA\xED\xB7\xB0! (%d%%)"), GetName(), GetPoint(POINT_BLOCK));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xBA\xED\xB7\xB0! (%d%%)"), GetName(), GetPoint(POINT_BLOCK));
}
SendDamagePacket(pAttacker, 0, DAMAGE_BLOCK);
@ -1807,8 +1807,8 @@ bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type) // retu
{
if (test_server)
{
pAttacker->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 회피! (%d%%)"), GetName(), GetPoint(POINT_DODGE));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 회피! (%d%%)"), GetName(), GetPoint(POINT_DODGE));
pAttacker->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xC8\xB8\xC7\xC7! (%d%%)"), GetName(), GetPoint(POINT_DODGE));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xC8\xB8\xC7\xC7! (%d%%)"), GetName(), GetPoint(POINT_DODGE));
}
SendDamagePacket(pAttacker, 0, DAMAGE_DODGE);
@ -1894,7 +1894,7 @@ bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type) // retu
IsPenetrate = true;
if (test_server)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("관통 추가 데미지 %d"), GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xFC\xC5\xEB \xC3\xDF\xB0\xA1 \xB5\xA5\xB9\xCC\xC1\xF6 %d"), GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100);
dam += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100;
}
}
@ -2260,7 +2260,7 @@ bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type) // retu
if (m_bDetailLog)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s[%d]가 공격 위치: %d %d"), pAttacker->GetName(), (DWORD) pAttacker->GetVID(), pAttacker->GetX(), pAttacker->GetY());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s[%d]\xB0\xA1 \xB0\xF8\xB0\xDD \xC0\xA7\xC4\xA1: %d %d"), pAttacker->GetName(), (DWORD) pAttacker->GetVID(), pAttacker->GetX(), pAttacker->GetY());
}
}
@ -3208,7 +3208,7 @@ void CHARACTER::SetVictim(LPCHARACTER pkVictim)
if (!pkVictim)
{
if (0 != (DWORD)m_kVIDVictim)
MonsterLog("공격 대상을 해제");
MonsterLog("\xB0\xF8\xB0\xDD \xB4\xEB\xBB\xF3\xC0\xBB \xC7\xD8\xC1\xA6");
m_kVIDVictim.Reset();
battle_end(this);
@ -3216,7 +3216,7 @@ void CHARACTER::SetVictim(LPCHARACTER pkVictim)
else
{
if (m_kVIDVictim != pkVictim->GetVID())
MonsterLog("공격 대상을 설정: %s", pkVictim->GetName());
MonsterLog("\xB0\xF8\xB0\xDD \xB4\xEB\xBB\xF3\xC0\xBB \xBC\xB3\xC1\xA4: %s", pkVictim->GetName());
m_kVIDVictim = pkVictim->GetVID();
m_dwLastVictimSetTime = get_dword_time();

View File

@ -73,7 +73,7 @@ bool CHARACTER::DragonSoul_ActivateDeck(int deck_idx)
if (!DragonSoul_IsQualified())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("용혼석 상자가 활성화되지 않았습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xEB\xC8\xA5\xBC\xAE \xBB\xF3\xC0\xDA\xB0\xA1 \xC8\xB0\xBC\xBA\xC8\xAD\xB5\xC7\xC1\xF6 \xBE\xCA\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}

View File

@ -17,13 +17,13 @@ bool CHARACTER::StartRiding()
{
if (IsDead() == true)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("쓰러진 상태에서는 말에 탈 수 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xB2\xB7\xAF\xC1\xF8 \xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD\xB4\xC2 \xB8\xBB\xBF\xA1 \xC5\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
if (IsPolymorphed())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("변신 상태에서는 말에 탈 수 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBA\xAF\xBD\xC5 \xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD\xB4\xC2 \xB8\xBB\xBF\xA1 \xC5\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
@ -32,7 +32,7 @@ bool CHARACTER::StartRiding()
if (armor && (armor->GetVnum() >= 11901 && armor->GetVnum() <= 11904))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("예복을 입은 상태에서 말을 탈 수 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xB9\xBA\xB9\xC0\xBB \xC0\xD4\xC0\xBA \xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD \xB8\xBB\xC0\xBB \xC5\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
@ -48,11 +48,11 @@ bool CHARACTER::StartRiding()
if (false == CHorseRider::StartRiding())
{
if (GetHorseLevel() <= 0)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말을 소유하고 있지 않습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xBB \xBC\xD2\xC0\xAF\xC7\xCF\xB0\xED \xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9."));
else if (GetHorseHealth() <= 0)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말이 죽어있는 상태 입니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xCC \xC1\xD7\xBE\xEE\xC0\xD6\xB4\xC2 \xBB\xF3\xC5\xC2 \xC0\xD4\xB4\xCF\xB4\xD9."));
else if (GetHorseStamina() <= 0)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말의 스테미너가 부족하여 말을 탈 수 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xC7 \xBD\xBA\xC5\xD7\xB9\xCC\xB3\xCA\xB0\xA1 \xBA\xCE\xC1\xB7\xC7\xCF\xBF\xA9 \xB8\xBB\xC0\xBB \xC5\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
@ -177,7 +177,7 @@ void CHARACTER::HorseSummon(bool bSummon, bool bFromFar, DWORD dwVnum, const cha
if (!m_chHorse)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말 소환에 실패하였습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB \xBC\xD2\xC8\xAF\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -203,7 +203,7 @@ void CHARACTER::HorseSummon(bool bSummon, bool bFromFar, DWORD dwVnum, const cha
else
{
m_chHorse->m_stName = GetName();
m_chHorse->m_stName += LC_TEXT("님의 말");
m_chHorse->m_stName += LC_TEXT("\xB4\xD4\xC0\xC7 \xB8\xBB");
}
if (!m_chHorse->Show(GetMapIndex(), x, y, GetZ()))
@ -343,7 +343,7 @@ STM
{
ChatPacket(CHAT_TYPE_COMMAND, "horse_state %d %d %d", GetHorseLevel(), iHealthGrade, iStaminaGrade);
// FIX : 클라이언트에 "말 상태 버프" 아이콘을 표시하지 않을 목적으로 함수 초입에 return함으로써 아래 코드를 무시한다면
// FIX : 클라이언트에 "\xB8\xBB \xBB\xF3\xC5\xC2 \xB9\xF6\xC7\xC1" 아이콘을 표시하지 않을 목적으로 함수 초입에 return함으로써 아래 코드를 무시한다면
// 말을 무한대로 소환하는 무시무시한 버그가 생김.. 정확한 원인은 파악 안해봐서 모름.
m_bSendHorseLevel = GetHorseLevel();
m_bSendHorseHealthGrade = iHealthGrade;

File diff suppressed because it is too large Load Diff

View File

@ -267,7 +267,7 @@ bool CHARACTER::LearnGrandMasterSkill(DWORD dwSkillVnum)
if (!IsLearnableSkill(dwSkillVnum))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("수련할 수 없는 스킬입니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xF6\xB7\xC3\xC7\xD2 \xBC\xF6 \xBE\xF8\xB4\xC2 \xBD\xBA\xC5\xB3\xC0\xD4\xB4\xCF\xB4\xD9."));
return false;
}
@ -282,7 +282,7 @@ bool CHARACTER::LearnGrandMasterSkill(DWORD dwSkillVnum)
{
// 주안술서 사용중에는 시간 제한 무시
RemoveAffect(AFFECT_SKILL_NO_BOOK_DELAY);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("주안술서를 통해 주화입마에서 빠져나왔습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xD6\xBE\xC8\xBC\xFA\xBC\xAD\xB8\xA6 \xC5\xEB\xC7\xD8 \xC1\xD6\xC8\xAD\xC0\xD4\xB8\xB6\xBF\xA1\xBC\xAD \xBA\xFC\xC1\xAE\xB3\xAA\xBF\xD4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
@ -296,16 +296,16 @@ bool CHARACTER::LearnGrandMasterSkill(DWORD dwSkillVnum)
// bType이 0이면 처음부터 책으로 수련 가능
if (pkSk->dwType == 0)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("그랜드 마스터 수련을 할 수 없는 스킬입니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xD7\xB7\xA3\xB5\xE5 \xB8\xB6\xBD\xBA\xC5\xCD \xBC\xF6\xB7\xC3\xC0\xBB \xC7\xD2 \xBC\xF6 \xBE\xF8\xB4\xC2 \xBD\xBA\xC5\xB3\xC0\xD4\xB4\xCF\xB4\xD9."));
return false;
}
if (GetSkillMasterType(dwSkillVnum) != SKILL_GRAND_MASTER)
{
if (GetSkillMasterType(dwSkillVnum) > SKILL_GRAND_MASTER)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("퍼펙트 마스터된 스킬입니다. 더 이상 수련 할 수 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC6\xDB\xC6\xE5\xC6\xAE \xB8\xB6\xBD\xBA\xC5\xCD\xB5\xC8 \xBD\xBA\xC5\xB3\xC0\xD4\xB4\xCF\xB4\xD9. \xB4\xF5 \xC0\xCC\xBB\xF3 \xBC\xF6\xB7\xC3 \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
else
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 스킬은 아직 그랜드 마스터 수련을 할 경지에 이르지 않았습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC \xBD\xBA\xC5\xB3\xC0\xBA \xBE\xC6\xC1\xF7 \xB1\xD7\xB7\xA3\xB5\xE5 \xB8\xB6\xBD\xBA\xC5\xCD \xBC\xF6\xB7\xC3\xC0\xBB \xC7\xD2 \xB0\xE6\xC1\xF6\xBF\xA1 \xC0\xCC\xB8\xA3\xC1\xF6 \xBE\xCA\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
@ -386,15 +386,15 @@ bool CHARACTER::LearnGrandMasterSkill(DWORD dwSkillVnum)
if (bLastLevel == GetSkillLevel(dwSkillVnum))
{
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("크윽, 기가 역류하고 있어! 이거 설마 주화입마인가!? 젠장!"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("수련이 실패로 끝났습니다. 다시 도전해주시기 바랍니다."));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("\xC5\xA9\xC0\xB9, \xB1\xE2\xB0\xA1 \xBF\xAA\xB7\xF9\xC7\xCF\xB0\xED \xC0\xD6\xBE\xEE! \xC0\xCC\xB0\xC5 \xBC\xB3\xB8\xB6 \xC1\xD6\xC8\xAD\xC0\xD4\xB8\xB6\xC0\xCE\xB0\xA1!? \xC1\xA8\xC0\xE5!"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xF6\xB7\xC3\xC0\xCC \xBD\xC7\xC6\xD0\xB7\xCE \xB3\xA1\xB3\xB5\xBD\xC0\xB4\xCF\xB4\xD9. \xB4\xD9\xBD\xC3 \xB5\xB5\xC0\xFC\xC7\xD8\xC1\xD6\xBD\xC3\xB1\xE2 \xB9\xD9\xB6\xF8\xB4\xCF\xB4\xD9."));
LogManager::instance().CharLog(this, dwSkillVnum, "GM_READ_FAIL", "");
return false;
}
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("몸에서 뭔가 힘이 터져 나오는 기분이야!"));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("뜨거운 무엇이 계속 용솟음치고 있어! 이건, 이것은!"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("더 높은 경지의 수련을 성공적으로 끝내셨습니다."));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("\xB8\xF6\xBF\xA1\xBC\xAD \xB9\xBA\xB0\xA1 \xC8\xFB\xC0\xCC \xC5\xCD\xC1\xAE \xB3\xAA\xBF\xC0\xB4\xC2 \xB1\xE2\xBA\xD0\xC0\xCC\xBE\xDF!"));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("\xB6\xDF\xB0\xC5\xBF\xEE \xB9\xAB\xBE\xF9\xC0\xCC \xB0\xE8\xBC\xD3 \xBF\xEB\xBC\xDA\xC0\xBD\xC4\xA1\xB0\xED \xC0\xD6\xBE\xEE! \xC0\xCC\xB0\xC7, \xC0\xCC\xB0\xCD\xC0\xBA!"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xF5 \xB3\xF4\xC0\xBA \xB0\xE6\xC1\xF6\xC0\xC7 \xBC\xF6\xB7\xC3\xC0\xBB \xBC\xBA\xB0\xF8\xC0\xFB\xC0\xB8\xB7\xCE \xB3\xA1\xB3\xBB\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
LogManager::instance().CharLog(this, dwSkillVnum, "GM_READ_SUCCESS", "");
return true;
}
@ -421,7 +421,7 @@ bool CHARACTER::LearnSkillByBook(DWORD dwSkillVnum, BYTE bProb)
if (!IsLearnableSkill(dwSkillVnum))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("수련할 수 없는 스킬입니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xF6\xB7\xC3\xC7\xD2 \xBC\xF6 \xBE\xF8\xB4\xC2 \xBD\xBA\xC5\xB3\xC0\xD4\xB4\xCF\xB4\xD9."));
return false;
}
@ -433,7 +433,7 @@ bool CHARACTER::LearnSkillByBook(DWORD dwSkillVnum, BYTE bProb)
if ( GetExp() < need_exp )
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("경험치가 부족하여 책을 읽을 수 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xE6\xC7\xE8\xC4\xA1\xB0\xA1 \xBA\xCE\xC1\xB7\xC7\xCF\xBF\xA9 \xC3\xA5\xC0\xBB \xC0\xD0\xC0\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
}
@ -444,9 +444,9 @@ bool CHARACTER::LearnSkillByBook(DWORD dwSkillVnum, BYTE bProb)
if (GetSkillMasterType(dwSkillVnum) != SKILL_MASTER)
{
if (GetSkillMasterType(dwSkillVnum) > SKILL_MASTER)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 스킬은 책으로 더이상 수련할 수 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC \xBD\xBA\xC5\xB3\xC0\xBA \xC3\xA5\xC0\xB8\xB7\xCE \xB4\xF5\xC0\xCC\xBB\xF3 \xBC\xF6\xB7\xC3\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
else
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 스킬은 아직 책으로 수련할 경지에 이르지 않았습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC \xBD\xBA\xC5\xB3\xC0\xBA \xBE\xC6\xC1\xF7 \xC3\xA5\xC0\xB8\xB7\xCE \xBC\xF6\xB7\xC3\xC7\xD2 \xB0\xE6\xC1\xF6\xBF\xA1 \xC0\xCC\xB8\xA3\xC1\xF6 \xBE\xCA\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
}
@ -459,7 +459,7 @@ bool CHARACTER::LearnSkillByBook(DWORD dwSkillVnum, BYTE bProb)
{
// 주안술서 사용중에는 시간 제한 무시
RemoveAffect(AFFECT_SKILL_NO_BOOK_DELAY);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("주안술서를 통해 주화입마에서 빠져나왔습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xD6\xBE\xC8\xBC\xFA\xBC\xAD\xB8\xA6 \xC5\xEB\xC7\xD8 \xC1\xD6\xC8\xAD\xC0\xD4\xB8\xB6\xBF\xA1\xBC\xAD \xBA\xFC\xC1\xAE\xB3\xAA\xBF\xD4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
@ -533,7 +533,7 @@ bool CHARACTER::LearnSkillByBook(DWORD dwSkillVnum, BYTE bProb)
SkillLevelUp(dwSkillVnum, SKILL_UP_BY_BOOK);
pPC->SetFlag(flag, 0);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("책으로 더 높은 경지의 수련을 성공적으로 끝내셨습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA5\xC0\xB8\xB7\xCE \xB4\xF5 \xB3\xF4\xC0\xBA \xB0\xE6\xC1\xF6\xC0\xC7 \xBC\xF6\xB7\xC3\xC0\xBB \xBC\xBA\xB0\xF8\xC0\xFB\xC0\xB8\xB7\xCE \xB3\xA1\xB3\xBB\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
LogManager::instance().CharLog(this, dwSkillVnum, "READ_SUCCESS", "");
return true;
}
@ -544,20 +544,20 @@ bool CHARACTER::LearnSkillByBook(DWORD dwSkillVnum, BYTE bProb)
switch (Random::get(1, 3))
{
case 1:
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("어느정도 이 기술에 대해 이해가 되었지만 조금 부족한듯 한데.."));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("\xBE\xEE\xB4\xC0\xC1\xA4\xB5\xB5 \xC0\xCC \xB1\xE2\xBC\xFA\xBF\xA1 \xB4\xEB\xC7\xD8 \xC0\xCC\xC7\xD8\xB0\xA1 \xB5\xC7\xBE\xFA\xC1\xF6\xB8\xB8 \xC1\xB6\xB1\xDD \xBA\xCE\xC1\xB7\xC7\xD1\xB5\xED \xC7\xD1\xB5\xA5.."));
break;
case 2:
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("드디어 끝이 보이는 건가... 이 기술은 이해하기가 너무 힘들어.."));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("\xB5\xE5\xB5\xF0\xBE\xEE \xB3\xA1\xC0\xCC \xBA\xB8\xC0\xCC\xB4\xC2 \xB0\xC7\xB0\xA1... \xC0\xCC \xB1\xE2\xBC\xFA\xC0\xBA \xC0\xCC\xC7\xD8\xC7\xCF\xB1\xE2\xB0\xA1 \xB3\xCA\xB9\xAB \xC8\xFB\xB5\xE9\xBE\xEE.."));
break;
case 3:
default:
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("열심히 하는 배움을 가지는 것만이 기술을 배울수 있는 유일한 길이다.."));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("\xBF\xAD\xBD\xC9\xC8\xF7 \xC7\xCF\xB4\xC2 \xB9\xE8\xBF\xF2\xC0\xBB \xB0\xA1\xC1\xF6\xB4\xC2 \xB0\xCD\xB8\xB8\xC0\xCC \xB1\xE2\xBC\xFA\xC0\xBB \xB9\xE8\xBF\xEF\xBC\xF6 \xC0\xD6\xB4\xC2 \xC0\xAF\xC0\xCF\xC7\xD1 \xB1\xE6\xC0\xCC\xB4\xD9.."));
break;
}
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d 권을 더 읽어야 수련을 완료 할 수 있습니다."), need_bookcount - read_count);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d \xB1\xC7\xC0\xBB \xB4\xF5 \xC0\xD0\xBE\xEE\xBE\xDF \xBC\xF6\xB7\xC3\xC0\xBB \xBF\xCF\xB7\xE1 \xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."), need_bookcount - read_count);
return true;
}
}
@ -602,15 +602,15 @@ bool CHARACTER::LearnSkillByBook(DWORD dwSkillVnum, BYTE bProb)
if (bLastLevel != GetSkillLevel(dwSkillVnum))
{
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("몸에서 뭔가 힘이 터져 나오는 기분이야!"));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("뜨거운 무엇이 계속 용솟음치고 있어! 이건, 이것은!"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("책으로 더 높은 경지의 수련을 성공적으로 끝내셨습니다."));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("\xB8\xF6\xBF\xA1\xBC\xAD \xB9\xBA\xB0\xA1 \xC8\xFB\xC0\xCC \xC5\xCD\xC1\xAE \xB3\xAA\xBF\xC0\xB4\xC2 \xB1\xE2\xBA\xD0\xC0\xCC\xBE\xDF!"));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("\xB6\xDF\xB0\xC5\xBF\xEE \xB9\xAB\xBE\xF9\xC0\xCC \xB0\xE8\xBC\xD3 \xBF\xEB\xBC\xDA\xC0\xBD\xC4\xA1\xB0\xED \xC0\xD6\xBE\xEE! \xC0\xCC\xB0\xC7, \xC0\xCC\xB0\xCD\xC0\xBA!"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA5\xC0\xB8\xB7\xCE \xB4\xF5 \xB3\xF4\xC0\xBA \xB0\xE6\xC1\xF6\xC0\xC7 \xBC\xF6\xB7\xC3\xC0\xBB \xBC\xBA\xB0\xF8\xC0\xFB\xC0\xB8\xB7\xCE \xB3\xA1\xB3\xBB\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
LogManager::instance().CharLog(this, dwSkillVnum, "READ_SUCCESS", "");
}
else
{
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("크윽, 기가 역류하고 있어! 이거 설마 주화입마인가!? 젠장!"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("수련이 실패로 끝났습니다. 다시 도전해주시기 바랍니다."));
ChatPacket(CHAT_TYPE_TALKING, LC_TEXT("\xC5\xA9\xC0\xB9, \xB1\xE2\xB0\xA1 \xBF\xAA\xB7\xF9\xC7\xCF\xB0\xED \xC0\xD6\xBE\xEE! \xC0\xCC\xB0\xC5 \xBC\xB3\xB8\xB6 \xC1\xD6\xC8\xAD\xC0\xD4\xB8\xB6\xC0\xCE\xB0\xA1!? \xC1\xA8\xC0\xE5!"));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xF6\xB7\xC3\xC0\xCC \xBD\xC7\xC6\xD0\xB7\xCE \xB3\xA1\xB3\xB5\xBD\xC0\xB4\xCF\xB4\xD9. \xB4\xD9\xBD\xC3 \xB5\xB5\xC0\xFC\xC7\xD8\xC1\xD6\xBD\xC3\xB1\xE2 \xB9\xD9\xB6\xF8\xB4\xCF\xB4\xD9."));
LogManager::instance().CharLog(this, dwSkillVnum, "READ_FAIL", "");
}
@ -694,7 +694,7 @@ void CHARACTER::SkillLevelUp(DWORD dwVnum, BYTE bMethod)
if (IsPolymorphed())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("둔갑 중에는 능력을 올릴 수 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xD0\xB0\xA9 \xC1\xDF\xBF\xA1\xB4\xC2 \xB4\xC9\xB7\xC2\xC0\xBB \xBF\xC3\xB8\xB1 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1178,7 +1178,7 @@ struct FuncSplashDamage
if (test_server && iAmount == 0 && m_pkSk->bPointOn != POINT_NONE)
{
m_pkChr->ChatPacket(CHAT_TYPE_INFO, "효과가 없습니다. 스킬 공식을 확인하세요");
m_pkChr->ChatPacket(CHAT_TYPE_INFO, "\xC8\xBF\xB0\xFA\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9. \xBD\xBA\xC5\xB3 \xB0\xF8\xBD\xC4\xC0\xBB \xC8\xAE\xC0\xCE\xC7\xCF\xBC\xBC\xBF\xE4");
}
////////////////////////////////////////////////////////////////////////////////
iAmount = -iAmount;
@ -1642,7 +1642,7 @@ EVENTFUNC(skill_gwihwan_event)
else
{
//실패
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("귀환에 실패하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xCD\xC8\xAF\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
return 0;
}
@ -1754,7 +1754,7 @@ int CHARACTER::ComputeSkillAtPosition(DWORD dwVnum, const PIXEL_POSITION& posTar
if (test_server && iAmount == 0 && pkSk->bPointOn != POINT_NONE)
{
ChatPacket(CHAT_TYPE_INFO, "효과가 없습니다. 스킬 공식을 확인하세요");
ChatPacket(CHAT_TYPE_INFO, "\xC8\xBF\xB0\xFA\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9. \xBD\xBA\xC5\xB3 \xB0\xF8\xBD\xC4\xC0\xBB \xC8\xAE\xC0\xCE\xC7\xCF\xBC\xBC\xBF\xE4");
}
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_REMOVE_BAD_AFFECT))
@ -2093,7 +2093,7 @@ int CHARACTER::ComputeSkill(DWORD dwVnum, LPCHARACTER pkVictim, BYTE bSkillLevel
if (test_server && iAmount == 0 && pkSk->bPointOn != POINT_NONE)
{
ChatPacket(CHAT_TYPE_INFO, "효과가 없습니다. 스킬 공식을 확인하세요");
ChatPacket(CHAT_TYPE_INFO, "\xC8\xBF\xB0\xFA\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9. \xBD\xBA\xC5\xB3 \xB0\xF8\xBD\xC4\xC0\xBB \xC8\xAE\xC0\xCE\xC7\xCF\xBC\xBC\xBF\xE4");
}
// END_OF_ADD_GRANDMASTER_SKILL
@ -2421,9 +2421,9 @@ bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaste
return false;
if (GetHorseLevel() <= 0)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말이 없습니다. 마굿간 경비병을 찾아가세요."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9. \xB8\xB6\xB1\xC2\xB0\xA3 \xB0\xE6\xBA\xF1\xBA\xB4\xC0\xBB \xC3\xA3\xBE\xC6\xB0\xA1\xBC\xBC\xBF\xE4."));
else
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말 소환 아이템을 사용하세요."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB \xBC\xD2\xC8\xAF \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xBB \xBB\xE7\xBF\xEB\xC7\xCF\xBC\xBC\xBF\xE4."));
return true;
}
@ -2560,7 +2560,7 @@ bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaste
return false;
if (test_server)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s SP소모: %d"), pkSk->szName, iNeededSP);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s SP\xBC\xD2\xB8\xF0: %d"), pkSk->szName, iNeededSP);
PointChange(POINT_SP, -iNeededSP);
}
@ -2745,41 +2745,41 @@ void CHARACTER::SkillLearnWaitMoreTimeMessage(DWORD ms)
//const char* str = "";
//
if (ms < 3 * 60)
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("몸 속이 뜨겁군. 하지만 아주 편안해. 이대로 기를 안정시키자."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xB8\xF6 \xBC\xD3\xC0\xCC \xB6\xDF\xB0\xCC\xB1\xBA. \xC7\xCF\xC1\xF6\xB8\xB8 \xBE\xC6\xC1\xD6 \xC6\xED\xBE\xC8\xC7\xD8. \xC0\xCC\xB4\xEB\xB7\xCE \xB1\xE2\xB8\xA6 \xBE\xC8\xC1\xA4\xBD\xC3\xC5\xB0\xC0\xDA."));
else if (ms < 5 * 60)
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("그래, 천천히. 좀더 천천히, 그러나 막힘 없이 빠르게!"));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xB1\xD7\xB7\xA1, \xC3\xB5\xC3\xB5\xC8\xF7. \xC1\xBB\xB4\xF5 \xC3\xB5\xC3\xB5\xC8\xF7, \xB1\xD7\xB7\xAF\xB3\xAA \xB8\xB7\xC8\xFB \xBE\xF8\xC0\xCC \xBA\xFC\xB8\xA3\xB0\xD4!"));
else if (ms < 10 * 60) // 10분
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("그래, 이 느낌이야. 체내에 기가 아주 충만해."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xB1\xD7\xB7\xA1, \xC0\xCC \xB4\xC0\xB3\xA6\xC0\xCC\xBE\xDF. \xC3\xBC\xB3\xBB\xBF\xA1 \xB1\xE2\xB0\xA1 \xBE\xC6\xC1\xD6 \xC3\xE6\xB8\xB8\xC7\xD8."));
else if (ms < 30 * 60) // 30분
{
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("다 읽었다! 이제 비급에 적혀있는 대로 전신에 기를 돌리기만 하면,"));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("그것으로 수련은 끝난 거야!"));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xB4\xD9 \xC0\xD0\xBE\xFA\xB4\xD9! \xC0\xCC\xC1\xA6 \xBA\xF1\xB1\xDE\xBF\xA1 \xC0\xFB\xC7\xF4\xC0\xD6\xB4\xC2 \xB4\xEB\xB7\xCE \xC0\xFC\xBD\xC5\xBF\xA1 \xB1\xE2\xB8\xA6 \xB5\xB9\xB8\xAE\xB1\xE2\xB8\xB8 \xC7\xCF\xB8\xE9,"));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xB1\xD7\xB0\xCD\xC0\xB8\xB7\xCE \xBC\xF6\xB7\xC3\xC0\xBA \xB3\xA1\xB3\xAD \xB0\xC5\xBE\xDF!"));
}
else if (ms < 1 * 3600) // 1시간
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("이제 책의 마지막 장이야! 수련의 끝이 눈에 보이고 있어!"));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xC0\xCC\xC1\xA6 \xC3\xA5\xC0\xC7 \xB8\xB6\xC1\xF6\xB8\xB7 \xC0\xE5\xC0\xCC\xBE\xDF! \xBC\xF6\xB7\xC3\xC0\xC7 \xB3\xA1\xC0\xCC \xB4\xAB\xBF\xA1 \xBA\xB8\xC0\xCC\xB0\xED \xC0\xD6\xBE\xEE!"));
else if (ms < 2 * 3600) // 2시간
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("얼마 안 남았어! 조금만 더!"));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xBE\xF3\xB8\xB6 \xBE\xC8 \xB3\xB2\xBE\xD2\xBE\xEE! \xC1\xB6\xB1\xDD\xB8\xB8 \xB4\xF5!"));
else if (ms < 3 * 3600)
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("좋았어! 조금만 더 읽으면 끝이다!"));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xC1\xC1\xBE\xD2\xBE\xEE! \xC1\xB6\xB1\xDD\xB8\xB8 \xB4\xF5 \xC0\xD0\xC0\xB8\xB8\xE9 \xB3\xA1\xC0\xCC\xB4\xD9!"));
else if (ms < 6 * 3600)
{
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("책장도 이제 얼마 남지 않았군."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("뭔가 몸 안에 힘이 생기는 기분인 걸."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xC3\xA5\xC0\xE5\xB5\xB5 \xC0\xCC\xC1\xA6 \xBE\xF3\xB8\xB6 \xB3\xB2\xC1\xF6 \xBE\xCA\xBE\xD2\xB1\xBA."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xB9\xBA\xB0\xA1 \xB8\xF6 \xBE\xC8\xBF\xA1 \xC8\xFB\xC0\xCC \xBB\xFD\xB1\xE2\xB4\xC2 \xB1\xE2\xBA\xD0\xC0\xCE \xB0\xC9."));
}
else if (ms < 12 * 3600)
{
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("이제 좀 슬슬 가닥이 잡히는 것 같은데."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("좋아, 이 기세로 계속 나간다!"));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xC0\xCC\xC1\xA6 \xC1\xBB \xBD\xBD\xBD\xBD \xB0\xA1\xB4\xDA\xC0\xCC \xC0\xE2\xC8\xF7\xB4\xC2 \xB0\xCD \xB0\xB0\xC0\xBA\xB5\xA5."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xC1\xC1\xBE\xC6, \xC0\xCC \xB1\xE2\xBC\xBC\xB7\xCE \xB0\xE8\xBC\xD3 \xB3\xAA\xB0\xA3\xB4\xD9!"));
}
else if (ms < 18 * 3600)
{
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("아니 어떻게 된 게 종일 읽어도 머리에 안 들어오냐."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("공부하기 싫어지네."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xBE\xC6\xB4\xCF \xBE\xEE\xB6\xBB\xB0\xD4 \xB5\xC8 \xB0\xD4 \xC1\xBE\xC0\xCF \xC0\xD0\xBE\xEE\xB5\xB5 \xB8\xD3\xB8\xAE\xBF\xA1 \xBE\xC8 \xB5\xE9\xBE\xEE\xBF\xC0\xB3\xC4."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xB0\xF8\xBA\xCE\xC7\xCF\xB1\xE2 \xBD\xC8\xBE\xEE\xC1\xF6\xB3\xD7."));
}
else //if (ms < 2 * 86400)
{
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("생각만큼 읽기가 쉽지가 않군. 이해도 어렵고 내용도 난해해."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("이래서야 공부가 안된다구."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xBB\xFD\xB0\xA2\xB8\xB8\xC5\xAD \xC0\xD0\xB1\xE2\xB0\xA1 \xBD\xB1\xC1\xF6\xB0\xA1 \xBE\xCA\xB1\xBA. \xC0\xCC\xC7\xD8\xB5\xB5 \xBE\xEE\xB7\xC6\xB0\xED \xB3\xBB\xBF\xEB\xB5\xB5 \xB3\xAD\xC7\xD8\xC7\xD8."));
ChatPacket(CHAT_TYPE_TALKING, "%s", LC_TEXT("\xC0\xCC\xB7\xA1\xBC\xAD\xBE\xDF \xB0\xF8\xBA\xCE\xB0\xA1 \xBE\xC8\xB5\xC8\xB4\xD9\xB1\xB8."));
}
/*
str = "30%";

View File

@ -155,7 +155,7 @@ namespace
//pkChr->RemoveAffect(AFFECT_WAR_FLAG);
char buf[256];
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드가 %s 길드의 깃발을 빼앗았습니다!"), pMap->GetGuild(idx)->GetName(), pMap->GetGuild(idx_opp)->GetName());
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xB0\xA1 %s \xB1\xE6\xB5\xE5\xC0\xC7 \xB1\xEA\xB9\xDF\xC0\xBB \xBB\xA9\xBE\xD1\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9!"), pMap->GetGuild(idx)->GetName(), pMap->GetGuild(idx_opp)->GetName());
pMap->Notice(buf);
}
}
@ -690,7 +690,7 @@ void CHARACTER::__StateIdle_Monster()
{
if (Follow(pkChrProtege, Random::get(150, 400)))
{
MonsterLog("[IDLE] 리더로부터 너무 멀리 떨어졌다! 복귀한다.");
MonsterLog("[IDLE] \xB8\xAE\xB4\xF5\xB7\xCE\xBA\xCE\xC5\xCD \xB3\xCA\xB9\xAB \xB8\xD6\xB8\xAE \xB6\xB3\xBE\xEE\xC1\xB3\xB4\xD9! \xBA\xB9\xB1\xCD\xC7\xD1\xB4\xD9.");
return;
}
}
@ -877,7 +877,7 @@ void CHARACTER::StateMove()
{
if (IsPC())
{
SPDLOG_DEBUG("도착 {} {} {}", GetName(), x, y);
SPDLOG_DEBUG("\xB5\xB5\xC2\xF8 {} {} {}", GetName(), x, y);
GotoState(m_stateIdle);
StopStaminaConsume();
}
@ -886,7 +886,7 @@ void CHARACTER::StateMove()
if (GetVictim() && !IsCoward())
{
if (!IsState(m_stateBattle))
MonsterLog("[BATTLE] 근처에 왔으니 공격시작 %s", GetVictim()->GetName());
MonsterLog("[BATTLE] \xB1\xD9\xC3\xB3\xBF\xA1 \xBF\xD4\xC0\xB8\xB4\xCF \xB0\xF8\xB0\xDD\xBD\xC3\xC0\xDB %s", GetVictim()->GetName());
GotoState(m_stateBattle);
m_dwStateDuration = 1;
@ -894,7 +894,7 @@ void CHARACTER::StateMove()
else
{
if (!IsState(m_stateIdle))
MonsterLog("[IDLE] 대상이 없으니 쉬자");
MonsterLog("[IDLE] \xB4\xEB\xBB\xF3\xC0\xCC \xBE\xF8\xC0\xB8\xB4\xCF \xBD\xAC\xC0\xDA");
GotoState(m_stateIdle);
@ -1014,7 +1014,7 @@ void CHARACTER::StateBattle()
if (bPct && pParty->CountMemberByVnum(GetSummonVnum()) < SUMMON_MONSTER_COUNT)
{
MonsterLog("부하 몬스터 소환!");
MonsterLog("\xBA\xCE\xC7\xCF \xB8\xF3\xBD\xBA\xC5\xCD \xBC\xD2\xC8\xAF!");
// 모자라는 녀석을 불러내 채웁시다.
int sx = GetX() - 300;
int sy = GetY() - 300;
@ -1037,7 +1037,7 @@ void CHARACTER::StateBattle()
if (fDist >= 4000.0f) // 40미터 이상 멀어지면 포기
{
MonsterLog("타겟이 멀어서 포기");
MonsterLog("\xC5\xB8\xB0\xD9\xC0\xCC \xB8\xD6\xBE\xEE\xBC\xAD \xC6\xF7\xB1\xE2");
SetVictim(NULL);
// 보호할 것(돌, 파티장) 주변으로 간다.
@ -1152,7 +1152,7 @@ void CHARACTER::StateFlag()
pMap->RemoveFlag(idx);
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드의 깃발을 %s 님이 획득하였습니다."), pMap->GetGuild(idx)->GetName(), f.m_pkChrFind->GetName());
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xC0\xC7 \xB1\xEA\xB9\xDF\xC0\xBB %s \xB4\xD4\xC0\xCC \xC8\xB9\xB5\xE6\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), pMap->GetGuild(idx)->GetName(), f.m_pkChrFind->GetName());
pMap->Notice(buf);
}

View File

@ -167,7 +167,7 @@ ACMD(do_add_socket);
ACMD(do_inputall)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("명령어를 모두 입력하세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xED\xB7\xC9\xBE\xEE\xB8\xA6 \xB8\xF0\xB5\xCE \xC0\xD4\xB7\xC2\xC7\xCF\xBC\xBC\xBF\xE4."));
}
ACMD(do_show_arena_list);
@ -396,8 +396,8 @@ struct command_info cmd_info[] =
{ "delqf", do_delqf, 0, POS_DEAD, GM_LOW_WIZARD },
{ "set_state", do_set_state, 0, POS_DEAD, GM_LOW_WIZARD },
{ "로그를보여줘", do_detaillog, 0, POS_DEAD, GM_LOW_WIZARD },
{ "몬스터보여줘", do_monsterlog, 0, POS_DEAD, GM_LOW_WIZARD },
{ "\xB7\xCE\xB1\xD7\xB8\xA6\xBA\xB8\xBF\xA9\xC1\xE0", do_detaillog, 0, POS_DEAD, GM_LOW_WIZARD },
{ "\xB8\xF3\xBD\xBA\xC5\xCD\xBA\xB8\xBF\xA9\xC1\xE0", do_monsterlog, 0, POS_DEAD, GM_LOW_WIZARD },
{ "detaillog", do_detaillog, 0, POS_DEAD, GM_LOW_WIZARD },
{ "monsterlog", do_monsterlog, 0, POS_DEAD, GM_LOW_WIZARD },
@ -536,7 +536,7 @@ struct command_info cmd_info[] =
{ "get_mob_count", do_get_mob_count, 0, POS_DEAD, GM_LOW_WIZARD },
{ "dice", do_dice, 0, POS_DEAD, GM_PLAYER },
{ "주사위", do_dice, 0, POS_DEAD, GM_PLAYER },
{ "\xC1\xD6\xBB\xE7\xC0\xA7", do_dice, 0, POS_DEAD, GM_PLAYER },
{ "special_item", do_special_item, 0, POS_DEAD, GM_IMPLEMENTOR },
{ "click_mall", do_click_mall, 0, POS_DEAD, GM_PLAYER },
@ -673,24 +673,24 @@ void interpret_command(LPCHARACTER ch, const char * argument, size_t len)
switch (ch->GetPosition())
{
case POS_MOUNTING:
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("탄 상태에서는 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC5\xBA \xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD\xB4\xC2 \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
break;
case POS_DEAD:
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("쓰러진 상태에서는 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xB2\xB7\xAF\xC1\xF8 \xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD\xB4\xC2 \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
break;
case POS_SLEEPING:
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("꿈속에서 어떻게요?"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB2\xDE\xBC\xD3\xBF\xA1\xBC\xAD \xBE\xEE\xB6\xBB\xB0\xD4\xBF\xE4?"));
break;
case POS_RESTING:
case POS_SITTING:
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("먼저 일어 나세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xD5\xC0\xFA \xC0\xCF\xBE\xEE \xB3\xAA\xBC\xBC\xBF\xE4."));
break;
/*
case POS_FIGHTING:
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("목숨을 걸고 전투 중 입니다. 집중 하세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xF1\xBC\xFB\xC0\xBB \xB0\xC9\xB0\xED \xC0\xFC\xC5\xF5 \xC1\xDF \xC0\xD4\xB4\xCF\xB4\xD9. \xC1\xFD\xC1\xDF \xC7\xCF\xBC\xBC\xBF\xE4."));
break;
*/
default:
@ -703,13 +703,13 @@ void interpret_command(LPCHARACTER ch, const char * argument, size_t len)
if (*cmd_info[icmd].command == '\n')
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("그런 명령어는 없습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xD7\xB7\xB1 \xB8\xED\xB7\xC9\xBE\xEE\xB4\xC2 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9"));
return;
}
if (cmd_info[icmd].gm_level && cmd_info[icmd].gm_level > ch->GetGMLevel())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("그런 명령어는 없습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xD7\xB7\xB1 \xB8\xED\xB7\xC9\xBE\xEE\xB4\xC2 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9"));
return;
}

View File

@ -23,65 +23,65 @@ struct emotion_type_s
int flag;
float extra_delay;
} emotion_types[] = {
{ "키스", "french_kiss", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, 2.0f },
{ "뽀뽀", "kiss", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, 1.5f },
{ "따귀", "slap", NEED_PC | SELF_DISARM, 1.5f },
{ "박수", "clap", 0, 1.0f },
{ "", "cheer1", 0, 1.0f },
{ "만세", "cheer2", 0, 1.0f },
{ "\xC5\xB0\xBD\xBA", "french_kiss", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, 2.0f },
{ "\xBB\xC7\xBB\xC7", "kiss", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, 1.5f },
{ "\xB5\xFB\xB1\xCD", "slap", NEED_PC | SELF_DISARM, 1.5f },
{ "\xB9\xDA\xBC\xF6", "clap", 0, 1.0f },
{ "\xBF\xCD", "cheer1", 0, 1.0f },
{ "\xB8\xB8\xBC\xBC", "cheer2", 0, 1.0f },
// DANCE
{ "댄스1", "dance1", 0, 1.0f },
{ "댄스2", "dance2", 0, 1.0f },
{ "댄스3", "dance3", 0, 1.0f },
{ "댄스4", "dance4", 0, 1.0f },
{ "댄스5", "dance5", 0, 1.0f },
{ "댄스6", "dance6", 0, 1.0f },
{ "\xB4\xED\xBD\xBA\1", "dance1", 0, 1.0f },
{ "\xB4\xED\xBD\xBA\2", "dance2", 0, 1.0f },
{ "\xB4\xED\xBD\xBA\3", "dance3", 0, 1.0f },
{ "\xB4\xED\xBD\xBA\4", "dance4", 0, 1.0f },
{ "\xB4\xED\xBD\xBA\5", "dance5", 0, 1.0f },
{ "\xB4\xED\xBD\xBA\6", "dance6", 0, 1.0f },
// END_OF_DANCE
{ "축하", "congratulation", 0, 1.0f },
{ "용서", "forgive", 0, 1.0f },
{ "화남", "angry", 0, 1.0f },
{ "유혹", "attractive", 0, 1.0f },
{ "슬픔", "sad", 0, 1.0f },
{ "브끄", "shy", 0, 1.0f },
{ "응원", "cheerup", 0, 1.0f },
{ "질투", "banter", 0, 1.0f },
{ "기쁨", "joy", 0, 1.0f },
{ "\xC3\xE0\xC7\xCF", "congratulation", 0, 1.0f },
{ "\xBF\xEB\xBC\xAD", "forgive", 0, 1.0f },
{ "\xC8\xAD\xB3\xB2", "angry", 0, 1.0f },
{ "\xC0\xAF\xC8\xA4", "attractive", 0, 1.0f },
{ "\xBD\xBD\xC7\xC4", "sad", 0, 1.0f },
{ "\xBA\xEA\xB2\xF4", "shy", 0, 1.0f },
{ "\xC0\xC0\xBF\xF8", "cheerup", 0, 1.0f },
{ "\xC1\xFA\xC5\xF5", "banter", 0, 1.0f },
{ "\xB1\xE2\xBB\xDD", "joy", 0, 1.0f },
{ "\n", "\n", 0, 0.0f },
/*
//{ "키스", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, MOTION_ACTION_FRENCH_KISS, 1.0f },
{ "뽀뽀", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, MOTION_ACTION_KISS, 1.0f },
{ "껴안기", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, MOTION_ACTION_SHORT_HUG, 1.0f },
{ "포옹", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, MOTION_ACTION_LONG_HUG, 1.0f },
{ "어깨동무", NEED_PC | SELF_DISARM, MOTION_ACTION_PUT_ARMS_SHOULDER, 0.0f },
{ "팔짱", NEED_PC | WOMAN_ONLY | SELF_DISARM, MOTION_ACTION_FOLD_ARM, 0.0f },
{ "따귀", NEED_PC | SELF_DISARM, MOTION_ACTION_SLAP, 1.5f },
//{ "\xC5\xB0\xBD\xBA", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, MOTION_ACTION_FRENCH_KISS, 1.0f },
{ "\xBB\xC7\xBB\xC7", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, MOTION_ACTION_KISS, 1.0f },
{ "\xB2\xB8\xBE\xC8\xB1\xE2", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, MOTION_ACTION_SHORT_HUG, 1.0f },
{ "\xC6\xF7\xBF\xCB", NEED_PC | OTHER_SEX_ONLY | BOTH_DISARM, MOTION_ACTION_LONG_HUG, 1.0f },
{ "\xBE\xEE\xB1\xFA\xB5\xBF\xB9\xAB", NEED_PC | SELF_DISARM, MOTION_ACTION_PUT_ARMS_SHOULDER, 0.0f },
{ "\xC6\xC8\xC2\xAF", NEED_PC | WOMAN_ONLY | SELF_DISARM, MOTION_ACTION_FOLD_ARM, 0.0f },
{ "\xB5\xFB\xB1\xCD", NEED_PC | SELF_DISARM, MOTION_ACTION_SLAP, 1.5f },
{ "휘파람", 0, MOTION_ACTION_CHEER_01, 0.0f },
{ "만세", 0, MOTION_ACTION_CHEER_02, 0.0f },
{ "박수", 0, MOTION_ACTION_CHEER_03, 0.0f },
{ "\xC8\xD6\xC6\xC4\xB6\xF7", 0, MOTION_ACTION_CHEER_01, 0.0f },
{ "\xB8\xB8\xBC\xBC", 0, MOTION_ACTION_CHEER_02, 0.0f },
{ "\xB9\xDA\xBC\xF6", 0, MOTION_ACTION_CHEER_03, 0.0f },
{ "호호", 0, MOTION_ACTION_LAUGH_01, 0.0f },
{ "킥킥", 0, MOTION_ACTION_LAUGH_02, 0.0f },
{ "우하하", 0, MOTION_ACTION_LAUGH_03, 0.0f },
{ "\xC8\xA3\xC8\xA3", 0, MOTION_ACTION_LAUGH_01, 0.0f },
{ "\xC5\xB1\xC5\xB1", 0, MOTION_ACTION_LAUGH_02, 0.0f },
{ "\xBF\xEC\xC7\xCF\xC7\xCF", 0, MOTION_ACTION_LAUGH_03, 0.0f },
{ "엉엉", 0, MOTION_ACTION_CRY_01, 0.0f },
{ "흑흑", 0, MOTION_ACTION_CRY_02, 0.0f },
{ "\xBE\xFB\xBE\xFB", 0, MOTION_ACTION_CRY_01, 0.0f },
{ "\xC8\xE6\xC8\xE6", 0, MOTION_ACTION_CRY_02, 0.0f },
{ "인사", 0, MOTION_ACTION_GREETING_01, 0.0f },
{ "바이", 0, MOTION_ACTION_GREETING_02, 0.0f },
{ "정중인사", 0, MOTION_ACTION_GREETING_03, 0.0f },
{ "\xC0\xCE\xBB\xE7", 0, MOTION_ACTION_GREETING_01, 0.0f },
{ "\xB9\xD9\xC0\xCC", 0, MOTION_ACTION_GREETING_02, 0.0f },
{ "\xC1\xA4\xC1\xDF\xC0\xCE\xBB\xE7", 0, MOTION_ACTION_GREETING_03, 0.0f },
{ "비난", 0, MOTION_ACTION_INSULT_01, 0.0f },
{ "모욕", SELF_DISARM, MOTION_ACTION_INSULT_02, 0.0f },
{ "우웩", 0, MOTION_ACTION_INSULT_03, 0.0f },
{ "\xBA\xF1\xB3\xAD", 0, MOTION_ACTION_INSULT_01, 0.0f },
{ "\xB8\xF0\xBF\xE5", SELF_DISARM, MOTION_ACTION_INSULT_02, 0.0f },
{ "\xBF\xEC\xC0\xA1", 0, MOTION_ACTION_INSULT_03, 0.0f },
{ "갸우뚱", 0, MOTION_ACTION_ETC_01, 0.0f },
{ "끄덕끄덕", 0, MOTION_ACTION_ETC_02, 0.0f },
{ "도리도리", 0, MOTION_ACTION_ETC_03, 0.0f },
{ "긁적긁적", 0, MOTION_ACTION_ETC_04, 0.0f },
{ "", 0, MOTION_ACTION_ETC_05, 0.0f },
{ "", 0, MOTION_ACTION_ETC_06, 0.0f },
{ "\xB0\xBC\xBF\xEC\xB6\xD7", 0, MOTION_ACTION_ETC_01, 0.0f },
{ "\xB2\xF4\xB4\xF6\xB2\xF4\xB4\xF6", 0, MOTION_ACTION_ETC_02, 0.0f },
{ "\xB5\xB5\xB8\xAE\xB5\xB5\xB8\xAE", 0, MOTION_ACTION_ETC_03, 0.0f },
{ "\xB1\xDC\xC0\xFB\xB1\xDC\xC0\xFB", 0, MOTION_ACTION_ETC_04, 0.0f },
{ "\xC6\xA1", 0, MOTION_ACTION_ETC_05, 0.0f },
{ "\xBB\xD7", 0, MOTION_ACTION_ETC_06, 0.0f },
*/
};
@ -92,7 +92,7 @@ ACMD(do_emotion_allow)
{
if ( ch->GetArena() )
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장에서 사용하실 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xE5\xBF\xA1\xBC\xAD \xBB\xE7\xBF\xEB\xC7\xCF\xBD\xC7 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -108,11 +108,11 @@ ACMD(do_emotion_allow)
bool CHARACTER_CanEmotion(CHARACTER& rch)
{
// 결혼식 맵에서는 사용할 수 있다.
// <EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.
if (marriage::WeddingManager::instance().IsWeddingMap(rch.GetMapIndex()))
return true;
// 열정의 가면 착용시 사용할 수 있다.
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.
if (rch.IsEquipUniqueItem(UNIQUE_ITEM_EMOTION_MASK))
return true;
@ -128,7 +128,7 @@ ACMD(do_emotion)
{
if (ch->IsRiding())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말을 탄 상태에서 감정표현을 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xBB \xC5\xBA \xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD \xB0\xA8\xC1\xA4\xC7\xA5\xC7\xF6\xC0\xBB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
}
@ -150,13 +150,13 @@ ACMD(do_emotion)
if (!CHARACTER_CanEmotion(*ch))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("열정의 가면을 착용시에만 할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xAD\xC1\xA4\xC0\xC7 \xB0\xA1\xB8\xE9\xC0\xBB \xC2\xF8\xBF\xEB\xBD\xC3\xBF\xA1\xB8\xB8 \xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (IS_SET(emotion_types[i].flag, WOMAN_ONLY) && SEX_MALE==GET_SEX(ch))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("여자만 할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xA9\xC0\xDA\xB8\xB8 \xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -172,7 +172,7 @@ ACMD(do_emotion)
{
if (!victim)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("그런 사람이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xD7\xB7\xB1 \xBB\xE7\xB6\xF7\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
}
@ -184,7 +184,7 @@ ACMD(do_emotion)
if (victim->IsRiding())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말을 탄 상대와 감정표현을 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xBB \xC5\xBA \xBB\xF3\xB4\xEB\xBF\xCD \xB0\xA8\xC1\xA4\xC7\xA5\xC7\xF6\xC0\xBB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -192,13 +192,13 @@ ACMD(do_emotion)
if (distance < 10)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("너무 가까이 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xCA\xB9\xAB \xB0\xA1\xB1\xEE\xC0\xCC \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (distance > 500)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("너무 멀리 있습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xCA\xB9\xAB \xB8\xD6\xB8\xAE \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9"));
return;
}
@ -206,7 +206,7 @@ ACMD(do_emotion)
{
if (GET_SEX(ch)==GET_SEX(victim))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이성간에만 할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC\xBC\xBA\xB0\xA3\xBF\xA1\xB8\xB8 \xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
}
@ -223,13 +223,13 @@ ACMD(do_emotion)
if (0 == other || other != victim->GetPlayerID())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 행동은 상호동의 하에 가능 합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC \xC7\xE0\xB5\xBF\xC0\xBA \xBB\xF3\xC8\xA3\xB5\xBF\xC0\xC7 \xC7\xCF\xBF\xA1 \xB0\xA1\xB4\xC9 \xC7\xD5\xB4\xCF\xB4\xD9."));
return;
}
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 행동은 상호동의 하에 가능 합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC \xC7\xE0\xB5\xBF\xC0\xBA \xBB\xF3\xC8\xA3\xB5\xBF\xC0\xC7 \xC7\xCF\xBF\xA1 \xB0\xA1\xB4\xC9 \xC7\xD5\xB4\xCF\xB4\xD9."));
return;
}
}
@ -246,7 +246,7 @@ ACMD(do_emotion)
if (len < 0 || len >= (int) sizeof(chatbuf))
len = sizeof(chatbuf) - 1;
++len; // \0 문자 포함
++len; // \0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
TPacketGCChat pack_chat;
pack_chat.header = HEADER_GC_CHAT;

View File

@ -49,13 +49,13 @@ ACMD(do_user_horse_ride)
// 말이 아닌 다른탈것을 타고있다.
if (ch->GetMountVnum())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 탈것을 이용중입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC\xB9\xCC \xC5\xBB\xB0\xCD\xC0\xBB \xC0\xCC\xBF\xEB\xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
if (ch->GetHorse() == NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말을 먼저 소환해주세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xBB \xB8\xD5\xC0\xFA \xBC\xD2\xC8\xAF\xC7\xD8\xC1\xD6\xBC\xBC\xBF\xE4."));
return;
}
@ -72,15 +72,15 @@ ACMD(do_user_horse_back)
if (ch->GetHorse() != NULL)
{
ch->HorseSummon(false);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말을 돌려보냈습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xBB \xB5\xB9\xB7\xC1\xBA\xB8\xB3\xC2\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else if (ch->IsHorseRiding() == true)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말에서 먼저 내려야 합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xBF\xA1\xBC\xAD \xB8\xD5\xC0\xFA \xB3\xBB\xB7\xC1\xBE\xDF \xC7\xD5\xB4\xCF\xB4\xD9."));
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말을 먼저 소환해주세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xBB \xB8\xD5\xC0\xFA \xBC\xD2\xC8\xAF\xC7\xD8\xC1\xD6\xBC\xBC\xBF\xE4."));
}
}
@ -93,9 +93,9 @@ ACMD(do_user_horse_feed)
if (ch->GetHorse() == NULL)
{
if (ch->IsHorseRiding() == false)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말을 먼저 소환해주세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xBB \xB8\xD5\xC0\xFA \xBC\xD2\xC8\xAF\xC7\xD8\xC1\xD6\xBC\xBC\xBF\xE4."));
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말을 탄 상태에서는 먹이를 줄 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xBB \xC5\xBA \xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD\xB4\xC2 \xB8\xD4\xC0\xCC\xB8\xA6 \xC1\xD9 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -105,12 +105,12 @@ ACMD(do_user_horse_feed)
{
ch->RemoveSpecifyItem(dwFood, 1);
ch->FeedHorse();
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말에게 %s%s 주었습니다."),
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xBF\xA1\xB0\xD4 %s%s \xC1\xD6\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."),
ITEM_MANAGER::instance().GetTable(dwFood)->szLocaleName, "");
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 아이템이 필요합니다"), ITEM_MANAGER::instance().GetTable(dwFood)->szLocaleName);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xC7\xCA\xBF\xE4\xC7\xD5\xB4\xCF\xB4\xD9"), ITEM_MANAGER::instance().GetTable(dwFood)->szLocaleName);
}
}
@ -209,7 +209,7 @@ EVENTFUNC(shutdown_event)
else
{
char buf[64];
snprintf(buf, sizeof(buf), LC_TEXT("셧다운이 %d초 남았습니다."), *pSec);
snprintf(buf, sizeof(buf), LC_TEXT("\xBC\xCB\xB4\xD9\xBF\xEE\xC0\xCC %d\xC3\xCA \xB3\xB2\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."), *pSec);
SendNotice(buf);
--*pSec;
@ -228,7 +228,7 @@ void Shutdown(int iSec)
CWarMapManager::instance().OnShutdown();
char buf[64];
snprintf(buf, sizeof(buf), LC_TEXT("%d초 후 게임이 셧다운 됩니다."), iSec);
snprintf(buf, sizeof(buf), LC_TEXT("%d\xC3\xCA \xC8\xC4 \xB0\xD4\xC0\xD3\xC0\xCC \xBC\xCB\xB4\xD9\xBF\xEE \xB5\xCB\xB4\xCF\xB4\xD9."), iSec);
SendNotice(buf);
@ -317,7 +317,7 @@ EVENTFUNC(timed_event)
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d초 남았습니다."), info->left_second);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d\xC3\xCA \xB3\xB2\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."), info->left_second);
--info->left_second;
}
@ -329,7 +329,7 @@ ACMD(do_cmd)
/* RECALL_DELAY
if (ch->m_pkRecallEvent != NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("취소 되었습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xEB\xBC\xD2 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
event_cancel(&ch->m_pkRecallEvent);
return;
}
@ -337,7 +337,7 @@ ACMD(do_cmd)
if (ch->m_pkTimedEvent)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("취소 되었습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xEB\xBC\xD2 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
event_cancel(&ch->m_pkTimedEvent);
return;
}
@ -345,15 +345,15 @@ ACMD(do_cmd)
switch (subcmd)
{
case SCMD_LOGOUT:
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("로그인 화면으로 돌아 갑니다. 잠시만 기다리세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB7\xCE\xB1\xD7\xC0\xCE \xC8\xAD\xB8\xE9\xC0\xB8\xB7\xCE \xB5\xB9\xBE\xC6 \xB0\xA9\xB4\xCF\xB4\xD9. \xC0\xE1\xBD\xC3\xB8\xB8 \xB1\xE2\xB4\xD9\xB8\xAE\xBC\xBC\xBF\xE4."));
break;
case SCMD_QUIT:
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("게임을 종료 합니다. 잠시만 기다리세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xD4\xC0\xD3\xC0\xBB \xC1\xBE\xB7\xE1 \xC7\xD5\xB4\xCF\xB4\xD9. \xC0\xE1\xBD\xC3\xB8\xB8 \xB1\xE2\xB4\xD9\xB8\xAE\xBC\xBC\xBF\xE4."));
break;
case SCMD_PHASE_SELECT:
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("캐릭터를 전환 합니다. 잠시만 기다리세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC4\xB3\xB8\xAF\xC5\xCD\xB8\xA6 \xC0\xFC\xC8\xAF \xC7\xD5\xB4\xCF\xB4\xD9. \xC0\xE1\xBD\xC3\xB8\xB8 \xB1\xE2\xB4\xD9\xB8\xAE\xBC\xBC\xBF\xE4."));
break;
}
@ -415,7 +415,7 @@ ACMD(do_mount)
if (distance > 600.0f)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("좀 더 가까이 가서 내리세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xBB \xB4\xF5 \xB0\xA1\xB1\xEE\xC0\xCC \xB0\xA1\xBC\xAD \xB3\xBB\xB8\xAE\xBC\xBC\xBF\xE4."));
return;
}
@ -432,7 +432,7 @@ ACMD(do_mount)
if (!tch->IsNPC() || !tch->IsMountable())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("거기에는 탈 수 없어요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xC5\xB1\xE2\xBF\xA1\xB4\xC2 \xC5\xBB \xBC\xF6 \xBE\xF8\xBE\xEE\xBF\xE4."));
return;
}
@ -440,7 +440,7 @@ ACMD(do_mount)
if (distance > 600.0f)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("좀 더 가까이 가서 타세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xBB \xB4\xF5 \xB0\xA1\xB1\xEE\xC0\xCC \xB0\xA1\xBC\xAD \xC5\xB8\xBC\xBC\xBF\xE4."));
return;
}
@ -491,14 +491,14 @@ ACMD(do_restart)
//성지 맵일경우에는 체크 하지 않는다.
if (false == CThreeWayWar::instance().IsSungZiMapIndex(ch->GetMapIndex()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아직 재시작 할 수 없습니다. (%d초 남음)"), iTimeToDead - (180 - g_nPortalLimitTime));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xC6\xC1\xF7 \xC0\xE7\xBD\xC3\xC0\xDB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9. (%d\xC3\xCA \xB3\xB2\xC0\xBD)"), iTimeToDead - (180 - g_nPortalLimitTime));
return;
}
}
if (iTimeToDead > 170)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아직 재시작 할 수 없습니다. (%d초 남음)"), iTimeToDead - 170);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xC6\xC1\xF7 \xC0\xE7\xBD\xC3\xC0\xDB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9. (%d\xC3\xCA \xB3\xB2\xC0\xBD)"), iTimeToDead - 170);
return;
}
}
@ -515,14 +515,14 @@ ACMD(do_restart)
if ((!ch->GetWarMap() || ch->GetWarMap()->GetType() == GUILD_WAR_TYPE_FLAG) ||
false == CThreeWayWar::instance().IsSungZiMapIndex(ch->GetMapIndex()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아직 재시작 할 수 없습니다. (%d초 남음)"), iTimeToDead - (180 - g_nPortalLimitTime));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xC6\xC1\xF7 \xC0\xE7\xBD\xC3\xC0\xDB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9. (%d\xC3\xCA \xB3\xB2\xC0\xBD)"), iTimeToDead - (180 - g_nPortalLimitTime));
return;
}
}
if (iTimeToDead > 173)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아직 마을에서 재시작 할 수 없습니다. (%d 초 남음)"), iTimeToDead - 173);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xC6\xC1\xF7 \xB8\xB6\xC0\xBB\xBF\xA1\xBC\xAD \xC0\xE7\xBD\xC3\xC0\xDB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9. (%d \xC3\xCA \xB3\xB2\xC0\xBD)"), iTimeToDead - 173);
return;
}
}
@ -557,7 +557,7 @@ ACMD(do_restart)
{
if (CThreeWayWar::instance().GetReviveTokenForPlayer(ch->GetPlayerID()) <= 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("성지에서 부활 기회를 모두 잃었습니다! 마을로 이동합니다!"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xBA\xC1\xF6\xBF\xA1\xBC\xAD \xBA\xCE\xC8\xB0 \xB1\xE2\xC8\xB8\xB8\xA6 \xB8\xF0\xB5\xCE \xC0\xD2\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9! \xB8\xB6\xC0\xBB\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD5\xB4\xCF\xB4\xD9!"));
ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire()));
}
else
@ -658,7 +658,7 @@ ACMD(do_stat_minus)
if (ch->IsPolymorphed())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("둔갑 중에는 능력을 올릴 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xD0\xB0\xA9 \xC1\xDF\xBF\xA1\xB4\xC2 \xB4\xC9\xB7\xC2\xC0\xBB \xBF\xC3\xB8\xB1 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -725,7 +725,7 @@ ACMD(do_stat)
if (ch->IsPolymorphed())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("둔갑 중에는 능력을 올릴 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xD0\xB0\xA9 \xC1\xDF\xBF\xA1\xB4\xC2 \xB4\xC9\xB7\xC2\xC0\xBB \xBF\xC3\xB8\xB1 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -770,7 +770,7 @@ ACMD(do_pvp)
{
if (ch->GetArena() != NULL || CArenaManager::instance().IsArenaMap(ch->GetMapIndex()) == true)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장에서 사용하실 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xE5\xBF\xA1\xBC\xAD \xBB\xE7\xBF\xEB\xC7\xCF\xBD\xC7 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -789,7 +789,7 @@ ACMD(do_pvp)
if (pkVictim->GetArena() != NULL)
{
pkVictim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방이 대련중입니다."));
pkVictim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xB4\xEB\xB7\xC3\xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -806,7 +806,7 @@ ACMD(do_guildskillup)
if (!ch->GetGuild())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드에 속해있지 않습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xBF\xA1 \xBC\xD3\xC7\xD8\xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -820,7 +820,7 @@ ACMD(do_guildskillup)
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드 스킬 레벨을 변경할 권한이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5 \xBD\xBA\xC5\xB3 \xB7\xB9\xBA\xA7\xC0\xBB \xBA\xAF\xB0\xE6\xC7\xD2 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
@ -893,13 +893,13 @@ ACMD(do_safebox_change_password)
if (!*arg1 || strlen(arg1)>6)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 잘못된 암호를 입력하셨습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xC0\xDF\xB8\xF8\xB5\xC8 \xBE\xCF\xC8\xA3\xB8\xA6 \xC0\xD4\xB7\xC2\xC7\xCF\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (!*arg2 || strlen(arg2)>6)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 잘못된 암호를 입력하셨습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xC0\xDF\xB8\xF8\xB5\xC8 \xBE\xCF\xC8\xA3\xB8\xA6 \xC0\xD4\xB7\xC2\xC7\xCF\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -912,7 +912,7 @@ ACMD(do_safebox_change_password)
if (isalpha(arg2[i]) == false)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 비밀번호는 영문자만 가능합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xBA\xF1\xB9\xD0\xB9\xF8\xC8\xA3\xB4\xC2 \xBF\xB5\xB9\xAE\xC0\xDA\xB8\xB8 \xB0\xA1\xB4\xC9\xC7\xD5\xB4\xCF\xB4\xD9."));
return;
}
}
@ -934,7 +934,7 @@ ACMD(do_mall_password)
if (!*arg1 || strlen(arg1) > 6)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 잘못된 암호를 입력하셨습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xC0\xDF\xB8\xF8\xB5\xC8 \xBE\xCF\xC8\xA3\xB8\xA6 \xC0\xD4\xB7\xC2\xC7\xCF\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -942,13 +942,13 @@ ACMD(do_mall_password)
if (ch->GetMall())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 창고가 이미 열려있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xC3\xA2\xB0\xED\xB0\xA1 \xC0\xCC\xB9\xCC \xBF\xAD\xB7\xC1\xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (iPulse - ch->GetMallLoadTime() < passes_per_sec * 10) // 10초에 한번만 요청 가능
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 창고를 닫은지 10초 안에는 열 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xC3\xA2\xB0\xED\xB8\xA6 \xB4\xDD\xC0\xBA\xC1\xF6 10\xC3\xCA \xBE\xC8\xBF\xA1\xB4\xC2 \xBF\xAD \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -979,13 +979,13 @@ ACMD(do_ungroup)
if (!CPartyManager::instance().IsEnablePCParty())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 서버 문제로 파티 관련 처리를 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xBC\xAD\xB9\xF6 \xB9\xAE\xC1\xA6\xB7\xCE \xC6\xC4\xC6\xBC \xB0\xFC\xB7\xC3 \xC3\xB3\xB8\xAE\xB8\xA6 \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (ch->GetDungeon())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 던전 안에서는 파티에서 나갈 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xB4\xF8\xC0\xFC \xBE\xC8\xBF\xA1\xBC\xAD\xB4\xC2 \xC6\xC4\xC6\xBC\xBF\xA1\xBC\xAD \xB3\xAA\xB0\xA5 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -998,7 +998,7 @@ ACMD(do_ungroup)
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 파티에서 나가셨습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xC6\xC4\xC6\xBC\xBF\xA1\xBC\xAD \xB3\xAA\xB0\xA1\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
//pParty->SendPartyRemoveOneToAll(ch);
pParty->Quit(ch->GetPlayerID());
//pParty->SendPartyRemoveAllToOne(ch);
@ -1037,7 +1037,7 @@ ACMD(do_war)
//전쟁중인지 체크한번!
if (g->UnderAnyWar())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 이미 다른 전쟁에 참전 중 입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xCC\xB9\xCC \xB4\xD9\xB8\xA5 \xC0\xFC\xC0\xEF\xBF\xA1 \xC2\xFC\xC0\xFC \xC1\xDF \xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -1063,7 +1063,7 @@ ACMD(do_war)
//마스터인지 체크(길전은 길드장만이 가능)
if (gm_pid != ch->GetPlayerID())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드전에 대한 권한이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xFC\xBF\xA1 \xB4\xEB\xC7\xD1 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1072,7 +1072,7 @@ ACMD(do_war)
if (!opp_g)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 그런 길드가 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xD7\xB7\xB1 \xB1\xE6\xB5\xE5\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1083,7 +1083,7 @@ ACMD(do_war)
{
if (opp_g->UnderAnyWar())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방 길드가 이미 전쟁 중 입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6 \xB1\xE6\xB5\xE5\xB0\xA1 \xC0\xCC\xB9\xCC \xC0\xFC\xC0\xEF \xC1\xDF \xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -1091,13 +1091,13 @@ ACMD(do_war)
if (g->GetGuildMoney() < iWarPrice)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 전비가 부족하여 길드전을 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xFC\xBA\xF1\xB0\xA1 \xBA\xCE\xC1\xB7\xC7\xCF\xBF\xA9 \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xBB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (opp_g->GetGuildMoney() < iWarPrice)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방 길드의 전비가 부족하여 길드전을 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6 \xB1\xE6\xB5\xE5\xC0\xC7 \xC0\xFC\xBA\xF1\xB0\xA1 \xBA\xCE\xC1\xB7\xC7\xCF\xBF\xA9 \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xBB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
}
@ -1105,7 +1105,7 @@ ACMD(do_war)
case GUILD_WAR_SEND_DECLARE:
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 선전포고 중인 길드입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC\xB9\xCC \xBC\xB1\xC0\xFC\xC6\xF7\xB0\xED \xC1\xDF\xC0\xCE \xB1\xE6\xB5\xE5\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
break;
@ -1114,7 +1114,7 @@ ACMD(do_war)
{
if (opp_g->UnderAnyWar())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방 길드가 이미 전쟁 중 입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6 \xB1\xE6\xB5\xE5\xB0\xA1 \xC0\xCC\xB9\xCC \xC0\xFC\xC0\xEF \xC1\xDF \xC0\xD4\xB4\xCF\xB4\xD9."));
g->RequestRefuseWar(opp_g->GetID());
return;
}
@ -1123,7 +1123,7 @@ ACMD(do_war)
case GUILD_WAR_RESERVE:
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 이미 전쟁이 예약된 길드 입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xCC\xB9\xCC \xC0\xFC\xC0\xEF\xC0\xCC \xBF\xB9\xBE\xE0\xB5\xC8 \xB1\xE6\xB5\xE5 \xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
break;
@ -1132,7 +1132,7 @@ ACMD(do_war)
return;
default:
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 이미 전쟁 중인 길드입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xCC\xB9\xCC \xC0\xFC\xC0\xEF \xC1\xDF\xC0\xCE \xB1\xE6\xB5\xE5\xC0\xD4\xB4\xCF\xB4\xD9."));
g->RequestRefuseWar(opp_g->GetID());
return;
}
@ -1142,12 +1142,12 @@ ACMD(do_war)
// 길드전을 할 수 있는 조건을 만족하지않는다.
if (g->GetLadderPoint() == 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 레더 점수가 모자라서 길드전을 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB7\xB9\xB4\xF5 \xC1\xA1\xBC\xF6\xB0\xA1 \xB8\xF0\xC0\xDA\xB6\xF3\xBC\xAD \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xBB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
SPDLOG_DEBUG("GuildWar.StartError.NEED_LADDER_POINT");
}
else if (g->GetMemberCount() < GUILD_WAR_MIN_MEMBER_COUNT)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드전을 하기 위해선 최소한 %d명이 있어야 합니다."), GUILD_WAR_MIN_MEMBER_COUNT);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xBB \xC7\xCF\xB1\xE2 \xC0\xA7\xC7\xD8\xBC\xB1 \xC3\xD6\xBC\xD2\xC7\xD1 %d\xB8\xED\xC0\xCC \xC0\xD6\xBE\xEE\xBE\xDF \xC7\xD5\xB4\xCF\xB4\xD9."), GUILD_WAR_MIN_MEMBER_COUNT);
SPDLOG_DEBUG("GuildWar.StartError.NEED_MINIMUM_MEMBER[{}]", (int) GUILD_WAR_MIN_MEMBER_COUNT);
}
else
@ -1161,9 +1161,9 @@ ACMD(do_war)
if (!opp_g->CanStartWar(GUILD_WAR_TYPE_FIELD))
{
if (opp_g->GetLadderPoint() == 0)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방 길드의 레더 점수가 모자라서 길드전을 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6 \xB1\xE6\xB5\xE5\xC0\xC7 \xB7\xB9\xB4\xF5 \xC1\xA1\xBC\xF6\xB0\xA1 \xB8\xF0\xC0\xDA\xB6\xF3\xBC\xAD \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xBB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
else if (opp_g->GetMemberCount() < GUILD_WAR_MIN_MEMBER_COUNT)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방 길드의 길드원 수가 부족하여 길드전을 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6 \xB1\xE6\xB5\xE5\xC0\xC7 \xB1\xE6\xB5\xE5\xBF\xF8 \xBC\xF6\xB0\xA1 \xBA\xCE\xC1\xB7\xC7\xCF\xBF\xA9 \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xBB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1177,7 +1177,7 @@ ACMD(do_war)
if (pCCI != NULL)
break;
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방 길드의 길드장이 접속중이 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6 \xB1\xE6\xB5\xE5\xC0\xC7 \xB1\xE6\xB5\xE5\xC0\xE5\xC0\xCC \xC1\xA2\xBC\xD3\xC1\xDF\xC0\xCC \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
g->RequestRefuseWar(opp_g->GetID());
return;
@ -1193,7 +1193,7 @@ ACMD(do_war)
if (pCCI != NULL)
break;
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방 길드의 길드장이 접속중이 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6 \xB1\xE6\xB5\xE5\xC0\xC7 \xB1\xE6\xB5\xE5\xC0\xE5\xC0\xCC \xC1\xA2\xBC\xD3\xC1\xDF\xC0\xCC \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
g->RequestRefuseWar(opp_g->GetID());
return;
@ -1218,7 +1218,7 @@ ACMD(do_nowar)
if (gm_pid != ch->GetPlayerID())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드전에 대한 권한이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xFC\xBF\xA1 \xB4\xEB\xC7\xD1 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1226,7 +1226,7 @@ ACMD(do_nowar)
if (!opp_g)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 그런 길드가 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xD7\xB7\xB1 \xB1\xE6\xB5\xE5\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1267,7 +1267,7 @@ ACMD(do_messenger_auth)
{
if (ch->GetArena())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장에서 사용하실 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xE5\xBF\xA1\xBC\xAD \xBB\xE7\xBF\xEB\xC7\xCF\xBD\xC7 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1284,7 +1284,7 @@ ACMD(do_messenger_auth)
LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(arg2);
if (tch)
tch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님으로 부터 친구 등록을 거부 당했습니다."), ch->GetName());
tch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xB8\xB7\xCE \xBA\xCE\xC5\xCD \xC4\xA3\xB1\xB8 \xB5\xEE\xB7\xCF\xC0\xBB \xB0\xC5\xBA\xCE \xB4\xE7\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."), ch->GetName());
}
MessengerManager::instance().AuthToAdd(ch->GetName(), arg2, answer == 'y' ? false : true); // DENY
@ -1317,7 +1317,7 @@ ACMD(do_unmount)
}
else
{
ch->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("인벤토리가 꽉 차서 내릴 수 없습니다."));
ch->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("\xC0\xCE\xBA\xA5\xC5\xE4\xB8\xAE\xB0\xA1 \xB2\xCB \xC2\xF7\xBC\xAD \xB3\xBB\xB8\xB1 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
@ -1371,7 +1371,7 @@ ACMD(do_view_equip)
if (ch->GetSP() < iSPCost)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("정신력이 부족하여 다른 사람의 장비를 볼 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xA4\xBD\xC5\xB7\xC2\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xCF\xBF\xA9 \xB4\xD9\xB8\xA5 \xBB\xE7\xB6\xF7\xC0\xC7 \xC0\xE5\xBA\xF1\xB8\xA6 \xBA\xBC \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
ch->PointChange(POINT_SP, -iSPCost);
@ -1384,13 +1384,13 @@ ACMD(do_party_request)
{
if (ch->GetArena())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장에서 사용하실 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xE5\xBF\xA1\xBC\xAD \xBB\xE7\xBF\xEB\xC7\xCF\xBD\xC7 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (ch->GetParty())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 파티에 속해 있으므로 가입신청을 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC\xB9\xCC \xC6\xC4\xC6\xBC\xBF\xA1 \xBC\xD3\xC7\xD8 \xC0\xD6\xC0\xB8\xB9\xC7\xB7\xCE \xB0\xA1\xC0\xD4\xBD\xC5\xC3\xBB\xC0\xBB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1448,14 +1448,14 @@ ACMD(do_monarch_warpto)
if (!CMonarch::instance().IsMonarch(ch->GetPlayerID(), ch->GetEmpire()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주만이 사용 가능한 기능입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xB8\xB8\xC0\xCC \xBB\xE7\xBF\xEB \xB0\xA1\xB4\xC9\xC7\xD1 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9"));
return;
}
//군주 쿨타임 검사
if (!ch->IsMCOK(CHARACTER::MI_WARP))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d 초간 쿨타임이 적용중입니다."), ch->GetMCLTime(CHARACTER::MI_WARP));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d \xC3\xCA\xB0\xA3 \xC4\xF0\xC5\xB8\xC0\xD3\xC0\xCC \xC0\xFB\xBF\xEB\xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."), ch->GetMCLTime(CHARACTER::MI_WARP));
return;
}
@ -1466,7 +1466,7 @@ ACMD(do_monarch_warpto)
if (!CMonarch::instance().IsMoneyOk(WarpPrice, ch->GetEmpire()))
{
int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), NationMoney, WarpPrice);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), NationMoney, WarpPrice);
return;
}
@ -1477,7 +1477,7 @@ ACMD(do_monarch_warpto)
if (!*arg1)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("사용법: warpto <character name>"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xE7\xBF\xEB\xB9\xFD: warpto <character name>"));
return;
}
@ -1491,18 +1491,18 @@ ACMD(do_monarch_warpto)
{
if (pkCCI->bEmpire != ch->GetEmpire())
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("타제국 유저에게는 이동할수 없습니다"));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC5\xB8\xC1\xA6\xB1\xB9 \xC0\xAF\xC0\xFA\xBF\xA1\xB0\xD4\xB4\xC2 \xC0\xCC\xB5\xBF\xC7\xD2\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9"));
return;
}
if (pkCCI->bChannel != g_bChannel)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("해당 유저는 %d 채널에 있습니다. (현재 채널 %d)"), pkCCI->bChannel, g_bChannel);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC0\xAF\xC0\xFA\xB4\xC2 %d \xC3\xA4\xB3\xCE\xBF\xA1 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9. (\xC7\xF6\xC0\xE7 \xC3\xA4\xB3\xCE %d)"), pkCCI->bChannel, g_bChannel);
return;
}
if (!IsMonarchWarpZone(pkCCI->lMapIndex))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 이동할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1513,7 +1513,7 @@ ACMD(do_monarch_warpto)
else
{
//ch->ChatPacket(CHAT_TYPE_INFO, "You warp to (%d, %d)", pos.x, pos.y);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 에게로 이동합니다"), arg1);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xBF\xA1\xB0\xD4\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD5\xB4\xCF\xB4\xD9"), arg1);
ch->WarpSet(pos.x, pos.y);
//군주 돈 삭감
@ -1534,19 +1534,19 @@ ACMD(do_monarch_warpto)
{
if (tch->GetEmpire() != ch->GetEmpire())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("타제국 유저에게는 이동할수 없습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC5\xB8\xC1\xA6\xB1\xB9 \xC0\xAF\xC0\xFA\xBF\xA1\xB0\xD4\xB4\xC2 \xC0\xCC\xB5\xBF\xC7\xD2\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9"));
return;
}
if (!IsMonarchWarpZone(tch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 이동할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
x = tch->GetX();
y = tch->GetY();
}
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 에게로 이동합니다"), arg1);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xBF\xA1\xB0\xD4\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD5\xB4\xCF\xB4\xD9"), arg1);
ch->WarpSet(x, y);
ch->Stop();
@ -1567,20 +1567,20 @@ ACMD(do_monarch_transfer)
if (!*arg1)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("사용법: transfer <name>"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xE7\xBF\xEB\xB9\xFD: transfer <name>"));
return;
}
if (!CMonarch::instance().IsMonarch(ch->GetPlayerID(), ch->GetEmpire()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주만이 사용 가능한 기능입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xB8\xB8\xC0\xCC \xBB\xE7\xBF\xEB \xB0\xA1\xB4\xC9\xC7\xD1 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9"));
return;
}
//군주 쿨타임 검사
if (!ch->IsMCOK(CHARACTER::MI_TRANSFER))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d 초간 쿨타임이 적용중입니다."), ch->GetMCLTime(CHARACTER::MI_TRANSFER));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d \xC3\xCA\xB0\xA3 \xC4\xF0\xC5\xB8\xC0\xD3\xC0\xCC \xC0\xFB\xBF\xEB\xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."), ch->GetMCLTime(CHARACTER::MI_TRANSFER));
return;
}
@ -1591,7 +1591,7 @@ ACMD(do_monarch_transfer)
if (!CMonarch::instance().IsMoneyOk(WarpPrice, ch->GetEmpire()))
{
int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), NationMoney, WarpPrice);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), NationMoney, WarpPrice);
return;
}
@ -1606,22 +1606,22 @@ ACMD(do_monarch_transfer)
{
if (pkCCI->bEmpire != ch->GetEmpire())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 제국 유저는 소환할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xC1\xA6\xB1\xB9 \xC0\xAF\xC0\xFA\xB4\xC2 \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (pkCCI->bChannel != g_bChannel)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님은 %d 채널에 접속 중 입니다. (현재 채널: %d)"), arg1, pkCCI->bChannel, g_bChannel);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xBA %d \xC3\xA4\xB3\xCE\xBF\xA1 \xC1\xA2\xBC\xD3 \xC1\xDF \xC0\xD4\xB4\xCF\xB4\xD9. (\xC7\xF6\xC0\xE7 \xC3\xA4\xB3\xCE: %d)"), arg1, pkCCI->bChannel, g_bChannel);
return;
}
if (!IsMonarchWarpZone(pkCCI->lMapIndex))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 이동할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (!IsMonarchWarpZone(ch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 소환할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1633,7 +1633,7 @@ ACMD(do_monarch_transfer)
pgg.lY = ch->GetY();
P2P_MANAGER::instance().Send(&pgg, sizeof(TPacketGGTransfer));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님을 소환하였습니다."), arg1);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xBB \xBC\xD2\xC8\xAF\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), arg1);
//군주 돈 삭감
CMonarch::instance().SendtoDBDecMoney(WarpPrice, ch->GetEmpire(), ch);
@ -1642,7 +1642,7 @@ ACMD(do_monarch_transfer)
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("입력하신 이름을 가진 사용자가 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xD4\xB7\xC2\xC7\xCF\xBD\xC5 \xC0\xCC\xB8\xA7\xC0\xBB \xB0\xA1\xC1\xF8 \xBB\xE7\xBF\xEB\xC0\xDA\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
return;
@ -1651,23 +1651,23 @@ ACMD(do_monarch_transfer)
if (ch == tch)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("자신을 소환할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xDA\xBD\xC5\xC0\xBB \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (tch->GetEmpire() != ch->GetEmpire())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 제국 유저는 소환할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xC1\xA6\xB1\xB9 \xC0\xAF\xC0\xFA\xB4\xC2 \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (!IsMonarchWarpZone(tch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 이동할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (!IsMonarchWarpZone(ch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 소환할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1684,24 +1684,24 @@ ACMD(do_monarch_info)
{
if (CMonarch::instance().IsMonarch(ch->GetPlayerID(), ch->GetEmpire()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("나의 군주 정보"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xAA\xC0\xC7 \xB1\xBA\xC1\xD6 \xC1\xA4\xBA\xB8"));
TMonarchInfo * p = CMonarch::instance().GetMonarch();
for (int n = 1; n < 4; ++n)
{
if (n == ch->GetEmpire())
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("[%s군주] : %s 보유금액 %lld "), EMPIRE_NAME(n), p->name[n], p->money[n]);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("[%s\xB1\xBA\xC1\xD6] : %s \xBA\xB8\xC0\xAF\xB1\xDD\xBE\xD7 %lld "), EMPIRE_NAME(n), p->name[n], p->money[n]);
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("[%s군주] : %s "), EMPIRE_NAME(n), p->name[n]);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("[%s\xB1\xBA\xC1\xD6] : %s "), EMPIRE_NAME(n), p->name[n]);
}
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주 정보"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6 \xC1\xA4\xBA\xB8"));
TMonarchInfo * p = CMonarch::instance().GetMonarch();
for (int n = 1; n < 4; ++n)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("[%s군주] : %s "), EMPIRE_NAME(n), p->name[n]);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("[%s\xB1\xBA\xC1\xD6] : %s "), EMPIRE_NAME(n), p->name[n]);
}
}
@ -1769,7 +1769,7 @@ ACMD(do_monarch_tax)
// 군주 검사
if (!ch->IsMonarch())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주만이 사용할수 있는 기능입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xB8\xB8\xC0\xCC \xBB\xE7\xBF\xEB\xC7\xD2\xBC\xF6 \xC0\xD6\xB4\xC2 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9"));
return;
}
@ -1778,20 +1778,20 @@ ACMD(do_monarch_tax)
str_to_number(tax, arg1);
if (tax < 1 || tax > 50)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("1-50 사이의 수치를 선택해주세요"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("1-50 \xBB\xE7\xC0\xCC\xC0\xC7 \xBC\xF6\xC4\xA1\xB8\xA6 \xBC\xB1\xC5\xC3\xC7\xD8\xC1\xD6\xBC\xBC\xBF\xE4"));
quest::CQuestManager::instance().SetEventFlag("trade_tax", tax);
// 군주에게 메세지 하나
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("세금이 %d %로 설정되었습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xBC\xB1\xDD\xC0\xCC %d %\xB7\xCE \xBC\xB3\xC1\xA4\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9"));
// 공지
char szMsg[1024];
snprintf(szMsg, sizeof(szMsg), "군주의 명으로 세금이 %d %% 로 변경되었습니다", tax);
snprintf(szMsg, sizeof(szMsg), "\xB1\xBA\xC1\xD6\xC0\xC7 \xB8\xED\xC0\xB8\xB7\xCE \xBC\xBC\xB1\xDD\xC0\xCC %d %% \xB7\xCE \xBA\xAF\xB0\xE6\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9", tax);
BroadcastNotice(szMsg);
snprintf(szMsg, sizeof(szMsg), "앞으로는 거래 금액의 %d %% 가 국고로 들어가게됩니다.", tax);
snprintf(szMsg, sizeof(szMsg), "\xBE\xD5\xC0\xB8\xB7\xCE\xB4\xC2 \xB0\xC5\xB7\xA1 \xB1\xDD\xBE\xD7\xC0\xC7 %d %% \xB0\xA1 \xB1\xB9\xB0\xED\xB7\xCE \xB5\xE9\xBE\xEE\xB0\xA1\xB0\xD4\xB5\xCB\xB4\xCF\xB4\xD9.", tax);
BroadcastNotice(szMsg);
// 쿨타임 초기화
@ -1832,7 +1832,7 @@ ACMD(do_monarch_mob)
if (!ch->IsMonarch())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주만이 사용할수 있는 기능입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xB8\xB8\xC0\xCC \xBB\xE7\xBF\xEB\xC7\xD2\xBC\xF6 \xC0\xD6\xB4\xC2 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9"));
return;
}
@ -1849,7 +1849,7 @@ ACMD(do_monarch_mob)
{
if (mapEmpire != pcEmpire && mapEmpire != 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("자국 영토에서만 사용할 수 있는 기능입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xDA\xB1\xB9 \xBF\xB5\xC5\xE4\xBF\xA1\xBC\xAD\xB8\xB8 \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xC0\xD6\xB4\xC2 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9"));
return;
}
}
@ -1860,7 +1860,7 @@ ACMD(do_monarch_mob)
// 군주 쿨타임 검사
if (!ch->IsMCOK(CHARACTER::MI_SUMMON))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d 초간 쿨타임이 적용중입니다."), ch->GetMCLTime(CHARACTER::MI_SUMMON));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d \xC3\xCA\xB0\xA3 \xC4\xF0\xC5\xB8\xC0\xD3\xC0\xCC \xC0\xFB\xBF\xEB\xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."), ch->GetMCLTime(CHARACTER::MI_SUMMON));
return;
}
@ -1868,7 +1868,7 @@ ACMD(do_monarch_mob)
if (!CMonarch::instance().IsMoneyOk(SummonPrice, ch->GetEmpire()))
{
int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), NationMoney, SummonPrice);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), NationMoney, SummonPrice);
return;
}
@ -1899,7 +1899,7 @@ ACMD(do_monarch_mob)
if (0 == cs_dwMonarchMobVnums[count])
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("소환할수 없는 몬스터 입니다. 소환가능한 몬스터는 홈페이지를 참조하세요"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xD2\xC8\xAF\xC7\xD2\xBC\xF6 \xBE\xF8\xB4\xC2 \xB8\xF3\xBD\xBA\xC5\xCD \xC0\xD4\xB4\xCF\xB4\xD9. \xBC\xD2\xC8\xAF\xB0\xA1\xB4\xC9\xC7\xD1 \xB8\xF3\xBD\xBA\xC5\xCD\xB4\xC2 \xC8\xA8\xC6\xE4\xC0\xCC\xC1\xF6\xB8\xA6 \xC2\xFC\xC1\xB6\xC7\xCF\xBC\xBC\xBF\xE4"));
return;
}
@ -1927,92 +1927,92 @@ static const char* FN_point_string(int apply_number)
{
switch (apply_number)
{
case POINT_MAX_HP: return LC_TEXT("최대 생명력 +%d");
case POINT_MAX_SP: return LC_TEXT("최대 정신력 +%d");
case POINT_HT: return LC_TEXT("체력 +%d");
case POINT_IQ: return LC_TEXT("지능 +%d");
case POINT_ST: return LC_TEXT("근력 +%d");
case POINT_DX: return LC_TEXT("민첩 +%d");
case POINT_ATT_SPEED: return LC_TEXT("공격속도 +%d");
case POINT_MOV_SPEED: return LC_TEXT("이동속도 %d");
case POINT_CASTING_SPEED: return LC_TEXT("쿨타임 -%d");
case POINT_HP_REGEN: return LC_TEXT("생명력 회복 +%d");
case POINT_SP_REGEN: return LC_TEXT("정신력 회복 +%d");
case POINT_POISON_PCT: return LC_TEXT("독공격 %d");
case POINT_STUN_PCT: return LC_TEXT("스턴 +%d");
case POINT_SLOW_PCT: return LC_TEXT("슬로우 +%d");
case POINT_CRITICAL_PCT: return LC_TEXT("%d%% 확률로 치명타 공격");
case POINT_RESIST_CRITICAL: return LC_TEXT("상대의 치명타 확률 %d%% 감소");
case POINT_PENETRATE_PCT: return LC_TEXT("%d%% 확률로 관통 공격");
case POINT_RESIST_PENETRATE: return LC_TEXT("상대의 관통 공격 확률 %d%% 감소");
case POINT_ATTBONUS_HUMAN: return LC_TEXT("인간류 몬스터 타격치 +%d%%");
case POINT_ATTBONUS_ANIMAL: return LC_TEXT("동물류 몬스터 타격치 +%d%%");
case POINT_ATTBONUS_ORC: return LC_TEXT("웅귀족 타격치 +%d%%");
case POINT_ATTBONUS_MILGYO: return LC_TEXT("밀교류 타격치 +%d%%");
case POINT_ATTBONUS_UNDEAD: return LC_TEXT("시체류 타격치 +%d%%");
case POINT_ATTBONUS_DEVIL: return LC_TEXT("악마류 타격치 +%d%%");
case POINT_STEAL_HP: return LC_TEXT("타격치 %d%% 를 생명력으로 흡수");
case POINT_STEAL_SP: return LC_TEXT("타력치 %d%% 를 정신력으로 흡수");
case POINT_MANA_BURN_PCT: return LC_TEXT("%d%% 확률로 타격시 상대 전신력 소모");
case POINT_DAMAGE_SP_RECOVER: return LC_TEXT("%d%% 확률로 피해시 정신력 회복");
case POINT_BLOCK: return LC_TEXT("물리타격시 블럭 확률 %d%%");
case POINT_DODGE: return LC_TEXT("활 공격 회피 확률 %d%%");
case POINT_RESIST_SWORD: return LC_TEXT("한손검 방어 %d%%");
case POINT_RESIST_TWOHAND: return LC_TEXT("양손검 방어 %d%%");
case POINT_RESIST_DAGGER: return LC_TEXT("두손검 방어 %d%%");
case POINT_RESIST_BELL: return LC_TEXT("방울 방어 %d%%");
case POINT_RESIST_FAN: return LC_TEXT("부채 방어 %d%%");
case POINT_RESIST_BOW: return LC_TEXT("활공격 저항 %d%%");
case POINT_RESIST_FIRE: return LC_TEXT("화염 저항 %d%%");
case POINT_RESIST_ELEC: return LC_TEXT("전기 저항 %d%%");
case POINT_RESIST_MAGIC: return LC_TEXT("마법 저항 %d%%");
case POINT_RESIST_WIND: return LC_TEXT("바람 저항 %d%%");
case POINT_RESIST_ICE: return LC_TEXT("냉기 저항 %d%%");
case POINT_RESIST_EARTH: return LC_TEXT("대지 저항 %d%%");
case POINT_RESIST_DARK: return LC_TEXT("어둠 저항 %d%%");
case POINT_REFLECT_MELEE: return LC_TEXT("직접 타격치 반사 확률 : %d%%");
case POINT_REFLECT_CURSE: return LC_TEXT("저주 되돌리기 확률 %d%%");
case POINT_POISON_REDUCE: return LC_TEXT("독 저항 %d%%");
case POINT_KILL_SP_RECOVER: return LC_TEXT("%d%% 확률로 적퇴치시 정신력 회복");
case POINT_EXP_DOUBLE_BONUS: return LC_TEXT("%d%% 확률로 적퇴치시 경험치 추가 상승");
case POINT_GOLD_DOUBLE_BONUS: return LC_TEXT("%d%% 확률로 적퇴치시 돈 2배 드롭");
case POINT_ITEM_DROP_BONUS: return LC_TEXT("%d%% 확률로 적퇴치시 아이템 2배 드롭");
case POINT_POTION_BONUS: return LC_TEXT("물약 사용시 %d%% 성능 증가");
case POINT_KILL_HP_RECOVERY: return LC_TEXT("%d%% 확률로 적퇴치시 생명력 회복");
// case POINT_IMMUNE_STUN: return LC_TEXT("기절하지 않음 %d%%");
// case POINT_IMMUNE_SLOW: return LC_TEXT("느려지지 않음 %d%%");
// case POINT_IMMUNE_FALL: return LC_TEXT("넘어지지 않음 %d%%");
case POINT_MAX_HP: return LC_TEXT("\xC3\xD6\xB4\xEB \xBB\xFD\xB8\xED\xB7\xC2 +%d");
case POINT_MAX_SP: return LC_TEXT("\xC3\xD6\xB4\xEB \xC1\xA4\xBD\xC5\xB7\xC2 +%d");
case POINT_HT: return LC_TEXT("\xC3\xBC\xB7\xC2 +%d");
case POINT_IQ: return LC_TEXT("\xC1\xF6\xB4\xC9 +%d");
case POINT_ST: return LC_TEXT("\xB1\xD9\xB7\xC2 +%d");
case POINT_DX: return LC_TEXT("\xB9\xCE\xC3\xB8 +%d");
case POINT_ATT_SPEED: return LC_TEXT("\xB0\xF8\xB0\xDD\xBC\xD3\xB5\xB5 +%d");
case POINT_MOV_SPEED: return LC_TEXT("\xC0\xCC\xB5\xBF\xBC\xD3\xB5\xB5 %d");
case POINT_CASTING_SPEED: return LC_TEXT("\xC4\xF0\xC5\xB8\xC0\xD3 -%d");
case POINT_HP_REGEN: return LC_TEXT("\xBB\xFD\xB8\xED\xB7\xC2 \xC8\xB8\xBA\xB9 +%d");
case POINT_SP_REGEN: return LC_TEXT("\xC1\xA4\xBD\xC5\xB7\xC2 \xC8\xB8\xBA\xB9 +%d");
case POINT_POISON_PCT: return LC_TEXT("\xB5\xB6\xB0\xF8\xB0\xDD %d");
case POINT_STUN_PCT: return LC_TEXT("\xBD\xBA\xC5\xCF +%d");
case POINT_SLOW_PCT: return LC_TEXT("\xBD\xBD\xB7\xCE\xBF\xEC +%d");
case POINT_CRITICAL_PCT: return LC_TEXT("%d%% \xC8\xAE\xB7\xFC\xB7\xCE \xC4\xA1\xB8\xED\xC5\xB8 \xB0\xF8\xB0\xDD");
case POINT_RESIST_CRITICAL: return LC_TEXT("\xBB\xF3\xB4\xEB\xC0\xC7 \xC4\xA1\xB8\xED\xC5\xB8 \xC8\xAE\xB7\xFC %d%% \xB0\xA8\xBC\xD2");
case POINT_PENETRATE_PCT: return LC_TEXT("%d%% \xC8\xAE\xB7\xFC\xB7\xCE \xB0\xFC\xC5\xEB \xB0\xF8\xB0\xDD");
case POINT_RESIST_PENETRATE: return LC_TEXT("\xBB\xF3\xB4\xEB\xC0\xC7 \xB0\xFC\xC5\xEB \xB0\xF8\xB0\xDD \xC8\xAE\xB7\xFC %d%% \xB0\xA8\xBC\xD2");
case POINT_ATTBONUS_HUMAN: return LC_TEXT("\xC0\xCE\xB0\xA3\xB7\xF9 \xB8\xF3\xBD\xBA\xC5\xCD \xC5\xB8\xB0\xDD\xC4\xA1 +%d%%");
case POINT_ATTBONUS_ANIMAL: return LC_TEXT("\xB5\xBF\xB9\xB0\xB7\xF9 \xB8\xF3\xBD\xBA\xC5\xCD \xC5\xB8\xB0\xDD\xC4\xA1 +%d%%");
case POINT_ATTBONUS_ORC: return LC_TEXT("\xBF\xF5\xB1\xCD\xC1\xB7 \xC5\xB8\xB0\xDD\xC4\xA1 +%d%%");
case POINT_ATTBONUS_MILGYO: return LC_TEXT("\xB9\xD0\xB1\xB3\xB7\xF9 \xC5\xB8\xB0\xDD\xC4\xA1 +%d%%");
case POINT_ATTBONUS_UNDEAD: return LC_TEXT("\xBD\xC3\xC3\xBC\xB7\xF9 \xC5\xB8\xB0\xDD\xC4\xA1 +%d%%");
case POINT_ATTBONUS_DEVIL: return LC_TEXT("\xBE\xC7\xB8\xB6\xB7\xF9 \xC5\xB8\xB0\xDD\xC4\xA1 +%d%%");
case POINT_STEAL_HP: return LC_TEXT("\xC5\xB8\xB0\xDD\xC4\xA1 %d%% \xB8\xA6 \xBB\xFD\xB8\xED\xB7\xC2\xC0\xB8\xB7\xCE \xC8\xED\xBC\xF6");
case POINT_STEAL_SP: return LC_TEXT("\xC5\xB8\xB7\xC2\xC4\xA1 %d%% \xB8\xA6 \xC1\xA4\xBD\xC5\xB7\xC2\xC0\xB8\xB7\xCE \xC8\xED\xBC\xF6");
case POINT_MANA_BURN_PCT: return LC_TEXT("%d%% \xC8\xAE\xB7\xFC\xB7\xCE \xC5\xB8\xB0\xDD\xBD\xC3 \xBB\xF3\xB4\xEB \xC0\xFC\xBD\xC5\xB7\xC2 \xBC\xD2\xB8\xF0");
case POINT_DAMAGE_SP_RECOVER: return LC_TEXT("%d%% \xC8\xAE\xB7\xFC\xB7\xCE \xC7\xC7\xC7\xD8\xBD\xC3 \xC1\xA4\xBD\xC5\xB7\xC2 \xC8\xB8\xBA\xB9");
case POINT_BLOCK: return LC_TEXT("\xB9\xB0\xB8\xAE\xC5\xB8\xB0\xDD\xBD\xC3 \xBA\xED\xB7\xB0 \xC8\xAE\xB7\xFC %d%%");
case POINT_DODGE: return LC_TEXT("\xC8\xB0 \xB0\xF8\xB0\xDD \xC8\xB8\xC7\xC7 \xC8\xAE\xB7\xFC %d%%");
case POINT_RESIST_SWORD: return LC_TEXT("\xC7\xD1\xBC\xD5\xB0\xCB \xB9\xE6\xBE\xEE %d%%");
case POINT_RESIST_TWOHAND: return LC_TEXT("\xBE\xE7\xBC\xD5\xB0\xCB \xB9\xE6\xBE\xEE %d%%");
case POINT_RESIST_DAGGER: return LC_TEXT("\xB5\xCE\xBC\xD5\xB0\xCB \xB9\xE6\xBE\xEE %d%%");
case POINT_RESIST_BELL: return LC_TEXT("\xB9\xE6\xBF\xEF \xB9\xE6\xBE\xEE %d%%");
case POINT_RESIST_FAN: return LC_TEXT("\xBA\xCE\xC3\xA4 \xB9\xE6\xBE\xEE %d%%");
case POINT_RESIST_BOW: return LC_TEXT("\xC8\xB0\xB0\xF8\xB0\xDD \xC0\xFA\xC7\xD7 %d%%");
case POINT_RESIST_FIRE: return LC_TEXT("\xC8\xAD\xBF\xB0 \xC0\xFA\xC7\xD7 %d%%");
case POINT_RESIST_ELEC: return LC_TEXT("\xC0\xFC\xB1\xE2 \xC0\xFA\xC7\xD7 %d%%");
case POINT_RESIST_MAGIC: return LC_TEXT("\xB8\xB6\xB9\xFD \xC0\xFA\xC7\xD7 %d%%");
case POINT_RESIST_WIND: return LC_TEXT("\xB9\xD9\xB6\xF7 \xC0\xFA\xC7\xD7 %d%%");
case POINT_RESIST_ICE: return LC_TEXT("\xB3\xC3\xB1\xE2 \xC0\xFA\xC7\xD7 %d%%");
case POINT_RESIST_EARTH: return LC_TEXT("\xB4\xEB\xC1\xF6 \xC0\xFA\xC7\xD7 %d%%");
case POINT_RESIST_DARK: return LC_TEXT("\xBE\xEE\xB5\xD2 \xC0\xFA\xC7\xD7 %d%%");
case POINT_REFLECT_MELEE: return LC_TEXT("\xC1\xF7\xC1\xA2 \xC5\xB8\xB0\xDD\xC4\xA1 \xB9\xDD\xBB\xE7 \xC8\xAE\xB7\xFC : %d%%");
case POINT_REFLECT_CURSE: return LC_TEXT("\xC0\xFA\xC1\xD6 \xB5\xC7\xB5\xB9\xB8\xAE\xB1\xE2 \xC8\xAE\xB7\xFC %d%%");
case POINT_POISON_REDUCE: return LC_TEXT("\xB5\xB6 \xC0\xFA\xC7\xD7 %d%%");
case POINT_KILL_SP_RECOVER: return LC_TEXT("%d%% \xC8\xAE\xB7\xFC\xB7\xCE \xC0\xFB\xC5\xF0\xC4\xA1\xBD\xC3 \xC1\xA4\xBD\xC5\xB7\xC2 \xC8\xB8\xBA\xB9");
case POINT_EXP_DOUBLE_BONUS: return LC_TEXT("%d%% \xC8\xAE\xB7\xFC\xB7\xCE \xC0\xFB\xC5\xF0\xC4\xA1\xBD\xC3 \xB0\xE6\xC7\xE8\xC4\xA1 \xC3\xDF\xB0\xA1 \xBB\xF3\xBD\xC2");
case POINT_GOLD_DOUBLE_BONUS: return LC_TEXT("%d%% \xC8\xAE\xB7\xFC\xB7\xCE \xC0\xFB\xC5\xF0\xC4\xA1\xBD\xC3 \xB5\xB7 2\xB9\xE8 \xB5\xE5\xB7\xD3");
case POINT_ITEM_DROP_BONUS: return LC_TEXT("%d%% \xC8\xAE\xB7\xFC\xB7\xCE \xC0\xFB\xC5\xF0\xC4\xA1\xBD\xC3 \xBE\xC6\xC0\xCC\xC5\xDB 2\xB9\xE8 \xB5\xE5\xB7\xD3");
case POINT_POTION_BONUS: return LC_TEXT("\xB9\xB0\xBE\xE0 \xBB\xE7\xBF\xEB\xBD\xC3 %d%% \xBC\xBA\xB4\xC9 \xC1\xF5\xB0\xA1");
case POINT_KILL_HP_RECOVERY: return LC_TEXT("%d%% \xC8\xAE\xB7\xFC\xB7\xCE \xC0\xFB\xC5\xF0\xC4\xA1\xBD\xC3 \xBB\xFD\xB8\xED\xB7\xC2 \xC8\xB8\xBA\xB9");
// case POINT_IMMUNE_STUN: return LC_TEXT("\xB1\xE2\xC0\xFD\xC7\xCF\xC1\xF6 \xBE\xCA\xC0\xBD %d%%");
// case POINT_IMMUNE_SLOW: return LC_TEXT("\xB4\xC0\xB7\xC1\xC1\xF6\xC1\xF6 \xBE\xCA\xC0\xBD %d%%");
// case POINT_IMMUNE_FALL: return LC_TEXT("\xB3\xD1\xBE\xEE\xC1\xF6\xC1\xF6 \xBE\xCA\xC0\xBD %d%%");
// case POINT_SKILL: return LC_TEXT("");
// case POINT_BOW_DISTANCE: return LC_TEXT("");
case POINT_ATT_GRADE_BONUS: return LC_TEXT("공격력 +%d");
case POINT_DEF_GRADE_BONUS: return LC_TEXT("방어력 +%d");
case POINT_MAGIC_ATT_GRADE: return LC_TEXT("마법 공격력 +%d");
case POINT_MAGIC_DEF_GRADE: return LC_TEXT("마법 방어력 +%d");
case POINT_ATT_GRADE_BONUS: return LC_TEXT("\xB0\xF8\xB0\xDD\xB7\xC2 +%d");
case POINT_DEF_GRADE_BONUS: return LC_TEXT("\xB9\xE6\xBE\xEE\xB7\xC2 +%d");
case POINT_MAGIC_ATT_GRADE: return LC_TEXT("\xB8\xB6\xB9\xFD \xB0\xF8\xB0\xDD\xB7\xC2 +%d");
case POINT_MAGIC_DEF_GRADE: return LC_TEXT("\xB8\xB6\xB9\xFD \xB9\xE6\xBE\xEE\xB7\xC2 +%d");
// case POINT_CURSE_PCT: return LC_TEXT("");
case POINT_MAX_STAMINA: return LC_TEXT("최대 지구력 +%d");
case POINT_ATTBONUS_WARRIOR: return LC_TEXT("무사에게 강함 +%d%%");
case POINT_ATTBONUS_ASSASSIN: return LC_TEXT("자객에게 강함 +%d%%");
case POINT_ATTBONUS_SURA: return LC_TEXT("수라에게 강함 +%d%%");
case POINT_ATTBONUS_SHAMAN: return LC_TEXT("무당에게 강함 +%d%%");
case POINT_ATTBONUS_MONSTER: return LC_TEXT("몬스터에게 강함 +%d%%");
case POINT_MALL_ATTBONUS: return LC_TEXT("공격력 +%d%%");
case POINT_MALL_DEFBONUS: return LC_TEXT("방어력 +%d%%");
case POINT_MALL_EXPBONUS: return LC_TEXT("경험치 %d%%");
case POINT_MALL_ITEMBONUS: return LC_TEXT("아이템 드롭율 %.1f배");
case POINT_MALL_GOLDBONUS: return LC_TEXT("돈 드롭율 %.1f배");
case POINT_MAX_HP_PCT: return LC_TEXT("최대 생명력 +%d%%");
case POINT_MAX_SP_PCT: return LC_TEXT("최대 정신력 +%d%%");
case POINT_SKILL_DAMAGE_BONUS: return LC_TEXT("스킬 데미지 %d%%");
case POINT_NORMAL_HIT_DAMAGE_BONUS: return LC_TEXT("평타 데미지 %d%%");
case POINT_SKILL_DEFEND_BONUS: return LC_TEXT("스킬 데미지 저항 %d%%");
case POINT_NORMAL_HIT_DEFEND_BONUS: return LC_TEXT("평타 데미지 저항 %d%%");
case POINT_MAX_STAMINA: return LC_TEXT("\xC3\xD6\xB4\xEB \xC1\xF6\xB1\xB8\xB7\xC2 +%d");
case POINT_ATTBONUS_WARRIOR: return LC_TEXT("\xB9\xAB\xBB\xE7\xBF\xA1\xB0\xD4 \xB0\xAD\xC7\xD4 +%d%%");
case POINT_ATTBONUS_ASSASSIN: return LC_TEXT("\xC0\xDA\xB0\xB4\xBF\xA1\xB0\xD4 \xB0\xAD\xC7\xD4 +%d%%");
case POINT_ATTBONUS_SURA: return LC_TEXT("\xBC\xF6\xB6\xF3\xBF\xA1\xB0\xD4 \xB0\xAD\xC7\xD4 +%d%%");
case POINT_ATTBONUS_SHAMAN: return LC_TEXT("\xB9\xAB\xB4\xE7\xBF\xA1\xB0\xD4 \xB0\xAD\xC7\xD4 +%d%%");
case POINT_ATTBONUS_MONSTER: return LC_TEXT("\xB8\xF3\xBD\xBA\xC5\xCD\xBF\xA1\xB0\xD4 \xB0\xAD\xC7\xD4 +%d%%");
case POINT_MALL_ATTBONUS: return LC_TEXT("\xB0\xF8\xB0\xDD\xB7\xC2 +%d%%");
case POINT_MALL_DEFBONUS: return LC_TEXT("\xB9\xE6\xBE\xEE\xB7\xC2 +%d%%");
case POINT_MALL_EXPBONUS: return LC_TEXT("\xB0\xE6\xC7\xE8\xC4\xA1 %d%%");
case POINT_MALL_ITEMBONUS: return LC_TEXT("\xBE\xC6\xC0\xCC\xC5\xDB \xB5\xE5\xB7\xD3\xC0\xB2 %.1f\xB9\xE8");
case POINT_MALL_GOLDBONUS: return LC_TEXT("\xB5\xB7 \xB5\xE5\xB7\xD3\xC0\xB2 %.1f\xB9\xE8");
case POINT_MAX_HP_PCT: return LC_TEXT("\xC3\xD6\xB4\xEB \xBB\xFD\xB8\xED\xB7\xC2 +%d%%");
case POINT_MAX_SP_PCT: return LC_TEXT("\xC3\xD6\xB4\xEB \xC1\xA4\xBD\xC5\xB7\xC2 +%d%%");
case POINT_SKILL_DAMAGE_BONUS: return LC_TEXT("\xBD\xBA\xC5\xB3 \xB5\xA5\xB9\xCC\xC1\xF6 %d%%");
case POINT_NORMAL_HIT_DAMAGE_BONUS: return LC_TEXT("\xC6\xF2\xC5\xB8 \xB5\xA5\xB9\xCC\xC1\xF6 %d%%");
case POINT_SKILL_DEFEND_BONUS: return LC_TEXT("\xBD\xBA\xC5\xB3 \xB5\xA5\xB9\xCC\xC1\xF6 \xC0\xFA\xC7\xD7 %d%%");
case POINT_NORMAL_HIT_DEFEND_BONUS: return LC_TEXT("\xC6\xF2\xC5\xB8 \xB5\xA5\xB9\xCC\xC1\xF6 \xC0\xFA\xC7\xD7 %d%%");
// case POINT_PC_BANG_EXP_BONUS: return LC_TEXT("");
// case POINT_PC_BANG_DROP_BONUS: return LC_TEXT("");
// case POINT_EXTRACT_HP_PCT: return LC_TEXT("");
case POINT_RESIST_WARRIOR: return LC_TEXT("무사공격에 %d%% 저항");
case POINT_RESIST_ASSASSIN: return LC_TEXT("자객공격에 %d%% 저항");
case POINT_RESIST_SURA: return LC_TEXT("수라공격에 %d%% 저항");
case POINT_RESIST_SHAMAN: return LC_TEXT("무당공격에 %d%% 저항");
case POINT_RESIST_WARRIOR: return LC_TEXT("\xB9\xAB\xBB\xE7\xB0\xF8\xB0\xDD\xBF\xA1 %d%% \xC0\xFA\xC7\xD7");
case POINT_RESIST_ASSASSIN: return LC_TEXT("\xC0\xDA\xB0\xB4\xB0\xF8\xB0\xDD\xBF\xA1 %d%% \xC0\xFA\xC7\xD7");
case POINT_RESIST_SURA: return LC_TEXT("\xBC\xF6\xB6\xF3\xB0\xF8\xB0\xDD\xBF\xA1 %d%% \xC0\xFA\xC7\xD7");
case POINT_RESIST_SHAMAN: return LC_TEXT("\xB9\xAB\xB4\xE7\xB0\xF8\xB0\xDD\xBF\xA1 %d%% \xC0\xFA\xC7\xD7");
default: return NULL;
}
}
@ -2050,7 +2050,7 @@ static bool FN_hair_affect_string(LPCHARACTER ch, char *buf, size_t bufsiz)
mon = ltm.tm_mon + 1;
day = ltm.tm_mday;
snprintf(buf + offset, bufsiz - offset, LC_TEXT(" (만료일 : %d년 %d월 %d일)"), year, mon, day);
snprintf(buf + offset, bufsiz - offset, LC_TEXT(" (\xB8\xB8\xB7\xE1\xC0\xCF : %d\xB3\xE2 %d\xBF\xF9 %d\xC0\xCF)"), year, mon, day);
return true;
}
@ -2379,9 +2379,9 @@ ACMD(do_dice)
int n = Random::get(start, end);
if (ch->GetParty())
ch->GetParty()->ChatPacketToAllMember(CHAT_TYPE_INFO, LC_TEXT("%s님이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), ch->GetName(), n, start, end);
ch->GetParty()->ChatPacketToAllMember(CHAT_TYPE_INFO, LC_TEXT("%s\xB4\xD4\xC0\xCC \xC1\xD6\xBB\xE7\xC0\xA7\xB8\xA6 \xB1\xBC\xB7\xC1 %d\xB0\xA1 \xB3\xAA\xBF\xD4\xBD\xC0\xB4\xCF\xB4\xD9. (%d-%d)"), ch->GetName(), n, start, end);
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("당신이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), n, start, end);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xE7\xBD\xC5\xC0\xCC \xC1\xD6\xBB\xE7\xC0\xA7\xB8\xA6 \xB1\xBC\xB7\xC1 %d\xB0\xA1 \xB3\xAA\xBF\xD4\xBD\xC0\xB4\xCF\xB4\xD9. (%d-%d)"), n, start, end);
}
ACMD(do_click_mall)
@ -2463,7 +2463,7 @@ ACMD(do_ride)
// 타거나 내릴 수 없을때
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말을 먼저 소환해주세요."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xBB\xC0\xBB \xB8\xD5\xC0\xFA \xBC\xD2\xC8\xAF\xC7\xD8\xC1\xD6\xBC\xBC\xBF\xE4."));
}
#ifdef __AUCTION__

View File

@ -308,44 +308,44 @@ bool CHARACTER_GoToName(LPCHARACTER ch, BYTE empire, int mapIndex, const char* g
/*
= {
{ "A1|영안읍성", 0, 1, 4693, 9642 },
{ "A3|자양현", 0, 3, 3608, 8776 },
{ "A1|\xBF\xB5\xBE\xC8\xC0\xBE\xBC\xBA", 0, 1, 4693, 9642 },
{ "A3|\xC0\xDA\xBE\xE7\xC7\xF6", 0, 3, 3608, 8776 },
{ "B1|조안읍성", 0, 21, 557, 1579 },
{ "B3|복정현", 0, 23, 1385, 2349 },
{ "B1|\xC1\xB6\xBE\xC8\xC0\xBE\xBC\xBA", 0, 21, 557, 1579 },
{ "B3|\xBA\xB9\xC1\xA4\xC7\xF6", 0, 23, 1385, 2349 },
{ "C1|평무읍성", 0, 41, 9696, 2784 },
{ "C3|박라현", 0, 43, 8731, 2426 },
{ "C1|\xC6\xF2\xB9\xAB\xC0\xBE\xBC\xBA", 0, 41, 9696, 2784 },
{ "C3|\xB9\xDA\xB6\xF3\xC7\xF6", 0, 43, 8731, 2426 },
// Snow
{ "Snow|서한산", 1, 61, 4342, 2906 },
{ "Snow|서한산", 2, 61, 3752, 1749 },
{ "Snow|서한산", 3, 61, 4918, 1736 },
{ "Snow|\xBC\xAD\xC7\xD1\xBB\xEA", 1, 61, 4342, 2906 },
{ "Snow|\xBC\xAD\xC7\xD1\xBB\xEA", 2, 61, 3752, 1749 },
{ "Snow|\xBC\xAD\xC7\xD1\xBB\xEA", 3, 61, 4918, 1736 },
// Flame
{ "Flame|도염화지|화염", 1, 62, 5994, 7563 },
{ "Flame|도염화지|화염", 2, 62, 5978, 6222 },
{ "Flame|도염화지|화염", 3, 62, 7307, 6898 },
{ "Flame|\xB5\xB5\xBF\xB0\xC8\xAD\xC1\xF6|\xC8\xAD\xBF\xB0", 1, 62, 5994, 7563 },
{ "Flame|\xB5\xB5\xBF\xB0\xC8\xAD\xC1\xF6|\xC8\xAD\xBF\xB0", 2, 62, 5978, 6222 },
{ "Flame|\xB5\xB5\xBF\xB0\xC8\xAD\xC1\xF6|\xC8\xAD\xBF\xB0", 3, 62, 7307, 6898 },
// Desert
{ "Desert|영비사막|사막", 1, 63, 2178, 6272 },
{ "Desert|영비사막|사막", 2, 63, 2219, 5027 },
{ "Desert|영비사막|사막", 3, 63, 3440, 5025 },
{ "Desert|\xBF\xB5\xBA\xF1\xBB\xE7\xB8\xB7|\xBB\xE7\xB8\xB7", 1, 63, 2178, 6272 },
{ "Desert|\xBF\xB5\xBA\xF1\xBB\xE7\xB8\xB7|\xBB\xE7\xB8\xB7", 2, 63, 2219, 5027 },
{ "Desert|\xBF\xB5\xBA\xF1\xBB\xE7\xB8\xB7|\xBB\xE7\xB8\xB7", 3, 63, 3440, 5025 },
// Threeway
{ "Three|승룡곡", 1, 64, 4021, 6739 },
{ "Three|승룡곡", 2, 64, 2704, 7399 },
{ "Three|승룡곡", 3, 64, 3213, 8080 },
{ "Three|\xBD\xC2\xB7\xE6\xB0\xEE", 1, 64, 4021, 6739 },
{ "Three|\xBD\xC2\xB7\xE6\xB0\xEE", 2, 64, 2704, 7399 },
{ "Three|\xBD\xC2\xB7\xE6\xB0\xEE", 3, 64, 3213, 8080 },
// 밀교사원
{ "Milgyo|밀교사원", 1, 65, 5536, 1436 },
{ "Milgyo|밀교사원", 2, 65, 5536, 1436 },
{ "Milgyo|밀교사원", 3, 65, 5536, 1436 },
{ "Milgyo|\xB9\xD0\xB1\xB3\xBB\xE7\xBF\xF8", 1, 65, 5536, 1436 },
{ "Milgyo|\xB9\xD0\xB1\xB3\xBB\xE7\xBF\xF8", 2, 65, 5536, 1436 },
{ "Milgyo|\xB9\xD0\xB1\xB3\xBB\xE7\xBF\xF8", 3, 65, 5536, 1436 },
// 사귀타워입구
{ "사귀타워입구", 1, 65, 5905, 1108 },
{ "사귀타워입구", 2, 65, 5905, 1108 },
{ "사귀타워입구", 3, 65, 5905, 1108 },
{ "\xBB\xE7\xB1\xCD\xC5\xB8\xBF\xF6\xC0\xD4\xB1\xB8", 1, 65, 5905, 1108 },
{ "\xBB\xE7\xB1\xCD\xC5\xB8\xBF\xF6\xC0\xD4\xB1\xB8", 2, 65, 5905, 1108 },
{ "\xBB\xE7\xB1\xCD\xC5\xB8\xBF\xF6\xC0\xD4\xB1\xB8", 3, 65, 5905, 1108 },
{ NULL, 0, 0, 0, 0 },
};
@ -547,7 +547,7 @@ ACMD(do_item)
M2_DESTROY_ITEM(item);
if (!ch->DragonSoul_IsQualified())
{
ch->ChatPacket(CHAT_TYPE_INFO, "인벤이 활성화 되지 않음.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xCE\xBA\xA5\xC0\xCC \xC8\xB0\xBC\xBA\xC8\xAD \xB5\xC7\xC1\xF6 \xBE\xCA\xC0\xBD.");
}
else
ch->ChatPacket(CHAT_TYPE_INFO, "Not enough inventory space.");
@ -1262,7 +1262,7 @@ ACMD(do_monarch_notice)
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주만이 사용 가능한 기능입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xB8\xB8\xC0\xCC \xBB\xE7\xBF\xEB \xB0\xA1\xB4\xC9\xC7\xD1 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9"));
}
}
@ -1602,12 +1602,12 @@ ACMD(do_makeguild)
if (!check_name(cp.name))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("적합하지 않은 길드 이름 입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xFB\xC7\xD5\xC7\xCF\xC1\xF6 \xBE\xCA\xC0\xBA \xB1\xE6\xB5\xE5 \xC0\xCC\xB8\xA7 \xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
gm.CreateGuild(cp);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("(%s) 길드가 생성되었습니다. [임시]"), cp.name);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("(%s) \xB1\xE6\xB5\xE5\xB0\xA1 \xBB\xFD\xBC\xBA\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9. [\xC0\xD3\xBD\xC3]"), cp.name);
}
ACMD(do_deleteguild)
@ -2165,7 +2165,7 @@ ACMD(do_level)
ACMD(do_gwlist)
{
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("현재 전쟁중인 길드 입니다"));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xC7\xF6\xC0\xE7 \xC0\xFC\xC0\xEF\xC1\xDF\xC0\xCE \xB1\xE6\xB5\xE5 \xC0\xD4\xB4\xCF\xB4\xD9"));
CGuildManager::instance().ShowGuildWarList(ch);
}
@ -2223,7 +2223,7 @@ ACMD(do_guild_state)
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s: 존재하지 않는 길드 입니다."), arg1);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s: \xC1\xB8\xC0\xE7\xC7\xCF\xC1\xF6 \xBE\xCA\xB4\xC2 \xB1\xE6\xB5\xE5 \xC0\xD4\xB4\xCF\xB4\xD9."), arg1);
}
}
@ -2634,7 +2634,7 @@ ACMD(do_block_chat_list)
// GM이 아니거나 block_chat_privilege가 없는 사람은 명령어 사용 불가
if (!ch || (ch->GetGMLevel() < GM_HIGH_WIZARD && ch->GetQuestFlag("chat_privilege.block") <= 0))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("그런 명령어는 없습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xD7\xB7\xB1 \xB8\xED\xB7\xC9\xBE\xEE\xB4\xC2 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9"));
return;
}
@ -2700,7 +2700,7 @@ ACMD(do_block_chat)
// GM이 아니거나 block_chat_privilege가 없는 사람은 명령어 사용 불가
if (ch && (ch->GetGMLevel() < GM_HIGH_WIZARD && ch->GetQuestFlag("chat_privilege.block") <= 0))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("그런 명령어는 없습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xD7\xB7\xB1 \xB8\xED\xB7\xC9\xBE\xEE\xB4\xC2 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9"));
return;
}
@ -2722,8 +2722,8 @@ ACMD(do_block_chat)
{
if (ch)
{
ch->ChatPacket(CHAT_TYPE_INFO, "잘못된 형식의 시간입니다. h, m, s를 붙여서 지정해 주십시오.");
ch->ChatPacket(CHAT_TYPE_INFO, ") 10s, 10m, 1m 30s");
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xDF\xB8\xF8\xB5\xC8 \xC7\xFC\xBD\xC4\xC0\xC7 \xBD\xC3\xB0\xA3\xC0\xD4\xB4\xCF\xB4\xD9. h, m, s\xB8\xA6 \xBA\xD9\xBF\xA9\xBC\xAD \xC1\xF6\xC1\xA4\xC7\xD8 \xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xBF\xB9) 10s, 10m, 1m 30s");
}
return;
}
@ -2831,7 +2831,7 @@ ACMD(do_build)
const TObjectProto * t = CManager::instance().GetObjectProto(dwVnum);
if (!t)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("존재하지 않는 건물입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xB8\xC0\xE7\xC7\xCF\xC1\xF6 \xBE\xCA\xB4\xC2 \xB0\xC7\xB9\xB0\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -2841,7 +2841,7 @@ ACMD(do_build)
{
if (pkLand->FindObjectByGroup(t->dwGroupVnum))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("같이 지을 수 없는 종류의 건물이 지어져 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xB0\xC0\xCC \xC1\xF6\xC0\xBB \xBC\xF6 \xBE\xF8\xB4\xC2 \xC1\xBE\xB7\xF9\xC0\xC7 \xB0\xC7\xB9\xB0\xC0\xCC \xC1\xF6\xBE\xEE\xC1\xAE \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
}
@ -2855,7 +2855,7 @@ ACMD(do_build)
// 지어져있는가?
if (!pkLand->FindObjectByGroup(t->dwDependOnGroupVnum))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("건설에 필요한 건물이 지어져 있지 않습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xC7\xBC\xB3\xBF\xA1 \xC7\xCA\xBF\xE4\xC7\xD1 \xB0\xC7\xB9\xB0\xC0\xCC \xC1\xF6\xBE\xEE\xC1\xAE \xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
}
@ -2867,13 +2867,13 @@ ACMD(do_build)
// 건설 비용 체크
if (t->dwPrice > BUILDING_MAX_PRICE)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("건물 비용 정보 이상으로 건설 작업에 실패했습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xC7\xB9\xB0 \xBA\xF1\xBF\xEB \xC1\xA4\xBA\xB8 \xC0\xCC\xBB\xF3\xC0\xB8\xB7\xCE \xB0\xC7\xBC\xB3 \xC0\xDB\xBE\xF7\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (ch->GetGold() < (int)t->dwPrice)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("건설 비용이 부족합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xC7\xBC\xB3 \xBA\xF1\xBF\xEB\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9."));
return;
}
@ -2890,7 +2890,7 @@ ACMD(do_build)
if ((int) dwItemCount > ch->CountSpecifyItem(dwItemVnum))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("자재가 부족하여 건설할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xDA\xC0\xE7\xB0\xA1 \xBA\xCE\xC1\xB7\xC7\xCF\xBF\xA9 \xB0\xC7\xBC\xB3\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
}
@ -2903,7 +2903,7 @@ ACMD(do_build)
/*
if (x_rot != 0.0f || y_rot != 0.0f || z_rot != 0.0f)
{
ch->ChatPacket(CHAT_TYPE_INFO, "건물 회전 기능은 아직 제공되지 않습니다");
ch->ChatPacket(CHAT_TYPE_INFO, "\xB0\xC7\xB9\xB0 \xC8\xB8\xC0\xFC \xB1\xE2\xB4\xC9\xC0\xBA \xBE\xC6\xC1\xF7 \xC1\xA6\xB0\xF8\xB5\xC7\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9");
return;
}
*/
@ -2924,7 +2924,7 @@ ACMD(do_build)
if (!isSuccess)
{
if (test_server)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("건물을 지을 수 없는 위치입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xC7\xB9\xB0\xC0\xBB \xC1\xF6\xC0\xBB \xBC\xF6 \xBE\xF8\xB4\xC2 \xC0\xA7\xC4\xA1\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -3106,7 +3106,7 @@ ACMD(do_horse_level)
if (NULL == victim)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("존재하지 않는 캐릭터 입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xB8\xC0\xE7\xC7\xCF\xC1\xF6 \xBE\xCA\xB4\xC2 \xC4\xB3\xB8\xAF\xC5\xCD \xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -3290,17 +3290,17 @@ ACMD(do_end_duel)
LPCHARACTER pChar = CHARACTER_MANAGER::instance().FindPC(szName);
if (pChar == NULL)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("존재하지 않는 캐릭터 입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xB8\xC0\xE7\xC7\xCF\xC1\xF6 \xBE\xCA\xB4\xC2 \xC4\xB3\xB8\xAF\xC5\xCD \xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
if (CArenaManager::instance().EndDuel(pChar->GetPlayerID()) == false)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련 강제 종료 실패"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3 \xB0\xAD\xC1\xA6 \xC1\xBE\xB7\xE1 \xBD\xC7\xC6\xD0"));
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련 강제 종료 성공"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3 \xB0\xAD\xC1\xA6 \xC1\xBE\xB7\xE1 \xBC\xBA\xB0\xF8"));
}
}
@ -3356,7 +3356,7 @@ ACMD(do_duel)
}
else
{
pChar1->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 파티에서 나가셨습니다."));
pChar1->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xC6\xC4\xC6\xBC\xBF\xA1\xBC\xAD \xB3\xAA\xB0\xA1\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
pParty->Quit(pChar1->GetPlayerID());
}
}
@ -3370,23 +3370,23 @@ ACMD(do_duel)
}
else
{
pChar2->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 파티에서 나가셨습니다."));
pChar2->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xC6\xC4\xC6\xBC\xBF\xA1\xBC\xAD \xB3\xAA\xB0\xA1\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
pParty->Quit(pChar2->GetPlayerID());
}
}
if (CArenaManager::instance().StartDuel(pChar1, pChar2, set, minute) == true)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련이 성공적으로 시작 되었습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xCC \xBC\xBA\xB0\xF8\xC0\xFB\xC0\xB8\xB7\xCE \xBD\xC3\xC0\xDB \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련 시작에 문제가 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3 \xBD\xC3\xC0\xDB\xBF\xA1 \xB9\xAE\xC1\xA6\xB0\xA1 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련자가 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xDA\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
@ -3401,7 +3401,7 @@ ACMD(do_stat_plus_amount)
if (ch->IsPolymorphed())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("둔갑 중에는 능력을 올릴 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xD0\xB0\xA9 \xC1\xDF\xBF\xA1\xB4\xC2 \xB4\xC9\xB7\xC2\xC0\xBB \xBF\xC3\xB8\xB1 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -3409,7 +3409,7 @@ ACMD(do_stat_plus_amount)
if (nRemainPoint <= 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("남은 스탯 포인트가 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xB2\xC0\xBA \xBD\xBA\xC5\xC8 \xC6\xF7\xC0\xCE\xC6\xAE\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -3418,13 +3418,13 @@ ACMD(do_stat_plus_amount)
if (nRemainPoint < nPoint)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("남은 스탯 포인트가 적습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xB2\xC0\xBA \xBD\xBA\xC5\xC8 \xC6\xF7\xC0\xCE\xC6\xAE\xB0\xA1 \xC0\xFB\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (nPoint < 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("값을 잘못 입력하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xAA\xC0\xBB \xC0\xDF\xB8\xF8 \xC0\xD4\xB7\xC2\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -3459,7 +3459,7 @@ ACMD(do_stat_plus_amount)
break;
default :
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("명령어의 서브 커맨드가 잘못 되었습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xED\xB7\xC9\xBE\xEE\xC0\xC7 \xBC\xAD\xBA\xEA \xC4\xBF\xB8\xC7\xB5\xE5\xB0\xA1 \xC0\xDF\xB8\xF8 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
break;
}
@ -3492,7 +3492,7 @@ ACMD(do_break_marriage)
str_to_number(pids.pid1, arg1);
str_to_number(pids.pid2, arg2);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("플레이어 %d 와 플레이어 %d를 파혼시킵니다.."), pids.pid1, pids.pid2);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC7\xC3\xB7\xB9\xC0\xCC\xBE\xEE %d \xBF\xCD \xC7\xC3\xB7\xB9\xC0\xCC\xBE\xEE %d\xB8\xA6 \xC6\xC4\xC8\xA5\xBD\xC3\xC5\xB5\xB4\xCF\xB4\xD9.."), pids.pid1, pids.pid2);
db_clientdesc->DBPacket(HEADER_GD_BREAK_MARRIAGE, 0, &pids, sizeof(pids));
}
@ -3526,8 +3526,8 @@ struct FCountInMap
ACMD(do_threeway_war_info)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("각제국 진행 정보"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("선택 맵 정보 성지 %d 통로 %d %d %d"), GetSungziMapIndex(), GetPassMapIndex(1), GetPassMapIndex(2), GetPassMapIndex(3));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xA2\xC1\xA6\xB1\xB9 \xC1\xF8\xC7\xE0 \xC1\xA4\xBA\xB8"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xB1\xC5\xC3 \xB8\xCA \xC1\xA4\xBA\xB8 \xBC\xBA\xC1\xF6 %d \xC5\xEB\xB7\xCE %d %d %d"), GetSungziMapIndex(), GetPassMapIndex(1), GetPassMapIndex(2), GetPassMapIndex(3));
ch->ChatPacket(CHAT_TYPE_INFO, "ThreewayPhase %d", CThreeWayWar::instance().GetRegenFlag());
for (int n = 1; n < 4; ++n)
@ -3550,7 +3550,7 @@ ACMD(do_threeway_war_info)
ACMD(do_threeway_war_myinfo)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("나의 삼거리 진행정보"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xAA\xC0\xC7 \xBB\xEF\xB0\xC5\xB8\xAE \xC1\xF8\xC7\xE0\xC1\xA4\xBA\xB8"));
ch->ChatPacket(CHAT_TYPE_INFO, "Deadcount %d",
CThreeWayWar::instance().GetReviveTokenForPlayer(ch->GetPlayerID()));
}
@ -3632,7 +3632,7 @@ ACMD(do_check_monarch_money)
str_to_number(empire, arg1);
int NationMoney = CMonarch::instance().GetMoney(empire);
ch->ChatPacket(CHAT_TYPE_INFO, "국고: %d 원", NationMoney);
ch->ChatPacket(CHAT_TYPE_INFO, "\xB1\xB9\xB0\xED: %d \xBF\xF8", NationMoney);
}
ACMD(do_reset_subskill)
@ -3911,13 +3911,13 @@ ACMD(do_set_stat)
{
if (tch->IsPolymorphed())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("둔갑 중에는 능력을 올릴 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xD0\xB0\xA9 \xC1\xDF\xBF\xA1\xB4\xC2 \xB4\xC9\xB7\xC2\xC0\xBB \xBF\xC3\xB8\xB1 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (subcmd != POINT_HT && subcmd != POINT_IQ && subcmd != POINT_ST && subcmd != POINT_DX)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("명령어의 서브 커맨드가 잘못 되었습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB8\xED\xB7\xC9\xBE\xEE\xC0\xC7 \xBC\xAD\xBA\xEA \xC4\xBF\xB8\xC7\xB5\xE5\xB0\xA1 \xC0\xDF\xB8\xF8 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
int nRemainPoint = tch->GetPoint(POINT_STAT);
@ -3971,7 +3971,7 @@ ACMD(do_set_stat)
if (nRemainPoint < nChangeAmount)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("남은 스탯 포인트가 적습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xB2\xC0\xBA \xBD\xBA\xC5\xC8 \xC6\xF7\xC0\xCE\xC6\xAE\xB0\xA1 \xC0\xFB\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -4316,7 +4316,7 @@ ACMD (do_use_item)
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, "아이템이 없어서 착용할 수 없어.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xBE\xF8\xBE\xEE\xBC\xAD \xC2\xF8\xBF\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBE\xEE.");
}
}

View File

@ -19,16 +19,16 @@ ACMD(do_oxevent_log)
{
if ( COXEventManager::instance().LogWinner() == false )
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OX이벤트의 나머지 인원을 기록하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OX\xC0\xCC\xBA\xA5\xC6\xAE\xC0\xC7 \xB3\xAA\xB8\xD3\xC1\xF6 \xC0\xCE\xBF\xF8\xC0\xBB \xB1\xE2\xB7\xCF\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OX이벤트의 나머지 인원 기록을 실패했습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OX\xC0\xCC\xBA\xA5\xC6\xAE\xC0\xC7 \xB3\xAA\xB8\xD3\xC1\xF6 \xC0\xCE\xBF\xF8 \xB1\xE2\xB7\xCF\xC0\xBB \xBD\xC7\xC6\xD0\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
ACMD(do_oxevent_get_attender)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("현재 남은 참가자수 : %d"), COXEventManager::instance().GetAttenderCount());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC7\xF6\xC0\xE7 \xB3\xB2\xC0\xBA \xC2\xFC\xB0\xA1\xC0\xDA\xBC\xF6 : %d"), COXEventManager::instance().GetAttenderCount());
}

View File

@ -38,7 +38,7 @@ WORD teen_port = 0;
BYTE g_bChannel = 0;
int passes_per_sec = 25;
int save_event_second_cycle = passes_per_sec * 120; // 3
int save_event_second_cycle = passes_per_sec * 120; // 3<EFBFBD><EFBFBD>
int ping_event_second_cycle = passes_per_sec * 60;
bool g_bNoMoreClient = false;
bool g_bNoRegen = false;
@ -102,17 +102,17 @@ int SPEEDHACK_LIMIT_COUNT = 50;
int SPEEDHACK_LIMIT_BONUS = 80;
int g_iSyncHackLimitCount = 20; // 10 -> 20 2013 09 11 CYH
//시야 = VIEW_RANGE + VIEW_BONUS_RANGE
//VIEW_BONUSE_RANGE : 클라이언트와 시야 처리에서너무 딱 떨어질경우 문제가 발생할수있어 500CM의 여분을 항상준다.
//<EFBFBD>þ<EFBFBD> = VIEW_RANGE + VIEW_BONUS_RANGE
//VIEW_BONUSE_RANGE : Ŭ<EFBFBD><EFBFBD><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><EFBFBD> <20>þ<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߻<EFBFBD><DFBB>Ҽ<EFBFBD><D2BC>־<EFBFBD> 500CM<43><4D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>׻<EFBFBD><D7BB>ش<EFBFBD>.
int VIEW_RANGE = 5000;
int VIEW_BONUS_RANGE = 500;
int g_server_id = 0;
string g_strWebMallURL = "www.metin2.de";
unsigned int g_uiSpamBlockDuration = 60 * 15; // 기본 15분
unsigned int g_uiSpamBlockScore = 100; // 기본 100점
unsigned int g_uiSpamReloadCycle = 60 * 10; // 기본 10분
unsigned int g_uiSpamBlockDuration = 60 * 15; // <EFBFBD>⺻ 15<31><35>
unsigned int g_uiSpamBlockScore = 100; // <EFBFBD>⺻ 100<30><30>
unsigned int g_uiSpamReloadCycle = 60 * 10; // <EFBFBD>⺻ 10<31><30>
bool g_bCheckMultiHack = true;
@ -121,8 +121,8 @@ int g_iSpamBlockMaxLevel = 10;
void LoadStateUserCount();
void LoadValidCRCList();
bool LoadClientVersion();
bool g_protectNormalPlayer = false; // 범법자가 "평화모드" 인 일반유저를 공격하지 못함
bool g_noticeBattleZone = false; // 중립지대에 입장하면 안내메세지를 알려줌
bool g_protectNormalPlayer = false; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> "<22><>ȭ<EFBFBD><C8AD><EFBFBD>" <20><> <20>Ϲ<EFBFBD><CFB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
bool g_noticeBattleZone = false; // <EFBFBD>߸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ȳ<EFBFBD><C8B3>޼<EFBFBD><DEBC><EFBFBD><EFBFBD><EFBFBD> <20>˷<EFBFBD><CBB7><EFBFBD>
int gPlayerMaxLevel = 99;
@ -318,7 +318,7 @@ void config_init(const string& st_localeServiceName)
}
char db_host[2][64], db_user[2][64], db_pwd[2][64], db_db[2][64];
// ... 아... db_port는 이미 있는데... 네이밍 어찌해야함...
// ... <EFBFBD><EFBFBD>... db_port<72><74> <20>̹<EFBFBD> <20>ִµ<D6B4>... <20><><EFBFBD>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>...
int mysql_db_port[2];
for (int n = 0; n < 2; ++n)
@ -339,9 +339,9 @@ void config_init(const string& st_localeServiceName)
*log_db = '\0';
// DB에서 로케일정보를 세팅하기위해서는 다른 세팅값보다 선행되어서
// DB정보만 읽어와 로케일 세팅을 한후 다른 세팅을 적용시켜야한다.
// 이유는 로케일관련된 초기화 루틴이 곳곳에 존재하기 때문.
// DB<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ǿ
// DB<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>Ѵ<EFBFBD>.
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD><CFB0>õ<EFBFBD> <20>ʱ<EFBFBD>ȭ <20><>ƾ<EFBFBD><C6BE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD>.
bool isCommonSQL = false;
bool isPlayerSQL = false;
@ -477,7 +477,7 @@ void config_init(const string& st_localeServiceName)
}
}
//처리가 끝났으니 파일을 닫자.
//ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
fclose(fpOnlyForDB);
// CONFIG_SQL_INFO_ERROR
@ -503,7 +503,7 @@ void config_init(const string& st_localeServiceName)
exit(EXIT_FAILURE);
}
// Common DB 가 Locale 정보를 가지고 있기 때문에 가장 먼저 접속해야 한다.
// Common DB <EFBFBD><EFBFBD> Locale <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>Ѵ<EFBFBD>.
AccountDB::instance().Connect(db_host[1], mysql_db_port[1], db_user[1], db_pwd[1], db_db[1]);
if (false == AccountDB::instance().IsConnected())
@ -514,8 +514,8 @@ void config_init(const string& st_localeServiceName)
SPDLOG_INFO("CommonSQL connected");
// 로케일 정보를 가져오자
// <경고> 쿼리문에 절대 조건문(WHERE) 달지 마세요. (다른 지역에서 문제가 생길수 있습니다)
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <<EFBFBD><EFBFBD><EFBFBD>> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ǹ<EFBFBD>(WHERE) <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. (<28>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>)
{
char szQuery[512];
snprintf(szQuery, sizeof(szQuery), "SELECT mKey, mValue FROM locale");
@ -532,7 +532,7 @@ void config_init(const string& st_localeServiceName)
while (NULL != (row = mysql_fetch_row(pMsg->Get()->pSQLResult)))
{
// 로케일 세팅
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
if (strcasecmp(row[0], "LOCALE") == 0)
{
if (LocaleService_Init(row[1]) == false)
@ -544,15 +544,15 @@ void config_init(const string& st_localeServiceName)
}
}
// 로케일 정보를 COMMON SQL에 세팅해준다.
// 참고로 g_stLocale 정보는 LocaleService_Init() 내부에서 세팅된다.
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COMMON SQL<51><4C> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>.
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g_stLocale <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LocaleService_Init() <20><><EFBFBD>ο<EFBFBD><CEBF><EFBFBD> <20><><EFBFBD>õȴ<C3B5>.
SPDLOG_INFO("Setting DB to locale {}", g_stLocale.c_str());
AccountDB::instance().SetLocale(g_stLocale);
AccountDB::instance().ConnectAsync(db_host[1], mysql_db_port[1], db_user[1], db_pwd[1], db_db[1], g_stLocale.c_str());
// Player DB 접속
// Player DB <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DBManager::instance().Connect(db_host[0], mysql_db_port[0], db_user[0], db_pwd[0], db_db[0]);
if (!DBManager::instance().IsConnected())
@ -563,9 +563,9 @@ void config_init(const string& st_localeServiceName)
SPDLOG_INFO("PlayerSQL connected");
if (false == g_bAuthServer) // 인증 서버가 아닐 경우
if (false == g_bAuthServer) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> <20><><EFBFBD>
{
// Log DB 접속
// Log DB <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LogManager::instance().Connect(log_host, log_port, log_user, log_pwd, log_db);
if (!LogManager::instance().IsConnected())
@ -580,8 +580,8 @@ void config_init(const string& st_localeServiceName)
}
// SKILL_POWER_BY_LEVEL
// 스트링 비교의 문제로 인해서 AccountDB::instance().SetLocale(g_stLocale) 후부터 한다.
// 물론 국내는 별로 문제가 안된다(해외가 문제)
// <EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> AccountDB::instance().SetLocale(g_stLocale) <20>ĺ<EFBFBD><C4BA><EFBFBD> <20>Ѵ<EFBFBD>.
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȵȴ<C8B5>(<28>ؿܰ<D8BF> <20><><EFBFBD><EFBFBD>)
{
char szQuery[256];
snprintf(szQuery, sizeof(szQuery), "SELECT mValue FROM locale WHERE mKey='SKILL_POWER_BY_LEVEL'");
@ -621,13 +621,13 @@ void config_init(const string& st_localeServiceName)
}
}
// 종족별 스킬 세팅
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ų <20><><EFBFBD><EFBFBD>
for (int job = 0; job < JOB_MAX_NUM * 2; ++job)
{
snprintf(szQuery, sizeof(szQuery), "SELECT mValue from locale where mKey='SKILL_POWER_BY_LEVEL_TYPE%d' ORDER BY CAST(mValue AS unsigned)", job);
std::unique_ptr<SQLMsg> pMsg(AccountDB::instance().DirectQuery(szQuery));
// 세팅이 안되어있으면 기본테이블을 사용한다.
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȵǾ<C8B5><C7BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E2BABB><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20><><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
if (pMsg->Get()->uiNumRows == 0)
{
CTableBySkill::instance().SetSkillPowerByLevelFromType(job, aiBaseSkillPowerByLevelTable);
@ -1002,7 +1002,7 @@ void config_init(const string& st_localeServiceName)
TOKEN("spam_block_reload_cycle")
{
str_to_number(g_uiSpamReloadCycle, value_string);
g_uiSpamReloadCycle = std::max<int>(60, g_uiSpamReloadCycle); // 최소 1분
g_uiSpamReloadCycle = std::max<int>(60, g_uiSpamReloadCycle); // <EFBFBD>ּ<EFBFBD> 1<><31>
}
TOKEN("check_multihack")
@ -1212,7 +1212,7 @@ void CheckClientVersion()
//if (0 != g_stClientVersion.compare(d->GetClientVersion()) )
if (version > date)
{
d->GetCharacter()->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("클라이언트 버전이 틀려 로그아웃 됩니다. 정상적으로 패치 후 접속하세요."));
d->GetCharacter()->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xC5\xAC\xB6\xF3\xC0\xCC\xBE\xF0\xC6\xAE \xB9\xF6\xC0\xFC\xC0\xCC \xC6\xB2\xB7\xC1 \xB7\xCE\xB1\xD7\xBE\xC6\xBF\xF4 \xB5\xCB\xB4\xCF\xB4\xD9. \xC1\xA4\xBB\xF3\xC0\xFB\xC0\xB8\xB7\xCE \xC6\xD0\xC4\xA1 \xC8\xC4 \xC1\xA2\xBC\xD3\xC7\xCF\xBC\xBC\xBF\xE4."));
d->DelayedDisconnect(10);
}
}

View File

@ -1076,19 +1076,19 @@ const SStoneDropInfo aStoneDrop[STONE_INFO_MAX_NUM] =
const char * c_apszEmpireNames[EMPIRE_MAX_NUM] =
{
"전제국",
"신수국",
"천조국",
"진노국"
"\xC0\xFC\xC1\xA6\xB1\xB9",
"\xBD\xC5\xBC\xF6\xB1\xB9",
"\xC3\xB5\xC1\xB6\xB1\xB9",
"\xC1\xF8\xB3\xEB\xB1\xB9"
};
const char * c_apszPrivNames[MAX_PRIV_NUM] =
{
"",
"아이템이 나올 확률",
"돈이 나올 확률",
"돈 대박이 나올 확률",
"경험치 배율",
"\xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xB3\xAA\xBF\xC3 \xC8\xAE\xB7\xFC",
"\xB5\xB7\xC0\xCC \xB3\xAA\xBF\xC3 \xC8\xAE\xB7\xFC",
"\xB5\xB7 \xB4\xEB\xB9\xDA\xC0\xCC \xB3\xAA\xBF\xC3 \xC8\xAE\xB7\xFC",
"\xB0\xE6\xC7\xE8\xC4\xA1 \xB9\xE8\xC0\xB2",
};
const int aiPolymorphPowerByLevel[SKILL_MAX_LEVEL + 1] =

View File

@ -308,12 +308,12 @@ void Cube_open (LPCHARACTER ch)
if (ch->IsCubeOpen())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 제조창이 열려있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC\xB9\xCC \xC1\xA6\xC1\xB6\xC3\xA2\xC0\xCC \xBF\xAD\xB7\xC1\xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if ( ch->GetExchange() || ch->GetMyShop() || ch->GetShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen() )
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 거래중(창고,교환,상점)에는 사용할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xB0\xC5\xB7\xA1\xC1\xDF(\xC3\xA2\xB0\xED,\xB1\xB3\xC8\xAF,\xBB\xF3\xC1\xA1)\xBF\xA1\xB4\xC2 \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -517,7 +517,7 @@ bool Cube_make (LPCHARACTER ch)
if (!(ch)->IsCubeOpen())
{
(ch)->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("제조창이 열려있지 않습니다"));
(ch)->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xA6\xC1\xB6\xC3\xA2\xC0\xCC \xBF\xAD\xB7\xC1\xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9"));
return false;
}
@ -532,13 +532,13 @@ bool Cube_make (LPCHARACTER ch)
if (NULL == cube_proto)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("제조 재료가 부족합니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xA6\xC1\xB6 \xC0\xE7\xB7\xE1\xB0\xA1 \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9"));
return false;
}
if (ch->GetGold() < cube_proto->gold)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("돈이 부족하거나 아이템이 제자리에 없습니다.")); // 이 텍스트는 이미 널리 쓰이는거라 추가번역 필요 없음
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xCF\xB0\xC5\xB3\xAA \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xC1\xA6\xC0\xDA\xB8\xAE\xBF\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9.")); // 이 텍스트는 이미 널리 쓰이는거라 추가번역 필요 없음
return false;
}
@ -565,7 +565,7 @@ bool Cube_make (LPCHARACTER ch)
else
{
// ½ÇÆÐ
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("제조에 실패하였습니다.")); // 2012.11.12 새로 추가된 메세지 (locale_string.txt 에 추가해야 함)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC1\xA6\xC1\xB6\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9.")); // 2012.11.12 새로 추가된 메세지 (locale_string.txt 에 추가해야 함)
ch->ChatPacket(CHAT_TYPE_COMMAND, "cube fail");
LogManager::instance().CubeLog(ch->GetPlayerID(), ch->GetX(), ch->GetY(),
reward_value->vnum, 0, 0, 0);

View File

@ -992,7 +992,7 @@ void DBManager::AnalyzeReturnQuery(SQLMsg * pMsg)
if (pkItem)
{
SPDLOG_DEBUG("GIVE LOTTO SUCCESS TO {} (pid {})", ch->GetName(), qi->dwIdent);
//ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템 획득: %s"), pkItem->GetName());
//ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xC6\xC0\xCC\xC5\xDB \xC8\xB9\xB5\xE6: %s"), pkItem->GetName());
pkItem->SetSocket(0, pMsg->Get()->uiInsertID);
pkItem->SetSocket(1, pdw[2]);
@ -1179,7 +1179,7 @@ void VCardUse(LPCHARACTER CardOwner, LPCHARACTER CardTaker, LPITEM item)
db_clientdesc->DBPacket(HEADER_GD_VCARD, 0, &p, sizeof(TPacketGDVCard));
CardTaker->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d분의 결제시간이 추가 되었습니다. (결제번호 %d)"), item->GetSocket(1) / 60, item->GetSocket(0));
CardTaker->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d\xBA\xD0\xC0\xC7 \xB0\xE1\xC1\xA6\xBD\xC3\xB0\xA3\xC0\xCC \xC3\xDF\xB0\xA1 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9. (\xB0\xE1\xC1\xA6\xB9\xF8\xC8\xA3 %d)"), item->GetSocket(1) / 60, item->GetSocket(0));
LogManager::instance().VCardLog(p.dwID, CardTaker->GetX(), CardTaker->GetY(), g_stHostname.c_str(),
CardOwner->GetName(), CardOwner->GetDesc()->GetHostName(),

View File

@ -552,7 +552,7 @@ void DESC::DisconnectOfSameLogin()
if (m_pkDisconnectEvent)
return;
GetCharacter()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 컴퓨터에서 로그인 하여 접속을 종료 합니다."));
GetCharacter()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xC4\xC4\xC7\xBB\xC5\xCD\xBF\xA1\xBC\xAD \xB7\xCE\xB1\xD7\xC0\xCE \xC7\xCF\xBF\xA9 \xC1\xA2\xBC\xD3\xC0\xBB \xC1\xBE\xB7\xE1 \xC7\xD5\xB4\xCF\xB4\xD9."));
DelayedDisconnect(5);
}
else

View File

@ -56,7 +56,7 @@ void ConvertEmpireText(DWORD dwEmpireID, char* szText, size_t len, int iPct)
{
if (g_iUseLocale)
{
static char s_cChinaTable[][3] = {"¡ò","££","£¤","¡ù","¡ð" };
static char s_cChinaTable[][3] = {"\xA1\xF2","\xA3\xA3","\xA3\xA4","\xA1\xF9","\xA1\xF0" };
int n = Random::get(0, 4);
pbText[0] = s_cChinaTable[n][0];
pbText[1] = s_cChinaTable[n][1];

View File

@ -53,7 +53,7 @@ bool CHARACTER::ExchangeStart(LPCHARACTER victim)
if (IsObserverMode())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("관전 상태에서는 교환을 할 수 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xFC\xC0\xFC \xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD\xB4\xC2 \xB1\xB3\xC8\xAF\xC0\xBB \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
@ -63,13 +63,13 @@ bool CHARACTER::ExchangeStart(LPCHARACTER victim)
//PREVENT_TRADE_WINDOW
if ( IsOpenSafebox() || GetShopOwner() || GetMyShop() || IsCubeOpen())
{
ChatPacket( CHAT_TYPE_INFO, LC_TEXT("다른 거래창이 열려있을경우 거래를 할수 없습니다." ) );
ChatPacket( CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xB0\xC5\xB7\xA1\xC3\xA2\xC0\xCC \xBF\xAD\xB7\xC1\xC0\xD6\xC0\xBB\xB0\xE6\xBF\xEC \xB0\xC5\xB7\xA1\xB8\xA6 \xC7\xD2\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9." ) );
return false;
}
if ( victim->IsOpenSafebox() || victim->GetShopOwner() || victim->GetMyShop() || victim->IsCubeOpen() )
{
ChatPacket( CHAT_TYPE_INFO, LC_TEXT("상대방이 다른 거래중이라 거래를 할수 없습니다." ) );
ChatPacket( CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xB4\xD9\xB8\xA5 \xB0\xC5\xB7\xA1\xC1\xDF\xC0\xCC\xB6\xF3 \xB0\xC5\xB7\xA1\xB8\xA6 \xC7\xD2\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9." ) );
return false;
}
//END_PREVENT_TRADE_WINDOW
@ -90,7 +90,7 @@ bool CHARACTER::ExchangeStart(LPCHARACTER victim)
if (victim->IsBlockMode(BLOCK_EXCHANGE))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방이 교환 거부 상태입니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xB1\xB3\xC8\xAF \xB0\xC5\xBA\xCE \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9."));
return false;
}
@ -154,7 +154,7 @@ bool CExchange::AddItem(TItemPos item_pos, BYTE display_pos)
if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_GIVE))
{
m_pOwner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템을 건네줄 수 없습니다."));
m_pOwner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xC6\xC0\xCC\xC5\xDB\xC0\xBB \xB0\xC7\xB3\xD7\xC1\xD9 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
@ -518,31 +518,31 @@ bool CExchange::Accept(bool bAccept)
// 를 리턴한다.
if (!Check(&iItemCount))
{
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("돈이 부족하거나 아이템이 제자리에 없습니다."));
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방의 돈이 부족하거나 아이템이 제자리에 없습니다."));
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xCF\xB0\xC5\xB3\xAA \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xC1\xA6\xC0\xDA\xB8\xAE\xBF\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xC7 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xCF\xB0\xC5\xB3\xAA \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xC1\xA6\xC0\xDA\xB8\xAE\xBF\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
goto EXCHANGE_END;
}
// 리턴 받은 아이템 개수로 상대방의 소지품에 남은 자리가 있나 확인한다.
if (!CheckSpace())
{
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방의 소지품에 빈 공간이 없습니다."));
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("소지품에 빈 공간이 없습니다."));
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xC7 \xBC\xD2\xC1\xF6\xC7\xB0\xBF\xA1 \xBA\xF3 \xB0\xF8\xB0\xA3\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xD2\xC1\xF6\xC7\xB0\xBF\xA1 \xBA\xF3 \xB0\xF8\xB0\xA3\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
goto EXCHANGE_END;
}
// 상대방도 마찬가지로..
if (!GetCompany()->Check(&iItemCount))
{
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("돈이 부족하거나 아이템이 제자리에 없습니다."));
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방의 돈이 부족하거나 아이템이 제자리에 없습니다."));
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xCF\xB0\xC5\xB3\xAA \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xC1\xA6\xC0\xDA\xB8\xAE\xBF\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xC7 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xCF\xB0\xC5\xB3\xAA \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xC1\xA6\xC0\xDA\xB8\xAE\xBF\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
goto EXCHANGE_END;
}
if (!GetCompany()->CheckSpace())
{
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방의 소지품에 빈 공간이 없습니다."));
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("소지품에 빈 공간이 없습니다."));
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xC7 \xBC\xD2\xC1\xF6\xC7\xB0\xBF\xA1 \xBA\xF3 \xB0\xF8\xB0\xA3\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xD2\xC1\xF6\xC7\xB0\xBF\xA1 \xBA\xF3 \xB0\xF8\xB0\xA3\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
goto EXCHANGE_END;
}
@ -565,8 +565,8 @@ bool CExchange::Accept(bool bAccept)
victim->Save();
// INTERNATIONAL_VERSION
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님과의 교환이 성사 되었습니다."), victim->GetName());
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님과의 교환이 성사 되었습니다."), GetOwner()->GetName());
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xB0\xFA\xC0\xC7 \xB1\xB3\xC8\xAF\xC0\xCC \xBC\xBA\xBB\xE7 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."), victim->GetName());
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xB0\xFA\xC0\xC7 \xB1\xB3\xC8\xAF\xC0\xCC \xBC\xBA\xBB\xE7 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."), GetOwner()->GetName());
// END_OF_INTERNATIONAL_VERSION
}
}

View File

@ -107,79 +107,79 @@ namespace fishing
SFishInfo fish_info[MAX_FISH] = { { "\0", }, };
/*
{
{ "", 00000, 00000, 00000, { 750, 1750, 2750 }, 10, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, { 0, },
{ "\xB2\xCE", 00000, 00000, 00000, { 750, 1750, 2750 }, 10, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, { 0, },
{0, } },
{ "금반지", 50002, 00000, 00000, { 50, 50, 0 }, 200, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, { 0, },
{ "\xB1\xDD\xB9\xDD\xC1\xF6", 50002, 00000, 00000, { 50, 50, 0 }, 200, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, { 0, },
{0, } },
{ "피라미", 27802, 00000, 00000, { 2100, 1500, 50 }, 10, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_EASY, {500, 550, 600},
{ "\xC7\xC7\xB6\xF3\xB9\xCC", 27802, 00000, 00000, { 2100, 1500, 50 }, 10, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_EASY, {500, 550, 600},
{0, } },
{ "붕어", 27803, 27833, 27863, { 2100, 1500, 100 }, 13, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_EASY, {1000,2500,2800},
{ "\xBA\xD8\xBE\xEE", 27803, 27833, 27863, { 2100, 1500, 100 }, 13, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_EASY, {1000,2500,2800},
{USED_NONE, USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "쏘가리", 27804, 27834, 27864, { 1100, 1300, 150 }, 16, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {2000,3500,3800},
{ "\xBD\xEE\xB0\xA1\xB8\xAE", 27804, 27834, 27864, { 1100, 1300, 150 }, 16, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {2000,3500,3800},
{USED_NONE, USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "월척붕어", 27805, 27835, 27865, { 1100, 1100, 200 }, 20, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_SLOW, {3030,3500,4300},
{ "\xBF\xF9\xC3\xB4\xBA\xD8\xBE\xEE", 27805, 27835, 27865, { 1100, 1100, 200 }, 20, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_SLOW, {3030,3500,4300},
{USED_NONE, USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "잉어", 27806, 27836, 27866, { 1100, 500, 300 }, 26, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {4000,6000,10000},
{ "\xC0\xD7\xBE\xEE", 27806, 27836, 27866, { 1100, 500, 300 }, 26, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {4000,6000,10000},
{USED_NONE, USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "연어", 27807, 27837, 27867, { 1100, 450, 400 }, 33, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{6000,8000,10000},
{ "\xBF\xAC\xBE\xEE", 27807, 27837, 27867, { 1100, 450, 400 }, 33, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{6000,8000,10000},
{USED_NONE, USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "향어", 27808, 27838, 27868, { 200, 400, 500 }, 42, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{1500,3000,3800},
{ "\xC7\xE2\xBE\xEE", 27808, 27838, 27868, { 200, 400, 500 }, 42, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{1500,3000,3800},
{USED_NONE, USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "송어", 27809, 27839, 27869, { 200, 300, 700 }, 54, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{5000,7000,8000},
{ "\xBC\xDB\xBE\xEE", 27809, 27839, 27869, { 200, 300, 700 }, 54, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{5000,7000,8000},
{USED_NONE, USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "민물장어", 27810, 27840, 27870, { 0, 270, 1000 }, 70, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{4000,5000,6000},
{ "\xB9\xCE\xB9\xB0\xC0\xE5\xBE\xEE", 27810, 27840, 27870, { 0, 270, 1000 }, 70, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{4000,5000,6000},
{USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "무지개송어", 27811, 27841, 27871, { 0, 200, 1000 }, 91, FISHING_LIMIT_APPEAR, { 0, 0, 0}, FISHING_TIME_NORMAL,{5000,7000,8000},
{ "\xB9\xAB\xC1\xF6\xB0\xB3\xBC\xDB\xBE\xEE", 27811, 27841, 27871, { 0, 200, 1000 }, 91, FISHING_LIMIT_APPEAR, { 0, 0, 0}, FISHING_TIME_NORMAL,{5000,7000,8000},
{USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "강송어", 27812, 27842, 27872, { 0, 160, 1000 }, 118, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_QUICK,{4000,6000,7000},
{ "\xB0\xAD\xBC\xDB\xBE\xEE", 27812, 27842, 27872, { 0, 160, 1000 }, 118, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_QUICK,{4000,6000,7000},
{USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "러드", 27813, 27843, 27873, { 0, 130, 700 }, 153, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{4000,6000,10000},
{ "\xB7\xAF\xB5\xE5", 27813, 27843, 27873, { 0, 130, 700 }, 153, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{4000,6000,10000},
{USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "퍼치", 27814, 27844, 27874, { 0, 100, 400 }, 198, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{3000,4000,5000},
{ "\xC6\xDB\xC4\xA1", 27814, 27844, 27874, { 0, 100, 400 }, 198, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{3000,4000,5000},
{USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "텐치", 27815, 27845, 27875, { 0, 50, 300 }, 257, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{3500,5500,8000},
{ "\xC5\xD9\xC4\xA1", 27815, 27845, 27875, { 0, 50, 300 }, 257, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{3500,5500,8000},
{USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "메기", 27816, 27846, 27876, { 0, 30, 100 }, 334, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{3000,5000,10000},
{ "\xB8\xDE\xB1\xE2", 27816, 27846, 27876, { 0, 30, 100 }, 334, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{3000,5000,10000},
{USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "미꾸라지", 27817, 27847, 27877, { 0, 10, 64 }, 434, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_QUICK,{1800,2200,3000},
{ "\xB9\xCC\xB2\xD9\xB6\xF3\xC1\xF6", 27817, 27847, 27877, { 0, 10, 64 }, 434, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_QUICK,{1800,2200,3000},
{USED_SHELLFISH, USED_NONE, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "백련", 27818, 27848, 27878, { 0, 0, 15 }, 564, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{5000,8000,10000},
{ "\xB9\xE9\xB7\xC3", 27818, 27848, 27878, { 0, 0, 15 }, 564, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{5000,8000,10000},
{USED_SHELLFISH, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "은어", 27819, 27849, 27879, { 0, 0, 9 }, 733, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{1500,3000,3800},
{ "\xC0\xBA\xBE\xEE", 27819, 27849, 27879, { 0, 0, 9 }, 733, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{1500,3000,3800},
{USED_SHELLFISH, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "빙어", 27820, 27850, 27880, { 0, 0, 6 }, 952, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_QUICK,{1500,3000,3800},
{ "\xBA\xF9\xBE\xEE", 27820, 27850, 27880, { 0, 0, 6 }, 952, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_QUICK,{1500,3000,3800},
{USED_SHELLFISH, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "쉬리", 27821, 27851, 27881, { 0, 0, 3 }, 1237, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{1000,1500,2000},
{ "\xBD\xAC\xB8\xAE", 27821, 27851, 27881, { 0, 0, 3 }, 1237, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL,{1000,1500,2000},
{USED_SHELLFISH, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "비늘잉어", 27822, 27852, 27882, { 0, 0, 2 }, 1608, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_SLOW,{4000,6000,10000},
{ "\xBA\xF1\xB4\xC3\xC0\xD7\xBE\xEE", 27822, 27852, 27882, { 0, 0, 2 }, 1608, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_SLOW,{4000,6000,10000},
{USED_SHELLFISH, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "황금붕어", 27823, 27853, 27883, { 0, 0, 1 }, 2090, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_SLOW,{1000,3000,3500},
{ "\xC8\xB2\xB1\xDD\xBA\xD8\xBE\xEE", 27823, 27853, 27883, { 0, 0, 1 }, 2090, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_SLOW,{1000,3000,3500},
{USED_SHELLFISH, USED_NONE, USED_WATER_STONE, USED_TREASURE_MAP, USED_NONE, USED_NONE, USED_EARTHWARM, USED_NONE,USED_NONE, USED_NONE } },
{ "탈색약", 70201, 00000, 00000, { 5, 5, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{ "\xC5\xBB\xBB\xF6\xBE\xE0", 70201, 00000, 00000, { 5, 5, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{0, }},
{ "염색약(흰색)", 70202, 00000, 00000, { 15, 15, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{ "\xBF\xB0\xBB\xF6\xBE\xE0(\xC8\xF2\xBB\xF6)", 70202, 00000, 00000, { 15, 15, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{0, }},
{ "염색약(금색)", 70203, 00000, 00000, { 15, 15, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{ "\xBF\xB0\xBB\xF6\xBE\xE0(\xB1\xDD\xBB\xF6)", 70203, 00000, 00000, { 15, 15, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{0, }},
{ "염색약(빨간색)",70204, 00000, 00000, { 15, 15, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{ "\xBF\xB0\xBB\xF6\xBE\xE0(\xBB\xA1\xB0\xA3\xBB\xF6)",70204, 00000, 00000, { 15, 15, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{0, }},
{ "염색약(갈색)", 70205, 00000, 00000, { 15, 15, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{ "\xBF\xB0\xBB\xF6\xBE\xE0(\xB0\xA5\xBB\xF6)", 70205, 00000, 00000, { 15, 15, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{0, }},
{ "염색약(검은색)",70206, 00000, 00000, { 15, 15, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{ "\xBF\xB0\xBB\xF6\xBE\xE0(\xB0\xCB\xC0\xBA\xBB\xF6)",70206, 00000, 00000, { 15, 15, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{0, }},
{ "은둔자의 망토", 70048, 00000, 00000, { 8, 8, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{ "\xC0\xBA\xB5\xD0\xC0\xDA\xC0\xC7 \xB8\xC1\xC5\xE4", 70048, 00000, 00000, { 8, 8, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{0, }},
{ "행운의 반지", 70049, 00000, 00000, { 8, 8, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{ "\xC7\xE0\xBF\xEE\xC0\xC7 \xB9\xDD\xC1\xF6", 70049, 00000, 00000, { 8, 8, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{0, }},
{ "선왕의 증표", 70050, 00000, 00000, { 8, 8, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{ "\xBC\xB1\xBF\xD5\xC0\xC7 \xC1\xF5\xC7\xA5", 70050, 00000, 00000, { 8, 8, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{0, }},
{ "선왕의 장갑", 70051, 00000, 00000, { 8, 8, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{ "\xBC\xB1\xBF\xD5\xC0\xC7 \xC0\xE5\xB0\xA9", 70051, 00000, 00000, { 8, 8, 0 }, 60, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, },
{0, }},
{ "금덩어리", 80008, 00000, 00000, { 20, 20, 0 }, 250, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_SLOW, {0, },
{ "\xB1\xDD\xB5\xA2\xBE\xEE\xB8\xAE", 80008, 00000, 00000, { 20, 20, 0 }, 250, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_SLOW, {0, },
{0, } },
{ "은열쇠", 50009, 00000, 00000, {300, 300, 0, }, 70, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, }, {0, } },
{ "\xC0\xBA\xBF\xAD\xBC\xE8", 50009, 00000, 00000, {300, 300, 0, }, 70, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, }, {0, } },
{ "금열쇠", 50008, 00000, 00000, {110, 110, 0, }, 100, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, }, {0, } },
{ "\xB1\xDD\xBF\xAD\xBC\xE8", 50008, 00000, 00000, {110, 110, 0, }, 100, FISHING_LIMIT_NONE, { 0, 0, 0}, FISHING_TIME_NORMAL, {0, }, {0, } },
};
*/
void Initialize()
@ -441,11 +441,11 @@ void FishingPractice(LPCHARACTER ch)
if ( rod->GetRefinedVnum()>0 && rod->GetSocket(0) < rod->GetValue(2) && Random::get(1,rod->GetValue(1))==1 )
{
rod->SetSocket(0, rod->GetSocket(0) + 1);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("낚시대의 수련도가 증가하였습니다! (%d/%d)"),rod->GetSocket(0), rod->GetValue(2));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xAC\xBD\xC3\xB4\xEB\xC0\xC7 \xBC\xF6\xB7\xC3\xB5\xB5\xB0\xA1 \xC1\xF5\xB0\xA1\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9! (%d/%d)"),rod->GetSocket(0), rod->GetValue(2));
if (rod->GetSocket(0) == rod->GetValue(2))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("낚시대가 최대 수련도에 도달하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("어부를 통해 다음 레벨의 낚시대로 업그레이드 할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xAC\xBD\xC3\xB4\xEB\xB0\xA1 \xC3\xD6\xB4\xEB \xBC\xF6\xB7\xC3\xB5\xB5\xBF\xA1 \xB5\xB5\xB4\xDE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xEE\xBA\xCE\xB8\xA6 \xC5\xEB\xC7\xD8 \xB4\xD9\xC0\xBD \xB7\xB9\xBA\xA7\xC0\xC7 \xB3\xAC\xBD\xC3\xB4\xEB\xB7\xCE \xBE\xF7\xB1\xD7\xB7\xB9\xC0\xCC\xB5\xE5 \xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
}
@ -614,7 +614,7 @@ void Take(fishing_event_info* info, LPCHARACTER ch)
case -2: // 잡히지 않은 경우
case -3: // 난이도 때문에 실패
case -1: // 시간 확률 때문에 실패
//ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("고기가 미끼만 빼먹고 잽싸게 도망칩니다."));
//ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xED\xB1\xE2\xB0\xA1 \xB9\xCC\xB3\xA2\xB8\xB8 \xBB\xA9\xB8\xD4\xB0\xED \xC0\xEC\xBD\xCE\xB0\xD4 \xB5\xB5\xB8\xC1\xC4\xA8\xB4\xCF\xB4\xD9."));
{
int map_idx = ch->GetMapIndex();
int prob_idx = GetProbIndexByMapIndex(map_idx);
@ -630,7 +630,7 @@ void Take(fishing_event_info* info, LPCHARACTER ch)
break;
case 0:
//ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("고기가 잡혔습니다! (%s)"), fish_info[info->fish_id].name);
//ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xED\xB1\xE2\xB0\xA1 \xC0\xE2\xC7\xFB\xBD\xC0\xB4\xCF\xB4\xD9! (%s)"), fish_info[info->fish_id].name);
if (item_vnum)
{
FishingSuccess(ch);
@ -647,7 +647,7 @@ void Take(fishing_event_info* info, LPCHARACTER ch)
item->SetSocket(0,GetFishLength(info->fish_id));
if (test_server)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이번에 잡은 물고기의 길이는 %.2fcm"), item->GetSocket(0)/100.f);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC\xB9\xF8\xBF\xA1 \xC0\xE2\xC0\xBA \xB9\xB0\xB0\xED\xB1\xE2\xC0\xC7 \xB1\xE6\xC0\xCC\xB4\xC2 %.2fcm"), item->GetSocket(0)/100.f);
}
if (quest::CQuestManager::instance().GetEventFlag("fishevent") > 0 && (info->fish_id == 5 || info->fish_id == 6))
@ -660,11 +660,11 @@ void Take(fishing_event_info* info, LPCHARACTER ch)
if (info->fish_id == 5)
{
strlcpy(p.szBoard, LC_TEXT("낚시이벤트월척붕어"), sizeof(p.szBoard));
strlcpy(p.szBoard, LC_TEXT("\xB3\xAC\xBD\xC3\xC0\xCC\xBA\xA5\xC6\xAE\xBF\xF9\xC3\xB4\xBA\xD8\xBE\xEE"), sizeof(p.szBoard));
}
else if (info->fish_id == 6)
{
strlcpy(p.szBoard, LC_TEXT("낚시이벤트잉어"), sizeof(p.szBoard));
strlcpy(p.szBoard, LC_TEXT("\xB3\xAC\xBD\xC3\xC0\xCC\xBA\xA5\xC6\xAE\xC0\xD7\xBE\xEE"), sizeof(p.szBoard));
}
db_clientdesc->DBPacket(HEADER_GD_HIGHSCORE_REGISTER, 0, &p, sizeof(TPacketGDHighscore));
@ -711,7 +711,7 @@ void Take(fishing_event_info* info, LPCHARACTER ch)
info->fish_id,
GetFishingLevel(ch),
7000);
//ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("고기가 미끼만 빼먹고 잽싸게 도망칩니다."));
//ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xED\xB1\xE2\xB0\xA1 \xB9\xCC\xB3\xA2\xB8\xB8 \xBB\xA9\xB8\xD4\xB0\xED \xC0\xEC\xBD\xCE\xB0\xD4 \xB5\xB5\xB8\xC1\xC4\xA8\xB4\xCF\xB4\xD9."));
FishingFail(ch);
}
else
@ -749,9 +749,9 @@ void Simulation(int level, int count, int prob_idx, LPCHARACTER ch)
}
for (std::map<std::string,int>::iterator it = fished.begin(); it != fished.end(); ++it)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s : %d 마리"), it->first.c_str(), it->second);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s : %d \xB8\xB6\xB8\xAE"), it->first.c_str(), it->second);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d 종류 %d 마리 낚음"), fished.size(), total_count);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d \xC1\xBE\xB7\xF9 %d \xB8\xB6\xB8\xAE \xB3\xAC\xC0\xBD"), fished.size(), total_count);
}
void UseFish(LPCHARACTER ch, LPITEM item)
@ -788,7 +788,7 @@ void UseFish(LPCHARACTER ch, LPITEM item)
case USED_TREASURE_MAP: // 3
case USED_NONE: // 0
case USED_WATER_STONE: // 2
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("고기가 흔적도 없이 사라집니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xED\xB1\xE2\xB0\xA1 \xC8\xE7\xC0\xFB\xB5\xB5 \xBE\xF8\xC0\xCC \xBB\xE7\xB6\xF3\xC1\xFD\xB4\xCF\xB4\xD9."));
break;
case USED_SHELLFISH: // 1
@ -797,12 +797,12 @@ void UseFish(LPCHARACTER ch, LPITEM item)
if ( Random::get(0, 2) != 2 ) return;
}
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("배 속에서 조개가 나왔습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB9\xE8 \xBC\xD3\xBF\xA1\xBC\xAD \xC1\xB6\xB0\xB3\xB0\xA1 \xB3\xAA\xBF\xD4\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->AutoGiveItem(SHELLFISH_VNUM);
break;
case USED_EARTHWARM: // 4
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("배 속에서 지렁이가 나왔습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB9\xE8 \xBC\xD3\xBF\xA1\xBC\xAD \xC1\xF6\xB7\xB7\xC0\xCC\xB0\xA1 \xB3\xAA\xBF\xD4\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->AutoGiveItem(EARTHWORM_VNUM);
break;
@ -833,7 +833,7 @@ void Grill(LPCHARACTER ch, LPITEM item)
int count = item->GetCount();
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s를 구웠습니다."), item->GetName());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s\xB8\xA6 \xB1\xB8\xBF\xFC\xBD\xC0\xB4\xCF\xB4\xD9."), item->GetName());
item->SetCount(0);
ch->AutoGiveItem(fish_info[idx].grill_vnum, count);
}

View File

@ -63,12 +63,12 @@ CGuild::CGuild(TGuildCreateParameter & cp)
strlcpy(m_data.name, cp.name, sizeof(m_data.name));
m_data.master_pid = cp.master->GetPlayerID();
strlcpy(m_data.grade_array[0].grade_name, LC_TEXT("길드장"), sizeof(m_data.grade_array[0].grade_name));
strlcpy(m_data.grade_array[0].grade_name, LC_TEXT("\xB1\xE6\xB5\xE5\xC0\xE5"), sizeof(m_data.grade_array[0].grade_name));
m_data.grade_array[0].auth_flag = GUILD_AUTH_ADD_MEMBER | GUILD_AUTH_REMOVE_MEMBER | GUILD_AUTH_NOTICE | GUILD_AUTH_USE_SKILL;
for (int i = 1; i < GUILD_GRADE_COUNT; ++i)
{
strlcpy(m_data.grade_array[i].grade_name, LC_TEXT("길드원"), sizeof(m_data.grade_array[i].grade_name));
strlcpy(m_data.grade_array[i].grade_name, LC_TEXT("\xB1\xE6\xB5\xE5\xBF\xF8"), sizeof(m_data.grade_array[i].grade_name));
m_data.grade_array[i].auth_flag = 0;
}
@ -920,7 +920,7 @@ bool CGuild::OfferExp(LPCHARACTER ch, int amount)
if (ch->GetExp() < (DWORD) amount)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 제공하고자 하는 경험치가 남은 경험치보다 많습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC1\xA6\xB0\xF8\xC7\xCF\xB0\xED\xC0\xDA \xC7\xCF\xB4\xC2 \xB0\xE6\xC7\xE8\xC4\xA1\xB0\xA1 \xB3\xB2\xC0\xBA \xB0\xE6\xC7\xE8\xC4\xA1\xBA\xB8\xB4\xD9 \xB8\xB9\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
@ -1031,7 +1031,7 @@ void CGuild::DeleteComment(LPCHARACTER ch, DWORD comment_id)
pmsg = DBManager::instance().DirectQuery("DELETE FROM guild_comment%s WHERE id = %u AND guild_id = %u AND name = '%s'",get_table_postfix(), comment_id, m_data.guild_id, ch->GetName());
if (pmsg->Get()->uiAffectedRows == 0 || pmsg->Get()->uiAffectedRows == (uint32_t)-1)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 삭제할 수 없는 글입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xE8\xC1\xA6\xC7\xD2 \xBC\xF6 \xBE\xF8\xB4\xC2 \xB1\xDB\xC0\xD4\xB4\xCF\xB4\xD9."));
else
RefreshCommentForce(ch->GetPlayerID());
@ -1282,7 +1282,7 @@ void CGuild::UseSkill(DWORD dwVnum, LPCHARACTER ch, DWORD pid)
if (GetSP() < iNeededSP)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 용신력이 부족합니다. (%d, %d)"), GetSP(), iNeededSP);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBF\xEB\xBD\xC5\xB7\xC2\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. (%d, %d)"), GetSP(), iNeededSP);
return;
}
@ -1291,7 +1291,7 @@ void CGuild::UseSkill(DWORD dwVnum, LPCHARACTER ch, DWORD pid)
if (!abSkillUsable[dwRealVnum])
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 쿨타임이 끝나지 않아 길드 스킬을 사용할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC4\xF0\xC5\xB8\xC0\xD3\xC0\xCC \xB3\xA1\xB3\xAA\xC1\xF6 \xBE\xCA\xBE\xC6 \xB1\xE6\xB5\xE5 \xBD\xBA\xC5\xB3\xC0\xBB \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1310,7 +1310,7 @@ void CGuild::UseSkill(DWORD dwVnum, LPCHARACTER ch, DWORD pid)
//GuildPointChange(POINT_SP, -iNeededSP);
if (test_server)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> %d 스킬을 사용함 (%d, %d) to %u"), dwVnum, GetSP(), iNeededSP, pid);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> %d \xBD\xBA\xC5\xB3\xC0\xBB \xBB\xE7\xBF\xEB\xC7\xD4 (%d, %d) to %u"), dwVnum, GetSP(), iNeededSP, pid);
switch (dwVnum)
{
@ -1331,7 +1331,7 @@ void CGuild::UseSkill(DWORD dwVnum, LPCHARACTER ch, DWORD pid)
if (pcci->bChannel != g_bChannel)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대가 %d 채널에 있습니다. (현재 채널 %d)"), pcci->bChannel, g_bChannel);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB0\xA1 %d \xC3\xA4\xB3\xCE\xBF\xA1 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9. (\xC7\xF6\xC0\xE7 \xC3\xA4\xB3\xCE %d)"), pcci->bChannel, g_bChannel);
}
else
{
@ -1344,7 +1344,7 @@ void CGuild::UseSkill(DWORD dwVnum, LPCHARACTER ch, DWORD pid)
}
}
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대가 온라인 상태가 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB0\xA1 \xBF\xC2\xB6\xF3\xC0\xCE \xBB\xF3\xC5\xC2\xB0\xA1 \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
}
break;
@ -1358,13 +1358,13 @@ void CGuild::UseSkill(DWORD dwVnum, LPCHARACTER ch, DWORD pid)
{
/*if (ch->GetPlayerID() != GetMasterPID())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드장만 길드 스킬을 사용할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xE5\xB8\xB8 \xB1\xE6\xB5\xE5 \xBD\xBA\xC5\xB3\xC0\xBB \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}*/
if (!UnderAnyWar())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드 스킬은 길드전 중에만 사용할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5 \xBD\xBA\xC5\xB3\xC0\xBA \xB1\xE6\xB5\xE5\xC0\xFC \xC1\xDF\xBF\xA1\xB8\xB8 \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1731,7 +1731,7 @@ bool CGuild::ChargeSP(LPCHARACTER ch, int iSP)
SendDBSkillUpdate(iSP);
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> %u의 용신력을 회복하였습니다."), iSP);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> %u\xC0\xC7 \xBF\xEB\xBD\xC5\xB7\xC2\xC0\xBB \xC8\xB8\xBA\xB9\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), iSP);
}
return true;
}
@ -1805,7 +1805,7 @@ void CGuild::RequestDepositMoney(LPCHARACTER ch, int iGold)
{
if (false==ch->CanDeposit())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 잠시후에 이용해주십시오"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xE1\xBD\xC3\xC8\xC4\xBF\xA1 \xC0\xCC\xBF\xEB\xC7\xD8\xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0"));
return;
}
@ -1832,19 +1832,19 @@ void CGuild::RequestWithdrawMoney(LPCHARACTER ch, int iGold)
{
if (false==ch->CanDeposit())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 잠시후에 이용해주십시오"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xE1\xBD\xC3\xC8\xC4\xBF\xA1 \xC0\xCC\xBF\xEB\xC7\xD8\xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0"));
return;
}
if (ch->GetPlayerID() != GetMasterPID())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드 금고에선 길드장만 출금할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5 \xB1\xDD\xB0\xED\xBF\xA1\xBC\xB1 \xB1\xE6\xB5\xE5\xC0\xE5\xB8\xB8 \xC3\xE2\xB1\xDD\xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (m_data.gold < iGold)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 가지고 있는 돈이 부족합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB0\xA1\xC1\xF6\xB0\xED \xC0\xD6\xB4\xC2 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9."));
return;
}
@ -1939,7 +1939,7 @@ void CGuild::Invite( LPCHARACTER pchInviter, LPCHARACTER pchInvitee )
{
if (quest::CQuestManager::instance().GetPCForce(pchInviter->GetPlayerID())->IsRunning() == true)
{
pchInviter->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방이 초대 신청을 받을 수 없는 상태입니다."));
pchInviter->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xC3\xCA\xB4\xEB \xBD\xC5\xC3\xBB\xC0\xBB \xB9\xDE\xC0\xBB \xBC\xF6 \xBE\xF8\xB4\xC2 \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -1949,17 +1949,17 @@ void CGuild::Invite( LPCHARACTER pchInviter, LPCHARACTER pchInvitee )
if ( pchInvitee->IsBlockMode( BLOCK_GUILD_INVITE ) )
{
pchInviter->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방이 길드 초대 거부 상태입니다.") );
pchInviter->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xB1\xE6\xB5\xE5 \xC3\xCA\xB4\xEB \xB0\xC5\xBA\xCE \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9.") );
return;
}
else if ( !HasGradeAuth( GetMember( pchInviter->GetPlayerID() )->grade, GUILD_AUTH_ADD_MEMBER ) )
{
pchInviter->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<길드> 길드원을 초대할 권한이 없습니다.") );
pchInviter->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xBF\xF8\xC0\xBB \xC3\xCA\xB4\xEB\xC7\xD2 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9.") );
return;
}
else if ( pchInvitee->GetEmpire() != pchInviter->GetEmpire() )
{
pchInviter->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<길드> 다른 제국 사람을 길드에 초대할 수 없습니다.") );
pchInviter->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB4\xD9\xB8\xA5 \xC1\xA6\xB1\xB9 \xBB\xE7\xB6\xF7\xC0\xBB \xB1\xE6\xB5\xE5\xBF\xA1 \xC3\xCA\xB4\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9.") );
return;
}
@ -1969,18 +1969,18 @@ void CGuild::Invite( LPCHARACTER pchInviter, LPCHARACTER pchInvitee )
case GERR_NONE: break;
case GERR_WITHDRAWPENALTY:
pchInviter->ChatPacket( CHAT_TYPE_INFO,
LC_TEXT("<길드> 탈퇴한 후 %d일이 지나지 않은 사람은 길드에 초대할 수 없습니다."),
LC_TEXT("<\xB1\xE6\xB5\xE5> \xC5\xBB\xC5\xF0\xC7\xD1 \xC8\xC4 %d\xC0\xCF\xC0\xCC \xC1\xF6\xB3\xAA\xC1\xF6 \xBE\xCA\xC0\xBA \xBB\xE7\xB6\xF7\xC0\xBA \xB1\xE6\xB5\xE5\xBF\xA1 \xC3\xCA\xB4\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."),
quest::CQuestManager::instance().GetEventFlag( "guild_withdraw_delay" ) );
return;
case GERR_COMMISSIONPENALTY:
pchInviter->ChatPacket( CHAT_TYPE_INFO,
LC_TEXT("<길드> 길드를 해산한 지 %d일이 지나지 않은 사람은 길드에 초대할 수 없습니다."),
LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xB8\xA6 \xC7\xD8\xBB\xEA\xC7\xD1 \xC1\xF6 %d\xC0\xCF\xC0\xCC \xC1\xF6\xB3\xAA\xC1\xF6 \xBE\xCA\xC0\xBA \xBB\xE7\xB6\xF7\xC0\xBA \xB1\xE6\xB5\xE5\xBF\xA1 \xC3\xCA\xB4\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."),
quest::CQuestManager::instance().GetEventFlag( "guild_disband_delay") );
return;
case GERR_ALREADYJOIN: pchInviter->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방이 이미 다른 길드에 속해있습니다.")); return;
case GERR_GUILDISFULL: pchInviter->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 최대 길드원 수를 초과했습니다.")); return;
case GERR_GUILD_IS_IN_WAR : pchInviter->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<길드> 현재 길드가 전쟁 중 입니다.") ); return;
case GERR_INVITE_LIMIT : pchInviter->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<길드> 현재 신규 가입 제한 상태 입니다.") ); return;
case GERR_ALREADYJOIN: pchInviter->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xC0\xCC\xB9\xCC \xB4\xD9\xB8\xA5 \xB1\xE6\xB5\xE5\xBF\xA1 \xBC\xD3\xC7\xD8\xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9.")); return;
case GERR_GUILDISFULL: pchInviter->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC3\xD6\xB4\xEB \xB1\xE6\xB5\xE5\xBF\xF8 \xBC\xF6\xB8\xA6 \xC3\xCA\xB0\xFA\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9.")); return;
case GERR_GUILD_IS_IN_WAR : pchInviter->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC7\xF6\xC0\xE7 \xB1\xE6\xB5\xE5\xB0\xA1 \xC0\xFC\xC0\xEF \xC1\xDF \xC0\xD4\xB4\xCF\xB4\xD9.") ); return;
case GERR_INVITE_LIMIT : pchInviter->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC7\xF6\xC0\xE7 \xBD\xC5\xB1\xD4 \xB0\xA1\xC0\xD4 \xC1\xA6\xC7\xD1 \xBB\xF3\xC5\xC2 \xC0\xD4\xB4\xCF\xB4\xD9.") ); return;
default: SPDLOG_ERROR("ignore guild join error({})", (int) errcode ); return;
}
@ -2034,18 +2034,18 @@ void CGuild::InviteAccept( LPCHARACTER pchInvitee )
case GERR_NONE: break;
case GERR_WITHDRAWPENALTY:
pchInvitee->ChatPacket( CHAT_TYPE_INFO,
LC_TEXT("<길드> 탈퇴한 후 %d일이 지나지 않은 사람은 길드에 초대할 수 없습니다."),
LC_TEXT("<\xB1\xE6\xB5\xE5> \xC5\xBB\xC5\xF0\xC7\xD1 \xC8\xC4 %d\xC0\xCF\xC0\xCC \xC1\xF6\xB3\xAA\xC1\xF6 \xBE\xCA\xC0\xBA \xBB\xE7\xB6\xF7\xC0\xBA \xB1\xE6\xB5\xE5\xBF\xA1 \xC3\xCA\xB4\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."),
quest::CQuestManager::instance().GetEventFlag( "guild_withdraw_delay" ) );
return;
case GERR_COMMISSIONPENALTY:
pchInvitee->ChatPacket( CHAT_TYPE_INFO,
LC_TEXT("<길드> 길드를 해산한 지 %d일이 지나지 않은 사람은 길드에 초대할 수 없습니다."),
LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xB8\xA6 \xC7\xD8\xBB\xEA\xC7\xD1 \xC1\xF6 %d\xC0\xCF\xC0\xCC \xC1\xF6\xB3\xAA\xC1\xF6 \xBE\xCA\xC0\xBA \xBB\xE7\xB6\xF7\xC0\xBA \xB1\xE6\xB5\xE5\xBF\xA1 \xC3\xCA\xB4\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."),
quest::CQuestManager::instance().GetEventFlag( "guild_disband_delay") );
return;
case GERR_ALREADYJOIN: pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방이 이미 다른 길드에 속해있습니다.")); return;
case GERR_GUILDISFULL: pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 최대 길드원 수를 초과했습니다.")); return;
case GERR_GUILD_IS_IN_WAR : pchInvitee->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<길드> 현재 길드가 전쟁 중 입니다.") ); return;
case GERR_INVITE_LIMIT : pchInvitee->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<길드> 현재 신규 가입 제한 상태 입니다.") ); return;
case GERR_ALREADYJOIN: pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xC0\xCC\xB9\xCC \xB4\xD9\xB8\xA5 \xB1\xE6\xB5\xE5\xBF\xA1 \xBC\xD3\xC7\xD8\xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9.")); return;
case GERR_GUILDISFULL: pchInvitee->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC3\xD6\xB4\xEB \xB1\xE6\xB5\xE5\xBF\xF8 \xBC\xF6\xB8\xA6 \xC3\xCA\xB0\xFA\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9.")); return;
case GERR_GUILD_IS_IN_WAR : pchInvitee->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC7\xF6\xC0\xE7 \xB1\xE6\xB5\xE5\xB0\xA1 \xC0\xFC\xC0\xEF \xC1\xDF \xC0\xD4\xB4\xCF\xB4\xD9.") ); return;
case GERR_INVITE_LIMIT : pchInvitee->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC7\xF6\xC0\xE7 \xBD\xC5\xB1\xD4 \xB0\xA1\xC0\xD4 \xC1\xA6\xC7\xD1 \xBB\xF3\xC5\xC2 \xC0\xD4\xB4\xCF\xB4\xD9.") ); return;
default: SPDLOG_ERROR("ignore guild join error({})", (int) errcode); return;
}

View File

@ -77,7 +77,7 @@ DWORD CGuildManager::CreateGuild(TGuildCreateParameter& gcp)
if (!check_name(gcp.name))
{
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드 이름이 적합하지 않습니다."));
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5 \xC0\xCC\xB8\xA7\xC0\xCC \xC0\xFB\xC7\xD5\xC7\xCF\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
@ -90,13 +90,13 @@ DWORD CGuildManager::CreateGuild(TGuildCreateParameter& gcp)
if (!(row[0] && row[0][0] == '0'))
{
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 이미 같은 이름의 길드가 있습니다."));
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xCC\xB9\xCC \xB0\xB0\xC0\xBA \xC0\xCC\xB8\xA7\xC0\xC7 \xB1\xE6\xB5\xE5\xB0\xA1 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
}
else
{
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드를 생성할 수 없습니다."));
gcp.master->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xB8\xA6 \xBB\xFD\xBC\xBA\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
@ -541,7 +541,7 @@ void CGuildManager::DeclareWar(DWORD guild_id1, DWORD guild_id2, BYTE bType)
if (false == LC_IsGermany())
{
char buf[256];
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드가 %s 길드에 선전포고를 하였습니다!"), TouchGuild(guild_id1)->GetName(), TouchGuild(guild_id2)->GetName());
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xB0\xA1 %s \xB1\xE6\xB5\xE5\xBF\xA1 \xBC\xB1\xC0\xFC\xC6\xF7\xB0\xED\xB8\xA6 \xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9!"), TouchGuild(guild_id1)->GetName(), TouchGuild(guild_id2)->GetName());
SendNotice(buf);
}
}
@ -555,7 +555,7 @@ void CGuildManager::RefuseWar(DWORD guild_id1, DWORD guild_id2)
if (g1 && g2)
{
if (g2->GetMasterCharacter())
g2->GetMasterCharacter()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> %s 길드가 길드전을 거부하였습니다."), g1->GetName());
g2->GetMasterCharacter()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> %s \xB1\xE6\xB5\xE5\xB0\xA1 \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xBB \xB0\xC5\xBA\xCE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), g1->GetName());
}
if ( g1 != NULL )
@ -579,7 +579,7 @@ void CGuildManager::WaitStartWar(DWORD guild_id1, DWORD guild_id2)
if (g1->WaitStartWar(guild_id2) || g2->WaitStartWar(guild_id1) )
{
char buf[256];
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드와 %s 길드가 잠시 후 전쟁을 시작합니다!"), g1->GetName(), g2->GetName());
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xBF\xCD %s \xB1\xE6\xB5\xE5\xB0\xA1 \xC0\xE1\xBD\xC3 \xC8\xC4 \xC0\xFC\xC0\xEF\xC0\xBB \xBD\xC3\xC0\xDB\xC7\xD5\xB4\xCF\xB4\xD9!"), g1->GetName(), g2->GetName());
SendNotice(buf);
}
}
@ -627,7 +627,7 @@ void CGuildManager::StartWar(DWORD guild_id1, DWORD guild_id2)
g2->StartWar(guild_id1);
char buf[256];
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드와 %s 길드가 전쟁을 시작하였습니다!"), g1->GetName(), g2->GetName());
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xBF\xCD %s \xB1\xE6\xB5\xE5\xB0\xA1 \xC0\xFC\xC0\xEF\xC0\xBB \xBD\xC3\xC0\xDB\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9!"), g1->GetName(), g2->GetName());
SendNotice(buf);
if (guild_id1 > guild_id2)
@ -645,17 +645,17 @@ void SendGuildWarOverNotice(CGuild* g1, CGuild* g2, bool bDraw)
if (bDraw)
{
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드와 %s 길드 사이의 전쟁이 무승부로 끝났습니다."), g1->GetName(), g2->GetName());
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xBF\xCD %s \xB1\xE6\xB5\xE5 \xBB\xE7\xC0\xCC\xC0\xC7 \xC0\xFC\xC0\xEF\xC0\xCC \xB9\xAB\xBD\xC2\xBA\xCE\xB7\xCE \xB3\xA1\xB3\xB5\xBD\xC0\xB4\xCF\xB4\xD9."), g1->GetName(), g2->GetName());
}
else
{
if ( g1->GetWarScoreAgainstTo( g2->GetID() ) > g2->GetWarScoreAgainstTo( g1->GetID() ) )
{
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드가 %s 길드와의 전쟁에서 승리 했습니다."), g1->GetName(), g2->GetName());
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xB0\xA1 %s \xB1\xE6\xB5\xE5\xBF\xCD\xC0\xC7 \xC0\xFC\xC0\xEF\xBF\xA1\xBC\xAD \xBD\xC2\xB8\xAE \xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."), g1->GetName(), g2->GetName());
}
else
{
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드가 %s 길드와의 전쟁에서 승리 했습니다."), g2->GetName(), g1->GetName());
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xB0\xA1 %s \xB1\xE6\xB5\xE5\xBF\xCD\xC0\xC7 \xC0\xFC\xC0\xEF\xBF\xA1\xBC\xAD \xBD\xC2\xB8\xAE \xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."), g2->GetName(), g1->GetName());
}
}
@ -739,7 +739,7 @@ void CGuildManager::CancelWar(DWORD guild_id1, DWORD guild_id2)
LPCHARACTER master1 = g1->GetMasterCharacter();
if (master1)
master1->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드전이 취소 되었습니다."));
master1->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xCC \xC3\xEB\xBC\xD2 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
}
if (g2)
@ -747,13 +747,13 @@ void CGuildManager::CancelWar(DWORD guild_id1, DWORD guild_id2)
LPCHARACTER master2 = g2->GetMasterCharacter();
if (master2)
master2->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드전이 취소 되었습니다."));
master2->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xCC \xC3\xEB\xBC\xD2 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
}
if (g1 && g2)
{
char buf[256+1];
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드와 %s 길드 사이의 전쟁이 취소되었습니다."), g1->GetName(), g2->GetName());
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xBF\xCD %s \xB1\xE6\xB5\xE5 \xBB\xE7\xC0\xCC\xC0\xC7 \xC0\xFC\xC0\xEF\xC0\xCC \xC3\xEB\xBC\xD2\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."), g1->GetName(), g2->GetName());
SendNotice(buf);
}
}

View File

@ -43,7 +43,7 @@ void CGuild::GuildWarPacket(DWORD dwOppGID, BYTE bWarType, BYTE bWarState)
LPCHARACTER ch = *it;
if (bWarState == GUILD_WAR_ON_WAR)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드전중에는 사냥에 따른 이익이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xFC\xC1\xDF\xBF\xA1\xB4\xC2 \xBB\xE7\xB3\xC9\xBF\xA1 \xB5\xFB\xB8\xA5 \xC0\xCC\xC0\xCD\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
LPDESC d = ch->GetDesc();
@ -313,7 +313,7 @@ void CGuild::RequestDeclareWar(DWORD dwOppGID, BYTE type)
GetID(), dwOppGID, type, GuildWar_GetTypeMapIndex(type));
map_allow_log();
NotifyGuildMaster(LC_TEXT("전쟁 서버가 열려있지 않아 길드전을 시작할 수 없습니다."));
NotifyGuildMaster(LC_TEXT("\xC0\xFC\xC0\xEF \xBC\xAD\xB9\xF6\xB0\xA1 \xBF\xAD\xB7\xC1\xC0\xD6\xC1\xF6 \xBE\xCA\xBE\xC6 \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xBB \xBD\xC3\xC0\xDB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -353,7 +353,7 @@ void CGuild::RequestDeclareWar(DWORD dwOppGID, BYTE type)
GetID(), dwOppGID, type, GuildWar_GetTypeMapIndex(type));
map_allow_log();
NotifyGuildMaster(LC_TEXT("전쟁 서버가 열려있지 않아 길드전을 시작할 수 없습니다."));
NotifyGuildMaster(LC_TEXT("\xC0\xFC\xC0\xEF \xBC\xAD\xB9\xF6\xB0\xA1 \xBF\xAD\xB7\xC1\xC0\xD6\xC1\xF6 \xBE\xCA\xBE\xC6 \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xBB \xBD\xC3\xC0\xDB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -379,7 +379,7 @@ void CGuild::RequestDeclareWar(DWORD dwOppGID, BYTE type)
break;
case GUILD_WAR_SEND_DECLARE:
{
NotifyGuildMaster(LC_TEXT("이미 선전포고 중인 길드입니다."));
NotifyGuildMaster(LC_TEXT("\xC0\xCC\xB9\xCC \xBC\xB1\xC0\xFC\xC6\xF7\xB0\xED \xC1\xDF\xC0\xCE \xB1\xE6\xB5\xE5\xC0\xD4\xB4\xCF\xB4\xD9."));
}
break;
default:
@ -651,7 +651,7 @@ void CGuild::GuildWarEntryAccept(DWORD dwOppGID, LPCHARACTER ch)
if (gw.state != GUILD_WAR_ON_WAR)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 전쟁이 끝났습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xCC\xB9\xCC \xC0\xFC\xC0\xEF\xC0\xCC \xB3\xA1\xB3\xB5\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -727,7 +727,7 @@ void CGuild::SetLadderPoint(int point)
if (m_data.ladder_point != point)
{
char buf[256];
snprintf(buf, sizeof(buf), LC_TEXT("<길드> 래더 점수가 %d 점이 되었습니다"), point);
snprintf(buf, sizeof(buf), LC_TEXT("<\xB1\xE6\xB5\xE5> \xB7\xA1\xB4\xF5 \xC1\xA1\xBC\xF6\xB0\xA1 %d \xC1\xA1\xC0\xCC \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9"), point);
for (itertype(m_memberOnline) it = m_memberOnline.begin(); it!=m_memberOnline.end();++it)
{
LPCHARACTER ch = (*it);

View File

@ -1157,7 +1157,7 @@ void CInputDB::SafeboxLoad(LPDESC d, const char * c_pData)
//PREVENT_TRADE_WINDOW
if (ch->GetShopOwner() || ch->GetExchange() || ch->GetMyShop() || ch->IsCubeOpen() )
{
d->GetCharacter()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른거래창이 열린상태에서는 창고를 열수가 없습니다." ) );
d->GetCharacter()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5\xB0\xC5\xB7\xA1\xC3\xA2\xC0\xCC \xBF\xAD\xB8\xB0\xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD\xB4\xC2 \xC3\xA2\xB0\xED\xB8\xA6 \xBF\xAD\xBC\xF6\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9." ) );
d->GetCharacter()->CancelSafeboxLoad();
return;
}
@ -1218,11 +1218,11 @@ void CInputDB::SafeboxChangePasswordAnswer(LPDESC d, const char* c_pData)
TSafeboxChangePasswordPacketAnswer* p = (TSafeboxChangePasswordPacketAnswer*) c_pData;
if (p->flag)
{
d->GetCharacter()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 창고 비밀번호가 변경되었습니다."));
d->GetCharacter()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xC3\xA2\xB0\xED \xBA\xF1\xB9\xD0\xB9\xF8\xC8\xA3\xB0\xA1 \xBA\xAF\xB0\xE6\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
d->GetCharacter()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 기존 비밀번호가 틀렸습니다."));
d->GetCharacter()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xB1\xE2\xC1\xB8 \xBA\xF1\xB9\xD0\xB9\xF8\xC8\xA3\xB0\xA1 \xC6\xB2\xB7\xC8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
@ -1884,7 +1884,7 @@ void CInputDB::BillingExpire(const char * c_pData)
d->SetBillingExpireSecond(p->dwRemainSeconds);
if (ch)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("결재기간이 %d분 후 만료 됩니다."), (p->dwRemainSeconds / 60));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xE1\xC0\xE7\xB1\xE2\xB0\xA3\xC0\xCC %d\xBA\xD0 \xC8\xC4 \xB8\xB8\xB7\xE1 \xB5\xCB\xB4\xCF\xB4\xD9."), (p->dwRemainSeconds / 60));
}
}
}
@ -2530,7 +2530,7 @@ void CInputDB::AddMonarchMoney(LPDESC d, const char * data )
if (ch)
{
if (Random::get(1, 100) > 95)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("현재 %s 국고에는 %u 의 돈이 있습니다"), EMPIRE_NAME(Empire), CMonarch::instance().GetMoney(Empire));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC7\xF6\xC0\xE7 %s \xB1\xB9\xB0\xED\xBF\xA1\xB4\xC2 %u \xC0\xC7 \xB5\xB7\xC0\xCC \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9"), EMPIRE_NAME(Empire), CMonarch::instance().GetMoney(Empire));
}
}
@ -2550,7 +2550,7 @@ void CInputDB::DecMonarchMoney(LPDESC d, const char * data)
if (ch)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("현재 %s 국고에는 %d 의 돈이 있습니다"), EMPIRE_NAME(Empire), CMonarch::instance().GetMoney(Empire));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC7\xF6\xC0\xE7 %s \xB1\xB9\xB0\xED\xBF\xA1\xB4\xC2 %d \xC0\xC7 \xB5\xB7\xC0\xCC \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9"), EMPIRE_NAME(Empire), CMonarch::instance().GetMoney(Empire));
}
}
@ -2571,14 +2571,14 @@ void CInputDB::TakeMonarchMoney(LPDESC d, const char * data)
return;
LPCHARACTER ch = d->GetCharacter();
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족하거나 돈을 가져올수 없는 상황입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xCF\xB0\xC5\xB3\xAA \xB5\xB7\xC0\xBB \xB0\xA1\xC1\xAE\xBF\xC3\xBC\xF6 \xBE\xF8\xB4\xC2 \xBB\xF3\xC8\xB2\xC0\xD4\xB4\xCF\xB4\xD9"));
}
}
void CInputDB::ChangeMonarchLord(TPacketChangeMonarchLordACK* info)
{
char notice[256];
snprintf(notice, sizeof(notice), LC_TEXT("%s의 군주가 %s 님으로 교체되었습니다."), EMPIRE_NAME(info->bEmpire), info->szName);
snprintf(notice, sizeof(notice), LC_TEXT("%s\xC0\xC7 \xB1\xBA\xC1\xD6\xB0\xA1 %s \xB4\xD4\xC0\xB8\xB7\xCE \xB1\xB3\xC3\xBC\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."), EMPIRE_NAME(info->bEmpire), info->szName);
SendNotice(notice);
}

View File

@ -45,22 +45,22 @@ static void _send_bonus_info(LPCHARACTER ch)
if (item_drop_bonus)
{
ch->ChatPacket(CHAT_TYPE_NOTICE,
LC_TEXT("아이템 드롭률 %d%% 추가 이벤트 중입니다."), item_drop_bonus);
LC_TEXT("\xBE\xC6\xC0\xCC\xC5\xDB \xB5\xE5\xB7\xD3\xB7\xFC %d%% \xC3\xDF\xB0\xA1 \xC0\xCC\xBA\xA5\xC6\xAE \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."), item_drop_bonus);
}
if (gold_drop_bonus)
{
ch->ChatPacket(CHAT_TYPE_NOTICE,
LC_TEXT("골드 드롭률 %d%% 추가 이벤트 중입니다."), gold_drop_bonus);
LC_TEXT("\xB0\xF1\xB5\xE5 \xB5\xE5\xB7\xD3\xB7\xFC %d%% \xC3\xDF\xB0\xA1 \xC0\xCC\xBA\xA5\xC6\xAE \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."), gold_drop_bonus);
}
if (gold10_drop_bonus)
{
ch->ChatPacket(CHAT_TYPE_NOTICE,
LC_TEXT("대박골드 드롭률 %d%% 추가 이벤트 중입니다."), gold10_drop_bonus);
LC_TEXT("\xB4\xEB\xB9\xDA\xB0\xF1\xB5\xE5 \xB5\xE5\xB7\xD3\xB7\xFC %d%% \xC3\xDF\xB0\xA1 \xC0\xCC\xBA\xA5\xC6\xAE \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."), gold10_drop_bonus);
}
if (exp_bonus)
{
ch->ChatPacket(CHAT_TYPE_NOTICE,
LC_TEXT("경험치 %d%% 추가 획득 이벤트 중입니다."), exp_bonus);
LC_TEXT("\xB0\xE6\xC7\xE8\xC4\xA1 %d%% \xC3\xDF\xB0\xA1 \xC8\xB9\xB5\xE6 \xC0\xCC\xBA\xA5\xC6\xAE \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."), exp_bonus);
}
}
@ -655,7 +655,7 @@ void CInputLogin::Entergame(LPDESC d, const char * data)
//if (0 != g_stClientVersion.compare(d->GetClientVersion()))
if (version > date)
{
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("클라이언트 버전이 틀려 로그아웃 됩니다. 정상적으로 패치 후 접속하세요."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xC5\xAC\xB6\xF3\xC0\xCC\xBE\xF0\xC6\xAE \xB9\xF6\xC0\xFC\xC0\xCC \xC6\xB2\xB7\xC1 \xB7\xCE\xB1\xD7\xBE\xC6\xBF\xF4 \xB5\xCB\xB4\xCF\xB4\xD9. \xC1\xA4\xBB\xF3\xC0\xFB\xC0\xB8\xB7\xCE \xC6\xD0\xC4\xA1 \xC8\xC4 \xC1\xA2\xBC\xD3\xC7\xCF\xBC\xBC\xBF\xE4."));
d->DelayedDisconnect(10);
LogManager::instance().HackLog("VERSION_CONFLICT", ch);
@ -795,9 +795,9 @@ void CInputLogin::Entergame(LPDESC d, const char * data)
{
if (FN_is_battle_zone(ch))
{
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("이 맵에선 강제적인 대전이 있을수 도 있습니다."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("이 조항에 동의하지 않을시"));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("본인의 주성 및 부성으로 돌아가시기 바랍니다."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xC0\xCC \xB8\xCA\xBF\xA1\xBC\xB1 \xB0\xAD\xC1\xA6\xC0\xFB\xC0\xCE \xB4\xEB\xC0\xFC\xC0\xCC \xC0\xD6\xC0\xBB\xBC\xF6 \xB5\xB5 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xC0\xCC \xC1\xB6\xC7\xD7\xBF\xA1 \xB5\xBF\xC0\xC7\xC7\xCF\xC1\xF6 \xBE\xCA\xC0\xBB\xBD\xC3"));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xBA\xBB\xC0\xCE\xC0\xC7 \xC1\xD6\xBC\xBA \xB9\xD7 \xBA\xCE\xBC\xBA\xC0\xB8\xB7\xCE \xB5\xB9\xBE\xC6\xB0\xA1\xBD\xC3\xB1\xE2 \xB9\xD9\xB6\xF8\xB4\xCF\xB4\xD9."));
}
}
}

View File

@ -52,7 +52,7 @@ void SendBlockChatInfo(LPCHARACTER ch, int sec)
{
if (sec <= 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("채팅 금지 상태입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA4\xC6\xC3 \xB1\xDD\xC1\xF6 \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -65,13 +65,13 @@ void SendBlockChatInfo(LPCHARACTER ch, int sec)
char buf[128+1];
if (hour > 0 && min > 0)
snprintf(buf, sizeof(buf), LC_TEXT("%d 시간 %d 분 %d 초 동안 채팅금지 상태입니다"), hour, min, sec);
snprintf(buf, sizeof(buf), LC_TEXT("%d \xBD\xC3\xB0\xA3 %d \xBA\xD0 %d \xC3\xCA \xB5\xBF\xBE\xC8 \xC3\xA4\xC6\xC3\xB1\xDD\xC1\xF6 \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9"), hour, min, sec);
else if (hour > 0 && min == 0)
snprintf(buf, sizeof(buf), LC_TEXT("%d 시간 %d 초 동안 채팅금지 상태입니다"), hour, sec);
snprintf(buf, sizeof(buf), LC_TEXT("%d \xBD\xC3\xB0\xA3 %d \xC3\xCA \xB5\xBF\xBE\xC8 \xC3\xA4\xC6\xC3\xB1\xDD\xC1\xF6 \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9"), hour, sec);
else if (hour == 0 && min > 0)
snprintf(buf, sizeof(buf), LC_TEXT("%d 분 %d 초 동안 채팅금지 상태입니다"), min, sec);
snprintf(buf, sizeof(buf), LC_TEXT("%d \xBA\xD0 %d \xC3\xCA \xB5\xBF\xBE\xC8 \xC3\xA4\xC6\xC3\xB1\xDD\xC1\xF6 \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9"), min, sec);
else
snprintf(buf, sizeof(buf), LC_TEXT("%d 초 동안 채팅금지 상태입니다"), sec);
snprintf(buf, sizeof(buf), LC_TEXT("%d \xC3\xCA \xB5\xBF\xBE\xC8 \xC3\xA4\xC6\xC3\xB1\xDD\xC1\xF6 \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9"), sec);
ch->ChatPacket(CHAT_TYPE_INFO, buf);
}
@ -295,7 +295,7 @@ int CInputMain::Whisper(LPCHARACTER ch, const char * data, size_t uiBytes)
if (ch->FindAffect(AFFECT_BLOCK_CHAT))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("채팅 금지 상태입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA4\xC6\xC3 \xB1\xDD\xC1\xF6 \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9."));
return (iExtraLen);
}
@ -446,9 +446,9 @@ int CInputMain::Whisper(LPCHARACTER ch, const char * data, size_t uiBytes)
char buf[128];
int len;
if (3==processReturn) //교환중
len = snprintf(buf, sizeof(buf), LC_TEXT("다른 거래중(창고,교환,상점)에는 개인상점을 사용할 수 없습니다."), pTable->szLocaleName);
len = snprintf(buf, sizeof(buf), LC_TEXT("\xB4\xD9\xB8\xA5 \xB0\xC5\xB7\xA1\xC1\xDF(\xC3\xA2\xB0\xED,\xB1\xB3\xC8\xAF,\xBB\xF3\xC1\xA1)\xBF\xA1\xB4\xC2 \xB0\xB3\xC0\xCE\xBB\xF3\xC1\xA1\xC0\xBB \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."), pTable->szLocaleName);
else
len = snprintf(buf, sizeof(buf), LC_TEXT("%s이 필요합니다."), pTable->szLocaleName);
len = snprintf(buf, sizeof(buf), LC_TEXT("%s\xC0\xCC \xC7\xCA\xBF\xE4\xC7\xD5\xB4\xCF\xB4\xD9."), pTable->szLocaleName);
if (len < 0 || len >= (int) sizeof(buf))
@ -711,9 +711,9 @@ int CInputMain::Chat(LPCHARACTER ch, const char * data, size_t uiBytes)
if (NULL != pTable)
{
if (3==processReturn) //교환중
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 거래중(창고,교환,상점)에는 개인상점을 사용할 수 없습니다."), pTable->szLocaleName);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xB0\xC5\xB7\xA1\xC1\xDF(\xC3\xA2\xB0\xED,\xB1\xB3\xC8\xAF,\xBB\xF3\xC1\xA1)\xBF\xA1\xB4\xC2 \xB0\xB3\xC0\xCE\xBB\xF3\xC1\xA1\xC0\xBB \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."), pTable->szLocaleName);
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s이 필요합니다."), pTable->szLocaleName);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s\xC0\xCC \xC7\xCA\xBF\xE4\xC7\xD5\xB4\xCF\xB4\xD9."), pTable->szLocaleName);
}
@ -726,7 +726,7 @@ int CInputMain::Chat(LPCHARACTER ch, const char * data, size_t uiBytes)
if (ch->GetLevel() < SHOUT_LIMIT_LEVEL)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("외치기는 레벨 %d 이상만 사용 가능 합니다."), SHOUT_LIMIT_LEVEL);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBF\xDC\xC4\xA1\xB1\xE2\xB4\xC2 \xB7\xB9\xBA\xA7 %d \xC0\xCC\xBB\xF3\xB8\xB8 \xBB\xE7\xBF\xEB \xB0\xA1\xB4\xC9 \xC7\xD5\xB4\xCF\xB4\xD9."), SHOUT_LIMIT_LEVEL);
return (iExtraLen);
}
@ -789,7 +789,7 @@ int CInputMain::Chat(LPCHARACTER ch, const char * data, size_t uiBytes)
case CHAT_TYPE_PARTY:
{
if (!ch->GetParty())
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("파티 중이 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC6\xC4\xC6\xBC \xC1\xDF\xC0\xCC \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
else
{
TEMP_BUFFER tbuf;
@ -806,7 +806,7 @@ int CInputMain::Chat(LPCHARACTER ch, const char * data, size_t uiBytes)
case CHAT_TYPE_GUILD:
{
if (!ch->GetGuild())
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("길드에 가입하지 않았습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xE6\xB5\xE5\xBF\xA1 \xB0\xA1\xC0\xD4\xC7\xCF\xC1\xF6 \xBE\xCA\xBE\xD2\xBD\xC0\xB4\xCF\xB4\xD9."));
else
ch->GetGuild()->Chat(chatbuf);
}
@ -930,7 +930,7 @@ int CInputMain::Messenger(LPCHARACTER ch, const char* c_pData, size_t uiBytes)
if (ch_companion->IsBlockMode(BLOCK_MESSENGER_INVITE))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방이 메신져 추가 거부 상태입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xB8\xDE\xBD\xC5\xC1\xAE \xC3\xDF\xB0\xA1 \xB0\xC5\xBA\xCE \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9."));
return sizeof(TPacketCGMessengerAddByVID);
}
@ -941,7 +941,7 @@ int CInputMain::Messenger(LPCHARACTER ch, const char* c_pData, size_t uiBytes)
if (ch->GetGMLevel() == GM_PLAYER && ch_companion->GetGMLevel() != GM_PLAYER)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<메신져> 운영자는 메신져에 추가할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB8\xDE\xBD\xC5\xC1\xAE> \xBF\xEE\xBF\xB5\xC0\xDA\xB4\xC2 \xB8\xDE\xBD\xC5\xC1\xAE\xBF\xA1 \xC3\xDF\xB0\xA1\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return sizeof(TPacketCGMessengerAddByVID);
}
@ -963,14 +963,14 @@ int CInputMain::Messenger(LPCHARACTER ch, const char* c_pData, size_t uiBytes)
if (ch->GetGMLevel() == GM_PLAYER && gm_get_level(name) != GM_PLAYER)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<메신져> 운영자는 메신져에 추가할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB8\xDE\xBD\xC5\xC1\xAE> \xBF\xEE\xBF\xB5\xC0\xDA\xB4\xC2 \xB8\xDE\xBD\xC5\xC1\xAE\xBF\xA1 \xC3\xDF\xB0\xA1\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return CHARACTER_NAME_MAX_LEN;
}
LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(name);
if (!tch)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님은 접속되 있지 않습니다."), name);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xBA \xC1\xA2\xBC\xD3\xB5\xC7 \xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9."), name);
else
{
if (tch == ch) // 자신은 추가할 수 없다.
@ -978,7 +978,7 @@ int CInputMain::Messenger(LPCHARACTER ch, const char* c_pData, size_t uiBytes)
if (tch->IsBlockMode(BLOCK_MESSENGER_INVITE) == true)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방이 메신져 추가 거부 상태입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xB8\xDE\xBD\xC5\xC1\xAE \xC3\xDF\xB0\xA1 \xB0\xC5\xBA\xCE \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9."));
}
else
{
@ -1097,7 +1097,7 @@ void CInputMain::Exchange(LPCHARACTER ch, const char * data)
{
if (iPulse - to_ch->GetSafeboxLoadTime() < PASSES_PER_SEC(g_nPortalLimitTime))
{
to_ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("거래 후 %d초 이내에 창고를 열수 없습니다."), g_nPortalLimitTime);
to_ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xC5\xB7\xA1 \xC8\xC4 %d\xC3\xCA \xC0\xCC\xB3\xBB\xBF\xA1 \xC3\xA2\xB0\xED\xB8\xA6 \xBF\xAD\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."), g_nPortalLimitTime);
return;
}
@ -1111,7 +1111,7 @@ void CInputMain::Exchange(LPCHARACTER ch, const char * data)
if (iPulse - ch->GetSafeboxLoadTime() < PASSES_PER_SEC(g_nPortalLimitTime))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("거래 후 %d초 이내에 창고를 열수 없습니다."), g_nPortalLimitTime);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xC5\xB7\xA1 \xC8\xC4 %d\xC3\xCA \xC0\xCC\xB3\xBB\xBF\xA1 \xC3\xA2\xB0\xED\xB8\xA6 \xBF\xAD\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."), g_nPortalLimitTime);
return;
}
@ -1127,14 +1127,14 @@ void CInputMain::Exchange(LPCHARACTER ch, const char * data)
/*
if (to_ch->IsMonarch() || ch->IsMonarch())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주와는 거래를 할수가 없습니다"), g_nPortalLimitTime);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xBF\xCD\xB4\xC2 \xB0\xC5\xB7\xA1\xB8\xA6 \xC7\xD2\xBC\xF6\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9"), g_nPortalLimitTime);
return;
}
//END_MONARCH_LIMIT
*/
if (iPulse - ch->GetSafeboxLoadTime() < PASSES_PER_SEC(g_nPortalLimitTime))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("창고를 연후 %d초 이내에는 거래를 할수 없습니다."), g_nPortalLimitTime);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA2\xB0\xED\xB8\xA6 \xBF\xAC\xC8\xC4 %d\xC3\xCA \xC0\xCC\xB3\xBB\xBF\xA1\xB4\xC2 \xB0\xC5\xB7\xA1\xB8\xA6 \xC7\xD2\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."), g_nPortalLimitTime);
if (test_server)
ch->ChatPacket(CHAT_TYPE_INFO, "[TestOnly][Safebox]Pulse %d LoadTime %d PASS %d", iPulse, ch->GetSafeboxLoadTime(), PASSES_PER_SEC(g_nPortalLimitTime));
@ -1143,7 +1143,7 @@ void CInputMain::Exchange(LPCHARACTER ch, const char * data)
if (iPulse - to_ch->GetSafeboxLoadTime() < PASSES_PER_SEC(g_nPortalLimitTime))
{
to_ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("창고를 연후 %d초 이내에는 거래를 할수 없습니다."), g_nPortalLimitTime);
to_ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA2\xB0\xED\xB8\xA6 \xBF\xAC\xC8\xC4 %d\xC3\xCA \xC0\xCC\xB3\xBB\xBF\xA1\xB4\xC2 \xB0\xC5\xB7\xA1\xB8\xA6 \xC7\xD2\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."), g_nPortalLimitTime);
if (test_server)
@ -1153,7 +1153,7 @@ void CInputMain::Exchange(LPCHARACTER ch, const char * data)
if (ch->GetGold() >= GOLD_MAX)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("액수가 20억 냥을 초과하여 거래를 할수가 없습니다.."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xD7\xBC\xF6\xB0\xA1 20\xBE\xEF \xB3\xC9\xC0\xBB \xC3\xCA\xB0\xFA\xC7\xCF\xBF\xA9 \xB0\xC5\xB7\xA1\xB8\xA6 \xC7\xD2\xBC\xF6\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9.."));
SPDLOG_ERROR("[OVERFLOG_GOLD] START ({}) id {} name {} ", ch->GetGold(), ch->GetPlayerID(), ch->GetName());
return;
@ -1171,7 +1171,7 @@ void CInputMain::Exchange(LPCHARACTER ch, const char * data)
if (ch->GetMyShop() || ch->IsOpenSafebox() || ch->GetShopOwner() || ch->IsCubeOpen())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 거래중일경우 개인상점을 열수가 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xB0\xC5\xB7\xA1\xC1\xDF\xC0\xCF\xB0\xE6\xBF\xEC \xB0\xB3\xC0\xCE\xBB\xF3\xC1\xA1\xC0\xBB \xBF\xAD\xBC\xF6\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1203,7 +1203,7 @@ void CInputMain::Exchange(LPCHARACTER ch, const char * data)
if (GOLD_MAX <= nTotalGold)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방의 총금액이 20억 냥을 초과하여 거래를 할수가 없습니다.."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xC7 \xC3\xD1\xB1\xDD\xBE\xD7\xC0\xCC 20\xBE\xEF \xB3\xC9\xC0\xBB \xC3\xCA\xB0\xFA\xC7\xCF\xBF\xA9 \xB0\xC5\xB7\xA1\xB8\xA6 \xC7\xD2\xBC\xF6\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9.."));
SPDLOG_ERROR("[OVERFLOW_GOLD] ELK_ADD ({}) id {} name {} ",
ch->GetExchange()->GetCompany()->GetOwner()->GetGold(),
@ -2052,31 +2052,31 @@ void CInputMain::SafeboxCheckin(LPCHARACTER ch, const char * c_pData)
if (pkItem->GetCell() >= INVENTORY_MAX_NUM && IS_SET(pkItem->GetFlag(), ITEM_FLAG_IRREMOVABLE))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 창고로 옮길 수 없는 아이템 입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xC3\xA2\xB0\xED\xB7\xCE \xBF\xC5\xB1\xE6 \xBC\xF6 \xBE\xF8\xB4\xC2 \xBE\xC6\xC0\xCC\xC5\xDB \xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
if (!pkSafebox->IsEmpty(p->bSafePos, pkItem->GetSize()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 옮길 수 없는 위치입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xBF\xC5\xB1\xE6 \xBC\xF6 \xBE\xF8\xB4\xC2 \xC0\xA7\xC4\xA1\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
if (pkItem->GetVnum() == UNIQUE_ITEM_SAFEBOX_EXPAND)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 이 아이템은 넣을 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xC0\xCC \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xBA \xB3\xD6\xC0\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if( IS_SET(pkItem->GetAntiFlag(), ITEM_ANTIFLAG_SAFEBOX) )
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 이 아이템은 넣을 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xC0\xCC \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xBA \xB3\xD6\xC0\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (true == pkItem->isLocked())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 이 아이템은 넣을 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xC0\xCC \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xBA \xB3\xD6\xC0\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -2127,7 +2127,7 @@ void CInputMain::SafeboxCheckout(LPCHARACTER ch, const char * c_pData, bool bMal
if (DRAGON_SOUL_INVENTORY != p->ItemPos.window_type)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 옮길 수 없는 위치입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xBF\xC5\xB1\xE6 \xBC\xF6 \xBE\xF8\xB4\xC2 \xC0\xA7\xC4\xA1\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -2137,7 +2137,7 @@ void CInputMain::SafeboxCheckout(LPCHARACTER ch, const char * c_pData, bool bMal
int iCell = ch->GetEmptyDragonSoulInventory(pkItem);
if (iCell < 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 옮길 수 없는 위치입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xBF\xC5\xB1\xE6 \xBC\xF6 \xBE\xF8\xB4\xC2 \xC0\xA7\xC4\xA1\xC0\xD4\xB4\xCF\xB4\xD9."));
return ;
}
DestPos = TItemPos (DRAGON_SOUL_INVENTORY, iCell);
@ -2151,7 +2151,7 @@ void CInputMain::SafeboxCheckout(LPCHARACTER ch, const char * c_pData, bool bMal
{
if (DRAGON_SOUL_INVENTORY == p->ItemPos.window_type)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<창고> 옮길 수 없는 위치입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC3\xA2\xB0\xED> \xBF\xC5\xB1\xE6 \xBC\xF6 \xBE\xF8\xB4\xC2 \xC0\xA7\xC4\xA1\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -2203,7 +2203,7 @@ void CInputMain::PartyInvite(LPCHARACTER ch, const char * c_pData)
{
if (ch->GetArena())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장에서 사용하실 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xE5\xBF\xA1\xBC\xAD \xBB\xE7\xBF\xEB\xC7\xCF\xBD\xC7 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -2224,7 +2224,7 @@ void CInputMain::PartyInviteAnswer(LPCHARACTER ch, const char * c_pData)
{
if (ch->GetArena())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장에서 사용하실 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xE5\xBF\xA1\xBC\xAD \xBB\xE7\xBF\xEB\xC7\xCF\xBD\xC7 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -2235,7 +2235,7 @@ void CInputMain::PartyInviteAnswer(LPCHARACTER ch, const char * c_pData)
// pInviter 가 ch 에게 파티 요청을 했었다.
if (!pInviter)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 파티요청을 한 캐릭터를 찾을수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xC6\xC4\xC6\xBC\xBF\xE4\xC3\xBB\xC0\xBB \xC7\xD1 \xC4\xB3\xB8\xAF\xC5\xCD\xB8\xA6 \xC3\xA3\xC0\xBB\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
else if (!p->accept)
pInviter->PartyInviteDeny(ch->GetPlayerID());
else
@ -2247,7 +2247,7 @@ void CInputMain::PartySetState(LPCHARACTER ch, const char* c_pData)
{
if (!CPartyManager::instance().IsEnablePCParty())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 서버 문제로 파티 관련 처리를 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xBC\xAD\xB9\xF6 \xB9\xAE\xC1\xA6\xB7\xCE \xC6\xC4\xC6\xBC \xB0\xFC\xB7\xC3 \xC3\xB3\xB8\xAE\xB8\xA6 \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -2258,13 +2258,13 @@ void CInputMain::PartySetState(LPCHARACTER ch, const char* c_pData)
if (ch->GetParty()->GetLeaderPID() != ch->GetPlayerID())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 리더만 변경할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xB8\xAE\xB4\xF5\xB8\xB8 \xBA\xAF\xB0\xE6\xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (!ch->GetParty()->IsMember(p->pid))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 상태를 변경하려는 사람이 파티원이 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xBB\xF3\xC5\xC2\xB8\xA6 \xBA\xAF\xB0\xE6\xC7\xCF\xB7\xC1\xB4\xC2 \xBB\xE7\xB6\xF7\xC0\xCC \xC6\xC4\xC6\xBC\xBF\xF8\xC0\xCC \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
return;
}
@ -2292,7 +2292,7 @@ void CInputMain::PartySetState(LPCHARACTER ch, const char* c_pData)
db_clientdesc->DBPacket(HEADER_GD_PARTY_STATE_CHANGE, 0, &pack, sizeof(pack));
}
/* else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 어태커 설정에 실패하였습니다.")); */
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xBE\xEE\xC5\xC2\xC4\xBF \xBC\xB3\xC1\xA4\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9.")); */
break;
default:
@ -2305,19 +2305,19 @@ void CInputMain::PartyRemove(LPCHARACTER ch, const char* c_pData)
{
if (ch->GetArena())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("대련장에서 사용하실 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xEB\xB7\xC3\xC0\xE5\xBF\xA1\xBC\xAD \xBB\xE7\xBF\xEB\xC7\xCF\xBD\xC7 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (!CPartyManager::instance().IsEnablePCParty())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 서버 문제로 파티 관련 처리를 할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xBC\xAD\xB9\xF6 \xB9\xAE\xC1\xA6\xB7\xCE \xC6\xC4\xC6\xBC \xB0\xFC\xB7\xC3 \xC3\xB3\xB8\xAE\xB8\xA6 \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (ch->GetDungeon())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 던전 안에서는 파티에서 추방할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xB4\xF8\xC0\xFC \xBE\xC8\xBF\xA1\xBC\xAD\xB4\xC2 \xC6\xC4\xC6\xBC\xBF\xA1\xBC\xAD \xC3\xDF\xB9\xE6\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -2331,7 +2331,7 @@ void CInputMain::PartyRemove(LPCHARACTER ch, const char* c_pData)
{
if (ch->GetDungeon())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 던젼내에서는 파티원을 추방할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xB4\xF8\xC1\xAF\xB3\xBB\xBF\xA1\xBC\xAD\xB4\xC2 \xC6\xC4\xC6\xBC\xBF\xF8\xC0\xBB \xC3\xDF\xB9\xE6\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
@ -2347,7 +2347,7 @@ void CInputMain::PartyRemove(LPCHARACTER ch, const char* c_pData)
if (B)
{
//pParty->SendPartyRemoveOneToAll(B);
B->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 파티에서 추방당하셨습니다."));
B->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xC6\xC4\xC6\xBC\xBF\xA1\xBC\xAD \xC3\xDF\xB9\xE6\xB4\xE7\xC7\xCF\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
//pParty->Unlink(B);
//CPartyManager::instance().SetPartyMember(B->GetPlayerID(), NULL);
}
@ -2362,7 +2362,7 @@ void CInputMain::PartyRemove(LPCHARACTER ch, const char* c_pData)
{
if (ch->GetDungeon())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 던젼내에서는 파티를 나갈 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xB4\xF8\xC1\xAF\xB3\xBB\xBF\xA1\xBC\xAD\xB4\xC2 \xC6\xC4\xC6\xBC\xB8\xA6 \xB3\xAA\xB0\xA5 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
@ -2373,7 +2373,7 @@ void CInputMain::PartyRemove(LPCHARACTER ch, const char* c_pData)
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 파티에서 나가셨습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xC6\xC4\xC6\xBC\xBF\xA1\xBC\xAD \xB3\xAA\xB0\xA1\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
//pParty->SendPartyRemoveOneToAll(ch);
pParty->Quit(ch->GetPlayerID());
//pParty->SendPartyRemoveAllToOne(ch);
@ -2383,7 +2383,7 @@ void CInputMain::PartyRemove(LPCHARACTER ch, const char* c_pData)
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 다른 파티원을 탈퇴시킬 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xB4\xD9\xB8\xA5 \xC6\xC4\xC6\xBC\xBF\xF8\xC0\xBB \xC5\xBB\xC5\xF0\xBD\xC3\xC5\xB3 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
}
@ -2398,7 +2398,7 @@ void CInputMain::AnswerMakeGuild(LPCHARACTER ch, const char* c_pData)
if (get_global_time() - ch->GetQuestFlag("guild_manage.new_disband_time") <
CGuildManager::instance().GetDisbandDelay())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 해산한 후 %d일 이내에는 길드를 만들 수 없습니다."),
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC7\xD8\xBB\xEA\xC7\xD1 \xC8\xC4 %d\xC0\xCF \xC0\xCC\xB3\xBB\xBF\xA1\xB4\xC2 \xB1\xE6\xB5\xE5\xB8\xA6 \xB8\xB8\xB5\xE9 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."),
quest::CQuestManager::instance().GetEventFlag("guild_disband_delay"));
return;
}
@ -2406,7 +2406,7 @@ void CInputMain::AnswerMakeGuild(LPCHARACTER ch, const char* c_pData)
if (get_global_time() - ch->GetQuestFlag("guild_manage.new_withdraw_time") <
CGuildManager::instance().GetWithdrawDelay())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 탈퇴한 후 %d일 이내에는 길드를 만들 수 없습니다."),
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC5\xBB\xC5\xF0\xC7\xD1 \xC8\xC4 %d\xC0\xCF \xC0\xCC\xB3\xBB\xBF\xA1\xB4\xC2 \xB1\xE6\xB5\xE5\xB8\xA6 \xB8\xB8\xB5\xE9 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."),
quest::CQuestManager::instance().GetEventFlag("guild_withdraw_delay"));
return;
}
@ -2424,7 +2424,7 @@ void CInputMain::AnswerMakeGuild(LPCHARACTER ch, const char* c_pData)
if (cp.name[0] == 0 || !check_name(cp.name))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("적합하지 않은 길드 이름 입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xFB\xC7\xD5\xC7\xCF\xC1\xF6 \xBE\xCA\xC0\xBA \xB1\xE6\xB5\xE5 \xC0\xCC\xB8\xA7 \xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -2432,7 +2432,7 @@ void CInputMain::AnswerMakeGuild(LPCHARACTER ch, const char* c_pData)
if (dwGuildID)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> [%s] 길드가 생성되었습니다."), cp.name);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> [%s] \xB1\xE6\xB5\xE5\xB0\xA1 \xBB\xFD\xBC\xBA\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."), cp.name);
int GuildCreateFee;
@ -2457,7 +2457,7 @@ void CInputMain::AnswerMakeGuild(LPCHARACTER ch, const char* c_pData)
//ch->SendGuildName(dwGuildID);
}
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드 생성에 실패하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5 \xBB\xFD\xBC\xBA\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
void CInputMain::PartyUseSkill(LPCHARACTER ch, const char* c_pData)
@ -2468,7 +2468,7 @@ void CInputMain::PartyUseSkill(LPCHARACTER ch, const char* c_pData)
if (ch->GetPlayerID() != ch->GetParty()->GetLeaderPID())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 파티 기술은 파티장만 사용할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xC6\xC4\xC6\xBC \xB1\xE2\xBC\xFA\xC0\xBA \xC6\xC4\xC6\xBC\xC0\xE5\xB8\xB8 \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -2483,7 +2483,7 @@ void CInputMain::PartyUseSkill(LPCHARACTER ch, const char* c_pData)
if (pch)
ch->GetParty()->SummonToLeader(pch->GetPlayerID());
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 소환하려는 대상을 찾을 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xBC\xD2\xC8\xAF\xC7\xCF\xB7\xC1\xB4\xC2 \xB4\xEB\xBB\xF3\xC0\xBB \xC3\xA3\xC0\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
break;
}
@ -2545,7 +2545,7 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
{
if (SubHeader != GUILD_SUBHEADER_CG_GUILD_INVITE_ANSWER)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드에 속해있지 않습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xBF\xA1 \xBC\xD3\xC7\xD8\xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9."));
return SubPacketLen;
}
}
@ -2561,13 +2561,13 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
if (gold < 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 잘못된 금액입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xDF\xB8\xF8\xB5\xC8 \xB1\xDD\xBE\xD7\xC0\xD4\xB4\xCF\xB4\xD9."));
return SubPacketLen;
}
if (ch->GetGold() < gold)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 가지고 있는 돈이 부족합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB0\xA1\xC1\xF6\xB0\xED \xC0\xD6\xB4\xC2 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9."));
return SubPacketLen;
}
@ -2584,7 +2584,7 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
if (gold < 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 잘못된 금액입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xDF\xB8\xF8\xB5\xC8 \xB1\xDD\xBE\xD7\xC0\xD4\xB4\xCF\xB4\xD9."));
return SubPacketLen;
}
@ -2599,7 +2599,7 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
if (!newmember)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 그러한 사람을 찾을 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xD7\xB7\xAF\xC7\xD1 \xBB\xE7\xB6\xF7\xC0\xBB \xC3\xA3\xC0\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return SubPacketLen;
}
@ -2610,7 +2610,7 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
{
if (newmember->GetQuestFlag("change_guild_master.be_other_member") > get_global_time())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 아직 가입할 수 없는 캐릭터입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBE\xC6\xC1\xF7 \xB0\xA1\xC0\xD4\xC7\xD2 \xBC\xF6 \xBE\xF8\xB4\xC2 \xC4\xB3\xB8\xAF\xC5\xCD\xC0\xD4\xB4\xCF\xB4\xD9"));
return SubPacketLen;
}
}
@ -2623,7 +2623,7 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
{
if (pGuild->UnderAnyWar() != 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드전 중에는 길드원을 탈퇴시킬 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xFC \xC1\xDF\xBF\xA1\xB4\xC2 \xB1\xE6\xB5\xE5\xBF\xF8\xC0\xBB \xC5\xBB\xC5\xF0\xBD\xC3\xC5\xB3 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return SubPacketLen;
}
@ -2639,13 +2639,13 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
{
if (member->GetGuild() != pGuild)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 상대방이 같은 길드가 아닙니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xB0\xB0\xC0\xBA \xB1\xE6\xB5\xE5\xB0\xA1 \xBE\xC6\xB4\xD5\xB4\xCF\xB4\xD9."));
return SubPacketLen;
}
if (!pGuild->HasGradeAuth(m->grade, GUILD_AUTH_REMOVE_MEMBER))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드원을 강제 탈퇴 시킬 권한이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xBF\xF8\xC0\xBB \xB0\xAD\xC1\xA6 \xC5\xBB\xC5\xF0 \xBD\xC3\xC5\xB3 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return SubPacketLen;
}
@ -2661,14 +2661,14 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
{
if (!pGuild->HasGradeAuth(m->grade, GUILD_AUTH_REMOVE_MEMBER))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드원을 강제 탈퇴 시킬 권한이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xBF\xF8\xC0\xBB \xB0\xAD\xC1\xA6 \xC5\xBB\xC5\xF0 \xBD\xC3\xC5\xB3 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return SubPacketLen;
}
if (pGuild->RequestRemoveMember(pid))
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드원을 강제 탈퇴 시켰습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xBF\xF8\xC0\xBB \xB0\xAD\xC1\xA6 \xC5\xBB\xC5\xF0 \xBD\xC3\xC4\xD7\xBD\xC0\xB4\xCF\xB4\xD9."));
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 그러한 사람을 찾을 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xD7\xB7\xAF\xC7\xD1 \xBB\xE7\xB6\xF7\xC0\xBB \xC3\xA3\xC0\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
return SubPacketLen;
@ -2685,15 +2685,15 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
if (m->grade != GUILD_LEADER_GRADE)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 직위 이름을 변경할 권한이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC1\xF7\xC0\xA7 \xC0\xCC\xB8\xA7\xC0\xBB \xBA\xAF\xB0\xE6\xC7\xD2 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else if (*c_pData == GUILD_LEADER_GRADE)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드장의 직위 이름은 변경할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xE5\xC0\xC7 \xC1\xF7\xC0\xA7 \xC0\xCC\xB8\xA7\xC0\xBA \xBA\xAF\xB0\xE6\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else if (!check_name(gradename))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 적합하지 않은 직위 이름 입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xFB\xC7\xD5\xC7\xCF\xC1\xF6 \xBE\xCA\xC0\xBA \xC1\xF7\xC0\xA7 \xC0\xCC\xB8\xA7 \xC0\xD4\xB4\xCF\xB4\xD9."));
}
else
{
@ -2711,11 +2711,11 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
if (m->grade != GUILD_LEADER_GRADE)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 직위 권한을 변경할 권한이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC1\xF7\xC0\xA7 \xB1\xC7\xC7\xD1\xC0\xBB \xBA\xAF\xB0\xE6\xC7\xD2 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else if (*c_pData == GUILD_LEADER_GRADE)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드장의 권한은 변경할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xE5\xC0\xC7 \xB1\xC7\xC7\xD1\xC0\xBA \xBA\xAF\xB0\xE6\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
@ -2730,7 +2730,7 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
if (pGuild->GetLevel() >= GUILD_MAX_LEVEL && LC_IsHongKong() == false)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드가 이미 최고 레벨입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xB0\xA1 \xC0\xCC\xB9\xCC \xC3\xD6\xB0\xED \xB7\xB9\xBA\xA7\xC0\xD4\xB4\xCF\xB4\xD9."));
}
else
{
@ -2739,11 +2739,11 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
if (pGuild->OfferExp(ch, offer))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> %u의 경험치를 투자하였습니다."), offer);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> %u\xC0\xC7 \xB0\xE6\xC7\xE8\xC4\xA1\xB8\xA6 \xC5\xF5\xC0\xDA\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), offer);
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 경험치 투자에 실패하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB0\xE6\xC7\xE8\xC4\xA1 \xC5\xF5\xC0\xDA\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
}
@ -2756,13 +2756,13 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
if (offer < 0 || gold < offer || gold < 0 || ch->GetGold() < gold)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 돈이 부족합니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9."));
return SubPacketLen;
}
if (!pGuild->ChargeSP(ch, offer))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 용신력 회복에 실패하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xBF\xEB\xBD\xC5\xB7\xC2 \xC8\xB8\xBA\xB9\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
return SubPacketLen;
@ -2789,7 +2789,7 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
if (length && !pGuild->HasGradeAuth(m->grade, GUILD_AUTH_NOTICE) && *(c_pData + 1) == '!')
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 공지글을 작성할 권한이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB0\xF8\xC1\xF6\xB1\xDB\xC0\xBB \xC0\xDB\xBC\xBA\xC7\xD2 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
@ -2822,11 +2822,11 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
return -1;
if (m->grade != GUILD_LEADER_GRADE)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 직위를 변경할 권한이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC1\xF7\xC0\xA7\xB8\xA6 \xBA\xAF\xB0\xE6\xC7\xD2 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
else if (ch->GetPlayerID() == pid)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드장의 직위는 변경할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xE5\xC0\xC7 \xC1\xF7\xC0\xA7\xB4\xC2 \xBA\xAF\xB0\xE6\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
else if (grade == 1)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 길드장으로 직위를 변경할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB1\xE6\xB5\xE5\xC0\xE5\xC0\xB8\xB7\xCE \xC1\xF7\xC0\xA7\xB8\xA6 \xBA\xAF\xB0\xE6\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
else
pGuild->ChangeMemberGrade(pid, grade);
}
@ -2851,13 +2851,13 @@ int CInputMain::Guild(LPCHARACTER ch, const char * data, size_t uiBytes)
if (m->grade != GUILD_LEADER_GRADE)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 장군을 지정할 권한이 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xC0\xE5\xB1\xBA\xC0\xBB \xC1\xF6\xC1\xA4\xC7\xD2 \xB1\xC7\xC7\xD1\xC0\xCC \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
if (!pGuild->ChangeMemberGeneral(pid, is_general))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<길드> 더이상 장수를 지정할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB1\xE6\xB5\xE5> \xB4\xF5\xC0\xCC\xBB\xF3 \xC0\xE5\xBC\xF6\xB8\xA6 \xC1\xF6\xC1\xA4\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
}
@ -2901,7 +2901,7 @@ void CInputMain::ItemGive(LPCHARACTER ch, const char* c_pData)
if (to_ch)
ch->GiveItem(to_ch, p->ItemPos);
else
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("아이템을 건네줄 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBE\xC6\xC0\xCC\xC5\xDB\xC0\xBB \xB0\xC7\xB3\xD7\xC1\xD9 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
int CInputMain::MyShop(LPCHARACTER ch, const char * c_pData, size_t uiBytes)
@ -2914,7 +2914,7 @@ int CInputMain::MyShop(LPCHARACTER ch, const char * c_pData, size_t uiBytes)
if (ch->GetGold() >= GOLD_MAX)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("소유 돈이 20억냥을 넘어 거래를 핼수가 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xD2\xC0\xAF \xB5\xB7\xC0\xCC 20\xBE\xEF\xB3\xC9\xC0\xBB \xB3\xD1\xBE\xEE \xB0\xC5\xB7\xA1\xB8\xA6 \xC7\xDB\xBC\xF6\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
SPDLOG_DEBUG("MyShop ==> OverFlow Gold id {} name {} ", ch->GetPlayerID(), ch->GetName());
return (iExtraLen);
}
@ -2924,7 +2924,7 @@ int CInputMain::MyShop(LPCHARACTER ch, const char * c_pData, size_t uiBytes)
if (ch->GetExchange() || ch->IsOpenSafebox() || ch->GetShopOwner() || ch->IsCubeOpen())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 거래중일경우 개인상점을 열수가 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xB0\xC5\xB7\xA1\xC1\xDF\xC0\xCF\xB0\xE6\xBF\xEC \xB0\xB3\xC0\xCE\xBB\xF3\xC1\xA1\xC0\xBB \xBF\xAD\xBC\xF6\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return (iExtraLen);
}
@ -2939,7 +2939,7 @@ void CInputMain::Refine(LPCHARACTER ch, const char* c_pData)
if (ch->GetExchange() || ch->IsOpenSafebox() || ch->GetShopOwner() || ch->GetMyShop() || ch->IsCubeOpen())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("창고,거래창등이 열린 상태에서는 개량을 할수가 없습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA2\xB0\xED,\xB0\xC5\xB7\xA1\xC3\xA2\xB5\xEE\xC0\xCC \xBF\xAD\xB8\xB0 \xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD\xB4\xC2 \xB0\xB3\xB7\xAE\xC0\xBB \xC7\xD2\xBC\xF6\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9"));
ch->ClearRefineMode();
return;
}
@ -2996,7 +2996,7 @@ void CInputMain::Refine(LPCHARACTER ch, const char* c_pData)
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, "사귀 타워 완료 보상은 한번까지 사용가능합니다.");
ch->ChatPacket(CHAT_TYPE_INFO, "\xBB\xE7\xB1\xCD \xC5\xB8\xBF\xF6 \xBF\xCF\xB7\xE1 \xBA\xB8\xBB\xF3\xC0\xBA \xC7\xD1\xB9\xF8\xB1\xEE\xC1\xF6 \xBB\xE7\xBF\xEB\xB0\xA1\xB4\xC9\xC7\xD5\xB4\xCF\xB4\xD9.");
}
}
}
@ -3060,7 +3060,7 @@ int CInputMain::Analyze(LPDESC d, BYTE bHeader, const char * c_pData)
//if (0 != g_stClientVersion.compare(d->GetClientVersion()))
if (version > date)
{
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("클라이언트 버전이 틀려 로그아웃 됩니다. 정상적으로 패치 후 접속하세요."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xC5\xAC\xB6\xF3\xC0\xCC\xBE\xF0\xC6\xAE \xB9\xF6\xC0\xFC\xC0\xCC \xC6\xB2\xB7\xC1 \xB7\xCE\xB1\xD7\xBE\xC6\xBF\xF4 \xB5\xCB\xB4\xCF\xB4\xD9. \xC1\xA4\xBB\xF3\xC0\xFB\xC0\xB8\xB7\xCE \xC6\xD0\xC4\xA1 \xC8\xC4 \xC1\xA2\xBC\xD3\xC7\xCF\xBC\xBC\xBF\xE4."));
d->DelayedDisconnect(10);
LogManager::instance().HackLog("VERSION_CONFLICT", d->GetAccountTable().login, ch->GetName(), d->GetHostName());
}

View File

@ -95,32 +95,32 @@ static void __proc_teen_notice(char *login, int hour)
case 1:
case 2:
{
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신의 누적 온라인 시간이 이미 %d시간이 지났습니다."), hour);
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xE7\xBD\xC5\xC0\xC7 \xB4\xA9\xC0\xFB \xBF\xC2\xB6\xF3\xC0\xCE \xBD\xC3\xB0\xA3\xC0\xCC \xC0\xCC\xB9\xCC %d\xBD\xC3\xB0\xA3\xC0\xCC \xC1\xF6\xB3\xB5\xBD\xC0\xB4\xCF\xB4\xD9."), hour);
SET_OVER_TIME(ch, OT_NONE);
}
break;
case 3:
{
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신의 누적 온라인 시간이 이미 %d시간이 되었습니다,"), hour);
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("조속히 접속을 종료하신 후 건강을 위해 휴식을 취해주시기바랍니다."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xE7\xBD\xC5\xC0\xC7 \xB4\xA9\xC0\xFB \xBF\xC2\xB6\xF3\xC0\xCE \xBD\xC3\xB0\xA3\xC0\xCC \xC0\xCC\xB9\xCC %d\xBD\xC3\xB0\xA3\xC0\xCC \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9,"), hour);
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xC1\xB6\xBC\xD3\xC8\xF7 \xC1\xA2\xBC\xD3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xCF\xBD\xC5 \xC8\xC4 \xB0\xC7\xB0\xAD\xC0\xBB \xC0\xA7\xC7\xD8 \xC8\xDE\xBD\xC4\xC0\xBB \xC3\xEB\xC7\xD8\xC1\xD6\xBD\xC3\xB1\xE2\xB9\xD9\xB6\xF8\xB4\xCF\xB4\xD9."));
SET_OVER_TIME(ch, OT_3HOUR);
}
break;
case 4:
{
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신은 이미 게임 피로 상태에 들어섰으며,"));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("게임 내의 수익이 정상치의 50%로 하향됩니다."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신의 건강을 위해 조속히 접속을 종료하시고"));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("휴식 및 학업에 열중해주십시오."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xE7\xBD\xC5\xC0\xBA \xC0\xCC\xB9\xCC \xB0\xD4\xC0\xD3 \xC7\xC7\xB7\xCE \xBB\xF3\xC5\xC2\xBF\xA1 \xB5\xE9\xBE\xEE\xBC\xB9\xC0\xB8\xB8\xE7,"));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB0\xD4\xC0\xD3 \xB3\xBB\xC0\xC7 \xBC\xF6\xC0\xCD\xC0\xCC \xC1\xA4\xBB\xF3\xC4\xA1\xC0\xC7 50%\xB7\xCE \xC7\xCF\xC7\xE2\xB5\xCB\xB4\xCF\xB4\xD9."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xE7\xBD\xC5\xC0\xC7 \xB0\xC7\xB0\xAD\xC0\xBB \xC0\xA7\xC7\xD8 \xC1\xB6\xBC\xD3\xC8\xF7 \xC1\xA2\xBC\xD3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xCF\xBD\xC3\xB0\xED"));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xC8\xDE\xBD\xC4 \xB9\xD7 \xC7\xD0\xBE\xF7\xBF\xA1 \xBF\xAD\xC1\xDF\xC7\xD8\xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0."));
SET_OVER_TIME(ch, OT_3HOUR);
}
break;
default:
{
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신은 이미 온전하지 못한 게임 시간에 들어섰습니다."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("건강을 위해 조속히 접속을 종료하신 후 휴식을 취해주십시오,"));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("그렇지 않으면 건강 상에 피해를 입을 수 있으며 게임 내의 수치는 0이 됩니다."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("누적 오프라인 시간이 5시간이 되면 정상으로 돌아옵니다."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xE7\xBD\xC5\xC0\xBA \xC0\xCC\xB9\xCC \xBF\xC2\xC0\xFC\xC7\xCF\xC1\xF6 \xB8\xF8\xC7\xD1 \xB0\xD4\xC0\xD3 \xBD\xC3\xB0\xA3\xBF\xA1 \xB5\xE9\xBE\xEE\xBC\xB9\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB0\xC7\xB0\xAD\xC0\xBB \xC0\xA7\xC7\xD8 \xC1\xB6\xBC\xD3\xC8\xF7 \xC1\xA2\xBC\xD3\xC0\xBB \xC1\xBE\xB7\xE1\xC7\xCF\xBD\xC5 \xC8\xC4 \xC8\xDE\xBD\xC4\xC0\xBB \xC3\xEB\xC7\xD8\xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0,"));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB1\xD7\xB7\xB8\xC1\xF6 \xBE\xCA\xC0\xB8\xB8\xE9 \xB0\xC7\xB0\xAD \xBB\xF3\xBF\xA1 \xC7\xC7\xC7\xD8\xB8\xA6 \xC0\xD4\xC0\xBB \xBC\xF6 \xC0\xD6\xC0\xB8\xB8\xE7 \xB0\xD4\xC0\xD3 \xB3\xBB\xC0\xC7 \xBC\xF6\xC4\xA1\xB4\xC2 0\xC0\xCC \xB5\xCB\xB4\xCF\xB4\xD9."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xA9\xC0\xFB \xBF\xC0\xC7\xC1\xB6\xF3\xC0\xCE \xBD\xC3\xB0\xA3\xC0\xCC 5\xBD\xC3\xB0\xA3\xC0\xCC \xB5\xC7\xB8\xE9 \xC1\xA4\xBB\xF3\xC0\xB8\xB7\xCE \xB5\xB9\xBE\xC6\xBF\xC9\xB4\xCF\xB4\xD9."));
SET_OVER_TIME(ch, OT_5HOUR);
}
break;
@ -133,9 +133,9 @@ static inline void __sec_to_timestring(int sec, char *buf, size_t buflen)
int min = (sec/60);
if (hour>0)
snprintf(buf, buflen, LC_TEXT("%d시간"), hour);
snprintf(buf, buflen, LC_TEXT("%d\xBD\xC3\xB0\xA3"), hour);
else
snprintf(buf, buflen, LC_TEXT("%d"), min);
snprintf(buf, buflen, LC_TEXT("%d\xBA\xD0"), min);
}
static void __proc_login_notice(char *login, int on_time, int off_time)
@ -156,13 +156,13 @@ static void __proc_login_notice(char *login, int on_time, int off_time)
if (0==on_time)
{
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신의 누적 오프라인 시간은 %s입니다."), off_time_string);
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신의 누적 온라인 시간은 0이 되었습니다. 100% 효과를 얻으실 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xE7\xBD\xC5\xC0\xC7 \xB4\xA9\xC0\xFB \xBF\xC0\xC7\xC1\xB6\xF3\xC0\xCE \xBD\xC3\xB0\xA3\xC0\xBA %s\xC0\xD4\xB4\xCF\xB4\xD9."), off_time_string);
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xE7\xBD\xC5\xC0\xC7 \xB4\xA9\xC0\xFB \xBF\xC2\xB6\xF3\xC0\xCE \xBD\xC3\xB0\xA3\xC0\xBA 0\xC0\xCC \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9. 100% \xC8\xBF\xB0\xFA\xB8\xA6 \xBE\xF2\xC0\xB8\xBD\xC7 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
else
{
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신의 누적 오프라인 시간은 %s이며, 누적 온라인 시간은 %s입니다."),
ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("\xB4\xE7\xBD\xC5\xC0\xC7 \xB4\xA9\xC0\xFB \xBF\xC0\xC7\xC1\xB6\xF3\xC0\xCE \xBD\xC3\xB0\xA3\xC0\xBA %s\xC0\xCC\xB8\xE7, \xB4\xA9\xC0\xFB \xBF\xC2\xB6\xF3\xC0\xCE \xBD\xC3\xB0\xA3\xC0\xBA %s\xC0\xD4\xB4\xCF\xB4\xD9."),
off_time_string, on_time_string);
}
}

View File

@ -1544,7 +1544,7 @@ void CItem::SetAccessorySocketDownGradeTime(DWORD time)
SetSocket(2, time);
if (test_server && GetOwner())
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s에서 소켓 빠질때까지 남은 시간 %d"), GetName(), time);
GetOwner()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s\xBF\xA1\xBC\xAD \xBC\xD2\xC4\xCF \xBA\xFC\xC1\xFA\xB6\xA7\xB1\xEE\xC1\xF6 \xB3\xB2\xC0\xBA \xBD\xC3\xB0\xA3 %d"), GetName(), time);
}
EVENTFUNC(accessory_socket_expire_event)
@ -1692,7 +1692,7 @@ void CItem::AccessorySocketDegrade()
if (ch)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s에 박혀있던 보석이 사라집니다."), GetName());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s\xBF\xA1 \xB9\xDA\xC7\xF4\xC0\xD6\xB4\xF8 \xBA\xB8\xBC\xAE\xC0\xCC \xBB\xE7\xB6\xF3\xC1\xFD\xB4\xCF\xB4\xD9."), GetName());
}
ModifyPoints(false);

View File

@ -1482,7 +1482,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
//육각보합
if (GetDropPerKillPct(100, g_iUseLocale ? 2000 : 800, iDeltaPercent, "2006_drop") >= Random::get(1, iRandRange))
{
SPDLOG_DEBUG("육각보합 DROP EVENT ");
SPDLOG_DEBUG("\xC0\xB0\xB0\xA2\xBA\xB8\xC7\xD5 DROP EVENT ");
const static DWORD dwVnum = 50037;
@ -1494,7 +1494,7 @@ void ITEM_MANAGER::CreateQuestDropItem(LPCHARACTER pkChr, LPCHARACTER pkKiller,
//육각보합+
if (GetDropPerKillPct(100, g_iUseLocale ? 2000 : 800, iDeltaPercent, "2007_drop") >= Random::get(1, iRandRange))
{
SPDLOG_DEBUG("육각보합 DROP EVENT ");
SPDLOG_DEBUG("\xC0\xB0\xB0\xA2\xBA\xB8\xC7\xD5 DROP EVENT ");
const static DWORD dwVnum = 50043;

View File

@ -78,7 +78,7 @@ bool ITEM_MANAGER::ReadCommonDropItemFile(const char * c_pszFileName)
if (!ITEM_MANAGER::instance().GetVnumByOriginalName(d[i].szItemName, dwItemVnum))
{
// 이름으로 못찾으면 번호로 검색
// <EFBFBD≯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ã<EFBFBD><C3A3><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3> <20>˻<EFBFBD>
str_to_number(dwItemVnum, d[i].szItemName);
if (!ITEM_MANAGER::instance().GetTable(dwItemVnum))
{
@ -223,7 +223,7 @@ bool ITEM_MANAGER::ReadSpecialDropItemFile(const char * c_pszFileName)
if (!GetVnumByOriginalName(name.c_str(), dwVnum))
{
if (name == "경험치" || name == "exp")
if (name == "\xB0\xE6\xC7\xE8\xC4\xA1" || name == "exp")
{
dwVnum = CSpecialItemGroup::EXP;
}
@ -372,7 +372,7 @@ bool ITEM_MANAGER::ConvSpecialDropItemFile()
if (!GetVnumByOriginalName(name.c_str(), dwVnum))
{
if ( name == "경험치" ||
if ( name == "\xB0\xE6\xC7\xE8\xC4\xA1" ||
name == "mob" ||
name == "slow" ||
name == "drain_hp" ||
@ -405,7 +405,7 @@ bool ITEM_MANAGER::ConvSpecialDropItemFile()
str_to_number(iRarePct, pTok->at(3).c_str());
}
// 1 "기술 수련서" 1 100
// 1 "<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ü<EFBFBD>" 1 100
if (0 == dwVnum)
fprintf(fp, " %d %s %d %d\n", k, name.c_str(), iCount, iProb);
else

View File

@ -166,11 +166,11 @@ void ShutdownOnFatalError()
{
char buf[256];
strlcpy(buf, LC_TEXT("서버에 치명적인 오류가 발생하여 자동으로 재부팅됩니다."), sizeof(buf));
strlcpy(buf, LC_TEXT("\xBC\xAD\xB9\xF6\xBF\xA1 \xC4\xA1\xB8\xED\xC0\xFB\xC0\xCE \xBF\xC0\xB7\xF9\xB0\xA1 \xB9\xDF\xBB\xFD\xC7\xCF\xBF\xA9 \xC0\xDA\xB5\xBF\xC0\xB8\xB7\xCE \xC0\xE7\xBA\xCE\xC6\xC3\xB5\xCB\xB4\xCF\xB4\xD9."), sizeof(buf));
SendNotice(buf);
strlcpy(buf, LC_TEXT("10초후 자동으로 접속이 종료되며,"), sizeof(buf));
strlcpy(buf, LC_TEXT("10\xC3\xCA\xC8\xC4 \xC0\xDA\xB5\xBF\xC0\xB8\xB7\xCE \xC1\xA2\xBC\xD3\xC0\xCC \xC1\xBE\xB7\xE1\xB5\xC7\xB8\xE7,"), sizeof(buf));
SendNotice(buf);
strlcpy(buf, LC_TEXT("5분 후에 정상적으로 접속하실수 있습니다."), sizeof(buf));
strlcpy(buf, LC_TEXT("5\xBA\xD0 \xC8\xC4\xBF\xA1 \xC1\xA4\xBB\xF3\xC0\xFB\xC0\xB8\xB7\xCE \xC1\xA2\xBC\xD3\xC7\xCF\xBD\xC7\xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."), sizeof(buf));
SendNotice(buf);
}

View File

@ -119,7 +119,7 @@ void MessengerManager::RequestToAdd(LPCHARACTER ch, LPCHARACTER target)
if (quest::CQuestManager::instance().GetPCForce(ch->GetPlayerID())->IsRunning() == true)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상대방이 친구 추가를 받을 수 없는 상태입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xB4\xEB\xB9\xE6\xC0\xCC \xC4\xA3\xB1\xB8 \xC3\xDF\xB0\xA1\xB8\xA6 \xB9\xDE\xC0\xBB \xBC\xF6 \xBE\xF8\xB4\xC2 \xBB\xF3\xC5\xC2\xC0\xD4\xB4\xCF\xB4\xD9."));
return;
}
@ -172,7 +172,7 @@ void MessengerManager::__AddToList(MessengerManager::keyA account, MessengerMana
if (d)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<메신져> %s 님을 친구로 추가하였습니다."), companion.c_str());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB8\xDE\xBD\xC5\xC1\xAE> %s \xB4\xD4\xC0\xBB \xC4\xA3\xB1\xB8\xB7\xCE \xC3\xDF\xB0\xA1\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), companion.c_str());
}
LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(companion.c_str());
@ -214,7 +214,7 @@ void MessengerManager::__RemoveFromList(MessengerManager::keyA account, Messenge
LPDESC d = ch ? ch->GetDesc() : NULL;
if (d)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<메신져> %s 님을 메신저에서 삭제하였습니다."), companion.c_str());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xB8\xDE\xBD\xC5\xC1\xAE> %s \xB4\xD4\xC0\xBB \xB8\xDE\xBD\xC5\xC0\xFA\xBF\xA1\xBC\xAD \xBB\xE8\xC1\xA6\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), companion.c_str());
}
void MessengerManager::RemoveFromList(MessengerManager::keyA account, MessengerManager::keyA companion)

View File

@ -292,7 +292,7 @@ namespace mining
CItem& pick = *item;
Pick_MaxCurExp(pick);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("곡괭이 수련도가 최대(%d)가 되었습니다."), Pick_GetCurExp(pick));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xEE\xB1\xAA\xC0\xCC \xBC\xF6\xB7\xC3\xB5\xB5\xB0\xA1 \xC3\xD6\xB4\xEB(%d)\xB0\xA1 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."), Pick_GetCurExp(pick));
}
void PracticePick(LPCHARACTER ch, LPITEM item)
@ -312,20 +312,20 @@ namespace mining
if (Pick_Refinable(pick))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("곡괭이가 최대 수련도에 도달하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("나무꾼를 통해 다음 레벨의 곡괭이로 업그레이드 할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xEE\xB1\xAA\xC0\xCC\xB0\xA1 \xC3\xD6\xB4\xEB \xBC\xF6\xB7\xC3\xB5\xB5\xBF\xA1 \xB5\xB5\xB4\xDE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xAA\xB9\xAB\xB2\xDB\xB8\xA6 \xC5\xEB\xC7\xD8 \xB4\xD9\xC0\xBD \xB7\xB9\xBA\xA7\xC0\xC7 \xB0\xEE\xB1\xAA\xC0\xCC\xB7\xCE \xBE\xF7\xB1\xD7\xB7\xB9\xC0\xCC\xB5\xE5 \xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
Pick_IncCurExp(pick);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("곡괭이의 수련도가 증가하였습니다! (%d/%d)"),
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xEE\xB1\xAA\xC0\xCC\xC0\xC7 \xBC\xF6\xB7\xC3\xB5\xB5\xB0\xA1 \xC1\xF5\xB0\xA1\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9! (%d/%d)"),
Pick_GetCurExp(pick), Pick_GetMaxExp(pick));
if (Pick_Refinable(pick))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("곡괭이가 최대 수련도에 도달하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("나무꾼를 통해 다음 레벨의 곡괭이로 업그레이드 할 수 있습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xEE\xB1\xAA\xC0\xCC\xB0\xA1 \xC3\xD6\xB4\xEB \xBC\xF6\xB7\xC3\xB5\xB5\xBF\xA1 \xB5\xB5\xB4\xDE\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xAA\xB9\xAB\xB2\xDB\xB8\xA6 \xC5\xEB\xC7\xD8 \xB4\xD9\xC0\xBD \xB7\xB9\xBA\xA7\xC0\xC7 \xB0\xEE\xB1\xAA\xC0\xCC\xB7\xCE \xBE\xF7\xB1\xD7\xB7\xB9\xC0\xCC\xB5\xE5 \xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9."));
}
}
}
@ -355,14 +355,14 @@ namespace mining
// REFINE_PICK
if (!pick || !Pick_Check(*pick))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("곡괭이를 들고 있지 않아서 캘 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xEE\xB1\xAA\xC0\xCC\xB8\xA6 \xB5\xE9\xB0\xED \xC0\xD6\xC1\xF6 \xBE\xCA\xBE\xC6\xBC\xAD \xC4\xB6 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
// END_OF_REFINE_PICK
if (!load)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("더이상 캐낼 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xF5\xC0\xCC\xBB\xF3 \xC4\xB3\xB3\xBE \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
@ -371,11 +371,11 @@ namespace mining
if (Random::get(1, 100) <= iPct)
{
OreDrop(ch, load->GetRaceNum());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("채광에 성공하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA4\xB1\xA4\xBF\xA1 \xBC\xBA\xB0\xF8\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("채광에 실패하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC3\xA4\xB1\xA4\xBF\xA1 \xBD\xC7\xC6\xD0\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
PracticePick(ch, pick);

View File

@ -40,7 +40,7 @@ struct FHealMyEmpire
if (ch->IsPC() && m_bEmpire == ch->GetEmpire())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주가 내린 축복으로 모든 에너지가 가득 채워집니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xB0\xA1 \xB3\xBB\xB8\xB0 \xC3\xE0\xBA\xB9\xC0\xB8\xB7\xCE \xB8\xF0\xB5\xE7 \xBF\xA1\xB3\xCA\xC1\xF6\xB0\xA1 \xB0\xA1\xB5\xE6 \xC3\xA4\xBF\xF6\xC1\xFD\xB4\xCF\xB4\xD9"));
ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());
ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP());
ch->EffectPacket(SE_SPUP_BLUE);
@ -61,7 +61,7 @@ int CMonarch::HealMyEmpire(LPCHARACTER ch ,DWORD price)
{
if (!ch->IsGM())
{
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("군주의 자격을 가지고 있지 않습니다"));
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xC0\xDA\xB0\xDD\xC0\xBB \xB0\xA1\xC1\xF6\xB0\xED \xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9"));
SPDLOG_ERROR("No Monarch pid {} ", pid);
return 0;
}
@ -69,14 +69,14 @@ int CMonarch::HealMyEmpire(LPCHARACTER ch ,DWORD price)
if (!ch->IsMCOK(CHARACTER::MI_HEAL))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d 초 후에 군주의 축복을 사용할 수 있습니다"), ch->GetMCLTime(CHARACTER::MI_HEAL));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d \xC3\xCA \xC8\xC4\xBF\xA1 \xB1\xBA\xC1\xD6\xC0\xC7 \xC3\xE0\xBA\xB9\xC0\xBB \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9"), ch->GetMCLTime(CHARACTER::MI_HEAL));
return 0;
}
if (!IsMoneyOk(price, Empire))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), GetMoney(Empire), price);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), GetMoney(Empire), price);
return 0;
}
@ -93,7 +93,7 @@ int CMonarch::HealMyEmpire(LPCHARACTER ch ,DWORD price)
ch->SetMC(CHARACTER::MI_HEAL);
if (test_server)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("[TEST_ONLY]현재 국고 : %d "), GetMoney(Empire) - price);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("[TEST_ONLY]\xC7\xF6\xC0\xE7 \xB1\xB9\xB0\xED : %d "), GetMoney(Empire) - price);
return 1;
}

View File

@ -323,7 +323,7 @@ void CParty::Destroy()
p.header = HEADER_GC_PARTY_REMOVE;
p.pid = rMember.pCharacter->GetPlayerID();
rMember.pCharacter->GetDesc()->Packet(&p, sizeof(p));
rMember.pCharacter->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 파티가 해산 되었습니다."));
rMember.pCharacter->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xC6\xC4\xC6\xBC\xB0\xA1 \xC7\xD8\xBB\xEA \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
}
else
{
@ -1121,7 +1121,7 @@ void CParty::SummonToLeader(DWORD pid)
if (m_memberMap.find(pid) == m_memberMap.end())
{
l->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 소환하려는 대상을 찾을 수 없습니다."));
l->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xBC\xD2\xC8\xAF\xC7\xCF\xB7\xC1\xB4\xC2 \xB4\xEB\xBB\xF3\xC0\xBB \xC3\xA3\xC0\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1129,13 +1129,13 @@ void CParty::SummonToLeader(DWORD pid)
if (!ch)
{
l->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 소환하려는 대상을 찾을 수 없습니다."));
l->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xBC\xD2\xC8\xAF\xC7\xCF\xB7\xC1\xB4\xC2 \xB4\xEB\xBB\xF3\xC0\xBB \xC3\xA3\xC0\xBB \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
if (!ch->CanSummon(m_iLeadership))
{
l->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 대상을 소환할 수 없습니다."));
l->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xB4\xEB\xBB\xF3\xC0\xBB \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -1152,7 +1152,7 @@ void CParty::SummonToLeader(DWORD pid)
}
if (n == 0)
l->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<파티> 파티원을 현재 위치로 소환할 수 없습니다."));
l->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC6\xC4\xC6\xBC> \xC6\xC4\xC6\xBC\xBF\xF8\xC0\xBB \xC7\xF6\xC0\xE7 \xC0\xA7\xC4\xA1\xB7\xCE \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
else
{
int i = Random::get(0, n - 1);
@ -1371,7 +1371,7 @@ void CParty::Update()
continue;
if (bLongTimeExpBonusChanged && ch->GetDesc())
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("파티의 협동력이 높아져 지금부터 추가 경험치 보너스를 받습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC6\xC4\xC6\xBC\xC0\xC7 \xC7\xF9\xB5\xBF\xB7\xC2\xC0\xCC \xB3\xF4\xBE\xC6\xC1\xAE \xC1\xF6\xB1\xDD\xBA\xCE\xC5\xCD \xC3\xDF\xB0\xA1 \xB0\xE6\xC7\xE8\xC4\xA1 \xBA\xB8\xB3\xCA\xBD\xBA\xB8\xA6 \xB9\xDE\xBD\xC0\xB4\xCF\xB4\xD9."));
bool bNear = it->second.bNear;

View File

@ -69,14 +69,14 @@ bool CPolymorphUtils::PolymorphCharacter(LPCHARACTER pChar, LPITEM pItem, const
if (iPolyPercent <= 0)
{
pChar->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("둔갑에 실패 하였습니다"));
pChar->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xD0\xB0\xA9\xBF\xA1 \xBD\xC7\xC6\xD0 \xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9"));
return false;
}
else
{
if (Random::get(1, 100) > iPolyPercent)
{
pChar->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("둔갑에 실패 하였습니다"));
pChar->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xD0\xB0\xA9\xBF\xA1 \xBD\xC7\xC6\xD0 \xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9"));
return false;
}
}
@ -116,7 +116,7 @@ bool CPolymorphUtils::UpdateBookPracticeGrade(LPCHARACTER pChar, LPITEM pItem)
if (pItem->GetSocket(1) > 0)
pItem->SetSocket(1, pItem->GetSocket(1) - 1);
else
pChar->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("둔갑서 수련을 마첬습니다. 신선에게 찾아가세요."));
pChar->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xD0\xB0\xA9\xBC\xAD \xBC\xF6\xB7\xC3\xC0\xBB \xB8\xB6\xC3\xBA\xBD\xC0\xB4\xCF\xB4\xD9. \xBD\xC5\xBC\xB1\xBF\xA1\xB0\xD4 \xC3\xA3\xBE\xC6\xB0\xA1\xBC\xBC\xBF\xE4."));
return true;
}

View File

@ -105,13 +105,13 @@ void CPrivManager::GiveGuildPriv(DWORD guild_id, BYTE type, int value, BYTE bLog
if (value)
{
char buf[100];
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드의 %s이 %d%% 증가했습니다!"), g->GetName(), GetPrivName(type), value);
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xC0\xC7 %s\xC0\xCC %d%% \xC1\xF5\xB0\xA1\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9!"), g->GetName(), GetPrivName(type), value);
SendNotice(buf);
}
else
{
char buf[100];
snprintf(buf, sizeof(buf), LC_TEXT("%s 길드의 %s이 정상으로 돌아왔습니다."), g->GetName(), GetPrivName(type));
snprintf(buf, sizeof(buf), LC_TEXT("%s \xB1\xE6\xB5\xE5\xC0\xC7 %s\xC0\xCC \xC1\xA4\xBB\xF3\xC0\xB8\xB7\xCE \xB5\xB9\xBE\xC6\xBF\xD4\xBD\xC0\xB4\xCF\xB4\xD9."), g->GetName(), GetPrivName(type));
SendNotice(buf);
}
@ -160,7 +160,7 @@ void CPrivManager::GiveEmpirePriv(BYTE empire, BYTE type, int value, BYTE bLog,
if (value)
{
char buf[100];
snprintf(buf, sizeof(buf), LC_TEXT("%s의 %s이 %d%% 증가했습니다!"), GetEmpireName(empire), GetPrivName(type), value);
snprintf(buf, sizeof(buf), LC_TEXT("%s\xC0\xC7 %s\xC0\xCC %d%% \xC1\xF5\xB0\xA1\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9!"), GetEmpireName(empire), GetPrivName(type), value);
if (empire)
SendNotice(buf);
@ -170,7 +170,7 @@ void CPrivManager::GiveEmpirePriv(BYTE empire, BYTE type, int value, BYTE bLog,
else
{
char buf[100];
snprintf(buf, sizeof(buf), LC_TEXT("%s의 %s이 정상으로 돌아왔습니다."), GetEmpireName(empire), GetPrivName(type));
snprintf(buf, sizeof(buf), LC_TEXT("%s\xC0\xC7 %s\xC0\xCC \xC1\xA4\xBB\xF3\xC0\xB8\xB7\xCE \xB5\xB9\xBE\xC6\xBF\xD4\xBD\xC0\xB4\xCF\xB4\xD9."), GetEmpireName(empire), GetPrivName(type));
if (empire)
SendNotice(buf);

View File

@ -183,8 +183,8 @@ void CPVPManager::Insert(LPCHARACTER pkChr, LPCHARACTER pkVictim)
// 복수할 수 있으면 바로 싸움!
if (pkPVP->Agree(pkChr->GetPlayerID()))
{
pkVictim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s님과의 대결 시작!"), pkChr->GetName());
pkChr->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s님과의 대결 시작!"), pkVictim->GetName());
pkVictim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s\xB4\xD4\xB0\xFA\xC0\xC7 \xB4\xEB\xB0\xE1 \xBD\xC3\xC0\xDB!"), pkChr->GetName());
pkChr->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s\xB4\xD4\xB0\xFA\xC0\xC7 \xB4\xEB\xB0\xE1 \xBD\xC3\xC0\xDB!"), pkVictim->GetName());
}
return;
}
@ -202,10 +202,10 @@ void CPVPManager::Insert(LPCHARACTER pkChr, LPCHARACTER pkVictim)
pkPVP->Packet();
char msg[CHAT_MAX_LEN + 1];
snprintf(msg, sizeof(msg), LC_TEXT("%s님이 대결신청을 했습니다. 승낙하려면 대결동의를 하세요."), pkChr->GetName());
snprintf(msg, sizeof(msg), LC_TEXT("%s\xB4\xD4\xC0\xCC \xB4\xEB\xB0\xE1\xBD\xC5\xC3\xBB\xC0\xBB \xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9. \xBD\xC2\xB3\xAB\xC7\xCF\xB7\xC1\xB8\xE9 \xB4\xEB\xB0\xE1\xB5\xBF\xC0\xC7\xB8\xA6 \xC7\xCF\xBC\xBC\xBF\xE4."), pkChr->GetName());
pkVictim->ChatPacket(CHAT_TYPE_INFO, msg);
pkChr->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s에게 대결신청을 했습니다."), pkVictim->GetName());
pkChr->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s\xBF\xA1\xB0\xD4 \xB4\xEB\xB0\xE1\xBD\xC5\xC3\xBB\xC0\xBB \xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."), pkVictim->GetName());
// NOTIFY_PVP_MESSAGE
LPDESC pkVictimDesc = pkVictim->GetDesc();

View File

@ -938,7 +938,7 @@ namespace quest
event_create(warp_all_to_village_event, info, PASSES_PER_SEC(iSec));
SendNoticeMap(LC_TEXT("잠시후 모두 마을로 이동됩니다."), iMapIndex, false);
SendNoticeMap(LC_TEXT("\xC0\xE1\xBD\xC3\xC8\xC4 \xB8\xF0\xB5\xCE \xB8\xB6\xC0\xBB\xB7\xCE \xC0\xCC\xB5\xBF\xB5\xCB\xB4\xCF\xB4\xD9."), iMapIndex, false);
return 0;
}

View File

@ -137,7 +137,7 @@ namespace quest
{
if (!ch->IsGM())
{
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("군주의 자격을 가지고 있지 않습니다"));
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xC0\xDA\xB0\xDD\xC0\xBB \xB0\xA1\xC1\xF6\xB0\xED \xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9"));
quest_err("No Monarch pid %d ", ch->GetPlayerID());
return 0;
}
@ -151,10 +151,10 @@ namespace quest
{
char szNotice[256];
snprintf(szNotice, sizeof(szNotice),
LC_TEXT("군주의 축복으로 이지역 %s 유저는 HP,SP가 모두 채워집니다."), EMPIRE_NAME(ch->GetEmpire()));
LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xC3\xE0\xBA\xB9\xC0\xB8\xB7\xCE \xC0\xCC\xC1\xF6\xBF\xAA %s \xC0\xAF\xC0\xFA\xB4\xC2 HP,SP\xB0\xA1 \xB8\xF0\xB5\xCE \xC3\xA4\xBF\xF6\xC1\xFD\xB4\xCF\xB4\xD9."), EMPIRE_NAME(ch->GetEmpire()));
SendNoticeMap(szNotice, ch->GetMapIndex(), false);
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("군주의 축복을 사용하였습니다."));
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xC3\xE0\xBA\xB9\xC0\xBB \xBB\xE7\xBF\xEB\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."));
}
return 1;
@ -173,7 +173,7 @@ namespace quest
{
if (!ch->IsGM())
{
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("군주의 자격을 가지고 있지 않습니다"));
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xC0\xDA\xB0\xDD\xC0\xBB \xB0\xA1\xC1\xF6\xB0\xED \xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9"));
quest_err("No Monarch pid %d ", ch->GetPlayerID());
return 0;
}
@ -184,14 +184,14 @@ namespace quest
if (!CMonarch::instance().IsMoneyOk(money_need, ch->GetEmpire()))
{
int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), NationMoney, money_need);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), NationMoney, money_need);
return 0;
}
if (!CMonarch::instance().CheckPowerUpCT(ch->GetEmpire()))
{
int next_sec = CMonarch::instance().GetPowerUpCT(ch->GetEmpire()) / passes_per_sec;
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("쿨타임 적용중 %d 후 사용가능"), next_sec);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC4\xF0\xC5\xB8\xC0\xD3 \xC0\xFB\xBF\xEB\xC1\xDF %d \xC8\xC4 \xBB\xE7\xBF\xEB\xB0\xA1\xB4\xC9"), next_sec);
return 0;
}
@ -210,7 +210,7 @@ namespace quest
CMonarch::instance().SendtoDBDecMoney(5000000, ch->GetEmpire(), ch);
char szNotice[256];
snprintf(szNotice, sizeof(szNotice), LC_TEXT("군주의 사자후 영향으로 이지역 %s 유저는 3분간 10 %% 의 공격력이 증가됩니다"), EMPIRE_NAME(ch->GetEmpire()));
snprintf(szNotice, sizeof(szNotice), LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xBB\xE7\xC0\xDA\xC8\xC4 \xBF\xB5\xC7\xE2\xC0\xB8\xB7\xCE \xC0\xCC\xC1\xF6\xBF\xAA %s \xC0\xAF\xC0\xFA\xB4\xC2 3\xBA\xD0\xB0\xA3 10 %% \xC0\xC7 \xB0\xF8\xB0\xDD\xB7\xC2\xC0\xCC \xC1\xF5\xB0\xA1\xB5\xCB\xB4\xCF\xB4\xD9"), EMPIRE_NAME(ch->GetEmpire()));
SendNoticeMap(szNotice, ch->GetMapIndex(), false);
@ -231,7 +231,7 @@ namespace quest
{
if (!ch->IsGM())
{
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("군주의 자격을 가지고 있지 않습니다"));
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xC0\xDA\xB0\xDD\xC0\xBB \xB0\xA1\xC1\xF6\xB0\xED \xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9"));
quest_err("No Monarch pid %d ", ch->GetPlayerID());
return 0;
}
@ -241,14 +241,14 @@ namespace quest
if (!CMonarch::instance().IsMoneyOk(money_need, ch->GetEmpire()))
{
int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), NationMoney, money_need);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), NationMoney, money_need);
return 0;
}
if (!CMonarch::instance().CheckDefenseUpCT(ch->GetEmpire()))
{
int next_sec = CMonarch::instance().GetDefenseUpCT(ch->GetEmpire()) / passes_per_sec;
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("쿨타임 적용중 %d 후 사용가능"), next_sec);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC4\xF0\xC5\xB8\xC0\xD3 \xC0\xFB\xBF\xEB\xC1\xDF %d \xC8\xC4 \xBB\xE7\xBF\xEB\xB0\xA1\xB4\xC9"), next_sec);
return 0;
}
@ -267,7 +267,7 @@ namespace quest
CMonarch::instance().SendtoDBDecMoney(5000000, ch->GetEmpire(), ch);
char szNotice[256];
snprintf(szNotice, sizeof(szNotice), LC_TEXT("군주의 금강권 영향으로 이지역 %s 유저는 3분간 10 %% 의 방어력이 증가됩니다"), EMPIRE_NAME(ch->GetEmpire()));
snprintf(szNotice, sizeof(szNotice), LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xB1\xDD\xB0\xAD\xB1\xC7 \xBF\xB5\xC7\xE2\xC0\xB8\xB7\xCE \xC0\xCC\xC1\xF6\xBF\xAA %s \xC0\xAF\xC0\xFA\xB4\xC2 3\xBA\xD0\xB0\xA3 10 %% \xC0\xC7 \xB9\xE6\xBE\xEE\xB7\xC2\xC0\xCC \xC1\xF5\xB0\xA1\xB5\xCB\xB4\xCF\xB4\xD9"), EMPIRE_NAME(ch->GetEmpire()));
SendNoticeMap(szNotice, ch->GetMapIndex(), false);
@ -311,7 +311,7 @@ namespace quest
{
if (!ch->IsGM())
{
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("군주의 자격을 가지고 있지 않습니다"));
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xC0\xDA\xB0\xDD\xC0\xBB \xB0\xA1\xC1\xF6\xB0\xED \xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9"));
quest_err("No Monarch pid %d ", ch->GetPlayerID());
return 0;
}
@ -332,7 +332,7 @@ namespace quest
if (!CMonarch::instance().IsMoneyOk(CASTLE_FROG_PRICE, ch->GetEmpire()))
{
int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), NationMoney, CASTLE_FROG_PRICE);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), NationMoney, CASTLE_FROG_PRICE);
return 0;
}
@ -399,7 +399,7 @@ namespace quest
{
if (!ch->IsGM())
{
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("군주의 자격을 가지고 있지 않습니다"));
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xC0\xDA\xB0\xDD\xC0\xBB \xB0\xA1\xC1\xF6\xB0\xED \xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9"));
quest_err("No Monarch pid %d ", ch->GetPlayerID());
return 0;
}
@ -407,7 +407,7 @@ namespace quest
if (false==castle_is_my_castle(ch->GetEmpire(), ch->GetMapIndex()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("성에서만 사용할 수 있는 기능입니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xBA\xBF\xA1\xBC\xAD\xB8\xB8 \xBB\xE7\xBF\xEB\xC7\xD2 \xBC\xF6 \xC0\xD6\xB4\xC2 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9."));
return 0;
}
@ -421,7 +421,7 @@ namespace quest
if (!CMonarch::instance().IsMoneyOk(money_need, ch->GetEmpire()))
{
int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), NationMoney, money_need);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), NationMoney, money_need);
return 0;
}
guard_leader = castle_spawn_guard(ch->GetEmpire(), group_vnum, region_index);
@ -448,7 +448,7 @@ namespace quest
{
if (!ch->IsGM())
{
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("군주의 자격을 가지고 있지 않습니다"));
ch->ChatPacket(CHAT_TYPE_INFO ,LC_TEXT("\xB1\xBA\xC1\xD6\xC0\xC7 \xC0\xDA\xB0\xDD\xC0\xBB \xB0\xA1\xC1\xF6\xB0\xED \xC0\xD6\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9"));
quest_err("No Monarch pid %d ", ch->GetPlayerID());
return 0;
}
@ -457,14 +457,14 @@ namespace quest
if (castle_frog_to_empire_money(ch))
{
int empire_money = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("TEST : 황금두꺼비가 국고로 환원되었습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("TEST : 현재 국고 : %d"), empire_money);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("TEST : \xC8\xB2\xB1\xDD\xB5\xCE\xB2\xA8\xBA\xF1\xB0\xA1 \xB1\xB9\xB0\xED\xB7\xCE \xC8\xAF\xBF\xF8\xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("TEST : \xC7\xF6\xC0\xE7 \xB1\xB9\xB0\xED : %d"), empire_money);
castle_save();
return 1;
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("TEST : 황금두꺼비를 국고로 환원할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("TEST : \xC8\xB2\xB1\xDD\xB5\xCE\xB2\xA8\xBA\xF1\xB8\xA6 \xB1\xB9\xB0\xED\xB7\xCE \xC8\xAF\xBF\xF8\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
}
@ -487,14 +487,14 @@ namespace quest
if (!CMonarch::instance().IsMonarch(ch->GetPlayerID(), ch->GetEmpire()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주만이 사용 가능한 기능입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xB8\xB8\xC0\xCC \xBB\xE7\xBF\xEB \xB0\xA1\xB4\xC9\xC7\xD1 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9"));
return 0;
}
//군주 쿨타임 검사
if (!ch->IsMCOK(CHARACTER::MI_WARP))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d 초간 쿨타임이 적용중입니다."), ch->GetMCLTime(CHARACTER::MI_WARP));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d \xC3\xCA\xB0\xA3 \xC4\xF0\xC5\xB8\xC0\xD3\xC0\xCC \xC0\xFB\xBF\xEB\xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."), ch->GetMCLTime(CHARACTER::MI_WARP));
return 0;
}
@ -506,7 +506,7 @@ namespace quest
if (!CMonarch::instance().IsMoneyOk(WarpPrice, ch->GetEmpire()))
{
int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), NationMoney, WarpPrice);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), NationMoney, WarpPrice);
return 0;
}
@ -522,18 +522,18 @@ namespace quest
{
if (pkCCI->bEmpire != ch->GetEmpire())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("타제국 유저에게는 이동할수 없습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC5\xB8\xC1\xA6\xB1\xB9 \xC0\xAF\xC0\xFA\xBF\xA1\xB0\xD4\xB4\xC2 \xC0\xCC\xB5\xBF\xC7\xD2\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9"));
return 0;
}
if (pkCCI->bChannel != g_bChannel)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("해당 유저는 %d 채널에 있습니다. (현재 채널 %d)"), pkCCI->bChannel, g_bChannel);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC0\xAF\xC0\xFA\xB4\xC2 %d \xC3\xA4\xB3\xCE\xBF\xA1 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9. (\xC7\xF6\xC0\xE7 \xC3\xA4\xB3\xCE %d)"), pkCCI->bChannel, g_bChannel);
return 0;
}
if (!IsMonarchWarpZone(pkCCI->lMapIndex))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 이동할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
@ -544,7 +544,7 @@ namespace quest
else
{
//ch->ChatPacket(CHAT_TYPE_INFO, "You warp to (%d, %d)", pos.x, pos.y);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 에게로 이동합니다"), name.c_str());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xBF\xA1\xB0\xD4\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD5\xB4\xCF\xB4\xD9"), name.c_str());
ch->WarpSet(pos.x, pos.y);
//군주 돈 삭감
@ -566,13 +566,13 @@ namespace quest
{
if (tch->GetEmpire() != ch->GetEmpire())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("타제국 유저에게는 이동할수 없습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC5\xB8\xC1\xA6\xB1\xB9 \xC0\xAF\xC0\xFA\xBF\xA1\xB0\xD4\xB4\xC2 \xC0\xCC\xB5\xBF\xC7\xD2\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9"));
return 0;
}
if (!IsMonarchWarpZone(tch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 이동할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
@ -580,7 +580,7 @@ namespace quest
y = tch->GetY();
}
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 에게로 이동합니다"), name.c_str());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xBF\xA1\xB0\xD4\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD5\xB4\xCF\xB4\xD9"), name.c_str());
ch->WarpSet(x,y);
ch->Stop();
@ -604,22 +604,22 @@ namespace quest
if (CMonarch::instance().IsMonarch(ch->GetPlayerID(), ch->GetEmpire()))
{
ch->ChatPacket(CHAT_TYPE_INFO,LC_TEXT("나의 군주 정보"));
ch->ChatPacket(CHAT_TYPE_INFO,LC_TEXT("\xB3\xAA\xC0\xC7 \xB1\xBA\xC1\xD6 \xC1\xA4\xBA\xB8"));
for (int n = 1; n < 4; ++n)
{
if (n == ch->GetEmpire())
ch->ChatPacket(CHAT_TYPE_INFO,LC_TEXT("[%s군주] : %s 보유금액 %lld "), EMPIRE_NAME(n), p->name[n], p->money[n]);
ch->ChatPacket(CHAT_TYPE_INFO,LC_TEXT("[%s\xB1\xBA\xC1\xD6] : %s \xBA\xB8\xC0\xAF\xB1\xDD\xBE\xD7 %lld "), EMPIRE_NAME(n), p->name[n], p->money[n]);
else
ch->ChatPacket(CHAT_TYPE_INFO,LC_TEXT("[%s군주] : %s "), EMPIRE_NAME(n), p->name[n]);
ch->ChatPacket(CHAT_TYPE_INFO,LC_TEXT("[%s\xB1\xBA\xC1\xD6] : %s "), EMPIRE_NAME(n), p->name[n]);
}
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO,LC_TEXT("군주 정보"));
ch->ChatPacket(CHAT_TYPE_INFO,LC_TEXT("\xB1\xBA\xC1\xD6 \xC1\xA4\xBA\xB8"));
for (int n = 1; n < 4; ++n)
ch->ChatPacket(CHAT_TYPE_INFO,LC_TEXT("[%s군주] : %s "), EMPIRE_NAME(n), p->name[n]);
ch->ChatPacket(CHAT_TYPE_INFO,LC_TEXT("[%s\xB1\xBA\xC1\xD6] : %s "), EMPIRE_NAME(n), p->name[n]);
}
return 0;
@ -642,14 +642,14 @@ namespace quest
if (!CMonarch::instance().IsMonarch(ch->GetPlayerID(), ch->GetEmpire()))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주만이 사용 가능한 기능입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xB8\xB8\xC0\xCC \xBB\xE7\xBF\xEB \xB0\xA1\xB4\xC9\xC7\xD1 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9"));
return 0;
}
// 군주 쿨타임 검사
if (!ch->IsMCOK(CHARACTER::MI_TRANSFER))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d 초간 쿨타임이 적용중입니다."), ch->GetMCLTime(CHARACTER::MI_TRANSFER));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d \xC3\xCA\xB0\xA3 \xC4\xF0\xC5\xB8\xC0\xD3\xC0\xCC \xC0\xFB\xBF\xEB\xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."), ch->GetMCLTime(CHARACTER::MI_TRANSFER));
return 0;
}
@ -660,7 +660,7 @@ namespace quest
if (!CMonarch::instance().IsMoneyOk(WarpPrice, ch->GetEmpire()))
{
int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), NationMoney, WarpPrice);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), NationMoney, WarpPrice);
return 0;
}
@ -674,24 +674,24 @@ namespace quest
{
if (pkCCI->bEmpire != ch->GetEmpire())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 제국 유저는 소환할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xC1\xA6\xB1\xB9 \xC0\xAF\xC0\xFA\xB4\xC2 \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
if (pkCCI->bChannel != g_bChannel)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님은 %d 채널에 접속 중 입니다. (현재 채널: %d)"), name.c_str(), pkCCI->bChannel, g_bChannel);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xBA %d \xC3\xA4\xB3\xCE\xBF\xA1 \xC1\xA2\xBC\xD3 \xC1\xDF \xC0\xD4\xB4\xCF\xB4\xD9. (\xC7\xF6\xC0\xE7 \xC3\xA4\xB3\xCE: %d)"), name.c_str(), pkCCI->bChannel, g_bChannel);
return 0;
}
if (!IsMonarchWarpZone(pkCCI->lMapIndex))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 이동할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
if (!IsMonarchWarpZone(ch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 소환할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
@ -703,7 +703,7 @@ namespace quest
pgg.lY = ch->GetY();
P2P_MANAGER::instance().Send(&pgg, sizeof(TPacketGGTransfer));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님을 소환하였습니다."), name.c_str());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xBB \xBC\xD2\xC8\xAF\xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9."), name.c_str());
// 군주 돈 삭감
CMonarch::instance().SendtoDBDecMoney(WarpPrice, ch->GetEmpire(), ch);
@ -713,7 +713,7 @@ namespace quest
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("입력하신 이름을 가진 사용자가 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xD4\xB7\xC2\xC7\xCF\xBD\xC5 \xC0\xCC\xB8\xA7\xC0\xBB \xB0\xA1\xC1\xF8 \xBB\xE7\xBF\xEB\xC0\xDA\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
}
return 0;
@ -721,24 +721,24 @@ namespace quest
if (ch == tch)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("자신을 소환할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xDA\xBD\xC5\xC0\xBB \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
if (tch->GetEmpire() != ch->GetEmpire())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 제국 유저는 소환할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xC1\xA6\xB1\xB9 \xC0\xAF\xC0\xFA\xB4\xC2 \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
if (!IsMonarchWarpZone(tch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 이동할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
if (!IsMonarchWarpZone(ch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 소환할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
tch->WarpSet(ch->GetX(), ch->GetY(), ch->GetMapIndex());
@ -762,7 +762,7 @@ namespace quest
if (ch->IsMonarch() == false)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주만이 사용 가능한 기능입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xB8\xB8\xC0\xCC \xBB\xE7\xBF\xEB \xB0\xA1\xB4\xC9\xC7\xD1 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9"));
return 0;
}
@ -826,13 +826,13 @@ namespace quest
if (CMonarch::instance().IsMonarch(ch->GetPlayerID(), ch->GetEmpire()) == false)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("군주만이 사용 가능한 기능입니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xBA\xC1\xD6\xB8\xB8\xC0\xCC \xBB\xE7\xBF\xEB \xB0\xA1\xB4\xC9\xC7\xD1 \xB1\xE2\xB4\xC9\xC0\xD4\xB4\xCF\xB4\xD9"));
return 0;
}
if (ch->IsMCOK(CHARACTER::MI_TRANSFER) == false)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d 초간 쿨타임이 적용중입니다."), ch->GetMCLTime(CHARACTER::MI_TRANSFER));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d \xC3\xCA\xB0\xA3 \xC4\xF0\xC5\xB8\xC0\xD3\xC0\xCC \xC0\xFB\xBF\xEB\xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9."), ch->GetMCLTime(CHARACTER::MI_TRANSFER));
return 0;
}
@ -841,7 +841,7 @@ namespace quest
if (CMonarch::instance().IsMoneyOk(ciTransferCost, ch->GetEmpire()) == false)
{
int NationMoney = CMonarch::instance().GetMoney(ch->GetEmpire());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("국고에 돈이 부족합니다. 현재 : %u 필요금액 : %u"), NationMoney, ciTransferCost);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB1\xB9\xB0\xED\xBF\xA1 \xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD5\xB4\xCF\xB4\xD9. \xC7\xF6\xC0\xE7 : %u \xC7\xCA\xBF\xE4\xB1\xDD\xBE\xD7 : %u"), NationMoney, ciTransferCost);
return 0;
}
@ -857,25 +857,25 @@ namespace quest
{
if (pCCI->bEmpire != ch->GetEmpire())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 제국 유저는 소환할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xC1\xA6\xB1\xB9 \xC0\xAF\xC0\xFA\xB4\xC2 \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
if (pCCI->bChannel != g_bChannel)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님은 %d 채널에 접속중입니다. (현재 채널: %d)"),
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xBA %d \xC3\xA4\xB3\xCE\xBF\xA1 \xC1\xA2\xBC\xD3\xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9. (\xC7\xF6\xC0\xE7 \xC3\xA4\xB3\xCE: %d)"),
strTargetName.c_str(), pCCI->bChannel, g_bChannel);
return 0;
}
if (!IsMonarchWarpZone(pCCI->lMapIndex))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 이동할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
if (!IsMonarchWarpZone(ch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 소환할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
@ -886,14 +886,14 @@ namespace quest
packet.y = ch->GetY();
P2P_MANAGER::instance().Send(&packet, sizeof(TPacketMonarchGGTransfer));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("소환 요청을 보냈습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xD2\xC8\xAF \xBF\xE4\xC3\xBB\xC0\xBB \xBA\xB8\xB3\xC2\xBD\xC0\xB4\xCF\xB4\xD9"));
CMonarch::instance().SendtoDBDecMoney(ciTransferCost, ch->GetEmpire(), ch);
ch->SetMC(CHARACTER::MI_TRANSFER);
}
else
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("입력하신 이름을 가진 사용자가 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xD4\xB7\xC2\xC7\xCF\xBD\xC5 \xC0\xCC\xB8\xA7\xC0\xBB \xB0\xA1\xC1\xF8 \xBB\xE7\xBF\xEB\xC0\xDA\xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
}
@ -901,30 +901,30 @@ namespace quest
{
if (pTargetChar == ch)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("자신을 소환할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xDA\xBD\xC5\xC0\xBB \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
if (pTargetChar->GetEmpire() != ch->GetEmpire())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 제국 유저는 소환할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xC1\xA6\xB1\xB9 \xC0\xAF\xC0\xFA\xB4\xC2 \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
if (DISTANCE_APPROX(pTargetChar->GetX() - ch->GetX(), pTargetChar->GetY() - ch->GetY()) <= 5000)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s 님은 근처에 있습니다"), pTargetChar->GetName());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s \xB4\xD4\xC0\xBA \xB1\xD9\xC3\xB3\xBF\xA1 \xC0\xD6\xBD\xC0\xB4\xCF\xB4\xD9"), pTargetChar->GetName());
return 0;
}
if (!IsMonarchWarpZone(pTargetChar->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 이동할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
if (!IsMonarchWarpZone(ch->GetMapIndex()))
{
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("해당 지역으로 소환할 수 없습니다."));
ch->ChatPacket (CHAT_TYPE_INFO, LC_TEXT("\xC7\xD8\xB4\xE7 \xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xBC\xD2\xC8\xAF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return 0;
}
@ -937,7 +937,7 @@ namespace quest
event_create(monarch_transfer2_event, info, 1);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("소환 요청을 보냈습니다"));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBC\xD2\xC8\xAF \xBF\xE4\xC3\xBB\xC0\xBB \xBA\xB8\xB3\xC2\xBD\xC0\xB4\xCF\xB4\xD9"));
CMonarch::instance().SendtoDBDecMoney(ciTransferCost, ch->GetEmpire(), ch);
ch->SetMC(CHARACTER::MI_TRANSFER);

View File

@ -227,7 +227,7 @@ namespace quest
int iPulse = thecore_pulse();
if ( pkChr->GetExchange() || pkChr->GetMyShop() || pkChr->GetShopOwner() || pkChr->IsOpenSafebox() )
{
pkChr->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("거래창,창고 등을 연 상태에서는 다른곳으로 이동할수 없습니다" ));
pkChr->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("\xB0\xC5\xB7\xA1\xC3\xA2,\xC3\xA2\xB0\xED \xB5\xEE\xC0\xBB \xBF\xAC \xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD\xB4\xC2 \xB4\xD9\xB8\xA5\xB0\xF7\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xD2\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9" ));
return;
}
@ -235,7 +235,7 @@ namespace quest
//±³È¯ ÈÄ ½Ã°£Ã¼Å©
if ( iPulse - pkChr->GetExchangeTime() < PASSES_PER_SEC(60) )
{
pkChr->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("거래 후 1분 이내에는 다른지역으로 이동 할 수 없습니다." ) );
pkChr->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("\xB0\xC5\xB7\xA1 \xC8\xC4 1\xBA\xD0 \xC0\xCC\xB3\xBB\xBF\xA1\xB4\xC2 \xB4\xD9\xB8\xA5\xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9." ) );
return;
}
//END_PREVENT_PORTAL_AFTER_EXCHANGE
@ -243,7 +243,7 @@ namespace quest
{
if ( iPulse - pkChr->GetMyShopTime() < PASSES_PER_SEC(60) )
{
pkChr->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("거래 후 1분 이내에는 다른지역으로 이동 할 수 없습니다." ) );
pkChr->ChatPacket( CHAT_TYPE_INFO, LC_TEXT("\xB0\xC5\xB7\xA1 \xC8\xC4 1\xBA\xD0 \xC0\xCC\xB3\xBB\xBF\xA1\xB4\xC2 \xB4\xD9\xB8\xA5\xC1\xF6\xBF\xAA\xC0\xB8\xB7\xCE \xC0\xCC\xB5\xBF \xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9." ) );
return;
}
@ -400,12 +400,12 @@ namespace quest
{
if (dwVnums[i] == 1)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("돈 %d 냥을 획득했습니다."), dwCounts[i]);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB5\xB7 %d \xB3\xC9\xC0\xBB \xC8\xB9\xB5\xE6\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."), dwCounts[i]);
}
else if (dwVnums[i] == 2)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("나무에서 부터 신비한 빛이 나옵니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d의 경험치를 획득했습니다."), dwCounts[i]);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB3\xAA\xB9\xAB\xBF\xA1\xBC\xAD \xBA\xCE\xC5\xCD \xBD\xC5\xBA\xF1\xC7\xD1 \xBA\xFB\xC0\xCC \xB3\xAA\xBF\xC9\xB4\xCF\xB4\xD9."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%d\xC0\xC7 \xB0\xE6\xC7\xE8\xC4\xA1\xB8\xA6 \xC8\xB9\xB5\xE6\xC7\xDF\xBD\xC0\xB4\xCF\xB4\xD9."), dwCounts[i]);
}
}
}
@ -1864,16 +1864,16 @@ namespace quest
DWORD y;
} ws[TOWN_NUM] =
{
{"영안읍성", 4743, 9548},
{"임지곡", 3235, 9086},
{"자양현", 3531, 8829},
{"조안읍성", 638, 1664},
{"승룡곡", 1745, 1909},
{"복정현", 1455, 2400},
{"평무읍성", 9599, 2692},
{"방산곡", 8036, 2984},
{"박라현", 8639, 2460},
{"서한산", 4350, 2143},
{"\xBF\xB5\xBE\xC8\xC0\xBE\xBC\xBA", 4743, 9548},
{"\xC0\xD3\xC1\xF6\xB0\xEE", 3235, 9086},
{"\xC0\xDA\xBE\xE7\xC7\xF6", 3531, 8829},
{"\xC1\xB6\xBE\xC8\xC0\xBE\xBC\xBA", 638, 1664},
{"\xBD\xC2\xB7\xE6\xB0\xEE", 1745, 1909},
{"\xBA\xB9\xC1\xA4\xC7\xF6", 1455, 2400},
{"\xC6\xF2\xB9\xAB\xC0\xBE\xBC\xBA", 9599, 2692},
{"\xB9\xE6\xBB\xEA\xB0\xEE", 8036, 2984},
{"\xB9\xDA\xB6\xF3\xC7\xF6", 8639, 2460},
{"\xBC\xAD\xC7\xD1\xBB\xEA", 4350, 2143},
};
int idx = (int)lua_tonumber(L, 1);

View File

@ -577,7 +577,7 @@ namespace quest
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(pc);
if (ch)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("퀘스트를 로드하는 중입니다. 잠시만 기다려 주십시오."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC4\xF9\xBD\xBA\xC6\xAE\xB8\xA6 \xB7\xCE\xB5\xE5\xC7\xCF\xB4\xC2 \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9. \xC0\xE1\xBD\xC3\xB8\xB8 \xB1\xE2\xB4\xD9\xB7\xC1 \xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0."));
return;
}
@ -602,7 +602,7 @@ namespace quest
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(pc);
if (ch)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("퀘스트를 로드하는 중입니다. 잠시만 기다려 주십시오."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC4\xF9\xBD\xBA\xC6\xAE\xB8\xA6 \xB7\xCE\xB5\xE5\xC7\xCF\xB4\xC2 \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9. \xC0\xE1\xBD\xC3\xB8\xB8 \xB1\xE2\xB4\xD9\xB7\xC1 \xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0."));
}
return;
}
@ -627,7 +627,7 @@ namespace quest
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(pc);
if (ch)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("퀘스트를 로드하는 중입니다. 잠시만 기다려 주십시오."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC4\xF9\xBD\xBA\xC6\xAE\xB8\xA6 \xB7\xCE\xB5\xE5\xC7\xCF\xB4\xC2 \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9. \xC0\xE1\xBD\xC3\xB8\xB8 \xB1\xE2\xB4\xD9\xB7\xC1 \xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0."));
}
return false;
}
@ -654,7 +654,7 @@ namespace quest
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(pc);
if (ch)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("퀘스트를 로드하는 중입니다. 잠시만 기다려 주십시오."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC4\xF9\xBD\xBA\xC6\xAE\xB8\xA6 \xB7\xCE\xB5\xE5\xC7\xCF\xB4\xC2 \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9. \xC0\xE1\xBD\xC3\xB8\xB8 \xB1\xE2\xB4\xD9\xB7\xC1 \xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0."));
}
return false;
}
@ -696,7 +696,7 @@ namespace quest
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(pc);
if (ch)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("퀘스트를 로드하는 중입니다. 잠시만 기다려 주십시오."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC4\xF9\xBD\xBA\xC6\xAE\xB8\xA6 \xB7\xCE\xB5\xE5\xC7\xCF\xB4\xC2 \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9. \xC0\xE1\xBD\xC3\xB8\xB8 \xB1\xE2\xB4\xD9\xB7\xC1 \xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0."));
}
return false;
}
@ -750,7 +750,7 @@ namespace quest
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(pc);
if (ch)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("퀘스트를 로드하는 중입니다. 잠시만 기다려 주십시오."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC4\xF9\xBD\xBA\xC6\xAE\xB8\xA6 \xB7\xCE\xB5\xE5\xC7\xCF\xB4\xC2 \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9. \xC0\xE1\xBD\xC3\xB8\xB8 \xB1\xE2\xB4\xD9\xB7\xC1 \xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0."));
return false;
}
@ -1753,7 +1753,7 @@ namespace quest
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(pc);
if (ch)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("퀘스트를 로드하는 중입니다. 잠시만 기다려 주십시오."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC4\xF9\xBD\xBA\xC6\xAE\xB8\xA6 \xB7\xCE\xB5\xE5\xC7\xCF\xB4\xC2 \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9. \xC0\xE1\xBD\xC3\xB8\xB8 \xB1\xE2\xB4\xD9\xB7\xC1 \xC1\xD6\xBD\xCA\xBD\xC3\xBF\xC0."));
}
return false;
}

View File

@ -917,7 +917,7 @@ namespace quest
{
os << ",\"" << ScriptToString(AvailScript[i]->arg.c_str()) << '"';
}
os << ", '"<<LC_TEXT("닫기")<<"'";
os << ", '"<<LC_TEXT("\xB4\xDD\xB1\xE2")<<"'";
os << ")";
CQuestManager::ExecuteQuestScript(pc, "QUEST_CHAT_TEMP_QUEST", 0, os.str().c_str(), os.str().size(), &AvailScript, false);

View File

@ -623,7 +623,7 @@ namespace quest
{
if (m_bIsGivenReward)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<퀘스트> 이전에 같은 보상을 받은 적이 있어 다시 받지 않습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<\xC4\xF9\xBD\xBA\xC6\xAE> \xC0\xCC\xC0\xFC\xBF\xA1 \xB0\xB0\xC0\xBA \xBA\xB8\xBB\xF3\xC0\xBB \xB9\xDE\xC0\xBA \xC0\xFB\xC0\xCC \xC0\xD6\xBE\xEE \xB4\xD9\xBD\xC3 \xB9\xDE\xC1\xF6 \xBE\xCA\xBD\xC0\xB4\xCF\xB4\xD9."));
m_bIsGivenReward = false;
}

View File

@ -378,7 +378,7 @@ int CShop::Buy(LPCHARACTER ch, BYTE pos)
m_pkPC->PointChange(POINT_GOLD, dwPrice, false);
if (iVal > 0)
m_pkPC->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("판매금액의 %d %% 가 세금으로 나가게됩니다"), iVal);
m_pkPC->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC6\xC7\xB8\xC5\xB1\xDD\xBE\xD7\xC0\xC7 %d %% \xB0\xA1 \xBC\xBC\xB1\xDD\xC0\xB8\xB7\xCE \xB3\xAA\xB0\xA1\xB0\xD4\xB5\xCB\xB4\xCF\xB4\xD9"), iVal);
CMonarch::instance().SendtoDBAddMoney(dwTax, m_pkPC->GetEmpire(), m_pkPC);
}

View File

@ -112,7 +112,7 @@ bool CShopManager::StartShopping(LPCHARACTER pkChr, LPCHARACTER pkChrShopKeeper,
//PREVENT_TRADE_WINDOW
if (pkChr->IsOpenSafebox() || pkChr->GetExchange() || pkChr->GetMyShop() || pkChr->IsCubeOpen())
{
pkChr->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("다른 거래창이 열린상태에서는 상점거래를 할수 가 없습니다."));
pkChr->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB4\xD9\xB8\xA5 \xB0\xC5\xB7\xA1\xC3\xA2\xC0\xCC \xBF\xAD\xB8\xB0\xBB\xF3\xC5\xC2\xBF\xA1\xBC\xAD\xB4\xC2 \xBB\xF3\xC1\xA1\xB0\xC5\xB7\xA1\xB8\xA6 \xC7\xD2\xBC\xF6 \xB0\xA1 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return false;
}
//END_PREVENT_TRADE_WINDOW
@ -214,7 +214,7 @@ void CShopManager::Buy(LPCHARACTER ch, BYTE pos)
if (DISTANCE_APPROX(ch->GetX() - ch->GetShopOwner()->GetX(), ch->GetY() - ch->GetShopOwner()->GetY()) > 2000)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상점과의 거리가 너무 멀어 물건을 살 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xC1\xA1\xB0\xFA\xC0\xC7 \xB0\xC5\xB8\xAE\xB0\xA1 \xB3\xCA\xB9\xAB \xB8\xD6\xBE\xEE \xB9\xB0\xB0\xC7\xC0\xBB \xBB\xEC \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -271,7 +271,7 @@ void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount)
if (DISTANCE_APPROX(ch->GetX()-ch->GetShopOwner()->GetX(), ch->GetY()-ch->GetShopOwner()->GetY())>2000)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("상점과의 거리가 너무 멀어 물건을 팔 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xBB\xF3\xC1\xA1\xB0\xFA\xC0\xC7 \xB0\xC5\xB8\xAE\xB0\xA1 \xB3\xCA\xB9\xAB \xB8\xD6\xBE\xEE \xB9\xB0\xB0\xC7\xC0\xBB \xC6\xC8 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -282,7 +282,7 @@ void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount)
if (item->IsEquipped() == true)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("착용 중인 아이템은 판매할 수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC2\xF8\xBF\xEB \xC1\xDF\xC0\xCE \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xBA \xC6\xC7\xB8\xC5\xC7\xD2 \xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -335,7 +335,7 @@ void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount)
if (GOLD_MAX <= nTotalMoney)
{
SPDLOG_ERROR("[OVERFLOW_GOLD] id {} name {} gold {}", ch->GetPlayerID(), ch->GetName(), ch->GetGold());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20억냥이 초과하여 물품을 팔수 없습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20\xBE\xEF\xB3\xC9\xC0\xCC \xC3\xCA\xB0\xFA\xC7\xCF\xBF\xA9 \xB9\xB0\xC7\xB0\xC0\xBB \xC6\xC8\xBC\xF6 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
return;
}
@ -343,7 +343,7 @@ void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount)
SPDLOG_DEBUG("SHOP: SELL: {} item name: {}(x{}):{} price: {}", ch->GetName(), item->GetName(), bCount, item->GetID(), dwPrice);
if (iVal > 0)
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("판매금액의 %d %% 가 세금으로 나가게됩니다"), iVal);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC6\xC7\xB8\xC5\xB1\xDD\xBE\xD7\xC0\xC7 %d %% \xB0\xA1 \xBC\xBC\xB1\xDD\xC0\xB8\xB7\xCE \xB3\xAA\xB0\xA1\xB0\xD4\xB5\xCB\xB4\xCF\xB4\xD9"), iVal);
DBManager::instance().SendMoneyLog(MONEY_LOG_SHOP, item->GetVnum(), dwPrice);

View File

@ -5,14 +5,14 @@
char g_nation_name[4][32] =
{
"",
"신수국",
"천조국",
"진노국",
"\xBD\xC5\xBC\xF6\xB1\xB9",
"\xC3\xB5\xC1\xB6\xB1\xB9",
"\xC1\xF8\xB3\xEB\xB1\xB9",
};
// LC_TEXT("신수국")
// LC_TEXT("천조국")
// LC_TEXT("진노국")
// LC_TEXT("\xBD\xC5\xBC\xF6\xB1\xB9")
// LC_TEXT("\xC3\xB5\xC1\xB6\xB1\xB9")
// LC_TEXT("\xC1\xF8\xB3\xEB\xB1\xB9")
int g_start_map[4] =
{

View File

@ -340,7 +340,7 @@ void CThreeWayWar::onDead(LPCHARACTER pChar, LPCHARACTER pkKiller)
{
char szBuf[64 + 1];
snprintf(szBuf, sizeof(szBuf), LC_TEXT("현재 스코어 신수국:%d 천조국:%d 진노국:%d"),
snprintf(szBuf, sizeof(szBuf), LC_TEXT("\xC7\xF6\xC0\xE7 \xBD\xBA\xC4\xDA\xBE\xEE \xBD\xC5\xBC\xF6\xB1\xB9:%d \xC3\xB5\xC1\xB6\xB1\xB9:%d \xC1\xF8\xB3\xEB\xB1\xB9:%d"),
GetKillScore(1), GetKillScore(2), GetKillScore(3));
SendNoticeMap(szBuf, GetSungziMapIndex(), false);
@ -406,9 +406,9 @@ void CThreeWayWar::onDead(LPCHARACTER pChar, LPCHARACTER pkKiller)
//----------------------
const std::string Nation(EMPIRE_NAME(bLoseEmpire));
const std::string Script(
LC_TEXT("성지의 마왕: 너희 ") +
LC_TEXT("\xBC\xBA\xC1\xF6\xC0\xC7 \xB8\xB6\xBF\xD5: \xB3\xCA\xC8\xF1 ") +
Nation +
LC_TEXT("녀석들은 이곳 성지에 있을 자격을 잃었다. 모두 성지에서 물러나거라~~[ENTER][ENTER] 10초 후에 모두 마을로 이동하게 됩니다. ") +
LC_TEXT("\xB3\xE0\xBC\xAE\xB5\xE9\xC0\xBA \xC0\xCC\xB0\xF7 \xBC\xBA\xC1\xF6\xBF\xA1 \xC0\xD6\xC0\xBB \xC0\xDA\xB0\xDD\xC0\xBB \xC0\xD2\xBE\xFA\xB4\xD9. \xB8\xF0\xB5\xCE \xBC\xBA\xC1\xF6\xBF\xA1\xBC\xAD \xB9\xB0\xB7\xAF\xB3\xAA\xB0\xC5\xB6\xF3~~[ENTER][ENTER] 10\xC3\xCA \xC8\xC4\xBF\xA1 \xB8\xF0\xB5\xCE \xB8\xB6\xC0\xBB\xB7\xCE \xC0\xCC\xB5\xBF\xC7\xCF\xB0\xD4 \xB5\xCB\xB4\xCF\xB4\xD9. ") +
"[ENTER][DONE]"
);
@ -418,7 +418,7 @@ void CThreeWayWar::onDead(LPCHARACTER pChar, LPCHARACTER pkKiller)
// °øÁö ÇÑ¹æ ³¯·ÁÁÜ.
//----------------------
char szNotice[512+1];
snprintf(szNotice, sizeof(szNotice), LC_TEXT("삼거리 전투에서 %s 국가가 가장먼저 탈락을 하였습니다"), Nation.c_str());
snprintf(szNotice, sizeof(szNotice), LC_TEXT("\xBB\xEF\xB0\xC5\xB8\xAE \xC0\xFC\xC5\xF5\xBF\xA1\xBC\xAD %s \xB1\xB9\xB0\xA1\xB0\xA1 \xB0\xA1\xC0\xE5\xB8\xD5\xC0\xFA \xC5\xBB\xB6\xF4\xC0\xBB \xC7\xCF\xBF\xB4\xBD\xC0\xB4\xCF\xB4\xD9"), Nation.c_str());
BroadcastNotice(szNotice);
snprintf(szNotice, sizeof(szNotice), "First Step: %s exclusion", Nation.c_str());
@ -496,7 +496,7 @@ void CThreeWayWar::onDead(LPCHARACTER pChar, LPCHARACTER pkKiller)
//------------------------------
{
char szBuf[64 + 1];
snprintf(szBuf, sizeof(szBuf), LC_TEXT("현재 스코어 신수국:%d 천조국:%d 진노국:%d"),
snprintf(szBuf, sizeof(szBuf), LC_TEXT("\xC7\xF6\xC0\xE7 \xBD\xBA\xC4\xDA\xBE\xEE \xBD\xC5\xBC\xF6\xB1\xB9:%d \xC3\xB5\xC1\xB6\xB1\xB9:%d \xC1\xF8\xB3\xEB\xB1\xB9:%d"),
GetKillScore(1), GetKillScore(2), GetKillScore(3));
SendNoticeMap(szBuf, GetSungziMapIndex(), false);
@ -510,7 +510,7 @@ void CThreeWayWar::onDead(LPCHARACTER pChar, LPCHARACTER pkKiller)
const std::string EmpireName(EMPIRE_NAME(nVictoryEmpireIndex));
const std::string Script(
EmpireName +
LC_TEXT(". 너희가 성지의 수호자를 잡게 된다면 너희는 성지의 주인이 된다.[ENTER][ENTER] ") +
LC_TEXT(". \xB3\xCA\xC8\xF1\xB0\xA1 \xBC\xBA\xC1\xF6\xC0\xC7 \xBC\xF6\xC8\xA3\xC0\xDA\xB8\xA6 \xC0\xE2\xB0\xD4 \xB5\xC8\xB4\xD9\xB8\xE9 \xB3\xCA\xC8\xF1\xB4\xC2 \xBC\xBA\xC1\xF6\xC0\xC7 \xC1\xD6\xC0\xCE\xC0\xCC \xB5\xC8\xB4\xD9.[ENTER][ENTER] ") +
"[ENTER][DONE]");
struct packet_script pack_script;

View File

@ -382,8 +382,8 @@ void CWarMap::IncMember(LPCHARACTER ch)
++m_iObserverCount;
SPDLOG_DEBUG("WarMap +o {}", m_iObserverCount);
ch->SetObserverMode(true);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("관전 모드로 길드전에 참가하셨습니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("자신을 선택하시면 밖으로 나갈 수 있는 <관람 종료> 버튼이 나옵니다."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xB0\xFC\xC0\xFC \xB8\xF0\xB5\xE5\xB7\xCE \xB1\xE6\xB5\xE5\xC0\xFC\xBF\xA1 \xC2\xFC\xB0\xA1\xC7\xCF\xBC\xCC\xBD\xC0\xB4\xCF\xB4\xD9."));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("\xC0\xDA\xBD\xC5\xC0\xBB \xBC\xB1\xC5\xC3\xC7\xCF\xBD\xC3\xB8\xE9 \xB9\xDB\xC0\xB8\xB7\xCE \xB3\xAA\xB0\xA5 \xBC\xF6 \xC0\xD6\xB4\xC2 <\xB0\xFC\xB6\xF7 \xC1\xBE\xB7\xE1> \xB9\xF6\xC6\xB0\xC0\xCC \xB3\xAA\xBF\xC9\xB4\xCF\xB4\xD9."));
}
UpdateUserCount();
@ -480,8 +480,8 @@ void CWarMap::CheckWarEnd()
if (m_pkTimeoutEvent)
return;
Notice(LC_TEXT("길드전에 참가한 상대방 길드원이 아무도 없습니다."));
Notice(LC_TEXT("1분 이내에 아무도 접속하지 않으면 길드전이 자동 종료됩니다."));
Notice(LC_TEXT("\xB1\xE6\xB5\xE5\xC0\xFC\xBF\xA1 \xC2\xFC\xB0\xA1\xC7\xD1 \xBB\xF3\xB4\xEB\xB9\xE6 \xB1\xE6\xB5\xE5\xBF\xF8\xC0\xCC \xBE\xC6\xB9\xAB\xB5\xB5 \xBE\xF8\xBD\xC0\xB4\xCF\xB4\xD9."));
Notice(LC_TEXT("1\xBA\xD0 \xC0\xCC\xB3\xBB\xBF\xA1 \xBE\xC6\xB9\xAB\xB5\xB5 \xC1\xA2\xBC\xD3\xC7\xCF\xC1\xF6 \xBE\xCA\xC0\xB8\xB8\xE9 \xB1\xE6\xB5\xE5\xC0\xFC\xC0\xCC \xC0\xDA\xB5\xBF \xC1\xBE\xB7\xE1\xB5\xCB\xB4\xCF\xB4\xD9."));
SPDLOG_DEBUG("CheckWarEnd: Timeout begin {} vs {}", m_TeamData[0].dwID, m_TeamData[1].dwID);
@ -523,7 +523,7 @@ void CWarMap::Timeout()
if (get_dword_time() - m_dwStartTime < 60000 * 5)
{
Notice(LC_TEXT("길드전이 일찍 종료되어 무승부로 판정 되었습니다. (5분이 지나지 않음)"));
Notice(LC_TEXT("\xB1\xE6\xB5\xE5\xC0\xFC\xC0\xCC \xC0\xCF\xC2\xEF \xC1\xBE\xB7\xE1\xB5\xC7\xBE\xEE \xB9\xAB\xBD\xC2\xBA\xCE\xB7\xCE \xC6\xC7\xC1\xA4 \xB5\xC7\xBE\xFA\xBD\xC0\xB4\xCF\xB4\xD9. (5\xBA\xD0\xC0\xCC \xC1\xF6\xB3\xAA\xC1\xF6 \xBE\xCA\xC0\xBD)"));
dwWinner = 0;
dwLoser = 0;
}

View File

@ -78,8 +78,8 @@ namespace marriage
m_pEndEvent = event_create(wedding_end_event, info, PASSES_PER_SEC(5));
Notice(LC_TEXT("결혼식이 종료됩니다."));
Notice(LC_TEXT("자동으로 나가게됩니다."));
Notice(LC_TEXT("\xB0\xE1\xC8\xA5\xBD\xC4\xC0\xCC \xC1\xBE\xB7\xE1\xB5\xCB\xB4\xCF\xB4\xD9."));
Notice(LC_TEXT("\xC0\xDA\xB5\xBF\xC0\xB8\xB7\xCE \xB3\xAA\xB0\xA1\xB0\xD4\xB5\xCB\xB4\xCF\xB4\xD9."));
for (itertype(m_set_pkChr) it = m_set_pkChr.begin(); it != m_set_pkChr.end(); ++it)
{