Fethi Polat 1
Fethi Polat
Bvural41 1
Bvural41
OnurBoyla 1
OnurBoyla
mavzermete 1
mavzermete
xranzei 1
xranzei
Hikaye Ekle

Cevaplandı Başlangıç Seviyesi

  • Konuyu başlatan Konuyu başlatan umutolc
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 16
  • Görüntüleme Görüntüleme 1K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

v3 filesi kullanıyorum.(yeniyim bu işlere o yüzden öğrenme aşamasındayım) Amacım seviyeyi 55 level başlatmak ve 54 seviye itemleri vs efsunlu şekilde giyili başlatmak.
input_login.cpp'yi bu şekilde düzenledim.
C++:
bool NewPlayerTable(TPlayerTable* table,
    const char* name,
    BYTE job,
    BYTE shape,
    BYTE bEmpire,
    BYTE bCon,
    BYTE bInt,
    BYTE bStr,
    BYTE bDex)
{
    if (job >= JOB_MAX_NUM)
        return false;

    memset(table, 0, sizeof(TPlayerTable));

    strlcpy(table->name, name, sizeof(table->name));

    table->level = 55;
    table->job = job;
    table->voice = 0;
    table->part_base = shape;

    table->st = JobInitialPoints[job].st;
    table->dx = JobInitialPoints[job].dx;
    table->ht = JobInitialPoints[job].ht;
    table->iq = JobInitialPoints[job].iq;

    table->hp = JobInitialPoints[job].max_hp + table->ht * JobInitialPoints[job].hp_per_ht;
    table->sp = JobInitialPoints[job].max_sp + table->iq * JobInitialPoints[job].sp_per_iq;
    table->stamina = JobInitialPoints[job].max_stamina;

    for (int i = 1; i < 55; ++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;

#if defined(ENABLE_WOLFMAN_CHARACTER) && defined(USE_LYCAN_CREATE_POSITION)
    table->x = LYCAN_CREATE_START_X(bEmpire, job) + number(-300, 300);
    table->y = LYCAN_CREATE_START_Y(bEmpire, job) + number(-300, 300);
#else
    table->x = CREATE_START_X(bEmpire) + number(-300, 300);
    table->y = CREATE_START_Y(bEmpire) + number(-300, 300);
#endif
    table->z = 0;
    table->dir = 0;
    table->playtime = 0;
    table->gold = 10000000;

    table->skill_group = 0;   

    return true;
}
Fakat karakterler 1 level başlıyor. Bir türlü çözemedim neden olduğunu. Quest ile seviye vermek istemiyorum, quest ile verince src'den eklediğim itemler seviye 1 lvl başladığından envantere düşüyor ışınlanınca 55 oluyor o yüzden srcden halletmek istedim. Ne yapmam gerekiyor ? Hata nerede yardımcı olursanız teşekkürler şimdiden.
 
Çözüm
Yönteminizi buradan paylaşıp sizinle aynı sorunu yaşayan diğer arkadaşlara da yardımcı olabilir misiniz?
Öncelikle sourceden hazır itemlerini üstünde giyili , seviyesini de 55 level başlatmak istiyordum. Sorunun server tarafında build ettikten sonra oluşan db ve game'nin linklenmemiş olmasıymış. Meğer ben hep eski db ve game kullanarak giriyormuşum. WinSCP üzerinden yeni oluşan db ve gameyi linkleyince sorun çözüldü. Kodlarda herhangi bir hata yokmuş.

bool NewPlayerTable :
C++:
bool NewPlayerTable(TPlayerTable* table,
    const char* name,
    BYTE job,
    BYTE shape,
    BYTE bEmpire,
    BYTE bCon,
    BYTE bInt,
    BYTE bStr,
    BYTE bDex)
{
    if (job >= JOB_MAX_NUM)
        return false;

    memset(table, 0, sizeof(TPlayerTable));

    strlcpy(table->name, name, sizeof(table->name));

    table->level = 55;
    table->job = job;
    table->voice = 0;
    table->part_base = shape;

    table->st = JobInitialPoints[job].st;
    table->dx = JobInitialPoints[job].dx;
    table->ht = JobInitialPoints[job].ht;
    table->iq = JobInitialPoints[job].iq;

    table->hp = JobInitialPoints[job].max_hp + table->ht * JobInitialPoints[job].hp_per_ht;
    table->sp = JobInitialPoints[job].max_sp + table->iq * JobInitialPoints[job].sp_per_iq;
    table->stamina = JobInitialPoints[job].max_stamina;

#if defined(ENABLE_WOLFMAN_CHARACTER) && defined(USE_LYCAN_CREATE_POSITION)
    table->x = LYCAN_CREATE_START_X(bEmpire, job) + number(-300, 300);
    table->y = LYCAN_CREATE_START_Y(bEmpire, job) + number(-300, 300);
#else
    table->x = CREATE_START_X(bEmpire) + number(-300, 300);
    table->y = CREATE_START_Y(bEmpire) + number(-300, 300);
#endif
    table->z = 0;
    table->dir = 0;
    table->playtime = 0;
    table->gold = 0;

    table->skill_group = 0;

    return true;
}

NewPlayerTable2 :

Kod:
bool NewPlayerTable2(TPlayerTable* table, const char* name, BYTE race, BYTE shape, BYTE bEmpire)
{
    if (race >= MAIN_RACE_MAX_NUM)
    {
        sys_err("NewPlayerTable2.OUT_OF_RACE_RANGE(%d >= max(%d))\n", race, MAIN_RACE_MAX_NUM);
        return false;
    }

    unsigned job;

    if (!RaceToJob(race, &job))
    {
        sys_err("NewPlayerTable2.RACE_TO_JOB_ERROR(%d)\n", race);
        return false;
    }

    sys_log(0, "NewPlayerTable2(name=%s, race=%d, job=%d)", name, race, job);

    memset(table, 0, sizeof(TPlayerTable));

    strlcpy(table->name, name, sizeof(table->name));

    table->level = 55;
    table->job = race;    // Á÷¾÷´ë½Å Á¾Á·À» ³Ö´Â´Ù
    table->voice = 0;
    table->part_base = shape;

    table->st = JobInitialPoints[job].st;
    table->dx = JobInitialPoints[job].dx;
    table->ht = JobInitialPoints[job].ht;
    table->iq = JobInitialPoints[job].iq;

    table->hp = JobInitialPoints[job].max_hp + table->ht * JobInitialPoints[job].hp_per_ht;
    table->sp = JobInitialPoints[job].max_sp + table->iq * JobInitialPoints[job].sp_per_iq;
    table->stamina = JobInitialPoints[job].max_stamina;

#if defined(ENABLE_WOLFMAN_CHARACTER) && defined(USE_LYCAN_CREATE_POSITION)
    table->x = LYCAN_CREATE_START_X(bEmpire, job) + number(-300, 300);
    table->y = LYCAN_CREATE_START_Y(bEmpire, job) + number(-300, 300);
#else
    table->x = CREATE_START_X(bEmpire) + number(-300, 300);
    table->y = CREATE_START_Y(bEmpire) + number(-300, 300);
#endif
    table->z = 0;
    table->dir = 0;
    table->playtime = 0;
    table->gold = 31;

    table->skill_group = 0;

    return true;
}

Onları o şekilde düzenliyorum daha sonra gmake clean , gmake all yapıp rebootlayıp giriyorum. Fakat yeni oluşturduğum karakter 1 level başlıyor yine
 

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

Geri
Üst