encoding #20

Merged
Exynox merged 22 commits from Tr0n/server:encoding into nightly 2024-04-07 08:59:38 +03:00
6 changed files with 53 additions and 55 deletions
Showing only changes of commit 326c134f9e - Show all commits

View File

@ -1135,11 +1135,9 @@ void CGuildManager::ProcessReserveWar()
pk->SetLastNoticeMin(iMin);
if (!g_stLocale.compare("euckr"))
// "%s 길드와 %s 길드의 전쟁이 약 %d분 후 시작 됩니다!"
CClientManager::instance().SendNotice("%s \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD %s \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \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\xEF\xBF\xBD \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD \xEF\xBF\xBD\xCB\xB4\xCF\xB4\xEF\xBF\xBD!", r_1.szName, r_2.szName, iMin);
CClientManager::instance().SendNotice("The war between guild %s and guild %s will begin in approximately %d minutes!", r_1.szName, r_2.szName, iMin);
else if (!g_stLocale.compare("gb2312"))
// "%s 곤삔뵨 %s 곤삔돨곤삔濫轢쉥瞳 %d롸爐빈역迦!"
CClientManager::instance().SendNotice("%s \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD %s \xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xC4\xB0\xEF\xBF\xBD\xEF\xBF\xBD\xD5\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\xD3\xBA\xEF\xBF\xBD\xCA\xBC!", r_1.szName, r_2.szName, iMin);
CClientManager::instance().SendNotice("The war between guild %s and guild %s will begin in approximately %d minutes!", r_1.szName, r_2.szName, iMin);
}
}
}

View File

@ -102,14 +102,14 @@ EVENTFUNC(battle_arena_event)
case 0:
{
++pInfo->state;
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!!!"));
BroadcastNotice(LC_TEXT("Five minutes until the monsters attack!!!"));
}
return test_server ? PASSES_PER_SEC(60) : PASSES_PER_SEC(60*4);
case 1:
{
++pInfo->state;
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!!!"));
BroadcastNotice(LC_TEXT("One minute left until the monsters attack!!!"));
}
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("\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."));
BroadcastNotice(LC_TEXT("Monsters have started attacking your castle."));
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("\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);
SendNoticeMap(LC_TEXT("Evil energy gathers at the center altar."), pInfo->nMapIndex, false);
}
else
{
@ -150,7 +150,7 @@ EVENTFUNC(battle_arena_event)
if ( pInfo->wait_count >= 5 )
{
pInfo->state++;
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);
SendNoticeMap(LC_TEXT("The monsters are showing signs of retreating."), pInfo->nMapIndex, false);
}
else
{
@ -163,8 +163,8 @@ EVENTFUNC(battle_arena_event)
case 4 :
{
pInfo->state++;
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);
SendNoticeMap(LC_TEXT("The monsters began to retreat."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("After a while, you'll return to the village."), 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("\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);
SendNoticeMap(LC_TEXT("The monster boss has appeared."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("You have 30 minutes to defeat the boss."), 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("\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);
SendNoticeMap(LC_TEXT("You have defeated the boss and all of his minions."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("After a while, you'll return to the village."), pInfo->nMapIndex, false);
pInfo->state = 5;
@ -212,8 +212,8 @@ EVENTFUNC(battle_arena_event)
if ( pInfo->wait_count >= 6 )
{
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);
SendNoticeMap(LC_TEXT("The monsters have retreated."), pInfo->nMapIndex, false);
SendNoticeMap(LC_TEXT("After a while, you'll return to the village."), 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\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));
snprintf(szBuf, sizeof(szBuf), LC_TEXT("Monsters are marching on %s's castle."), EMPIRE_NAME(m_nEmpire));
BroadcastNotice(szBuf);
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."));
BroadcastNotice(LC_TEXT("We will attack the castle in 10 minutes."));
if (m_pEvent != NULL) {
event_cancel(&m_pEvent);

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, "\xC0\xE5\xC2\xF8\xC7\xD1 \xB0\xC7 \xB5\xEE\xB7\xCF\xC7\xD2 \xBC\xF6 \xBE\xF8\xBE\xEE.");
ch->ChatPacket(CHAT_TYPE_INFO, "I can't register anything that's equipped.");
return;
}
if (GetAuctionItemInfo (item->GetID()))
{
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
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?");
ch->ChatPacket(CHAT_TYPE_INFO, "I'm already registered. What the heck?");
return;
}
if (item->GetWindow() == AUCTION)
{
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
ch->ChatPacket(CHAT_TYPE_INFO, "\xBE\xEB \xB6\xC7 \xB9\xB9\xB3\xC4..");
ch->ChatPacket(CHAT_TYPE_INFO, "What the hell is this...");
return;
}
@ -918,21 +918,21 @@ void AuctionManager::enroll_sale (LPCHARACTER ch, LPITEM item, DWORD wisher_id,
}
if (item->IsEquipped())
{
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.");
ch->ChatPacket(CHAT_TYPE_INFO, "I can't register anything that's equipped.");
return;
}
if (GetSaleItemInfo (item->GetID()))
{
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
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?");
ch->ChatPacket(CHAT_TYPE_INFO, "I'm already registered. What the heck?");
return;
}
if (item->GetWindow() == AUCTION)
{
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
ch->ChatPacket(CHAT_TYPE_INFO, "\xBE\xEB \xB6\xC7 \xB9\xB9\xB3\xC4..");
ch->ChatPacket(CHAT_TYPE_INFO, "What the hell is this...");
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, "\xC0\xE7\xC0\xD4\xC2\xFB\xC0\xBB \xC7\xCF\xB6\xF5 \xB8\xBB\xC0\xCC\xB4\xD9.");
ch->ChatPacket (CHAT_TYPE_INFO, "Re-bid.");
}
if (ch->GetGold() < bid_price)
{
ch->ChatPacket(CHAT_TYPE_INFO, "\xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD8");
ch->ChatPacket(CHAT_TYPE_INFO, "I don't have enough money");
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, "\xC1\xEF\xB1\xB8 \xC7\xD2 \xBC\xF6 \xBE\xF6\xBC\xAD");
ch->ChatPacket(CHAT_TYPE_INFO, "Improvisation");
return;
}
if (ch->GetGold() < item_info->get_impur_price())
{
ch->ChatPacket(CHAT_TYPE_INFO, "\xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD8");
ch->ChatPacket(CHAT_TYPE_INFO, "I don't have enough money");
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, "\xC0\xDA\xB8\xAE\xB0\xA1 \xBE\xF6\xBC\xAD");
ch->ChatPacket(CHAT_TYPE_INFO, "Tight Spot");
return;
}
@ -1069,13 +1069,13 @@ void AuctionManager::rebid (LPCHARACTER ch, DWORD item_id, int bid_price)
if (lock)
{
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xD4\xC2\xFB \xC1\xDF\xC0\xCC\xBE\xDF.");
ch->ChatPacket(CHAT_TYPE_INFO, "You're bidding.");
return;
}
if (ch->GetGold() + money < bid_price)
{
ch->ChatPacket(CHAT_TYPE_INFO, "\xB5\xB7\xC0\xCC \xBA\xCE\xC1\xB7\xC7\xD8");
ch->ChatPacket(CHAT_TYPE_INFO, "I don't have enough money");
return;
}
@ -1101,14 +1101,14 @@ void AuctionManager::bid_cancel (LPCHARACTER ch, DWORD item_id)
if (lock)
{
ch->ChatPacket(CHAT_TYPE_INFO, "\xC0\xD4\xC2\xFB \xC1\xDF\xC0\xCC\xBE\xDF.");
ch->ChatPacket(CHAT_TYPE_INFO, "You're bidding.");
return;
}
TAuctionItemInfo* item_info = GetAuctionItemInfo(item_id);
if (item_info->get_bidder_id() == ch->GetPlayerID())
{
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.");
ch->ChatPacket(CHAT_TYPE_INFO, "You're the highest bidder. I can't cancel.");
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, "\xB0\xE6\xB8\xC5\xC0\xE5\xBF\xA1 \xB5\xEE\xB7\xCF\xC7\xDF\xBE\xEE.");
ch->ChatPacket(CHAT_TYPE_INFO, "You've registered for the auction.");
}
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, "\xB0\xE6\xB8\xC5\xC0\xE5\xBF\xA1 \xB5\xEE\xB7\xCF\xC7\xCF\xC1\xF6 \xB8\xF8\xC7\xDF\xBE\xEE.");
ch->ChatPacket(CHAT_TYPE_INFO, "Failed to register for the auction house.");
}
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, "\xC6\xC7\xB8\xC5\xC0\xE5\xBF\xA1 \xB5\xEE\xB7\xCF\xC7\xDF\xBE\xEE.");
ch->ChatPacket(CHAT_TYPE_INFO, "You've signed up for a storefront.");
}
break;
}
@ -1193,7 +1193,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
ch->AutoGiveItem (item, true);
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.");
ch->ChatPacket(CHAT_TYPE_INFO, "Failed to enroll in a storefront.");
}
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, "\xBB\xF0\xB4\xCF\xB4\xD9\xBF\xA1 \xB5\xEE\xB7\xCF\xC7\xDF\xBE\xEE.");
ch->ChatPacket(CHAT_TYPE_INFO, "Signed Up.");
}
break;
}
@ -1218,7 +1218,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
{
if (ch != NULL)
{
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.");
ch->ChatPacket(CHAT_TYPE_INFO, "Failed to sign up.");
}
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, "\xC0\xD4\xC2\xFB\xC7\xDF\xBE\xEE.");
ch->ChatPacket(CHAT_TYPE_INFO, "You bid.");
}
}
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, "\xC1\xEF\xB1\xB8 \xC7\xD8\xB9\xF6\xB7\xC8\xBE\xEE.");
ch->ChatPacket(CHAT_TYPE_INFO, "I improvised.");
}
}
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, "\xB0\xA1\xC1\xAE\xBF\xD4\xBE\xEE.");
ch->ChatPacket(CHAT_TYPE_INFO, "Imported.");
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, "\xC3\xEB\xBC\xD2\xC7\xDF\xBE\xEE.");
ch->ChatPacket(CHAT_TYPE_INFO, "Canceled.");
}
}
break;

View File

@ -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 \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));
pAttacker->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s Block! (%d%%)"), GetName(), GetPoint(POINT_BLOCK));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s Block! (%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 \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));
pAttacker->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s Miss! (%d%%)"), GetName(), GetPoint(POINT_DODGE));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s Miss! (%d%%)"), GetName(), GetPoint(POINT_DODGE));
}
SendDamagePacket(pAttacker, 0, DAMAGE_DODGE);
@ -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]\xB0\xA1 \xB0\xF8\xB0\xDD \xC0\xA7\xC4\xA1: %d %d"), pAttacker->GetName(), (DWORD) pAttacker->GetVID(), pAttacker->GetX(), pAttacker->GetY());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s[%d]attack location: %d %d"), pAttacker->GetName(), (DWORD) pAttacker->GetVID(), pAttacker->GetX(), pAttacker->GetY());
}
}
@ -3187,7 +3187,7 @@ void CHARACTER::SetVictim(LPCHARACTER pkVictim)
if (!pkVictim)
{
if (0 != (DWORD)m_kVIDVictim)
MonsterLog("\xB0\xF8\xB0\xDD \xB4\xEB\xBB\xF3\xC0\xBB \xC7\xD8\xC1\xA6");
MonsterLog("Disable the attack target");
m_kVIDVictim.Reset();
battle_end(this);
@ -3195,7 +3195,7 @@ void CHARACTER::SetVictim(LPCHARACTER pkVictim)
else
{
if (m_kVIDVictim != pkVictim->GetVID())
MonsterLog("\xB0\xF8\xB0\xDD \xB4\xEB\xBB\xF3\xC0\xBB \xBC\xB3\xC1\xA4: %s", pkVictim->GetName());
MonsterLog("Set the attack target: %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("\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."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Dragon Soul Alchemy is not active"));
return false;
}

View File

@ -17,7 +17,7 @@ bool CHARACTER::StartRiding()
{
if (IsDead() == true)
{
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."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot ride a Horse while downed."));
return false;
}
@ -343,7 +343,7 @@ STM
{
ChatPacket(CHAT_TYPE_COMMAND, "horse_state %d %d %d", GetHorseLevel(), iHealthGrade, iStaminaGrade);
// FIX : 클라이언트에 "\xB8\xBB \xBB\xF3\xC5\xC2 \xB9\xF6\xC7\xC1" 아이콘을 표시하지 않을 목적으로 함수 초입에 return함으로써 아래 코드를 무시한다면
// FIX : 클라이언트에 "말 상태 버프" 아이콘을 표시하지 않을 목적으로 함수 초입에 return함으로써 아래 코드를 무시한다면
// 말을 무한대로 소환하는 무시무시한 버그가 생김.. 정확한 원인은 파악 안해봐서 모름.
m_bSendHorseLevel = GetHorseLevel();
m_bSendHorseHealthGrade = iHealthGrade;