Jump to content

shootstart09

Miembro
  • Contador contenido

    0
  • Ingreso

  • Última visita

Actividad de reputación

  1. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Atuendos Halloween [Plechito 2022]   
    Buenas tardes zoner@s, hoy os vengo a traer los atuendos de halloween de este 2022 de plechito


    Os dejare los primeros atuendos, luego mas tarde subire los otros

    El set viene con los atuendos, skin de armas, alas y iconos

    Link:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Foto del set:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  2. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Sistema de Loteria [Full Version]   
    Buenas noches zoner@s, aca os traigo el sistema de loteria completo.

    El sistema fue instalado en otro servidor sin ningun problema, todo esta completo.

    En caso de problemas pueden publicarlas y os ayudare a solucionarlos.

    Imagenes:


    Link:


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  3. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in [FIX] NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_01_49_001.mse   
    Buenas noches zoner@s, he visto que muchas personas quieren comenzar con nuevos proyectos, algunas usando bases publicas como los "WoM, Wonder2, Ephelion2.....etc" asi como otras que prefieren optar por la opcion mas recomendable que es usar una base limpia, ya sea MartySama o Owsap.

    En este caso vengo a aportar un fix que casi siempre vienen en las bases MartySama vs 5.3 o 5.4 "Es en las cuales siempre me salia el mismo error"

    Uno de ellos es el siguiente:
     
    0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_01_49_001.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_01_49_001.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_50_99_002.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_50_99_002.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_100_149_003.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_100_149_003.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_150_199_004.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_150_199_004.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_200_249_005.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_200_249_005.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_250_006.mse 0725 01:55:13101 :: ResourceManager::GetResourcePointer: NOT SUPPORT FILE d:\ymir work\pc\common\effect\aura\aura_250_006.mse Para solucionar este error vamos a hacer lo siguiente:
    1-. Abrimos nuestro binario y nos vamos a la carpeta ScriptLib 2-. Dentro de la carpeta buscamos el archivo Resource.cpp y lo abrimos -.Una vez dentro del archivo buscamos lo siguiente: CPythonResource::CPythonResource() { m_resManager.RegisterResourceNewFunctionPointer("sub", NewSubImage); m_resManager.RegisterResourceNewFunctionPointer("dds", NewImage); m_resManager.RegisterResourceNewFunctionPointer("jpg", NewImage); m_resManager.RegisterResourceNewFunctionPointer("png", NewImage); // @fixme020 m_resManager.RegisterResourceNewFunctionPointer("tga", NewImage); m_resManager.RegisterResourceNewFunctionPointer("bmp", NewImage); m_resManager.RegisterResourceNewFunctionPointer("fnt", NewText); m_resManager.RegisterResourceNewFunctionPointer("gr2", NewThing); m_resManager.RegisterResourceNewFunctionPointer("mde", NewEffectMesh); m_resManager.RegisterResourceNewFunctionPointer("mdatr", NewAttributeData); } Y este lo remplazamos por el siguiente. CPythonResource::CPythonResource() { m_resManager.RegisterResourceNewFunctionPointer("sub", NewSubImage); m_resManager.RegisterResourceNewFunctionPointer("dds", NewImage); m_resManager.RegisterResourceNewFunctionPointer("jpg", NewImage); m_resManager.RegisterResourceNewFunctionPointer("tga", NewImage); m_resManager.RegisterResourceNewFunctionPointer("png", NewImage); m_resManager.RegisterResourceNewFunctionPointer("bmp", NewImage); m_resManager.RegisterResourceNewFunctionPointer("fnt", NewText); m_resManager.RegisterResourceNewFunctionPointer("gr2", NewThing); m_resManager.RegisterResourceNewFunctionPointer("mde", NewEffectMesh); m_resManager.RegisterResourceNewFunctionPointer("msa", NewEffectMesh); m_resManager.RegisterResourceNewFunctionPointer("mse", NewEffectMesh); m_resManager.RegisterResourceNewFunctionPointer("mdatr", NewAttributeData); }
    Con esto quedaria el problema solucionado.
     
  4. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Atuendo Samurai 2022 [Full Version]   
    Buenas noches zoner@s, aca os traigo los atuendos de samurai de plechito de este 2022 completos

    La carpeta contiene los iconos, las armas, los atuendos, los peinados, la estola y los efectos:

    Link de los archivos:


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Imagen del set:

    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
  5. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Ayuda para activar Budokan   
    Buenas alguien me podria decir como puedo activar el evento budokan 
  6. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Opinion de Nuevo Mapa   
    Buenas Noches Comunidad e Metin2zone Me gustaria Saber Vuestra opinion en un nuevo mapa que e creado.
     
     
    PD: Es la primera vez que creo un mapa

    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
  7. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in [GUIA] Que hacer cuando compras un nuevo computador   
    𝗕𝘂𝗲𝗻𝗮𝘀 𝗻𝗼𝗰𝗵𝗲𝘀 𝗭𝗼𝗻𝗲𝗿𝗼𝘀 𝘆 𝗭𝗼𝗻𝗲𝗿𝗮𝘀
    𝗘𝗻 𝗲𝘀𝘁𝗮 𝗢𝗰𝗮𝘀𝗶𝗼𝗻 𝗼𝘀 𝘁𝗿𝗮𝗶𝗴𝗼 𝘂𝗻𝗮 𝗻𝘂𝗲𝘃𝗮 𝗴𝘂𝗶𝗮 𝗱𝗲 𝗾𝘂𝗲 𝗵𝗮𝗰𝗲𝗿 𝗰𝘂𝗮𝗻𝗱𝗼 𝘁𝗲 𝗰𝗼𝗺𝗽𝗿𝗮𝘀 𝘂𝗻 𝗻𝘂𝗲𝘃𝗼 𝗰𝗼𝗺𝗽𝘂𝘁𝗮𝗱𝗼𝗿. [𝗡𝗼 𝗲𝘀 𝗻𝗮𝗱𝗮 𝗿𝗲𝗳𝗲𝗿𝗶𝗱𝗼 𝗮 𝗺𝗲𝘁𝗶𝗻𝟮]
    𝗔𝗰𝗮 𝗼𝘀 𝗲𝗻𝘀𝗲ñ𝗮𝗿𝗲 𝘁𝗼𝗱𝗼𝘀 𝗹𝗼𝘀 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮𝘀 𝗾𝘂𝗲 𝗼𝘀 𝗮𝗰𝗼𝗻𝘀𝗲𝗷𝗼 𝘁𝗲𝗻𝗲𝗿 𝗲𝗻 𝘃𝘂𝗲𝘀𝘁𝗿𝗮 𝗽𝗰.
    𝗣𝗮𝗿𝗮 𝗱𝗲𝗷𝗮𝗿𝗹𝗮 𝗹𝗼 𝗺𝗮𝘀 𝗮𝗰𝘁𝘂𝗮𝗹𝗶𝘇𝗮𝗱𝗮 𝗮𝘀𝗶 𝗰𝗼𝗺𝗼 𝗼𝗽𝘁𝗶𝗺𝗶𝘇𝗮𝗱𝗮 𝗽𝗼𝘀𝗶𝗯𝗹𝗲
    [𝗘𝗡 𝗘𝗦𝗧𝗔 𝗚𝗨𝗜𝗔 𝗢𝗦 𝗗𝗜𝗥𝗘 𝗟𝗢𝗦 𝗣𝗥𝗢𝗚𝗥𝗔𝗠𝗔𝗦 𝗧𝗔𝗡𝗧𝗢 𝗘𝗡 𝗪𝗜𝗡𝗗𝗢𝗪𝗦 𝟳 𝗖𝗢𝗠𝗢 𝗘𝗡 𝗪𝗜𝗡𝗗𝗢𝗪𝗦 𝟭𝟬]
     
     
    𝘽𝙪𝙚𝙣𝙤 𝙘𝙤𝙢𝙚𝙣𝙯𝙚𝙢𝙤𝙨:
    1-. 𝙊𝙧𝙙𝙚𝙣𝙖𝙙𝙤𝙧 𝙘𝙤𝙣 𝙒𝙞𝙣𝙙𝙤𝙬𝙨 7:
    𝙋𝙖𝙧𝙖 𝙥𝙧𝙚𝙥𝙖𝙧𝙖𝙧 𝙪𝙣 𝙤𝙧𝙙𝙚𝙣𝙖𝙙𝙤𝙧 𝙘𝙤𝙣 𝙒𝙞𝙣𝙙𝙤𝙬𝙨 7 𝙥𝙧𝙞𝙢𝙚𝙧𝙤 𝙙𝙚 𝙩𝙤𝙙𝙤 𝙤𝙨 𝙖𝙘𝙤𝙣𝙨𝙚𝙟𝙤 𝙦𝙪𝙚 𝙙𝙚𝙨𝙘𝙖𝙧𝙜𝙪𝙚𝙣 𝙡𝙤𝙨 𝙨𝙞𝙜𝙪𝙞𝙚𝙣𝙩𝙚𝙨 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖𝙨 𝙦𝙪𝙚 𝙤𝙨 𝙙𝙚𝙟𝙖𝙧𝙚 𝙖𝙘𝙖 𝙖𝙗𝙖𝙟𝙤.
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.[𝗘𝘀𝘁𝗲 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝗲𝘀 𝗲𝗹 𝗔𝘃𝗮𝘀𝘁 (𝗨𝗻 𝗔𝗻𝘁𝗶 𝗩𝗶𝗿𝘂𝘀 𝗽𝗮𝗿𝗮 𝘃𝘂𝗲𝘀𝘁𝗿𝗼 𝘀𝗶𝘀𝘁𝗲𝗺𝗮 𝗼𝗽𝗲𝗿𝗮𝘁𝗶𝘃𝗼)]
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. [𝗘𝘀𝘁𝗲 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮𝘀 𝗲𝘀 𝗲𝗹 𝗗𝗿𝗶𝘃𝗲𝗿 𝗕𝗼𝗼𝘀𝘁𝗲𝗿(𝗘𝗹 𝗰𝘂𝗮𝗹 𝘀𝗲 𝗲𝗻𝗰𝗮𝗿𝗴𝗮𝗿𝗮 𝗱𝗲 𝗮𝗰𝘁𝘂𝗮𝗹𝗶𝘇𝗮𝗿 𝘁𝗼𝗱𝗼𝘀 𝗹𝗼𝘀 𝗱𝗿𝗶𝘃𝗲𝗿𝘀 𝗮𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝗰𝗮𝗺𝗲𝗻𝘁𝗲 𝗱𝗲 𝘃𝘂𝗲𝘀𝘁𝗿𝗼 𝗽𝗰)]
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. [𝗘𝘀𝘁𝗲 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝗲𝘀 𝗲𝗹 𝗔𝗱𝘃𝗮𝗻𝗰𝗲 𝗦𝘆𝘀𝘁𝗲𝗺 𝗖𝗮𝗿𝗲(𝗘𝗹 𝗰𝘂𝗮𝗹 𝘀𝗲 𝗲𝗻𝗰𝗮𝗿𝗴𝗮 𝗱𝗲 𝗺𝗮𝗻𝘁𝗲𝗻𝗲𝗿 𝘃𝘂𝗲𝘀𝘁𝗿𝗼 𝗽𝗰 𝗼𝗽𝘁𝗶𝗺𝗶𝘇𝗮𝗱𝗼 𝗮𝗹 𝗺𝗮𝘅𝗶𝗺𝗼)]]
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.[𝗘𝘀𝘁𝗲 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝗲𝘀 𝗲𝗹 𝗖𝗿𝗶𝘀𝘁𝗮𝗹 𝗗𝗶𝘀𝗸 𝗜𝗻𝗳𝗼(𝗦𝗲 𝗲𝗻𝗰𝗮𝗿𝗴𝗮 𝗱𝗲 𝗺𝗼𝘀𝘁𝗿𝗮𝗿𝘁𝗲 𝗲𝗹 𝗲𝘀𝘁𝗮𝗱𝗼 𝗱𝗲 𝘀𝗮𝗹𝘂𝗱 𝗱𝗲 𝘁𝘂 𝗱𝗶𝘀𝗰𝗼 𝗱𝘂𝗿𝗼 𝗮𝘀𝗶 𝗰𝗼𝗺𝗼 𝗹𝗮 𝘁𝗲𝗺𝗽𝗲𝗿𝗮𝘁𝘂𝗿𝗮 𝘆 𝘀𝗲𝗰𝘁𝗼𝗿𝗲𝘀 𝗾𝘂𝗲 𝘀𝗲 𝗲𝗻𝗰𝘂𝗲𝗻𝘁𝗿𝗲𝗻 𝗱𝗮ñ𝗮𝗱𝗼𝘀)]  
    [𝘾𝙤𝙢𝙤 𝙄𝙣𝙨𝙩𝙖𝙡𝙤 𝙘𝙖𝙙𝙖 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖, 𝙮 𝙘𝙤𝙢𝙤 𝙛𝙪𝙣𝙘𝙞𝙤𝙣𝙖𝙣]
     
    [𝘼𝙣𝙩𝙞 𝙑𝙞𝙧𝙪𝙨 𝘼𝙫𝙖𝙨𝙩]
    1-. 𝙀𝙭𝙩𝙧𝙖𝙚𝙣 𝙚𝙡 𝙒𝙞𝙣𝙧𝙖𝙧 𝙮 𝙚𝙟𝙚𝙘𝙪𝙩𝙖𝙣 𝙚𝙡 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙙𝙤𝙧.
    2-. 𝙀𝙨𝙥𝙚𝙧𝙖𝙣 𝙖 𝙦𝙪𝙚 𝙘𝙖𝙧𝙜𝙪𝙚, 𝙪𝙣𝙖 𝙫𝙚𝙯 𝙦𝙪𝙚 𝙘𝙖𝙧𝙜𝙪𝙚 𝙡𝙚𝙨 𝙖𝙥𝙖𝙧𝙚𝙘𝙚𝙧𝙖 𝙪𝙣𝙖 𝙫𝙚𝙣𝙩𝙖𝙣𝙖 𝙚𝙣 𝙜𝙧𝙖𝙣𝙙𝙚
    3-. 𝘼𝙗𝙖𝙟𝙤 𝙙𝙚 𝙚𝙨𝙖 𝙫𝙚𝙣𝙩𝙖𝙣𝙖 𝙚𝙣𝙘𝙤𝙣𝙩𝙧𝙖𝙧𝙖𝙣 𝙙𝙤𝙨 𝙘𝙪𝙖𝙙𝙧𝙖𝙙𝙞𝙩𝙤𝙨. 𝙀𝙨𝙤𝙨 𝙘𝙪𝙖𝙙𝙧𝙖𝙙𝙞𝙩𝙤𝙨 𝙡𝙤𝙨 𝙙𝙚𝙨𝙢𝙖𝙧𝙘𝙖𝙣 𝙮 𝙡𝙚 𝙙𝙖𝙣 𝙖 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙧 𝙮 𝙚𝙨𝙥𝙚𝙧𝙖𝙣 𝙖 𝙦𝙪𝙚 𝙩𝙚𝙧𝙢𝙞𝙣𝙚
    4-. 𝙐𝙣𝙖 𝙫𝙚𝙯 𝙝𝙖𝙮𝙖 𝙩𝙚𝙧𝙢𝙞𝙣𝙖𝙙𝙤 𝙤𝙨 𝙨𝙖𝙡𝙙𝙧𝙖 𝙪𝙣𝙖 𝙫𝙚𝙣𝙩𝙖𝙣𝙖 𝙘𝙤𝙣 𝙪𝙣 𝙧𝙚𝙘𝙪𝙖𝙙𝙧𝙤 𝙦𝙪𝙚 𝙤𝙨 𝙙𝙞𝙧𝙖 𝙁𝙞𝙣𝙖𝙡𝙞𝙯𝙖𝙧 𝙄𝙣𝙨𝙩𝙖𝙡𝙖𝙘𝙞𝙤𝙣. 𝙇𝙚 𝙥𝙞𝙣𝙘𝙝𝙖𝙣 𝙮 𝙚𝙨𝙥𝙚𝙧𝙖𝙣 𝙪𝙣𝙤𝙨 𝙨𝙚𝙜𝙪𝙣𝙙𝙤𝙨.
    5-. 𝘾𝙪𝙖𝙣𝙙𝙤 𝙝𝙖𝙮𝙖 𝙩𝙚𝙧𝙢𝙞𝙣𝙖𝙙𝙤 𝙡𝙖 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙘𝙞𝙤𝙣 𝙨𝙚 𝙤𝙨 𝙖𝙗𝙧𝙞𝙧𝙖 𝙚𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖, 𝙡𝙚 𝙙𝙖𝙣 𝙖 𝙘𝙤𝙣𝙩𝙞𝙣𝙪𝙖𝙧 𝙮 𝙚𝙟𝙚𝙘𝙪𝙩𝙖𝙧 𝙥𝙧𝙞𝙢𝙚𝙧 𝙖𝙣𝙖𝙡𝙞𝙨𝙞𝙨
    6-. 𝙀𝙨𝙥𝙚𝙧𝙖𝙣 𝙦𝙪𝙚 𝙩𝙤𝙙𝙤 𝙚𝙡 𝙥𝙧𝙤𝙘𝙚𝙨𝙤 𝙩𝙚𝙧𝙢𝙞𝙣𝙚 𝙮 𝙮𝙖.
    [𝙎𝙞 𝙤𝙨 𝙨𝙖𝙡𝙚 𝙦𝙪𝙚 𝙚𝙡 𝙚𝙦𝙪𝙞𝙥𝙤 𝙚𝙨𝙩𝙖 𝙥𝙧𝙤𝙩𝙚𝙜𝙞𝙙𝙤 𝙘𝙞𝙚𝙧𝙧𝙖𝙣 𝙚𝙡 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙙𝙤𝙧 𝙮 𝙮𝙖.]
    [𝙎𝙞 𝙤𝙨 𝙨𝙖𝙡𝙚 𝙦𝙪𝙚 𝙚𝙡 𝙚𝙦𝙪𝙞𝙥𝙤 𝙚𝙨𝙩𝙖 𝙙𝙖ñ𝙖𝙙𝙤 𝙤 𝙚𝙣 𝙥𝙚𝙡𝙞𝙜𝙧𝙤, 𝙖𝙪𝙩𝙤𝙢𝙖𝙩𝙞𝙘𝙖𝙢𝙚𝙣𝙩𝙚 𝙚𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖 𝙧𝙚𝙥𝙖𝙧𝙖𝙧𝙖 𝙚𝙡 𝙚𝙦𝙪𝙞𝙥𝙤.]
     
    [𝘾𝙧𝙞𝙨𝙩𝙖𝙡 𝘿𝙞𝙨𝙠 𝙄𝙣𝙛𝙤]
    1-. 𝘿𝙚𝙨𝙘𝙖𝙧𝙜𝙖𝙣 𝙚𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖 𝙙𝙚𝙨𝙙𝙚 𝙡𝙖 𝙥𝙖𝙜𝙞𝙣𝙖 𝙤𝙛𝙞𝙘𝙞𝙖𝙡.
    2-. 𝙀𝙟𝙚𝙘𝙪𝙩𝙖𝙣 𝙚𝙡 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙙𝙤𝙧 𝙮 𝙨𝙞𝙜𝙪𝙚𝙣 𝙡𝙤𝙨 𝙥𝙖𝙨𝙤𝙨 𝙙𝙚 𝙡𝙖 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙘𝙞𝙤𝙣.
    3-. 𝘾𝙪𝙖𝙣𝙙𝙤 𝙡𝙖 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙘𝙞𝙤𝙣 𝙩𝙚𝙧𝙢𝙞𝙣𝙚 𝙖𝙗𝙧𝙚𝙣 𝙚𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖 𝙮 𝙤𝙨 𝙨𝙖𝙡𝙙𝙧𝙖 𝙪𝙣𝙖 𝙫𝙚𝙣𝙩𝙖𝙣𝙖 𝙚𝙡 𝙘𝙪𝙖𝙡 𝙤𝙨 𝙢𝙤𝙨𝙩𝙧𝙖𝙧𝙖 𝙚𝙡 𝙚𝙨𝙩𝙖𝙙𝙤 𝙙𝙚 𝙨𝙖𝙡𝙪𝙙
    4-. 𝘼𝙨𝙞 𝙘𝙤𝙢𝙤 𝙡𝙤𝙨 𝙨𝙚𝙘𝙩𝙤𝙧𝙚𝙨 𝙦𝙪𝙚 𝙨𝙚 𝙚𝙣𝙘𝙪𝙚𝙣𝙩𝙧𝙚𝙣 𝙙𝙖ñ𝙖𝙙𝙤𝙨 𝙚𝙣 𝙫𝙪𝙚𝙨𝙩𝙧𝙤 𝙙𝙞𝙨𝙘𝙤 𝙙𝙪𝙧𝙤 𝙤 𝙩𝙚𝙢𝙥𝙚𝙧𝙖𝙩𝙪𝙧𝙖
     
    [𝘿𝙧𝙞𝙫𝙚𝙧 𝘽𝙤𝙤𝙨𝙩𝙚𝙧]
    1-. 𝘿𝙚𝙨𝙘𝙖𝙧𝙜𝙖𝙣 𝙚𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖
    2-. 𝘾𝙪𝙖𝙣𝙙𝙤 𝙡𝙤 𝙙𝙚𝙨𝙘𝙖𝙧𝙜𝙪𝙚𝙣 𝙚𝙟𝙚𝙘𝙪𝙩𝙖𝙣 𝙚𝙡 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙙𝙤𝙧.
    3-. 𝙎𝙚 𝙤𝙨 𝙖𝙥𝙖𝙧𝙚𝙘𝙚𝙧𝙖 𝙪𝙣𝙖 𝙑𝙚𝙣𝙩𝙖𝙣𝙖 𝙘𝙤𝙣 𝙡𝙖 𝙤𝙥𝙘𝙞𝙤𝙣 𝙙𝙚 𝙄𝙣𝙨𝙩𝙖𝙡𝙖𝙧. 𝙋𝙞𝙣𝙘𝙝𝙖𝙣 𝙚𝙣 𝙚𝙨𝙖 𝙤𝙥𝙘𝙞𝙤𝙣
    4-. 𝙀𝙣 𝙡𝙖 𝙨𝙞𝙜𝙪𝙞𝙚𝙣𝙩𝙚 𝙑𝙚𝙣𝙩𝙖𝙣𝙖 𝙤𝙨 𝙙𝙞𝙧𝙖 𝙦𝙪𝙚 𝙨𝙞 𝙙𝙚𝙨𝙚𝙖𝙣 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙧 𝙚𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖 𝘼𝙙𝙫𝙖𝙣𝙘𝙚 𝙎𝙮𝙨𝙩𝙚𝙢𝙖 𝘾𝙖𝙧𝙚. 𝙇𝙚 𝙙𝙖𝙣 𝙖 𝙦𝙪𝙚 𝙣𝙤 𝙮 𝙨𝙞𝙜𝙪𝙞𝙚𝙣𝙩𝙚
    5-. 𝙀𝙨𝙥𝙚𝙧𝙖𝙣 𝙦𝙪𝙚 𝙩𝙚𝙧𝙢𝙞𝙣𝙚 𝙡𝙖 𝙄𝙣𝙨𝙩𝙖𝙡𝙖𝙘𝙞𝙤𝙣.
    6-. 𝘾𝙪𝙖𝙣𝙙𝙤 𝙩𝙚𝙧𝙢𝙞𝙣𝙚 𝙡𝙖 𝙄𝙣𝙨𝙩𝙖𝙡𝙖𝙘𝙞𝙤𝙣 𝙡𝙚𝙨 𝙨𝙖𝙡𝙙𝙧𝙖 𝙪𝙣 𝙧𝙚𝙘𝙪𝙖𝙙𝙧𝙤 𝙦𝙪𝙚 𝙙𝙞𝙧𝙖 𝘼𝙣𝙖𝙡𝙞𝙯𝙖𝙧 𝘼𝙝𝙤𝙧𝙖. 𝙇𝙚 𝙙𝙖𝙣 𝙘𝙡𝙞𝙘𝙠 𝙞𝙯𝙦𝙪𝙞𝙚𝙧𝙙𝙤.
    7-. 𝘾𝙪𝙖𝙣𝙙𝙤 𝙚𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖 𝙩𝙚𝙧𝙢𝙞𝙣𝙚 𝙙𝙚 𝙖𝙣𝙖𝙡𝙞𝙯𝙖𝙧, 𝙖𝙪𝙩𝙤𝙢𝙖𝙩𝙞𝙘𝙖𝙢𝙚𝙣𝙩𝙚 𝙩𝙚 𝙙𝙞𝙧𝙖 𝙘𝙪𝙖𝙡𝙚𝙨 𝙨𝙤𝙣 𝙡𝙤𝙨 𝙘𝙤𝙣𝙩𝙧𝙤𝙡𝙖𝙙𝙤𝙧𝙚𝙨 𝙦𝙪𝙚 𝙩𝙚 𝙛𝙖𝙡𝙩𝙖𝙣 𝙥𝙤𝙧 𝙖𝙘𝙩𝙪𝙖𝙡𝙞𝙯𝙖𝙧
    8-. 𝙇𝙚 𝙙𝙖𝙣 𝙖 𝘼𝙘𝙩𝙪𝙖𝙡𝙞𝙯𝙖𝙧 𝘼𝙝𝙤𝙧𝙖 𝙮 𝙪𝙣𝙖 𝙫𝙚𝙯 𝙩𝙚𝙧𝙢𝙞𝙣𝙚 𝙚𝙡 𝙥𝙧𝙤𝙘𝙚𝙨𝙤 𝙧𝙚𝙞𝙣𝙞𝙘𝙞𝙖𝙣 𝙚𝙡 𝙘𝙤𝙢𝙥𝙪𝙩𝙖𝙙𝙤𝙧.
     
    [𝘼𝙙𝙫𝙖𝙣𝙘𝙚 𝙎𝙮𝙨𝙩𝙚𝙢 𝘾𝙖𝙧𝙚] 𝙀𝙨𝙩𝙚 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖 𝙩𝙞𝙚𝙣𝙚 𝙡𝙖 𝙢𝙞𝙨𝙢𝙖 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙘𝙞𝙤𝙣 𝙦𝙪𝙚 𝙚𝙡 𝘿𝙧𝙞𝙫𝙚𝙧 𝘽𝙤𝙤𝙨𝙩𝙚𝙧
    1-. 𝘿𝙚𝙨𝙘𝙖𝙧𝙜𝙖𝙣 𝙚𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖
    2-. 𝘾𝙪𝙖𝙣𝙙𝙤 𝙡𝙤 𝙙𝙚𝙨𝙘𝙖𝙧𝙜𝙪𝙚𝙣 𝙚𝙟𝙚𝙘𝙪𝙩𝙖𝙣 𝙚𝙡 𝙞𝙣𝙨𝙩𝙖𝙡𝙖𝙙𝙤𝙧.
    3-. 𝙎𝙚 𝙤𝙨 𝙖𝙥𝙖𝙧𝙚𝙘𝙚𝙧𝙖 𝙪𝙣𝙖 𝙑𝙚𝙣𝙩𝙖𝙣𝙖 𝙘𝙤𝙣 𝙡𝙖 𝙤𝙥𝙘𝙞𝙤𝙣 𝙙𝙚 𝙄𝙣𝙨𝙩𝙖𝙡𝙖𝙧. 𝙋𝙞𝙣𝙘𝙝𝙖𝙣 𝙚𝙣 𝙚𝙨𝙖 𝙤𝙥𝙘𝙞𝙤𝙣
    5-. 𝙀𝙨𝙥𝙚𝙧𝙖𝙣 𝙦𝙪𝙚 𝙩𝙚𝙧𝙢𝙞𝙣𝙚 𝙡𝙖 𝙄𝙣𝙨𝙩𝙖𝙡𝙖𝙘𝙞𝙤𝙣.
    6-. 𝘾𝙪𝙖𝙣𝙙𝙤 𝙩𝙚𝙧𝙢𝙞𝙣𝙚 𝙡𝙖 𝙄𝙣𝙨𝙩𝙖𝙡𝙖𝙘𝙞𝙤𝙣 𝙡𝙚𝙨 𝙨𝙖𝙡𝙙𝙧𝙖 𝙪𝙣 𝙧𝙚𝙘𝙪𝙖𝙙𝙧𝙤 𝙦𝙪𝙚 𝙙𝙞𝙧𝙖 𝙁𝙞𝙣𝙖𝙡𝙞𝙯𝙖𝙧. 𝙇𝙚 𝙙𝙖𝙣 𝘾𝙡𝙞𝙘𝙠 𝙄𝙯𝙦𝙪𝙞𝙚𝙧𝙙𝙤.
    7-. 𝘾𝙪𝙖𝙣𝙙𝙤 𝙡𝙚 𝙙𝙚𝙣 𝙖 𝙁𝙞𝙣𝙖𝙡𝙞𝙯𝙖𝙧 𝘼𝙪𝙩𝙤𝙢𝙖𝙩𝙞𝙘𝙖𝙢𝙚𝙣𝙩𝙚 𝙨𝙚 𝙡𝙚𝙨 𝙖𝙗𝙧𝙞𝙧𝙖 𝙪𝙣 𝙧𝙚𝙘𝙪𝙖𝙙𝙧𝙤 𝙘𝙤𝙣 𝙪𝙣𝙖 𝙤𝙥𝙘𝙞𝙤𝙣 𝙦𝙪𝙚 𝙙𝙞𝙘𝙚 𝘼𝙣𝙖𝙡𝙞𝙯𝙖𝙧. 𝙇𝙚 𝙥𝙪𝙡𝙨𝙖𝙣 𝙮 𝙚𝙨𝙥𝙚𝙧𝙖𝙣 𝙦𝙪𝙚 𝙚𝙡 𝙥𝙧𝙤𝙘𝙚𝙨𝙤 𝙩𝙚𝙧𝙢𝙞𝙣𝙚
    8-. 𝘾𝙪𝙖𝙣𝙙𝙤 𝙩𝙚𝙧𝙢𝙞𝙣𝙚 𝙚𝙡 𝙥𝙧𝙤𝙘𝙚𝙨𝙤 𝙚𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖 𝙖𝙪𝙩𝙤𝙢𝙖𝙩𝙞𝙘𝙖𝙢𝙚𝙣𝙩𝙚 𝙧𝙚𝙥𝙖𝙧𝙖𝙧𝙖 𝙩𝙤𝙙𝙤 𝙡𝙤 𝙦𝙪𝙚 𝙚𝙨𝙩𝙚 𝙙𝙖ñ𝙖𝙙𝙤 𝙖𝙨𝙞 𝙘𝙤𝙢𝙤 𝙡𝙤𝙨 𝙖𝙧𝙘𝙝𝙞𝙫𝙤𝙨 𝙗𝙖𝙨𝙪𝙧𝙖....𝙚𝙩𝙘
    9-. 𝙀𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖 𝙫𝙞𝙚𝙣𝙚 𝙘𝙤𝙣 𝙢𝙖𝙨 𝙤𝙥𝙘𝙞𝙤𝙣𝙚𝙨 𝙘𝙤𝙢𝙤 𝘼𝙘𝙩𝙞𝙫𝙖𝙧 𝙈𝙤𝙙𝙤 𝙅𝙪𝙚𝙜𝙤, 𝙇𝙞𝙗𝙚𝙧𝙖𝙧 𝙍𝙖𝙢, 𝙋𝙧𝙤𝙩𝙚𝙘𝙘𝙞𝙤𝙣 ....𝙚𝙩𝙘 𝙮𝙖 𝙥𝙤𝙙𝙧𝙖𝙣 𝙫𝙚𝙧𝙡𝙖𝙨 𝙚𝙣 𝙚𝙡 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖.
    𝘾𝙤𝙣 𝙚𝙨𝙩𝙤𝙨 3 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖𝙨 𝙩𝙚𝙣𝙙𝙧𝙖𝙣 𝙨𝙪 𝙘𝙤𝙢𝙥𝙪𝙩𝙖𝙙𝙤𝙧𝙖 𝙩𝙖𝙣𝙩𝙤 𝙨𝙚𝙜𝙪𝙧𝙖 𝙖𝙨𝙞 𝙘𝙤𝙢𝙤 𝙊𝙥𝙩𝙞𝙢𝙞𝙯𝙖𝙙𝙖.
     
    𝟭-. 𝗢𝗿𝗱𝗲𝗻𝗮𝗱𝗼𝗿 𝗰𝗼𝗻 𝗪𝗶𝗻𝗱𝗼𝘄𝘀 𝟭𝟬:
    𝗣𝗮𝗿𝗮 𝗽𝗿𝗲𝗽𝗮𝗿𝗮𝗿 𝘂𝗻 𝗼𝗿𝗱𝗲𝗻𝗮𝗱𝗼𝗿 𝗰𝗼𝗻 𝗪𝗶𝗻𝗱𝗼𝘄𝘀 𝟭𝟬 𝗽𝗿𝗶𝗺𝗲𝗿𝗼 𝗱𝗲 𝘁𝗼𝗱𝗼 𝗼𝘀 𝗮𝗰𝗼𝗻𝘀𝗲𝗷𝗼 𝗾𝘂𝗲 𝗱𝗲𝘀𝗰𝗮𝗿𝗴𝘂𝗲𝗻 𝗹𝗼𝘀 𝘀𝗶𝗴𝘂𝗶𝗲𝗻𝘁𝗲𝘀 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮𝘀 𝗾𝘂𝗲 𝗼𝘀 𝗱𝗲𝗷𝗮𝗿𝗲 𝗮𝗰𝗮 𝗮𝗯𝗮𝗷𝗼.
    𝗔𝗻𝘁𝗲𝘀 𝗱𝗲 𝗻𝗮𝗱𝗮 𝘀𝗶 𝗿𝗲𝗰𝗶𝗲𝗻 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝘀𝘁𝗲𝘀 𝗪𝗶𝗻𝗱𝗼𝘄𝘀 𝟭𝟬 𝗿𝗲𝗰𝘂𝗲𝗿𝗱𝗮 𝗮𝗰𝘁𝘂𝗮𝗹𝗶𝘇𝗮𝗿 𝗹𝗼𝘀 𝗱𝗿𝗶𝘃𝗲𝗿𝘀 𝗺𝗲𝗱𝗶𝗮𝗻𝘁𝗲 𝗹𝗮 𝗰𝗼𝗻𝗳𝗶𝗴𝘂𝗿𝗮𝗰𝗶𝗼𝗻 𝗱𝗲 𝗪𝗶𝗻𝗱𝗼𝘄𝘀 𝟭𝟬 
    [𝗖𝗼𝗻𝗳𝗶𝗴𝘂𝗿𝗮𝗰𝗶𝗼𝗻/𝗔𝗰𝘁𝘂𝗮𝗹𝗶𝘇𝗮𝗰𝗶𝗼𝗻 𝘆 𝗦𝗲𝗴𝘂𝗿𝗶𝗱𝗮𝗱/𝗪𝗶𝗻𝗱𝗼𝘄𝘀 𝗨𝗽𝗱𝗮𝘁𝗲/]
    𝗦𝗶 𝘆𝗮 𝗮𝘀 𝗮𝗰𝘁𝘂𝗮𝗹𝗶𝘇𝗮𝗱𝗼 𝘁𝗼𝗱𝗼 𝗺𝗲𝗱𝗶𝗮𝗻𝘁𝗲 𝗹𝗮 𝗰𝗼𝗻𝗳𝗶𝗴𝘂𝗿𝗮𝗰𝗶𝗼𝗻 𝗱𝗲 𝗪𝗶𝗻𝗱𝗼𝘄𝘀 𝟭𝟬 𝗽𝗿𝗼𝗰𝗲𝗱𝗲𝗿𝗲𝗺𝗼𝘀 𝗮 𝗹𝗮 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻 𝗱𝗲 𝗹𝗼𝘀 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮𝘀
    𝗟𝗮 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻 𝗱𝗲𝗹 𝗔𝗻𝘁𝗶 𝗩𝗶𝗿𝘂𝘀 𝘆𝗮 𝗾𝘂𝗲 𝗪𝗶𝗻𝗱𝗼𝘄𝘀 𝟭𝟬 𝘃𝗶𝗲𝗻𝗲 𝗽𝗼𝗿 𝗱𝗲𝗳𝗲𝗰𝘁𝗼 𝗰𝗼𝗻 𝗲𝗹 𝗔𝗻𝘁𝗶 𝗩𝗶𝗿𝘂𝘀 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗱𝗼.
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.[𝗘𝘀𝘁𝗲 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝗲𝘀 𝗲𝗹 𝗗𝗶𝗿𝗲𝗰𝘁𝘅 𝟭𝟮(𝗘𝗹 𝗰𝘂𝗮𝗹 𝘀𝗲 𝗲𝗻𝗰𝗮𝗿𝗴𝗮𝗿𝗮 𝗱𝗲 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗿𝘁𝗲 𝘁𝗼𝗱𝗮𝘀 𝗹𝗮𝘀 𝗹𝗶𝗯𝗿𝗲𝗿𝗶𝗮𝘀 𝗺𝘂𝗹𝘁𝗶𝗺𝗲𝗱𝗶𝗮 𝗦𝗢𝗟𝗢 𝗗𝗜𝗦𝗣𝗢𝗡𝗜𝗕𝗟𝗘 𝗣𝗔𝗥𝗔 𝗪𝗜𝗡𝗗𝗢𝗪𝗦 𝟭𝟬)]
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. [𝙀𝙨𝙩𝙚 𝙥𝙧𝙤𝙜𝙧𝙖𝙢𝙖𝙨 𝙚𝙨 𝙚𝙡 𝘿𝙧𝙞𝙫𝙚𝙧 𝘽𝙤𝙤𝙨𝙩𝙚𝙧(𝙀𝙡 𝙘𝙪𝙖𝙡 𝙨𝙚 𝙚𝙣𝙘𝙖𝙧𝙜𝙖𝙧𝙖 𝙙𝙚 𝙖𝙘𝙩𝙪𝙖𝙡𝙞𝙯𝙖𝙧 𝙩𝙤𝙙𝙤𝙨 𝙡𝙤𝙨 𝙙𝙧𝙞𝙫𝙚𝙧𝙨 𝙖𝙪𝙩𝙤𝙢𝙖𝙩𝙞𝙘𝙖𝙢𝙚𝙣𝙩𝙚 𝙙𝙚 𝙫𝙪𝙚𝙨𝙩𝙧𝙤 𝙥𝙘)]
    Debes iniciar sesión para ver el contenido del enlace en esta publicación. [𝙀𝙨𝙩𝙚 𝙋𝙧𝙤𝙜𝙧𝙖𝙢𝙖 𝙚𝙨 𝙚𝙡 𝘼𝙙𝙫𝙖𝙣𝙘𝙚 𝙎𝙮𝙨𝙩𝙚𝙢 𝘾𝙖𝙧𝙚(𝙀𝙡 𝙘𝙪𝙖𝙡 𝙨𝙚 𝙚𝙣𝙘𝙖𝙧𝙜𝙖 𝙙𝙚 𝙢𝙖𝙣𝙩𝙚𝙣𝙚𝙧 𝙫𝙪𝙚𝙨𝙩𝙧𝙤 𝙥𝙘 𝙤𝙥𝙩𝙞𝙢𝙞𝙯𝙖𝙙𝙤 𝙖𝙡 𝙢𝙖𝙭𝙞𝙢𝙤)]
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.[𝗘𝘀𝘁𝗲 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝗲𝘀 𝗲𝗹 𝗖𝗿𝗶𝘀𝘁𝗮𝗹 𝗗𝗶𝘀𝗸 𝗜𝗻𝗳𝗼(𝗦𝗲 𝗲𝗻𝗰𝗮𝗿𝗴𝗮 𝗱𝗲 𝗺𝗼𝘀𝘁𝗿𝗮𝗿𝘁𝗲 𝗲𝗹 𝗲𝘀𝘁𝗮𝗱𝗼 𝗱𝗲 𝘀𝗮𝗹𝘂𝗱 𝗱𝗲 𝘁𝘂 𝗱𝗶𝘀𝗰𝗼 𝗱𝘂𝗿𝗼 𝗮𝘀𝗶 𝗰𝗼𝗺𝗼 𝗹𝗮 𝘁𝗲𝗺𝗽𝗲𝗿𝗮𝘁𝘂𝗿𝗮 𝘆 𝘀𝗲𝗰𝘁𝗼𝗿𝗲𝘀 𝗾𝘂𝗲 𝘀𝗲 𝗲𝗻𝗰𝘂𝗲𝗻𝘁𝗿𝗲𝗻 𝗱𝗮ñ𝗮𝗱𝗼𝘀)]  
    𝗖𝗼𝗺𝗼 𝗜𝗻𝘀𝘁𝗮𝗹𝗼 𝗰𝗮𝗱𝗮 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮, 𝘆 𝗰𝗼𝗺𝗼 𝗳𝘂𝗻𝗰𝗶𝗼𝗻𝗮𝗻]
     
    [𝗗𝗶𝗿𝗲𝗰𝘁𝘅 𝟭𝟮]
    𝟭-. 𝗗𝗲𝘀𝗰𝗮𝗿𝗴𝗮𝗻 𝗲𝗹 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝗱𝗲 𝗹𝗮 𝗽𝗮𝗴𝗶𝗻𝗮.
    𝟮-. 𝗖𝘂𝗮𝗻𝗱𝗼 𝗱𝗲𝘀𝗰𝗮𝗿𝗴𝘂𝗲𝗻 𝗲𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝗘𝗷𝗲𝗰𝘂𝘁𝗮𝗻 𝗲𝗹 𝗜𝗻𝘀𝘁𝗮𝗹𝗮𝗱𝗼𝗿
    𝟯-. 𝗗𝗲𝘀𝗽𝘂𝗲𝘀 𝗱𝗲 𝗘𝗷𝗲𝗰𝘂𝘁𝗮𝗿 𝗲𝗹 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗱𝗼𝗿 𝘀𝗶𝗴𝘂𝗲𝗻 𝗹𝗼𝘀 𝗽𝗮𝘀𝗼 𝗱𝗲 𝗹𝗮 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻
    𝟰-. 𝗨𝗻𝗮 𝘃𝗲𝘇 𝗵𝗮𝘆𝗮 𝘁𝗲𝗿𝗺𝗶𝗻𝗮𝗱𝗼 𝗹𝗮 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻 𝗰𝗶𝗲𝗿𝗿𝗮𝗻 𝗹𝗮 𝘃𝗲𝗻𝘁𝗮𝗻𝗮 𝘆 𝗿𝗲𝗶𝗻𝗶𝗰𝗶𝗮𝗻 𝗹𝗮 𝗰𝗼𝗺𝗽𝘂𝘁𝗮𝗱𝗼𝗿𝗮.
     
    [𝗖𝗿𝗶𝘀𝘁𝗮𝗹 𝗗𝗶𝘀𝗸 𝗜𝗻𝗳𝗼]
    𝟭-. 𝗗𝗲𝘀𝗰𝗮𝗿𝗴𝗮𝗻 𝗲𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝗱𝗲𝘀𝗱𝗲 𝗹𝗮 𝗽𝗮𝗴𝗶𝗻𝗮 𝗼𝗳𝗶𝗰𝗶𝗮𝗹.
    𝟮-. 𝗘𝗷𝗲𝗰𝘂𝘁𝗮𝗻 𝗲𝗹 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗱𝗼𝗿 𝘆 𝘀𝗶𝗴𝘂𝗲𝗻 𝗹𝗼𝘀 𝗽𝗮𝘀𝗼𝘀 𝗱𝗲 𝗹𝗮 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻.
    𝟯-. 𝗖𝘂𝗮𝗻𝗱𝗼 𝗹𝗮 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻 𝘁𝗲𝗿𝗺𝗶𝗻𝗲 𝗮𝗯𝗿𝗲𝗻 𝗲𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝘆 𝗼𝘀 𝘀𝗮𝗹𝗱𝗿𝗮 𝘂𝗻𝗮 𝘃𝗲𝗻𝘁𝗮𝗻𝗮 𝗲𝗹 𝗰𝘂𝗮𝗹 𝗼𝘀 𝗺𝗼𝘀𝘁𝗿𝗮𝗿𝗮 𝗲𝗹 𝗲𝘀𝘁𝗮𝗱𝗼 𝗱𝗲 𝘀𝗮𝗹𝘂𝗱
    𝟰-. 𝗔𝘀𝗶 𝗰𝗼𝗺𝗼 𝗹𝗼𝘀 𝘀𝗲𝗰𝘁𝗼𝗿𝗲𝘀 𝗾𝘂𝗲 𝘀𝗲 𝗲𝗻𝗰𝘂𝗲𝗻𝘁𝗿𝗲𝗻 𝗱𝗮ñ𝗮𝗱𝗼𝘀 𝗲𝗻 𝘃𝘂𝗲𝘀𝘁𝗿𝗼 𝗱𝗶𝘀𝗰𝗼 𝗱𝘂𝗿𝗼 𝗼 𝘁𝗲𝗺𝗽𝗲𝗿𝗮𝘁𝘂𝗿𝗮
     
    [𝗗𝗿𝗶𝘃𝗲𝗿 𝗕𝗼𝗼𝘀𝘁𝗲𝗿]
    𝟭-. 𝗗𝗲𝘀𝗰𝗮𝗿𝗴𝗮𝗻 𝗲𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮
    𝟮-. 𝗖𝘂𝗮𝗻𝗱𝗼 𝗹𝗼 𝗱𝗲𝘀𝗰𝗮𝗿𝗴𝘂𝗲𝗻 𝗲𝗷𝗲𝗰𝘂𝘁𝗮𝗻 𝗲𝗹 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗱𝗼𝗿.
    𝟯-. 𝗦𝗲 𝗼𝘀 𝗮𝗽𝗮𝗿𝗲𝗰𝗲𝗿𝗮 𝘂𝗻𝗮 𝗩𝗲𝗻𝘁𝗮𝗻𝗮 𝗰𝗼𝗻 𝗹𝗮 𝗼𝗽𝗰𝗶𝗼𝗻 𝗱𝗲 𝗜𝗻𝘀𝘁𝗮𝗹𝗮𝗿. 𝗣𝗶𝗻𝗰𝗵𝗮𝗻 𝗲𝗻 𝗲𝘀𝗮 𝗼𝗽𝗰𝗶𝗼𝗻
    𝟰-. 𝗘𝗻 𝗹𝗮 𝘀𝗶𝗴𝘂𝗶𝗲𝗻𝘁𝗲 𝗩𝗲𝗻𝘁𝗮𝗻𝗮 𝗼𝘀 𝗱𝗶𝗿𝗮 𝗾𝘂𝗲 𝘀𝗶 𝗱𝗲𝘀𝗲𝗮𝗻 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗿 𝗲𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝗔𝗱𝘃𝗮𝗻𝗰𝗲 𝗦𝘆𝘀𝘁𝗲𝗺𝗮 𝗖𝗮𝗿𝗲. 𝗟𝗲 𝗱𝗮𝗻 𝗮 𝗾𝘂𝗲 𝗻𝗼 𝘆 𝘀𝗶𝗴𝘂𝗶𝗲𝗻𝘁𝗲
    𝟱-. 𝗘𝘀𝗽𝗲𝗿𝗮𝗻 𝗾𝘂𝗲 𝘁𝗲𝗿𝗺𝗶𝗻𝗲 𝗹𝗮 𝗜𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻.
    𝟲-. 𝗖𝘂𝗮𝗻𝗱𝗼 𝘁𝗲𝗿𝗺𝗶𝗻𝗲 𝗹𝗮 𝗜𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻 𝗹𝗲𝘀 𝘀𝗮𝗹𝗱𝗿𝗮 𝘂𝗻 𝗿𝗲𝗰𝘂𝗮𝗱𝗿𝗼 𝗾𝘂𝗲 𝗱𝗶𝗿𝗮 𝗔𝗻𝗮𝗹𝗶𝘇𝗮𝗿 𝗔𝗵𝗼𝗿𝗮. 𝗟𝗲 𝗱𝗮𝗻 𝗰𝗹𝗶𝗰𝗸 𝗶𝘇𝗾𝘂𝗶𝗲𝗿𝗱𝗼.
    𝟳-. 𝗖𝘂𝗮𝗻𝗱𝗼 𝗲𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝘁𝗲𝗿𝗺𝗶𝗻𝗲 𝗱𝗲 𝗮𝗻𝗮𝗹𝗶𝘇𝗮𝗿, 𝗮𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝗰𝗮𝗺𝗲𝗻𝘁𝗲 𝘁𝗲 𝗱𝗶𝗿𝗮 𝗰𝘂𝗮𝗹𝗲𝘀 𝘀𝗼𝗻 𝗹𝗼𝘀 𝗰𝗼𝗻𝘁𝗿𝗼𝗹𝗮𝗱𝗼𝗿𝗲𝘀 𝗾𝘂𝗲 𝘁𝗲 𝗳𝗮𝗹𝘁𝗮𝗻 𝗽𝗼𝗿 𝗮𝗰𝘁𝘂𝗮𝗹𝗶𝘇𝗮𝗿
    𝟴-. 𝗟𝗲 𝗱𝗮𝗻 𝗮 𝗔𝗰𝘁𝘂𝗮𝗹𝗶𝘇𝗮𝗿 𝗔𝗵𝗼𝗿𝗮 𝘆 𝘂𝗻𝗮 𝘃𝗲𝘇 𝘁𝗲𝗿𝗺𝗶𝗻𝗲 𝗲𝗹 𝗽𝗿𝗼𝗰𝗲𝘀𝗼 𝗿𝗲𝗶𝗻𝗶𝗰𝗶𝗮𝗻 𝗲𝗹 𝗰𝗼𝗺𝗽𝘂𝘁𝗮𝗱𝗼𝗿.
     
    [𝗔𝗱𝘃𝗮𝗻𝗰𝗲 𝗦𝘆𝘀𝘁𝗲𝗺 𝗖𝗮𝗿𝗲] 𝗘𝘀𝘁𝗲 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝘁𝗶𝗲𝗻𝗲 𝗹𝗮 𝗺𝗶𝘀𝗺𝗮 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻 𝗾𝘂𝗲 𝗲𝗹 𝗗𝗿𝗶𝘃𝗲𝗿 𝗕𝗼𝗼𝘀𝘁𝗲𝗿
    𝟭-. 𝗗𝗲𝘀𝗰𝗮𝗿𝗴𝗮𝗻 𝗲𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮
    𝟮-. 𝗖𝘂𝗮𝗻𝗱𝗼 𝗹𝗼 𝗱𝗲𝘀𝗰𝗮𝗿𝗴𝘂𝗲𝗻 𝗲𝗷𝗲𝗰𝘂𝘁𝗮𝗻 𝗲𝗹 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗱𝗼𝗿.
    𝟯-. 𝗦𝗲 𝗼𝘀 𝗮𝗽𝗮𝗿𝗲𝗰𝗲𝗿𝗮 𝘂𝗻𝗮 𝗩𝗲𝗻𝘁𝗮𝗻𝗮 𝗰𝗼𝗻 𝗹𝗮 𝗼𝗽𝗰𝗶𝗼𝗻 𝗱𝗲 𝗜𝗻𝘀𝘁𝗮𝗹𝗮𝗿. 𝗣𝗶𝗻𝗰𝗵𝗮𝗻 𝗲𝗻 𝗲𝘀𝗮 𝗼𝗽𝗰𝗶𝗼𝗻
    𝟱-. 𝗘𝘀𝗽𝗲𝗿𝗮𝗻 𝗾𝘂𝗲 𝘁𝗲𝗿𝗺𝗶𝗻𝗲 𝗹𝗮 𝗜𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻.
    𝟲-. 𝗖𝘂𝗮𝗻𝗱𝗼 𝘁𝗲𝗿𝗺𝗶𝗻𝗲 𝗹𝗮 𝗜𝗻𝘀𝘁𝗮𝗹𝗮𝗰𝗶𝗼𝗻 𝗹𝗲𝘀 𝘀𝗮𝗹𝗱𝗿𝗮 𝘂𝗻 𝗿𝗲𝗰𝘂𝗮𝗱𝗿𝗼 𝗾𝘂𝗲 𝗱𝗶𝗿𝗮 𝗙𝗶𝗻𝗮𝗹𝗶𝘇𝗮𝗿. 𝗟𝗲 𝗱𝗮𝗻 𝗖𝗹𝗶𝗰𝗸 𝗜𝘇𝗾𝘂𝗶𝗲𝗿𝗱𝗼.
    𝟳-. 𝗖𝘂𝗮𝗻𝗱𝗼 𝗹𝗲 𝗱𝗲𝗻 𝗮 𝗙𝗶𝗻𝗮𝗹𝗶𝘇𝗮𝗿 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝗰𝗮𝗺𝗲𝗻𝘁𝗲 𝘀𝗲 𝗹𝗲𝘀 𝗮𝗯𝗿𝗶𝗿𝗮 𝘂𝗻 𝗿𝗲𝗰𝘂𝗮𝗱𝗿𝗼 𝗰𝗼𝗻 𝘂𝗻𝗮 𝗼𝗽𝗰𝗶𝗼𝗻 𝗾𝘂𝗲 𝗱𝗶𝗰𝗲 𝗔𝗻𝗮𝗹𝗶𝘇𝗮𝗿. 𝗟𝗲 𝗽𝘂𝗹𝘀𝗮𝗻 𝘆 𝗲𝘀𝗽𝗲𝗿𝗮𝗻 𝗾𝘂𝗲 𝗲𝗹 𝗽𝗿𝗼𝗰𝗲𝘀𝗼 𝘁𝗲𝗿𝗺𝗶𝗻𝗲
    𝟴-. 𝗖𝘂𝗮𝗻𝗱𝗼 𝘁𝗲𝗿𝗺𝗶𝗻𝗲 𝗲𝗹 𝗽𝗿𝗼𝗰𝗲𝘀𝗼 𝗲𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝗮𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝗰𝗮𝗺𝗲𝗻𝘁𝗲 𝗿𝗲𝗽𝗮𝗿𝗮𝗿𝗮 𝘁𝗼𝗱𝗼 𝗹𝗼 𝗾𝘂𝗲 𝗲𝘀𝘁𝗲 𝗱𝗮ñ𝗮𝗱𝗼 𝗮𝘀𝗶 𝗰𝗼𝗺𝗼 𝗹𝗼𝘀 𝗮𝗿𝗰𝗵𝗶𝘃𝗼𝘀 𝗯𝗮𝘀𝘂𝗿𝗮....𝗲𝘁𝗰. 𝗥𝗲𝗶𝗻𝗶𝗰𝗶𝗲𝗻 𝗲𝗹 𝗽𝗰
    𝟵-. 𝗘𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮 𝘃𝗶𝗲𝗻𝗲 𝗰𝗼𝗻 𝗺𝗮𝘀 𝗼𝗽𝗰𝗶𝗼𝗻𝗲𝘀 𝗰𝗼𝗺𝗼 𝗔𝗰𝘁𝗶𝘃𝗮𝗿 𝗠𝗼𝗱𝗼 𝗝𝘂𝗲𝗴𝗼, 𝗟𝗶𝗯𝗲𝗿𝗮𝗿 𝗥𝗮𝗺, 𝗣𝗿𝗼𝘁𝗲𝗰𝗰𝗶𝗼𝗻 ....𝗲𝘁𝗰 𝘆𝗮 𝗽𝗼𝗱𝗿𝗮𝗻 𝘃𝗲𝗿𝗹𝗮𝘀 𝗲𝗻 𝗲𝗹 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮.
     
    𝗖𝗼𝗻 𝗲𝘀𝘁𝗼𝘀 𝟯 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮𝘀 𝘁𝗲𝗻𝗱𝗿𝗮𝗻 𝘀𝘂 𝗰𝗼𝗺𝗽𝘂𝘁𝗮𝗱𝗼𝗿𝗮 𝘁𝗮𝗻𝘁𝗼 𝘀𝗲𝗴𝘂𝗿𝗮 𝗮𝘀𝗶 𝗰𝗼𝗺𝗼 𝗢𝗽𝘁𝗶𝗺𝗶𝘇𝗮𝗱𝗮.
    𝗘𝘀𝘁𝗼 𝗲𝘀 𝗽𝗼𝗿 𝗲𝗹 𝗺𝗼𝗺𝗲𝗻𝘁𝗼 𝗹𝗼 𝗾𝘂𝗲 𝗼𝘀 𝗮𝗰𝗼𝗻𝘀𝗲𝗷𝗼 𝗶𝗻𝘀𝘁𝗮𝗹𝗮𝗿 𝗲𝗻 𝘀𝘂𝘀 𝗰𝗼𝗺𝗽𝘂𝘁𝗮𝗱𝗼𝗿𝗮𝘀. 𝗠𝗮𝘀 𝗮𝗱𝗲𝗹𝗮𝗻𝘁𝗲 𝗶𝗿𝗲 𝗮𝗰𝘁𝘂𝗮𝗹𝗶𝘇𝗮𝗻𝗱𝗼 𝗲𝗹 𝗽𝗼𝘀𝘁 𝗰𝗼𝗻 𝗻𝘂𝗲𝘃𝗼𝘀 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝗮𝘀 𝗮𝘀𝗶 𝗰𝗼𝗺𝗼 𝗰𝗼𝗻 𝗿𝗲𝗰𝗼𝗺𝗲𝗻𝗱𝗮𝗰𝗶𝗼𝗻𝗲𝘀 𝗽𝗮𝗿𝗮 𝗺𝗮𝘁𝗲𝗻𝗲𝗿 𝘃𝘂𝗲𝘀𝘁𝗿𝗼 𝗽𝗰
    𝗟𝗶𝗯𝗿𝗲 𝗱𝗲 𝗩𝗶𝗿𝘂𝘀 𝗮𝗹 𝗶𝗴𝘂𝗮𝗹 𝗾𝘂𝗲 𝗢𝗽𝘁𝗶𝗺𝗶𝘇𝗮𝗱𝗼 𝗮𝗹 𝗺𝗮𝘅𝗶𝗺𝗼
     
    𝗦𝗶 𝘁𝗲𝗻𝗲𝗶𝘀 𝗮𝗹𝗴𝘂𝗻𝗮 𝗱𝘂𝗱𝗮 𝗼 𝗽𝗿𝗼𝗯𝗹𝗲𝗺𝗮 𝗽𝗼𝗱𝗲𝗶𝘀 𝗰𝗼𝗻𝘁𝗮𝗰𝘁𝗮𝗿𝗺𝗲 𝗮 𝗺𝗶 𝗱𝗶𝘀𝗰𝗼𝗿𝗱
    𝗘𝘀𝗽𝗲𝗿𝗼 𝗾𝘂𝗲 𝗼𝘀 𝘀𝗶𝗿𝘃𝗮 𝗹𝗮 𝗴𝘂𝗶𝗮 𝗮𝘂𝗻𝗾𝘂𝗲 𝗻𝗼 𝘁𝗲𝗻𝗴𝗮 𝗻𝗮𝗱𝗮 𝗾𝘂𝗲 𝘃𝗲𝗿 𝗰𝗼𝗻 𝗺𝗲𝘁𝗶𝗻𝟮 𝘅𝗗
    𝗠𝗶 𝗱𝗶𝘀𝗰𝗼𝗿𝗱 𝗲𝘀: [𝗗𝗘𝗩]𝗔𝘀𝘁𝗮𝗿𝗼𝘁𝗵#𝟴𝟯𝟵𝟳
  8. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in IMPLEMENTACION DE ALAS MSE O TAMBIEN LLAMADAS 3D   
    Buenos dias zoneros hoy os traigo un mini tutorial para implementar alas mse o tambien llamada alas 3D
    El tutorial es bastante sencillo por lo cual no es necesario ser un experto en desarrollo ni tampoco entender demasiado sobre c++
     
    Bueno antes de nada aconsejo hacer copia de seguridad de los archivos que vayamos a modificar (En el caso de que lo cerremos sin querer y no podramos revertir los cambios que hemos realizado)
     
    Primero abrimos nuestro instancebase.cpp que se encuentra en la ruta Userinterface y buscamos la siguiente linea
     
            __EffectContainer_AttachEffect(m_dwAcceEffect);
        }
     
    Recuerden que si no la encuentran busquenla asi 
     
            __EffectContainer_AttachEffect(m_dwSashEffect);
        }
     
    Cuando la encuentren agregan encima de esa linea lo siguiente
     
    #ifdef ENABLE_WINGS_EFFECT
        if (dwAcce == 86065) ////////////////////////// Aca va el vnum de la estola o ala que deseas implementar y no existe
        {
            fSpecular += 35;
            m_dwAcceEffect = EFFECT_REFINED + EFFECT_WINGS_NEWS1;
            __EffectContainer_AttachEffect(m_dwAcceEffect);
    #endif
     
    Una vez hecho guardamos y pasamos a nuestro archivo instancebase.h que se encuentra en la misma ruta que el instancebase.cpp
     
    Cuando estemos dentro del archivo buscamos la linea 
     
    #ifdef ENABLE_ACCE_SYSTEM
                EFFECT_ACCE,
    #endif
     
    O
     
    #ifdef ENABLE_SASH_SYSTEM
                EFFECT_SASH,
    #endif
     
    Y debajo agregamos
     
    #ifdef ENABLE_WINGS_EFFECT
                EFFECT_WINGS_NEWS1 = 201,
                EFFECT_WINGS_NEWS2 = 202,
    #endif
     
    /////////// Recuerden que estos numeros seran los que se agreguen en el playersettingmodule.py del cliente revisen que no esten repetidos ( Si lo estan simplemente cambienlos por unos que no se repitan
     
    Luego de que la agreguen cierran el archivo y abren el Locale_inc.h que esta dentro de la misma carpeta y agregan el define y guardan
     
    #define ENABLE_WINGS_EFFECT
     
    Despues nos vamos al archivo PythonApplicationModule.cpp y agregan la siguiente linea antes del  }
     
    Tambien pueden buscar PyModule_AddIntConstant y agregar debajo lo siguiente
     
     
    #ifdef ENABLE_WINGS_EFFECT
        PyModule_AddIntConstant(poModule, "ENABLE_EFFECT_WINGS_NEW",    1);
    #else
        PyModule_AddIntConstant(poModule, "ENABLE_EFFECT_WINGS_NEW",    0);
    #endif
     
    Cuando tengan listo todos los archivos guardan y compilan el binario (Si lo hicieron como les explique no deberian de tener ningun error) "Siempre revisen las tabulaciones"
     
    Ahora pasamos a la parte del cliente. Para ello vamos a nuestro root y buscamos el archivo playersettingmodule.py y buscan la siguiente linea
     
    if app.ENABLE_ACCE_SYSTEM:
            chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED + 22, "Bip01", "d:/ymir work/pc/common/effect/armor/acc_01.mse")
     
    O
     
    if app.ENABLE_SASH_SYSTEM:
            chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED + 22, "Bip01", "d:/ymir work/pc/common/effect/armor/acc_01.mse")
     
    Despues de esa linea agregan lo siguiente
     
        if app.ENABLE_WINGS_EFFECT:
            chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED + 23, "Bip01", "d:/ymir work/item/weapon/Ksjeu_Anim/Ksjeu_Wings/ksjeu_wings_set8/ksjeu_wings_set8.mse")
            chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED + 24, "Bip01", "d:/ymir work/effect/wings/wings_kazu.mse")
     
    Asegurate que el numero 23 o 24 coincidan con los que agregaron en el binario y importante es que no se repitan con ninguno anterior
     
    "Bip01"
     
    El Bip01 siempre es el que ubica la posicion de las alas (Si os sale en la muñeca o en la rodilla basta con que lo remplacen con "Bip01 Spine02" o viceversa
     
    "d:/ymir work/item/weapon/Ksjeu_Anim/Ksjeu_Wings/ksjeu_wings_set8/ksjeu_wings_set8.mse")
     
    Aca va la ruta de nuestro archivo mse. Recuerden revisar donde hace el llamado el mde para que no le salgan con errores.
     
    Para ellos le dan click derecho al archivo mde y editan con block de notas o notepad y hay veran cual es su ruta
     
    Ya una vez hecho todo lo anterior deberian de funcionar correctamente las alas sin ningun tipo de error
     
    Aca os aportare unas alas para que las implementen y me cuenten como les fue. Un saludo
     
    Alas: 
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    EDIT: Publico foto de unas alas implementadas con el mismo codigo
     
    Tambien quiero abreviar que si quieren implementar mas simplemente pueden agregar nuevas lineas
    #ifdef ENABLE_WINGS_EFFECT
                EFFECT_WINGS_NEWS1 = 201,
                EFFECT_WINGS_NEWS2 = 202,
                EFFECT_WINGS_NEWS3 = 203, 
                EFFECT_WINGS_NEWS4 = 204, 
                EFFECT_WINGS_NEWS5 = 205, 
                EFFECT_WINGS_NEWS6 = 206,
                EFFECT_WINGS_NEWS7 = 207,
    #endif
    INCLUYENDO LA PARTE DEL PLAYERSETTINGMODULE.PY

    Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
  9. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Sistema de Rachas   
    Buenas tardes zoner@s:
     
    En esta ocasion os traigo el sistema de rachas completo para el cliente reparado por mi
     
    Primero abrimos nuestro root y buscamos nuestro archivo game.py
     
    Dentro del archivo buscamos lo siguiente # WEDDING "lover_login" : self.__LoginLover, "lover_logout" : self.__LogoutLover, "lover_near" : self.__LoverNear, "lover_far" : self.__LoverFar, "lover_divorce" : self.__LoverDivorce, "PlayMusic" : self.__PlayMusic, # END_OF_WEDDING Debajo de esta linea agregamos lo siguiente #SISTEMA_RACHAS "Showmedallas_gui" : self.__showmedallas_gui, "Hidemedallas_gui" : self.__hidemedallas_gui, "muertes" : self.__muertes, "primera_muerte" : self.__primera_muerte, "doble_muerte" : self.__doble_muerte, "triple_muerte" : self.__triple_muerte, "exterminio" : self.__exterminio, "muertacular" : self.__muertacular, "bestialidad" : self.__bestialidad, "salvajada" : self.__salvajada, "catastrofe" : self.__catastrofe, "apocalipsis" : self.__apocalipsis, "lluvia_muertos" : self.__lluvia_muertos, "super_increible" : self.__super_increible, #END_SISTEMA_RACHAS Quedando asi # WEDDING "lover_login" : self.__LoginLover, "lover_logout" : self.__LogoutLover, "lover_near" : self.__LoverNear, "lover_far" : self.__LoverFar, "lover_divorce" : self.__LoverDivorce, "PlayMusic" : self.__PlayMusic, # END_OF_WEDDING #SISTEMA_RACHAS "Showmedallas_gui" : self.__showmedallas_gui, "Hidemedallas_gui" : self.__hidemedallas_gui, "muertes" : self.__muertes, "primera_muerte" : self.__primera_muerte, "doble_muerte" : self.__doble_muerte, "triple_muerte" : self.__triple_muerte, "exterminio" : self.__exterminio, "muertacular" : self.__muertacular, "bestialidad" : self.__bestialidad, "salvajada" : self.__salvajada, "catastrofe" : self.__catastrofe, "apocalipsis" : self.__apocalipsis, "lluvia_muertos" : self.__lluvia_muertos, "super_increible" : self.__super_increible, #END_SISTEMA_RACHAS  
    Dentro del mismo archivo buscamos lo siguiente: def __InGameShop_Show(self, url): if constinfo.IN_GAME_SHOP_ENABLE: self.interface.OpenWebWindow(url) Una vez encontrado agregamos debajo #SISTEMA_RACHAS def __primera_muerte(self): self.primera_muerte.Show() snd.PlaySound("sound/ui/1_muerte.wav") net.SendChatPacket("(1_muerte)") def __doble_muerte(self): self.doble_muerte.Show() snd.PlaySound("sound/ui/doble_muerte.wav") net.SendChatPacket("(doble_muerte)") def __triple_muerte(self): self.triple_muerte.Show() snd.PlaySound("sound/ui/triple_muerte.wav") net.SendChatPacket("(triple_muerte)") def __exterminio(self): self.exterminio.Show() snd.PlaySound("sound/ui/exterminio.wav") net.SendChatPacket("(exterminio)") def __muertacular(self): self.muertacular.Show() snd.PlaySound("sound/ui/muertacular.wav") net.SendChatPacket("(muertacular)") def __bestialidad(self): self.bestialidad.Show() snd.PlaySound("sound/ui/bestialidad.wav") net.SendChatPacket("(bestialidad)") def __salvajada(self): self.salvajada.Show() snd.PlaySound("sound/ui/salvajada.wav") net.SendChatPacket("(salvajada)") def __catastrofe(self): self.catastrofe.Show() snd.PlaySound("sound/ui/catastrofe.wav") net.SendChatPacket("(catastrofe)") def __apocalipsis(self): self.apocalipsis.Show() snd.PlaySound("sound/ui/apocalipsis.wav") net.SendChatPacket("(apocalipsis)") def __lluvia_muertos(self): self.lluvia_muertos.Show() snd.PlaySound("sound/ui/lluvia_muertos.wav") net.SendChatPacket("(lluvia_muertos)") def __super_increible(self): self.super_increible.Show() snd.PlaySound("sound/ui/super_increible.wav") net.SendChatPacket("(super_increible)") def __hidemedallas_gui(self): self.Medallas_gui.Hide() self.primera_muerte.Hide() self.doble_muerte.Hide() self.triple_muerte.Hide() self.exterminio.Hide() self.muertacular.Hide() self.bestialidad.Hide() self.salvajada.Hide() self.catastrofe.Hide() self.apocalipsis.Hide() self.lluvia_muertos.Hide() self.super_increible.Hide() self.muertes.Hide() def __showmedallas_gui(self): self.Medallas_gui.Show() self.muertes.Show() def __muertes(self, muertes): self.muertes.SetText(muertes) #END_SISTEMA_RACHAS  
    Guardamos los cambios y vamos a nuestro archivo playersettingmodule.py dentro de la misma carpeta
     
    Dentro del playersettingmodule.py buscamos lo siguiente chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+19, "", "d:/ymir work/effect/etc/emoticon/siren.mse") net.RegisterEmoticonString("(emoji8)") Una vez encontrada la linea agregamos abajo lo siguiente chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+20, "", "d:/ymir work/effect/etc/buff/1_muerte.mse") net.RegisterEmoticonString("(1_muerte)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+21, "", "d:/ymir work/effect/etc/buff/doble_muerte.mse") net.RegisterEmoticonString("(doble_muerte)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+22, "", "d:/ymir work/effect/etc/buff/triple_muerte.mse") net.RegisterEmoticonString("(triple_muerte)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+23, "", "d:/ymir work/effect/etc/buff/exterminio.mse") net.RegisterEmoticonString("(exterminio)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+24, "", "d:/ymir work/effect/etc/buff/muertacular.mse") net.RegisterEmoticonString("(muertacular)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+25, "", "d:/ymir work/effect/etc/buff/bestialidad.mse") net.RegisterEmoticonString("(bestialidad)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+26, "", "d:/ymir work/effect/etc/buff/salvajada.mse") net.RegisterEmoticonString("(salvajada)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+27, "", "d:/ymir work/effect/etc/buff/catastrofe.mse") net.RegisterEmoticonString("(catastrofe)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+28, "", "d:/ymir work/effect/etc/buff/apocalipsis.mse") net.RegisterEmoticonString("(apocalipsis)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+29, "", "d:/ymir work/effect/etc/buff/lluvia_muertos.mse") net.RegisterEmoticonString("(lluvia_muertos)") chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+30, "", "d:/ymir work/effect/etc/buff/super_increible.mse") net.RegisterEmoticonString("(super_increible)") Recuerden que los numeros deberan de ser el ultimo al anterior y no se deben de repetir Una vez agregadas las nuevas lineas cerramos el archivo y compilamos nuestro root  
    Luego de compilar nuestro root metemos los siguientes archivos en sus rutas correspondientes y compilamos
     
    Y ya estaria listo el sistema, si lo hacen todo tal cual publique en la guia no deberian de tener problema y todo deberia de estar funcionando sin ningun problema
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Sonidos
     

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
     
    Creditos a Rinnegan
  10. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Aporte "Atuendos verano 2022"   
    Buenas zoneros, hoy os vengo a traer el set de Atlantis festive robe completo, por las 1000 visitas a mi perfil.
    El set viene con los efectos, tanto en las armas como armaduras, al igual que con las alas incluidas.
    Espero que lo disfruten
     
    Adjunto foto del set y los atuendos:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
    Link de descarga:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.  
  11. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in [PLECHITO]Set de pascua 2022   
    Buenos días zoneros y zoneras:

    Aca os comparto el set de pascua de plechito completo. El set viene con las armas, armaduras, peinados, alas y los efectos. Espero que lo disfruten


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Aca os dejo algunas fotos

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  12. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Atuendos de Halloween 2020 "Official"   
    Buenas noches comunidad, como llevo bastante tiempo sin contenido al foro al igual que pronto comienza halloween, hoy os traigo los set del oficial de halloween del 2020 ya que nos los he visto posteado al igual que todos los enlaces que estan publicos estan caidos.

    Espero que les sirva y le saquen probecho

    Adjunto foto del set:


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  13. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Atuendos Halloween [Plechito 2022]   
    Buenas tardes zoner@s, hoy os vengo a traer los atuendos de halloween de este 2022 de plechito


    Os dejare los primeros atuendos, luego mas tarde subire los otros

    El set viene con los atuendos, skin de armas, alas y iconos

    Link:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Foto del set:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  14. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Pack Pokemón [Pet y Npc]   
    Buenos dias zoner@s, hoy os traigo unos pets y una npc pokemon

    Espero que le saquen provecho!

    Link:


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  15. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Reparacion de texturas blancas en algunas npc   
    Buenos dias zoner@s:
     
    Hoy os vengo a explicar como reparar los errores en algunas npc que a la hora de alejarse su textura sale blanca. 
    Gyazo del error:

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.

    Sysser del error "Solamente suele aparecer abriendo el cliente en DEBUG": season1\npc\handaup\season1\npc\handaup\handaup.dds
    season1\npc\wondaim\season1\npc\wondaim\wondaim.dds

    "Aca mismo el error nos esta diciendo donde se encuentra el problema" Y es que no encuentra la textura dentro de la carpeta season1

    -.Para repararlo hacemos lo siguiente:

    1-. Abrimos nuestro npclist.txt y buscamos el vnum del npc el cual no esta dando el fallo "Casi siempre suele ser el mismo nombre de la carpeta" Que en este caso seria:
    handaup
    wondaim

    Dentro del npclist.txt, encontraran los siguientes nombres asi:

    20084    #season1/npc/chagirap/
    20086    #season1/npc/wondaim/
    20087    #season1/npc/handaup/
    20088    #season1/npc/visamun/
    20089    #season1/npc/jinmoo/
    20090    #season1/npc/samahi/
    20091     #season1/backchon
    20092    #season1/npc/ayuka/
    20093    #season1/npc/visal/
    20094    #season1/npc/yejin/
    20095    #season1/npc/sinseon/

    Bueno pues para repararlo es tan facil como eliminar lo que dice #season1/npc/
    Dejandolo tal que asi:
     
    20084    chagirap
    20086    wondaim
    20087    handaup
    20088    visamun
    20089    jinmoo
    20090    samahi
    20091    backchon
    20092    ayuka
    20093    visal
    20094    yejin
    20095    sinseon

    Despues guardan su archivo y compilan el root y ya estaria el problema solucionado.

    Todas las texturas que se vean blancas al alejar la camara del personaje, para repararlas deberan de hacer lo mismo que con estas. Abrir vuestro npclist, buscar el nombre de la npc que te da el problema y eliminar la ruta.

    Dejo Gyazo del problema solucionado haciendo lo que comente anteriormente:


    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
  16. Caca
    shootstart09 reacted to 𝗔𝗿𝗲𝘀 in Gran Aporte "SISTEMA SHINING COMPLETO"   
    Buenas noches zoneros y zoneras:
     
    En esta ocasion os traigo el sistema Shining completo y reparado para alas y skin de armas ya que veo que no esta publico en ningun foro. 
    Bueno los archivos que vamos a precisar son los siguientes:
     
    Parte del Src Client o Binario como lo conozcan:
    De la carpeta UserInterface:
    -.PythonAplication.cpp
    -.Locale_inc.h
    -.Instancebase.h
    -.Instancebase.cpp
    De la carpeta GameLib:
    -.ItemData.h
    -.ItemData.cpp
    -.ItemManager.cpp
    -.ItemManager.h
     
    Bueno sabiendo ya todo lo que vamos a precisar vamos con la guia
    UserInterface/PythonApplication.cpp Buscamos esta linea: snprintf(szSkillDescFileName, sizeof(szSkillDescFileName), "%s/skilldesc.txt", localePath); Damos un enter y pegamos la siguiente: #ifdef ENABLE_SHINING_SYSTEM snprintf(szShiningTable, sizeof(szShiningTable), "%s/shiningtable.txt", localePath); #endif Buscamos esta linea: char szItemDesc[256]; Damos un enter y pegamos la siguiente: #ifdef ENABLE_SHINING_SYSTEM char szShiningTable[256]; #endif Buscamos esta linea: if (!rkSkillMgr.RegisterSkillTable("data/common/skilltable.txt")) { TraceError("Error while loading skilltable.txt."); return false; } Damos un enter y pegamos la siguiente: #ifdef ENABLE_SHINING_SYSTEM if (!rkItemMgr.LoadShiningTable(szShiningTable)) { Tracenf("LoadLocaleData - LoadShiningTable(%s) Error", szShiningTable); } #endif  
    UserInterface/Locale_inc.h Aca agregaremos el siguiente define: #define ENABLE_SHINING_SYSTEM UserInterface/InstanceBase.h Aca buscamos la siguiente linea: DWORD m_armorRefineEffect; Pulsamos un enter y agregamos la siguiente linea: #ifdef ENABLE_SHINING_SYSTEM //2-Dimensions for Left & Right sided effects 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 Aca quiero aclarar una cosa: Si en vuestro sistema de estolas de envez de llevar acce lleva sash cambian la linea anterior por esta: #ifdef ENABLE_SHINING_SYSTEM //2-Dimensions for Left & Right sided effects DWORD m_weaponShiningEffects[2][CItemData::ITEM_SHINING_MAX_COUNT]; DWORD m_armorShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT]; DWORD m_sashShiningEffects[CItemData::ITEM_SHINING_MAX_COUNT]; #endif Ahora buscamos la siguiente linea: UINT __GetRefinedEffect(CItemData* pItem); Pulsamos un enter y agregamos la siguiente: #ifdef ENABLE_SHINING_SYSTEM void __GetShiningEffect(CItemData* pItem); void __ClearWeaponShiningEffect(bool detaching = true); void __ClearArmorShiningEffect(bool detaching = true); void __ClearAcceShiningEffect(bool detaching = true); void __AttachAcceShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01 Spine2"); void __AttachWeaponShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); void __AttachArmorShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); #endif Aca quiero explicar 1 cosa: Aca es lo mismo que en la anterior linea, si ustedes de envez de usar acce usan sash remplazan la linea por esta: #ifdef ENABLE_SHINING_SYSTEM void __GetShiningEffect(CItemData* pItem); void __ClearWeaponShiningEffect(bool detaching = true); void __ClearArmorShiningEffect(bool detaching = true); void __ClearSashShiningEffect(bool detaching = true); void __AttachSashShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01 Spine2"); void __AttachWeaponShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); void __AttachArmorShiningEffect(int effectIndex, const char* effectFileName, const char* boneName = "Bip01"); #endif UserInterface/InstanceBase.cpp Buscamos la siguiente funcion void CInstanceBase::SetArmor(DWORD dwArmor) { ... } Y dentro de esta funcion buscamos lo siguiente __GetRefinedEffect(pItemData); Pulsamos un enter y agregamos la siguiente linea: #ifdef ENABLE_SHINING_SYSTEM __GetShiningEffect(pItemData); #endif Quedando asi: __GetRefinedEffect(pItemData); #ifdef ENABLE_SHINING_SYSTEM __GetShiningEffect(pItemData); #endif Ahora dentro de la misma funcion buscamos la siguiente linea: __ClearArmorRefineEffect(); Pulsamos un enter y agregamos lo siguiente: #ifdef ENABLE_SHINING_SYSTEM __ClearArmorShiningEffect(); #endif UserInterface/InstanceBase.cpp Aca buscamos la siguiente funcion: void CInstanceBase::SetAcce "Recuerden que si su sistema de estolas no es acce lo cambian por Sash" { .... } Dentro de esta funcion buscamos lo siguiente: ClearAcceEffect(); Pulsamos un enter y agregamos la siguiente linea: #ifdef ENABLE_SHINING_SYSTEM __ClearAcceShiningEffect(); #endif Luego dentro de la misma funcion mas abajo buscamos lo siguiente: CItemManager::Instance().GetItemDataPointer(dwAcce, &pItemData); "Si no usan acce lo cambian por sash" Pulsamos enter y mas abajo pegamos lo siguiente: #ifdef ENABLE_SHINING_SYSTEM if (pItemData) __GetShiningEffect(pItemData); #endif Quedando asi: CItemManager::Instance().GetItemDataPointer(dwAcce, &pItemData); #ifdef ENABLE_SHINING_SYSTEM if (pItemData) __GetShiningEffect(pItemData); #endif m_GraphicThingInstance.AttachAcce(pItemData, fSpecular); UserInterface/InstanceBase.cpp "Ahora atentos en la siguiente funcion ya que si no lo hacen bien no funcionara en las armas ni en las skin" Buscamos la siguiente funcion: bool CInstanceBase::SetWeapon(DWORD eWeapon) { ... } Dentro de esta funcion buscamos la siguiente linea: __GetRefinedEffect(pItemData); Pulsamos un enter y agregamos lo siguiente: #ifdef ENABLE_SHINING_SYSTEM __GetShiningEffect(pItemData); #endif Ahora buscamos la siguiente linea: __ClearWeaponRefineEffect(); Pulsamos un enter y agregamos lo siguiente: #ifdef ENABLE_SHINING_SYSTEM __ClearWeaponShiningEffect(); #endif "AHORA MUY ATENTOS AL CODIGO QUE PONDRE EN PANTALLA DEBERAN DE HACERLO TAL CUAL LO DEJO ACA" "CON LOS CORCHETES TAL CUAL ESTAN EN LA FUNCION" MI CODIGO CItemData * pItemData; if (CItemManager::Instance().GetItemDataPointer(eWeapon, &pItemData)) { ---------------------------ESTOS CORCHETES DEBERAN DE AGREGARLOS TAL CUAL PUSE ACA __GetRefinedEffect(pItemData); #ifdef ENABLE_SHINING_SYSTEM __GetShiningEffect(pItemData); #endif } ---------------------------ESTOS CORCHETES DEBERAN DE AGREGARLOS TAL CUAL PUSE ACA else { ---------------------------ESTOS CORCHETES DEBERAN DE AGREGARLOS TAL CUAL PUSE ACA __ClearWeaponRefineEffect(); #ifdef ENABLE_SHINING_SYSTEM __ClearWeaponShiningEffect(); #endif } ---------------------------ESTOS CORCHETES DEBERAN DE AGREGARLOS TAL CUAL PUSE ACA return true; } UserInterface/Instancebase.cpp Ahora buscamos esta funcion void CInstanceBase::__Initialize() { ..... } Y dentro de ella vamos a buscar la siguiente linea: m_armorRefineEffect = 0; Pulsamos enter y agregamos la siguiente linea: #ifdef ENABLE_SHINING_SYSTEM __ClearWeaponShiningEffect(false); #endif UserInterface/InstanceBase.cpp Ahora agregamos todo este bloque completo al final del archivo #ifdef ENABLE_SHINING_SYSTEM void CInstanceBase::__GetShiningEffect(CItemData* pItem) { bool removeRefineEffect = true; CItemData::TItemShiningTable shiningTable = pItem->GetItemShiningTable(); if (pItem->GetType() == CItemData::ITEM_TYPE_WEAPON) { __ClearWeaponShiningEffect(); if (removeRefineEffect) { bool bRemove = false; for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) if (strcmp(shiningTable.szShinings[i], "")) bRemove = true; if (bRemove) __ClearWeaponRefineEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { #ifdef ENABLE_WOLFMAN_CHARACTER bool twoSidedWeapon = pItem->GetSubType() == CItemData::WEAPON_DAGGER || pItem->GetSubType() == CItemData::WEAPON_CLAW || (IsMountingHorse() && pItem->GetSubType() == CItemData::WEAPON_FAN); #else bool twoSidedWeapon = pItem->GetSubType() == CItemData::WEAPON_DAGGER || (IsMountingHorse() && pItem->GetSubType() == CItemData::WEAPON_FAN); #endif if (twoSidedWeapon) { __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON_LEFT"); } if (pItem->GetSubType() == CItemData::WEAPON_BOW) __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON_LEFT"); else __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON"); } } } #ifdef ENABLE_COSTUME_SYSTEM else if (pItem->GetType() == CItemData::ITEM_TYPE_COSTUME) { #ifdef ENABLE_ACCE_SYSTEM if (pItem->GetSubType() == CItemData::COSTUME_ACCE) { for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { __AttachAcceShiningEffect(i, shiningTable.szShinings[i], "Bip01 Spine2"); } } } #endif else if (pItem->GetSubType() == CItemData::COSTUME_BODY) { if (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_WEAPON_COSTUME_SYSTEM else if (pItem->GetSubType() == CItemData::COSTUME_WEAPON) { __ClearWeaponShiningEffect(); if (removeRefineEffect) { __ClearWeaponRefineEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { bool twoSidedWeapon = pItem->GetValue(3) == CItemData::WEAPON_DAGGER || (IsMountingHorse() && pItem->GetValue(3) == CItemData::WEAPON_FAN); if (twoSidedWeapon) { __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON_LEFT"); } if (pItem->GetValue(3) == CItemData::WEAPON_BOW) __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON_LEFT"); else __AttachWeaponShiningEffect(i, shiningTable.szShinings[i], "PART_WEAPON"); } } } #endif } #endif else { if (removeRefineEffect) { __ClearArmorRefineEffect(); } for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(shiningTable.szShinings[i], "")) { __AttachArmorShiningEffect(i, shiningTable.szShinings[i]); } } } } //Attaching the shining effect. //BoneName can be "PART_WEAPON" or "PART_WEAPON_LEFT" to get the attaching bone name dynamically. //If boneName is not given "Bip01" is used as boneName. void CInstanceBase::__AttachWeaponShiningEffect(int effectIndex, const char* effectFileName, const char* boneName) { if (IsAffect(AFFECT_INVISIBILITY)) { return; } if (effectIndex >= CItemData::ITEM_SHINING_MAX_COUNT) { return; } CEffectManager::Instance().RegisterEffect(effectFileName, false, false); if (!strcmp(boneName, "PART_WEAPON")) { const char* c_szRightBoneName; m_GraphicThingInstance.GetAttachingBoneName(CRaceData::PART_WEAPON, &c_szRightBoneName); if (c_szRightBoneName == NULL) return; if (strcmp(c_szRightBoneName, "")) { m_weaponShiningEffects[0][effectIndex] = m_GraphicThingInstance.AttachEffectByName(0, c_szRightBoneName, effectFileName); } } else if (!strcmp(boneName, "PART_WEAPON_LEFT")) { const char* c_szLeftBoneName; m_GraphicThingInstance.GetAttachingBoneName(CRaceData::PART_WEAPON_LEFT, &c_szLeftBoneName); if (c_szLeftBoneName == NULL) return; if (strcmp(c_szLeftBoneName, "")) { m_weaponShiningEffects[1][effectIndex] = m_GraphicThingInstance.AttachEffectByName(0, c_szLeftBoneName, effectFileName); } } else { Tracef("Invalid partname for getting attaching bone name. %s - %s", effectFileName, boneName); } } //Attaching the armor shining effect. //If boneName is not given "Bip01" is used as boneName. void CInstanceBase::__AttachArmorShiningEffect(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 armor shining. Effect Index: %i, EffectFileName: %s", effectIndex, effectFileName); return; } CEffectManager::Instance().RegisterEffect(effectFileName, false, false); m_armorShiningEffects[effectIndex] = m_GraphicThingInstance.AttachEffectByName(0, boneName, effectFileName); } //Clears all weapon shining effects. Left & Right if set. void CInstanceBase::__ClearWeaponShiningEffect(bool detaching) { for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (m_weaponShiningEffects[0][i]) { if (detaching) { __DetachEffect(m_weaponShiningEffects[0][i]); } m_weaponShiningEffects[0][i] = 0; } if (m_weaponShiningEffects[1][i]) { if (detaching) { __DetachEffect(m_weaponShiningEffects[1][i]); } m_weaponShiningEffects[1][i] = 0; } } } //Clears all armor shining effects. void CInstanceBase::__ClearArmorShiningEffect(bool detaching) { if (detaching) { for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (m_armorShiningEffects[i]) { __DetachEffect(m_armorShiningEffects[i]); } } } memset(&m_armorShiningEffects, 0, sizeof(m_armorShiningEffects)); } #endif #ifdef ENABLE_SHINING_SYSTEM #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 armor shining. Effect Index: %i, EffectFileName: %s", effectIndex, effectFileName); return; } CEffectManager::Instance().RegisterEffect(effectFileName, false, false); m_acceShiningEffects[effectIndex] = m_GraphicThingInstance.AttachEffectByName(0, boneName, effectFileName); } #ifdef ENABLE_ACCE_SYSTEM void CInstanceBase::__ClearAcceShiningEffect(bool detaching) { for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (detaching) { __DetachEffect(m_acceShiningEffects[i]); } m_acceShiningEffects[i] = 0; } } #endif #endif #endif UserInterface/InstanceBase.cpp "Ahora os voy a explicar algo" En el caso de que vuestro sistema de estolas no lleve el define acce, deberan de cambiar el codigo del sistema en las partes que llevan acce por sash "Por ejemplo en el bloque que agregan en InstanceBase.cpp" Ese lleva ACCE como Define, ustedes deberan de agregar el define de su sistema de estolas GameLib/ItemManager.h Aca buscan la siguiente linea: bool LoadItemTable(const char* c_szFileName); Pulsan enter y agregan lo siguiente: #ifdef ENABLE_SHINING_SYSTEM bool LoadShiningTable(const char* c_szFileName); #endif GameLib/ItemManager.cpp Ahora buscan la siguiente funcion bool CItemManager::LoadItemTable(const char* c_szFileName) { ... } Y debajo de la funcion completa pulsan enter y agregan el siguiente bloque #ifdef ENABLE_SHINING_SYSTEM bool CItemManager::LoadShiningTable(const char* szShiningTable) { CMappedFile File; LPCVOID pData; if (!CEterPackManager::Instance().Get(File, szShiningTable, &pData)) return false; CMemoryTextFileLoader textFileLoader; textFileLoader.Bind(File.Size(), pData); CTokenVector TokenVector; for (DWORD i = 0; i < textFileLoader.GetLineCount(); ++i) { if (!textFileLoader.SplitLine(i, &TokenVector, "\t")) continue; if (TokenVector.size() > (1 + CItemData::ITEM_SHINING_MAX_COUNT)) { TraceError("CItemManager::LoadShiningTable(%s) - LoadShiningTable in %d\n - RowSize: %d MaxRowSize: %d", szShiningTable, i, TokenVector.size(), CItemData::ITEM_SHINING_MAX_COUNT); } const std::string & c_rstrID = TokenVector[0]; DWORD dwItemVNum = atoi(c_rstrID.c_str()); CItemData * pItemData = MakeItemData(dwItemVNum); if (pItemData) { for (BYTE i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (i < (TokenVector.size()-1)) { const std::string & c_rstrEffectPath = TokenVector[i + 1]; pItemData->SetItemShiningTableData(i, c_rstrEffectPath.c_str()); } else { pItemData->SetItemShiningTableData(i, ""); } } } } return true; } #endif GameLib/ItemData.h Buscan la siguiente linea: ITEM_SOCKET_MAX_NUM = 3, Pulsan un enter y agregan la siguiente debajo #ifdef ENABLE_SHINING_SYSTEM ITEM_SHINING_MAX_COUNT = 3, #endif Ahora buscan la siguiente linea: void SetItemTableData(TItemTable * pItemTable); Pulsan enter y debajo agregan la siguiente: #ifdef ENABLE_SHINING_SYSTEM typedef struct SItemShiningTable { char szShinings[ITEM_SHINING_MAX_COUNT][256]; public: //Checking if any shining is set for this item. bool Any() const { for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++) { if (strcmp(szShinings[i], "")) { return true; } } return false; } } TItemShiningTable; void SetItemShiningTableData(BYTE bIndex, const char* szEffectname); CItemData::TItemShiningTable GetItemShiningTable() { return m_ItemShiningTable; } #endif Ahora buscan la siguiente linea: TItemTable m_ItemTable; Pulsan enter y debajo pegan la siguiente: #ifdef ENABLE_SHINING_SYSTEM TItemShiningTable m_ItemShiningTable; #endif GameLib/ItemData.cpp Ahora buscan la siguiente funcion: BOOL CItemData::IsEquipment() const { .... } Debajo de la funcion agregan lo siguiente: #ifdef ENABLE_SHINING_SYSTEM void CItemData::SetItemShiningTableData(BYTE bIndex, const char* szEffectname) { sprintf(m_ItemShiningTable.szShinings[bIndex], szEffectname); } #endif Ahora buscan la siguiente funcion: void CItemData::Clear() { ..... } Dentro de esa misma funcion buscan la siguiente linea: memset(&m_ItemTable, 0, sizeof(m_ItemTable)); Pulsan un enter y agregan la siguiente linea: #ifdef ENABLE_SHINING_SYSTEM memset(&m_ItemShiningTable, 0, sizeof(m_ItemShiningTable)); #endif  
    Parte del cliente Va a su locale y agregan el archivo que os dejare debajo "Como funciona el sistema y que hago para implementar un arma, ala o efecto de armadura" Bueno para implementar todo el mundo ya conoce como se implementa una arma o estola. Agregan la parte de la db luego item_list.txt, item_proto "Pero aca si usan arma 3D en el archivo haran lo siguiente" 61202 "D:/ymir work/effect/plechito/weapons/dark_cult_set/bell_glow.mse" El 61202 es el vnum del arma, armadura o ala que llevara el efecto Y al lado va la ruta del mse "Asegurese que el efecto esta completo Y ya eso es todo  
    Y eso seria todo
     
    Adjunto foto de como funciona el sistema correctamente
     

     
    Si lo hacen tal cual le explique en la guia el sistema le funcionara correctamente. 
     
    Adjunte foto cuando metan el sistema, no cuesta nada.
     
    Archivo parte del cliente

    Debes iniciar sesión para ver el contenido del enlace en esta publicación.
×
×
  • Crear nuevo...