Source Fix Skill Dark Side
stdafx.h
#define FixSkill_DarkSide 1
FixSkillDarkSide.cpp
#include "stdafx.h"
#if(FixSkill_DarkSide)
#include "FixSkillDarkSide.h"
#include "Util.h"
cFixDarkSide FixDarkSide;
cFixDarkSide::cFixDarkSide()
{
Hook();
}
cFixDarkSide::~cFixDarkSide()
{
}
_declspec(naked) void FakeReceiveStraightAttack()
{
static DWORD jumpBACK = 0x00663567;
_asm {
mov dword ptr[ebp - 0x18], eax;
cmp dword ptr[ebp - 0x18], 0x190;
je falseCase;
jmp jumpBACK;
falseCase:
mov eax, dword ptr[ebp - 0x10];
mov dword ptr[ebp - 0x18], eax;
jmp jumpBACK;
}
}
void cFixDarkSide::Hook()
{
MemorySet(0x0066355B, 0x90, 0x0C);
SetCompleteHook(0xE9, 0x0066355B, FakeReceiveStraightAttack);
//0066367F
}
#endif
FixSkillDarkSide.h
#pragma once
#if(FixSkill_DarkSide)
class cFixDarkSide
{
public:
cFixDarkSide();
~cFixDarkSide();
void Init();
void Hook();
private:
};
extern cFixDarkSide FixDarkSide;
#endif
1. Inclusiones y Directivas
#include "stdafx.h": Esto es común en proyectos de Visual Studio y permite la precompilación de encabezados.#if(FixSkill_DarkSide): Esta es una directiva de preprocesador que incluye el código solo siFixSkill_DarkSideestá definido como verdadero.#include "FixSkillDarkSide.h"y#include "Util.h": Se incluyen otros archivos de encabezado que probablemente contienen definiciones y funciones utilizadas en el código.
2. Clase cFixDarkSide
cFixDarkSide FixDarkSide;: Se crea una instancia global de la clasecFixDarkSide.- Constructor y Destructor: El constructor llama a la función
Hook(), que probablemente establece los hooks necesarios para modificar el comportamiento del programa. El destructor está vacío, lo que sugiere que no se necesita limpiar nada.
3. Función FakeReceiveStraightAttack
_declspec(naked): Indica que la función no tiene un marco de pila estándar, lo que permite un control más directo sobre el ensamblador.static DWORD jumpBACK = 0x00663567;: Se define una dirección a la que volver después de ejecutar el código modificado.- Bloque
_asm: Aquí se utiliza ensamblador para manipular registros y la pila:
- Se mueve el valor de
eaxa una dirección de memoria específica.- Se compara este valor con
0x190. Si es igual, salta afalseCase, donde se realizan más manipulaciones antes de regresar a la dirección original.
4. Método Hook
MemorySet(0x0066355B, 0x90, 0x0C);: Este parece ser un método que establece la memoria en una dirección específica, posiblemente reemplazando instrucciones para desactivar ciertas funcionalidades (el valor0x90es el código de operación paraNOP, que no hace nada).SetCompleteHook(0xE9, 0x0066355B, FakeReceiveStraightAttack);: Establece un hook en la dirección0x0066355B, redirigiendo la ejecución aFakeReceiveStraightAttack.
Resumen
Este código modifica el comportamiento de un programa mediante técnicas de hooking, permitiendo que FakeReceiveStraightAttack se ejecute en lugar de la lógica original en una dirección de memoria específica. Esto es común en modificaciones de juegos o aplicaciones para alterar su funcionamiento.

![Cómo agregar las armas Blue Eye + Efectos (S15 Parte 1-2) [Tutorial]](https://www.muserverfiles.com/wp-content/uploads/2025/08/Weapons-Blue-EyeEffects.jpg)
![Cómo agregar el pet Ice Dragon S15 [Tutorial]](https://www.muserverfiles.com/wp-content/uploads/2025/08/Como-agregar-el-pet-Ice-Dragon-S15-Tutorial.webp)
![Ghost Horse + Effects Season 14 [Tutorial]](https://www.muserverfiles.com/wp-content/uploads/2025/08/Ghost-Horse-Effects-Season-14-Tutorial.jpg)