Çözüldü PSM Sonrası Wolfman MSA eksik dosyalar

  • Konuyu açan Konuyu açan Tengrist
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 64
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ı.

Tengrist

Yardımsever Üye
Yardımsever Üye
MT Üye
Mesaj
1.305
Çözümler
41
Beğeni
1.085
Puan
1.309
Ticaret Puanı
0
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_1.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_2.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_3.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_flying.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/falling_stand.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/back_falling_stand.msa) ERROR

EKLEME--------------------------------SYSERRI WARRIOR PC DOSYALARINDAN ALDIĞIM ANİMASYONLARLA ÇÖZDÜM AMA ELİNDE OLAN LYCAN İÇİN BU ANİMASYONLARI PAYLAŞABİLİRSE SEVİNİRİM.


şöyle bir general motion kodu var bunda mı sıkıntı:
Genişlet Daralt Kopyala
const bool CPlayerSettingsModule::LoadGeneralMotion(char stFolder[FILE_MAX_NUM])
{
    CRaceManager& pkManager = CRaceManager::Instance();

    CRaceData* pRaceData = pkManager.GetSelectedRaceDataPointer();
    if (!pRaceData)
        return false;
  
    std::vector<SMotion> m_vecBasicMotion =
    {
        { pkMotionManager.NAME_WAIT, "wait.msa", 0 },
        { pkMotionManager.NAME_WALK, "walk.msa", 0 },
        { pkMotionManager.NAME_RUN, "run.msa", 0 },
        { pkMotionManager.NAME_DAMAGE, "damage.msa", 50 },
        { pkMotionManager.NAME_DAMAGE, "damage_1.msa", 50 },
        { pkMotionManager.NAME_DAMAGE_BACK, "damage_2.msa", 50 },
        { pkMotionManager.NAME_DAMAGE_BACK, "damage_3.msa", 50 },
        { pkMotionManager.NAME_DAMAGE_FLYING, "damage_flying.msa", 0 },
        { pkMotionManager.NAME_STAND_UP, "falling_stand.msa", 0 },
        { pkMotionManager.NAME_DAMAGE_FLYING_BACK, "back_damage_flying.msa", 0 },
        { pkMotionManager.NAME_STAND_UP_BACK, "back_falling_stand.msa", 0 },
        { pkMotionManager.NAME_DEAD, "dead.msa", 0 },
        { pkMotionManager.NAME_DIG, "dig.msa", 0 },
    };

    char szFileName[FILE_MAX_NUM];
    pRaceData->RegisterMotionMode(pkMotionManager.MODE_GENERAL);
    for (const auto& it : m_vecBasicMotion)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "general/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_GENERAL, it.wMotionIndex, szFileName, it.byPercentage);
    }

    return true;
}

psm.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_WOLFMAN_CHARACTER
const bool CPlayerSettingsModule::LoadGameWolfman(DWORD dwRace, char stFolder[FILE_MAX_NUM])
{
    CRaceManager& pkManager = CRaceManager::Instance();
    pkManager.SelectRace(dwRace);

    if (!LoadGeneralMotion(stFolder))
        return false;

    CRaceData* pRaceData = pkManager.GetSelectedRaceDataPointer();
    if (!pRaceData)
        return false;

    std::vector<SMotion> m_vecMotionGeneral =
    {
        //{ pkMotionManager.NAME_COMBO_ATTACK_1, "attack.msa", 50 },
        { pkMotionManager.NAME_COMBO_ATTACK_1, "attack1.msa", 50 },
        { pkMotionManager.NAME_COMBO_ATTACK_1, "attack2.msa", 50 },
    };

    char szFileName[FILE_MAX_NUM];
    pRaceData->RegisterMotionMode(pkMotionManager.MODE_GENERAL);
    for (const auto& it : m_vecMotionGeneral)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "general/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_GENERAL, it.wMotionIndex, szFileName, it.byPercentage);
    }

    std::vector<SMotion> m_vecMotionSkill =
    {
        { pkMotionManager.NAME_SKILL + 1, "split_slash.msa" },
        { pkMotionManager.NAME_SKILL + 2, "wind_death.msa" },
        { pkMotionManager.NAME_SKILL + 3, "reef_attack.msa" },
        { pkMotionManager.NAME_SKILL + 4, "wreckage.msa" },
        { pkMotionManager.NAME_SKILL + 5, "red_possession.msa" },
        { pkMotionManager.NAME_SKILL + 6, "blue_possession.msa" },
        { GUILD_SKILL_DRAGONBLOOD, "guild_yongsinuipi.msa", 0 },
        { GUILD_SKILL_DRAGONBLESS, "guild_yongsinuichukbok.msa", 0 },
        { GUILD_SKILL_BLESSARMOR, "guild_seonghwigap.msa", 0 },
        { GUILD_SKILL_SPPEDUP, "guild_gasokhwa.msa", 0 },
        { GUILD_SKILL_DRAGONWRATH, "guild_yongsinuibunno.msa", 0 },
        { GUILD_SKILL_MAGICUP, "guild_jumunsul.msa", 0 },
    };

    std::vector<std::pair<BYTE, const char*>> m_vecSkillName = {
        { 1, "split_slash" },
        { 2, "wind_death" },
        { 3, "reef_attack" },
        { 4, "wreckage" },
        { 5, "red_possession" },
        { 6, "blue_possession" },
    };

    char szSkillName[FILE_MAX_NUM];
    char szSkillAdd[4] = "";
    for (WORD i = 1; i < CPythonSkill::SKILL_EFFECT_COUNT; i++)
    {
        for (auto& it : m_vecSkillName)
        {
            SMotion motion;

            motion.wMotionIndex = pkMotionManager.NAME_SKILL + (i * CPythonSkill::SKILL_GRADEGAP) + it.first;
            motion.byPercentage = 0;

            snprintf(szSkillAdd, sizeof(szSkillAdd), "_%d", i + 1);
            snprintf(motion.stName, sizeof(motion.stName), "%s%s.msa", it.second, szSkillAdd);
            m_vecMotionSkill.push_back(motion);
        }
    }

    pRaceData->RegisterMotionMode(pkMotionManager.MODE_GENERAL);
    for (const auto& it : m_vecMotionSkill)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "skill/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_GENERAL, it.wMotionIndex, szFileName, it.byPercentage);
    }

    pRaceData->ReserveComboAttack(pkMotionManager.MODE_GENERAL, COMBO_TYPE_1, 1);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_1, pkMotionManager.NAME_COMBO_ATTACK_1);

    RegisterEmotionAnis(stFolder);

    std::vector<SMotion> m_vecMotionFan =
    {
        { pkMotionManager.NAME_WAIT, "wait.msa", 0 },
        { pkMotionManager.NAME_WALK, "walk.msa", 0 },
        { pkMotionManager.NAME_RUN, "run.msa", 0 },
        { pkMotionManager.NAME_DAMAGE, "front_damage.msa", 50,},
        { pkMotionManager.NAME_DAMAGE, "front_damage1.msa", 50, },
        { pkMotionManager.NAME_DAMAGE_BACK, "back_damage.msa", 50,},
        { pkMotionManager.NAME_DAMAGE_BACK, "back_damage1.msa", 50, },
        { pkMotionManager.NAME_COMBO_ATTACK_1, "combo_01.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_2, "combo_02.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_3, "combo_03.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_4, "combo_04.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_5, "combo_05.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_6, "combo_06.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_7, "combo_07.msa", 0 },
    };

    pRaceData->RegisterMotionMode(pkMotionManager.MODE_CLAW);
    for (const auto& it : m_vecMotionFan)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "claw/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_CLAW, it.wMotionIndex, szFileName, it.byPercentage);
    }

    pRaceData->ReserveComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_1, 4);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_1, pkMotionManager.NAME_COMBO_ATTACK_1);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_2, pkMotionManager.NAME_COMBO_ATTACK_2);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_3, pkMotionManager.NAME_COMBO_ATTACK_3);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_4, pkMotionManager.NAME_COMBO_ATTACK_4);

    pRaceData->ReserveComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, 5);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_1, pkMotionManager.NAME_COMBO_ATTACK_1);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_2, pkMotionManager.NAME_COMBO_ATTACK_2);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_3, pkMotionManager.NAME_COMBO_ATTACK_3);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_4, pkMotionManager.NAME_COMBO_ATTACK_5);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_5, pkMotionManager.NAME_COMBO_ATTACK_7);

    pRaceData->ReserveComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, 6);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_1, pkMotionManager.NAME_COMBO_ATTACK_1);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_2, pkMotionManager.NAME_COMBO_ATTACK_2);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_3, pkMotionManager.NAME_COMBO_ATTACK_3);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_4, pkMotionManager.NAME_COMBO_ATTACK_5);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_5, pkMotionManager.NAME_COMBO_ATTACK_6);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_6, pkMotionManager.NAME_COMBO_ATTACK_4);

    std::vector<SMotion> m_vecMotionBell =
    {
        { pkMotionManager.NAME_WAIT, "wait.msa", 0 },
        { pkMotionManager.NAME_WALK, "walk.msa", 0 },
        { pkMotionManager.NAME_RUN, "run.msa", 0 },
        { pkMotionManager.NAME_DAMAGE, "front_damage.msa", 50,},
        { pkMotionManager.NAME_DAMAGE, "front_damage1.msa", 50, },
        { pkMotionManager.NAME_DAMAGE_BACK, "back_damage.msa", 50,},
        { pkMotionManager.NAME_DAMAGE_BACK, "back_damage1.msa", 50, },
        { pkMotionManager.NAME_COMBO_ATTACK_1, "combo_01.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_2, "combo_02.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_3, "combo_03.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_4, "combo_04.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_5, "combo_05.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_6, "combo_06.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_7, "combo_07.msa", 0 },
    };

    std::vector<SMotion> m_vecMotionFishing =
    {
        { pkMotionManager.NAME_WAIT, "wait.msa", 0 },
        { pkMotionManager.NAME_WALK, "walk.msa", 0 },
        { pkMotionManager.NAME_RUN, "run.msa", 0 },
        { pkMotionManager.NAME_FISHING_THROW, "throw.msa", 0 },
        { pkMotionManager.NAME_FISHING_WAIT, "fishing_wait.msa", 0 },
        { pkMotionManager.NAME_FISHING_STOP, "fishing_cancel.msa", 0 },
        { pkMotionManager.NAME_FISHING_REACT, "fishing_react.msa", 0 },
        { pkMotionManager.NAME_FISHING_CATCH, "fishing_catch.msa", 0 },
        { pkMotionManager.NAME_FISHING_FAIL, "fishing_fail.msa", 0 },
    };

    pRaceData->RegisterMotionMode(pkMotionManager.MODE_FISHING);
    for (const auto& it : m_vecMotionFishing)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "fishing/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_FISHING, it.wMotionIndex, szFileName, it.byPercentage);
    }

    std::vector<SMotion> m_vecMotionHorse =
    {
        { pkMotionManager.NAME_WAIT, "wait.msa", 90 },
        { pkMotionManager.NAME_WAIT, "wait1.msa", 9 },
        { pkMotionManager.NAME_WAIT, "wait2.msa", 1 },
        { pkMotionManager.NAME_WALK, "walk.msa", 0 },
        { pkMotionManager.NAME_RUN, "run.msa", 0 },
        { pkMotionManager.NAME_DAMAGE, "front_damage.msa", 0 },
        { pkMotionManager.NAME_DAMAGE_BACK, "front_damage.msa", 0 },
        { pkMotionManager.NAME_DEAD, "dead.msa", 0 },
        { HORSE_SKILL_CHARGE, "skill_charge.msa", 0 },
        { HORSE_SKILL_CHARGE, "skill_splash.msa", 0 },
    };

    pRaceData->RegisterMotionMode(pkMotionManager.MODE_HORSE);
    for (const auto& it : m_vecMotionHorse)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "horse/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_HORSE, it.wMotionIndex, szFileName, it.byPercentage);
    }

    std::vector<SMotion> m_vecMotionHorseFan =
    {
        { pkMotionManager.NAME_COMBO_ATTACK_1, "combo_01.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_2, "combo_02.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_3, "combo_03.msa", 0 },
        { HORSE_SKILL_WILDATTACK, "skill_wildattack.msa", 0 },
    };

    pRaceData->RegisterMotionMode(pkMotionManager.MODE_HORSE_CLAW);
    for (const auto& it : m_vecMotionHorseFan)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "horse_claw/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_HORSE_CLAW, it.wMotionIndex, szFileName, it.byPercentage);
    }

    pRaceData->ReserveComboAttack(pkMotionManager.MODE_HORSE_CLAW, COMBO_TYPE_1, 3);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_HORSE_CLAW, COMBO_TYPE_1, COMBO_INDEX_1, pkMotionManager.NAME_COMBO_ATTACK_1);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_HORSE_CLAW, COMBO_TYPE_1, COMBO_INDEX_2, pkMotionManager.NAME_COMBO_ATTACK_2);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_HORSE_CLAW, COMBO_TYPE_1, COMBO_INDEX_3, pkMotionManager.NAME_COMBO_ATTACK_3);

    std::vector<SMotion> m_vecMotionHorseBell =
    {
        { pkMotionManager.NAME_COMBO_ATTACK_1, "combo_01.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_2, "combo_02.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_3, "combo_03.msa", 0 },
        { HORSE_SKILL_WILDATTACK, "skill_wildattack.msa", 0 },
    };


    pRaceData->RegisterAttachingBoneName(CRaceData::PART_WEAPON, "equip_right_weapon");
    pRaceData->RegisterAttachingBoneName(CRaceData::PART_WEAPON_LEFT, "equip_left_weapon");

#ifdef ENABLE_ACCE_SYSTEM
    pRaceData->RegisterAttachingBoneName(CRaceData::PART_ACCE, "Bip01 Spine2");
#endif

    return true;
}
#endif // ENABLE_WOLFMAN_CHARACTER

#ifdef ENABLE_WOLFMAN_CHARACTER
PyObject* cpsmLoadGameWolfman(PyObject* poSelf, PyObject* poArgs)
{
    CPlayerSettingsModule::LoadGameWolfman(CPlayerSettingsModule::RACE_WOLFMAN_M, "d:/ymir work/pc3/wolfman/");
    return Py_BuildNone();
}
#endif // ENABLE_WOLFMAN_CHARACTER
eksik dosyalar elinde olan varsa veya kodda değişmesi gereken bölüm varsa bakabilir misiniz, lycan modellerinden hiç anlamıyorum.
 
Son düzenleme:
Çözüm
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_1.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_2.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_3.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_flying.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData -...
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_1.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_2.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_3.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/damage_flying.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/falling_stand.msa) ERROR
0608 01:30:17190 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc3/wolfman/general/back_falling_stand.msa) ERROR

EKLEME--------------------------------SYSERRI WARRIOR PC DOSYALARINDAN ALDIĞIM ANİMASYONLARLA ÇÖZDÜM AMA ELİNDE OLAN LYCAN İÇİN BU ANİMASYONLARI PAYLAŞABİLİRSE SEVİNİRİM.


şöyle bir general motion kodu var bunda mı sıkıntı:
Genişlet Daralt Kopyala
const bool CPlayerSettingsModule::LoadGeneralMotion(char stFolder[FILE_MAX_NUM])
{
    CRaceManager& pkManager = CRaceManager::Instance();

    CRaceData* pRaceData = pkManager.GetSelectedRaceDataPointer();
    if (!pRaceData)
        return false;
 
    std::vector<SMotion> m_vecBasicMotion =
    {
        { pkMotionManager.NAME_WAIT, "wait.msa", 0 },
        { pkMotionManager.NAME_WALK, "walk.msa", 0 },
        { pkMotionManager.NAME_RUN, "run.msa", 0 },
        { pkMotionManager.NAME_DAMAGE, "damage.msa", 50 },
        { pkMotionManager.NAME_DAMAGE, "damage_1.msa", 50 },
        { pkMotionManager.NAME_DAMAGE_BACK, "damage_2.msa", 50 },
        { pkMotionManager.NAME_DAMAGE_BACK, "damage_3.msa", 50 },
        { pkMotionManager.NAME_DAMAGE_FLYING, "damage_flying.msa", 0 },
        { pkMotionManager.NAME_STAND_UP, "falling_stand.msa", 0 },
        { pkMotionManager.NAME_DAMAGE_FLYING_BACK, "back_damage_flying.msa", 0 },
        { pkMotionManager.NAME_STAND_UP_BACK, "back_falling_stand.msa", 0 },
        { pkMotionManager.NAME_DEAD, "dead.msa", 0 },
        { pkMotionManager.NAME_DIG, "dig.msa", 0 },
    };

    char szFileName[FILE_MAX_NUM];
    pRaceData->RegisterMotionMode(pkMotionManager.MODE_GENERAL);
    for (const auto& it : m_vecBasicMotion)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "general/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_GENERAL, it.wMotionIndex, szFileName, it.byPercentage);
    }

    return true;
}

psm.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_WOLFMAN_CHARACTER
const bool CPlayerSettingsModule::LoadGameWolfman(DWORD dwRace, char stFolder[FILE_MAX_NUM])
{
    CRaceManager& pkManager = CRaceManager::Instance();
    pkManager.SelectRace(dwRace);

    if (!LoadGeneralMotion(stFolder))
        return false;

    CRaceData* pRaceData = pkManager.GetSelectedRaceDataPointer();
    if (!pRaceData)
        return false;

    std::vector<SMotion> m_vecMotionGeneral =
    {
        //{ pkMotionManager.NAME_COMBO_ATTACK_1, "attack.msa", 50 },
        { pkMotionManager.NAME_COMBO_ATTACK_1, "attack1.msa", 50 },
        { pkMotionManager.NAME_COMBO_ATTACK_1, "attack2.msa", 50 },
    };

    char szFileName[FILE_MAX_NUM];
    pRaceData->RegisterMotionMode(pkMotionManager.MODE_GENERAL);
    for (const auto& it : m_vecMotionGeneral)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "general/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_GENERAL, it.wMotionIndex, szFileName, it.byPercentage);
    }

    std::vector<SMotion> m_vecMotionSkill =
    {
        { pkMotionManager.NAME_SKILL + 1, "split_slash.msa" },
        { pkMotionManager.NAME_SKILL + 2, "wind_death.msa" },
        { pkMotionManager.NAME_SKILL + 3, "reef_attack.msa" },
        { pkMotionManager.NAME_SKILL + 4, "wreckage.msa" },
        { pkMotionManager.NAME_SKILL + 5, "red_possession.msa" },
        { pkMotionManager.NAME_SKILL + 6, "blue_possession.msa" },
        { GUILD_SKILL_DRAGONBLOOD, "guild_yongsinuipi.msa", 0 },
        { GUILD_SKILL_DRAGONBLESS, "guild_yongsinuichukbok.msa", 0 },
        { GUILD_SKILL_BLESSARMOR, "guild_seonghwigap.msa", 0 },
        { GUILD_SKILL_SPPEDUP, "guild_gasokhwa.msa", 0 },
        { GUILD_SKILL_DRAGONWRATH, "guild_yongsinuibunno.msa", 0 },
        { GUILD_SKILL_MAGICUP, "guild_jumunsul.msa", 0 },
    };

    std::vector<std::pair<BYTE, const char*>> m_vecSkillName = {
        { 1, "split_slash" },
        { 2, "wind_death" },
        { 3, "reef_attack" },
        { 4, "wreckage" },
        { 5, "red_possession" },
        { 6, "blue_possession" },
    };

    char szSkillName[FILE_MAX_NUM];
    char szSkillAdd[4] = "";
    for (WORD i = 1; i < CPythonSkill::SKILL_EFFECT_COUNT; i++)
    {
        for (auto& it : m_vecSkillName)
        {
            SMotion motion;

            motion.wMotionIndex = pkMotionManager.NAME_SKILL + (i * CPythonSkill::SKILL_GRADEGAP) + it.first;
            motion.byPercentage = 0;

            snprintf(szSkillAdd, sizeof(szSkillAdd), "_%d", i + 1);
            snprintf(motion.stName, sizeof(motion.stName), "%s%s.msa", it.second, szSkillAdd);
            m_vecMotionSkill.push_back(motion);
        }
    }

    pRaceData->RegisterMotionMode(pkMotionManager.MODE_GENERAL);
    for (const auto& it : m_vecMotionSkill)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "skill/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_GENERAL, it.wMotionIndex, szFileName, it.byPercentage);
    }

    pRaceData->ReserveComboAttack(pkMotionManager.MODE_GENERAL, COMBO_TYPE_1, 1);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_GENERAL, COMBO_TYPE_1, COMBO_INDEX_1, pkMotionManager.NAME_COMBO_ATTACK_1);

    RegisterEmotionAnis(stFolder);

    std::vector<SMotion> m_vecMotionFan =
    {
        { pkMotionManager.NAME_WAIT, "wait.msa", 0 },
        { pkMotionManager.NAME_WALK, "walk.msa", 0 },
        { pkMotionManager.NAME_RUN, "run.msa", 0 },
        { pkMotionManager.NAME_DAMAGE, "front_damage.msa", 50,},
        { pkMotionManager.NAME_DAMAGE, "front_damage1.msa", 50, },
        { pkMotionManager.NAME_DAMAGE_BACK, "back_damage.msa", 50,},
        { pkMotionManager.NAME_DAMAGE_BACK, "back_damage1.msa", 50, },
        { pkMotionManager.NAME_COMBO_ATTACK_1, "combo_01.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_2, "combo_02.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_3, "combo_03.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_4, "combo_04.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_5, "combo_05.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_6, "combo_06.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_7, "combo_07.msa", 0 },
    };

    pRaceData->RegisterMotionMode(pkMotionManager.MODE_CLAW);
    for (const auto& it : m_vecMotionFan)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "claw/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_CLAW, it.wMotionIndex, szFileName, it.byPercentage);
    }

    pRaceData->ReserveComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_1, 4);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_1, pkMotionManager.NAME_COMBO_ATTACK_1);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_2, pkMotionManager.NAME_COMBO_ATTACK_2);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_3, pkMotionManager.NAME_COMBO_ATTACK_3);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_1, COMBO_INDEX_4, pkMotionManager.NAME_COMBO_ATTACK_4);

    pRaceData->ReserveComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, 5);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_1, pkMotionManager.NAME_COMBO_ATTACK_1);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_2, pkMotionManager.NAME_COMBO_ATTACK_2);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_3, pkMotionManager.NAME_COMBO_ATTACK_3);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_4, pkMotionManager.NAME_COMBO_ATTACK_5);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_2, COMBO_INDEX_5, pkMotionManager.NAME_COMBO_ATTACK_7);

    pRaceData->ReserveComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, 6);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_1, pkMotionManager.NAME_COMBO_ATTACK_1);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_2, pkMotionManager.NAME_COMBO_ATTACK_2);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_3, pkMotionManager.NAME_COMBO_ATTACK_3);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_4, pkMotionManager.NAME_COMBO_ATTACK_5);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_5, pkMotionManager.NAME_COMBO_ATTACK_6);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_CLAW, COMBO_TYPE_3, COMBO_INDEX_6, pkMotionManager.NAME_COMBO_ATTACK_4);

    std::vector<SMotion> m_vecMotionBell =
    {
        { pkMotionManager.NAME_WAIT, "wait.msa", 0 },
        { pkMotionManager.NAME_WALK, "walk.msa", 0 },
        { pkMotionManager.NAME_RUN, "run.msa", 0 },
        { pkMotionManager.NAME_DAMAGE, "front_damage.msa", 50,},
        { pkMotionManager.NAME_DAMAGE, "front_damage1.msa", 50, },
        { pkMotionManager.NAME_DAMAGE_BACK, "back_damage.msa", 50,},
        { pkMotionManager.NAME_DAMAGE_BACK, "back_damage1.msa", 50, },
        { pkMotionManager.NAME_COMBO_ATTACK_1, "combo_01.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_2, "combo_02.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_3, "combo_03.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_4, "combo_04.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_5, "combo_05.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_6, "combo_06.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_7, "combo_07.msa", 0 },
    };

    std::vector<SMotion> m_vecMotionFishing =
    {
        { pkMotionManager.NAME_WAIT, "wait.msa", 0 },
        { pkMotionManager.NAME_WALK, "walk.msa", 0 },
        { pkMotionManager.NAME_RUN, "run.msa", 0 },
        { pkMotionManager.NAME_FISHING_THROW, "throw.msa", 0 },
        { pkMotionManager.NAME_FISHING_WAIT, "fishing_wait.msa", 0 },
        { pkMotionManager.NAME_FISHING_STOP, "fishing_cancel.msa", 0 },
        { pkMotionManager.NAME_FISHING_REACT, "fishing_react.msa", 0 },
        { pkMotionManager.NAME_FISHING_CATCH, "fishing_catch.msa", 0 },
        { pkMotionManager.NAME_FISHING_FAIL, "fishing_fail.msa", 0 },
    };

    pRaceData->RegisterMotionMode(pkMotionManager.MODE_FISHING);
    for (const auto& it : m_vecMotionFishing)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "fishing/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_FISHING, it.wMotionIndex, szFileName, it.byPercentage);
    }

    std::vector<SMotion> m_vecMotionHorse =
    {
        { pkMotionManager.NAME_WAIT, "wait.msa", 90 },
        { pkMotionManager.NAME_WAIT, "wait1.msa", 9 },
        { pkMotionManager.NAME_WAIT, "wait2.msa", 1 },
        { pkMotionManager.NAME_WALK, "walk.msa", 0 },
        { pkMotionManager.NAME_RUN, "run.msa", 0 },
        { pkMotionManager.NAME_DAMAGE, "front_damage.msa", 0 },
        { pkMotionManager.NAME_DAMAGE_BACK, "front_damage.msa", 0 },
        { pkMotionManager.NAME_DEAD, "dead.msa", 0 },
        { HORSE_SKILL_CHARGE, "skill_charge.msa", 0 },
        { HORSE_SKILL_CHARGE, "skill_splash.msa", 0 },
    };

    pRaceData->RegisterMotionMode(pkMotionManager.MODE_HORSE);
    for (const auto& it : m_vecMotionHorse)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "horse/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_HORSE, it.wMotionIndex, szFileName, it.byPercentage);
    }

    std::vector<SMotion> m_vecMotionHorseFan =
    {
        { pkMotionManager.NAME_COMBO_ATTACK_1, "combo_01.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_2, "combo_02.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_3, "combo_03.msa", 0 },
        { HORSE_SKILL_WILDATTACK, "skill_wildattack.msa", 0 },
    };

    pRaceData->RegisterMotionMode(pkMotionManager.MODE_HORSE_CLAW);
    for (const auto& it : m_vecMotionHorseFan)
    {
        snprintf(szFileName, sizeof(szFileName), "%s%s%s", stFolder, "horse_claw/", it.stName);
        pRaceData->RegisterMotionData(pkMotionManager.MODE_HORSE_CLAW, it.wMotionIndex, szFileName, it.byPercentage);
    }

    pRaceData->ReserveComboAttack(pkMotionManager.MODE_HORSE_CLAW, COMBO_TYPE_1, 3);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_HORSE_CLAW, COMBO_TYPE_1, COMBO_INDEX_1, pkMotionManager.NAME_COMBO_ATTACK_1);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_HORSE_CLAW, COMBO_TYPE_1, COMBO_INDEX_2, pkMotionManager.NAME_COMBO_ATTACK_2);
    pRaceData->RegisterComboAttack(pkMotionManager.MODE_HORSE_CLAW, COMBO_TYPE_1, COMBO_INDEX_3, pkMotionManager.NAME_COMBO_ATTACK_3);

    std::vector<SMotion> m_vecMotionHorseBell =
    {
        { pkMotionManager.NAME_COMBO_ATTACK_1, "combo_01.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_2, "combo_02.msa", 0 },
        { pkMotionManager.NAME_COMBO_ATTACK_3, "combo_03.msa", 0 },
        { HORSE_SKILL_WILDATTACK, "skill_wildattack.msa", 0 },
    };


    pRaceData->RegisterAttachingBoneName(CRaceData::PART_WEAPON, "equip_right_weapon");
    pRaceData->RegisterAttachingBoneName(CRaceData::PART_WEAPON_LEFT, "equip_left_weapon");

#ifdef ENABLE_ACCE_SYSTEM
    pRaceData->RegisterAttachingBoneName(CRaceData::PART_ACCE, "Bip01 Spine2");
#endif

    return true;
}
#endif // ENABLE_WOLFMAN_CHARACTER

#ifdef ENABLE_WOLFMAN_CHARACTER
PyObject* cpsmLoadGameWolfman(PyObject* poSelf, PyObject* poArgs)
{
    CPlayerSettingsModule::LoadGameWolfman(CPlayerSettingsModule::RACE_WOLFMAN_M, "d:/ymir work/pc3/wolfman/");
    return Py_BuildNone();
}
#endif // ENABLE_WOLFMAN_CHARACTER
eksik dosyalar elinde olan varsa veya kodda değişmesi gereken bölüm varsa bakabilir misiniz, lycan modellerinden hiç anlamıyorum.
wolfmanın loadgeneralmotion fonksiyonu diğer 4 karakterle aynı değil kanks önce loadgeneralmotionwolfman diye bi fonksiyon oluştur kopyalayıp. sonra packtaki psmden msa adlarını oraya yapıştır. sonra loadgamewolfmanın içinden loadgeneralmotionları bulup wolfmanlisi ile değiştir. olmazsa turuncu forumda wolfman uyarlı cppler/konu vardı ordan bakarsın.
 
Çözüm
wolfmanın loadgeneralmotion fonksiyonu diğer 4 karakterle aynı değil kanks önce loadgeneralmotionwolfman diye bi fonksiyon oluştur kopyalayıp. sonra packtaki psmden msa adlarını oraya yapıştır. sonra loadgamewolfmanın içinden loadgeneralmotionları bulup wolfmanlisi ile değiştir. olmazsa turuncu forumda wolfman uyarlı cppler/konu vardı ordan bakarsın.
mantıklı kardom dün gece neden düşünmediysem :d
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst