text encoding fixed
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#include "stdafx.h"
|
||||
#include "stdafx.h"
|
||||
#include "utils.h"
|
||||
#include "config.h"
|
||||
#include "desc.h"
|
||||
@@ -48,7 +48,7 @@ bool timed_event_cancel(LPCHARACTER ch)
|
||||
}
|
||||
|
||||
/* RECALL_DELAY
|
||||
차후 전투로 인해 귀환부 딜레이가 취소 되어야 할 경우 주석 해제
|
||||
차후 전투로 인해 귀환부 딜레이가 취소 되어야 할 경우 주석 해제
|
||||
if (ch->m_pk_RecallEvent)
|
||||
{
|
||||
event_cancel(&ch->m_pkRecallEvent);
|
||||
@@ -61,11 +61,11 @@ bool timed_event_cancel(LPCHARACTER ch)
|
||||
|
||||
bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim)
|
||||
{
|
||||
// 상대방이 죽었으면 중단한다.
|
||||
// 상대방이 죽었으면 중단한다.
|
||||
if (victim->IsDead())
|
||||
return false;
|
||||
|
||||
// 안전지대면 중단
|
||||
// 안전지대면 중단
|
||||
{
|
||||
SECTREE *sectree = NULL;
|
||||
|
||||
@@ -79,7 +79,7 @@ bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim)
|
||||
}
|
||||
|
||||
|
||||
// 내가 죽었으면 중단한다.
|
||||
// 내가 죽었으면 중단한다.
|
||||
if (ch->IsStun() || ch->IsDead())
|
||||
return false;
|
||||
|
||||
@@ -121,7 +121,7 @@ int battle_melee_attack(LPCHARACTER ch, LPCHARACTER victim)
|
||||
if (test_server&&ch->IsPC())
|
||||
sys_log(0, "battle_melee_attack : [%s] attack to [%s]", ch->GetName(), victim->GetName());
|
||||
|
||||
// 거리 체크
|
||||
// 거리 체크
|
||||
int distance = DISTANCE_APPROX(ch->GetX() - victim->GetX(), ch->GetY() - victim->GetY());
|
||||
|
||||
if (!victim->IsBuilding())
|
||||
@@ -130,12 +130,12 @@ int battle_melee_attack(LPCHARACTER ch, LPCHARACTER victim)
|
||||
|
||||
if (false == ch->IsPC())
|
||||
{
|
||||
// 몬스터의 경우 몬스터 공격 거리를 사용
|
||||
// 몬스터의 경우 몬스터 공격 거리를 사용
|
||||
max = (int) (ch->GetMobAttackRange() * 1.15f);
|
||||
}
|
||||
else
|
||||
{
|
||||
// PC일 경우 상대가 melee 몹일 경우 몹의 공격 거리가 최대 공격 거리
|
||||
// PC일 경우 상대가 melee 몹일 경우 몹의 공격 거리가 최대 공격 거리
|
||||
if (false == victim->IsPC() && BATTLE_TYPE_MELEE == victim->GetMobBattleType())
|
||||
max = MAX(300, (int) (victim->GetMobAttackRange() * 1.15f));
|
||||
}
|
||||
@@ -150,10 +150,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("전투가 시작 되어 취소 되었습니다."));
|
||||
|
||||
if (timed_event_cancel(victim))
|
||||
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("전투가 시작 되어 취소 되었습니다."));
|
||||
victim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("전투가 시작 되어 취소 되었습니다."));
|
||||
|
||||
ch->SetPosition(POS_FIGHTING);
|
||||
ch->SetVictim(victim);
|
||||
@@ -166,7 +166,7 @@ int battle_melee_attack(LPCHARACTER ch, LPCHARACTER victim)
|
||||
return (ret);
|
||||
}
|
||||
|
||||
// 실제 GET_BATTLE_VICTIM을 NULL로 만들고 이벤트를 캔슬 시킨다.
|
||||
// 실제 GET_BATTLE_VICTIM을 NULL로 만들고 이벤트를 캔슬 시킨다.
|
||||
void battle_end_ex(LPCHARACTER ch)
|
||||
{
|
||||
if (ch->IsPosition(POS_FIGHTING))
|
||||
@@ -213,7 +213,7 @@ float CalcAttackRating(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, bool bIgnor
|
||||
int iARSrc;
|
||||
int iERSrc;
|
||||
|
||||
if (LC_IsYMIR()) // 천마
|
||||
if (LC_IsYMIR()) // 천마
|
||||
{
|
||||
iARSrc = MIN(90, pkAttacker->GetPolymorphPoint(POINT_DX));
|
||||
iERSrc = MIN(90, pkVictim->GetPolymorphPoint(POINT_DX));
|
||||
@@ -243,11 +243,11 @@ float CalcAttackRating(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, bool bIgnor
|
||||
|
||||
int CalcAttBonus(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, int iAtk)
|
||||
{
|
||||
// PvP에는 적용하지않음
|
||||
// PvP에는 적용하지않음
|
||||
if (!pkVictim->IsPC())
|
||||
iAtk += pkAttacker->GetMarriageBonus(UNIQUE_ITEM_MARRIAGE_ATTACK_BONUS);
|
||||
|
||||
// PvP에는 적용하지않음
|
||||
// PvP에는 적용하지않음
|
||||
if (!pkAttacker->IsPC())
|
||||
{
|
||||
int iReduceDamagePct = pkVictim->GetMarriageBonus(UNIQUE_ITEM_MARRIAGE_TRANSFER_DAMAGE);
|
||||
@@ -332,9 +332,9 @@ int CalcAttBonus(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, int iAtk)
|
||||
}
|
||||
}
|
||||
|
||||
//[ mob -> PC ] 원소 속성 방어 적용
|
||||
//[ mob -> PC ] 원소 속성 방어 적용
|
||||
//2013/01/17
|
||||
//몬스터 속성공격 데미지의 30%에 해당하는 수치에만 저항이 적용됨.
|
||||
//몬스터 속성공격 데미지의 30%에 해당하는 수치에만 저항이 적용됨.
|
||||
if (pkAttacker->IsNPC() && pkVictim->IsPC())
|
||||
{
|
||||
if (pkAttacker->IsRaceFlag(RACE_FLAG_ATT_ELEC))
|
||||
@@ -558,7 +558,7 @@ int CalcArrowDamage(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, LPITEM pkBow,
|
||||
if (!pkArrow)
|
||||
return 0;
|
||||
|
||||
// 타격치 계산부
|
||||
// 타격치 계산부
|
||||
int iDist = (int) (DISTANCE_SQRT(pkAttacker->GetX() - pkVictim->GetX(), pkAttacker->GetY() - pkVictim->GetY()));
|
||||
//int iGap = (iDist / 100) - 5 - pkBow->GetValue(5) - pkAttacker->GetPoint(POINT_BOW_DISTANCE);
|
||||
int iGap = (iDist / 100) - 5 - pkAttacker->GetPoint(POINT_BOW_DISTANCE);
|
||||
@@ -618,7 +618,7 @@ int CalcArrowDamage(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, LPITEM pkBow,
|
||||
|
||||
void NormalAttackAffect(LPCHARACTER pkAttacker, LPCHARACTER pkVictim)
|
||||
{
|
||||
// 독 공격은 특이하므로 특수 처리
|
||||
// 독 공격은 특이하므로 특수 처리
|
||||
if (pkAttacker->GetPoint(POINT_POISON_PCT) && !pkVictim->IsAffectFlag(AFF_POISON))
|
||||
{
|
||||
if (number(1, 100) <= pkAttacker->GetPoint(POINT_POISON_PCT))
|
||||
@@ -646,7 +646,7 @@ int battle_hit(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, int & iRetDam)
|
||||
|
||||
NormalAttackAffect(pkAttacker, pkVictim);
|
||||
|
||||
// 데미지 계산
|
||||
// 데미지 계산
|
||||
//iDam = iDam * (100 - pkVictim->GetPoint(POINT_RESIST)) / 100;
|
||||
LPITEM pkWeapon = pkAttacker->GetWear(WEAR_WEAPON);
|
||||
|
||||
@@ -679,7 +679,7 @@ int battle_hit(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, int & iRetDam)
|
||||
}
|
||||
|
||||
|
||||
//최종적인 데미지 보정. (2011년 2월 현재 대왕거미에게만 적용.)
|
||||
//최종적인 데미지 보정. (2011년 2월 현재 대왕거미에게만 적용.)
|
||||
float attMul = pkAttacker->GetAttMul();
|
||||
float tempIDam = iDam;
|
||||
iDam = attMul * tempIDam + 0.5f;
|
||||
@@ -699,19 +699,19 @@ DWORD GET_ATTACK_SPEED(LPCHARACTER ch)
|
||||
return 1000;
|
||||
|
||||
LPITEM item = ch->GetWear(WEAR_WEAPON);
|
||||
DWORD default_bonus = SPEEDHACK_LIMIT_BONUS * 3; // 유두리 공속(기본 80) (일반 유저가 speed hack 에 걸리는 것을 막기 위해 *3 추가. 2013.09.11 CYH)
|
||||
DWORD default_bonus = SPEEDHACK_LIMIT_BONUS * 3; // 유두리 공속(기본 80) (일반 유저가 speed hack 에 걸리는 것을 막기 위해 *3 추가. 2013.09.11 CYH)
|
||||
DWORD riding_bonus = 0;
|
||||
|
||||
if (ch->IsRiding())
|
||||
{
|
||||
// 뭔가를 탔으면 추가공속 50
|
||||
// 뭔가를 탔으면 추가공속 50
|
||||
riding_bonus = 50;
|
||||
}
|
||||
|
||||
DWORD ani_speed = ani_attack_speed(ch);
|
||||
DWORD real_speed = (ani_speed * 100) / (default_bonus + ch->GetPoint(POINT_ATT_SPEED) + riding_bonus);
|
||||
|
||||
// 단검의 경우 공속 2배
|
||||
// 단검의 경우 공속 2배
|
||||
if (item && item->GetSubType() == WEAPON_DAGGER)
|
||||
real_speed /= 2;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user