Compare commits
11 Commits
rtw1x1-pat
...
rtw1x1-pat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7a59fdd7b4 | ||
|
|
11ba72d2e2 | ||
|
|
3b712002a9 | ||
|
|
11ef2f5780 | ||
|
|
7a69f13439 | ||
|
|
baa4d7dd69 | ||
|
|
1003dffdd6 | ||
|
|
0f21118ad7 | ||
|
|
db097e3ba2 | ||
|
|
366d97dbac | ||
|
|
1b46b8cc26 |
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
enum EItemMisc
|
enum EItemMisc
|
||||||
{
|
{
|
||||||
ITEM_NAME_MAX_LEN = 24,
|
ITEM_NAME_MAX_LEN = 64,
|
||||||
ITEM_VALUES_MAX_NUM = 6,
|
ITEM_VALUES_MAX_NUM = 6,
|
||||||
ITEM_SMALL_DESCR_MAX_LEN = 256,
|
ITEM_SMALL_DESCR_MAX_LEN = 256,
|
||||||
ITEM_LIMIT_MAX_NUM = 2,
|
ITEM_LIMIT_MAX_NUM = 2,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ enum EMisc
|
|||||||
PASSWD_MAX_LEN = 16,
|
PASSWD_MAX_LEN = 16,
|
||||||
PLAYER_PER_ACCOUNT = 4,
|
PLAYER_PER_ACCOUNT = 4,
|
||||||
ACCOUNT_STATUS_MAX_LEN = 8,
|
ACCOUNT_STATUS_MAX_LEN = 8,
|
||||||
CHARACTER_NAME_MAX_LEN = 24,
|
CHARACTER_NAME_MAX_LEN = 64,
|
||||||
SHOP_SIGN_MAX_LEN = 32,
|
SHOP_SIGN_MAX_LEN = 32,
|
||||||
INVENTORY_MAX_NUM = 90,
|
INVENTORY_MAX_NUM = 90,
|
||||||
ABILITY_MAX_NUM = 50,
|
ABILITY_MAX_NUM = 50,
|
||||||
|
|||||||
@@ -1659,6 +1659,14 @@ void CHARACTER::EnterCombat()
|
|||||||
if (!IsPosition(POS_FIGHTING))
|
if (!IsPosition(POS_FIGHTING))
|
||||||
SetPosition(POS_FIGHTING);
|
SetPosition(POS_FIGHTING);
|
||||||
|
|
||||||
|
// MR-3: Cancel logout on use skill
|
||||||
|
if (m_pkTimedEvent)
|
||||||
|
{
|
||||||
|
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("전투가 시작 되어 취소 되었습니다."));
|
||||||
|
event_cancel(&m_pkTimedEvent);
|
||||||
|
}
|
||||||
|
// MR-3: -- END OF -- Cancel logout on use skill
|
||||||
|
|
||||||
SetNextStatePulse(1);
|
SetNextStatePulse(1);
|
||||||
}
|
}
|
||||||
// tw1x1: end
|
// tw1x1: end
|
||||||
|
|||||||
@@ -2525,14 +2525,6 @@ bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaste
|
|||||||
ComputeSkill(dwVnum, pkVictim);
|
ComputeSkill(dwVnum, pkVictim);
|
||||||
RemoveAffect(dwVnum);
|
RemoveAffect(dwVnum);
|
||||||
|
|
||||||
// MR-3: Cancel logout on use skill
|
|
||||||
if (m_pkTimedEvent)
|
|
||||||
{
|
|
||||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("취소 되었습니다."));
|
|
||||||
event_cancel(&m_pkTimedEvent);
|
|
||||||
}
|
|
||||||
// MR-3: -- END OF -- Cancel logout on use skill
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2551,14 +2543,6 @@ bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaste
|
|||||||
// Toggle 할 때는 SP를 쓰지 않음 (SelfOnly로 구분)
|
// Toggle 할 때는 SP를 쓰지 않음 (SelfOnly로 구분)
|
||||||
if ((0 != pkSk->dwAffectFlag || pkSk->dwVnum == SKILL_MUYEONG) && (pkSk->dwFlag & SKILL_FLAG_TOGGLE) && RemoveAffect(pkSk->dwVnum))
|
if ((0 != pkSk->dwAffectFlag || pkSk->dwVnum == SKILL_MUYEONG) && (pkSk->dwFlag & SKILL_FLAG_TOGGLE) && RemoveAffect(pkSk->dwVnum))
|
||||||
{
|
{
|
||||||
// MR-3: Cancel logout on use skill
|
|
||||||
if (m_pkTimedEvent)
|
|
||||||
{
|
|
||||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("취소 되었습니다."));
|
|
||||||
event_cancel(&m_pkTimedEvent);
|
|
||||||
}
|
|
||||||
// MR-3: -- END OF -- Cancel logout on use skill
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2657,6 +2641,14 @@ bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaste
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MR-3: Cancel logout on use skill
|
||||||
|
if (IsPC() && m_pkTimedEvent)
|
||||||
|
{
|
||||||
|
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("취소 되었습니다."));
|
||||||
|
event_cancel(&m_pkTimedEvent);
|
||||||
|
}
|
||||||
|
// MR-3: -- END OF -- Cancel logout on use skill
|
||||||
|
|
||||||
if (dwVnum == SKILL_CHAIN)
|
if (dwVnum == SKILL_CHAIN)
|
||||||
{
|
{
|
||||||
ResetChainLightningIndex();
|
ResetChainLightningIndex();
|
||||||
@@ -2670,14 +2662,6 @@ bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaste
|
|||||||
// prevent POS_FIGHTING from expiring when skills deal 0 damage (miss, block, imun, etc.)
|
// prevent POS_FIGHTING from expiring when skills deal 0 damage (miss, block, imun, etc.)
|
||||||
UpdateLastCombatTime();
|
UpdateLastCombatTime();
|
||||||
EnterCombat();
|
EnterCombat();
|
||||||
|
|
||||||
// MR-3: Cancel logout on use skill
|
|
||||||
if (pkVictim->m_pkTimedEvent)
|
|
||||||
{
|
|
||||||
pkVictim->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("취소 되었습니다."));
|
|
||||||
event_cancel(&pkVictim->m_pkTimedEvent);
|
|
||||||
}
|
|
||||||
// MR-3: -- END OF -- Cancel logout on use skill
|
|
||||||
}
|
}
|
||||||
// tw1x1: end
|
// tw1x1: end
|
||||||
|
|
||||||
@@ -2692,14 +2676,6 @@ bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaste
|
|||||||
|
|
||||||
m_dwLastSkillTime = get_dword_time();
|
m_dwLastSkillTime = get_dword_time();
|
||||||
|
|
||||||
// MR-3: Cancel logout on use skill
|
|
||||||
if (m_pkTimedEvent)
|
|
||||||
{
|
|
||||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("취소 되었습니다."));
|
|
||||||
event_cancel(&m_pkTimedEvent);
|
|
||||||
}
|
|
||||||
// MR-3: -- END OF -- Cancel logout on use skill
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -470,74 +470,46 @@ bool CPVPManager::CanAttack(LPCHARACTER pkChr, LPCHARACTER pkVictim)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MR-4: Fix PK mode logic
|
||||||
switch (pkChr->GetPKMode())
|
switch (pkChr->GetPKMode())
|
||||||
{
|
{
|
||||||
case PK_MODE_PEACE:
|
case PK_MODE_PEACE:
|
||||||
case PK_MODE_REVENGE:
|
case PK_MODE_REVENGE:
|
||||||
// Cannot attack same guild
|
|
||||||
if (pkVictim->GetGuild() && pkVictim->GetGuild() == pkChr->GetGuild())
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (pkChr->GetPKMode() == PK_MODE_REVENGE)
|
|
||||||
{
|
{
|
||||||
//if (!g_iUseLocale)
|
if (
|
||||||
if (1)
|
(!pkChr->GetGuild() || (pkVictim->GetGuild() != pkChr->GetGuild())) &&
|
||||||
{
|
pkChr->GetPKMode() == PK_MODE_REVENGE && pkVictim->GetAlignment() < 0
|
||||||
if (pkChr->GetAlignment() < 0 && pkVictim->GetAlignment() >= 0)
|
)
|
||||||
{
|
|
||||||
pkChr->SetKillerMode(true);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (pkChr->GetAlignment() >= 0 && pkVictim->GetAlignment() < 0)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (pkChr->GetAlignment() < 0 && pkVictim->GetAlignment() < 0)
|
|
||||||
break;
|
|
||||||
else if (pkChr->GetAlignment() >= 0 && pkVictim->GetAlignment() >= 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
beKillerMode = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PK_MODE_GUILD:
|
case PK_MODE_GUILD:
|
||||||
|
{
|
||||||
// Same implementation from PK_MODE_FREE except for attacking same guild
|
// Same implementation from PK_MODE_FREE except for attacking same guild
|
||||||
if (!pkChr->GetGuild() || (pkVictim->GetGuild() != pkChr->GetGuild()))
|
if (!pkChr->GetGuild() || (pkVictim->GetGuild() != pkChr->GetGuild()))
|
||||||
{
|
{
|
||||||
if (1)
|
// Only set killer mode if victim is not already attackable
|
||||||
//if (!g_iUseLocale)
|
if (!pkVictim->IsKillerMode())
|
||||||
{
|
|
||||||
if (pkVictim->GetAlignment() >= 0)
|
|
||||||
pkChr->SetKillerMode(true);
|
|
||||||
else if (pkChr->GetAlignment() < 0 && pkVictim->GetAlignment() < 0)
|
|
||||||
pkChr->SetKillerMode(true);
|
pkChr->SetKillerMode(true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
beKillerMode = true;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PK_MODE_FREE:
|
case PK_MODE_FREE:
|
||||||
//if (!g_iUseLocale)
|
|
||||||
if (1)
|
|
||||||
{
|
{
|
||||||
if (pkVictim->GetAlignment() >= 0)
|
// Same as GUILD, but allows attacking same guild members
|
||||||
pkChr->SetKillerMode(true);
|
// Only set killer mode if victim is not already attackable
|
||||||
else if (pkChr->GetAlignment() < 0 && pkVictim->GetAlignment() < 0)
|
if (!pkVictim->IsKillerMode())
|
||||||
pkChr->SetKillerMode(true);
|
pkChr->SetKillerMode(true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
beKillerMode = true;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// MR-4: -- END OF -- Fix PK mode logic
|
||||||
}
|
}
|
||||||
|
|
||||||
CPVP kPVP(pkChr->GetPlayerID(), pkVictim->GetPlayerID());
|
CPVP kPVP(pkChr->GetPlayerID(), pkVictim->GetPlayerID());
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
#ifndef OS_WINDOWS
|
||||||
|
#include <netinet/tcp.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Forwards */
|
/* Forwards */
|
||||||
void socket_lingeron(socket_t s);
|
void socket_lingeron(socket_t s);
|
||||||
|
|||||||
Reference in New Issue
Block a user