Çözüldü Lycan Beceri Kitabı

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

ByExpert

Üye
Üye
Mesaj
78
Çözümler
1
Beğeni
19
Puan
414
Ticaret Puanı
0
Serverde lycan ve 6.skiller vardı kaldırdım ama lycan bk ve 6.skil bkları düşüyor nasıl kaldırabilirim.
 
Çözüm
Oyunda bazı itemler tekli olmasına rağmen birden fazla değer alabilir. Örneğin: Beceri Kitabı, Gözlem bandı vs.
Bu tür itemler sistem tarafından oluşturulurken socket 0 kısmına bazı değerler verir. Beceri kitabı ve gözlem bandında verdiği bu değer yeteneğin idsi olur. Zaten bu yüzden item yerdeyken beceri kitabı olarak gözükür ama üstüne fare ile geldiğinizde yetenek ismi ile beraber yazar. uitooltip.py içinde 50300 diye aratın göreceksiniz.

Şimdi bu itemlerin çalışma mantığını anladığınızı varsayıyorum şimdi bu sorununuzu nasıl çözebileceğinize odaklanalım.

game/src/char_skill.cpp içinde şu kodu aratın;
C++:
const DWORD GetRandomSkillVnum(BYTE bJob)
{
    // the chosen skill
    DWORD dwSkillVnum = 0;
    do
    {
        // tmp...
Oyunda bazı itemler tekli olmasına rağmen birden fazla değer alabilir. Örneğin: Beceri Kitabı, Gözlem bandı vs.
Bu tür itemler sistem tarafından oluşturulurken socket 0 kısmına bazı değerler verir. Beceri kitabı ve gözlem bandında verdiği bu değer yeteneğin idsi olur. Zaten bu yüzden item yerdeyken beceri kitabı olarak gözükür ama üstüne fare ile geldiğinizde yetenek ismi ile beraber yazar. uitooltip.py içinde 50300 diye aratın göreceksiniz.

Şimdi bu itemlerin çalışma mantığını anladığınızı varsayıyorum şimdi bu sorununuzu nasıl çözebileceğinize odaklanalım.

game/src/char_skill.cpp içinde şu kodu aratın;
C++:
const DWORD GetRandomSkillVnum(BYTE bJob)
{
    // the chosen skill
    DWORD dwSkillVnum = 0;
    do
    {
        // tmp stuff
        DWORD tmpJob = (bJob != JOB_MAX_NUM)?MINMAX(0, bJob, JOB_MAX_NUM-1):number(0, JOB_MAX_NUM-1);
        DWORD tmpSkillGroup = number(0, SKILL_GROUP_MAX_NUM-1);
        DWORD tmpSkillCount = number(0, SKILL_COUNT-1);
        // set skill
        dwSkillVnum = SkillList[tmpJob][tmpSkillGroup][tmpSkillCount];

Eğer sonuç çıkmazsa sadece şu şekilde de arayabilirsiniz: GetRandomSkillVnum(BYTE bJob)

Daha sonra şu kodun;
C++:
        dwSkillVnum = SkillList[tmpJob][tmpSkillGroup][tmpSkillCount];

Altına şunu ekleyin;
C++:
        if (tmpJob==JOB_WOLFMAN)
            continue;

Daha sonra gameyi build edip servere atınız. :)
 
Çözüm
merhaba doğru aradığıma eminim fakat aramamız gereken kodların hiçbiri çıkmadı bende galiba farklı benimkinde size atsam inceleme fırsatınız olabilir mi?
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst