- Katılım
- 16 Ara 2019
- Konular
- 20
- Mesajlar
- 510
- Çözüm
- 2
- Online süresi
- 1mo 22d
- Reaksiyon Skoru
- 179
- Altın Konu
- 0
- TM Yaşı
- 6 Yıl 5 Ay 25 Gün
- Başarım Puanı
- 121
- MmoLira
- 5,791
- DevLira
- 12
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!
Paylaşım için teşekkürler hocam tam ne işe yarıyorGİ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]
- 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
GM level veya a komutlarını kullandığında leveli değişen tarafa bilgilendirme mesajı veriyor, eğer girilen level oyuncunun leveli ile aynıysa işlem yapmıyor, oyuncu leveli düşürüldüğünde pasif skillerini sıfırlıyor vb.Paylaşım için teşekkürler hocam tam ne işe yarıyor
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 0
- Görüntüleme
- 272
- Cevaplar
- 6
- Görüntüleme
- 279
- Cevaplar
- 10
- Görüntüleme
- 938
- Cevaplar
- 12
- Görüntüleme
- 1K
- Cevaplar
- 18
- Görüntüleme
- 1K





