TGamesZeus 1
TGamesZeus
Best Studio 1
Best Studio
berkmenoo 1
berkmenoo
InfernoShade 1
InfernoShade
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
onur akbaş 1
onur akbaş
IronTalonX 1
IronTalonX
D 1
delimuratt
berzahx 1
berzahx
Hikaye Ekle

Wolfman Renk Sistemindeki Hata Fixi

ɑce

Level 99
Uzman
Katılım
24 Eki 2013
Konular
295
Mesajlar
5,953
Çözüm
2
Online süresi
3mo 11d
Reaksiyon Skoru
1,566
Altın Konu
2
Başarım Puanı
302
MmoLira
3,521
DevLira
21
Ticaret - 0%
0   0   0

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!

Merhabalar Geçen skıl rengi değiştirme için konu paylaşıldı bunun için wolfman sorun oluşuyormuş yabancı kaynakta gördüm sizler ile paylaşıyorum


Açın GameLib/ActorInstanceData.cpp ve aratın:

Kod:
    case CInstanceBase::EFFECT_WEAPON + CInstanceBase::WEAPON_ONEHAND:
    case CInstanceBase::EFFECT_WEAPON + CInstanceBase::WEAPON_TWOHAND:
        return m_dwSkillColor[4];
        break;
        
        Arat
        
        case CInstanceBase::EFFECT_AFFECT + CInstanceBase::AFFECT_RED_POSSESSION:
        return m_dwSkillColor[174];
        break;

    case CInstanceBase::EFFECT_AFFECT + CInstanceBase::AFFECT_BLUE_POSSESSION:
        return m_dwSkillColor[175];
        break;
        
        Ekle

Aç UserInterface/GameType.h ve ekle :
Kod:
MAX_BUFF_COUNT = 5,

Değiş

MAX_BUFF_COUNT = 6,

3. açın UserInterface/InstanceBase.cpp ve bulun:
Kod:
    for (int i = 0; i < 8; ++i) // i = skillGroup
    {
        for (int t = 0; t < ESkillColorLength::MAX_SKILL_COUNT; ++t) // t = skill
        {
            for (int x = 0; x < ESkillColorLength::MAX_EFFECT_COUNT; ++x) // x = layers
            {
                skill[i * 10 + i * (ESkillColorLength::MAX_SKILL_COUNT - 1) + t + 1][x] = *(dwSkillColor++);
            }
        }
        
        Altına Ekleyin
        
        
            for (int i = 170; i < 170 + ESkillColorLength::MAX_SKILL_COUNT; i++)
        {
            for (int x = 0; x < ESkillColorLength::MAX_EFFECT_COUNT; ++x)
                skill[i][x] = tmpdwSkillColor[i - 170][x];
        }


4. açınUserInterface/InstanceBaseEffect.cpp ve aratın

Kod:
    case EFFECT_AFFECT + AFFECT_GYEONGGONG:
        RegisterEffect(eEftType, "", "d:/ymir work/pc/assassin/effect/gyeonggong_loop.mse", false, GetNameString());
        break;
    case EFFECT_WEAPON + WEAPON_ONEHAND:
        RegisterEffect(eEftType, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_sword_loop.mse", false, GetNameString());
        break;
    case EFFECT_WEAPON + WEAPON_TWOHAND:
        RegisterEffect(eEftType, "equip_right_hand", "d:/ymir work/pc/warrior/effect/geom_spear_loop.mse", false, GetNameString());
        break;
        
        aratın
        
        sonra Ekleyin
        
        case EFFECT_AFFECT + AFFECT_RED_POSSESSION:
        RegisterEffect(eEftType, "Bip01", "d:/ymir work/effect/hit/blow_flame/flame_loop_w.mse", false, GetNameString());
        break;
    case EFFECT_AFFECT + AFFECT_BLUE_POSSESSION:
        RegisterEffect(eEftType, "", "d:/ymir work/pc3/common/effect/gyeokgongjang_loop_w.mse", false, GetNameString());
        break;

açın common/length.h ve bulun:

Kod:
MAX_BUFF_COUNT = 5,

Değişin bunu
MAX_BUFF_COUNT = 6,

açın db/Cache.cpp ve bulun:
Kod:
void CSKillColorCache::OnFlush()

Arat sütünü komple değiş


void CSKillColorCache::OnFlush()
{
    char query[QUERY_MAX_LEN];
    snprintf(query, sizeof(query),
        "REPLACE INTO skill_color%s (`player_id`"
        ", `s1_col1`, `s1_col2`, `s1_col3`, `s1_col4`, `s1_col5`"
        ", `s2_col1`, `s2_col2`, `s2_col3`, `s2_col4`, `s2_col5`"
        ", `s3_col1`, `s3_col2`, `s3_col3`, `s3_col4`, `s3_col5`"
        ", `s4_col1`, `s4_col2`, `s4_col3`, `s4_col4`, `s4_col5`"
        ", `s5_col1`, `s5_col2`, `s5_col3`, `s5_col4`, `s5_col5`"
        ", `s6_col1`, `s6_col2`, `s6_col3`, `s6_col4`, `s6_col5`" // End of Skills
        ", `s7_col1`, `s7_col2`, `s7_col3`, `s7_col4`, `s7_col5`" // Begin of Buffs
        ", `s8_col1`, `s8_col2`, `s8_col3`, `s8_col4`, `s8_col5`"
        ", `s9_col1`, `s9_col2`, `s9_col3`, `s9_col4`, `s9_col5`"
        ", `s10_col1`, `s10_col2`, `s10_col3`, `s10_col4`, `s10_col5`"
        ", `s11_col1`, `s11_col2`, `s11_col3`, `s11_col4`, `s11_col5`"
        ", `s12_col1`, `s12_col2`, `s12_col3`, `s12_col4`, `s12_col5`"
        ") "
        "VALUES (%d"
        ", %d, %d, %d, %d, %d"
        ", %d, %d, %d, %d, %d"
        ", %d, %d, %d, %d, %d"
        ", %d, %d, %d, %d, %d"
        ", %d, %d, %d, %d, %d"
        ", %d, %d, %d, %d, %d" // End of Skills
        ", %d, %d, %d, %d, %d" // Begin of Buffs
        ", %d, %d, %d, %d, %d"
        ", %d, %d, %d, %d, %d"
        ", %d, %d, %d, %d, %d"
        ", %d, %d, %d, %d, %d"
        ", %d, %d, %d, %d, %d"
        ")", GetTablePostfix(), m_data.player_id,
        m_data.dwSkillColor[0][0], m_data.dwSkillColor[0][1], m_data.dwSkillColor[0][2], m_data.dwSkillColor[0][3], m_data.dwSkillColor[0][4],
        m_data.dwSkillColor[1][0], m_data.dwSkillColor[1][1], m_data.dwSkillColor[1][2], m_data.dwSkillColor[1][3], m_data.dwSkillColor[1][4],
        m_data.dwSkillColor[2][0], m_data.dwSkillColor[2][1], m_data.dwSkillColor[2][2], m_data.dwSkillColor[2][3], m_data.dwSkillColor[2][4],
        m_data.dwSkillColor[3][0], m_data.dwSkillColor[3][1], m_data.dwSkillColor[3][2], m_data.dwSkillColor[3][3], m_data.dwSkillColor[3][4],
        m_data.dwSkillColor[4][0], m_data.dwSkillColor[4][1], m_data.dwSkillColor[4][2], m_data.dwSkillColor[4][3], m_data.dwSkillColor[4][4],
        m_data.dwSkillColor[5][0], m_data.dwSkillColor[5][1], m_data.dwSkillColor[5][2], m_data.dwSkillColor[5][3], m_data.dwSkillColor[5][4], // End of Skills
        m_data.dwSkillColor[6][0], m_data.dwSkillColor[6][1], m_data.dwSkillColor[6][2], m_data.dwSkillColor[6][3], m_data.dwSkillColor[6][4], // Begin of Buffs
        m_data.dwSkillColor[7][0], m_data.dwSkillColor[7][1], m_data.dwSkillColor[7][2], m_data.dwSkillColor[7][3], m_data.dwSkillColor[7][4],
        m_data.dwSkillColor[8][0], m_data.dwSkillColor[8][1], m_data.dwSkillColor[8][2], m_data.dwSkillColor[8][3], m_data.dwSkillColor[8][4],
        m_data.dwSkillColor[9][0], m_data.dwSkillColor[9][1], m_data.dwSkillColor[9][2], m_data.dwSkillColor[9][3], m_data.dwSkillColor[9][4],
        m_data.dwSkillColor[10][0], m_data.dwSkillColor[10][1], m_data.dwSkillColor[10][2], m_data.dwSkillColor[10][3], m_data.dwSkillColor[10][4]
        , m_data.dwSkillColor[11][0], m_data.dwSkillColor[11][1], m_data.dwSkillColor[11][2], m_data.dwSkillColor[11][3], m_data.dwSkillColor[11][4]
    );

    CDBManager::instance().ReturnQuery(query, QID_SKILL_COLOR_SAVE, 0, NULL);

    if (g_test_server)
        sys_log(0, "SkillColorCache::Flush :REPLACE %u (%s)", m_data.player_id, query);

    m_bNeedQuery = false;
}

açın db/ClientManagerPlayer.cpp ve bulun:
Kod:
aratın
void CClientManager::QUERY_SKILL_COLOR_LOAD(CPeer* peer, DWORD dwHandle, TPlayerLoadPacket* packet)

Komple değiştirin

void CClientManager::QUERY_SKILL_COLOR_LOAD(CPeer* peer, DWORD dwHandle, TPlayerLoadPacket* packet)
{
    CSKillColorCache* c;
    TSkillColor* p;
    if (c = GetSkillColorCache(packet->player_id))
    {
        p = c->Get();
        peer->EncodeHeader(HEADER_DG_SKILL_COLOR_LOAD, dwHandle, sizeof(p->dwSkillColor));
        peer->Encode(p->dwSkillColor, sizeof(p->dwSkillColor));
    }
    else
    {
        char szQuery[QUERY_MAX_LEN];
        snprintf(szQuery, sizeof(szQuery), "SELECT "
            "s1_col1, s1_col2, s1_col3, s1_col4, s1_col5"
            ", s2_col1, s2_col2, s2_col3, s2_col4, s2_col5"
            ", s3_col1, s3_col2, s3_col3, s3_col4, s3_col5"
            ", s4_col1, s4_col2, s4_col3, s4_col4, s4_col5"
            ", s5_col1, s5_col2, s5_col3, s5_col4, s5_col5"
            ", s6_col1, s6_col2, s6_col3, s6_col4, s6_col5" // end of skills
            ", s7_col1, s7_col2, s7_col3, s7_col4, s7_col5" // begin of buffs
            ", s8_col1, s8_col2, s8_col3, s8_col4, s8_col5"
            ", s9_col1, s9_col2, s9_col3, s9_col4, s9_col5"
            ", s10_col1, s10_col2, s10_col3, s10_col4, s10_col5"
            ", s11_col1, s11_col2, s11_col3, s11_col4, s11_col5"
            ", s12_col1, s12_col2, s12_col3, s12_col4, s12_col5"
            " FROM skill_color%s WHERE player_id=%d",
            GetTablePostfix(), packet->player_id);
        CDBManager::instance().ReturnQuery(szQuery, QID_SKILL_COLOR, peer->GetHandle(), new ClientHandleInfo(dwHandle, packet->player_id));
    }
}

. açın game/char_skill.cpp bulun:
Kod:
struct FComputeSkillParty
{
    FComputeSkillParty(DWORD dwVnum, LPCHARACTER pkAttacker, BYTE bSkillLevel = 0)
        : m_dwVnum(dwVnum), m_pkAttacker(pkAttacker), m_bSkillLevel(bSkillLevel)
    {
    }

    void operator () (LPCHARACTER ch)
    {
    
    Altına bunu ekleyin
    
            if (m_dwVnum == 175)
        {
            BYTE skill = ESkillColorLength::BUFF_BEGIN + 5;
            BYTE id = 5;

            DWORD data[ESkillColorLength::MAX_SKILL_COUNT + ESkillColorLength::MAX_BUFF_COUNT][ESkillColorLength::MAX_EFFECT_COUNT];
            memcpy(data, ch->GetSkillColor(), sizeof(data));

            DWORD dataAttacker[ESkillColorLength::MAX_SKILL_COUNT + ESkillColorLength::MAX_BUFF_COUNT][ESkillColorLength::MAX_EFFECT_COUNT];
            memcpy(dataAttacker, m_pkAttacker->GetSkillColor(), sizeof(dataAttacker));

            data[skill][0] = dataAttacker[id][0];
            data[skill][1] = dataAttacker[id][1];
            data[skill][2] = dataAttacker[id][2];
            data[skill][3] = dataAttacker[id][3];
            data[skill][4] = dataAttacker[id][4];

            ch->SetSkillColor(data[0]);

            TSkillColor db_pack;
            memcpy(db_pack.dwSkillColor, data, sizeof(data));
            db_pack.player_id = ch->GetPlayerID();
            db_clientdesc->DBPacketHeader(HEADER_GD_SKILL_COLOR_SAVE, 0, sizeof(TSkillColor));
            db_clientdesc->Packet(&db_pack, sizeof(TSkillColor));
        }

Son olarak MySQL Table: Açın ve okutun
Kod:
-- ----------------------------
-- Table structure for skill_color
-- ----------------------------
DROP TABLE IF EXISTS `skill_color`;
CREATE TABLE `skill_color`  (
  `player_id` int(11) UNSIGNED ZEROFILL NOT NULL,
  `s1_col1` int(255) NOT NULL DEFAULT 0,
  `s1_col2` int(255) NOT NULL DEFAULT 0,
  `s1_col3` int(255) NOT NULL DEFAULT 0,
  `s1_col4` int(255) NOT NULL DEFAULT 0,
  `s1_col5` int(255) NOT NULL DEFAULT 0,
  `s2_col1` int(255) NOT NULL DEFAULT 0,
  `s2_col2` int(255) NOT NULL DEFAULT 0,
  `s2_col3` int(255) NOT NULL DEFAULT 0,
  `s2_col4` int(255) NOT NULL DEFAULT 0,
  `s2_col5` int(255) NOT NULL DEFAULT 0,
  `s3_col1` int(255) NOT NULL DEFAULT 0,
  `s3_col2` int(255) NOT NULL DEFAULT 0,
  `s3_col3` int(255) NOT NULL DEFAULT 0,
  `s3_col4` int(255) NOT NULL DEFAULT 0,
  `s3_col5` int(255) NOT NULL DEFAULT 0,
  `s4_col1` int(255) NOT NULL DEFAULT 0,
  `s4_col2` int(255) NOT NULL DEFAULT 0,
  `s4_col3` int(255) NOT NULL DEFAULT 0,
  `s4_col4` int(255) NOT NULL DEFAULT 0,
  `s4_col5` int(255) NOT NULL DEFAULT 0,
  `s5_col1` int(255) NOT NULL DEFAULT 0,
  `s5_col2` int(255) NOT NULL DEFAULT 0,
  `s5_col3` int(255) NOT NULL DEFAULT 0,
  `s5_col4` int(255) NOT NULL DEFAULT 0,
  `s5_col5` int(255) NOT NULL DEFAULT 0,
  `s6_col1` int(255) NOT NULL DEFAULT 0,
  `s6_col2` int(255) NOT NULL DEFAULT 0,
  `s6_col3` int(255) NOT NULL DEFAULT 0,
  `s6_col4` int(255) NOT NULL DEFAULT 0,
  `s6_col5` int(255) NOT NULL DEFAULT 0,
  `s7_col1` int(255) NOT NULL DEFAULT 0,
  `s7_col2` int(255) NOT NULL DEFAULT 0,
  `s7_col3` int(255) NOT NULL DEFAULT 0,
  `s7_col4` int(255) NOT NULL DEFAULT 0,
  `s7_col5` int(255) NOT NULL DEFAULT 0,
  `s8_col1` int(255) NOT NULL DEFAULT 0,
  `s8_col2` int(255) NOT NULL DEFAULT 0,
  `s8_col3` int(255) NOT NULL DEFAULT 0,
  `s8_col4` int(255) NOT NULL DEFAULT 0,
  `s8_col5` int(255) NOT NULL DEFAULT 0,
  `s9_col1` int(255) NOT NULL DEFAULT 0,
  `s9_col2` int(255) NOT NULL DEFAULT 0,
  `s9_col3` int(255) NOT NULL DEFAULT 0,
  `s9_col4` int(255) NOT NULL DEFAULT 0,
  `s9_col5` int(255) NOT NULL DEFAULT 0,
  `s10_col1` int(255) NOT NULL DEFAULT 0,
  `s10_col2` int(255) NOT NULL DEFAULT 0,
  `s10_col3` int(255) NOT NULL DEFAULT 0,
  `s10_col4` int(255) NOT NULL DEFAULT 0,
  `s10_col5` int(255) NOT NULL DEFAULT 0,
  `s11_col1` int(255) NOT NULL DEFAULT 0,
  `s11_col2` int(255) NOT NULL DEFAULT 0,
  `s11_col3` int(255) NOT NULL DEFAULT 0,
  `s11_col4` int(255) NOT NULL DEFAULT 0,
  `s11_col5` int(255) NOT NULL DEFAULT 0,
  `s12_col1` int(255) NOT NULL DEFAULT 0,
  `s12_col2` int(255) NOT NULL DEFAULT 0,
  `s12_col3` int(255) NOT NULL DEFAULT 0,
  `s12_col4` int(255) NOT NULL DEFAULT 0,
  `s12_col5` int(255) NOT NULL DEFAULT 0,
  PRIMARY KEY (`player_id`) USING BTREE
) ENGINE = MyISAM CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Fixed;

1852747806_kolorowanie(1).gif.cd6e466e6f04d402bdc3e8870bb305a7.gif
 

En Çok Reaksiyon Alan Mesajlar

Eline Sağlık Paylaşım için teşekkürler :)
 
warez olan fileste ilk buna bakmistim ama sanirim 175 hala sorunlu.
170, 171, 172, 173, 174 calisiyor.

iLN6Lp.png
 
Son düzenleme:

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

Geri
Üst