Tyrael Posted June 22, 2017 Report Share Posted June 22, 2017 Buenas noches a la comunidad hace tiempo esto se encuentra post en metin2 dev pero nadie se ha animado a traducirlo y explicarlo de la manera correcta y eso haré a continuación: Locale_inc.cpp (opcional es para llevar un control de lo que se hace). xd #define ENABLE_ARMAS_EFFECT_MOVIMIENTO instancebase.cpp Buscar: UINT CInstanceBase::__GetRefinedEffect(CItemData* pItem) agregar arriba de: if (m_swordRefineEffectRight) m_swordRefineEffectRight = __AttachEffect(m_swordRefineEffectRight); if (m_swordRefineEffectLeft) m_swordRefineEffectLeft = __AttachEffect(m_swordRefineEffectLeft); break; #ifdef ENABLE_ARMAS_EFFECT_MOVIMIENTO if (pItem->GetSubType() == CItemData::WEAPON_SWORD) { DWORD vnum = pItem->GetIndex(); if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma { __ClearWeaponRefineEffect(); // Clear the previous effect m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW1; // NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET) } } if (pItem->GetSubType() == CItemData::WEAPON_SWORD) { DWORD vnum = pItem->GetIndex(); if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma { __ClearWeaponRefineEffect(); // Clear the previous effect m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW2; // NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET) } } if (pItem->GetSubType() == CItemData::WEAPON_TWO_HANDED) { DWORD vnum = pItem->GetIndex(); if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma { __ClearWeaponRefineEffect(); // Clear the previous effect m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW3; // NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET) } } if (pItem->GetSubType() == CItemData::WEAPON_BOW) { DWORD vnum = pItem->GetIndex(); if (vnum >= ID && vnum <= ID) // Change "ID" to your Weapon ID { __ClearWeaponRefineEffect(); // Cambiar "ID" por el ID (vnum) de tu arma m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW4; // NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET) } } if (pItem->GetSubType() == CItemData::WEAPON_FAN) { DWORD vnum = pItem->GetIndex(); if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma { __ClearWeaponRefineEffect(); // Clear the previous effect m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW5; // NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET) } } if (pItem->GetSubType() == CItemData::WEAPON_BELL) { DWORD vnum = pItem->GetIndex(); if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma { __ClearWeaponRefineEffect(); // Clear the previous effect m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW6; // NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET) } } if (pItem->GetSubType() == CItemData::WEAPON_DAGGER) { DWORD vnum = pItem->GetIndex(); if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma { __ClearWeaponRefineEffect(); // Clear the previous effect m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW7; // NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET) m_swordRefineEffectLeft = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW_LEFT7; // NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET) } } #endif InstanceBase.h Buscas EFFECT_REFINED_NUM, agregas arriba de el #ifdef ENABLE_ARMAS_EFFECT_MOVIMIENTO EFFECT_SWORD_REFINED_NEW1, EFFECT_SWORD_REFINED_NEW2, EFFECT_SWORD_REFINED_NEW3, EFFECT_SWORD_REFINED_NEW4, EFFECT_SWORD_REFINED_NEW5, EFFECT_SWORD_REFINED_NEW6, EFFECT_SWORD_REFINED_NEW7, EFFECT_SWORD_REFINED_NEW_LEFT7, #endif playersettingmodule.py Buscamos: chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+20, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse") Agregamos abajo segun el effect ejemplo: (en el caso de arma) chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "PART_WEAPON", "D:/ymir work/item/weapon/fms.mse") En espada, lanza, campana, fan se usa: PART_WEAPON en el casco de arco se usa : PART_WEAPON_LEFT y en el caso de dagas se realizada de esta manera ejemplo chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+52, "PART_WEAPON", "D:/ymir work/item/weapon/bezduszne.mse") chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+53, "PART_WEAPON_LEFT", "D:/ymir work/item/weapon/bezduszne.mse") Creditos Metin2dev al que lo post Creditos tyrael por hacer la guia y explicarlo de una manera mas sencilla en español. Ojo Esto es para Arma si desea usar costumes ejemplo: (Costume weapon, estolas y atuendos cambia) con mas tiempo estare anexando para costume saludos! gabr fonsec1 and Neon 2 Quote Link to comment Share on other sites More sharing options...
Neon Posted June 22, 2017 Report Share Posted June 22, 2017 Excelente.! y como quedaría ese efecto? Quote Link to comment Share on other sites More sharing options...
Shang Posted June 22, 2017 Report Share Posted June 22, 2017 hace 7 horas, Tyrael dijo: #ifdef ENABLE_ARMAS_EFFECT_MOVIMIENTO if (pItem->GetSubType() == CItemData::WEAPON_SWORD) { DWORD vnum = pItem->GetIndex(); if (vnum >= ID && vnum <= ID) // Cambiar "ID" por el ID (vnum) de tu arma { __ClearWeaponRefineEffect(); // Clear the previous effect m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED7 + refine - 7; // Normal Weapon Refine-effect m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_REFINED_NEW1; // NEW EFFECT (AQUI CAMBIAS EL NOMBRE SEGUN EL SET) } } ... #endif ? Por qué le das primero un valor a m_swordRefineEffectRight y luego se lo cambias? Sólo te va a coger el último valor que le definiste, es inútil conservar la primera definición. Tyrael 1 Quote Link to comment Share on other sites More sharing options...
Akroma Posted June 25, 2017 Report Share Posted June 25, 2017 Te he creado una pequeña modificacion para que el sistema este mas optimizado y funcione mejor: Para añadir armas a la lista se modifica en weapons, cada apartado es un tipo de arma Para modificarlo en el CITEMDATA, se debe modificar el sizeof a: sizeof(weapons[NUMERODEINDEX][0] y en vnum == weapons[NUMERODEINDEX] autodesk_metin2 1 Quote Link to comment Share on other sites More sharing options...
Shang Posted June 25, 2017 Report Share Posted June 25, 2017 hace 1 hora, Akroma dijo: Te he creado una pequeña modificacion para que el sistema este mas optimizado y funcione mejor: Para añadir armas a la lista se modifica en weapons, cada apartado es un tipo de arma Para modificarlo en el CITEMDATA, se debe modificar el sizeof a: sizeof(weapons[NUMERODEINDEX][0] y en vnum == weapons[NUMERODEINDEX] Ese for no funciona, mira la syntax. PD: Estabas mejor en la cueva, vuelve a ella. WorldArd 1 Quote Link to comment Share on other sites More sharing options...
Akroma Posted June 25, 2017 Report Share Posted June 25, 2017 cierto no funciona, las prisas juegan malas pasadas for (DWORD i = 0; i<=sizeof(weapons[0][0])/sizeof(DWORD); i++) Disculpad. Fulger and xxx 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.