Yardım Altın Zodyak Kılıcı

Yardım 
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

emirhan z

Üye
Üye
Mesaj
53
Çözümler
1
Beğeni
13
Puan
59
Ticaret Puanı
0
Arkadaşlar merhaba serverimde ekstra bir ayar yapmamama rağmen metin kesince içinden bazen altın zodyak kılıcı +0 kanlı kılıç +0 keskin pala +0 düşüyor bunu nerden ve nasıl kaldırabilirim dönüşüm itemi sonuçta?
 
Son düzenleme:
mob_drop_item.txt içinde itemin kodunu arattırdınız mı?
 
common_drop_item.txt dosyasını da kontrol edin.
Ayrıca bu item eğer bir göreve dahilse quest sebebiyle de düşüyor olabilir.
 
common_drop_item.txt dosyasını da kontrol edin.
Ayrıca bu item eğer bir göreve dahilse quest sebebiyle de düşüyor olabilir.
orada da yok ve quest olup olmadığını bilmiyorum item kodunu arattığımda
C++:
    DropEvent_CharStone()
    {
        percent_lv01_10 =  100;
        percent_lv11_30 =  200;
        percent_lv31_MX =  300;
        level_range = 10;
        alive = false;
    }
game kısmında böyle bir kod var
quest bölümünde yok
 
Drop event ile düşen item sanırsam. game srcde DropEvent_CharStone bu fonksiyonu bi aratın. Event flagın yazılı olduğu kod olması lazım
 
Drop event ile düşen item sanırsam. game srcde DropEvent_CharStone bu fonksiyonu bi aratın. Event flagın yazılı olduğu kod olması lazım
C++:
// DROPEVENT_CHARSTONE
// drop_char_stone 1
// drop_char_stone.percent_lv01_10 5
// drop_char_stone.percent_lv11_30 10
// drop_char_stone.percent_lv31_MX 15
// drop_char_stone.level_range       10
static struct DropEvent_CharStone
{
    int percent_lv01_10;
    int percent_lv11_30;
    int percent_lv31_MX;
    int level_range;
    bool alive;

    DropEvent_CharStone()
    {
        percent_lv01_10 =  100;
        percent_lv11_30 =  200;
        percent_lv31_MX =  300;
        level_range = 10;
        alive = false;
    }
} gs_dropEvent_charStone;

static int __DropEvent_CharStone_GetDropPercent(int killer_level)
{
    int killer_levelStep = (killer_level-1)/10;

    switch (killer_levelStep)
    {
        case 0:
            return gs_dropEvent_charStone.percent_lv01_10;

        case 1:
        case 2:
            return gs_dropEvent_charStone.percent_lv11_30;
    }

    return gs_dropEvent_charStone.percent_lv31_MX;
}

static void __DropEvent_CharStone_DropItem(CHARACTER & killer, CHARACTER & victim, ITEM_MANAGER& itemMgr, std::vector<LPITEM>& vec_item)
{
    if (!gs_dropEvent_charStone.alive)
        return;

    int killer_level = killer.GetLevel();
    int dropPercent = __DropEvent_CharStone_GetDropPercent(killer_level);

    int MaxRange = 10000;

    if (LC_IsCanada() == true)
        MaxRange = 20000;

    if (number(1, MaxRange) <= dropPercent)
    {
        int log_level = (test_server || killer.GetGMLevel() >= GM_LOW_WIZARD) ? 0 : 1;
        int victim_level = victim.GetLevel();
        int level_diff = victim_level - killer_level;

        if (level_diff >= +gs_dropEvent_charStone.level_range || level_diff <= -gs_dropEvent_charStone.level_range)
        {
            sys_log(log_level,
                    "dropevent.drop_char_stone.level_range_over: killer(%s: lv%d), victim(%s: lv:%d), level_diff(%d)",
                    killer.GetName(), killer.GetLevel(), victim.GetName(), victim.GetLevel(), level_diff);   
            return;
        }

        static const int Stones[] = { 30210, 30211, 30212, 30213, 30214, 30215, 30216, 30217, 30218, 30219, 30258, 30259, 30260, 30261, 30262, 30263 };
        int item_vnum = Stones[number(0, _countof(Stones))];

        LPITEM p_item = NULL;

        if ((p_item = itemMgr.CreateItem(item_vnum, 1, 0, true)))
        {
            vec_item.push_back(p_item);

            sys_log(log_level,
                    "dropevent.drop_char_stone.item_drop: killer(%s: lv%d), victim(%s: lv:%d), item_name(%s)",
                    killer.GetName(), killer.GetLevel(), victim.GetName(), victim.GetLevel(), p_item->GetName());   
        }
    }
}

bool DropEvent_CharStone_SetValue(const std::string& name, int value)
{
    if (name == "drop_char_stone")
    {
        gs_dropEvent_charStone.alive = value;

        if (value)
            sys_log(0, "dropevent.drop_char_stone = on");
        else
            sys_log(0, "dropevent.drop_char_stone = off");

    }
    else if (name == "drop_char_stone.percent_lv01_10")
        gs_dropEvent_charStone.percent_lv01_10 = value;
    else if (name == "drop_char_stone.percent_lv11_30")
        gs_dropEvent_charStone.percent_lv11_30 = value;
    else if (name == "drop_char_stone.percent_lv31_MX")
        gs_dropEvent_charStone.percent_lv31_MX = value;
    else if (name == "drop_char_stone.level_range")
        gs_dropEvent_charStone.level_range = value;
    else
        return false;

    sys_log(0, "dropevent.drop_char_stone: %d", gs_dropEvent_charStone.alive ? true : false);
    sys_log(0, "dropevent.drop_char_stone.percent_lv01_10: %f", gs_dropEvent_charStone.percent_lv01_10/100.0f);
    sys_log(0, "dropevent.drop_char_stone.percent_lv11_30: %f", gs_dropEvent_charStone.percent_lv11_30/100.0f);
    sys_log(0, "dropevent.drop_char_stone.percent_lv31_MX: %f", gs_dropEvent_charStone.percent_lv31_MX/100.0f);
    sys_log(0, "dropevent.drop_char_stone.level_range: %d", gs_dropEvent_charStone.level_range);

    return true;
}

// END_OF_DROPEVENT_CHARSTONE

// fixme
// 위의 것과 함께 quest로 뺄것 빼보자.
// 이거 너무 더럽잖아...
// ?. 하드코딩 싫다 ㅜㅠ
// 계량 아이템 보상 시작.
// by rtsummit 고치자 진짜
 
Tam olarak hangi isimle denetliyor anlayamadım ama oyuna gm karakteri ile girip şu komutu yazabilir misiniz?
/e drop_char_stone 0
 
O zaman bunla alakalı değildir. Biraz detaylıca baktım bulduğunuz kodlar değerli taş parçası ile bağlantılı.
mob_drop_item.txt dosyasında eşya adları bazen çinçe isimlerle yazılmış olabilir. Hangi metinden düştüyse metinin kodunu aratıp item listesini kontrol edin.
 
O zaman bunla alakalı değildir. Biraz detaylıca baktım bulduğunuz kodlar değerli taş parçası ile bağlantılı.
mob_drop_item.txt dosyasında eşya adları bazen çinçe isimlerle yazılmış olabilir. Hangi metinden düştüyse metinin kodunu aratıp item listesini kontrol edin.
düşen itemlerin kodları 100 200 ve 300 olduğundan bu kod bloğundan şüphelenmiştim başka bir yerden de çıkmıyor
 
Geri
Üst