DeadOfLove Posted May 25, 2022 Report Share Posted May 25, 2022 En vista que la mayoria de la comunidad no sabe instalar correctamente efectos y algunos utilizan codigo del 2015, les comparto un sistema desarrollo sany hace un par de años bastante bueno, para añadir efectos de manera simple en un block de notas, añadiendo la funcion de carga de efectos para estolas, asi puede añadir estolas con movimiento sin ninguno problema. una vez instalen el sistema que se encuentra subido en el post deben seguir los siguientes pasos: abren su archivo de InstanceBase.cpp // buscan void CInstanceBase::SetAcce(DWORD dwAcce) o en caso que no usen version de marty se llamaria SetSash algo asi creo recordar void CInstanceBase::SetSash(DWORD dwSash) ahora dentro de void CInstanceBase::SetAcce(DWORD dwAcce) buscar ClearAcceEffect(); añadir #ifdef ENABLE_SHINING_SYSTEM __ClearAcceShiningEffect(); #endif al final de void CInstanceBase::SetAcce(DWORD dwAcce) añadir #ifdef ENABLE_SHINING_SYSTEM if (CItemManager::Instance().GetItemDataPointer(dwAcce, &pItemData)) { __GetShiningEffect(pItemData); return; } #endif buscar __ClearWeaponShiningEffect(false); __ClearArmorShiningEffect(false); añadir __ClearAcceShiningEffect(false); deberia quedar de esta forma #ifdef ENABLE_SHINING_SYSTEM __ClearWeaponShiningEffect(false); __ClearArmorShiningEffect(false); __ClearAcceShiningEffect(false); #endif buscar: void CInstanceBase::__GetShiningEffect(CItemData* pItem) dentro añadir despues de #if defined(ENABLE_COSTUME_SYSTEM) if ((pItem->GetType() == CItemData::ITEM_TYPE_ARMOR && pItem->GetSubType() == CItemData::ARMOR_BODY) || (pItem->GetType() == CItemData::ITEM_TYPE_COSTUME && pItem->GetSubType() == CItemData::COSTUME_BODY)) #else if (pItem->GetType() == CItemData::ITEM_TYPE_ARMOR && pItem->GetSubType() == CItemData::ARMOR_BODY) #endif { __ClearArmorShiningEffect(); if (shiningTable.Any() && removeRefineEffect) { __ClearArmorRefineEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { __AttachArmorShiningEffect(i, shiningTable.szShinings[i]); } } } #ifdef ENABLE_ACCE_SYSTEM if (pItem->GetType() == CItemData::ITEM_TYPE_COSTUME && pItem->GetSubType() == CItemData::COSTUME_ACCE) { __ClearAcceShiningEffect(); if (shiningTable.Any() && removeRefineEffect) { ClearAcceEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { __AttachAcceShiningEffect(i, shiningTable.szShinings[i]); } } } #endif (nota: deben modificarlo de acuerdo a la version de estolas que utilicen) buscar: void CInstanceBase::__ClearArmorShiningEffect(bool detaching) { } añadir: #ifdef ENABLE_ACCE_SYSTEM void CInstanceBase::__AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName) { if (IsAffect(AFFECT_INVISIBILITY)) { return; } if (effectIndex >= CItemData::ITEM_SHINING_MAX_COUNT) { return; } if (!strcmp(boneName, "")) { Tracef("Empty bone name for attaching Aura shining. Effect Index: %i, EffectFileName: %s", effectIndex, effectFileName); return; } CEffectManager::Instance().RegisterEffect(effectFileName, false, false); m_acceShiningEffects[effectIndex] = m_GraphicThingInstance.AttachEffectByName(0, boneName, effectFileName); } void CInstanceBase::__ClearAcceShiningEffect(bool detaching) { if (detaching) { for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { __DetachEffect(m_acceShiningEffects[i]); } } #ifdef __cplusplus < 199711L memset(&m_acceShiningEffects, 0, sizeof(m_acceShiningEffects)); #else m_acceShiningEffects = {}; #endif } #endif ahora abran su archivo de InstanceBase.h buscar: void __GetShiningEffect(CItemData* pItem); void __ClearWeaponShiningEffect(bool detaching = true); void __ClearArmorShiningEffect(bool detaching = true); añadir void __ClearAcceShiningEffect(bool detaching = true); buscar: void __AttachArmorShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); añadir: void __AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); deberia quedar asi #ifdef ENABLE_SHINING_SYSTEM void __GetShiningEffect(CItemData* pItem); void __ClearWeaponShiningEffect(bool detaching = true); void __ClearArmorShiningEffect(bool detaching = true); void __ClearAcceShiningEffect(bool detaching = true); void __AttachWeaponShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); void __AttachArmorShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); void __AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); #endif buscar: DWORD m_armorShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT]; añadir: DWORD m_acceShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT]; deberia quedar asi: #ifdef ENABLE_SHINING_SYSTEM DWORD m_weaponShiningEffects[2][CItemData::ITEM_SHINING_MAX_COUNT]; DWORD m_armorShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT]; DWORD m_acceShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT]; #endif espero que sea de utilidad, saludos a toda la comunidad. post data: a todos los miembros, cuando se hace un comentarios indicando que algo no es necesario, o esta mal desarrollado no es en plan de criticar, es notificando a las personas que no saben de programacion que abstengan de utilizarlo porque pueden usar algo mejor en su fuente. porque ahora esta mal decir que un codigo (sistema) publico esta bug esta mal? Debes iniciar sesión para ver el contenido del enlace en esta publicación. Iced Out, Tonis BossGR, Pegasus and 4 others 5 1 1 Quote Link to comment Share on other sites More sharing options...
MiGueLiT0 Posted May 26, 2022 Report Share Posted May 26, 2022 buen post, la unica pereza es que si ya tienes añadidos en 3d es añadirlas al block de notas :v Quote Link to comment Share on other sites More sharing options...
Pegasus Posted May 26, 2022 Report Share Posted May 26, 2022 hace 6 horas, DeadOfLove dijo: En vista que la mayoria de la comunidad no sabe instalar correctamente efectos y algunos utilizan codigo del 2015, les comparto un sistema desarrollo sany hace un par de años bastante bueno, para añadir efectos de manera simple en un block de notas, añadiendo la funcion de carga de efectos para estolas, asi puede añadir estolas con movimiento sin ninguno problema. una vez instalen el sistema que se encuentra subido en el post deben seguir los siguientes pasos: abren su archivo de InstanceBase.cpp // buscan void CInstanceBase::SetAcce(DWORD dwAcce) o en caso que no usen version de marty se llamaria SetSash algo asi creo recordar void CInstanceBase::SetSash(DWORD dwSash) ahora dentro de void CInstanceBase::SetAcce(DWORD dwAcce) buscar ClearAcceEffect(); añadir #ifdef ENABLE_SHINING_SYSTEM __ClearAcceShiningEffect(); #endif al final de void CInstanceBase::SetAcce(DWORD dwAcce) añadir #ifdef ENABLE_SHINING_SYSTEM if (CItemManager::Instance().GetItemDataPointer(dwAcce, &pItemData)) { __GetShiningEffect(pItemData); return; } #endif buscar __ClearWeaponShiningEffect(false); __ClearArmorShiningEffect(false); añadir __ClearAcceShiningEffect(false); deberia quedar de esta forma #ifdef ENABLE_SHINING_SYSTEM __ClearWeaponShiningEffect(false); __ClearArmorShiningEffect(false); __ClearAcceShiningEffect(false); #endif buscar: void CInstanceBase::__GetShiningEffect(CItemData* pItem) dentro añadir despues de #if defined(ENABLE_COSTUME_SYSTEM) if ((pItem->GetType() == CItemData::ITEM_TYPE_ARMOR && pItem->GetSubType() == CItemData::ARMOR_BODY) || (pItem->GetType() == CItemData::ITEM_TYPE_COSTUME && pItem->GetSubType() == CItemData::COSTUME_BODY)) #else if (pItem->GetType() == CItemData::ITEM_TYPE_ARMOR && pItem->GetSubType() == CItemData::ARMOR_BODY) #endif { __ClearArmorShiningEffect(); if (shiningTable.Any() && removeRefineEffect) { __ClearArmorRefineEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { __AttachArmorShiningEffect(i, shiningTable.szShinings[i]); } } } #ifdef ENABLE_ACCE_SYSTEM if (pItem->GetType() == CItemData::ITEM_TYPE_COSTUME && pItem->GetSubType() == CItemData::COSTUME_ACCE) { __ClearAcceShiningEffect(); if (shiningTable.Any() && removeRefineEffect) { ClearAcceEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { __AttachAcceShiningEffect(i, shiningTable.szShinings[i]); } } } #endif (nota: deben modificarlo de acuerdo a la version de estolas que utilicen) buscar: void CInstanceBase::__ClearArmorShiningEffect(bool detaching) { } añadir: #ifdef ENABLE_ACCE_SYSTEM void CInstanceBase::__AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName) { if (IsAffect(AFFECT_INVISIBILITY)) { return; } if (effectIndex >= CItemData::ITEM_SHINING_MAX_COUNT) { return; } if (!strcmp(boneName, "")) { Tracef("Empty bone name for attaching Aura shining. Effect Index: %i, EffectFileName: %s", effectIndex, effectFileName); return; } CEffectManager::Instance().RegisterEffect(effectFileName, false, false); m_acceShiningEffects[effectIndex] = m_GraphicThingInstance.AttachEffectByName(0, boneName, effectFileName); } void CInstanceBase::__ClearAcceShiningEffect(bool detaching) { if (detaching) { for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { __DetachEffect(m_acceShiningEffects[i]); } } #ifdef __cplusplus < 199711L memset(&m_acceShiningEffects, 0, sizeof(m_acceShiningEffects)); #else m_acceShiningEffects = {}; #endif } #endif ahora abran su archivo de InstanceBase.h buscar: void __GetShiningEffect(CItemData* pItem); void __ClearWeaponShiningEffect(bool detaching = true); void __ClearArmorShiningEffect(bool detaching = true); añadir void __ClearAcceShiningEffect(bool detaching = true); buscar: void __AttachArmorShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); añadir: void __AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); deberia quedar asi #ifdef ENABLE_SHINING_SYSTEM void __GetShiningEffect(CItemData* pItem); void __ClearWeaponShiningEffect(bool detaching = true); void __ClearArmorShiningEffect(bool detaching = true); void __ClearAcceShiningEffect(bool detaching = true); void __AttachWeaponShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); void __AttachArmorShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); void __AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); #endif buscar: DWORD m_armorShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT]; añadir: DWORD m_acceShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT]; deberia quedar asi: #ifdef ENABLE_SHINING_SYSTEM DWORD m_weaponShiningEffects[2][CItemData::ITEM_SHINING_MAX_COUNT]; DWORD m_armorShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT]; DWORD m_acceShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT]; #endif espero que sea de utilidad, saludos a toda la comunidad. post data: a todos los miembros, cuando se hace un comentarios indicando que algo no es necesario, o esta mal desarrollado no es en plan de criticar, es notificando a las personas que no saben de programacion que abstengan de utilizarlo porque pueden usar algo mejor en su fuente. porque ahora esta mal decir que un codigo (sistema) publico esta bug esta mal? Debes iniciar sesión para ver el contenido del enlace en esta publicación. Bueno simplemente mi comentario es que para muchas personas las cuales anden utilizando martysama v5.4 o files WoM2 Wonder2, este codigo no les va a funcionar a no ser que el experto Dead haya subido la solucion que por lo que estoy viendo no ya que el sistema de alas viene con un pequeño error en InstanceBase.cpp lo cual no reconoce una funcion que pide el Shani, ocasionando que las alas no se visualicen xD 2-. El problema del sistema Shani es que si quieres implementar alas con otro tipo de posiciones en el modelaje tocaria cambiar de esa linea el Bip01 por la que el ala o estola precise. Para ello recomiendo usar el codigo de siempre con el que se comenzaron a implementar las alas mse y dejar el Shanni solamente para las Armas 3D y Efectos de Armaduras Pero bueno cada quien es libre de hacerlo como desee xD Y ultima cosa revisen el codigo ya que el sistema Shining viene con 1 problema el cual las armas 3D en las skines no funcionan ya que solamente el sistema lo reconoce como arma, a no ser que DEAD lo haya fixeado revisando todos los comentarios del foro donde saco el sistema 2-. El problema del sistema Shani es que si quieres implementar alas con otro tipo de posiciones en el modelaje tocaria cambiar de esa linea el Bip01 por la que el ala o estola precise. #ifdef ENABLE_SHINING_SYSTEM void __AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); #endif PD: Y ahora vas y dices que no lo haces asi y que lo metistes de otra forma y que no es necesario todo lo que comente Quote Link to comment Share on other sites More sharing options...
Pegasus Posted May 26, 2022 Report Share Posted May 26, 2022 hace 37 minutos, MiGueLiT0 dijo: buen post, la unica pereza es que si ya tienes añadidos en 3d es añadirlas al block de notas :v Para ello prefiero agregarlas en playersettingmodule y ir poniendo sus posiciones y rutas de envez de estar jodido con este sistema el cual hay muchas alas que no permiten que lleven el Bip01 y precisen Bip01 Spine2. Lo bueno de agregarlas como yo publique es que puedes ponerla de todas las formas que quieras y asi ahorrarte implementar este sistema Quote Link to comment Share on other sites More sharing options...
DeadOfLove Posted May 26, 2022 Author Report Share Posted May 26, 2022 hace 1 hora, MiGueLiT0 dijo: buen post, la unica pereza es que si ya tienes añadidos en 3d es añadirlas al block de notas :v funciona igualmente con lo que ya tienes, esto es mucho mas util para los que no usamos playersetting en python Quote Link to comment Share on other sites More sharing options...
DeadOfLove Posted May 26, 2022 Author Report Share Posted May 26, 2022 hace 1 hora, Pegasus dijo: Bueno simplemente mi comentario es que para muchas personas las cuales anden utilizando martysama v5.4 o files WoM2 Wonder2, este codigo no les va a funcionar a no ser que el experto Dead haya subido la solucion que por lo que estoy viendo no ya que el sistema de alas viene con un pequeño error en InstanceBase.cpp lo cual no reconoce una funcion que pide el Shani, ocasionando que las alas no se visualicen xD 2-. El problema del sistema Shani es que si quieres implementar alas con otro tipo de posiciones en el modelaje tocaria cambiar de esa linea el Bip01 por la que el ala o estola precise. Para ello recomiendo usar el codigo de siempre con el que se comenzaron a implementar las alas mse y dejar el Shanni solamente para las Armas 3D y Efectos de Armaduras Pero bueno cada quien es libre de hacerlo como desee xD Y ultima cosa revisen el codigo ya que el sistema Shining viene con 1 problema el cual las armas 3D en las skines no funcionan ya que solamente el sistema lo reconoce como arma, a no ser que DEAD lo haya fixeado revisando todos los comentarios del foro donde saco el sistema 2-. El problema del sistema Shani es que si quieres implementar alas con otro tipo de posiciones en el modelaje tocaria cambiar de esa linea el Bip01 por la que el ala o estola precise. #ifdef ENABLE_SHINING_SYSTEM void __AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); #endif PD: Y ahora vas y dices que no lo haces asi y que lo metistes de otra forma y que no es necesario todo lo que comente especifique a la versiones de estolas mas usadas si deseas que se adapte a la fuente que usas y no sabes como, paga por soporte Quote Link to comment Share on other sites More sharing options...
DeadOfLove Posted May 26, 2022 Author Report Share Posted May 26, 2022 para aquellos que presente un posible but de visualizaciones con atuendos, pueden dejarme un mensaje aqui en el foro o una mencion en ayudas o preguntas en el servidor del discord de la comunidad y en lo que tenga tiempo disponible le ayudare a resolver cualquier fallo Quote Link to comment Share on other sites More sharing options...
Pegasus Posted May 26, 2022 Report Share Posted May 26, 2022 hace 1 minuto, DeadOfLove dijo: especifique a la versiones de estolas mas usadas si deseas que se adapte a la fuente que usas y no sabes como, paga por soporte Campeon yo a ti no te tengo que pagar ya que ese sistema lo tengo full fixeado por mi Ya pronto subire una guia mas actualizada de ese sistema y mejor explicada para que personas como tu no tengan que estar cobrando los nuevos por meter un codigo en 5 minutos O como dijistes tan crack que eres coge y crea el codigo sin errores de envez de cogerlos de foros los cuales estan dañados Quote Link to comment Share on other sites More sharing options...
DeadOfLove Posted May 26, 2022 Author Report Share Posted May 26, 2022 hace 13 minutos, Pegasus dijo: Campeon yo a ti no te tengo que pagar ya que ese sistema lo tengo full fixeado por mi Ya pronto subire una guia mas actualizada de ese sistema y mejor explicada para que personas como tu no tengan que estar cobrando los nuevos por meter un codigo en 5 minutos O como dijistes tan crack que eres coge y crea el codigo sin errores de envez de cogerlos de foros los cuales estan dañados se nota tanto que desbordas conocimiento y demuestras saber de lo que estas hablando, post data si alguien necesita ayuda dije que daria soporte gratuito para el sistema base, mas no adaptaciones a bases en especifico. porque no recomiendo utilizar bases mal trabajadas publicas eso solo trae problemas a las personas que no tienen conocimientos amplios en el area de desarrollo y no pueden arreglarlas y se mantiene en el ciclo sin fin de servidores que cierran por no poder solucionar bugs que encuentran, como dijo un miembro del foro bastante antiguo aqui. se recomienda comenzar desde 0 con una base limpia como marty. saludos a naxo siempre activo y dando comentarios positivos. y por ultimo yo no dije que tu aporte estuviera dañado, solo que no era necesario usarlo evita comentarios innecesarios a criticas destructivas ultima vez que me tomare tiempo en responderte asi que no gastes tiempo en algo que solo termina dejando que hablar hacia tu perosna. buena suerte en tus proyectos y que sean exitosos. 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.