Tyrael Publicado 22 de Junio del 2017 Reportar Compartir Publicado 22 de Junio del 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! Neon y gabr fonsec1 reacciono a esto 2 Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Neon Publicado 22 de Junio del 2017 Reportar Compartir Publicado 22 de Junio del 2017 Excelente.! y como quedaría ese efecto? Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Shang Publicado 22 de Junio del 2017 Reportar Compartir Publicado 22 de Junio del 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 reacciono a esto 1 Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Akroma Publicado 25 de Junio del 2017 Reportar Compartir Publicado 25 de Junio del 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 reacciono a esto 1 Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Shang Publicado 25 de Junio del 2017 Reportar Compartir Publicado 25 de Junio del 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 reacciono a esto 1 Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Akroma Publicado 25 de Junio del 2017 Reportar Compartir Publicado 25 de Junio del 2017 cierto no funciona, las prisas juegan malas pasadas for (DWORD i = 0; i<=sizeof(weapons[0][0])/sizeof(DWORD); i++) Disculpad. xxx y Fulger reacciono a esto 2 Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Mensajes recomendados
Unirse a la conversación
Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.