Compare commits
3 Commits
1626f649c5
...
17204aba1d
| Author | SHA1 | Date | |
|---|---|---|---|
| 17204aba1d | |||
| 955e032217 | |||
| bd9cb3776e |
30
CHANGELOG.md
Normal file
30
CHANGELOG.md
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## [2024-11-30] - Build System & Script Engine Fixes
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Release_NoGD Configuration**: Added missing compiler settings (SSE2, OpenMP, warning suppressions) to match Release configuration
|
||||||
|
- **Debug Build Linker Error**: Added `_USE_32BIT_TIME_T` preprocessor definition to GlobalScript Debug configuration to fix `ParsePacket::HandleUserLogin` time_t size mismatch (LNK2019)
|
||||||
|
- **Script Execution Crash**: Implemented VirtualAlloc with PAGE_EXECUTE_READWRITE for JIT code buffer allocation to resolve DEP-related memory access violations
|
||||||
|
- **Standalone Debugging**: Modified `_RYL_TEST` mode to automatically enable `ADMIN_L3` without requiring Login.exe
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- **Working Directory**: Set LocalDebuggerWorkingDirectory to `F:\YouxiLand\ROW` for all configurations to enable proper resource loading during debugging
|
||||||
|
- **Server IP Handling**: Modified `GetServerInfo()` to respect command-line IP arguments even in Debug builds, falling back to `127.0.0.1` only when no IP is provided
|
||||||
|
- **Memory Management**: Enhanced `CVirtualMachine::Destroy()` to properly detect and free VirtualAlloc-allocated memory using VirtualQuery
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **Debug Logging**: Added MCF file decryption logging (`.decrypted.log` files) for script debugging
|
||||||
|
- **Execute State Logging**: Added comprehensive state logging to `script_execute.log` before script execution
|
||||||
|
|
||||||
|
### Technical Details
|
||||||
|
- MCF XOR encryption key: `0x82fac623 ^ 0x601f1ac4`
|
||||||
|
- Stack reserve size increased to 8MB for Debug configuration
|
||||||
|
- Code buffer now allocated with executable permissions for JIT execution compatibility with Windows 10/11 DEP
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
- Visual Studio 2010 project
|
||||||
|
- DirectX 8 graphics API
|
||||||
|
- Custom JIT script engine with x86 machine code execution
|
||||||
Binary file not shown.
@@ -100,7 +100,7 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<AdditionalIncludeDirectories>./;../../MemoryManager;../RYLClient/RYLClient;../../Engine/Zalla3D Base Class;./GameGuardLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>./;../../MemoryManager;../RYLClient/RYLClient;../../Engine/Zalla3D Base Class;./GameGuardLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_RYL_GAME_CLIENT_;NO_GAMEGUARD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_RYL_GAME_CLIENT_;NO_GAMEGUARD;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
|
|||||||
@@ -75,12 +75,18 @@
|
|||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../Executable/$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../Executable/$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../Intermediate/$(ProjectName)/$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../Intermediate/$(ProjectName)/$(Configuration)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||||
|
<LocalDebuggerWorkingDirectory Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">F:\YouxiLand\ROW</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WindowsLocalDebugger</DebuggerFlavor>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../Executable/$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../Executable/$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../Intermediate/$(ProjectName)/$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../Intermediate/$(ProjectName)/$(Configuration)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||||
|
<LocalDebuggerWorkingDirectory Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">F:\YouxiLand\ROW</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WindowsLocalDebugger</DebuggerFlavor>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_NoGD|Win32'">../../Executable/$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_NoGD|Win32'">../../Executable/$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_NoGD|Win32'">../../Intermediate/$(ProjectName)/$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_NoGD|Win32'">../../Intermediate/$(ProjectName)/$(Configuration)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_NoGD|Win32'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_NoGD|Win32'">false</LinkIncremental>
|
||||||
|
<LocalDebuggerWorkingDirectory Condition="'$(Configuration)|$(Platform)'=='Release_NoGD|Win32'">F:\YouxiLand\ROW</LocalDebuggerWorkingDirectory>
|
||||||
|
<DebuggerFlavor Condition="'$(Configuration)|$(Platform)'=='Release_NoGD|Win32'">WindowsLocalDebugger</DebuggerFlavor>
|
||||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_MY|Win32'">../../Executable/$(Configuration)\</OutDir>
|
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_MY|Win32'">../../Executable/$(Configuration)\</OutDir>
|
||||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_MY|Win32'">../../Intermediate/$(ProjectName)/$(Configuration)\</IntDir>
|
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release_MY|Win32'">../../Intermediate/$(ProjectName)/$(Configuration)\</IntDir>
|
||||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_MY|Win32'">false</LinkIncremental>
|
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release_MY|Win32'">false</LinkIncremental>
|
||||||
@@ -120,17 +126,17 @@
|
|||||||
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
|
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
|
||||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>Effect.lib;SoundLib.lib;Caldron.lib;Zalla3DBaseClass.lib;GlobalScript.lib;ScriptEngine.lib;CharacterActionControl.lib;ws2_32.lib;dsound.lib;eaxguid.lib;d3d8.lib;d3dx8.lib;dxguid.lib;dinput8.lib;shlwapi.lib;ole32.lib;wbemuuid.lib;winmm.lib;dxerr8.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;ijl15.lib;imm32.lib;../../Engine/SoundLib/vorbis_sdk/lib/ogg_static_d.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbis_static_d.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbisfile_static_d.lib;luad.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Effect.lib;SoundLib.lib;Caldron.lib;Zalla3DBaseClass.lib;GlobalScript.lib;ScriptEngine.lib;CharacterActionControl.lib;ws2_32.lib;dsound.lib;eaxguid.lib;d3d8.lib;d3dx8.lib;dxguid.lib;dinput8.lib;shlwapi.lib;ole32.lib;wbemuuid.lib;winmm.lib;dxerr8.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;ijl15.lib;imm32.lib;../../Engine/SoundLib/vorbis_sdk/lib/ogg_static_d.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbis_static_d.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbisfile_static_d.lib;luad.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(OutDir)Client.exe</OutputFile>
|
<OutputFile>F:\YouxiLand\ROW\Client.exe</OutputFile>
|
||||||
<AdditionalLibraryDirectories>../../Engine/SoundLib/vorbis_sdk/lib;../../Library/$(Configuration)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>../../Engine/SoundLib/vorbis_sdk/lib;../../Library/$(Configuration)</AdditionalLibraryDirectories>
|
||||||
<IgnoreSpecificDefaultLibraries>LIBC;LIBCD;MSVCRT;MSVCRTD;LIBCMT;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
<IgnoreSpecificDefaultLibraries>LIBC;LIBCD;MSVCRT;MSVCRTD;LIBCMT;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<ProgramDatabaseFile>$(OutDir)Client.pdb</ProgramDatabaseFile>
|
<ProgramDatabaseFile>$(OutDir)Client.pdb</ProgramDatabaseFile>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<StackReserveSize>
|
<StackReserveSize>8388608</StackReserveSize>
|
||||||
</StackReserveSize>
|
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<EnableUAC>false</EnableUAC>
|
<EnableUAC>false</EnableUAC>
|
||||||
<UACExecutionLevel>HighestAvailable</UACExecutionLevel>
|
<UACExecutionLevel>HighestAvailable</UACExecutionLevel>
|
||||||
@@ -154,6 +160,7 @@
|
|||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
<OpenMPSupport>true</OpenMPSupport>
|
<OpenMPSupport>true</OpenMPSupport>
|
||||||
<DisableSpecificWarnings>4996;4819;4482;%(DisableSpecificWarnings);4566;4819</DisableSpecificWarnings>
|
<DisableSpecificWarnings>4996;4819;4482;%(DisableSpecificWarnings);4566;4819</DisableSpecificWarnings>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;dsound.lib;eaxguid.lib;d3d8.lib;d3dx8.lib;dxguid.lib;dinput8.lib;shlwapi.lib;ole32.lib;wbemuuid.lib;winmm.lib;dxerr8.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;ijl15.lib;imm32.lib;lua.lib;../../Engine/SoundLib/vorbis_sdk/lib/ogg_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbis_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbisfile_static.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;dsound.lib;eaxguid.lib;d3d8.lib;d3dx8.lib;dxguid.lib;dinput8.lib;shlwapi.lib;ole32.lib;wbemuuid.lib;winmm.lib;dxerr8.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;ijl15.lib;imm32.lib;lua.lib;../../Engine/SoundLib/vorbis_sdk/lib/ogg_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbis_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbisfile_static.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
@@ -185,12 +192,14 @@
|
|||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
|
||||||
|
<OpenMPSupport>true</OpenMPSupport>
|
||||||
|
<DisableSpecificWarnings>4996;4819;4482;%(DisableSpecificWarnings);4566;4819</DisableSpecificWarnings>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;dsound.lib;eaxguid.lib;d3d8.lib;d3dx8.lib;dxguid.lib;dinput8.lib;shlwapi.lib;ole32.lib;wbemuuid.lib;winmm.lib;dxerr8.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;ijl15.lib;imm32.lib;lua.lib;../../Engine/SoundLib/vorbis_sdk/lib/ogg_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbis_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbisfile_static.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;dsound.lib;eaxguid.lib;d3d8.lib;d3dx8.lib;dxguid.lib;dinput8.lib;shlwapi.lib;ole32.lib;wbemuuid.lib;winmm.lib;dxerr8.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;ijl15.lib;imm32.lib;lua.lib;../../Engine/SoundLib/vorbis_sdk/lib/ogg_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbis_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbisfile_static.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<OutputFile>$(OutDir)Client.exe</OutputFile>
|
<OutputFile>$(OutDir)Client.exe</OutputFile>
|
||||||
<AdditionalLibraryDirectories>../../Engine/SoundLib/vorbis_sdk/lib;../../Library/$(Configuration)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>../../Engine/SoundLib/vorbis_sdk/lib;../..\Library\$(Configuration)</AdditionalLibraryDirectories>
|
||||||
<IgnoreSpecificDefaultLibraries>LIBC;LIBCD;MSVCRT;MSVCRTD;LIBCMTD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<ProgramDatabaseFile>$(OutDir)Client.pdb</ProgramDatabaseFile>
|
<ProgramDatabaseFile>$(OutDir)Client.pdb</ProgramDatabaseFile>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@@ -198,10 +207,14 @@
|
|||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<TargetMachine>MachineX86</TargetMachine>
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
<ManifestFile>Client.exe.manifest</ManifestFile>
|
<ManifestFile>Client.exe.manifest</ManifestFile>
|
||||||
|
<IgnoreSpecificDefaultLibraries>LIBC;LIBCD;MSVCRT;MSVCRTD;LIBCMTD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||||
</Link>
|
</Link>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
|
<ProjectReference>
|
||||||
|
<UseLibraryDependencyInputs>true</UseLibraryDependencyInputs>
|
||||||
|
</ProjectReference>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_MY|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_MY|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
@@ -212,6 +225,7 @@
|
|||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;dsound.lib;eaxguid.lib;d3d8.lib;d3dx8.lib;shlwapi.lib;ole32.lib;wbemuuid.lib;winmm.lib;dxguid.lib;dxerr8.lib;dinput8.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;ijl15.lib;imm32.lib;../../Engine/SoundLib/vorbis_sdk/lib/ogg_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbis_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbisfile_static.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;dsound.lib;eaxguid.lib;d3d8.lib;d3dx8.lib;shlwapi.lib;ole32.lib;wbemuuid.lib;winmm.lib;dxguid.lib;dxerr8.lib;dinput8.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;ijl15.lib;imm32.lib;../../Engine/SoundLib/vorbis_sdk/lib/ogg_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbis_static.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbisfile_static.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
@@ -241,6 +255,7 @@
|
|||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||||
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>ws2_32.lib;dsound.lib;eaxguid.lib;d3d8.lib;d3dx8.lib;dxguid.lib;dinput8.lib;shlwapi.lib;ole32.lib;wbemuuid.lib;winmm.lib;dxerr8.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;ijl15.lib;imm32.lib;../../Engine/SoundLib/vorbis_sdk/lib/ogg_static_d.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbis_static_d.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbisfile_static_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>ws2_32.lib;dsound.lib;eaxguid.lib;d3d8.lib;d3dx8.lib;dxguid.lib;dinput8.lib;shlwapi.lib;ole32.lib;wbemuuid.lib;winmm.lib;dxerr8.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;ijl15.lib;imm32.lib;../../Engine/SoundLib/vorbis_sdk/lib/ogg_static_d.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbis_static_d.lib;../../Engine/SoundLib/vorbis_sdk/lib/vorbisfile_static_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<LocalDebuggerCommand>$(OutDir)Client.exe</LocalDebuggerCommand>
|
<LocalDebuggerCommand>F:\YouxiLand\ROW\Client.exe</LocalDebuggerCommand>
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
|
|
||||||
// <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>켱<EFBFBD>ϴ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
// <20>Ʒ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>켱<EFBFBD>ϴ<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͻʽÿ<CABD>.
|
||||||
#ifndef _WIN32_WINNT // Windows NT 4 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
#ifndef _WIN32_WINNT // Windows NT 4 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||||
#define _WIN32_WINNT 0x0501 // Windows XP
|
#define _WIN32_WINNT 0x0501 // Windows XP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ DECLARE_ANTIHACK();
|
|||||||
#include "RYLSceneObject.h"
|
#include "RYLSceneObject.h"
|
||||||
#include "RYLIntroScene.h"
|
#include "RYLIntroScene.h"
|
||||||
#include "RYLLoginScene.h"
|
#include "RYLLoginScene.h"
|
||||||
// WORK_LIST 2.2 NationSelectScene <20≯<EFBFBD> <20><><EFBFBD><EFBFBD>
|
// WORK_LIST 2.2 NationSelectScene <20≯<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
#include "RYLRaceSelectScene.h"
|
#include "RYLRaceSelectScene.h"
|
||||||
#include "RYLCharacterSelectScene.h"
|
#include "RYLCharacterSelectScene.h"
|
||||||
#include "RYLLoadingScene.h"
|
#include "RYLLoadingScene.h"
|
||||||
@@ -104,7 +104,7 @@ DECLARE_ANTIHACK();
|
|||||||
|
|
||||||
#include "RYLGameTimeManager.h"
|
#include "RYLGameTimeManager.h"
|
||||||
|
|
||||||
// <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD> <20>ν<EFBFBD><CEBD><EFBFBD> <20><><EFBFBD><EFBFBD> WMI API<50><49> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
// <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD> <20>ν<EFBFBD><CEBD><EFBFBD> <20><><EFBFBD><EFBFBD> WMI API<50><49> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||||
#include <Wbemidl.h>
|
#include <Wbemidl.h>
|
||||||
#include <atlbase.h>
|
#include <atlbase.h>
|
||||||
|
|
||||||
@@ -182,7 +182,7 @@ BOOL WINAPI AntiFunc(HINSTANCE hInstance)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
// dump <20><EFBFBD>Ʈ
|
// dump <20><EFBFBD>Ʈ
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int a = 0;
|
int a = 0;
|
||||||
a = 15;
|
a = 15;
|
||||||
@@ -241,7 +241,7 @@ int WINAPI ExceptionUserFunc(TCHAR* szBuffer, const int nBufferSize)
|
|||||||
if ( pData )
|
if ( pData )
|
||||||
zone = pData->m_dwPresentZone;
|
zone = pData->m_dwPresentZone;
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD> Ÿ<><C5B8>
|
// <20><><EFBFBD><EFBFBD> Ÿ<><C5B8>
|
||||||
char szServerInfo[MAX_PATH] = "";
|
char szServerInfo[MAX_PATH] = "";
|
||||||
if ( CRYLNetworkData::Instance() )
|
if ( CRYLNetworkData::Instance() )
|
||||||
{
|
{
|
||||||
@@ -253,7 +253,7 @@ int WINAPI ExceptionUserFunc(TCHAR* szBuffer, const int nBufferSize)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// OS <20><><EFBFBD><EFBFBD>
|
// OS <20><><EFBFBD><EFBFBD>
|
||||||
char szOSInfo[MAX_PATH] = "";
|
char szOSInfo[MAX_PATH] = "";
|
||||||
OSVERSIONINFOEX osvi;
|
OSVERSIONINFOEX osvi;
|
||||||
|
|
||||||
@@ -342,19 +342,19 @@ int WINAPI ExceptionUserFunc(TCHAR* szBuffer, const int nBufferSize)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// <20><EFBFBD><D7B7><EFBFBD> ī<><C4AB> <20><><EFBFBD><EFBFBD>
|
// <20><EFBFBD><D7B7><EFBFBD> ī<><C4AB> <20><><EFBFBD><EFBFBD>
|
||||||
LogDisplay( szBuffer );
|
LogDisplay( szBuffer );
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<><C4AB> <20><><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD> ī<><C4AB> <20><><EFBFBD><EFBFBD>
|
||||||
LogSoundDrv( szBuffer );
|
LogSoundDrv( szBuffer );
|
||||||
|
|
||||||
// CPU <20><><EFBFBD><EFBFBD>
|
// CPU <20><><EFBFBD><EFBFBD>
|
||||||
LogCPU( szBuffer );
|
LogCPU( szBuffer );
|
||||||
|
|
||||||
// MainBoard <20><><EFBFBD><EFBFBD>
|
// MainBoard <20><><EFBFBD><EFBFBD>
|
||||||
if ( osvi.dwMajorVersion == 4 )
|
if ( osvi.dwMajorVersion == 4 )
|
||||||
{
|
{
|
||||||
if ( osvi.dwMinorVersion == 90 ) // <20><>Me
|
if ( osvi.dwMinorVersion == 90 ) // <20><>Me
|
||||||
{
|
{
|
||||||
LogMainBoard( szBuffer );
|
LogMainBoard( szBuffer );
|
||||||
LogMemory( szBuffer );
|
LogMemory( szBuffer );
|
||||||
@@ -382,7 +382,7 @@ LONG __stdcall UserUnhandledExceptionFilterEx(PEXCEPTION_POINTERS pExceptionInfo
|
|||||||
{
|
{
|
||||||
if(Exception::ExceptionSaveDump)
|
if(Exception::ExceptionSaveDump)
|
||||||
{
|
{
|
||||||
// <20><><EFBFBD>ܸ<EFBFBD> ȣ<><C8A3><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>̴<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
// <20><><EFBFBD>ܸ<EFBFBD> ȣ<><C8A3><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>̴<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||||
char dumpfile[512];
|
char dumpfile[512];
|
||||||
|
|
||||||
if(strlen(Exception::DefaultDumpFileName) == 0)
|
if(strlen(Exception::DefaultDumpFileName) == 0)
|
||||||
@@ -396,8 +396,8 @@ LONG __stdcall UserUnhandledExceptionFilterEx(PEXCEPTION_POINTERS pExceptionInfo
|
|||||||
else
|
else
|
||||||
strcpy(dumpfile, Exception::DefaultDumpFileName);
|
strcpy(dumpfile, Exception::DefaultDumpFileName);
|
||||||
|
|
||||||
// <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƾ<EFBFBD><C6BE> Execption <20><><EFBFBD><EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD> <20>ֵ<EFBFBD><D6B5><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
// <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƾ<EFBFBD><C6BE> Execption <20><><EFBFBD><EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD> <20>ֵ<EFBFBD><D6B5><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||||
// <20>̴ϴ<CCB4><CFB4><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
// <20>̴ϴ<CCB4><CFB4><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||||
MiniDump(dumpfile, pExceptionInfo);
|
MiniDump(dumpfile, pExceptionInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -420,15 +420,15 @@ int _stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
|
|||||||
|
|
||||||
// MessageBox(NULL, lpCmdLine, "aa", MB_OK);
|
// MessageBox(NULL, lpCmdLine, "aa", MB_OK);
|
||||||
|
|
||||||
// <20>ӽ<EFBFBD>
|
// <20>ӽ<EFBFBD>
|
||||||
// ::CopyFile(_T(".\\ROWYouxi.mcf"), _T(".\\GameGuard\\Splash.jpg"), FALSE);
|
// ::CopyFile(_T(".\\ROWYouxi.mcf"), _T(".\\GameGuard\\Splash.jpg"), FALSE);
|
||||||
|
|
||||||
// <20><>ü <20>Լ<EFBFBD> Exception <20><><EFBFBD><EFBFBD>
|
// <20><>ü <20>Լ<EFBFBD> Exception <20><><EFBFBD>
|
||||||
Exception::EnableUnhandledExceptioinFilterEx(UserUnhandledExceptionFilterEx, true);
|
Exception::EnableUnhandledExceptioinFilterEx(UserUnhandledExceptionFilterEx, true);
|
||||||
|
|
||||||
// Ǯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
// Ǯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
Exception::SetDumpType(Exception::NormalDump);
|
Exception::SetDumpType(Exception::NormalDump);
|
||||||
// Dump <20><><EFBFBD><EFBFBD>
|
// Dump <20><><EFBFBD><EFBFBD>
|
||||||
Exception::EnableSaveDump(true);
|
Exception::EnableSaveDump(true);
|
||||||
|
|
||||||
USE_ANTIHACK1();
|
USE_ANTIHACK1();
|
||||||
@@ -452,17 +452,17 @@ CClientMain::CClientMain()
|
|||||||
m_hnProtectLib = NULL;
|
m_hnProtectLib = NULL;
|
||||||
m_wClientLoginFlag = 0;
|
m_wClientLoginFlag = 0;
|
||||||
|
|
||||||
#ifdef NDEBUG
|
#if defined(NDEBUG) && !defined(_RYL_TEST)
|
||||||
m_wAdminMode = ADMIN_NONE; // <20>Ϲ<EFBFBD><CFB9><EFBFBD>
|
m_wAdminMode = ADMIN_NONE; // <20>Ϲ<EFBFBD><CFB9><EFBFBD>
|
||||||
m_bUDPInfo = false;
|
m_bUDPInfo = false;
|
||||||
#else
|
#else
|
||||||
m_wAdminMode = ADMIN_L3; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
m_wAdminMode = ADMIN_L3; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
m_bUDPInfo = true;
|
m_bUDPInfo = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_lpD3DDevice = NULL ;
|
m_lpD3DDevice = NULL ;
|
||||||
|
|
||||||
// <20><><EFBFBD>̽<EFBFBD>ƽ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ (2006-05-15 by hackermz)
|
// <20><><EFBFBD>̽<EFBFBD>ƽ <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ (2006-05-15 by hackermz)
|
||||||
m_dwUseJoystick = 0;
|
m_dwUseJoystick = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -522,7 +522,7 @@ bool CClientMain::InitCreateGameClass()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
//========================================================================
|
//========================================================================
|
||||||
// GameData<74><61> NetWork Data <20><><EFBFBD><EFBFBD>
|
// GameData<74><61> NetWork Data <20><><EFBFBD><EFBFBD>
|
||||||
m_pRYLGameData = new CRYLGameData ;
|
m_pRYLGameData = new CRYLGameData ;
|
||||||
|
|
||||||
m_pRYLNetworkData = new CRYLNetworkData(
|
m_pRYLNetworkData = new CRYLNetworkData(
|
||||||
@@ -566,7 +566,7 @@ VOID CClientMain::GetJapanServerInfo()
|
|||||||
|
|
||||||
char strGameCode[ MAX_PATH ];
|
char strGameCode[ MAX_PATH ];
|
||||||
char strArgText[ MAX_PATH ], strAccountArg[ MAX_PATH ] ;
|
char strArgText[ MAX_PATH ], strAccountArg[ MAX_PATH ] ;
|
||||||
strcpy( strGameCode, "209551D1-DE8A-40CF-BF54-152D7C17A62F" ) ;//<2F><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>
|
strcpy( strGameCode, "209551D1-DE8A-40CF-BF54-152D7C17A62F" ) ;//<2F><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>
|
||||||
|
|
||||||
char *pLast = strCommandLine ;
|
char *pLast = strCommandLine ;
|
||||||
sscanf( pLast, "%s %d %s", CRYLNetworkData::m_strIP, &CRYLNetworkData::m_dwServerID, &strArgText ) ;
|
sscanf( pLast, "%s %d %s", CRYLNetworkData::m_strIP, &CRYLNetworkData::m_dwServerID, &strArgText ) ;
|
||||||
@@ -584,7 +584,7 @@ USES_CONVERSION;
|
|||||||
return FALSE ;
|
return FALSE ;
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy( m_pRYLNetworkData->m_strLoginID, OLE2T( bstrGameID ) ) ;//<2F><><EFBFBD><EFBFBD> -- Game<6D><65> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID
|
strcpy( m_pRYLNetworkData->m_strLoginID, OLE2T( bstrGameID ) ) ;//<2F><><EFBFBD> -- Game<6D><65> <20><><EFBFBD><EFBFBD><EFBFBD> ID
|
||||||
m_pRYLNetworkData->m_dwUserID = atoi( m_pRYLNetworkData->m_strLoginID ) ;
|
m_pRYLNetworkData->m_dwUserID = atoi( m_pRYLNetworkData->m_strLoginID ) ;
|
||||||
|
|
||||||
SysAllocString( bstrGameID ) ;
|
SysAllocString( bstrGameID ) ;
|
||||||
@@ -603,6 +603,10 @@ VOID CClientMain::GetServerInfo( HWND hWnd )
|
|||||||
{
|
{
|
||||||
char *strCommandLine = GetCommandLine() ;
|
char *strCommandLine = GetCommandLine() ;
|
||||||
|
|
||||||
|
// 기본값으로 초기화
|
||||||
|
strcpy(CRYLNetworkData::m_strIP, "");
|
||||||
|
CRYLNetworkData::m_dwServerID = 0;
|
||||||
|
|
||||||
if ( hWnd )
|
if ( hWnd )
|
||||||
{
|
{
|
||||||
char *pLast = strCommandLine ;
|
char *pLast = strCommandLine ;
|
||||||
@@ -612,12 +616,19 @@ VOID CClientMain::GetServerInfo( HWND hWnd )
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
char *pLast = strrchr( strCommandLine, '"' ) ;
|
char *pLast = strrchr( strCommandLine, '"' ) ;
|
||||||
|
if (pLast)
|
||||||
|
{
|
||||||
pLast += 2 ;
|
pLast += 2 ;
|
||||||
sscanf( pLast,"%s %d", CRYLNetworkData::m_strIP, &CRYLNetworkData::m_dwServerID ) ;
|
sscanf( pLast,"%s %d", CRYLNetworkData::m_strIP, &CRYLNetworkData::m_dwServerID ) ;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
// 명령줄에서 IP를 받지 못한 경우에만 기본값 사용
|
||||||
|
if (strlen(CRYLNetworkData::m_strIP) == 0 || strcmp(CRYLNetworkData::m_strIP, "") == 0)
|
||||||
|
{
|
||||||
strcpy(CRYLNetworkData::m_strIP, "127.0.0.1");
|
strcpy(CRYLNetworkData::m_strIP, "127.0.0.1");
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
if ( m_wAdminMode == ADMIN_L3 )
|
if ( m_wAdminMode == ADMIN_L3 )
|
||||||
@@ -640,11 +651,11 @@ unsigned long CClientMain::ClientProc(HWND hWnd, unsigned int uMsg, WPARAM wPara
|
|||||||
{
|
{
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
{
|
{
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
unsigned long dwCounter = 10000;
|
unsigned long dwCounter = 10000;
|
||||||
if ( m_wAdminMode > SUPPORTER)
|
if ( m_wAdminMode > SUPPORTER)
|
||||||
{
|
{
|
||||||
// <20><EFBFBD>ڴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
// <20><EFBFBD>ڴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
dwCounter = 3000;
|
dwCounter = 3000;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -794,7 +805,7 @@ unsigned long CClientMain::ClientProc(HWND hWnd, unsigned int uMsg, WPARAM wPara
|
|||||||
{
|
{
|
||||||
if (wParam == 255)
|
if (wParam == 255)
|
||||||
{
|
{
|
||||||
// nProtect <20>˻<EFBFBD>
|
// nProtect <20>˻<EFBFBD>
|
||||||
m_pRYLNetworkData->ChecknProtect( m_hWnd ) ;
|
m_pRYLNetworkData->ChecknProtect( m_hWnd ) ;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -897,10 +908,10 @@ unsigned long CClientMain::CheckOCTREE()
|
|||||||
|
|
||||||
BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
||||||
{
|
{
|
||||||
// edith 2009.12.26 <20>ٽ<EFBFBD><D9BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD>.
|
// edith 2009.12.26 <20>ٽ<EFBFBD><D9BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>.
|
||||||
if(!CRYLNetworkData::UpdateHShield())
|
if(!CRYLNetworkData::UpdateHShield())
|
||||||
{
|
{
|
||||||
MessageBox(NULL, "<EFBFBD>ٽ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>.", "ERROR", MB_OK);
|
MessageBox(NULL, "<EFBFBD>ٽ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>.", "ERROR", MB_OK);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1018,7 +1029,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// <20><><EFBFBD>̽<EFBFBD>ƽ <20><><EFBFBD><EFBFBD>
|
// <20><><EFBFBD>̽<EFBFBD>ƽ <20><><EFBFBD><EFBFBD>
|
||||||
if(ERROR_SUCCESS != RegQueryValueEx(hMPClientReg, "UseJoyStick", 0, NULL, (LPBYTE)&m_dwUseJoystick, &dwReadLens))
|
if(ERROR_SUCCESS != RegQueryValueEx(hMPClientReg, "UseJoyStick", 0, NULL, (LPBYTE)&m_dwUseJoystick, &dwReadLens))
|
||||||
{
|
{
|
||||||
m_dwUseJoystick = 0;
|
m_dwUseJoystick = 0;
|
||||||
@@ -1034,13 +1045,13 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
|
|
||||||
if (m_pRYLNetworkData->m_eInternationalCode == GameRYL::KOREA)
|
if (m_pRYLNetworkData->m_eInternationalCode == GameRYL::KOREA)
|
||||||
{
|
{
|
||||||
// myFirewall <20>ʱ<EFBFBD>ȭ
|
// myFirewall <20>ʱ<EFBFBD>ȭ
|
||||||
myfirewall::On();
|
myfirewall::On();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
using namespace SystemInfo;
|
using namespace SystemInfo;
|
||||||
|
|
||||||
CSystemInfo* pSystemInfo;
|
CSystemInfo* pSystemInfo;
|
||||||
@@ -1057,7 +1068,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
|
|
||||||
bool bSave = false;
|
bool bSave = false;
|
||||||
|
|
||||||
// <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. //
|
// <20>ּ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. //
|
||||||
if(CRenderOption::m_CharacterProjectShadowTerrain!=0) bSave = true;
|
if(CRenderOption::m_CharacterProjectShadowTerrain!=0) bSave = true;
|
||||||
else if(CRenderOption::m_BuildingLightmap!=0) bSave = true;
|
else if(CRenderOption::m_BuildingLightmap!=0) bSave = true;
|
||||||
else if(CRenderOption::m_ObjectLOD!=1) bSave = true;
|
else if(CRenderOption::m_ObjectLOD!=1) bSave = true;
|
||||||
@@ -1097,8 +1108,8 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
delete pSystemInfo;
|
delete pSystemInfo;
|
||||||
pSystemInfo = NULL;
|
pSystemInfo = NULL;
|
||||||
|
|
||||||
// edith 2009.02.14 <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>.
|
// edith 2009.02.14 <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>.
|
||||||
// <20><><EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>־ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>.
|
// <20><><EFBFBD><EFBFBD> <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>־ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
CSceneManager::m_SkillWeatherEffect = static_cast<bool>(CRenderOption::m_bWeather);
|
CSceneManager::m_SkillWeatherEffect = static_cast<bool>(CRenderOption::m_bWeather);
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
@@ -1148,7 +1159,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// <20><>Ʈ<EFBFBD><C6AE> üũ<C3BC><C5A9> <20>˻<EFBFBD>
|
// <20><>Ʈ<EFBFBD><C6AE> üũ<C3BC><C5A9> <20>˻<EFBFBD>
|
||||||
dwTemp = CheckOCTREE();
|
dwTemp = CheckOCTREE();
|
||||||
dwCrc[0] = dwCrc[0] ^ dwTemp;
|
dwCrc[0] = dwCrc[0] ^ dwTemp;
|
||||||
|
|
||||||
@@ -1168,7 +1179,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
}
|
}
|
||||||
dwCrc[1] = dwCrc[1]^dwTemp;
|
dwCrc[1] = dwCrc[1]^dwTemp;
|
||||||
|
|
||||||
// <20><>Ʋ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>.
|
// <20><>Ʋ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||||
if (GameRYL::SERVER_BATTLE_LOHAN == m_pRYLNetworkData->m_eServerType)
|
if (GameRYL::SERVER_BATTLE_LOHAN == m_pRYLNetworkData->m_eServerType)
|
||||||
{
|
{
|
||||||
sprintf(strScriptPath, "%s\\Language\\%s\\BGItemScript.gsf", m_strClientPath, szLanguage[i]);
|
sprintf(strScriptPath, "%s\\Language\\%s\\BGItemScript.gsf", m_strClientPath, szLanguage[i]);
|
||||||
@@ -1219,7 +1230,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
MessageBox(NULL, CRYLStringTable::m_strString[22], CRYLStringTable::m_strString[21], MB_OK);
|
MessageBox(NULL, CRYLStringTable::m_strString[22], CRYLStringTable::m_strString[21], MB_OK);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
// <20><>Ʋ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>.
|
// <20><>Ʋ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||||
if (GameRYL::SERVER_BATTLE_LOHAN == m_pRYLNetworkData->m_eServerType)
|
if (GameRYL::SERVER_BATTLE_LOHAN == m_pRYLNetworkData->m_eServerType)
|
||||||
{
|
{
|
||||||
sprintf(strScriptPath, "%s\\BGItemScript.gsf", m_strClientPath);
|
sprintf(strScriptPath, "%s\\BGItemScript.gsf", m_strClientPath);
|
||||||
@@ -1279,7 +1290,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// <20><>üũ
|
// <20><>üũ
|
||||||
sprintf(strScriptPath, "%s\\zone1.z3s", m_strClientPath);
|
sprintf(strScriptPath, "%s\\zone1.z3s", m_strClientPath);
|
||||||
if (CCrc32Static::FileCrc32Assembly(strScriptPath, dwTemp) != NO_ERROR)
|
if (CCrc32Static::FileCrc32Assembly(strScriptPath, dwTemp) != NO_ERROR)
|
||||||
{
|
{
|
||||||
@@ -1372,16 +1383,16 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
// m_dwVersion = m_dwVersion ^ dwCrc[12];
|
// m_dwVersion = m_dwVersion ^ dwCrc[12];
|
||||||
|
|
||||||
#ifdef _RYL_TEST
|
#ifdef _RYL_TEST
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> üũ<C3BC><C5A9>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> üũ<C3BC><C5A9>.
|
||||||
m_dwVersion = 0xfeef66b3;
|
m_dwVersion = 0xfeef66b3;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//#ifndef NDEBUG
|
//#ifndef NDEBUG
|
||||||
// switch (m_pRYLNetworkData->m_eServerType)
|
// switch (m_pRYLNetworkData->m_eServerType)
|
||||||
// {
|
// {
|
||||||
// case GameRYL::SERVER_TEST: m_dwVersion = 0x2e07d9fa; break; // <20><EFBFBD>
|
// case GameRYL::SERVER_TEST: m_dwVersion = 0x2e07d9fa; break; // <20><EFBFBD>
|
||||||
// case GameRYL::SERVER_REGULAR: m_dwVersion = 0xb332c5fb; break; // <20><><EFBFBD><EFBFBD>
|
// case GameRYL::SERVER_REGULAR: m_dwVersion = 0xb332c5fb; break; // <20><><EFBFBD><EFBFBD>
|
||||||
// case GameRYL::SERVER_BATTLE_LOHAN: m_dwVersion = 0x00000001; break; // <20>輷
|
// case GameRYL::SERVER_BATTLE_LOHAN: m_dwVersion = 0x00000001; break; // <20>輷
|
||||||
// }
|
// }
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
@@ -1394,18 +1405,18 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
g_pClientSocket = ClientSocket::CreateInstance();
|
g_pClientSocket = ClientSocket::CreateInstance();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// <20><><EFBFBD>뷱<EFBFBD><EBB7B1> <20>۾<EFBFBD> <20><> <20><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20>κ<EFBFBD>
|
// <20><><EFBFBD>뷱<EFBFBD><EBB7B1> <20>۾<EFBFBD> <20><> <20><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ǵ<EFBFBD> <20>κ<EFBFBD>
|
||||||
char strLogFilePath[MAX_PATH] ;
|
char strLogFilePath[MAX_PATH] ;
|
||||||
sprintf(strLogFilePath, "%s\\NetworkLog.txt", m_strClientPath);
|
sprintf(strLogFilePath, "%s\\NetworkLog.txt", m_strClientPath);
|
||||||
g_pSessionMgr->NetworkLog(strLogFilePath);
|
g_pSessionMgr->NetworkLog(strLogFilePath);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// <20><><EFBFBD>̽<EFBFBD>ƽ <20>ʱ<EFBFBD>ȭ //
|
// <20><><EFBFBD>̽<EFBFBD>ƽ <20>ʱ<EFBFBD>ȭ //
|
||||||
// <20>ѱ<EFBFBD><D1B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ƵӴϴ<D3B4>. (2006-05-02 by hackermz)
|
// <20>ѱ<EFBFBD><D1B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ƵӴϴ<D3B4>. (2006-05-02 by hackermz)
|
||||||
// <20><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> UseJoystick <20><EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>. (2006-05-15 by hackermz)
|
// <20><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> UseJoystick <20><EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>. (2006-05-15 by hackermz)
|
||||||
// if (GameRYL::KOREA != m_pRYLNetworkData->m_eInternationalCode)
|
// if (GameRYL::KOREA != m_pRYLNetworkData->m_eInternationalCode)
|
||||||
|
|
||||||
// edith <20><><EFBFBD>̽<EFBFBD>ƽ <20><><EFBFBD><EFBFBD>.
|
// edith <20><><EFBFBD>̽<EFBFBD>ƽ <20><><EFBFBD><EFBFBD>.
|
||||||
CInputDevice::GetInstance()->Initialize(m_hWnd, false, false, true);
|
CInputDevice::GetInstance()->Initialize(m_hWnd, false, false, true);
|
||||||
/*
|
/*
|
||||||
if (1 == GetUseJoystick())
|
if (1 == GetUseJoystick())
|
||||||
@@ -1422,9 +1433,9 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
CEnumD3D::m_nDevice = m_InitValue.m_nDevice;
|
CEnumD3D::m_nDevice = m_InitValue.m_nDevice;
|
||||||
CEnumD3D::m_nMode = m_InitValue.m_nMode;
|
CEnumD3D::m_nMode = m_InitValue.m_nMode;
|
||||||
|
|
||||||
// edith 2008.01.18 ShowState<74><65> <20><><EFBFBD><EFBFBD> false->true<75><65> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
// edith 2008.01.18 ShowState<74><65> <20><><EFBFBD><EFBFBD> false->true<75><65> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
// showState<74><65> true <20≯<EFBFBD> <20><><EFBFBD>Ľ<EFBFBD> <20><><EFBFBD>۸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7B7><EFBFBD>ī<EFBFBD><C4AB><EFBFBD><EFBFBD> Ư<><C6AF><EFBFBD><EFBFBD> <20>缭 <20>ʱ<EFBFBD>ȭ<EFBFBD><C8AD>
|
// showState<74><65> true <20≯<EFBFBD> <20><><EFBFBD>Ľ<EFBFBD> <20><><EFBFBD>۸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7B7><EFBFBD>ī<EFBFBD><C4AB><EFBFBD><EFBFBD> Ư<><C6AF><EFBFBD><EFBFBD> <20>缭 <20>ʱ<EFBFBD>ȭ<EFBFBD><C8AD>
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD>.
|
||||||
m_BaseGraphicLayer.Create(m_hWnd, true, true, 0, 0, m_iScreenWidth, m_iScreenHeight );
|
m_BaseGraphicLayer.Create(m_hWnd, true, true, 0, 0, m_iScreenWidth, m_iScreenHeight );
|
||||||
|
|
||||||
m_pRYLGameData->m_lpSceneManager = new CSceneManager();
|
m_pRYLGameData->m_lpSceneManager = new CSceneManager();
|
||||||
@@ -1433,7 +1444,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
m_pRYLGameData->m_lpSceneManager->m_WeatherManager.SetClearColor(&m_BaseGraphicLayer.m_ClearColor);
|
m_pRYLGameData->m_lpSceneManager->m_WeatherManager.SetClearColor(&m_BaseGraphicLayer.m_ClearColor);
|
||||||
m_pRYLGameData->m_lpSceneManager->Create(m_InitValue, (char *)m_strClientPath);
|
m_pRYLGameData->m_lpSceneManager->Create(m_InitValue, (char *)m_strClientPath);
|
||||||
|
|
||||||
// scene manager<65><72> ȭ<><C8AD><EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
// scene manager<65><72> ȭ<><C8AD><EFBFBD>ػ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
m_pRYLGameData->m_lpSceneManager->m_ScreenWidth = m_iScreenWidth;
|
m_pRYLGameData->m_lpSceneManager->m_ScreenWidth = m_iScreenWidth;
|
||||||
m_pRYLGameData->m_lpSceneManager->m_ScreenHeight = m_iScreenHeight;
|
m_pRYLGameData->m_lpSceneManager->m_ScreenHeight = m_iScreenHeight;
|
||||||
|
|
||||||
@@ -1469,7 +1480,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3>
|
// <20><><EFBFBD><EFBFBD> ó<><C3B3>
|
||||||
|
|
||||||
// try
|
// try
|
||||||
// {
|
// {
|
||||||
@@ -1483,7 +1494,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// CharacterData<74><61> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Set
|
// CharacterData<74><61> <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Set
|
||||||
|
|
||||||
m_pRYLNetworkData->LinkCharacterData() ;
|
m_pRYLNetworkData->LinkCharacterData() ;
|
||||||
m_pRYLGameData->LinkCharacterData() ;
|
m_pRYLGameData->LinkCharacterData() ;
|
||||||
@@ -1498,7 +1509,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
m_pRYLGameData->m_bShowInfo = FALSE;
|
m_pRYLGameData->m_bShowInfo = FALSE;
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// Ÿ<≯<EFBFBD> <20>ʱ<EFBFBD>ȭ
|
// Ÿ<≯<EFBFBD> <20>ʱ<EFBFBD>ȭ
|
||||||
|
|
||||||
GRYLTimer.InitTimer() ;
|
GRYLTimer.InitTimer() ;
|
||||||
|
|
||||||
@@ -1515,7 +1526,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
if(iLanguage >= iMaxLanguage)
|
if(iLanguage >= iMaxLanguage)
|
||||||
iLanguage = 0;
|
iLanguage = 0;
|
||||||
|
|
||||||
// <20><>Ʋ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>.
|
// <20><>Ʋ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||||
if (GameRYL::SERVER_BATTLE_LOHAN == m_pRYLNetworkData->m_eServerType)
|
if (GameRYL::SERVER_BATTLE_LOHAN == m_pRYLNetworkData->m_eServerType)
|
||||||
{
|
{
|
||||||
sprintf(strScriptPath, "%s\\Language\\%s\\BGItemScript.gsf", m_strClientPath, szLanguage[iLanguage]);
|
sprintf(strScriptPath, "%s\\Language\\%s\\BGItemScript.gsf", m_strClientPath, szLanguage[iLanguage]);
|
||||||
@@ -1537,7 +1548,7 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
g_QuestList.Load(strQuestPath);
|
g_QuestList.Load(strQuestPath);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
// <20><>Ʋ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>.
|
// <20><>Ʋ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||||
if (GameRYL::SERVER_BATTLE_LOHAN == m_pRYLNetworkData->m_eServerType)
|
if (GameRYL::SERVER_BATTLE_LOHAN == m_pRYLNetworkData->m_eServerType)
|
||||||
{
|
{
|
||||||
sprintf(strScriptPath, "%s\\BGItemScript.gsf", m_strClientPath);
|
sprintf(strScriptPath, "%s\\BGItemScript.gsf", m_strClientPath);
|
||||||
@@ -1594,10 +1605,10 @@ BOOL CClientMain::Init(HINSTANCE hInstance, INT iWidth, INT iHeight )
|
|||||||
|
|
||||||
HRESULT CClientMain::CreateScene()
|
HRESULT CClientMain::CreateScene()
|
||||||
{
|
{
|
||||||
// TextSize<7A>ʱ<EFBFBD>ȭ
|
// TextSize<7A>ʱ<EFBFBD>ȭ
|
||||||
CRYLStringTable::CreateTextSize() ;
|
CRYLStringTable::CreateTextSize() ;
|
||||||
|
|
||||||
// GM Font <20>ʱ<EFBFBD>ȭ
|
// GM Font <20>ʱ<EFBFBD>ȭ
|
||||||
CGMFont::CreateInstance() ;
|
CGMFont::CreateInstance() ;
|
||||||
if ( FAILED( CGMFont::Instance()->InitDeviceObjects() ) )
|
if ( FAILED( CGMFont::Instance()->InitDeviceObjects() ) )
|
||||||
{
|
{
|
||||||
@@ -1605,7 +1616,7 @@ HRESULT CClientMain::CreateScene()
|
|||||||
return E_FAIL ;
|
return E_FAIL ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// GM UI <20>ʱ<EFBFBD>ȭ
|
// GM UI <20>ʱ<EFBFBD>ȭ
|
||||||
if ( FAILED( GMUIInitialize( m_hWnd, m_iScreenWidth, m_iScreenHeight ) ) )
|
if ( FAILED( GMUIInitialize( m_hWnd, m_iScreenWidth, m_iScreenHeight ) ) )
|
||||||
{
|
{
|
||||||
return E_FAIL ;
|
return E_FAIL ;
|
||||||
@@ -1614,7 +1625,7 @@ HRESULT CClientMain::CreateScene()
|
|||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
// Init Scene
|
// Init Scene
|
||||||
// Game Scene<6E>̿<EFBFBD><CCBF><EFBFBD> Scene<6E><65><EFBFBD><EFBFBD> <20>ε<EFBFBD>
|
// Game Scene<6E>̿<EFBFBD><CCBF><EFBFBD> Scene<6E><65><EFBFBD><EFBFBD> <20>ε<EFBFBD>
|
||||||
m_pRYLSceneManager = new CRYLSceneManager() ;
|
m_pRYLSceneManager = new CRYLSceneManager() ;
|
||||||
|
|
||||||
// Intro Scene
|
// Intro Scene
|
||||||
@@ -1629,7 +1640,7 @@ HRESULT CClientMain::CreateScene()
|
|||||||
// Loagin Scene
|
// Loagin Scene
|
||||||
m_pRYLSceneManager->InsertScene( new CRYLLoginScene( LOGIN_SCENE ) ) ;
|
m_pRYLSceneManager->InsertScene( new CRYLLoginScene( LOGIN_SCENE ) ) ;
|
||||||
|
|
||||||
// WORK_LIST 2.2 NationSelectScene <20≯<EFBFBD> <20><><EFBFBD><EFBFBD>
|
// WORK_LIST 2.2 NationSelectScene <20≯<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
// RaceSelect Scene
|
// RaceSelect Scene
|
||||||
m_pRYLSceneManager->InsertScene( new CRYLRaceSelectScene( RACESELECT_SCENE ) ) ;
|
m_pRYLSceneManager->InsertScene( new CRYLRaceSelectScene( RACESELECT_SCENE ) ) ;
|
||||||
m_pRYLSceneManager->SetScene( RACESELECT_SCENE ) ;
|
m_pRYLSceneManager->SetScene( RACESELECT_SCENE ) ;
|
||||||
@@ -1658,7 +1669,7 @@ HRESULT CClientMain::CreateScene()
|
|||||||
|
|
||||||
m_pRYLSceneManager->SetScene( INTRO_SCENE ) ;
|
m_pRYLSceneManager->SetScene( INTRO_SCENE ) ;
|
||||||
|
|
||||||
// <20><><EFBFBD>ҽ<EFBFBD> <20>ʱ<EFBFBD>ȭ
|
// <20><><EFBFBD>ҽ<EFBFBD> <20>ʱ<EFBFBD>ȭ
|
||||||
//InitResourceObject() ;
|
//InitResourceObject() ;
|
||||||
|
|
||||||
return S_OK ;
|
return S_OK ;
|
||||||
@@ -1797,7 +1808,7 @@ void CClientMain::Update(void)
|
|||||||
m_pRYLGameData->UpdateTipBroadCounter( fUpdate ) ;
|
m_pRYLGameData->UpdateTipBroadCounter( fUpdate ) ;
|
||||||
m_pRYLGameData->UpdatePartyAttackTimer( fUpdate ) ;
|
m_pRYLGameData->UpdatePartyAttackTimer( fUpdate ) ;
|
||||||
|
|
||||||
// Shout, FameInfo.. etc Counter ó<><C3B3>
|
// Shout, FameInfo.. etc Counter ó<><C3B3>
|
||||||
CRYLNetworkData::ProcessCounter( fUpdate ) ;
|
CRYLNetworkData::ProcessCounter( fUpdate ) ;
|
||||||
|
|
||||||
m_pRYLGameData->UpdateSkillUseCounter( fUpdate ) ;
|
m_pRYLGameData->UpdateSkillUseCounter( fUpdate ) ;
|
||||||
@@ -2106,9 +2117,9 @@ void CClientMain::Update(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------
|
||||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD>â ó<><C3B3>
|
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD>â ó<><C3B3>
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
// <20><><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
if ( m_pRYLGameData->m_dwGuildWarJoinLeaveResult & MB_YES )
|
if ( m_pRYLGameData->m_dwGuildWarJoinLeaveResult & MB_YES )
|
||||||
{
|
{
|
||||||
SendPacket::WarOnOff( g_GameSession, CRYLNetworkData::Instance()->m_dwMyChrID, Creature::WAR_ON, GameTime::GUILD ) ;
|
SendPacket::WarOnOff( g_GameSession, CRYLNetworkData::Instance()->m_dwMyChrID, Creature::WAR_ON, GameTime::GUILD ) ;
|
||||||
@@ -2191,7 +2202,7 @@ void CClientMain::Update(void)
|
|||||||
|
|
||||||
if ( CRYLCommunityData::Instance()->m_dwResInvite & MB_YES )
|
if ( CRYLCommunityData::Instance()->m_dwResInvite & MB_YES )
|
||||||
{
|
{
|
||||||
// edith 2008.02.27 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// edith 2008.02.27 <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
if (Creature::LEVEL_ABLE_WAR > CRYLGameData::Instance()->m_csStatus.m_Info.Level)
|
if (Creature::LEVEL_ABLE_WAR > CRYLGameData::Instance()->m_csStatus.m_Info.Level)
|
||||||
{
|
{
|
||||||
char szErrMsg[MAX_PATH];
|
char szErrMsg[MAX_PATH];
|
||||||
@@ -2202,7 +2213,7 @@ void CClientMain::Update(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>㰡
|
// <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>㰡
|
||||||
SendPacket::CharGuildCmd( g_GameSession, CRYLCommunityData::Instance()->m_dwRefenceGID, m_pRYLNetworkData->m_dwMyChrID,
|
SendPacket::CharGuildCmd( g_GameSession, CRYLCommunityData::Instance()->m_dwRefenceGID, m_pRYLNetworkData->m_dwMyChrID,
|
||||||
CRYLCommunityData::Instance()->m_dwRefenceCID, PktGuildCmd::GC_JOIN ) ;
|
CRYLCommunityData::Instance()->m_dwRefenceCID, PktGuildCmd::GC_JOIN ) ;
|
||||||
}
|
}
|
||||||
@@ -2211,7 +2222,7 @@ void CClientMain::Update(void)
|
|||||||
}
|
}
|
||||||
else if ( ( CRYLCommunityData::Instance()->m_dwResInvite & MB_NO ) || ( CRYLCommunityData::Instance()->m_dwResInvite & MB_EXIT ) )
|
else if ( ( CRYLCommunityData::Instance()->m_dwResInvite & MB_NO ) || ( CRYLCommunityData::Instance()->m_dwResInvite & MB_EXIT ) )
|
||||||
{
|
{
|
||||||
// <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
// <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
SendPacket::CharGuildCmd( g_GameSession, CRYLCommunityData::Instance()->m_dwRefenceGID, m_pRYLNetworkData->m_dwMyChrID,
|
SendPacket::CharGuildCmd( g_GameSession, CRYLCommunityData::Instance()->m_dwRefenceGID, m_pRYLNetworkData->m_dwMyChrID,
|
||||||
CRYLCommunityData::Instance()->m_dwRefenceCID, PktGuildCmd::GC_REFUSE ) ;
|
CRYLCommunityData::Instance()->m_dwRefenceCID, PktGuildCmd::GC_REFUSE ) ;
|
||||||
CRYLCommunityData::Instance()->m_dwResInvite = 0 ;
|
CRYLCommunityData::Instance()->m_dwResInvite = 0 ;
|
||||||
@@ -2247,7 +2258,7 @@ void CClientMain::Update(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// <20><>ġ <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ°<D6B4> üũ
|
// <20><>ġ <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ°<D6B4> üũ
|
||||||
RYLCreature* pSelfCreature = RYLCreatureManager::Instance()->GetSelfCreature();
|
RYLCreature* pSelfCreature = RYLCreatureManager::Instance()->GetSelfCreature();
|
||||||
if ( pSelfCreature && g_pClientSocket->GetStatusFlag() != NS_REQUESTQUEST )
|
if ( pSelfCreature && g_pClientSocket->GetStatusFlag() != NS_REQUESTQUEST )
|
||||||
{
|
{
|
||||||
@@ -2314,7 +2325,7 @@ void CClientMain::Update(void)
|
|||||||
{
|
{
|
||||||
CSceneManager::m_fLife = ( FLOAT )( m_pRYLGameData->m_csStatus.GetCurrentHP() ) / ( m_pRYLGameData->m_csStatus.GetMaxHP() ) ;
|
CSceneManager::m_fLife = ( FLOAT )( m_pRYLGameData->m_csStatus.GetCurrentHP() ) / ( m_pRYLGameData->m_csStatus.GetMaxHP() ) ;
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>.
|
||||||
RYLCreature* pSelfCreature = RYLCreatureManager::Instance()->GetSelfCreature();
|
RYLCreature* pSelfCreature = RYLCreatureManager::Instance()->GetSelfCreature();
|
||||||
if(pSelfCreature)
|
if(pSelfCreature)
|
||||||
{
|
{
|
||||||
@@ -2326,7 +2337,7 @@ void CClientMain::Update(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NO_GAMEGUARD
|
#ifndef NO_GAMEGUARD
|
||||||
// edith 2009.08.11 <20><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD> 2.5 <20><><EFBFBD><EFBFBD><D7B7>̵<EFBFBD>
|
// edith 2009.08.11 <20><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD> 2.5 <20><><EFBFBD><EFBFBD><D7B7>̵<EFBFBD>
|
||||||
// if (m_pRYLNetworkData->m_GGAuthCode.CheckFlag(GGAuthCode::GG_AUTH_CODE_1))
|
// if (m_pRYLNetworkData->m_GGAuthCode.CheckFlag(GGAuthCode::GG_AUTH_CODE_1))
|
||||||
// {
|
// {
|
||||||
// SendPacket::CSAuthReturnCode( g_GameSession, m_pRYLNetworkData->m_dwMyChrID, 1,
|
// SendPacket::CSAuthReturnCode( g_GameSession, m_pRYLNetworkData->m_dwMyChrID, 1,
|
||||||
@@ -2361,8 +2372,8 @@ void CClientMain::Render(void)
|
|||||||
|
|
||||||
{
|
{
|
||||||
PROFILE("Status Check");
|
PROFILE("Status Check");
|
||||||
////////////////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD> üũ
|
////////////////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD> üũ
|
||||||
// edith 2008.03.13 Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><>ŷ<EFBFBD><C5B7> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> üũ<C3BC>ϴ<EFBFBD> <20>κ<EFBFBD>
|
// edith 2008.03.13 Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><>ŷ<EFBFBD><C5B7> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> üũ<C3BC>ϴ<EFBFBD> <20>κ<EFBFBD>
|
||||||
if (m_wAdminMode != ADMIN_L3)
|
if (m_wAdminMode != ADMIN_L3)
|
||||||
{
|
{
|
||||||
float fUpdate = CFrameTimer::GetUpdateTimer( GRYLTimer.GetCheckStatusTimerID() ) ;
|
float fUpdate = CFrameTimer::GetUpdateTimer( GRYLTimer.GetCheckStatusTimerID() ) ;
|
||||||
@@ -2387,7 +2398,7 @@ void CClientMain::Render(void)
|
|||||||
unsigned long dwKindCursor = CURSOR_NORMAL ;
|
unsigned long dwKindCursor = CURSOR_NORMAL ;
|
||||||
{
|
{
|
||||||
PROFILE("Select Cursor");
|
PROFILE("Select Cursor");
|
||||||
////////////////////////// Ŀ<><C4BF> <20><><EFBFBD><EFBFBD>
|
////////////////////////// Ŀ<><C4BF> <20><><EFBFBD><EFBFBD>
|
||||||
if (m_pRYLGameData->m_dwKindCursor == CURSOR_NORMAL)
|
if (m_pRYLGameData->m_dwKindCursor == CURSOR_NORMAL)
|
||||||
{
|
{
|
||||||
if (g_TooltipManager.m_ttRenderTarget)
|
if (g_TooltipManager.m_ttRenderTarget)
|
||||||
@@ -2432,7 +2443,7 @@ void CClientMain::Render(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!m_pRYLGameData->m_bHardwareCursor && m_pRYLGameData->m_bShowCursor)
|
if (!m_pRYLGameData->m_bHardwareCursor && m_pRYLGameData->m_bShowCursor)
|
||||||
{ // <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> Ŀ<><C4BF>
|
{ // <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> Ŀ<><C4BF>
|
||||||
POINT *ptMousePos = g_DeviceInput.GetMouseLocal();
|
POINT *ptMousePos = g_DeviceInput.GetMouseLocal();
|
||||||
m_pRYLGameData->RenderCursor(m_BaseGraphicLayer.GetDevice(), ptMousePos->x, ptMousePos->y, m_pRYLGameData->m_dwKindCursor);
|
m_pRYLGameData->RenderCursor(m_BaseGraphicLayer.GetDevice(), ptMousePos->x, ptMousePos->y, m_pRYLGameData->m_dwKindCursor);
|
||||||
}
|
}
|
||||||
@@ -2447,7 +2458,7 @@ void CClientMain::Render(void)
|
|||||||
{
|
{
|
||||||
PROFILE("Hardware Cursor");
|
PROFILE("Hardware Cursor");
|
||||||
if (m_pRYLGameData->m_bHardwareCursor)
|
if (m_pRYLGameData->m_bHardwareCursor)
|
||||||
{ // <20>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD> Ŀ<><C4BF>
|
{ // <20>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD> Ŀ<><C4BF>
|
||||||
switch (dwKindCursor)
|
switch (dwKindCursor)
|
||||||
{
|
{
|
||||||
case CURSOR_NORMAL:
|
case CURSOR_NORMAL:
|
||||||
@@ -2527,7 +2538,7 @@ void CClientMain::RenderMain()
|
|||||||
|
|
||||||
{
|
{
|
||||||
PROFILE("Interface Effect");
|
PROFILE("Interface Effect");
|
||||||
/////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
/////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ
|
||||||
DWORD effcullmode;
|
DWORD effcullmode;
|
||||||
DWORD effzmode;
|
DWORD effzmode;
|
||||||
DWORD effalphamode;
|
DWORD effalphamode;
|
||||||
@@ -2559,7 +2570,7 @@ void CClientMain::RenderMain()
|
|||||||
m_BaseGraphicLayer.GetDevice()->SetRenderState(D3DRS_ZENABLE,effzmode);
|
m_BaseGraphicLayer.GetDevice()->SetRenderState(D3DRS_ZENABLE,effzmode);
|
||||||
m_BaseGraphicLayer.GetDevice()->SetRenderState(D3DRS_ALPHABLENDENABLE,effalphamode);
|
m_BaseGraphicLayer.GetDevice()->SetRenderState(D3DRS_ALPHABLENDENABLE,effalphamode);
|
||||||
|
|
||||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> state <20><><EFBFBD>º<EFBFBD>
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> state <20><>º<EFBFBD>
|
||||||
m_pRYLGameData->RenderClassEffect() ;
|
m_pRYLGameData->RenderClassEffect() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2567,7 +2578,7 @@ void CClientMain::RenderMain()
|
|||||||
{
|
{
|
||||||
PROFILE("Etc Render");
|
PROFILE("Etc Render");
|
||||||
/*
|
/*
|
||||||
// edith 2008.01.18 ShowState ȭ<>鿡 <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
// edith 2008.01.18 ShowState ȭ<>鿡 <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||||
m_BaseGraphicLayer.ShowState();
|
m_BaseGraphicLayer.ShowState();
|
||||||
|
|
||||||
RYLCreature* pSelfCreature = RYLCreatureManager::Instance()->GetSelfCreature();
|
RYLCreature* pSelfCreature = RYLCreatureManager::Instance()->GetSelfCreature();
|
||||||
@@ -2600,8 +2611,8 @@ void CClientMain::RenderMain()
|
|||||||
|
|
||||||
void CClientMain::SetDayTimer()
|
void CClientMain::SetDayTimer()
|
||||||
{
|
{
|
||||||
/* // <20>ҷ<EFBFBD><D2B7><EFBFBD> <20>̺<EFBFBD>Ʈ
|
/* // <20>ҷ<EFBFBD><D2B7><EFBFBD> <20>̺<EFBFBD>Ʈ
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||||
if(CRYLNetworkData::Instance()->m_dwPresentZone == SERVER_ID::ZONE1 ||
|
if(CRYLNetworkData::Instance()->m_dwPresentZone == SERVER_ID::ZONE1 ||
|
||||||
CRYLNetworkData::Instance()->m_dwPresentZone == SERVER_ID::ZONE2 ||
|
CRYLNetworkData::Instance()->m_dwPresentZone == SERVER_ID::ZONE2 ||
|
||||||
CRYLNetworkData::Instance()->m_dwPresentZone == SERVER_ID::ZONE12 ||
|
CRYLNetworkData::Instance()->m_dwPresentZone == SERVER_ID::ZONE12 ||
|
||||||
@@ -2665,7 +2676,7 @@ void CClientMain::ProcessScreenshot()
|
|||||||
dwNumScreenShot = dwNumJPGScreenShot;
|
dwNumScreenShot = dwNumJPGScreenShot;
|
||||||
}
|
}
|
||||||
|
|
||||||
// GMTŸ<54>ӱ<EFBFBD><D3B1>ϱ<EFBFBD>
|
// GMTŸ<54>ӱ<EFBFBD><D3B1>ϱ<EFBFBD>
|
||||||
time_t rawtime;
|
time_t rawtime;
|
||||||
tm * ptm;
|
tm * ptm;
|
||||||
time ( &rawtime );
|
time ( &rawtime );
|
||||||
@@ -2793,7 +2804,7 @@ void CClientMain::SetDisplay(void)
|
|||||||
long lResult = ChangeDisplaySettings(&dm, 0);
|
long lResult = ChangeDisplaySettings(&dm, 0);
|
||||||
if (lResult != DISP_CHANGE_SUCCESSFUL)
|
if (lResult != DISP_CHANGE_SUCCESSFUL)
|
||||||
{
|
{
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<EFBFBD>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD> <20><><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2841,24 +2852,24 @@ BOOL CALLBACK NPGameMonCallback(DWORD dwMsg, DWORD dwArg)
|
|||||||
#ifndef NO_GAMEGUARD
|
#ifndef NO_GAMEGUARD
|
||||||
switch (dwMsg)
|
switch (dwMsg)
|
||||||
{
|
{
|
||||||
// GameMon<6F><6E><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ä<><C3A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<EFBFBD>.
|
// GameMon<6F><6E><EFBFBD><EFBFBD> <20><><EFBFBD> ä<><C3A4><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||||
// <20><><EFBFBD><EFBFBD> GameMon<6F><6E> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹Ƿ<EFBFBD> <20><><EFBFBD>ӵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>
|
// <20><><EFBFBD><EFBFBD> GameMon<6F><6E> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD> <20><><EFBFBD><EFBFBD>̹Ƿ<CCB9> <20><><EFBFBD>ӵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>
|
||||||
case NPGAMEMON_COMM_ERROR : // Communication error
|
case NPGAMEMON_COMM_ERROR : // Communication error
|
||||||
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[ 1302 ], CRYLStringTable::m_strString[21], MB_OK);
|
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[ 1302 ], CRYLStringTable::m_strString[21], MB_OK);
|
||||||
g_ClientMain.Destroy();
|
g_ClientMain.Destroy();
|
||||||
PostQuitMessage(WM_QUIT);
|
PostQuitMessage(WM_QUIT);
|
||||||
return FALSE; // <20>ݵ<EFBFBD><DDB5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
return FALSE; // <20>ݵ<EFBFBD><DDB5> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
// GameMon<6F><6E> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
// GameMon<6F><6E> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||||
// <20><><EFBFBD>ӵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>.
|
// <20><><EFBFBD>ӵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>.
|
||||||
case NPGAMEMON_COMM_CLOSE : // Communication closing
|
case NPGAMEMON_COMM_CLOSE : // Communication closing
|
||||||
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[ 1303 ], CRYLStringTable::m_strString[21], MB_OK);
|
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[ 1303 ], CRYLStringTable::m_strString[21], MB_OK);
|
||||||
g_ClientMain.Destroy();
|
g_ClientMain.Destroy();
|
||||||
PostQuitMessage(WM_QUIT);
|
PostQuitMessage(WM_QUIT);
|
||||||
return FALSE; // <20>ݵ<EFBFBD><DDB5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
return FALSE; // <20>ݵ<EFBFBD><DDB5> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
// GameMon <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
// GameMon <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> dwArg <20><><EFBFBD><EFBFBD> <20>Բ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ݴϴ<DDB4>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> dwArg <20><><EFBFBD><EFBFBD> <20>Բ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ݴϴ<DDB4>.
|
||||||
case NPGAMEMON_INIT_ERROR : // GameMon Init Error
|
case NPGAMEMON_INIT_ERROR : // GameMon Init Error
|
||||||
{
|
{
|
||||||
char msg[1024];
|
char msg[1024];
|
||||||
@@ -2867,33 +2878,33 @@ BOOL CALLBACK NPGameMonCallback(DWORD dwMsg, DWORD dwArg)
|
|||||||
g_ClientMain.Destroy();
|
g_ClientMain.Destroy();
|
||||||
PostQuitMessage(WM_QUIT);
|
PostQuitMessage(WM_QUIT);
|
||||||
}
|
}
|
||||||
return FALSE; // <20>ݵ<EFBFBD><DDB5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
return FALSE; // <20>ݵ<EFBFBD><DDB5> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
// <20><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
// <20><><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20>Բ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20>Բ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>.
|
||||||
case NPGAMEMON_SPEEDHACK : // SpeedHack detected
|
case NPGAMEMON_SPEEDHACK : // SpeedHack detected
|
||||||
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[911], CRYLStringTable::m_strString[21], MB_OK);
|
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[911], CRYLStringTable::m_strString[21], MB_OK);
|
||||||
g_ClientMain.Destroy();
|
g_ClientMain.Destroy();
|
||||||
PostQuitMessage(WM_QUIT);
|
PostQuitMessage(WM_QUIT);
|
||||||
return FALSE; // <20><><EFBFBD><EFBFBD>
|
return FALSE; // <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BD>ϴ<EFBFBD>.
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ⸦ <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ⸦ <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||||
case NPGAMEMON_GAMEHACK_KILLED : // GameHack killed
|
case NPGAMEMON_GAMEHACK_KILLED : // GameHack killed
|
||||||
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[ 1305 ], CRYLStringTable::m_strString[21], MB_OK);
|
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[ 1305 ], CRYLStringTable::m_strString[21], MB_OK);
|
||||||
return true; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
return true; // <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰ߵǾ<DFB5><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰ߵǾ<DFB5><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ᰡ <20>Ұ<EFBFBD><D2B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̹Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>.
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ᰡ <20>Ұ<EFBFBD><D2B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>̹Ƿ<CCB9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>.
|
||||||
case NPGAMEMON_GAMEHACK_DETECT : // GameHack detected
|
case NPGAMEMON_GAMEHACK_DETECT : // GameHack detected
|
||||||
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[ 1306 ], CRYLStringTable::m_strString[21], MB_OK);
|
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[ 1306 ], CRYLStringTable::m_strString[21], MB_OK);
|
||||||
g_ClientMain.Destroy();
|
g_ClientMain.Destroy();
|
||||||
PostQuitMessage(WM_QUIT);
|
PostQuitMessage(WM_QUIT);
|
||||||
return FALSE; // <20><><EFBFBD><EFBFBD>
|
return FALSE; // <20><><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ǽɵǴ<C9B5> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>Դϴ<D4B4>.
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ǽɵǴ<C9B5> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>Դϴ<D4B4>.
|
||||||
// Ȥ<><C8A4> <20><><EFBFBD><EFBFBD><EFBFBD>̳<EFBFBD> <20><><EFBFBD>Ӱ<EFBFBD><D3B0>尡 <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
// Ȥ<><C8A4> <20><><EFBFBD><EFBFBD><EFBFBD>̳<EFBFBD> <20><><EFBFBD>Ӱ<EFBFBD><D3B0>尡 <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||||
// <20><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>غ<EFBFBD><D8BA><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>.
|
// <20><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>غ<EFBFBD><D8BA><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>.
|
||||||
case NPGAMEMON_GAMEHACK_DOUBT : // GameHack doubt
|
case NPGAMEMON_GAMEHACK_DOUBT : // GameHack doubt
|
||||||
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[ 2847 ], CRYLStringTable::m_strString[21], MB_OK);
|
MessageBox(g_ClientMain.m_hWnd, CRYLStringTable::m_strString[ 2847 ], CRYLStringTable::m_strString[21], MB_OK);
|
||||||
g_ClientMain.Destroy();
|
g_ClientMain.Destroy();
|
||||||
@@ -2901,13 +2912,13 @@ BOOL CALLBACK NPGameMonCallback(DWORD dwMsg, DWORD dwArg)
|
|||||||
return FALSE ;
|
return FALSE ;
|
||||||
|
|
||||||
case NPGAMEMON_CHECK_CSAUTH : // CSAuth
|
case NPGAMEMON_CHECK_CSAUTH : // CSAuth
|
||||||
// edith 2009.08.11 <20><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD> 2.5 <20><><EFBFBD><EFBFBD><D7B7>̵<EFBFBD>
|
// edith 2009.08.11 <20><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD> 2.5 <20><><EFBFBD><EFBFBD><D7B7>̵<EFBFBD>
|
||||||
// CRYLNetworkData::Instance()->m_GGAuthCode.m_dwAuthCode = dwArg;
|
// CRYLNetworkData::Instance()->m_GGAuthCode.m_dwAuthCode = dwArg;
|
||||||
// CRYLNetworkData::Instance()->m_GGAuthCode.SetFlag(GGAuthCode::GG_AUTH_CODE_1);
|
// CRYLNetworkData::Instance()->m_GGAuthCode.SetFlag(GGAuthCode::GG_AUTH_CODE_1);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
case NPGAMEMON_CHECK_CSAUTH2 : // CSAuth2
|
case NPGAMEMON_CHECK_CSAUTH2 : // CSAuth2
|
||||||
// edith 2009.08.11 <20><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD> 2.5 <20><><EFBFBD><EFBFBD><D7B7>̵<EFBFBD>
|
// edith 2009.08.11 <20><><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD> 2.5 <20><><EFBFBD><EFBFBD><D7B7>̵<EFBFBD>
|
||||||
::memcpy(&CRYLNetworkData::Instance()->m_GGAuthCode.m_AuthCode2, (PVOID)dwArg, sizeof(GG_AUTH_DATA));
|
::memcpy(&CRYLNetworkData::Instance()->m_GGAuthCode.m_AuthCode2, (PVOID)dwArg, sizeof(GG_AUTH_DATA));
|
||||||
CRYLNetworkData::Instance()->m_GGAuthCode.SetFlag(GGAuthCode::GG_AUTH_CODE_2);
|
CRYLNetworkData::Instance()->m_GGAuthCode.SetFlag(GGAuthCode::GG_AUTH_CODE_2);
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <set>
|
#include <set>
|
||||||
#include "GMMemory.h"
|
#include "GMMemory.h"
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
typedef unsigned char byte;
|
typedef unsigned char byte;
|
||||||
|
|
||||||
@@ -86,14 +87,14 @@ void File_XOR( const char * szSrcFilename, const char * szDstFilename, int keyVa
|
|||||||
|
|
||||||
if( !infile.is_open() )
|
if( !infile.is_open() )
|
||||||
{
|
{
|
||||||
ErrorMessage2( "ȭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.(At File_XOR) : %s", szSrcFilename );
|
ErrorMessage2( "ȭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.(At File_XOR) : %s", szSrcFilename );
|
||||||
}
|
}
|
||||||
|
|
||||||
fstream outfile( szDstFilename, ios_base::out | ios_base::binary );
|
fstream outfile( szDstFilename, ios_base::out | ios_base::binary );
|
||||||
|
|
||||||
if( !outfile.is_open() )
|
if( !outfile.is_open() )
|
||||||
{
|
{
|
||||||
ErrorMessage2( "ȭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.(At File_XOR) : %s", szDstFilename );
|
ErrorMessage2( "ȭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.(At File_XOR) : %s", szDstFilename );
|
||||||
}
|
}
|
||||||
|
|
||||||
infile.seekg( 0, ios_base::end );
|
infile.seekg( 0, ios_base::end );
|
||||||
@@ -119,7 +120,7 @@ void CVirtualMachine::Create( const char * szFilename )
|
|||||||
ifstream file( szFilename, ios::binary | ios::in );
|
ifstream file( szFilename, ios::binary | ios::in );
|
||||||
|
|
||||||
if( !file.is_open() )
|
if( !file.is_open() )
|
||||||
ErrorMessage2( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȭ<><C8AD><EFBFBD><EFBFBD> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. (At CVirtualMachine::Create) : %s", szFilename );
|
ErrorMessage2( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȭ<><C8AD><EFBFBD><EFBFBD> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. (At CVirtualMachine::Create) : %s", szFilename );
|
||||||
|
|
||||||
file.seekg( 0, ios_base::end );
|
file.seekg( 0, ios_base::end );
|
||||||
unsigned int filesize = (unsigned int)file.tellg();
|
unsigned int filesize = (unsigned int)file.tellg();
|
||||||
@@ -132,6 +133,16 @@ void CVirtualMachine::Create( const char * szFilename )
|
|||||||
file.read( pBuf, filesize );
|
file.read( pBuf, filesize );
|
||||||
Data_XOR( pBuf, filesize, xor_key_valueT );
|
Data_XOR( pBuf, filesize, xor_key_valueT );
|
||||||
|
|
||||||
|
// 복호?<3F>된 ?<3F>이?<3F><>? 로그 ?<3F>일<EFBFBD>??<3F>??(?<3F>버깅용)
|
||||||
|
char szLogPath[MAX_PATH];
|
||||||
|
strcpy(szLogPath, szFilename);
|
||||||
|
strcat(szLogPath, ".decrypted.log");
|
||||||
|
FILE* fpLog = fopen(szLogPath, "wb");
|
||||||
|
if (fpLog) {
|
||||||
|
fwrite(pBuf, 1, filesize, fpLog);
|
||||||
|
fclose(fpLog);
|
||||||
|
}
|
||||||
|
|
||||||
Create( pBuf, filesize );
|
Create( pBuf, filesize );
|
||||||
|
|
||||||
delete [] pBuf;
|
delete [] pBuf;
|
||||||
@@ -141,7 +152,7 @@ void CVirtualMachine::Create( const char * szFilename )
|
|||||||
ifstream file( szFilename, ios::binary | ios::in );
|
ifstream file( szFilename, ios::binary | ios::in );
|
||||||
|
|
||||||
if( !file.is_open() )
|
if( !file.is_open() )
|
||||||
ErrorMessage2( "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȭ<><C8AD><EFBFBD><EFBFBD> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. (At CVirtualMachine::Create) : %s", szFilename );
|
ErrorMessage2( "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȭ<><C8AD><EFBFBD><EFBFBD> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. (At CVirtualMachine::Create) : %s", szFilename );
|
||||||
|
|
||||||
m_pRelocation->Create( file );
|
m_pRelocation->Create( file );
|
||||||
|
|
||||||
@@ -222,7 +233,11 @@ void CVirtualMachine::Create( const void * pDataBuf, unsigned DataSize )
|
|||||||
|
|
||||||
TotalBufferSize = GlobalVarBufferSize + StringBufferSize + m_iCodeSize;
|
TotalBufferSize = GlobalVarBufferSize + StringBufferSize + m_iCodeSize;
|
||||||
|
|
||||||
|
// Use VirtualAlloc for executable code buffer
|
||||||
|
m_pGlobalVars = m_pBuffer = (char*)VirtualAlloc(NULL, TotalBufferSize, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
|
||||||
|
if (m_pBuffer == NULL) {
|
||||||
m_pGlobalVars = m_pBuffer = new char[TotalBufferSize];
|
m_pGlobalVars = m_pBuffer = new char[TotalBufferSize];
|
||||||
|
}
|
||||||
m_pStringBuffer = ((byte*)m_pGlobalVars) + GlobalVarBufferSize;
|
m_pStringBuffer = ((byte*)m_pGlobalVars) + GlobalVarBufferSize;
|
||||||
m_pCodeBuffer = ((byte*)m_pStringBuffer) + StringBufferSize;
|
m_pCodeBuffer = ((byte*)m_pStringBuffer) + StringBufferSize;
|
||||||
|
|
||||||
@@ -267,7 +282,11 @@ void CVirtualMachine::Create( CIntermediateCode & IMCode, CSymbolTable & Symbo
|
|||||||
int StringBufferSize = SymbolTable.GetStringBufferSize();
|
int StringBufferSize = SymbolTable.GetStringBufferSize();
|
||||||
int BufSize = GlobalVarsSize + StringBufferSize + m_iCodeSize;
|
int BufSize = GlobalVarsSize + StringBufferSize + m_iCodeSize;
|
||||||
|
|
||||||
|
// Use VirtualAlloc for executable code buffer
|
||||||
|
m_pGlobalVars = m_pBuffer = (char*)VirtualAlloc(NULL, BufSize, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
|
||||||
|
if (m_pBuffer == NULL) {
|
||||||
m_pGlobalVars = m_pBuffer = new char[ BufSize ];
|
m_pGlobalVars = m_pBuffer = new char[ BufSize ];
|
||||||
|
}
|
||||||
|
|
||||||
memset( m_pGlobalVars, 0, GlobalVarsSize );
|
memset( m_pGlobalVars, 0, GlobalVarsSize );
|
||||||
|
|
||||||
@@ -277,13 +296,13 @@ void CVirtualMachine::Create( CIntermediateCode & IMCode, CSymbolTable & Symbo
|
|||||||
m_pCodeBuffer = (char*)m_pStringBuffer + StringBufferSize;
|
m_pCodeBuffer = (char*)m_pStringBuffer + StringBufferSize;
|
||||||
|
|
||||||
if( IMCode.ToMachineCode( m_pCodeBuffer, m_pRelocation ) != m_iCodeSize )
|
if( IMCode.ToMachineCode( m_pCodeBuffer, m_pRelocation ) != m_iCodeSize )
|
||||||
ScriptSystemError( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8>ϴ<EFBFBD>.( at CVirtualMachine::Create )" );
|
ScriptSystemError( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8>ϴ<EFBFBD>.( at CVirtualMachine::Create )" );
|
||||||
|
|
||||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD>
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD>
|
||||||
m_pRelocation->Relocate( m_pGlobalVars, m_pStringBuffer, m_pCodeBuffer );
|
m_pRelocation->Relocate( m_pGlobalVars, m_pStringBuffer, m_pCodeBuffer );
|
||||||
m_bRelocated = true;
|
m_bRelocated = true;
|
||||||
|
|
||||||
//<2F>Լ<EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//<2F>Լ<EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>?
|
||||||
typedef CIntermediateCode::FUNCTABLE FUNCTABLE;
|
typedef CIntermediateCode::FUNCTABLE FUNCTABLE;
|
||||||
FUNCTABLE & funcTable = IMCode.GetFuncTable();
|
FUNCTABLE & funcTable = IMCode.GetFuncTable();
|
||||||
|
|
||||||
@@ -319,7 +338,15 @@ void CVirtualMachine::SetSysVars()
|
|||||||
|
|
||||||
void CVirtualMachine::Destroy()
|
void CVirtualMachine::Destroy()
|
||||||
{
|
{
|
||||||
|
// Check if buffer was allocated with VirtualAlloc (aligned to 4KB/64KB boundary typically)
|
||||||
|
if (m_pBuffer != NULL) {
|
||||||
|
MEMORY_BASIC_INFORMATION mbi;
|
||||||
|
if (VirtualQuery(m_pBuffer, &mbi, sizeof(mbi)) && mbi.AllocationBase == m_pBuffer) {
|
||||||
|
VirtualFree(m_pBuffer, 0, MEM_RELEASE);
|
||||||
|
} else {
|
||||||
delete [] m_pBuffer;
|
delete [] m_pBuffer;
|
||||||
|
}
|
||||||
|
}
|
||||||
m_pBuffer = m_pGlobalVars = m_pStringBuffer = m_pCodeBuffer = NULL;
|
m_pBuffer = m_pGlobalVars = m_pStringBuffer = m_pCodeBuffer = NULL;
|
||||||
m_iCodeSize = 0;
|
m_iCodeSize = 0;
|
||||||
m_pFunctionMap->clear();
|
m_pFunctionMap->clear();
|
||||||
@@ -334,18 +361,18 @@ void CVirtualMachine::Destroy()
|
|||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
// ȭ<><C8AD> <20><><EFBFBD><EFBFBD>
|
// ȭ<><C8AD> <20><><EFBFBD><EFBFBD>
|
||||||
// 1. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Relocation <20><><EFBFBD><EFBFBD>(int)
|
// 1. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Relocation <20><><EFBFBD><EFBFBD>(int)
|
||||||
// 2. <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD> Relocation <20><><EFBFBD><EFBFBD>(int)
|
// 2. <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD>?Relocation <20><><EFBFBD><EFBFBD>(int)
|
||||||
// 3. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Relocation Table
|
// 3. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Relocation Table
|
||||||
// 4. <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD> Relocation Table
|
// 4. <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD>?Relocation Table
|
||||||
// 5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ũ<><C5A9>(int)
|
// 5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ũ<><C5A9>(int)
|
||||||
// 6. <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD> ũ<><C5A9>(int)
|
// 6. <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD> ũ<><C5A9>(int)
|
||||||
// 7. <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD> ũ<><C5A9>(int)
|
// 7. <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD> ũ<><C5A9>(int)
|
||||||
// 8. <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
// 8. <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
// 9. <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
// 9. <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
// 10. <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// 10. <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// 11. < <20><><EFBFBD>ڿ<EFBFBD>, <20>Լ<EFBFBD> Ÿ<><C5B8>(long), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(long) > * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// 11. < <20><><EFBFBD>ڿ<EFBFBD>, <20>Լ<EFBFBD> Ÿ<><C5B8>(long), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(long) > * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
///////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
bool CVirtualMachine::Save( const char * szFilename )
|
bool CVirtualMachine::Save( const char * szFilename )
|
||||||
@@ -412,6 +439,31 @@ bool CVirtualMachine::Save( const char * szFilename )
|
|||||||
|
|
||||||
void CVirtualMachine::Execute()
|
void CVirtualMachine::Execute()
|
||||||
{
|
{
|
||||||
|
// 디버깅: 실행 전 상태 로그
|
||||||
|
FILE* fpLog = fopen("script_execute.log", "a");
|
||||||
|
if (fpLog) {
|
||||||
|
fprintf(fpLog, "=== Execute Start ===\n");
|
||||||
|
fprintf(fpLog, "m_pCodeBuffer: %p\n", m_pCodeBuffer);
|
||||||
|
fprintf(fpLog, "m_iCodeSize: %d\n", m_iCodeSize);
|
||||||
|
fprintf(fpLog, "m_pGlobalVars: %p\n", m_pGlobalVars);
|
||||||
|
fprintf(fpLog, "m_pStringBuffer: %p\n", m_pStringBuffer);
|
||||||
|
fprintf(fpLog, "m_bRelocated: %d\n", m_bRelocated);
|
||||||
|
|
||||||
|
// 코드 버퍼 첫 16바이트 덤프
|
||||||
|
if (m_pCodeBuffer && m_iCodeSize > 0) {
|
||||||
|
fprintf(fpLog, "Code buffer first 16 bytes: ");
|
||||||
|
unsigned char* p = (unsigned char*)m_pCodeBuffer;
|
||||||
|
int dumpSize = (m_iCodeSize < 16) ? m_iCodeSize : 16;
|
||||||
|
for (int i = 0; i < dumpSize; i++) {
|
||||||
|
fprintf(fpLog, "%02X ", p[i]);
|
||||||
|
}
|
||||||
|
fprintf(fpLog, "\n");
|
||||||
|
}
|
||||||
|
fprintf(fpLog, "===================\n");
|
||||||
|
fflush(fpLog);
|
||||||
|
fclose(fpLog);
|
||||||
|
}
|
||||||
|
|
||||||
void * pCodeBuffer = m_pCodeBuffer;
|
void * pCodeBuffer = m_pCodeBuffer;
|
||||||
__asm call pCodeBuffer;
|
__asm call pCodeBuffer;
|
||||||
}
|
}
|
||||||
@@ -460,18 +512,18 @@ union long_byte
|
|||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
//Native<76>Լ<EFBFBD><D4BC><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>ε<EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
//Native<76>Լ<EFBFBD><D4BC><EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>ε<EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD>?
|
||||||
//
|
//
|
||||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> : <20>Լ<EFBFBD><D4BC><EFBFBD> <20><> <20><> <20><>ġ<EFBFBD><C4A1> <20>Ѵ<EFBFBD>. ( <20><><EFBFBD><EFBFBD> <20>ӵ<EFBFBD><D3B5><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. )
|
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD>?: <20>Լ<EFBFBD><D4BC><EFBFBD> <20><> <20><> <20><>ġ<EFBFBD><C4A1> <20>Ѵ<EFBFBD>. ( <20><><EFBFBD><EFBFBD> <20>ӵ<EFBFBD><D3B5><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. )
|
||||||
// 1-1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ְ<EFBFBD>, <20><><EFBFBD>ǰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC>鸸 <20>Լ<EFBFBD> <20>ڵ忡<DAB5><E5BFA1> ó<><C3B3> <20>κп<CEBA> 5<><35><EFBFBD><EFBFBD>Ʈ <20>̻<EFBFBD><CCBB><EFBFBD> <20><><EFBFBD><EFBFBD>(nop)<29><> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>.
|
// 1-1. <20><><EFBFBD><EFBFBD> <20>ְ<EFBFBD>, <20><><EFBFBD>ǰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC>鸸 <20>Լ<EFBFBD> <20>ڵ忡<DAB5><E5BFA1> ó<><C3B3> <20>κп<CEBA> 5<><35><EFBFBD><EFBFBD>Ʈ <20>̻<EFBFBD><CCBB><EFBFBD> <20><><EFBFBD><EFBFBD>(nop)<29><> <20><><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>.
|
||||||
// 1-2. RegisterFunction<6F><6E> ȣ<><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 1-1<><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>κп<CEBA> call <native function><3E><> ret<65><74> <20><><EFBFBD><EFBFBD><EFBFBD>ִ´<EFBFBD>.
|
// 1-2. RegisterFunction<6F><6E> ȣ<><C8A3><EFBFBD><EFBFBD><EFBFBD>?<EFBFBD><EFBFBD> 1-1<><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>κп<CEBA> call <native function><3E><> ret<65><74> <20><><EFBFBD><EFBFBD>ִ´<D6B4>?
|
||||||
// <09><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20><><EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD> nop<6F><70> 2<><32> <20>̻<EFBFBD> <20>߰<EFBFBD><DFB0>ǰ<EFBFBD>, native call<6C><6C> <20><><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD><EFBFBD> <20>ȴ<EFBFBD>.
|
// <09><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <20><><EFBFBD>?<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD> nop<6F><70> 2<><32> <20>̻<EFBFBD> <20>߰<EFBFBD><DFB0>ǰ<EFBFBD>, native call<6C><6C> <20><><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD><EFBFBD> <20>ȴ<EFBFBD>.
|
||||||
// Empty Function<6F><6E> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
// Empty Function<6F><6E> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||||
//
|
//
|
||||||
//<2F>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD> : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> <EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD> <20>Լ<EFBFBD> <20>ּҸ<D6BC> <20>ٲ۴<D9B2>.( <20><><EFBFBD><EFBFBD> <20>ӵ<EFBFBD><D3B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. )
|
//<2F>ٸ<EFBFBD> <20><><EFBFBD>?: <20><><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>?<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD>?<EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD> <20>Լ<EFBFBD> <20>ּҸ<D6BC> <20>ٲ۴<D9B2>.( <20><><EFBFBD><EFBFBD> <20>ӵ<EFBFBD><D3B5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. )
|
||||||
// 2-1. <20><><EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD> ȣ<><C8A3> <20>κ<EFBFBD><CEBA><EFBFBD> Relocation Tableó<65><C3B3> call table<6C><65> <20><><EFBFBD><EFBFBD><EFBFBD>صд<D8B5>.
|
// 2-1. <20><><EFBFBD>?<EFBFBD>Լ<EFBFBD> ȣ<><C8A3> <20>κ<EFBFBD><CEBA><EFBFBD> Relocation Tableó<65><C3B3> call table<6C><65> <20><><EFBFBD><EFBFBD><EFBFBD>صд<D8B5>.
|
||||||
// 2-2. RegisterFunction<6F><6E> ȣ<><C8A3><EFBFBD>Ǿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> call table<6C><65> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> call<6C>ϰ<EFBFBD> <20>ִ<EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٲ۴<D9B2>.
|
// 2-2. RegisterFunction<6F><6E> ȣ<><C8A3>Ǿ<EFBFBD><C7BE><EFBFBD>?<EFBFBD><EFBFBD> call table<6C><65> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> call<6C>ϰ<EFBFBD> <20>ִ<EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٲ۴<D9B2>.
|
||||||
// call table<6C><65>? map< string, pair< SFuncType, vector<int> > >
|
// call table<6C><65>? map< string, pair< SFuncType, vector<int> > >
|
||||||
///////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
@@ -490,9 +542,9 @@ void CVirtualMachine::RegisterFunction( ANY_FUNCTION FuncPtr, eDataType return
|
|||||||
byte * pFunc = (byte*)GetFuncPtr( *m_pFunctionMap, szFuncName, funcType );
|
byte * pFunc = (byte*)GetFuncPtr( *m_pFunctionMap, szFuncName, funcType );
|
||||||
|
|
||||||
if( pFunc == NULL )
|
if( pFunc == NULL )
|
||||||
ErrorMessage2( "<EFBFBD>Լ<EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><EFBFBD>ϴ<EFBFBD>. <20>Լ<EFBFBD><D4BC><EFBFBD> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. : %s", funcType.ToString( szFuncName ) );
|
ErrorMessage2( "<EFBFBD>Լ<EFBFBD> <20><>Ͽ<EFBFBD>?<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><EFBFBD>ϴ<EFBFBD>. <20>Լ<EFBFBD><D4BC><EFBFBD> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. : %s", funcType.ToString( szFuncName ) );
|
||||||
|
|
||||||
if( pFunc[3] != 0x90 ) //nop<6F><70> <20>ƴ<EFBFBD> <20><>
|
if( pFunc[3] != 0x90 ) //nop<6F><70> <20>ƴ<EFBFBD> <20><>
|
||||||
ScriptSystemError( "RegisterFunction Error!!( at CVirtualMachine::RegisterFunction )" );
|
ScriptSystemError( "RegisterFunction Error!!( at CVirtualMachine::RegisterFunction )" );
|
||||||
|
|
||||||
int nArg = funcType.GetArgCount();
|
int nArg = funcType.GetArgCount();
|
||||||
@@ -528,7 +580,7 @@ ScriptFunc CVirtualMachine::GetScriptFunction( eDataType returnType, const char
|
|||||||
|
|
||||||
void * pFunc = GetFuncPtr( *m_pFunctionMap, szFuncName, funcType );
|
void * pFunc = GetFuncPtr( *m_pFunctionMap, szFuncName, funcType );
|
||||||
if( pFunc == NULL )
|
if( pFunc == NULL )
|
||||||
ErrorMessage2( "<EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>. <20>Լ<EFBFBD><D4BC><EFBFBD> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. : %s", funcType.ToString( szFuncName ) );
|
ErrorMessage2( "<EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>. <20>Լ<EFBFBD><D4BC><EFBFBD> ã<><C3A3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. : %s", funcType.ToString( szFuncName ) );
|
||||||
|
|
||||||
return ScriptFunc( pFunc, funcType.m_data );
|
return ScriptFunc( pFunc, funcType.m_data );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
echo copy file
|
echo copy file
|
||||||
copy *.* S:\YouxiLand\ROW
|
copy *.* S:\YouxiLand\ROW
|
||||||
|
copy *.* F:\YouxiLand\ROW
|
||||||
pause
|
pause
|
||||||
10
Game/NeoRylClient.exe.manifest
Normal file
10
Game/NeoRylClient.exe.manifest
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||||
|
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<security>
|
||||||
|
<requestedPrivileges>
|
||||||
|
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
|
||||||
|
</requestedPrivileges>
|
||||||
|
</security>
|
||||||
|
</trustInfo>
|
||||||
|
</assembly>
|
||||||
Reference in New Issue
Block a user