noisiv 1
noisiv
Manwe Work 1
Manwe Work
farkmt2official 1
farkmt2official
Mt2Hizmet 1
Mt2Hizmet
Bvural41 1
Bvural41
berzahx 1
berzahx
mavzermete 1
mavzermete
Hikaye Ekle

[C++] Yeni Config Kodu Oluşturma.

  • Konuyu başlatan Konuyu başlatan Etzhel
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 10
  • Görüntüleme Görüntüleme 3K

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

En çok aranan konulardan birisi budur herhalde. Bi ara paylaşılmıştı sonradan kaldırıldı. Bu anlatacağım bool dur yani 0 ve 1 ile çalışır. Burda anlatacağım gmlerin yere item atmasını engelleyecek config kodunu oluşturma. Umarım bitane mod gelip daha önce verildi diye kapatmaz konuyu burdaki amaç yeni config kodu nasıl oluşturulur. Config kodundan değer çekmeyide yarına paylaşırım. Örneğin max_lonca_skor: 250 gibi.

Lütfen kopyala/yapıştır yapmayın hata alırısınız kendi elinizle yazın resimlere bakarak.

İlk başta sourcemize config komutlarını ekleyelim.

Açılır: config.cpp

Aratılır: gPlayerMaxLevel

Altına eklenir: // Burdaki sıfır eğer config dosyamızda bu kod yoksa standart olarak geçerli olacak değerdir.
Kod:
int gmyereitematamaz= 0;

Eq4AX9.png


Daha sonra tekrar aratılır: gPlayerMaxLevel

Bulduğumuz kod bloğunun altına eklenir:
Kod:
TOKEN("GM_YERE_ITEM_ATAMAZ")
{
    str_to_number(gmyereitematamaz, value_string);
    printf("GM_YERE_ITEM_ATAMAZ: 1\n");
    continue;
}


j2GN9G.png


Şimdi config.h açılır.

Aratılır: gPayerMaxLevel

Altına eklenir:
Kod:
extern int gmyereitematamaz;

2kVoD0.png


Config kodumuzu oluşturduk şimdi geldi buna işlev yüklemeye. Belirttiğim gibi gm nin yere item atmasını engelleyen config kodunu oluşturmayı gösteriyorum bu konuda. Siz de geliştirip farklı işlevler için kod oluşturabilirsiniz. Mantık genellikle aynı.

Açılır: char_item.cpp

Aratılır:
Kod:
bool CHARACTER::DropItem(TItemPos Cell, BYTE bCount)

Bulunur:
Kod:
LPITEM item = NULL;

Yukardaki koddan sonra iki defa entere basıp alttaki kod eklenir.

Kod:
if (gmyereitematamaz == 1)
{
    if (GetGMLevel() > GM_PLAYER)
    {
        ChatPacket(CHAT_TYPE_INFO, "|cFFff0000|H|h<Hata> GameMaster yere item atamaz.");
        return false;
    }
}

B05bqj.png



Bu işlemler bittik sonra config dosyana gm_yere_item_atamaz: 1 kodunu eklersen gmlerin yere item atmasını engellesin.

Kanıt:
cT19yUq.jpg
 
Moderatör tarafında düzenlendi:
Teşekkürler,

Kod:
printf("GM_YERE_ITEM_ATAMAZ: 1\n");
Bunun yerine
Kod:
fprintf("GM_YERE_ITEM_ATAMAZ: %d\n", gmyereitematamaz);
Bu şekilde yazılması daha iyi confige kaç yazdıysa o rakkam çıkar.
 
Teşekkürler,

Kod:
printf("GM_YERE_ITEM_ATAMAZ: 1\n");
Bunun yerine
Kod:
fprintf("GM_YERE_ITEM_ATAMAZ: %d\n", gmyereitematamaz);
Bu şekilde yazılması daha iyi confige kaç yazdıysa o rakkam çıkar.

senin dediğinde doğru ama zaten config komutunu ekleyince o yazı çıkıyor eklemeyince yazdırmıyor.
 
En çok aranan konulardan birisi budur herhalde. Bi ara paylaşılmıştı sonradan kaldırıldı. Bu anlatacağım bool dur yani 0 ve 1 ile çalışır. Burda anlatacağım gmlerin yere item atmasını engelleyecek config kodunu oluşturma. Umarım bitane mod gelip daha önce verildi diye kapatmaz konuyu burdaki amaç yeni config kodu nasıl oluşturulur. Config kodundan değer çekmeyide yarına paylaşırım. Örneğin max_lonca_skor: 250 gibi.

Lütfen kopyala/yapıştır yapmayın hata alırısınız kendi elinizle yazın resimlere bakarak.

İlk başta sourcemize config komutlarını ekleyelim.

Açılır: config.cpp

Aratılır: gPlayerMaxLevel

Altına eklenir: // Burdaki sıfır eğer config dosyamızda bu kod yoksa standart olarak geçerli olacak değerdir.
Kod:
int gmyereitematamaz= 0;

7W7r6dT.png


Daha sonra tekrar aratılır: gPlayerMaxLevel

Bulduğumuz kod bloğunun altına eklenir:
Kod:
TOKEN("GM_YERE_ITEM_ATAMAZ")
{
    str_to_number(gmyereitematamaz, value_string);
    printf("GM_YERE_ITEM_ATAMAZ: 1\n");
    continue;
}

mS5W8rl.png


Şimdi config.h açılır.

Aratılır: gPayerMaxLevel

Altına eklenir:
Kod:
extern int gmyereitematamaz;

ioXArgr.png


Config kodumuzu oluşturduk şimdi geldi buna işlev yüklemeye. Belirttiğim gibi gm nin yere item atmasını engelleyen config kodunu oluşturmayı gösteriyorum bu konuda. Siz de geliştirip farklı işlevler için kod oluşturabilirsiniz. Mantık genellikle aynı.

Açılır: char_item.cpp

Aratılır:
Kod:
bool CHARACTER::DropItem(TItemPos Cell, BYTE bCount)

Bulunur:
Kod:
LPITEM item = NULL;

Yukardaki koddan sonra iki defa entere basıp alttaki kod eklenir.

Kod:
if (gmyereitematamaz == 1)
{
    if (GetGMLevel() > GM_PLAYER)
    {
        ChatPacket(CHAT_TYPE_INFO, "|cFFff0000|H|h<Hata> GameMaster yere item atamaz.");
        return false;
    }
}

RSgmQGt.png



Bu işlemler bittik sonra config dosyana gm_yere_item_atamaz: 1 kodunu eklersen gmlerin yere item atmasını engellesin.

Kanıt:
cT19yUq.jpg

continue'ye bazı durumlarda gerek yok örneğin common , constants gibi durumlarada continue kullanırsan çalışmaz haberin olsun dedim sanal hayatınızda başarılar artık bıraktığım için komple uğraşmıyorum beni stackover , github gibi forumlarda görebilirsiniz :) bundan sonra sadece yazılım :)
 

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

Geri
Üst