- Katılım
- 30 Ocak 2020
- Konular
- 50
- Mesajlar
- 812
- Çözüm
- 6
- Online süresi
- 26d 15h
- Reaksiyon Skoru
- 735
- Altın Konu
- 1
- Başarım Puanı
- 184
- MmoLira
- 8,746
- DevLira
- 123
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
GİRİŞ & PROBLEM
Merhaba, GM kodlarında canımı sıkan ufak tefek şeyleri düzeltirken bununla alakalı da bir değişiklik yapmıştım fakat paylaşmaya vakit olmamıştı, detaylara önem verenler için işe yarayabilir o yüzden paylaşmak istedim.
NEDEN ?
Fonksiyonlar içerisinde gerekli kontroller ve bilgilendirme/hata mesajları eksikti, gereken her şey eklenerek kodlar yenilendi.
ÇÖZÜM
Öncelikle "cmd_gm.cpp" dosyası açılır.
[CODE lang="cpp" title="cmd_gm.cpp"]
// BULUNUR;
ACMD (do_advance)
// KOMPLE DEĞİŞTİRİLİR;
ACMD (do_advance) // DevFix 53
{
char arg1[256], arg2[256];
two_arguments (argument, arg1, sizeof (arg1), arg2, sizeof (arg2));
if (!*arg1 || !*arg2)
{
ch->ChatPacket (CHAT_TYPE_INFO, "Syntax: /a <player name> <level>");
return;
}
LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC (arg1);
if (!tch)
{
ch->ChatPacket (CHAT_TYPE_INFO, "<GM> %s does not exist!", arg1);
return;
}
unsigned char old_level = tch->GetLevel(); // DevFix 122
unsigned char new_level = 0; // DevFix 122
str_to_number (new_level, arg2);
new_level = MINMAX (1, new_level, PLAYER_MAX_LEVEL_CONST);
if (new_level == old_level)
{
ch->ChatPacket (CHAT_TYPE_INFO, "<GM Control> The specified level is the SAME as the player's current level!");
return;
}
tch->ResetPoint (new_level);
if (new_level < old_level)
{
//tch->ClearSkill(); // If you want to clear players current skills after the level downgrade, uncomment this line. - [MT2Dev Note]
tch->ChatPacket (CHAT_TYPE_INFO, "<GM> Your level downgrade to %u", new_level);
}
else if (new_level > old_level)
{
tch->ChatPacket (CHAT_TYPE_INFO, "<GM> Your level increased to %u", new_level);
}
if (new_level < 50 && old_level >= 50) // Hard-coding for subskills, 50 because of the combo and horse skills.. - [MT2Dev Note]
{
tch->ClearSubSkill(); // If you don't want to clear players current subskills after the level downgrade under 50, comment this line. - [MT2Dev Note]
}
}
// BULUNUR;
ACMD (do_level)
// KOMPLE DEĞİŞTİRİLİR;
ACMD (do_level) // DevFix 53
{
char arg1[256];
one_argument (argument, arg1, sizeof (arg1));
if (!*arg1)
{
ch->ChatPacket (CHAT_TYPE_INFO, "Syntax: /level <level>");
return;
}
unsigned char old_level = ch->GetLevel(); // DevFix 122
unsigned char new_level = 0; // DevFix 122
str_to_number (new_level, arg1);
new_level = MINMAX (1, new_level, PLAYER_MAX_LEVEL_CONST);
if (new_level == old_level)
{
ch->ChatPacket (CHAT_TYPE_INFO, "<GM Control> The specified level is the SAME as the your current level!");
return;
}
// This code use only allowed for GM chars, so we don't need to check or reset skills and subskills.. - [MT2Dev Note]
ch->ChatPacket (CHAT_TYPE_INFO, "<GM> Your level set to %u", new_level);
ch->ResetPoint (new_level);
}[/CODE]
Merhaba, GM kodlarında canımı sıkan ufak tefek şeyleri düzeltirken bununla alakalı da bir değişiklik yapmıştım fakat paylaşmaya vakit olmamıştı, detaylara önem verenler için işe yarayabilir o yüzden paylaşmak istedim.
NEDEN ?
Fonksiyonlar içerisinde gerekli kontroller ve bilgilendirme/hata mesajları eksikti, gereken her şey eklenerek kodlar yenilendi.
ÇÖZÜM
Öncelikle "cmd_gm.cpp" dosyası açılır.
[CODE lang="cpp" title="cmd_gm.cpp"]
// BULUNUR;
ACMD (do_advance)
// KOMPLE DEĞİŞTİRİLİR;
ACMD (do_advance) // DevFix 53
{
char arg1[256], arg2[256];
two_arguments (argument, arg1, sizeof (arg1), arg2, sizeof (arg2));
if (!*arg1 || !*arg2)
{
ch->ChatPacket (CHAT_TYPE_INFO, "Syntax: /a <player name> <level>");
return;
}
LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC (arg1);
if (!tch)
{
ch->ChatPacket (CHAT_TYPE_INFO, "<GM> %s does not exist!", arg1);
return;
}
unsigned char old_level = tch->GetLevel(); // DevFix 122
unsigned char new_level = 0; // DevFix 122
str_to_number (new_level, arg2);
new_level = MINMAX (1, new_level, PLAYER_MAX_LEVEL_CONST);
if (new_level == old_level)
{
ch->ChatPacket (CHAT_TYPE_INFO, "<GM Control> The specified level is the SAME as the player's current level!");
return;
}
tch->ResetPoint (new_level);
if (new_level < old_level)
{
//tch->ClearSkill(); // If you want to clear players current skills after the level downgrade, uncomment this line. - [MT2Dev Note]
tch->ChatPacket (CHAT_TYPE_INFO, "<GM> Your level downgrade to %u", new_level);
}
else if (new_level > old_level)
{
tch->ChatPacket (CHAT_TYPE_INFO, "<GM> Your level increased to %u", new_level);
}
if (new_level < 50 && old_level >= 50) // Hard-coding for subskills, 50 because of the combo and horse skills.. - [MT2Dev Note]
{
tch->ClearSubSkill(); // If you don't want to clear players current subskills after the level downgrade under 50, comment this line. - [MT2Dev Note]
}
}
// BULUNUR;
ACMD (do_level)
// KOMPLE DEĞİŞTİRİLİR;
ACMD (do_level) // DevFix 53
{
char arg1[256];
one_argument (argument, arg1, sizeof (arg1));
if (!*arg1)
{
ch->ChatPacket (CHAT_TYPE_INFO, "Syntax: /level <level>");
return;
}
unsigned char old_level = ch->GetLevel(); // DevFix 122
unsigned char new_level = 0; // DevFix 122
str_to_number (new_level, arg1);
new_level = MINMAX (1, new_level, PLAYER_MAX_LEVEL_CONST);
if (new_level == old_level)
{
ch->ChatPacket (CHAT_TYPE_INFO, "<GM Control> The specified level is the SAME as the your current level!");
return;
}
// This code use only allowed for GM chars, so we don't need to check or reset skills and subskills.. - [MT2Dev Note]
ch->ChatPacket (CHAT_TYPE_INFO, "<GM> Your level set to %u", new_level);
ch->ResetPoint (new_level);
}[/CODE]
En Çok Reaksiyon Alan Mesajlar
Paylaşim İçin Teşeküler İyi Forumlar.
- Katılım
- 27 Şub 2021
- Konular
- 705
- Mesajlar
- 4,783
- Çözüm
- 12
- Online süresi
- 1y 1mo
- Reaksiyon Skoru
- 2,824
- Altın Konu
- 26
- Başarım Puanı
- 324
- MmoLira
- 897
- DevLira
- 6
Paylaşım için teşekkürler, eline sağlık. 

- Katılım
- 23 Nis 2015
- Konular
- 1,364
- Mesajlar
- 6,476
- Çözüm
- 5
- Online süresi
- 4mo 12d
- Reaksiyon Skoru
- 2,673
- Altın Konu
- 59
- Başarım Puanı
- 344
- MmoLira
- 27,992
- DevLira
- 3
Paylaşim İçin Teşeküler İyi Forumlar.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 0
- Görüntüleme
- 266
- Cevaplar
- 6
- Görüntüleme
- 278
- Cevaplar
- 10
- Görüntüleme
- 938
- Cevaplar
- 12
- Görüntüleme
- 1K
- Cevaplar
- 18
- Görüntüleme
- 1K







