Selamlar,
ben Laleci16 bugün sizlere maximum level yükseltmeyi göstereceğim buna level sistemi diyen beyni boş
arkadaşlar olduğu için kesinlikle sorunuzdur lonca sorunu karakter atma reboot sorunu hiç bir sorunu yoktur.
bunu mmoliraya koymak nedir ya elimde büyüyen çocuklar işte neyse gönül rahatlığı ile kullanabilirsiniz.
paylaşılanda bütün tab ayarı vs bozuktur.
adminlerden ricam konu kapanmasın görsel yarın ekleyeceğim şuan sorun olduğu için ve kanıtta öyle.
bir sorun yaşayan olursa skypem imzamda mevcut hayırlı forumlar.
char.cpp arat
Kod:
void CHARACTER::SetLevel(BYTE level)[/FONT]
değiştir
Kod:
void CHARACTER::SetLevel(int level)
char.h arat
Kod:
void SetLevel(BYTE level);
değiştir
Kod:
void SetLevel(int level);
tekrar arat
Kod:
BYTE level;
typedef struct character_point bunun altındaki
değiştir
Kod:
int level;
party.cpp aç ve arat
Kod:
void CParty::P2PSetMemberLevel(DWORD pid, BYTE level)
değiştir
Kod:
void CParty::P2PSetMemberLevel(DWORD pid, int level)
tekrar arat
Kod:
BYTE CParty::GetMemberMaxLevel() { BYTE bMax = 0;
değiştir
Kod:
int CParty::GetMemberMaxLevel() { int bMax = 0;
tekrar arat
Kod:
BYTE CParty::GetMemberMinLevel() { BYTE bMin = PLAYER_MAX_LEVEL_CONST;
değiştir
Kod:
int CParty::GetMemberMinLevel() { int bMin = PLAYER_MAX_LEVEL_CONST;
tekrar arat
değiştir
party.h aç ve arat
typedef struct SMember altında değiştir
tekrar arat
Kod:
void CParty::RequestSetMemberLevel(DWORD pid, BYTE level)
değiştir
Kod:
void CParty::RequestSetMemberLevel(DWORD pid, int level)
party.h aç ve arat
Kod:
BYTE bLevel;
typedef struct SMember altında değiştir
Kod:
int bLevel;
tekrar arat
Kod:
BYTE GetMemberMaxLevel(); BYTE GetMemberMinLevel();
değiştir
Kod:
int GetMemberMaxLevel(); int GetMemberMinLevel();
tekrar arat
Kod:
void RequestSetMemberLevel(DWORD pid, BYTE level); void P2PSetMemberLevel(DWORD pid, BYTE level);
değiştir
Kod:
void RequestSetMemberLevel(DWORD pid, int level); void P2PSetMemberLevel(DWORD pid, int level);
char_battle.cpp aç ve arat
Kod:
struct FPartyTotaler { int total;
değiştir
Kod:
struct FPartyTotaler { long total;
tekrar arat
Kod:
struct FPartyDistributor { int total; LPCHARACTER c; int x, y; DWORD _iExp; int m_iMode; int m_iMemberCount; FPartyDistributor(LPCHARACTER center, int member_count, int total, DWORD iExp, int iMode)
değiştir
Kod:
struct FPartyDistributor { long total; LPCHARACTER c; int x, y; DWORD _iExp; int m_iMode; int m_iMemberCount; FPartyDistributor(LPCHARACTER center, int member_count, long total, DWORD iExp, int iMode)
config.h aç ve arat
değiştir
locale_service.cpp aç ve arat
değiştir
constans.cpp açılır ve hepsi göstereceğim şekilde düzenlenir
Kod:
extern BYTE PK_PROTECT_LEVEL;
değiştir
Kod:
extern int PK_PROTECT_LEVEL;
locale_service.cpp aç ve arat
Kod:
BYTE PK_PROTECT_LEVEL
değiştir
Kod:
int PK_PROTECT_LEVEL
constans.cpp açılır ve hepsi göstereceğim şekilde düzenlenir
Kod:
const DWORD exp_table_euckr[PLAYER_EXP_TABLE_MAX + 1] const DWORD exp_table_common[PLAYER_EXP_TABLE_MAX + 1] const DWORD exp_table_newcibn[PLAYER_EXP_TABLE_MAX + 1 ] const DWORD party_exp_distribute_table[PLAYER_MAX_LEVEL_CONST + 1] const int aiExpLossPercents[PLAYER_EXP_TABLE_MAX + 1]
gördüğünüz zaman mantığı anlayacaksınız ama ben yinede görsel bırakıyorum.
şuan görsel bırakamıyorum sorun olduğu için yarın güncellerim ama şöyle olacak.
4 tanesi farklıdır ilki şöyle mantığı bu
şuan görsel bırakamıyorum sorun olduğu için yarın güncellerim ama şöyle olacak.
4 tanesi farklıdır ilki şöyle mantığı bu
Kod:
2500000000, // 250 2500000000, 2500000000, 2500000000, 2500000000, 2500000000, // 255 2500000000, 2500000000, 2500000000, 2500000000, 2500000000, // 260 2500000000, 2500000000, 2500000000, 2500000000, 2500000000, // 265 2500000000, 2500000000, 2500000000, 2500000000, 2500000000, // 270 2500000000, 2500000000, 2500000000, 2500000000, 2500000000, // 275 2500000000, 2500000000, 2500000000, 2500000000, 2500000000, // 280 2500000000, 2500000000, 2500000000, 2500000000, 2500000000, // 285 2500000000, 2500000000, 2500000000, 2500000000, 2500000000, // 290 2500000000, 2500000000, 2500000000, 2500000000, 2500000000, // 295 2500000000, 2500000000, 2500000000, 2500000000, 2500000000, // 300 };
diğeri ise şöyle
Kod:
10, 10, 10, 10, 15, 15, 20, 25, 30, 40, // 1 - 10 50, 60, 80, 100, 120, 140, 160, 184, 210, 240, // 11 - 20 270, 300, 330, 360, 390, 420, 450, 480, 510, 550, // 21 - 30 600, 640, 700, 760, 820, 880, 940, 1000, 1100, 1180, // 31 - 40 1260, 1320, 1380, 1440, 1500, 1560, 1620, 1680, 1740, 1800, // 41 - 50 1860, 1920, 2000, 2100, 2200, 2300, 2450, 2600, 2750, 2900, // 51 - 60 3050, 3200, 3350, 3500, 3650, 3800, 3950, 4100, 4250, 4400, // 61 - 70 4600, 4800, 5000, 5200, 5400, 5600, 5800, 6000, 6200, 6400, // 71 - 80 6600, 6800, 7000, 7200, 7400, 7600, 7800, 8000, 8200, 8400, // 81 - 90 8600, 8800, 9000, 9200, 9400, 9600, 9800, 10000, 10200, 10400, // 91 - 100 10600, 10800, 11000, 11200, 11400, 11600, 11800, 12000, 12200, 12400, // 101 - 110 12600, 12800, 13000, 13200, 13400, 13600, 13800, 14000, 14200, 14400, // 111 - 120 14600, 14800, 15000, 15200, 15400, 15600, 15800, 16000, 16200, 16400, // 121 - 130 16600, 16800, 17000, 17200, 17400, 17600, 17800, 18000, 18200, 18400, // 131 - 140 18600, 18800, 19000, 19200, 19400, 19600, 19800, 20000, 20200, 20400, // 141 - 150 20600, 20800, 21000, 21200, 21400, 21600, 21800, 22000, 22200, 22400, // 151 - 160 22600, 22800, 23000, 23200, 23400, 23600, 23800, 24000, 24200, 24400, // 161 - 170 24600, 24800, 25000, 25200, 25400, 25600, 25800, 26000, 26200, 26400, // 171 - 180 26600, 26800, 27000, 27200, 27400, 27600, 27800, 28000, 28200, 28400, // 181 - 190 28600, 28800, 29000, 29200, 29400, 29600, 29800, 30000, 30200, 30400, // 191 - 200 30600, 30800, 31000, 31200, 31400, 31600, 31800, 32000, 32200, 32400, // 201 - 210 32600, 32800, 33000, 33200, 33400, 33600, 33800, 34000, 34200, 34400, // 211 - 220 34600, 34800, 35000, 35200, 35400, 35600, 35800, 36000, 36200, 36400, // 221 - 230 36600, 36800, 37000, 37200, 37400, 37600, 37800, 38000, 38200, 38400, // 231 - 240 38600, 38800, 39000, 39200, 39400, 39600, 39800, 40000, 40200, 40400, // 241 - 250 38600, 38800, 39000, 39200, 39400, 39600, 39800, 40000, 40200, 40400, // 251 - 260 38600, 38800, 39000, 39200, 39400, 39600, 39800, 40000, 40200, 40400, // 261 - 270 38600, 38800, 39000, 39200, 39400, 39600, 39800, 40000, 40200, 40400, // 271 - 280 38600, 38800, 39000, 39200, 39400, 39600, 39800, 40000, 40200, 40400, // 281 - 290 38600, 38800, 39000, 39200, 39400, 39600, 39800, 40000, 40200, 40400, // 291 - 300
gördüğünüzde az çok anlayacaksınız zaten
log.h açalım ve aratalım
değiştir
log.cpp aç ve arat
değiştir
guild.h aç ve arat
log.h açalım ve aratalım
Kod:
void LoginLog(bool isLogin, DWORD dwAccountID, DWORD dwPID, BYTE bLevel, BYTE bJob, DWORD dwPlayTime);
değiştir
Kod:
void LoginLog(bool isLogin, DWORD dwAccountID, DWORD dwPID, int bLevel, BYTE bJob, DWORD dwPlayTime);
log.cpp aç ve arat
Kod:
void LogManager::LoginLog(bool isLogin, DWORD dwAccountID, DWORD dwPID, BYTE bLevel, BYTE bJob, DWORD dwPlayTime)
değiştir
Kod:
void LogManager::LoginLog(bool isLogin, DWORD dwAccountID, DWORD dwPID, int bLevel, BYTE bJob, DWORD dwPlayTime)
guild.h aç ve arat
Kod:
typedef struct SGuildMemberPacketData { DWORD pid; BYTE grade; BYTE is_general; BYTE job; BYTE level; DWORD offer; BYTE name_flag; char name[CHARACTER_NAME_MAX_LEN+1]; } TGuildMemberPacketData;
değiştir
Kod:
typedef struct SGuildMemberPacketData { DWORD pid; BYTE byGrade; BYTE byIsGeneral; BYTE byJob; int byLevel; DWORD dwOffer; BYTE byNameFlag; } TGuildMemberPacketData;
tekrar arat
değiştir
tekrar arat
değiştir
tekrar arat
Kod:
void ChangeMemberData(DWORD pid, DWORD offer, BYTE level, BYTE grade);
değiştir
Kod:
void ChangeMemberData(DWORD pid, DWORD offer, int level, BYTE grade);
tekrar arat
Kod:
SGuildMember(DWORD pid, BYTE grade, BYTE is_general, BYTE job, BYTE level, DWORD offer_exp, char* name);
değiştir
Kod:
SGuildMember(DWORD pid, BYTE grade, BYTE is_general, BYTE job, int level, DWORD offer_exp, char* name);
tekrar arat
Kod:
DWORD pid; // player Ĺ×ŔĚşíŔÇ id; primary key BYTE grade; // ±ćµĺ»óŔÇ ÇĂ·ąŔĚľîŔÇ °č±Ţ 1 to 15 (1ŔĚ ÂŻ) BYTE is_general; BYTE job; BYTE level; DWORD offer_exp; // °řÇĺÇŃ °ćÇčġ BYTE _dummy;
değiştir
Kod:
DWORD pid; // player Ĺ×ŔĚşíŔÇ id; primary key BYTE grade; // ±ćµĺ»óŔÇ ÇĂ·ąŔĚľîŔÇ °č±Ţ 1 to 15 (1ŔĚ ÂŻ) BYTE is_general; BYTE job; int level; DWORD offer_exp; // °řÇĺÇŃ °ćÇčġ BYTE _dummy;
tekrar arat
değiştir
guild.cpp aç ve arat
değiştir
tekrar arat
değiştir
tekrar arat
kod bloğunu komple değiştir
Kod:
void LevelChange(DWORD pid, BYTE level);
değiştir
Kod:
void LevelChange(DWORD pid, int level);
guild.cpp aç ve arat
Kod:
BYTE level = (BYTE)strtoul(row[4], (char**) NULL, 10);
değiştir
Kod:
int level = (int)strtoul(row[4], (char**) NULL, 10);
tekrar arat
Kod:
sys_log(0, "GUILD: AddMember PID %u, grade %u, job %u, level %u, offer %u, name %s ptr %p",
değiştir
Kod:
sys_log(0, "GUILD: AddMember PID %u, grade %u, job %u, level %d, offer %u, name %s ptr %p",
tekrar arat
Kod:
void CGuild::ChangeMemberData(DWORD pid, DWORD offer, BYTE level, BYTE grade)
kod bloğunu komple değiştir
Kod:
void CGuild::ChangeMemberData(DWORD pid, DWORD offer, int level, BYTE grade) { TGuildMemberContainer::iterator cit = m_member.find(pid); if (cit == m_member.end()) return; cit->second.offer_exp = offer; cit->second.level = level; cit->second.grade = grade; cit->second._dummy = 0; TPacketGCGuild pack; TGuildMemberPacketData mbData; pack.header = HEADER_GC_GUILD; pack.subheader = GUILD_SUBHEADER_GC_LIST; pack.size = sizeof(TPacketGCGuild); pack.size += sizeof(TGuildMemberPacketData); for (TGuildMemberOnlineContainer::iterator it = m_memberOnline.begin(); it != m_memberOnline.end(); ++it) { LPDESC d = (*it)->GetDesc(); if (d) { TEMP_BUFFER buf; buf.write(&pack, sizeof(pack)); mbData.byNameFlag = 0; mbData.byGrade = cit->second.grade; mbData.byIsGeneral = cit->second.is_general; mbData.byJob = cit->second.job; mbData.byLevel = cit->second.level; mbData.dwOffer = cit->second.offer_exp; mbData.pid = cit->second.pid; buf.write(&mbData, sizeof(TGuildMemberPacketData)); d->Packet(buf.read_peek(), buf.size()); } } }
tekrar arat
kod bloğunu komple değiştir
Kod:
void CGuild::LevelChange(DWORD pid, BYTE level)
kod bloğunu komple değiştir
Kod:
void CGuild::LevelChange(DWORD pid, int level) { TGuildMemberContainer::iterator cit = m_member.find(pid); if (cit == m_member.end()) return; cit->second.level = level; TPacketGuildChangeMemberData gd_guild; gd_guild.guild_id = GetID(); gd_guild.pid = pid; gd_guild.offer = cit->second.offer_exp; gd_guild.grade = cit->second.grade; gd_guild.level = level; db_clientdesc->DBPacket(HEADER_GD_GUILD_CHANGE_MEMBER_DATA, 0, &gd_guild, sizeof(gd_guild)); TPacketGCGuild pack; TGuildMemberPacketData mbData; pack.header = HEADER_GC_GUILD; pack.subheader = GUILD_SUBHEADER_GC_LIST; pack.size = sizeof(TPacketGCGuild); pack.size += sizeof(TGuildMemberPacketData); cit->second._dummy = 0; for (TGuildMemberOnlineContainer::iterator it = m_memberOnline.begin(); it != m_memberOnline.end(); ++it) { LPDESC d = (*it)->GetDesc(); if (d) { TEMP_BUFFER buf; buf.write(&pack, sizeof(pack)); mbData.byNameFlag = 0; mbData.byGrade = cit->second.grade; mbData.byIsGeneral = cit->second.is_general; mbData.byJob = cit->second.job; mbData.byLevel = cit->second.level; mbData.dwOffer = cit->second.offer_exp; mbData.pid = cit->second.pid; buf.write(&mbData, sizeof(TGuildMemberPacketData)); d->Packet(buf.read_peek(), buf.size()); } } }
tekrar arat
kod bloğunu komple değiştir
Kod:
bool CGuild::OfferExp(LPCHARACTER ch, int amount)
kod bloğunu komple değiştir
Kod:
bool CGuild::OfferExp(LPCHARACTER ch, int amount) { TGuildMemberContainer::iterator cit = m_member.find(ch->GetPlayerID()); if (cit == m_member.end()) return false; if (m_data.exp+amount < m_data.exp) return false; if (amount < 0) return false; if (ch->GetExp() < (DWORD) amount) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<±ćµĺ> Á¦°řÇϰíŔÚ ÇĎ´Â °ćÇčġ°ˇ ł˛Ŕş °ćÇčġş¸´Ů ¸ą˝Ŕ´Ď´Ů.")); return false; } if (ch->GetExp() - (DWORD) amount > ch->GetExp()) { sys_err("Wrong guild offer amount %d by %s[%u]", amount, ch->GetName(), ch->GetPlayerID()); return false; } ch->PointChange(POINT_EXP, -amount); TPacketGuildExpUpdate guild_exp; guild_exp.guild_id = GetID(); guild_exp.amount = amount / 100; db_clientdesc->DBPacket(HEADER_GD_GUILD_EXP_UPDATE, 0, &guild_exp, sizeof(guild_exp)); GuildPointChange(POINT_EXP, amount / 100, true); cit->second.offer_exp += amount / 100; cit->second._dummy = 0; TPacketGCGuild pack; TGuildMemberPacketData mbData; pack.header = HEADER_GC_GUILD; pack.subheader = GUILD_SUBHEADER_GC_LIST; pack.size = sizeof(TPacketGCGuild); pack.size += sizeof(TGuildMemberPacketData); for (TGuildMemberOnlineContainer::iterator it = m_memberOnline.begin(); it != m_memberOnline.end(); ++it) { LPDESC d = (*it)->GetDesc(); if (d) { TEMP_BUFFER buf; buf.write(&pack, sizeof(pack)); mbData.byNameFlag = 0; mbData.byGrade = cit->second.grade; mbData.byIsGeneral = cit->second.is_general; mbData.byJob = cit->second.job; mbData.byLevel = cit->second.level; mbData.dwOffer = cit->second.offer_exp; mbData.pid = cit->second.pid; buf.write(&mbData, sizeof(TGuildMemberPacketData)); d->Packet(buf.read_peek(), buf.size()); } } SaveMember(ch->GetPlayerID()); TPacketGuildChangeMemberData gd_guild; gd_guild.guild_id = GetID(); gd_guild.pid = ch->GetPlayerID(); gd_guild.offer = cit->second.offer_exp; gd_guild.level = ch->GetLevel(); gd_guild.grade = cit->second.grade; db_clientdesc->DBPacket(HEADER_GD_GUILD_CHANGE_MEMBER_DATA, 0, &gd_guild, sizeof(gd_guild)); return true; }
tekrar arat
kod bloğunu komple değiştir
Kod:
void CGuild::SendListPacket(LPCHARACTER ch)
kod bloğunu komple değiştir
Kod:
void CGuild::SendListPacket(LPCHARACTER ch) { /* List Packet Header Count (byte) [ ... name_flag 1 - Ŕ̸§Ŕ» ş¸ł»´ŔłÄ ľČş¸ł»´ŔłÄ name CHARACTER_NAME_MAX_LEN+1 ] * Count */ LPDESC d; if (!(d=ch->GetDesc())) return; TPacketGCGuild pack; pack.header = HEADER_GC_GUILD; pack.size = sizeof(TPacketGCGuild); pack.subheader = GUILD_SUBHEADER_GC_LIST; pack.size += sizeof(TGuildMemberPacketData) * m_member.size(); pack.size += (CHARACTER_NAME_MAX_LEN + 1) * m_member.size(); TEMP_BUFFER buf; TGuildMemberPacketData mbData; buf.write(&pack,sizeof(pack)); char c[CHARACTER_NAME_MAX_LEN+1]; for (TGuildMemberContainer::iterator it = m_member.begin(); it != m_member.end(); ++it) { it->second._dummy = 1; mbData.byNameFlag = 1; mbData.byGrade = it->second.grade; mbData.byIsGeneral = it->second.is_general; mbData.byJob = it->second.job; mbData.byLevel = it->second.level; mbData.dwOffer = it->second.offer_exp; mbData.pid = it->second.pid; buf.write(&mbData, sizeof(TGuildMemberPacketData)); strlcpy(c, it->second.name.c_str(), MIN(sizeof(c), it->second.name.length() + 1)); buf.write(c, CHARACTER_NAME_MAX_LEN+1 ); if ( test_server ) sys_log(0 ,"name %s job %d ", it->second.name.c_str(), it->second.job ); } d->Packet(buf.read_peek(), buf.size()); for (TGuildMemberOnlineContainer::iterator it = m_memberOnline.begin(); it != m_memberOnline.end(); ++it) { SendLoginPacket(ch, *it); } for (TGuildMemberP2POnlineContainer::iterator it = m_memberP2POnline.begin(); it != m_memberP2POnline.end(); ++it) { SendLoginPacket(ch, *it); } }
tekrar arat
kod bloğunu komple değiştir
Kod:
void CGuild::SendListOneToAll(DWORD pid)
kod bloğunu komple değiştir
Kod:
void CGuild::SendListOneToAll(DWORD pid) { TPacketGCGuild pack; pack.header = HEADER_GC_GUILD; pack.size = sizeof(TPacketGCGuild); pack.subheader = GUILD_SUBHEADER_GC_LIST; pack.size += sizeof(TGuildMemberPacketData); TGuildMemberPacketData mbData; char c[CHARACTER_NAME_MAX_LEN+1]; memset(c, 0, sizeof(c)); TGuildMemberContainer::iterator cit = m_member.find(pid); if (cit == m_member.end()) return; for (TGuildMemberOnlineContainer::iterator it = m_memberOnline.begin(); it!= m_memberOnline.end(); ++it) { LPDESC d = (*it)->GetDesc(); if (!d) continue; TEMP_BUFFER buf; buf.write(&pack, sizeof(pack)); cit->second._dummy = 1; mbData.byNameFlag = 1; mbData.byGrade = cit->second.grade; mbData.byIsGeneral = cit->second.is_general; mbData.byJob = cit->second.job; mbData.byLevel = cit->second.level; mbData.dwOffer = cit->second.offer_exp; mbData.pid = cit->second.pid; //buf.write(&(cit->second), sizeof(DWORD) * 3 +1); buf.write(&mbData, sizeof(TGuildMemberPacketData)); buf.write(cit->second.name.c_str(), cit->second.name.length()); buf.write(c, CHARACTER_NAME_MAX_LEN + 1 - cit->second.name.length()); d->Packet(buf.read_peek(), buf.size()); } }
tekrar arat
değiştir
Commona geçelim
tables.h aç ve arat
değiştir
tekrar arat
değiştir
tekrar arat
değiştir
tekrar arat typedef struct SPacketPartySetMemberLevel altında
değiştir
tekrar arat
değiştir typedef struct SPacketDGGuildMember altında
lenght.h aç ve arat kaç level yaptıysan düzenle
Kod:
SGuildMember::SGuildMember(DWORD pid, BYTE grade, BYTE is_general, BYTE job, BYTE level, DWORD offer_exp, char* name)
değiştir
Kod:
SGuildMember::SGuildMember(DWORD pid, BYTE grade, BYTE is_general, BYTE job, int level, DWORD offer_exp, char* name)
Commona geçelim
tables.h aç ve arat
Kod:
BYTE byLevel;
değiştir
Kod:
int byLevel;
tekrar arat
Kod:
BYTE level;
değiştir
Kod:
int level;
tekrar arat
Kod:
BYTE level;
değiştir
Kod:
int level;
tekrar arat typedef struct SPacketPartySetMemberLevel altında
Kod:
BYTE bLevel;
değiştir
Kod:
int bLevel;
tekrar arat
Kod:
BYTE bLevel;
değiştir typedef struct SPacketDGGuildMember altında
Kod:
int bLevel;
lenght.h aç ve arat kaç level yaptıysan düzenle
Kod:
PLAYER_EXP_TABLE_MAX = 120, PLAYER_MAX_LEVEL_CONST = 120,
db/src geçelim
clientmanager.h aç ve arat
clientmanager.h aç ve arat
Kod:
struct TPartyInfo { BYTE bRole; BYTE bLevel;
değiştir
Kod:
struct TPartyInfo { BYTE bRole; int bLevel;
clientmanager.cpp aç ve arat
değiştir
clientmanagerplayer.cpp aç ve arat
değiştir
tekrar arat
değiştir
şimdi sıra clientte
packet.h aç ve arat
değiştir
tekrar arat
değiştir
Pythonguild.h aç ve arat
değiştir
Bütün Anlatımı Tek Tek Elimde Ekledim.
Sorunsuz kendi tarafımca kullanılmaktadır.
Hayırlı Forumlar.
Fakir Savar Kanıt
Metin2 özel sunucularında oynarken karakter seviyesi artışı, oyuncuların en çok ilgi gösterdiği konulardan biridir. Özellikle PvP odaklı sunucularda yüksek seviyeye ulaşmak, rekabette öne geçmek için kritik öneme sahiptir. Bu rehberde, Laleci16 gibi güçlü bir karakterin Maximum Level'e nasıl yükseltileceği konusunu detaylıca ele alacağız. Bu süreçte C++ sistem bilgisi, Python GUI ve UIScript gibi araçlar da devreye girebilir.
Laleci16 Karakteri Nedir?
Laleci16, Metin2 özel sunucularında özel komutlarla yaratılan güçlü bir karakterdir. Genellikle test amaçlı ya da oyun içi avantaj sağlamak için kullanılır. Bu karakter, normal karakterlerin çok üzerinde seviye ve özelliklere sahip olabilir. Ancak bu karakteri maximum level'e çıkarmak için bazı özel adımlar izlenmelidir. Özellikle server-side değişiklikler ve game core ayarları büyük rol oynar.
Level Yükseltmenin Temelleri
Bir karakterin seviyesini artırmak için öncelikle experience (EXP) kazanması gerekir. Bu EXP, düşman öldürme, görev tamamlama veya özel event sistemleriyle sağlanabilir. Laleci16 karakterlerinde bu değerler genellikle manuel olarak düzenlenir. Auth ve Game sunucularında yapılan ayarlar sayesinde EXP miktarı hızlandırılabilir veya sınırsız hale getirilebilir. Bu işlemler genellikle C++ source code üzerinden yapılır.
Sunucu Tarafında Gerekli Ayarlar
Maximum levele ulaşmak için sunucu tarafında bazı düzenlemeler yapılmalıdır. Örneğin, db core üzerinde EXP oranları artırılabilir. Aynı zamanda client src dosyalarında da bazı değişiklikler yapılarak karakterin maximum level sınırı genişletilebilir. Bu tür değişiklikler genellikle martysama gibi deneyimli geliştiriciler tarafından gerçekleştirilir. Py Root ve Py GUI sistemleri sayesinde bu işlemler daha kolay yönetilebilir.
Maximum Level Sınırını Zorlamak
Normal Metin2 sunucularında maximum level 120 civarındadır. Ancak özel sunucularda bu değer 200, 300 hatta daha yükseğe çıkarılabilir. Bunun için source edit işlemi yapılır. C++ tabanlı server src dosyalarında level değerleri elle değiştirilebilir. Bu işlem sırasında dikkat edilmesi gereken bazı güvenlik önlemleri vardır. Yanlış bir ayar, sunucunun çökmesine neden olabilir.
EXP Farm Yöntemleri
Laleci16 karakteri ile maximum levele ulaşmak için.EXP farm yöntemleri önemlidir. Bu yöntemler arasında grup raidler, özel event haritaları ve bot kullanımı yer alabilir. Sunucuda aktif olan PvP sistem yapısına göre EXP kazanma yöntemleri farklılık gösterebilir. Bazı sunucularda PvP galibiyeti de EXP kazandırabilir. Bu tür sistemler, game server programming ile geliştirilir ve optimize edilir.
Kodlama Bilgisi Neden Önemlidir?
Laleci16 karakterlerinde maximum levele ulaşmak isteyen oyuncuların bazı temel C++ ve Python bilgisine sahip olması faydalıdır. Bu sayede.EXP ve level sistemleri üzerinde daha fazla kontrol sağlanabilir. Ayrıca pack dosyaları üzerinde yapılan değişiklikler ile oyun içi görsel ve mekanik yenilikler de eklenebilir. Bu tür gelişmiş işlemler, core sistem bilgisi gerektirir.
Sonuç
Laleci16 karakteri ile maximum levele ulaşmak, sadece oyun içi beceri değil, aynı zamanda teknik bilgi gerektiren bir iştir. Metin2 development konusunda bilgi sahibi olmak, bu süreci çok daha hızlı ve sorunsuz hale getirir. Server-side ayarlar, source code düzenlemeleri ve doğru.EXP stratejileri ile hedefinize ulaşmanız kaçınılmazdır. Metin2dev topluluklarında bu konular hakkında sürekli yeni bilgiler paylaşılmaktadır. Bu nedenle aktif olmak da önemlidir.
In Metin2 private servers, character level progression is one of the most focused topics among players. Especially on PvP-oriented servers, reaching high levels is critical for gaining an edge in competition. In this guide, we will thoroughly discuss how to advance the powerful character Laleci16 to Maximum Level. During this process, tools such as C++ system knowledge, Python GUI, and UIScript may also come into play.
What is Laleci16 Character?
Laleci16 is a powerful character created with special commands in Metin2 private servers. It is often used for testing purposes or to gain in-game advantages. This character can have much higher levels and stats than regular characters. However, specific steps must be followed to raise this character to maximum level. Server-side modifications and game core settings play a major role here.
Basics of Level Advancement
To increase a character's level, they first need to gain experience (EXP). This EXP can be earned by killing monsters, completing quests, or through special events. For Laleci16 characters, these values are usually adjusted manually. Settings made on the auth and game servers allow EXP amounts to be accelerated or unlimited. These operations are generally done via C++ source code.
Required Server-Side Adjustments
To reach maximum level, certain adjustments must be made on the server side. For instance, EXP rates can be increased in the db core. Additionally, by modifying client src files, the maximum level cap for characters can be extended. Such modifications are typically performed by experienced developers like martysama. Systems like Py Root and Py GUI make managing these processes easier.
Pushing Beyond Maximum Level Limits
In standard Metin2 servers, the maximum level is around 120. However, in private servers, this value can be raised up to 200, 300, or even higher. To do this, source edit operations are needed. The level values in C++-based server src files can be manually changed. Some security precautions must be taken during this process. Incorrect settings may cause the server to crash.
EXP Farming Methods
To reach the maximum level with the Laleci16 character, EXP farming methods are important. These methods include group raids, special event maps, and bot usage. Depending on the active PvP system structure on the server, EXP earning methods can vary. In some servers, winning PvP battles may also grant EXP. Such systems are developed and optimized with game server programming.
Why Is Coding Knowledge Important?
Players aiming to reach maximum level with Laleci16 characters should ideally possess basic C++ and Python knowledge. This allows for more control over EXP and level systems. Moreover, changes made in pack files can introduce visual and mechanical innovations within the game. Such advanced operations require core system knowledge.
Conclusion
Reaching the maximum level with the Laleci16 character is not only about in-game skills but also requires technical knowledge. Having expertise in Metin2 development makes this process much faster and smoother. With server-side configurations, source code modifications, and proper EXP strategies, achieving your goal becomes inevitable. Metin2dev communities constantly share new information on these topics. Therefore, staying active is also important.
Kod:
pkPeer->Encode(&it_member->second.bLevel, sizeof(BYTE));
değiştir
Kod:
pkPeer->Encode(&it_member->second.bLevel, sizeof(int));
clientmanagerplayer.cpp aç ve arat
Kod:
"PLAYER_DELETE FAILED LEVEL %u >= DELETE LIMIT %d"
değiştir
Kod:
"PLAYER_DELETE FAILED LEVEL %d >= DELETE LIMIT %d"
tekrar arat
Kod:
"PLAYER_DELETE FAILED LEVEL %u >= DELETE LIMIT %d"
değiştir
Kod:
"PLAYER_DELETE FAILED LEVEL %d >= DELETE LIMIT %d"
şimdi sıra clientte
packet.h aç ve arat
Kod:
BYTE byLevel;
değiştir
Kod:
int byLevel;
tekrar arat
Kod:
BYTE byLevel;
değiştir
Kod:
int byLevel;
Pythonguild.h aç ve arat
Kod:
BYTE byLevel;
değiştir
Kod:
int byLevel;
Bütün Anlatımı Tek Tek Elimde Ekledim.
Sorunsuz kendi tarafımca kullanılmaktadır.
Hayırlı Forumlar.
Fakir Savar Kanıt
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Laleci16 - Maximum Level Yükseltme Rehberi
Metin2 özel sunucularında oynarken karakter seviyesi artışı, oyuncuların en çok ilgi gösterdiği konulardan biridir. Özellikle PvP odaklı sunucularda yüksek seviyeye ulaşmak, rekabette öne geçmek için kritik öneme sahiptir. Bu rehberde, Laleci16 gibi güçlü bir karakterin Maximum Level'e nasıl yükseltileceği konusunu detaylıca ele alacağız. Bu süreçte C++ sistem bilgisi, Python GUI ve UIScript gibi araçlar da devreye girebilir.
Laleci16 Karakteri Nedir?
Laleci16, Metin2 özel sunucularında özel komutlarla yaratılan güçlü bir karakterdir. Genellikle test amaçlı ya da oyun içi avantaj sağlamak için kullanılır. Bu karakter, normal karakterlerin çok üzerinde seviye ve özelliklere sahip olabilir. Ancak bu karakteri maximum level'e çıkarmak için bazı özel adımlar izlenmelidir. Özellikle server-side değişiklikler ve game core ayarları büyük rol oynar.
Level Yükseltmenin Temelleri
Bir karakterin seviyesini artırmak için öncelikle experience (EXP) kazanması gerekir. Bu EXP, düşman öldürme, görev tamamlama veya özel event sistemleriyle sağlanabilir. Laleci16 karakterlerinde bu değerler genellikle manuel olarak düzenlenir. Auth ve Game sunucularında yapılan ayarlar sayesinde EXP miktarı hızlandırılabilir veya sınırsız hale getirilebilir. Bu işlemler genellikle C++ source code üzerinden yapılır.
Sunucu Tarafında Gerekli Ayarlar
Maximum levele ulaşmak için sunucu tarafında bazı düzenlemeler yapılmalıdır. Örneğin, db core üzerinde EXP oranları artırılabilir. Aynı zamanda client src dosyalarında da bazı değişiklikler yapılarak karakterin maximum level sınırı genişletilebilir. Bu tür değişiklikler genellikle martysama gibi deneyimli geliştiriciler tarafından gerçekleştirilir. Py Root ve Py GUI sistemleri sayesinde bu işlemler daha kolay yönetilebilir.
Maximum Level Sınırını Zorlamak
Normal Metin2 sunucularında maximum level 120 civarındadır. Ancak özel sunucularda bu değer 200, 300 hatta daha yükseğe çıkarılabilir. Bunun için source edit işlemi yapılır. C++ tabanlı server src dosyalarında level değerleri elle değiştirilebilir. Bu işlem sırasında dikkat edilmesi gereken bazı güvenlik önlemleri vardır. Yanlış bir ayar, sunucunun çökmesine neden olabilir.
EXP Farm Yöntemleri
Laleci16 karakteri ile maximum levele ulaşmak için.EXP farm yöntemleri önemlidir. Bu yöntemler arasında grup raidler, özel event haritaları ve bot kullanımı yer alabilir. Sunucuda aktif olan PvP sistem yapısına göre EXP kazanma yöntemleri farklılık gösterebilir. Bazı sunucularda PvP galibiyeti de EXP kazandırabilir. Bu tür sistemler, game server programming ile geliştirilir ve optimize edilir.
Kodlama Bilgisi Neden Önemlidir?
Laleci16 karakterlerinde maximum levele ulaşmak isteyen oyuncuların bazı temel C++ ve Python bilgisine sahip olması faydalıdır. Bu sayede.EXP ve level sistemleri üzerinde daha fazla kontrol sağlanabilir. Ayrıca pack dosyaları üzerinde yapılan değişiklikler ile oyun içi görsel ve mekanik yenilikler de eklenebilir. Bu tür gelişmiş işlemler, core sistem bilgisi gerektirir.
Sonuç
Laleci16 karakteri ile maximum levele ulaşmak, sadece oyun içi beceri değil, aynı zamanda teknik bilgi gerektiren bir iştir. Metin2 development konusunda bilgi sahibi olmak, bu süreci çok daha hızlı ve sorunsuz hale getirir. Server-side ayarlar, source code düzenlemeleri ve doğru.EXP stratejileri ile hedefinize ulaşmanız kaçınılmazdır. Metin2dev topluluklarında bu konular hakkında sürekli yeni bilgiler paylaşılmaktadır. Bu nedenle aktif olmak da önemlidir.
Laleci16 - Maximum Level Advancement Guide
In Metin2 private servers, character level progression is one of the most focused topics among players. Especially on PvP-oriented servers, reaching high levels is critical for gaining an edge in competition. In this guide, we will thoroughly discuss how to advance the powerful character Laleci16 to Maximum Level. During this process, tools such as C++ system knowledge, Python GUI, and UIScript may also come into play.
What is Laleci16 Character?
Laleci16 is a powerful character created with special commands in Metin2 private servers. It is often used for testing purposes or to gain in-game advantages. This character can have much higher levels and stats than regular characters. However, specific steps must be followed to raise this character to maximum level. Server-side modifications and game core settings play a major role here.
Basics of Level Advancement
To increase a character's level, they first need to gain experience (EXP). This EXP can be earned by killing monsters, completing quests, or through special events. For Laleci16 characters, these values are usually adjusted manually. Settings made on the auth and game servers allow EXP amounts to be accelerated or unlimited. These operations are generally done via C++ source code.
Required Server-Side Adjustments
To reach maximum level, certain adjustments must be made on the server side. For instance, EXP rates can be increased in the db core. Additionally, by modifying client src files, the maximum level cap for characters can be extended. Such modifications are typically performed by experienced developers like martysama. Systems like Py Root and Py GUI make managing these processes easier.
Pushing Beyond Maximum Level Limits
In standard Metin2 servers, the maximum level is around 120. However, in private servers, this value can be raised up to 200, 300, or even higher. To do this, source edit operations are needed. The level values in C++-based server src files can be manually changed. Some security precautions must be taken during this process. Incorrect settings may cause the server to crash.
EXP Farming Methods
To reach the maximum level with the Laleci16 character, EXP farming methods are important. These methods include group raids, special event maps, and bot usage. Depending on the active PvP system structure on the server, EXP earning methods can vary. In some servers, winning PvP battles may also grant EXP. Such systems are developed and optimized with game server programming.
Why Is Coding Knowledge Important?
Players aiming to reach maximum level with Laleci16 characters should ideally possess basic C++ and Python knowledge. This allows for more control over EXP and level systems. Moreover, changes made in pack files can introduce visual and mechanical innovations within the game. Such advanced operations require core system knowledge.
Conclusion
Reaching the maximum level with the Laleci16 character is not only about in-game skills but also requires technical knowledge. Having expertise in Metin2 development makes this process much faster and smoother. With server-side configurations, source code modifications, and proper EXP strategies, achieving your goal becomes inevitable. Metin2dev communities constantly share new information on these topics. Therefore, staying active is also important.
