Birkaç Config Kodu [C++]

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 75

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
1.GM YERE İTEM ATMA ENGELİ(CONFİG AYARLI):
[/LEFT]
config.cpp açılır:
Aratılır;

Kod:
int gPlayerMaxLevel = 99;
Altına eklenir:
Kod:
int gmdepokullanamaz = 0;
Daha sonra aratılır:
Kod:
TOKEN("max_level")
Kod bloğunun altına eklenir:[/B][/B]
Kod:
TOKEN("GM_DEPO_KULLANAMAZ")              {                 str_to_number(gmdepokullanamaz, value_string);                 printf("GM_DEPO_KULLANAMAZ:");                 continue;            }



son hali:
EYrlGA.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;

altına eklenir;
Kod:
Kod:
extern int gmdepokullanamaz;
config kodu hazır şimdi işlevi yapalım;
input_main.cpp aratılır:
Kod:
Kod:
if( IS_SET(pkItem->GetAntiFlag(), ITEM_ANTIFLAG_SAFEBOX) )

altına eklenir;
Kod:
Kod:
if (gmdepokullanamaz == 1)    {         if (ch->GetGMLevel() > GM_PLAYER)         {             ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("|cFFff0000|H|h<Hata> GameMaster Depo Kullanamaz."));             return;         }//depo engeli config secenekli BlackDragonx61 }

son hali:


MEo9Yg.png

son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin

Kod:
gm_depo_kullanamaz: 1

0 kapatır 1 açar
KANIT:
1yV2vj.jpg


/////////////////////////////////////////////////////////
3.GM TİCARET ENGELİ(CONFİG AYARLI):
config.cpp açılır:
aratılır;

Kod:
Kod:
int gPlayerMaxLevel = 99;

altına eklenir:

Kod:
Kod:
int gmticaretyapamaz = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")

Kod bloğunun altına eklenir:

Kod:
Kod:
TOKEN("GM_TICARET_YAPAMAZ")        {             str_to_number(gmticaretyapamaz, value_string);             printf("GM_TICARET_YAPAMAZ: 1\n");             continue;         }
son hali:
1yVj4B.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;

altına eklenir;

Kod:
Kod:
extern int gmticaretyapamaz;

config kodu hazır şimdi işlevi yapalım;
exchange.cpp aratılır:
Kod:
Kod:
if ( IsOpenSafebox() || GetShopOwner() || GetMyShop() || IsCubeOpen())

Kod bloğunun altına eklenir;
Kod:
Kod:
if (gmticaretyapamaz == 1)    {         if (GetGMLevel() > GM_PLAYER || victim->GetGMLevel() > GM_PLAYER)         {             ChatPacket(CHAT_TYPE_INFO, LC_TEXT("|cFFff0000|H|h<Hata> GameMaster Ticaret Yapamaz."));             return false;         } // gm ticaret engeli config secenekli BlackDragonx61 }
son hali:


b5kQ2j.png

başdaki includelerin altına eklenir:
Kod:

Kod:
#include "config.h"

son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin

Kod:
gm_ticaret_yapamaz: 1

0 kapatır 1 açar
KANIT:
Nql9AX.jpg


/////////////////////////////////////////////////////////
4.GM PAZAR AÇMA ENGELİ(CONFİG AYARLI):
config.cpp açılır:
aratılır;

Kod:
Kod:
int gPlayerMaxLevel = 99;

altına eklenir:

Kod:
Kod:
int gmpazarkuramaz = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")

Kod bloğunun altına eklenir:

Kod:
Kod:
TOKEN("GM_PAZAR_KURAMAZ")        {             str_to_number(gmpazarkuramaz, value_string);             printf("GM_PAZAR_KURAMAZ: 1\n");             continue;         }
son hali:
BMvoPD.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern int gmpazarkuramaz;
config kodu hazır şimdi işlevi yapalım;
char.cpp aratılır:
Kod:
Kod:
void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE bItemCount)

altına eklenir:
Kod:
Kod:
if (gmpazarkuramaz == 1)            {         if (GetGMLevel() > GM_PLAYER)         {             ChatPacket(CHAT_TYPE_INFO, LC_TEXT("|cFFff0000|H|h<Hata> GameMaster pazar kuramaz."));             return;         } }

son hali:


n7jYja.png

son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:
gm_pazar_kuramaz: 1

0 kapatır 1 açar
KANIT:
mP4rL0.jpg


/////////////////////////////////////////////////////////
5.GM PAZARDAN İTEM ALMA ENGELİ(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;

altına eklenir:
Kod:
Kod:
int gmpazardanitemalamaz = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")

Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("GM_PAZARDAN_ITEM_ALAMAZ")                {             str_to_number(gmpazardanitemalamaz, value_string);             printf("GM_PAZARDAN_ITEM_ALAMAZ: 1\n");             continue;         }
son hali:
n7jYll.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;

altına eklenir;
Kod:
Kod:
extern int gmpazardanitemalamaz;
config kodu hazır şimdi işlevi yapalım;
shop.cpp aratılır:
Kod:
Kod:
int CShop::Buy(LPCHARACTER ch, BYTE pos) { altına eklenir: Kod: if (gmpazardanitemalamaz == 1)            {         if (ch->GetGMLevel() > GM_PLAYER )         {             ch->ChatPacket(CHAT_TYPE_INFO, "|cFFff0000|H|h<Hata> GameMaster pazardan item alamaz.");             return false;         } //pazardan item alma engeli config secenekli BlackDragonx61 }

son hali:


3Dv2lA.png

Bitmedi ShopManager.cpp aratılır:
Kod:
void CShopManager::Buy(LPCHARACTER ch, BYTE pos)

{

altına eklenir;
Kod:
if (gmpazardanitemalamaz == 1) {
if (ch->GetGMLevel() > GM_PLAYER )
{
ch->ChatPacket(CHAT_TYPE_INFO, "|cFFff0000|H|h<Hata> GameMaster pazardan item alamaz.");
return;
}

}

son hali:


DMBomv.png

son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:
gm_pazardan_item_alamaz: 1

0 kapatır 1 açar
KANIT:
Xv9Dd3.jpg


/////////////////////////////////////////////////////////
6.TİCARET EFEKTİ(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;

altına eklenir:
Kod:
Kod:
int ticaretefekti = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")

Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("TICARET_EFEKTI")               {             str_to_number(ticaretefekti, value_string);             printf("TICARET_EFEKTI: 1\n");             continue;         }
son hali:
n7jYnR.png

config.h aratılır:
Kod:

Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern int ticaretefekti;
config kodu hazır şimdi işlevi yapalım;
Exchange.cpp aratılır:
Kod:
Kod:
if (item->GetVnum() >= 80003 && item->GetVnum() <= 80007)
altına eklenir;
Kod:
Kod:
if (ticaretefekti == 1)            {                 m_pOwner->CreateFly(FLY_SP_MEDIUM, victim);                 for (int i = 0; i < 3; i++){                     m_pOwner->CreateFly(FLY_SP_SMALL, victim);                 }         }     }
Son hali:
4g1YE0.png

son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:
ticaret_efekti: 1


0 kapatır 1 açar
KANIT:
YBqjD2.jpg

/////////////////////////////////////////////////////////
7.SINIRSIZ CESARET PELERİNİ(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
int sinirsizcesaretpelerini = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")
Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("SINIRSIZ_CESARET_PELERINI")                {             str_to_number(sinirsizcesaretpelerini, value_string);             printf("SINIRSIZ_CESARET_PELERINI: 1\n");             continue;         }
son hali:
n7jGVg.png


config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern int sinirsizcesaretpelerini;
config kodu hazır şimdi işlevi yapalım;
char_item.cpp aratılır:
Kod:
Kod:
case REWARD_BOX_UNIQUE_ITEM_CAPE_OF_COURAGE:

altına eklenir;
Kod:
Kod:
if (sinirsizcesaretpelerini == 0)                                 {                                 item->SetCount(item->GetCount()-1);                                 }
Son hali:
ZDM11Z.png

son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:
sinirsiz_cesaret_pelerini: 1
0 kapatır 1 açar
/////////////////////////////////////////////////////////
8.SKİLLERİN 17'DE MASTER OLMASI(CONFİG AYARLI):

config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
int skillmaster17 = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")
Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("SKILL_MASTER_17")              {             str_to_number(skillmaster17, value_string);             printf("SKILL_MASTER_17: 1\n");             continue;         } //BlackDragonx61
son hali:
PqnEGv.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern int skillmaster17;
config kodu hazır şimdi işlevi yapalım;
char_skill.cpp aratılır:
Kod:
Kod:
if (number(1, 21 - MIN(20, GetSkillLevel(pkSk->dwVnum))) == 1);
Bu şekilde Düzenlenir;
Kod:
Kod:
if (skillmaster17 == 0)  //BlackDragonx61                    {                     if (number(1, 21 - MIN(20, GetSkillLevel(pkSk->dwVnum))) == 1);                     }                 }                               SetSkillLevel(pkSk->dwVnum, 20);                 }                 break;
son hali:
OqVdz5.png


son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin

skill_master_17: 1

0 kapatır 1 açar

/////////////////////////////////////////////////////////
9.DELİCİ EFEKTİ(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
int deliciefekti = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")

Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("DELICI_EFEKTI")                {             str_to_number(deliciefekti, value_string);             printf("DELICI_EFEKTI: 1\n");             continue; //BlackDragonx61         }
son hali:
EYrELA.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;

altına eklenir;
Kod:
Kod:
extern int deliciefekti;
config kodu hazır şimdi işlevi yapalım;
Char_battle.cpp aratılır:
Kod:
Kod:
am += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100;
altına eklenir;
Kod:
Kod:
if (deliciefekti == 1)                                      {                     EffectPacket(SE_PENETRATE); //BlackDragonx61                     }
son hali:
URL]


Bitmedi yine Char_battle.cpp aratılır:
Kod:
Kod:
dam += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100;
altına eklenir;
Kod:
Kod:
if (deliciefekti == 1)                                  {                     EffectPacket(SE_PENETRATE);                     }                 }             }
son hali;
8gPEJ1.png

son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:
delici_efekti: 1

0 kapatır 1 açar
KANIT:
1yV2LB.jpg


/////////////////////////////////////////////////////////
10.KÜRESİZ İTEM YANSITMA(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
int kuresizitemyansitma = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")

Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("KURESIZ_ITEM_YANSITMA")                 {             str_to_number(kuresizitemyansitma, value_string);             printf("KURESIZ_ITEM_YANSITMA: 1\n"); //BlackDragonx61             continue;         }
son hali:
62r63E.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern int kuresizitemyansitma;
config kodu hazır şimdi işlevi yapalım;
input_main.cpp aratılır:
Kod:
Kod:
int nPrismCount = ch->CountSpecifyItem(ITEM_PRISM);
şu şekilde düzenlenir;
Kod:
Kod:
int nPrismCount = ch->CountSpecifyItem(ITEM_PRISM);    if (kuresizitemyansitma == 1)     {     if (nPrismCount < hyperlinks)         return 0;     else //BlackDragonx61     if (nPrismCount < hyperlinks)         return 1;     }

son hali:
JYqE5j.png

son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:
kuresiz_item_yansitma: 1


0 kapatır 1 açar
/////////////////////////////////////////////////////////
11.SINIRSIZ POT(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
int sinirsizpot = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")
Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("SINIRSIZ_POT")        {             str_to_number(sinirsizpot, value_string);             printf("SINIRSIZ_POT: 1\n");             continue;         }
son hali:
og0Y22.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern int sinirsizpot;
config kodu hazır şimdi işlevi yapalım;
char_item.cpp aratılır:
Kod:
Kod:
case USE_POTION:
aşağı gelinir
Kod:
item->SetCount(item->GetCount() - 1);
şu şekil düzenlenir;
Kod:
Kod:
if (sinirsizpot == 0)                        {                         item->SetCount(item->GetCount() - 1); //BlackDragonx61                         }                         m_nPotionLimit--;                         break;
son hali:
LaZYaG.png

son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:
sinirsiz_pot: 1


0 kapatır 1 açar
/////////////////////////////////////////////////////////
12.METİN TAŞI DEDEKTOR SAYISI(CONFİG AYARLI):

config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
long int metin_dedektor_sayisi = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")
Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("METIN_DEDEKTOR_SAYISI")        { //BlackDragonx61             str_to_number(metin_dedektor_sayisi, value_string);             metin_dedektor_sayisi = MINMAX(0, metin_dedektor_sayisi, 1000000L);             fprintf(stderr, "METIN_DEDEKTOR_SAYISI: %ld\n", metin_dedektor_sayisi);         }
son hali:
RY1XYo.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern long int metin_dedektor_sayisi;
config kodu hazır şimdi işlevi yapalım;
char_item.cpp aratılır:
Kod:
Kod:
if (item->GetSocket(0) >= 6)
şu şekilde değiştirilir;
Kod:
Kod:
if (item->GetSocket(0) >= (metin_dedektor_sayisi))
son hali:
JYqX6q.png

son olarak
channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:
metin_dedektor_sayisi: 200


200 ü değiştirebilirsiniz.

//Önemli dedektör sayısının artması için pythondan düzenleme:
ROOT/uitooltip.py aratılır:
Kod:
Kod:
if 27989 == itemVnum or 76006 == itemVnum:
altta (6 -usecount) yazar 6'yi değitirebilirsiniz.
/////////////////////////////////////////////////////////
13.MİNİMUM BAĞIRMA LEVELİ(CONFİG AYARLI):

config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
long int bagirmalevelimin = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")
Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("BAGIRMA_LEVELI_MIN")               {             str_to_number(bagirmalevelimin, value_string);             bagirmalevelimin = MINMAX(0, bagirmalevelimin, 1000000L);             fprintf(stderr, "BAGIRMA_LEVELI_MIN: %ld\n", bagirmalevelimin);         }
son hali:
LaZplj.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern long int bagirmalevelimin;
config kodu hazır şimdi işlevi yapalım;
input_main.cpp aratılır:
Kod:
Kod:
const int SHOUT_LIMIT_LEVEL = g_iUseLocale ? 15 : 3;
şu şekide düzenlenir;
Kod:
Kod:
const int SHOUT_LIMIT_LEVEL = bagirmalevelimin;         if (ch->GetLevel() < SHOUT_LIMIT_LEVEL)//BlackDragonx61         {             ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("|cFFff0000|H|h<Hata> Bagırmak icin gerekli seviye:%d"), SHOUT_LIMIT_LEVEL);             return (iExtraLen);         }
son hali:
n7jApV.png

channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:
bagirma_leveli_min: 17


17 yi değiştirebilirsiniz.
KANIT:
n7jAoM.jpg
/////////////////////////////////////////////////////////
14.TAŞ EKLEME ORANI(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
long int tas_ekleme_orani = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")
Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("TAS_EKLEME_ORANI")//BlackDragonx61        {             str_to_number(tas_ekleme_orani, value_string);             tas_ekleme_orani = MINMAX(0, tas_ekleme_orani, 1000000L);             fprintf(stderr, "TAS_EKLEME_ORANI: %ld\n", tas_ekleme_orani);         }
son hali:
mP4zn0.png

config.h aratılır:
Kod:

Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern long int tas_ekleme_orani;
config kodu hazır şimdi işlevi yapalım;
char_item.cpp aratılır:
Kod:
Kod:
if (number(1, 100) <= 30)
şu şekilde değiştirilir;
Kod:
Kod:
if (number(1, 100) <= (tas_ekleme_orani))
son hali:
AmnqBB.png

Son olarakchannel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:

tas_ekleme_orani: 70
70'i değiştirebilirsiniz.

/////////////////////////////////////////////////////////
15.CEVHER EKLEME ORANI(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:

Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
long int cevher_ekleme_orani = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")
Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("CEVHER_EKLEME_ORANI")//BlackDragonx61        {             str_to_number(cevher_ekleme_orani, value_string);             cevher_ekleme_orani = MINMAX(0, cevher_ekleme_orani, 1000000L);             fprintf(stderr, "CEVHER_EKLEME_ORANI: %ld\n", cevher_ekleme_orani);         }
son hali:
Amng2z.png

[config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern long int cevher_ekleme_orani;
config kodu hazır şimdi işlevi yapalım;
char_item.cpp aratılır:
Kod:
Kod:
if (number(1, 100) <= 50)
şu şekide değiştirilir;
Kod:
Kod:
if (number(1, 100) <= (cevher_ekleme_orani))//BlackDragonx61
son hali:
2gn5YN.png

Son olarakchannel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:

cevher_ekleme_orani: 70
70'i değiştirebilirsiniz.
/////////////////////////////////////////////////////////
16.YERE ATILAN (DÜŞÜRÜLEN) İTEMİN KAYBOLMA SÜRESİ(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
long int yeredusenitemkaybolmasuresi = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")
Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("YERE_DUSEN_ITEM_KAYBOLMA_SURESI")//BlackDragonx61        {             str_to_number(yeredusenitemkaybolmasuresi, value_string);             yeredusenitemkaybolmasuresi = MINMAX(0, yeredusenitemkaybolmasuresi, 1000000L);             fprintf(stderr, "YERE_DUSEN_ITEM_KAYBOLMA_SURESI: %ld\n", yeredusenitemkaybolmasuresi);         }
son hali:
PqnB6v.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern long int yeredusenitemkaybolmasuresi;
config kodu hazır şimdi işlevi yapalım;
char_item.cpp aratılır:
Kod:
Kod:
pkItemToDrop->StartDestroyEvent();
Şu şekilde değiştirilir;
Kod:
Kod:
pkItemToDrop->StartDestroyEvent(yeredusenitemkaybolmasuresi);
son hali:
g52y8R.png

Son olarakchannel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:

yere_dusen_item_kaybolma_suresi: 5
5'i değiştirebilirsiniz.
/////////////////////////////////////////////////////////
17.ÖLDÜRÜLEN CANAVARIN(MOBUN)YOKOLMA SÜRESİ(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
long int mob_kaybolma_suresi = 0;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")
Kod bloğunun altına eklenir:
Kod:
Kod:
TOKEN("MOB_KAYBOLMA_SURESI")//BlackDragonx61        {             str_to_number(mob_kaybolma_suresi, value_string);             mob_kaybolma_suresi = MINMAX(0, mob_kaybolma_suresi, 1000000L);             fprintf(stderr, "MOB_KAYBOLMA_SURESI: %ld\n", mob_kaybolma_suresi);         }
son hali:
zAaY07.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern long int mob_kaybolma_suresi;
config kodu hazır şimdi işlevi yapalım;
char_battle.cpp aratılır;
Kod:
Kod:
m_pkDeadEvent = event_create(dead_event, pEventInfo, bImmediateDead ? 1 : PASSES_PER_SEC(10));
şu şekilde değiştirilir:
Kod:
Kod:
m_pkDeadEvent = event_create(dead_event, pEventInfo, bImmediateDead ? 1 : PASSES_PER_SEC(mob_kaybolma_suresi));//BlackDragonx61
son hali:
NqlW8L.png

Son olarak channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:

mob_kaybolma_suresi: 5
5'i değiştirebilirsiniz.
/////////////////////////////////////////////////////////
18.İÇ İÇE GİREN İTEM SAYISI(CONFİG AYARLI):
config.cpp açılır:
aratılır;
Kod:
Kod:
int gPlayerMaxLevel = 99;
altına eklenir:
Kod:
Kod:
int gItemMaxCount = 200;
Daha sonra aratılır:
Kod:
Kod:
TOKEN("max_level")
Altına eklenir.
Kod:
TOKEN("item_max_count")        {             str_to_number(gItemMaxCount, value_string);             gItemMaxCount = MINMAX(1, gItemMaxCount, 255);             fprintf(stderr, "ITEM_MAX_COUNT : %d\n", gItemMaxCount);         }

son hali:
EYrG3A.png

config.h aratılır:
Kod:
Kod:
extern int gPlayerMaxLevel;
altına eklenir;
Kod:
Kod:
extern int gItemMaxCount;
config kodu hazır şimdi işlevi yapalım;
common/item_length.h aratılır:
Kod:
Kod:
ITEM_MAX_COUNT                = 200,
şu şekide değiştirilir;
Kod:
Kod:
ITEM_MAX_COUNT                = 255,
Bitmedi game/src/item.cpp aratılır:
Kod:
Kod:
return MIN(m_dwCount, 200);
şu şekilde değiştirilir;
Kod:
Kod:
return MIN(m_dwCount, gItemMaxCount);
son hali:
d58QPX.png

Son olarak channel1,channel2,channel3,channel4,game99 içindeki CONFIG dosyasının alt kısmına ekleyin
Kod:

item_max_count: 255
255'i değiştirebilirsiniz.Sınır 255'tir.
KANIT:
4g17z7.jpg



Birkaç Config Kodu [C++] - Metin2 Geliştirme Rehberi


Metin2 özel sunucularında geliştirme yaparken, config dosyaları büyük rol oynar. Bu dosyalar sayesinde oyun mekanikleri, sistem ayarları ve kullanıcı deneyimi şekillenir. Özellikle C++ tabanlı sistemlerde, config dosyaları doğrudan sunucu davranışlarını yönlendirir. Bu yazıda, Metin2 özel sunucu geliştirme sürecinde kullanılan bazı temel config kodlarını ve bunların nasıl ekleneceğini inceleyeceğiz.

Config Dosyası Nedir?
Config dosyaları, oyun sunucusunun çalışma parametrelerini belirleyen yapılandırma dosyalarıdır. Genellikle .txt veya .conf uzantılıdır. Bu dosyalar, sunucu başlatılırken okunur ve belirlenen ayarlara göre sistem çalışır. C++ tabanlı sunucularda, bu ayarlar genellikle doğrudan kaynak koda entegre edilir veya runtime sırasında yüklenir.

Temel Config Kodları
Aşağıda, Metin2 özel sunucularında yaygın olarak kullanılan bazı config kodlarını bulabilirsiniz:

- EnablePVPSystem: PvP sistemini aktif ya da pasif yapar. 1 = Aktif, 0 = Pasif
- MaxLevelLimit: Oyuncuların ulaşabileceği maksimum seviyeyi belirler.
- DropRateMultiplier: Eşya düşme oranını çoğaltan değerdir. Örneğin 2.0 = 2 kat düşme.
- ExpRateMultiplier: Kazanılan tecrübe miktarını çoğaltır.

Örnek Config Tanımı (game/core)
Aşağıdaki örnek, C++ ile yazılmış bir config dosyasında nasıl tanımlanır?

Kod:
[B][COLOR=#9365b8]config.cpp[/COLOR][/B][BR][/BR]int g_bPvPEnabled = 0;[BR][/BR]int g_nMaxLevel = 120;[BR][/BR]float g_fDropRate = 1.0f;[BR][/BR]float g_fExpRate = 1.0f;[BR][/BR]


Python ile Config Entegrasyonu
Bazı sunucular, config yönetimini Python üzerinden yapmayı tercih eder. Bu durumda, py dosyaları aracılığıyla config değerleri runtime esnasında okunabilir veya değiştirilebilir. Örneğin:

Kod:
[B][COLOR=#9365b8]config_loader.py[/COLOR][/B][BR][/BR]pvp_enabled = get_config_value('EnablePVPSystem')[BR][/BR]max_level = get_config_value('MaxLevelLimit')[BR][/BR]drop_rate = get_config_value('DropRateMultiplier')[BR][/BR]


Compile ve Ayarların Uygulanması
Config dosyalarında yapılan değişiklikler, genellikle sunucu yeniden derlenerek (compile) etkinleştirilir. Metin2 sunucu kaynak kodlarında (src) yapılan config güncellemeleri, auth, game ve client tarafında senkronize edilmelidir. Bu süreçte, doğru config yönetimi olmadan sistem çökebilir veya beklemediğiniz davranışlar gösterebilir.

Db Core ve Config İlişkisi
Veritabanı çekirdeği (db core) ile config dosyaları arasında sıkı bir ilişki vardır. Bazı ayarlar doğrudan database'e yazılır, bazıları runtime sırasında belleğe alınır. Bu nedenle, config dosyaları ile db core arasındaki senkronizasyonu korumak önemlidir.

Sonuç
Config dosyaları, Metin2 özel sunucu geliştirme sürecinin kritik bileşenlerindendir. Doğru yapılandırılmış config sistemleri, hem oyuncu deneyimini artırır hem de sunucu performansını optimize eder. Bu yazıda paylaştığımız örneklerle, C++ ve Python tabanlı config yönetimi hakkında fikir sahibi oldunuz. Daha fazla sistem ve kod örneği için Metin2Lobby sitesini takip etmeyi unutmayın.


Several Config Codes [C++] - Metin2 Development Guide


In Metin2 private server development, configuration files play a crucial role. These files shape game mechanics, system settings, and user experience. Especially in C++ based systems, config files directly influence server behavior. In this article, we will examine some basic config codes used in Metin2 private server development and how they are implemented.

What Is a Config File?
Configuration files are setup files that define the operational parameters of a game server. They are usually in .txt or .conf formats. These files are read when the server starts up and the system operates according to the defined settings. In C++ based servers, these settings are often integrated directly into the source code or loaded at runtime.

Basic Config Codes
Below you can find some commonly used config codes in Metin2 private servers:

- EnablePVPSystem: Enables or disables the PvP system. 1 = Active, 0 = Inactive
- MaxLevelLimit: Defines the maximum level players can reach.
- DropRateMultiplier: Multiplier for item drop rates. For example, 2.0 = double drop rate.
- ExpRateMultiplier: Multiplies the gained experience amount.

Example Config Definition (game/core)
The following example shows how these configurations are defined in a C++ written config file:

Kod:
[B][COLOR=#9365b8]config.cpp[/COLOR][/B][BR][/BR]int g_bPvPEnabled = 0;[BR][/BR]int g_nMaxLevel = 120;[BR][/BR]float g_fDropRate = 1.0f;[BR][/BR]float g_fExpRate = 1.0f;[BR][/BR]


Integration with Python Config
Some servers prefer to manage config through Python. In such cases, Python files can be used to read or modify config values during runtime. Example:

Kod:
[B][COLOR=#9365b8]config_loader.py[/COLOR][/B][BR][/BR]pvp_enabled = get_config_value('EnablePVPSystem')[BR][/BR]max_level = get_config_value('MaxLevelLimit')[BR][/BR]drop_rate = get_config_value('DropRateMultiplier')[BR][/BR]


Compile and Applying Settings
Changes made in config files are typically activated by recompiling the server. Updates made in the Metin2 source code (src) need to be synchronized across auth, game, and client sides. Without proper config management, the system may crash or behave unexpectedly.

Relationship Between Db Core and Config
There is a tight relationship between the database core (db core) and config files. Some settings are directly written to the database, while others are loaded into memory during runtime. Therefore, maintaining synchronization between config files and db core is essential.

Conclusion
Config files are critical components of Metin2 private server development. Properly configured systems enhance player experience and optimize server performance. With the examples shared in this article, you now have insight into config management in C++ and Python-based systems. To see more systems and code examples, don’t forget to follow Metin2Lobby.​
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt