Noticias:

SMF - Just Installed!

Menú principal

SOURCE 1.04J WIZARD TEAM

Publicado por Dakosmu, Oct 25, 2024, 11:19 PM

Tema anterior - Siguiente tema

Dakosmu

fix fenrir scale cheesyy2

disable

//SetCompleteHook(0xE9, 0x004E7635, &this->CustomFenrirScale2); //Fix custom fenrir scale and select character scale
Bon Dia

Dakosmu

item angle for 1.04j

int __cdecl ItemAngle(int a1)
{
   int result; // eax

   *(_DWORD*)(a1 + 28) = 0;
   *(_DWORD*)(a1 + 32) = 0;
   *(_DWORD*)(a1 + 36) = -1036779520;
   if (*(__int16*)(a1 + 2) < 649 || *(__int16*)(a1 + 2) >= 1673)
   {
      if ((*(__int16*)(a1 + 2) < 2705 || *(__int16*)(a1 + 2) >= 2714)
         && (*(__int16*)(a1 + 2) < 2715 || *(__int16*)(a1 + 2) >= 3209))
      {
         if (*(__int16*)(a1 + 2) < 1673 || *(__int16*)(a1 + 2) >= 3721)
         {
            if (*(__int16*)(a1 + 2) < 3721 || *(__int16*)(a1 + 2) >= 4233)
            {
               if (*(__int16*)(a1 + 2) < 4745 || *(__int16*)(a1 + 2) >= 6281)
               {
                  if (*(__int16*)(a1 + 2) < 6825 || *(__int16*)(a1 + 2) > 6827)
                  {
                     if (*(__int16*)(a1 + 2) < 6793 || *(__int16*)(a1 + 2) >= 7305)
                     {
                        if (*(_WORD*)(a1 + 2) == 7862)
                        {
                           *(_DWORD*)(a1 + 12) = 1063675494;
                           *(_DWORD*)(a1 + 28) = 0;
                           result = a1;
                           *(_DWORD*)(a1 + 36) = 1119092736;
                        }
                        else if (*(__int16*)(a1 + 2) < 7863 || *(__int16*)(a1 + 2) > 7865)
                        {
                           if (*(_WORD*)(a1 + 2) == 7866)
                           {
                              result = a1;
                              *(_DWORD*)(a1 + 12) = 1063675494;
                              *(_DWORD*)(a1 + 28) = 0;
                              *(_DWORD*)(a1 + 36) = 1119092736;
                           }
                           else if (*(_WORD*)(a1 + 2) == 7867)
                           {
                              *(_DWORD*)(a1 + 12) = 1048911544;
                              result = a1;
                              *(_DWORD*)(a1 + 28) = 0;
                              *(_DWORD*)(a1 + 36) = 1119092736;
                           }
                           else if (*(__int16*)(a1 + 2) < 7849 || *(__int16*)(a1 + 2) > 7851)
                           {
                              result = a1;
                              if (*(__int16*)(a1 + 2) < 8962 || (result = *(__int16*)(a1 + 2), result > 8964))
                              {
                                 if (*(_WORD*)(a1 + 2) == 7348
                                    || (result = a1, *(_WORD*)(a1 + 2) == 7349)
                                    || (result = *(__int16*)(a1 + 2), result == 7350))
                                 {
                                    *(_DWORD*)(a1 + 12) = 1056964608;
                                    *(_DWORD*)(a1 + 28) = 1119092736;
                                 }
                                 else if (*(__int16*)(a1 + 2) < 7872 || (result = *(__int16*)(a1 + 2), result > 7874))
                                 {
                                    if (*(_WORD*)(a1 + 2) == 7354)
                                    {
                                       *(_DWORD*)(a1 + 28) = 1119092736;
                                       result = a1;
                                       *(_DWORD*)(a1 + 32) = 0;
                                       *(_DWORD*)(a1 + 12) = 1050253722;
                                    }
                                    else
                                    {
                                       result = *(__int16*)(a1 + 2);
                                       if (result == 7355)
                                       {
                                          *(_DWORD*)(a1 + 28) = 0;
                                          *(_DWORD*)(a1 + 12) = 1058642330;
                                       }
                                       else if (*(_WORD*)(a1 + 2) == 7356)
                                       {
                                          *(_DWORD*)(a1 + 28) = 1119092736;
                                          result = a1;
                                          *(_DWORD*)(a1 + 12) = 1055286886;
                                       }
                                       else if (*(_WORD*)(a1 + 2) == 7881)
                                       {
                                          result = a1;
                                          *(_DWORD*)(a1 + 28) = 0;
                                          *(_DWORD*)(a1 + 12) = 1061997773;
                                       }
                                       else
                                       {
                                          result = *(__int16*)(a1 + 2);
                                          if (result == 7357)
                                          {
                                             *(_DWORD*)(a1 + 28) = 0;
                                             *(_DWORD*)(a1 + 12) = 1067030938;
                                          }
                                          else if (*(_WORD*)(a1 + 2) == 7358)
                                          {
                                             *(_DWORD*)(a1 + 28) = 0;
                                             result = a1;
                                             *(_DWORD*)(a1 + 12) = 1067030938;
                                          }
                                          else if (*(_WORD*)(a1 + 2) == 7882)
                                          {
                                             result = a1;
                                             *(_DWORD*)(a1 + 28) = 1119092736;
                                             *(_DWORD*)(a1 + 12) = 1058642330;
                                          }
                                          else
                                          {
                                             result = *(__int16*)(a1 + 2);
                                             if (result == 7883)
                                             {
                                                *(_DWORD*)(a1 + 28) = 1119092736;
                                                *(_DWORD*)(a1 + 12) = 1061997773;
                                             }
                                             else
                                             {
                                                switch (*(_WORD*)(a1 + 2))
                                                {
                                                case 0x1ECC:
                                                   *(_DWORD*)(a1 + 28) = 1132920832;
                                                   result = a1;
                                                   *(_DWORD*)(a1 + 12) = 1061997773;
                                                   break;
                                                case 0x22F1:
                                                   result = a1;
                                                   *(_DWORD*)(a1 + 28) = 1119092736;
                                                   break;
                                                case 0x22F5:
                                                case 0x22F6:
                                                   *(_DWORD*)(a1 + 28) = 1132920832;
                                                   result = a1;
                                                   *(_DWORD*)(a1 + 36) = 1110704128;
                                                   break;
                                                case 0x22F7:
                                                   result = a1;
                                                   *(_DWORD*)(a1 + 12) = 1045220557;
                                                   break;
                                                case 0x22F2:
                                                   result = a1;
                                                   *(_DWORD*)(a1 + 28) = 0;
                                                   *(_DWORD*)(a1 + 36) = 1110704128;
                                                   *(_DWORD*)(a1 + 12) = 1066192077;
                                                   break;
                                                case 0x1EA0:
                                                   *(_DWORD*)(a1 + 32) = 1110704128;
                                                   result = a1;
                                                   *(_DWORD*)(a1 + 36) = 1110704128;
                                                   break;
                                                case 0x1EA1:
                                                   result = a1;
                                                   *(_DWORD*)(a1 + 36) = 1110704128;
                                                   break;
                                                default:
                                                   if (*(__int16*)(a1 + 2) >= 7842 && (result = a1, *(__int16*)(a1 + 2) < 7844)
                                                      || (result = *(__int16*)(a1 + 2), result == 7319))
                                                   {
                                                      *(_DWORD*)(a1 + 36) = 1110704128;
                                                   }
                                                   else
                                                   {
                                                      result = *(__int16*)(a1 + 2);
                                                      if (result == 7834)
                                                      {
                                                         *(_DWORD*)(a1 + 28) = 1119092736;
                                                      }
                                                      else
                                                      {
                                                         result = *(__int16*)(a1 + 2);
                                                         if (result == 7880)
                                                         {
                                                            *(_DWORD*)(a1 + 28) = 1116471296;
                                                            *(_DWORD*)(a1 + 12) = 1069547520;
                                                         }
                                                         else if (*(_WORD*)(a1 + 2) == 7869)
                                                         {
                                                            *(_DWORD*)(a1 + 36) = -1054867456;
                                                            result = a1;
                                                            *(_DWORD*)(a1 + 12) = 1053609165;
                                                         }
                                                         else if (*(_WORD*)(a1 + 2) == 7835)
                                                         {
                                                            result = a1;
                                                            *(_DWORD*)(a1 + 36) = 1132920832;
                                                            *(_DWORD*)(a1 + 28) = 1132920832;
                                                         }
                                                         else
                                                         {
                                                            result = *(__int16*)(a1 + 2);
                                                            if (result == 7836)
                                                            {
                                                               *(_DWORD*)(a1 + 28) = 1132920832;
                                                               *(_DWORD*)(a1 + 36) = 1119092736;
                                                            }
                                                            else
                                                            {
                                                               switch (*(_WORD*)(a1 + 2))
                                                               {
                                                               case 0x1EA6:
                                                                  *(_DWORD*)(a1 + 28) = 1119092736;
                                                                  result = a1;
                                                                  *(_DWORD*)(a1 + 36) = 1116471296;
                                                                  break;
                                                               case 0x22F8:
                                                                  *(_DWORD*)(a1 + 28) = 1122369536;
                                                                  *(_DWORD*)(a1 + 32) = 1117126656;
                                                                  *(_DWORD*)(a1 + 36) = 1090519040;
                                                                  result = a1;
                                                                  *(_DWORD*)(a1 + 12) = 1053609165;
                                                                  break;
                                                               case 0x1C99:
                                                               case 0x1C9A:
                                                                  *(_DWORD*)(a1 + 28) = -1036779520;
                                                                  result = a1;
                                                                  *(_DWORD*)(a1 + 32) = -1063256064;
                                                                  *(_DWORD*)(a1 + 36) = 1099956224;
                                                                  *(_DWORD*)(a1 + 12) = 1056293519;
                                                                  break;
                                                               case 0x1C9B:
                                                                  *(_DWORD*)(a1 + 28) = 1126498304;
                                                                  result = a1;
                                                                  *(_DWORD*)(a1 + 32) = -1020788736;
                                                                  *(_DWORD*)(a1 + 36) = 1128660992;
                                                                  *(_DWORD*)(a1 + 12) = 1056293519;
                                                                  break;
                                                               case 0x1CA7:
                                                                  *(_DWORD*)(a1 + 28) = -1036779520;
                                                                  result = a1;
                                                                  *(_DWORD*)(a1 + 32) = 0;
                                                                  *(_DWORD*)(a1 + 36) = 1110704128;
                                                                  *(_DWORD*)(a1 + 12) = 1056964608;
                                                                  break;
                                                               case 0x22FD:
                                                                  *(_DWORD*)(a1 + 36) = 1110704128;
                                                                  result = a1;
                                                                  *(_DWORD*)(a1 + 12) = 1056964608;
                                                                  break;
                                                               case 0x22F9:
                                                                  *(_DWORD*)(a1 + 28) = 1126170624;
                                                                  *(_DWORD*)(a1 + 32) = -1019805696;
                                                                  *(_DWORD*)(a1 + 36) = 1128660992;
                                                                  result = a1;
                                                                  *(_DWORD*)(a1 + 12) = 1052938076;
                                                                  break;
                                                               case 0x22FA:
                                                                  *(_DWORD*)(a1 + 28) = 1126170624;
                                                                  *(_DWORD*)(a1 + 32) = -1019805696;
                                                                  *(_DWORD*)(a1 + 36) = 1128660992;
                                                                  result = a1;
                                                                  *(_DWORD*)(a1 + 12) = 1057635697;
                                                                  break;
                                                               case 0x1E9E:
                                                                  result = a1;
                                                                  *(_DWORD*)(a1 + 28) = 1132920832;
                                                                  *(_DWORD*)(a1 + 36) = 1119092736;
                                                                  break;
                                                               default:
                                                                  result = *(__int16*)(a1 + 2);
                                                                  if (result == 8948)
                                                                  {
                                                                     *(_DWORD*)(a1 + 36) = 1110704128;
                                                                  }
                                                                  else
                                                                  {
                                                                     result = *(__int16*)(a1 + 2);
                                                                     if (result == 7837)
                                                                     {
                                                                        *(_DWORD*)(a1 + 36) = 1110704128;
                                                                     }
                                                                     else if (*(__int16*)(a1 + 2) < 7326 || *(__int16*)(a1 + 2) > 7329)
                                                                     {
                                                                        if (*(_WORD*)(a1 + 2) == 7338)
                                                                        {
                                                                           result = a1;
                                                                           *(_DWORD*)(a1 + 36) = 1110704128;
                                                                           *(_DWORD*)(a1 + 12) = 1067030938;
                                                                        }
                                                                        else
                                                                        {
                                                                           result = *(__int16*)(a1 + 2);
                                                                           if (result == 7339)
                                                                           {
                                                                              *(_DWORD*)(a1 + 28) = 1119092736;
                                                                           }
                                                                           else
                                                                           {
                                                                              result = *(__int16*)(a1 + 2);
                                                                              if (result == 7340)
                                                                              {
                                                                                 *(_DWORD*)(a1 + 36) = 1119092736;
                                                                              }
                                                                              else
                                                                              {
                                                                                 result = *(__int16*)(a1 + 2);
                                                                                 if (result == 7341)
                                                                                 {
                                                                                    *(_DWORD*)(a1 + 36) = 1119092736;
                                                                                    *(_DWORD*)(a1 + 12) = 1067869798;
                                                                                 }
                                                                                 else
                                                                                 {
                                                                                    result = a1;
                                                                                    switch (*(_WORD*)(a1 + 2))
                                                                                    {
                                                                                    case 0x1CAE:
                                                                                       *(_DWORD*)(a1 + 36) = 1127481344;
                                                                                       break;
                                                                                    case 0x1E99:
                                                                                       *(_DWORD*)(a1 + 28) = 1132920832;
                                                                                       result = a1;
                                                                                       *(_DWORD*)(a1 + 36) = 1110704128;
                                                                                       break;
                                                                                    case 0x1EB3:
                                                                                       result = a1;
                                                                                       *(_DWORD*)(a1 + 28) = 1132920832;
                                                                                       *(_DWORD*)(a1 + 36) = -1049624576;
                                                                                       *(_DWORD*)(a1 + 12) = 1067869798;
                                                                                       break;
                                                                                   
Bon Dia

Dakosmu

hi my friends i trasladate this code  for fun  cheesyy2 is for  1.04j GlobalMessagem

https://imgur.com/a/iYM2ztw

__declspec(naked) void GlobalMessagem()
{
   static DWORD ADDS = 0x0053E272;

   _asm
   {
      CMP DWORD PTR SS : [ESP - 8], 1200
      JMP[ADDS]
   }
}

SetCompleteHook(0xE9, 0x0053E268, &GlobalMessagem);
Bon Dia

Dakosmu


If this fix is not used, the size of the custom monsters added will not work in conjunction with this code, to fix this you just have to disable this
in custommonsters.ccp

void Monster::Load()
{
remplace
SetCompleteHook(0xE8, 0x0052D9C3, &Monster::MonsterAttribute);

for
//SetCompleteHook(0xE8, 0x0052D9C3, &Monster::MonsterAttribute);

now work 100% :D

https://imgur.com/a/inh6ROk
Bon Dia

Dakosmu

Paso a dejar el MuServer mas optimisado, sin archivos basura, tambien pude arreglar el Blood Castel, Chaos Castel, Devill Square y las Invaciones. a si tambien Arregle un poco mas las Tools entre otras cosas.


You require the following to view this post content:
  • You require a post count of at least 1, you need another 1 posts.
for Hiden:








































Tambien queria ver si alguien me puede decir donde eliminar este mensaje que sale al iniciar...


Bon Dia

Dakosmu

hi my friends any have for share this estructures ObjectPreview, * lpViewObj; and ObjectModel, * lpModelObj;
or offset of it :D

typedef struct
{
    /*0*/   WORD    Live; //??
    /*2*/    WORD    MauntType;      //??          
    /*4*/    DWORD    Unknown4;      //??    
    /*8*/    BYTE    Unknown8;
    BYTE    Shift2[2];
    /*12*/    DWORD    ModelScale;
    /*16*/    float    VecPosX;
    /*20*/    float    VecPosY;
    /*24*/    float    VecPosZ;
    ///*28*/    DWORD    Unknow28;
    ///*32*/    DWORD    Unknow32;
    ///*36*/    DWORD    Unknow36;
    ///*38*/    WORD    Unknow38;   //!!!!!!!!!!
    BYTE    Shift33[53];
    /*82*/    WORD    UnknowTest;
    BYTE    Shift3[103];
    ///*148*/    DWORD    Unknow148;
    ///*152*/    DWORD    Unknow152;
    ///*168*/    DWORD    Unknow168; 
    ///*176*/    DWORD    Unknow176;  //!!!!!!!!!
    /*188*/ BYTE  TypeName;
    /*189*/ BYTE  Type; //??
    /*190*/ WORD  Unknow190;   //??
                               ///*204*/    BYTE    Unknow204;
                               ///*296*/    DWORD    Unknow296;  !!
                               ///*300*/    DWORD    Unknow300;  !!
                               ///*304*/    DWORD    Unknow304;   !!
    BYTE    Shift113[124];
    /*316*/    DWORD    Unknow316; //??
    BYTE    Shift1113[5];
    /*325*/    BYTE    Action;
    BYTE    Shift114[2];
    /*328*/    DWORD    Unknow328; //??
                               ///*332*/    DWORD    Unknow332;
    BYTE    Shift4[32];
    /*364*/    float    SelectZone;
    BYTE    Shift44[48];
    ///*416*/ BYTE    Unknown416; //!!!!!!!!
    ///*448*/ BYTE    Unknown448; //!!!!!!!!
    ///*452*/ DWORD   Unknown452; //!!!!!!!!
    /*416*/    BYTE    Unknown416;
    BYTE    Shift412[48];
    /*464*/    BYTE    Unknown464;
    BYTE    Shift5[38];
    ///*500*/    DWORD    Unknown500; 
    /*504*/    WORD    Unknown504;
    BYTE    Shift51[18];
    /*524*/    BYTE    Class;
    ///*525*/    BYTE    Unknow525;      !!!!
    ///*526*/    WORD    Unknown526;   //!!!!!!!!
    BYTE    Shift512[4];
    ///*528*/    BYTE    Unknow28;
    /*529*/    char    Name[25];
    BYTE    Shift612[8];
    /*562*/    WORD    Unknow562;// ???
    /*564*/    WORD    VPIndex;
    BYTE    Shift6[34];
    /*600*/    WORD    HelmSlot;
    /*602*/    BYTE    HelmLevel;
    /*603*/    BYTE    HelmExcellent;
    /*604*/    BYTE    HelmAncient;
    ///*605*/ BYTE   Unknown605;         //!!!!!!!!!??
    BYTE    Shift7[27];
    /*632*/    WORD    ArmorSlot;
    /*634*/    BYTE    ArmorLevel;
    /*635*/    BYTE    ArmorExcellent;
    /*636*/    BYTE    ArmorAncient;
    ///*637*/ BYTE   Unknown637;         //!!!!!!!!!??
    BYTE    Shift8[27];
    /*664*/    WORD    PantsSlot;
    /*666*/    BYTE    PantsLevel;
    /*667*/    BYTE    PantsExcellent;
    /*668*/    BYTE    PantsAncient;
    ///*669*/ BYTE   Unknown669;         //!!!!!!!!!??
    BYTE    Shift9[27];
    /*696*/    WORD    GlovesSlot;
    /*698*/    BYTE    GlovesLevel;
    /*699*/    BYTE    GlovesExcellent;
    /*700*/    BYTE    GlovesAncient;
    ///*701*/ BYTE   Unknown701;         //!!!!!!!!!??
    BYTE    Shift10[27];
    /*728*/    WORD    BootsSlot;
    /*730*/    BYTE    BootsLevel;
    /*731*/    BYTE    BootsExcellent;
    /*732*/    BYTE    BootsAncient;
    ///*733*/ BYTE   Unknown733;         //!!!!!!!!!??
    BYTE    Shift11[27];
    /*760*/    WORD    WeaponFirstSlot;
    /*762*/    BYTE    WeaponFirstLevel;
    /*763*/    BYTE    WeaponFirstExcellent;
    /*764*/    BYTE    WeaponFirstAncient;
    ///*765*/ BYTE   Unknown765;         //!!!!!!!!!??
    BYTE    Shift12[27];
    /*792*/    WORD    WeaponSecondSlot;
    /*794*/    BYTE    WeaponSecondLevel;
    /*795*/    BYTE    WeaponSecondExcellent;
    /*796*/    BYTE    WeaponSecondAncient;
    ///*797*/ BYTE   Unknown797;         //!!!!!!!!!
    BYTE    Shift13[27];
    /*824*/    WORD    WingsSlot;
    /*826*/ BYTE    WingsLevel;
    /*827*/    BYTE    WingsExcellent;
    /*828*/    BYTE    WingsAncient;
    ///*829*/ BYTE   Unknown829;         //!!!!!!!!!
    ///*832*/ DWORD   Unknown832;         //!!!!!!!!!
    BYTE    Shift14[27];
    /*856*/    WORD    PetSlot;
    /*858*/ BYTE    Unknown858;
    /*859*/ BYTE    FenrirCharSet;
    /*860*/ BYTE    ExpectPet;
    ///*861*/ BYTE   Unknown861;         //!!!!!!!!!
    BYTE    Shift15[59];
    /*920*/    BYTE    AncientEffect;
    ///*924*/ DWORD   Unknown924;         //!!!!!!!!!
    BYTE    Shift16[7];
    /*928*/    BYTE    StatusEffect;
    BYTE    Shift117[21];
    ///*948*/ BYTE   Unknown948;         //!!!!!!!!!
    ///*949*/ BYTE   Unknown949;         //!!!!!!!!!
    /*950*/    WORD    m_Change;
    BYTE    Shift145[28];
    ///*969*/ BYTE   Unknown969;         //!!!!!!!!!
    /*980*/    DWORD    Unknown980;
    BYTE    Shift197[12];
    /*996*/ WORD    Unknown996;
    BYTE    Shift17[61];
    ///*1014*/ DWORD   Unknown1014;     //!!!!!!!!!!!!!
    ///*1016*/ DWORD   Unknown1016;     //!!!!!!!!!!!!!
    ///*1020*/ DWORD   Unknown1020;     //!!!!!!!!!!!!!
    ///*1058*/ BYTE   Unknown1058;     //!!!!!!!!!!!!!
    /*1059*/ BYTE   Visible;
    ///*1060*/    BYTE    Unknown1060;   //!!!!!!!!!!!!!
    ///*1116*/ DWORD    Unknow1116;
    ///*1120*/ DWORD    Unknow1120; 
    ///*1144*/ DWORD   Unknown1144;    //!!!!!!!!!!!
}ObjectPreview, *lpViewObj;


lpViewObj :
#define pShowMonster ((lpViewObj(__cdecl*)(int a1, int a2, int a3, int a4)) 0x0052D92B) // 1.04J DONE

ObjectPreview:
*(WORD*)(ObjectStruct + 988) = *(DWORD*)0x7B06B68; //Index Monster
Bon Dia

Dakosmu

maybe any need it  offsets for itemposition.

SetCompleteHook(0xE8, 0x005E966A, &sub_5E7110);
Bon Dia

Dakosmu

how to compile gs cs? if anyone has it please share
was shared one page before lol
You require the following to view this post content:
  • You require a post count of at least 1, you need another 1 posts.
Bon Dia

Dakosmu

custommonsterglow for mu 1.04j i recreate it for fun   cheesyy2



create GlowMonster.cpp

#include "stdafx.h"
#include "GlowMonster.h"
#include "Util.h"

#define RenderMesh         ((int(__thiscall*)(int This, signed int a2, int a3, float a4, signed int a5, float a6, float a7, float a8, int a9)) 0x00502F50)
#define BeginRender            ((void(__thiscall*)(float a1)) 0x502F2C)
#define EndRender            ((void(__cdecl*)()) 0x00502F3F)
#define RenderMesh4               ((void(__thiscall*)(int This, int a2, int a3, GLfloat alpha, int a5, float a6, float a7, float a8, int a9)) 0x00502F50)
#define sub_73906C      ((__int64(__cdecl*)(double a1))0x73906C)
#define ModelID(x)               (x + 408)
#define MonsterID(x)            (x - 408)

#define _BYTE   BYTE
#define _WORD   WORD
#define _DWORD   DWORD
#define _FLOAT   FLOAT


char __cdecl GlowMonsters(int a1, int a2)
{
   char result; // al
   float v3; // [esp+0h] [ebp-20h]
   float v4; // [esp+0h] [ebp-20h]
   float v5; // [esp+4h] [ebp-1Ch]
   float v6; // [esp+4h] [ebp-1Ch]
   int v7; // [esp+1Ch] [ebp-4h]

   int MonsterRender;

   MonsterRender = (MonsterID(*(__int16*)(a1 + 2)));

   if (MonsterRender == 415)//if of you monster
   {
      BeginRender(1.0);
      *(float*)(a2 + 72) = 153.0;
      *(float*)(a2 + 76) = 153.0;
      *(float*)(a2 + 80) = 153.0;
      *(float*)(a1 + 152) = 153.0;
      *(float*)(a1 + 156) = 153.0;
      *(float*)(a1 + 160) = 153.0;
      //for (int n = 0; n < 15; n++) {
      RenderMesh(a2, 0, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), v3, v5, -1);
       //}
      RenderMesh(a2, 0, 70, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      EndRender();
      *(_BYTE*)(a2 + 136) = -1;
      result = 1;
   }

   else if (MonsterRender == 416)
   {
      BeginRender(1.0);
      *(float*)(a2 + 72) = 0.0;
      *(float*)(a2 + 76) = 0.0;
      *(float*)(a2 + 80) = 255.0;
      *(float*)(a1 + 152) = 0.0;
      *(float*)(a1 + 156) = 0.0;
      *(float*)(a1 + 160) = 255.0;
      //for (int n = 0; n < 15; n++) {
      RenderMesh(a2, 0, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), v3, v5, -1);
      //}
      RenderMesh(a2, 0, 70, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      EndRender();
      *(_BYTE*)(a2 + 136) = -1;
      result = 1;
   }
   //v7 = *(__int16*)(a1 + 2);

   else if (*(__int16*)(a1 + 2) == 509)
   {
      BeginRender(1.0);
      *(float*)(a2 + 72) = 0.89999998;
      *(float*)(a2 + 76) = 0.89999998;
      *(float*)(a2 + 80) = 0.89999998;
      *(_BYTE*)(a2 + 136) = 0;
      v5 = (double)(-(int)sub_73906C(0x57FFB98) % 10000) * 0.00030000001;
      v3 = (double)(-(int)sub_73906C(0x57FFB98) % 10000) * 0.00030000001;
      RenderMesh(a2, 0, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), v3, v5, -1);
      RenderMesh(a2, 0, 70, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      *(_BYTE*)(a2 + 136) = -1;
      RenderMesh(a2, 1, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      EndRender();
      result = 1;
   }
   else if (*(__int16*)(a1 + 2) == 510)
   {
      BeginRender(1.0);
      *(float*)(a2 + 72) = 0.89999998;
      *(float*)(a2 + 76) = 0.89999998;
      *(float*)(a2 + 80) = 0.89999998;
      RenderMesh(a2, 0, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      RenderMesh(a2, 1, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      RenderMesh(a2, 2, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      *(_BYTE*)(a2 + 136) = 0;
      v6 = (double)(-(int)sub_73906C(0x57FFB98) % 10000) * 0.00060000003;
      v4 = (double)(-(int)sub_73906C(0x57FFB98) % 10000) * 0.00060000003;
      RenderMesh(a2, 3, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), v4, v6, -1);
      RenderMesh(a2, 3, 70, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      *(_BYTE*)(a2 + 136) = -1;
      EndRender();
      result = 1;
   }
   else if (*(__int16*)(a1 + 2) == 510)
   {
      BeginRender(1.0);
      *(float*)(a2 + 72) = 1.0;
      *(float*)(a2 + 76) = 1.0;
      *(float*)(a2 + 80) = 1.0;
      *(_BYTE*)(a2 + 136) = 0;
      RenderMesh(a2, 0, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      *(float*)(a2 + 72) = 1.0;
      *(float*)(a2 + 76) = 0;
      *(float*)(a2 + 80) = 0;
      RenderMesh(a2, 0, 70, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      *(_BYTE*)(a2 + 136) = -1;
      *(float*)(a2 + 72) = 1.0;
      *(float*)(a2 + 76) = 1.0;
      *(float*)(a2 + 80) = 1.0;
      RenderMesh(a2, 1, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      *(_BYTE*)(a2 + 136) = 1;
      RenderMesh(a2, 2, 2, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      *(float*)(a2 + 72) = 0.5;
      *(float*)(a2 + 76) = 0;
      *(float*)(a2 + 80) = 0;
      RenderMesh(a2, 2, 70, *(float*)(a1 + 424), *(_DWORD*)(a1 + 148), *(float*)(a1 + 152), *(float*)(a1 + 156), *(float*)(a1 + 160), -1);
      *(_BYTE*)(a2 + 136) = -1;
      EndRender();
      result = 1;
   }
   else
   {
      result = 0;
   }
   return result;
}

void GlowMonster() // OK

{
   SetCompleteHook(0xE8, 0x004C59F6, &GlowMonsters);
}


now create GlowMonster.h

#pragma once

void GlowMonster();

now in main.ccp

#include "GlowMonster.h"
GlowMonster();
Bon Dia

Dakosmu

custom golden monster for 1.04j i recreate it for fun   cheesyy2



#define MonsterID(x)            (x - 408)


//this code enable golden monster
void __declspec(naked) GoldenMonster() {
   DWORD dwItem;
   static DWORD MonsterID;
   static DWORD Address1 = 0x00522006;
   static DWORD Address2 = 0x00521ED8;
   _asm {
      Mov     edx, [EBP + 0x8]
      Movsx   eax, word ptr[edx + 0x3AE]
      Mov   MonsterID, eax
   }
   MonsterID(MonsterID);
   if (MonsterID == 38//Do not modify this line
      || MonsterID == 43//Do not modify this line
      || MonsterID == 44//Do not modify this line
      || MonsterID == 52//Do not modify this line
      || MonsterID == 59//Do not modify this line
      || MonsterID == 67//Do not modify this line
      || MonsterID >= 78 && MonsterID <= 83//Do not modify this line
      // 416 is my custommonster for test modify this number for you monsterid
      || MonsterID == 416// here add you monsster id, if you whish add more monster copy and paste this line for add new golden mosnter
      //|| MonsterID == 416
      //|| MonsterID == 416
      //|| MonsterID == 416
      //|| MonsterID == 416
      )
        {
      _asm {
         JMP Address2
      }
   }
   else {
      _asm {
         JMP Address1
      }
   }
}

// this part is for add  more bright 9 to golden monster
void __declspec(naked) GoldenMonster2() {
   static DWORD MonsterID;
   static DWORD Address1 = 0x00521F6F;
   static DWORD Address2 = 0x00521F30;
   _asm {
      Mov     edx, [EBP + 0x8]
      Movsx   eax, word ptr[edx + 0x3AE]
      Mov   MonsterID, eax
   }

   MonsterID(MonsterID);
   if (MonsterID == 43 || MonsterID == 44//Do not modify this line
      || MonsterID >= 78 && MonsterID <= 83//Do not modify this line
      // 416 is my custommonster for test modify this number for you monsterid
      || MonsterID == 416// here add you monsster id, if you whish add more monster copy and paste this line for add new golden mosnter
      //|| MonsterID == 416
      //|| MonsterID == 416
      //|| MonsterID == 416
      //|| MonsterID == 416
      )
        {
      _asm {
         JMP Address2
      }
   }
   else {
      _asm {
         JMP Address1
      }
   }
}



SetRange((PVOID)0x00521E59, 10, ASM::NOP);
SetOp((PVOID)0x00521E59, (LPVOID)GoldenMonster, ASM::JMP);
SetRange((PVOID)0x00521EFD, 10, ASM::NOP);
SetOp((PVOID)0x00521EFD, (LPVOID)GoldenMonster2, ASM::JMP);


if you dont have it (namespace ASM) add in offset.h or Util.h this

namespace ASM
{
   enum T
   {
      JMP = 0xE9,
      JE = 0x74,
      JNE = 0x75,
      JGE = 0x7D,
      NOP = 0x90,
      CALL = 0xE8,
      CALLD = 0xFF,
      PUSH = 0x68,
   };
};
Bon Dia

Dakosmu

Maximun speed and unlimited fps for 1.04j  i create it for fun  grin2


SetByte(0x00661AAD + 6, 25);//default 40
SetByte(0x006621B0 + 2, 25);//default 40
float fpsRate = *(float*)0x57FFB88 / 25.0f;//for unlimited fps
Bon Dia

Dakosmu

i recreate it for fun for 1.04j

Sources Symbol Name,Guild,Login  grin2

https://imgur.com/a/QCvmsYn


SetByte((0x004EAB76 + 1), 0x72);
SetByte(0x004EAB86, 0xEB);
SetByte(0x004212D0, 0xEB);
Bon Dia

Dakosmu

i create it for fun for 1.04j , select position text name of pj, npc...  grin2

https://imgur.com/a/qbcoZg5


#define LEFT 1
#define LEFT_CLIP 2
#define CENTER 3
#define RIGHT 4

      SetByte(0x0053FA60 +1,CENTER);
      SetByte(0x0053FAA7+1,CENTER);
      SetByte(0x0053FC03+1,CENTER);
      SetByte(0x0053FC2E+1,CENTER);
      SetByte(0x0053FE24+1,CENTER);
      SetByte(0x0053FE58+1,CENTER);
Bon Dia

🡱 🡳