From 286439aada0f23e0f6999c0dd2e0b5a3de4ef58f Mon Sep 17 00:00:00 2001 From: savis <106487343+savisxss@users.noreply.github.com> Date: Mon, 1 Sep 2025 19:19:42 +0200 Subject: [PATCH] removed teen_packet --- src/common/length.h | 10 -- src/common/teen_packet.h | 20 ---- src/game/char.cpp | 19 --- src/game/config.cpp | 21 ---- src/game/config.h | 3 - src/game/desc_client.cpp | 8 -- src/game/desc_client.h | 2 - src/game/input.h | 19 --- src/game/input_login.cpp | 14 --- src/game/input_teen.cpp | 248 --------------------------------------- src/game/main.cpp | 21 +--- src/game/packet.h | 1 - 12 files changed, 1 insertion(+), 385 deletions(-) delete mode 100644 src/common/teen_packet.h delete mode 100644 src/game/input_teen.cpp diff --git a/src/common/length.h b/src/common/length.h index 256c09c..da0e2cf 100644 --- a/src/common/length.h +++ b/src/common/length.h @@ -665,16 +665,6 @@ enum SPECIAL_EFFECT SE_EQUIP_LOVE_PENDANT, // 발렌타인 사랑의 팬던트(71145) 착용할 때 이펙트 (발동이펙트임, 지속이펙트 아님) } ; -enum ETeenFlags -{ - TEENFLAG_NONE = 0, - TEENFLAG_1HOUR, - TEENFLAG_2HOUR, - TEENFLAG_3HOUR, - TEENFLAG_4HOUR, - TEENFLAG_5HOUR, -}; - #include "item_length.h" // inventory의 position을 나타내는 구조체 diff --git a/src/common/teen_packet.h b/src/common/teen_packet.h deleted file mode 100644 index 87e89fd..0000000 --- a/src/common/teen_packet.h +++ /dev/null @@ -1,20 +0,0 @@ -/********************************************************************* - * date : 2007.06.07 - * file : teen_packet.h - * author : mhh - * description : - */ - -#ifndef _teen_packet_h_ -#define _teen_packet_h_ - -#define HEADER_GT_LOGIN 0x10 -#define HEADER_GT_LOGOUT 0x11 - - -#define HEADER_TG_TEEN_NOTICE 0x12 -#define HEADER_TG_FORCE_LOGOUT 0x13 -#define HEADER_TG_LOGIN_NOTICE 0x14 - -#endif /* _teen_packet_h_ */ - diff --git a/src/game/char.cpp b/src/game/char.cpp index 268b4e5..4d73434 100644 --- a/src/game/char.cpp +++ b/src/game/char.cpp @@ -1,6 +1,5 @@ #include "stdafx.h" -#include "common/teen_packet.h" #include "common/VnumHelper.h" #include "char.h" @@ -1388,24 +1387,6 @@ void CHARACTER::Disconnect(const char * c_pszReason) MessengerManager::instance().Logout(GetName()); - if (g_TeenDesc) - { - int offset = 0; - char buf[245] = {0}; - - buf[0] = HEADER_GT_LOGOUT; - offset += 1; - - memset(buf+offset, 0x00, 2); - offset += 2; - - TAccountTable &acc_table = GetDesc()->GetAccountTable(); - memcpy(buf+offset, &acc_table.id, 4); - offset += 4; - - g_TeenDesc->Packet(buf, offset); - } - if (GetDesc()) { GetDesc()->BindCharacter(NULL); diff --git a/src/game/config.cpp b/src/game/config.cpp index 78932a9..eaaa9a8 100644 --- a/src/game/config.cpp +++ b/src/game/config.cpp @@ -93,9 +93,6 @@ string g_stBlockDate = "30000705"; extern string g_stLocale; -char teen_addr[ADDRESS_MAX_LEN + 1] = {0}; -WORD teen_port = 0; - int SPEEDHACK_LIMIT_COUNT = 50; int SPEEDHACK_LIMIT_BONUS = 80; int g_iSyncHackLimitCount = 20; // 10 -> 20 2013 09 11 CYH @@ -687,24 +684,6 @@ void config_init(const string& st_localeServiceName) } } - TOKEN("teen_addr") - { - strlcpy(teen_addr, value_string, sizeof(teen_addr)); - - for (int n = 0; n < ADDRESS_MAX_LEN; ++n) - { - if (teen_addr[n] == ' ') - teen_addr[n] = '\0'; - } - - continue; - } - - TOKEN("teen_port") - { - str_to_number(teen_port, value_string); - } - TOKEN("synchack_limit_count") { str_to_number(g_iSyncHackLimitCount, value_string); diff --git a/src/game/config.h b/src/game/config.h index c1842e8..b57b17a 100644 --- a/src/game/config.h +++ b/src/game/config.h @@ -17,9 +17,6 @@ extern WORD p2p_port; extern char db_addr[ADDRESS_MAX_LEN + 1]; extern WORD db_port; -extern char teen_addr[ADDRESS_MAX_LEN + 1]; -extern WORD teen_port; - extern char passpod_addr[ADDRESS_MAX_LEN + 1]; extern WORD passpod_port; diff --git a/src/game/desc_client.cpp b/src/game/desc_client.cpp index 6200f42..1281f71 100644 --- a/src/game/desc_client.cpp +++ b/src/game/desc_client.cpp @@ -17,7 +17,6 @@ extern LPFDWATCH main_fdw; LPCLIENT_DESC db_clientdesc = NULL; LPCLIENT_DESC g_pkAuthMasterDesc = NULL; LPCLIENT_DESC g_NetmarbleDBDesc = NULL; -LPCLIENT_DESC g_TeenDesc = NULL; LPCLIENT_DESC g_PasspodDesc = NULL; static const char* GetKnownClientDescName(LPCLIENT_DESC desc) { @@ -27,8 +26,6 @@ static const char* GetKnownClientDescName(LPCLIENT_DESC desc) { return "g_pkAuthMasterDesc"; } else if (desc == g_NetmarbleDBDesc) { return "g_NetmarbleDBDesc"; - } else if (desc == g_TeenDesc) { - return "g_TeenDesc"; } else if (desc == g_PasspodDesc) { return "g_PasspodDesc"; } @@ -238,11 +235,6 @@ void CLIENT_DESC::SetPhase(int iPhase) m_pInputProcessor = NULL; break; - case PHASE_TEEN: - m_inputTeen.SetStep(0); - m_pInputProcessor = &m_inputTeen; - break; - } m_iPhase = iPhase; diff --git a/src/game/desc_client.h b/src/game/desc_client.h index b0ff328..dc2f505 100644 --- a/src/game/desc_client.h +++ b/src/game/desc_client.h @@ -40,14 +40,12 @@ class CLIENT_DESC : public DESC CInputDB m_inputDB; CInputP2P m_inputP2P; - CInputTeen m_inputTeen; }; extern LPCLIENT_DESC db_clientdesc; extern LPCLIENT_DESC g_pkAuthMasterDesc; extern LPCLIENT_DESC g_NetmarbleDBDesc; -extern LPCLIENT_DESC g_TeenDesc; extern LPCLIENT_DESC g_PasspodDesc; #endif diff --git a/src/game/input.h b/src/game/input.h index ea5e3b2..3de3375 100644 --- a/src/game/input.h +++ b/src/game/input.h @@ -14,7 +14,6 @@ enum INPROC_UDP, INPROC_P2P, INPROC_AUTH, - INPROC_TEEN, }; void LoginFailure(LPDESC d, const char * c_pszStatus); @@ -371,23 +370,5 @@ class CInputAuth : public CInputProcessor }; -class CInputTeen : public CInputProcessor -{ - public : - virtual BYTE GetType() { return INPROC_TEEN; } - - void SetStep(int step); - - protected : - virtual bool Process(LPDESC lpDesc, const void * c_pvOrig, int iBytes, int & r_iBytesProceed); - virtual int Analyze(LPDESC d, BYTE bHeader, const char * c_pData) { return 0; }; - - private: - int m_step; - - bool ProcessHandshake(LPDESC lpDesc, const void * c_pvOrig, size_t uiBytes, int & r_iBytesProceed); - bool ProcessMain(LPDESC lpDesc, const void * c_pvOrig, size_t uiBytes, int & r_iBytesProceed); -}; - #endif /* __INC_METIN_II_GAME_INPUT_PROCESSOR__ */ diff --git a/src/game/input_login.cpp b/src/game/input_login.cpp index 87bc78d..82dc5e3 100644 --- a/src/game/input_login.cpp +++ b/src/game/input_login.cpp @@ -1,6 +1,5 @@ #include "stdafx.h" #include "constants.h" -#include "common/teen_packet.h" #include "config.h" #include "utils.h" #include "input.h" @@ -774,19 +773,6 @@ void CInputLogin::Entergame(LPDESC d, const char * data) } } - // 청소년 보호 - if (g_TeenDesc) // BufferedPacket 사용 금지 - { - TPacketGTLogin p; - - p.header = HEADER_GT_LOGIN; - p.empty = 0; - p.id = d->GetAccountTable().id; - - g_TeenDesc->Packet(&p, sizeof(p)); - sys_log(0, "TEEN_SEND: (%u, %s)", d->GetAccountTable().id, ch->GetName()); - } - if (ch->GetHorseLevel() > 0) { DWORD pid = ch->GetPlayerID(); diff --git a/src/game/input_teen.cpp b/src/game/input_teen.cpp deleted file mode 100644 index 0bb1516..0000000 --- a/src/game/input_teen.cpp +++ /dev/null @@ -1,248 +0,0 @@ -/********************************************************************* - * date : 2007.06.07 - * file : input_teen.cpp - * author : mhh - * description : - */ - -#define _input_teen_cpp_ - -#include "stdafx.h" -#include "constants.h" -#include "common/teen_packet.h" -#include "input.h" -#include "desc.h" -#include "desc_manager.h" -#include "db.h" -#include "protocol.h" -#include "char.h" -#include "dev_log.h" - -#define HANDSHAKE_XOR 0x6AB3D224 - -void CInputTeen::SetStep(int step) -{ - m_step = step; -} - -bool CInputTeen::Process(LPDESC lpDesc, const void * c_pvOrig, int iBytes, int & r_iBytesProceed) -{ - switch (m_step) - { - case 0: - return this->ProcessHandshake(lpDesc, c_pvOrig, iBytes, r_iBytesProceed); - break; - case 1: - return this->ProcessMain(lpDesc, c_pvOrig, iBytes, r_iBytesProceed); - break; - } - return false; -} /* end of CInputTeen::Process() */ - -bool CInputTeen::ProcessHandshake(LPDESC lpDesc, const void * c_pvOrig, size_t uiBytes, int & r_iBytesProceed) -{ - const char *c_pData = (const char*) c_pvOrig; - size_t packet_len = sizeof(DWORD); - - if (uiBytes < packet_len) - return false; - - DWORD handshake = decode_4bytes(c_pData); - - c_pData += packet_len; - m_iBufferLeft -= packet_len; - r_iBytesProceed += packet_len; - - this->SetStep(1); - - char buf[256]; - *((DWORD *) buf) = handshake ^ HANDSHAKE_XOR; - lpDesc->Packet(buf, sizeof(DWORD)); - - return true; -} - - -static int __packet_len(BYTE header) -{ - const int header_size = sizeof(BYTE) + sizeof(WORD); - - switch (header) - { - case HEADER_TG_TEEN_NOTICE: return (header_size + LOGIN_MAX_LEN + 4); - case HEADER_TG_FORCE_LOGOUT: return (header_size + LOGIN_MAX_LEN); - case HEADER_TG_LOGIN_NOTICE: return (header_size + LOGIN_MAX_LEN + 4 + 4); - } - return 0; -} - - -static void __proc_teen_notice(char *login, int hour) -{ - LPDESC desc = DESC_MANAGER::instance().FindByLoginName(login); - if (NULL==desc) return; - - LPCHARACTER ch = desc->GetCharacter(); - if (NULL==ch) return; - - switch (hour) - { - case 0: - { - SET_OVER_TIME(ch, OT_NONE); - return; - } - break; - case 1: - case 2: - { - ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신의 누적 온라인 시간이 이미 %d시간이 지났습니다."), 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("조속히 접속을 종료하신 후 건강을 위해 휴식을 취해주시기바랍니다.")); - 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("휴식 및 학업에 열중해주십시오.")); - 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시간이 되면 정상으로 돌아옵니다.")); - SET_OVER_TIME(ch, OT_5HOUR); - } - break; - } -} - -static inline void __sec_to_timestring(int sec, char *buf, size_t buflen) -{ - int hour = (sec/60)/60; - int min = (sec/60); - - if (hour>0) - snprintf(buf, buflen, LC_TEXT("%d시간"), hour); - else - snprintf(buf, buflen, LC_TEXT("%d분"), min); -} - -static void __proc_login_notice(char *login, int on_time, int off_time) -{ - //{ check player's name - LPDESC desc = DESC_MANAGER::instance().FindByLoginName(login); - if (NULL==desc) return; - - LPCHARACTER ch = desc->GetCharacter(); - if (NULL==ch) return; - //} check player's name - - char on_time_string[64]; - char off_time_string[64]; - - __sec_to_timestring(on_time, on_time_string, sizeof(on_time_string)); - __sec_to_timestring(off_time, off_time_string, sizeof(off_time_string)); - - if (0==on_time) - { - ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신의 누적 오프라인 시간은 %s입니다."), off_time_string); - ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신의 누적 온라인 시간은 0이 되었습니다. 100% 효과를 얻으실 수 있습니다.")); - return; - } - else - { - ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("당신의 누적 오프라인 시간은 %s이며, 누적 온라인 시간은 %s입니다."), - off_time_string, on_time_string); - } -} - - -static void __input_teen(BYTE header, WORD desc_num, char *body) -{ - switch (header) - { - case HEADER_TG_FORCE_LOGOUT: - { - char *data = body; - char login[LOGIN_MAX_LEN+1] = {0}; - memcpy(login, data, LOGIN_MAX_LEN); - data += LOGIN_MAX_LEN; - LPDESC d = DESC_MANAGER::instance().FindByLoginName(login); - - if (NULL==d) - return; - - d->SetPhase(PHASE_CLOSE); - } - break; - case HEADER_TG_TEEN_NOTICE: - { - char *data = body; - char login[LOGIN_MAX_LEN+1] = {0}; - memcpy(login, data, LOGIN_MAX_LEN); - data += LOGIN_MAX_LEN; - int hour = decode_4bytes(data); - data += 4; - - __proc_teen_notice(login, hour); - } - break; - case HEADER_TG_LOGIN_NOTICE: - { - char *data = body; - char login[LOGIN_MAX_LEN+1] = {0}; - memcpy(login, data, LOGIN_MAX_LEN); - data += LOGIN_MAX_LEN; - int on_time = decode_4bytes(data); - data += 4; - int off_time = decode_4bytes(data); - data += 4; - - __proc_login_notice(login, on_time, off_time); - } - break; - } -} - - -bool CInputTeen::ProcessMain(LPDESC lpDesc, const void * c_pvOrig, size_t uiBytes, int & r_iBytesProceed) -{ - const char *c_pData = (const char*) c_pvOrig; - const size_t header_size = sizeof(BYTE) + sizeof(WORD); - - if (uiBytes < header_size) - return false; - - for (m_iBufferLeft = uiBytes; m_iBufferLeft > 0;) - { - BYTE header = decode_byte(c_pData); - WORD desc_num = decode_2bytes(c_pData+sizeof(BYTE)); - char *body = (char*) c_pData + header_size; - - int packet_len = __packet_len(header); - - if (m_iBufferLeft < packet_len) - return true; - - c_pData += packet_len; - m_iBufferLeft -= packet_len; - r_iBytesProceed += packet_len; - - __input_teen(header, desc_num, body); - } - - return true; -} - diff --git a/src/game/main.cpp b/src/game/main.cpp index 1a6c1dd..fbac110 100644 --- a/src/game/main.cpp +++ b/src/game/main.cpp @@ -797,18 +797,14 @@ int start(int argc, char **argv) fprintf(stderr, "MasterAuth %d", LC_GetLocalType()); } } - /* game server to teen server */ else { - if (teen_addr[0] && teen_port) - g_TeenDesc = DESC_MANAGER::instance().CreateConnectionDesc(main_fdw, teen_addr, teen_port, PHASE_TEEN, true); - extern unsigned int g_uiSpamBlockDuration; extern unsigned int g_uiSpamBlockScore; extern unsigned int g_uiSpamReloadCycle; sys_log(0, "SPAM_CONFIG: duration %u score %u reload cycle %u\n", - g_uiSpamBlockDuration, g_uiSpamBlockScore, g_uiSpamReloadCycle); + g_uiSpamBlockDuration, g_uiSpamBlockScore, g_uiSpamReloadCycle); extern void LoadSpamDB(); LoadSpamDB(); @@ -1026,21 +1022,6 @@ int io_loop(LPFDWATCH fdw) { d->SetPhase(PHASE_CLOSE); } - else if (g_TeenDesc==d) - { - int buf_size = buffer_size(d->GetOutputBuffer()); - int sock_buf_size = fdwatch_get_buffer_size(fdw, d->GetSocket()); - - int ret = d->ProcessOutput(); - - if (ret < 0) - { - d->SetPhase(PHASE_CLOSE); - } - - if (buf_size) - sys_log(0, "TEEN::Send(size %d sock_buf %d ret %d)", buf_size, sock_buf_size, ret); - } break; case FDW_EOF: diff --git a/src/game/packet.h b/src/game/packet.h index 712b4a9..a71dd00 100644 --- a/src/game/packet.h +++ b/src/game/packet.h @@ -843,7 +843,6 @@ enum EPhase PHASE_DBCLIENT, PHASE_P2P, PHASE_AUTH, - PHASE_TEEN, PHASE_PASSPOD, };