D 1
delimuratt
melankolıa18 1
melankolıa18
shrpnl 1
shrpnl
Fethi Polat 1
Fethi Polat
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
Agora Metin2 1
Agora Metin2
raderde 1
raderde
Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

[C++] Renewal For GM's /level & /a Commands

  • Konuyu başlatan Konuyu başlatan MT2Dev
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 8
  • Görüntüleme Görüntüleme 1K
  • Etiketler Etiketler
    c++ mt2dev

MT2Dev

Cplusplus
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Fahri Üye
TM Üye
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
Ticaret - 0%
0   0   0

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]​
 

En Çok Reaksiyon Alan Mesajlar

Paylaşım için teşekkürler, eline sağlık. :)
 
Paylaşım için teşekkürler.
 
paylaşım için teşekkürler
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst