- Katılım
- 27 Nis 2018
- Konular
- 121
- Mesajlar
- 2,610
- Online süresi
- 1ay 24g
- Reaksiyon Skoru
- 1,531
- Altın Konu
- 33
- Başarım Puanı
- 261
- TM Yaşı
- 7 Yıl 11 Ay 29 Gün
- MmoLira
- 16,578
- DevLira
- 91
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
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)
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 @UmuTsuZinsaN
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 @UmuTsuZinsaN
Son düzenleme:
- Katılım
- 23 Ocak 2016
- Konular
- 15
- Mesajlar
- 902
- Online süresi
- 6ay 25g
- Reaksiyon Skoru
- 319
- Altın Konu
- 0
- Başarım Puanı
- 198
- Yaş
- 33
- TM Yaşı
- 10 Yıl 2 Ay 29 Gün
- MmoLira
- 10,972
- DevLira
- 6
Teşekkürler mmoliraya koyan Arkadaş Cok sevindi garip 
- Katılım
- 2 Şub 2013
- Konular
- 131
- Mesajlar
- 1,807
- Online süresi
- 6ay 28g
- Reaksiyon Skoru
- 615
- Altın Konu
- 0
- Başarım Puanı
- 269
- TM Yaşı
- 13 Yıl 2 Ay 19 Gün
- MmoLira
- 7,258
- DevLira
- 6
Teşekkürler Ben Açiçaktim Çekindim Eline Sağlık ?
- Katılım
- 27 Nis 2018
- Konular
- 121
- Mesajlar
- 2,610
- Online süresi
- 1ay 24g
- Reaksiyon Skoru
- 1,531
- Altın Konu
- 33
- Başarım Puanı
- 261
- TM Yaşı
- 7 Yıl 11 Ay 29 Gün
- MmoLira
- 16,578
- DevLira
- 91
Teşekkürler mmoliraya koyan Arkadaş Cok sevindi garip![]()
Rica ederim düzeltmeye sistem denen birinden ne beklenir ki
Teşekkürler Ben Açiçaktim Çekindim Eline Sağlık ?
Rica ederim kardeşim
Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)
Benzer konular
- Soru
- Cevaplar
- 1
- Görüntüleme
- 224
- Cevaplar
- 17
- Görüntüleme
- 4K



