Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Source 5.2 Pegasus/Mudream  (Visto 22870 veces)

1732313, Dizzy and 3 Guests are viewing this topic.

Online mkslep #300 Posteado: December 18, 2025, 03:20:52 PM | Modificado: December 18, 2025, 03:34:31 PM by mkslep

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 54
  • Gracias recibida: 1232
  • br
Fix Cashshop com buttons duplicados 5.2 / Pegasus
https://imgur.com/a/eRgD6ez
code:


DirectSound Audio Initialization Crash Fix 5.2 Pegasus

 O que foi corrigido/melhorado:

Não há mais crash por g_lpDS == NULL.
Suporte real a múltiplos canais (várias instâncias do mesmo som ao mesmo tempo).
Inicialização segura e robusta.
Todos os buffers são duplicados corretamente.
Limpeza completa de recursos.

Somente copiar e colar ele todo bom uso e bora codar


Olá pessoal,
segue abaixo uma correção simples e funcional para evitar erro de desconexão indevida no cliente.

Após aplicar essa alteração, o problema mostrado na imagem abaixo será corrigido:

Erro corrigido:
https://imgur.com/a/KNVFQGN
Abra o arquivo ZzzScene.cpp

Procure pela função: void MainScene(HDC hDC) dentro dela procure por if (EnableSocket && SceneFlag == MAIN_SCENE) e altere tudo o if pelo código abaixo





Offline zHammer #301 Posteado: December 18, 2025, 08:07:59 PM

  • 0 puntos por ventas
  • *
  • Rank: Destacado
  • Posts: 98
  • Gracias recibida: 81
  • es


The animation doesn't match the mouse cursor position; the character doesn't rotate with the mouse.


 pleas3 pleas3 pleas3 pleas3


Offline dotarlz #302 Posteado: December 20, 2025, 10:28:10 AM | Modificado: December 21, 2025, 08:58:00 AM by dotarlz

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 78
  • Gracias recibida: 2
  • bg

Offline erickmalfoy #303 Posteado: December 22, 2025, 01:07:32 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 699
  • Gracias recibida: 852
  • ar
Fixed potential memcpy issue

 


Creo que asi estaria mejor.. !  aplausos


Spoiler for Hiden:

if (DataPtr + 32 > DataBytes)   //--FixErick
{
   delete[] Data;
   return false;
}

memcpy(Textures.FileName, Data + DataPtr, 31);
Textures.FileName[31] = '\0';
DataPtr += 32;

TextureScriptParsing TSParsing;

if (TSParsing.parsingTScript(Textures.FileName))
{
   delete m->m_csTScript; // evita leak si ya existía
   m->m_csTScript = new TextureScript;
   m->m_csTScript->setScript((TextureScript&)TSParsing);
}
else
{
   m->m_csTScript = nullptr;
}

for (i = 0; i < NumActions; i++)
{
   Action_t* a = &Actions;
   a->Loop = false;

   a->NumAnimationKeys = *((short*)(Data + DataPtr));
   DataPtr += 2;

   a->LockPositions = *((bool*)(Data + DataPtr));
   DataPtr += 1;

   delete[] a->Positions;
   a->Positions = nullptr;

   if (a->LockPositions)
   {
      if (a->NumAnimationKeys <= 0 || a->NumAnimationKeys > 2000)
         return false;

      Size = a->NumAnimationKeys * sizeof(vec3_t);

      if (DataPtr + Size > DataBytes)
         return false;

      a->Positions = new vec3_t[a->NumAnimationKeys];
      memcpy(a->Positions, Data + DataPtr, Size);
      DataPtr += Size;
   }
}


for (i = 0; i < NumBones; i++)
{
   Bone_t* b = &Bones;

   b->Dummy = *((char*)(Data + DataPtr));
   DataPtr += 1;

   if (!b->Dummy)
   {
      if (DataPtr + 32 > DataBytes)
         return false;

      memcpy(b->Name, Data + DataPtr, 31);
      b->Name[31] = '\0';
      DataPtr += 32;

      b->Parent = *((short*)(Data + DataPtr));
      DataPtr += 2;

      delete[] b->BoneMatrixes;
      b->BoneMatrixes = new BoneMatrix_t[NumActions];

      for (int j = 0; j < NumActions; j++)
      {
         BoneMatrix_t* bm = &b->BoneMatrixes[j];

         int NumAnimationKeys = Actions[j].NumAnimationKeys;

         if (NumAnimationKeys <= 0 || NumAnimationKeys > 2000)
            return false;

         Size = NumAnimationKeys * sizeof(vec3_t);

         if (DataPtr + (Size * 2) > DataBytes)
            return false;

         delete[] bm->Position;
         delete[] bm->Rotation;
         delete[] bm->Quaternion;

         bm->Position = new vec3_t[NumAnimationKeys];
         bm->Rotation = new vec3_t[NumAnimationKeys];
         bm->Quaternion = new vec4_t[NumAnimationKeys];

         memcpy(bm->Position, Data + DataPtr, Size);
         DataPtr += Size;

         memcpy(bm->Rotation, Data + DataPtr, Size);
         DataPtr += Size;

         for (int k = 0; k < NumAnimationKeys; k++)
         {
            AngleQuaternion(bm->Rotation[k], bm->Quaternion[k]);
         }
      }
   }
}






Offline coolgepds #304 Posteado: December 24, 2025, 09:11:43 PM

  • 0 puntos por ventas
  • *
  • Rank: Destacado
  • Posts: 97
  • Gracias recibida: 42
  • cn
Alguém sabe por que não consigo entrar em "Wolf Soul Fortress"?

Gracias:


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
15 Replies
4215 Views
Last post December 14, 2020, 02:55:43 AM
by h3yShOk
12 Replies
2350 Views
Last post November 27, 2025, 05:22:52 AM
by finalfts24
0 Replies
181 Views
Last post December 15, 2025, 07:06:28 AM
by zhujianhui
1 Replies
387 Views
Last post December 17, 2025, 07:45:03 PM
by bigrealtk92
1 Replies
432 Views
Last post December 18, 2025, 04:07:18 PM
by Odisk