Merhabalar,
Martysama sistemlerinde çalışabilen özel bir modülümün, Mainline alt yapısında çalışabilmesi için uğraşıyor ve çabalıyorum. Yalnız bir konuda takıldım ve bilgi almak için danışmaya karar verdim.
1. Problem; [input_main.cpp]
Martysama içeriğine ait bu eklenmesi gereken kodun, maalesef benim [input_main.cpp] kaynağımda bulunduğu şekli ise şu tarzda;
Bunun [input_main.cpp] Mainline uyarlanmış halini benimle paylaşabilir misiniz?
2. Problemim ise şu şekildedir; [cmd_gm.cpp]
Bu kısımda ise DoSetTypes:: bölümünde takılıyorum.
Martysama içeriğine ait bu eklenmesi gereken kodun, maalesef benim [cmd_gm.cpp] kaynağımda bulunduğu şekle göre uyarlamaya çalıştığım düzen ise şu tarzda;
UYARLANMASI GEREKEN;
UYARLAMAYA ÇALIŞTIĞIM:
1. Bölüm: (Maalesef bu kısmı atlamak zorunda kalıyorum)
UYARLANMASI GEREKEN;
UYARLAMAYA ÇALIŞTIĞIM [SON]:
UYARLAMAK İSTEYENLER İÇİN HAZIR DOSYALAR;
input_main.cpp
Anlatım Kod:
Uyarlanacak Kod:
cmd_gm.cpp
Anlatım Kod;
Uyarlanacak Kod;
Çok dağınık oldu galiba, ancak kafamdaki dağınıklığı da anlayacağınızı düşünüyorum gerçekten aklımı yitirmek üzereyim, yardımcı olabilirseniz çok sevinirim.
Keyifli forumlar dilerim.
Martysama sistemlerinde çalışabilen özel bir modülümün, Mainline alt yapısında çalışabilmesi için uğraşıyor ve çabalıyorum. Yalnız bir konuda takıldım ve bilgi almak için danışmaya karar verdim.
1. Problem; [input_main.cpp]
C++:
[input_main.cpp]
search ::Chat:
int len;
char chatbuf[CHAT_MAX_LEN + 1];
len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), strContent.c_str());
///replace:
#ifdef ENABLE_RANK_SYSTEM
int len;
char chatbuf[CHAT_MAX_LEN + 1];
char rank[64];
snprintf(rank, sizeof(rank), "|rank|%s|", ch->RankConvert(ch->GetRank()));
len = snprintf(chatbuf, sizeof(chatbuf), "%s %s : %s", rank, ch->GetName(), strContent.c_str());
#else
len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), strContent.c_str());
#endif
Martysama içeriğine ait bu eklenmesi gereken kodun, maalesef benim [input_main.cpp] kaynağımda bulunduğu şekli ise şu tarzda;
C++:
char chatbuf[CHAT_MAX_LEN + 1];
int len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), buf);
Bunun [input_main.cpp] Mainline uyarlanmış halini benimle paylaşabilir misiniz?
2. Problemim ise şu şekildedir; [cmd_gm.cpp]
C++:
///search:
namespace DoSetTypes{
typedef enum do_set_types_s {GOLD, RACE, SEX, JOB, EXP, MAX_HP, MAX_SP, SKILL, ALIGNMENT, ALIGN
///add:
#ifdef ENABLE_RANK_SYSTEM
, RANK, RANK_POINT
#endif
///search:
{ "align", NUMBER, NULL },
///add:
#ifdef ENABLE_RANK_SYSTEM
{ "rank", NUMBER, NULL },
{ "rank_point", NUMBER, NULL },
#endif
///search:
case DoSetTypes::ALIGN: // alignment
case DoSetTypes::ALIGNMENT: // alignment
{
int amount = 0;
str_to_number(amount, arg3);
#ifdef ENABLE_UPDATE_ALIGNMENT_FIX
tch->UpdateAlignment(amount - tch->GetRealAlignment());
#else
tch->UpdateAlignment(amount - ch->GetRealAlignment());
#endif
}
break;
///add:
#ifdef ENABLE_RANK_SYSTEM
case DoSetTypes::RANK:
{
int rank = 0;
str_to_number(rank, arg3);
tch->SetRank(rank);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
case DoSetTypes::RANK_POINT:
{
int rank_point = 0;
str_to_number(rank_point, arg3);
tch->SetRankPoint(rank_point);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
#endif
Bu kısımda ise DoSetTypes:: bölümünde takılıyorum.
Martysama içeriğine ait bu eklenmesi gereken kodun, maalesef benim [cmd_gm.cpp] kaynağımda bulunduğu şekle göre uyarlamaya çalıştığım düzen ise şu tarzda;
UYARLANMASI GEREKEN;
C++:
///search:
namespace DoSetTypes{
typedef enum do_set_types_s {GOLD, RACE, SEX, JOB, EXP, MAX_HP, MAX_SP, SKILL, ALIGNMENT, ALIGN
///add:
#ifdef ENABLE_RANK_SYSTEM
, RANK, RANK_POINT
#endif
///search:
{ "align", NUMBER, NULL },
///add:
#ifdef ENABLE_RANK_SYSTEM
{ "rank", NUMBER, NULL },
{ "rank_point", NUMBER, NULL },
#endif
///search:
case DoSetTypes::ALIGN: // alignment
case DoSetTypes::ALIGNMENT: // alignment
{
int amount = 0;
str_to_number(amount, arg3);
#ifdef ENABLE_UPDATE_ALIGNMENT_FIX
tch->UpdateAlignment(amount - tch->GetRealAlignment());
#else
tch->UpdateAlignment(amount - ch->GetRealAlignment());
#endif
}
break;
///add:
#ifdef ENABLE_RANK_SYSTEM
case DoSetTypes::RANK:
{
int rank = 0;
str_to_number(rank, arg3);
tch->SetRank(rank);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
case DoSetTypes::RANK_POINT:
{
int rank_point = 0;
str_to_number(rank_point, arg3);
tch->SetRankPoint(rank_point);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
#endif
UYARLAMAYA ÇALIŞTIĞIM:
1. Bölüm: (Maalesef bu kısmı atlamak zorunda kalıyorum)
C++:
#ifdef ENABLE_RANK_SYSTEM
, RANK, RANK_POINT
#endif
C++:
#define MISC 0
#define BINARY 1
#define NUMBER 2
const struct set_struct
{
const char *cmd;
const char type;
} set_fields[] = {
{ "gold", NUMBER },
{ "race", BINARY },
{ "sex", BINARY },
{ "exp", NUMBER },
{ "max_hp", NUMBER },
{ "max_sp", NUMBER },
{ "skill", NUMBER },
{ "alignment", NUMBER },
{ "align", NUMBER },
#ifdef ENABLE_RANK_SYSTEM
{ "rank", NUMBER },
{ "rank_point", NUMBER },
#endif
{ "wp", NUMBER },
{ "evolution", NUMBER },
#ifdef ENABLE_CHEQUE_SYSTEM
{ "cheque", NUMBER },
#endif
#ifdef __GAYA_SYSTEM__
{ "gaya", NUMBER },
#endif
#ifdef ENABLE_REBIRT_SYSTEM
{ "rebirt", NUMBER },
#endif
#ifdef ENABLE_YOUTUBER_TAG_SYSTEM
{ "youtuber", NUMBER },
#endif
#ifdef ENABLE_TWITCHER_TAG_SYSTEM
{ "twitcher", NUMBER },
#endif
{ "\n", MISC }
};
C++:
#ifdef ENABLE_RANK_SYSTEM
case 16:
{
int rank = 0;
str_to_number(rank, arg3);
tch->SetRank(rank);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
case 17:
{
int rank_point = 0;
str_to_number(rank_point, arg3);
tch->SetRankPoint(rank_point);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
#endif
}
UYARLANMASI GEREKEN;
C++:
#ifdef ENABLE_RANK_SYSTEM
case DoSetTypes::RANK:
{
int rank = 0;
str_to_number(rank, arg3);
tch->SetRank(rank);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
case DoSetTypes::RANK_POINT:
{
int rank_point = 0;
str_to_number(rank_point, arg3);
tch->SetRankPoint(rank_point);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
#endif
UYARLAMAYA ÇALIŞTIĞIM [SON]:
C++:
#ifdef ENABLE_RANK_SYSTEM
case 16:
{
int rank = 0;
str_to_number(rank, arg3);
tch->SetRank(rank);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
case 17:
{
int rank_point = 0;
str_to_number(rank_point, arg3);
tch->SetRankPoint(rank_point);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
#endif
}
UYARLAMAK İSTEYENLER İÇİN HAZIR DOSYALAR;
input_main.cpp
Anlatım Kod:
C++:
///search ::Chat:
int len;
char chatbuf[CHAT_MAX_LEN + 1];
len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), strContent.c_str());
///replace:
#ifdef ENABLE_RANK_SYSTEM
int len;
char chatbuf[CHAT_MAX_LEN + 1];
char rank[64];
snprintf(rank, sizeof(rank), "|rank|%s|", ch->RankConvert(ch->GetRank()));
len = snprintf(chatbuf, sizeof(chatbuf), "%s %s : %s", rank, ch->GetName(), strContent.c_str());
#else
len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), strContent.c_str());
#endif
Uyarlanacak Kod:
Linkleri görebilmek için
giriş yap veya kayıt ol.
cmd_gm.cpp
Anlatım Kod;
C++:
///search:
namespace DoSetTypes{
typedef enum do_set_types_s {GOLD, RACE, SEX, JOB, EXP, MAX_HP, MAX_SP, SKILL, ALIGNMENT, ALIGN
///add:
#ifdef ENABLE_RANK_SYSTEM
, RANK, RANK_POINT
#endif
///search:
{ "align", NUMBER, NULL },
///add:
#ifdef ENABLE_RANK_SYSTEM
{ "rank", NUMBER, NULL },
{ "rank_point", NUMBER, NULL },
#endif
///search:
case DoSetTypes::ALIGN: // alignment
case DoSetTypes::ALIGNMENT: // alignment
{
int amount = 0;
str_to_number(amount, arg3);
#ifdef ENABLE_UPDATE_ALIGNMENT_FIX
tch->UpdateAlignment(amount - tch->GetRealAlignment());
#else
tch->UpdateAlignment(amount - ch->GetRealAlignment());
#endif
}
break;
///add:
#ifdef ENABLE_RANK_SYSTEM
case DoSetTypes::RANK:
{
int rank = 0;
str_to_number(rank, arg3);
tch->SetRank(rank);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
case DoSetTypes::RANK_POINT:
{
int rank_point = 0;
str_to_number(rank_point, arg3);
tch->SetRankPoint(rank_point);
tch->ComputePoints();
tch->PointsPacket();
tch->UpdatePacket();
}
break;
#endif
Uyarlanacak Kod;
Linkleri görebilmek için
giriş yap veya kayıt ol.
Çok dağınık oldu galiba, ancak kafamdaki dağınıklığı da anlayacağınızı düşünüyorum gerçekten aklımı yitirmek üzereyim, yardımcı olabilirseniz çok sevinirim.
Keyifli forumlar dilerim.
En son bir moderatör tarafından düzenlenmiş: