C++ Configli Başlangıç Leveli

zodiac160

Üye
Üye
Mesaj
80
Çözümler
3
Beğeni
32
Puan
419
Ticaret Puanı
0
Arkadaşlar hayırlı ramazanlar öncelikle. Configli olarak başlangıç leveli konusunda bin bir türlü konu var farkındayım. Fakat fark ettiğim bir husus vardı eğer configli olarak ayarlarsak ve questflaq ile exp tanımlamazsak input_login.cpp üzerinden yaptığımızda belirttiğimiz level ne ise başlangıç levelimiz o oluyor sorunu ise 1 levelde ki statü durumu ne ise örneğin 760hp 260sp vs ise 100 levelde yapsan 60 levelde yapsan yine 760hp 260sp gibi statüleri kalıyor yani levele göre random artış göstermiyor bunun çözümü ile paylaşmayı düşündüm umarım işinize gerçekten yarar. Questflag kullanmaktan daha yararlı olabileceğini düşünüyorum. Eğer eksiğim yanlışm varsa affola daha iyisini yaparım eksiğin var diyenler olursa lütfen paylaşırsa işine yarayacak olan arkadaşlara faydamız olmuş olur.

C++:
service.h/ martysama kullananlar commondefines.h aç

ekle:

#define ENABLE_STARTING_LEVEL

game/src/config.cpp aç
arat:
extern int gPlayerMaxLevel;

üzerine ekle:

#ifdef ENABLE_STARTING_LEVEL
extern int startingLevel;
#endif

arat:

        TOKEN("max_level")

üzerine ekle:

#ifdef ENABLE_STARTING_LEVEL
        TOKEN("START_LEVEL") {
            str_to_number(startingLevel, value_string);
            fprintf(stderr, "START_LEVEL: %d\n", startingLevel);
        }
#endif

game/src/config.h aç ve arat:

extern int gPlayerMaxLevel;

üzerine ekle:

#ifdef ENABLE_STARTING_LEVEL
extern int startingLevel;
#endif

game/src/input_login.cpp aç
includelerin bitimine ekle

#ifdef ENABLE_STARTING_LEVEL
    extern int startingLevel;
#endif

arat:

bool NewPlayerTable2(TPlayerTable* table, const char* name, BYTE race, BYTE shape, BYTE bEmpire)

bu kod bloğunu bulduktan sonra hemen aşağısında

    table->level = 1;
  
mevcut bununla değiştiriyoruz

#ifdef ENABLE_STARTING_LEVEL
    table->level = startingLevel;
    for (int i = 1; i < startingLevel; ++i)
    {
        int iHP = number(JobInitialPoints[job].hp_per_lv_begin, JobInitialPoints[job].hp_per_lv_end);
        int iSP = number(JobInitialPoints[job].sp_per_lv_begin, JobInitialPoints[job].sp_per_lv_end);
        table->sRandomHP += iHP;
        table->sRandomSP += iSP;
        table->stat_point += 3;
    }
    table->hp += table->sRandomHP;
    table->sp += table->sRandomSP;
    //table->gold =5000000; isteyen bunu aktif edip başlangıçta para verebilir.
#else
    table->level = 1;
#endif

Filesteki bütün kanalların CONFIG doyalarına START_LEVEL: 1 olarak ekleyin 1 kısmını değiştirip başlangıç levelini değiştirebilirsiniz
 
Son düzenleme:
Teşekkürler.

Bildiğiniz karakter üstünde itemle başlatma varmı acaba efsunlu bir şekilde ? sıkıntısız
 
Teşekkürler.

Bildiğiniz karakter üstünde itemle başlatma varmı acaba efsunlu bir şekilde ? sıkıntısız
Rica ederim. Evet var oda c++ fakat şuan bir tek savaşçıyı kabul ediyor svaşçının itemler belirttiğim efsunda belirttiğim taşlarda geliyor ninja sura filan gelmiyor o problemi çözüp onuda paylaşırım
 
Geri
Üst