Другое С/С++ Вопрос - Ответ

вайега52

Налуашил состояние
Модератор
2,976
3,092
Выводило 0, до того, пока код не изменил вот так:


cpp:
uintptr_t* getPlayerEntity() {
    uintptr_t player_pool = getPlayerPool();
    uintptr_t local_info = player_pool + 0x2F14;
    uintptr_t* local_player = reinterpret_cast<uintptr_t*>(local_info + 0x26);
    uintptr_t samp_ped = *local_player;
    uintptr_t game_ped = samp_ped + 0x2A4;

    return &game_ped;
}

CVector* getPos() {
    uintptr_t* gamePed = getPlayerEntity();
    if (gamePed != nullptr) {
        return reinterpret_cast<CVector*(__thiscall*)(uintptr_t*)>(0x4043A0)(gamePed);
    }

    //return CVector(1.0, 5.0, 10.0);
}
И вылет с ошибкой: Память не может быть Read.
А был вот такой код, до момента вылета:


cpp:
[CODE title="cpp"]uintptr_t getPlayerEntity() {
    uintptr_t player_pool = getPlayerPool();
    uintptr_t local_info = player_pool + 0x2F14;
    uintptr_t* local_player = reinterpret_cast<uintptr_t*>(local_info + 0x26);
    uintptr_t samp_ped = *local_player;
    uintptr_t game_ped = samp_ped + 0x2A4;

    return game_ped;
}

CVector* getPos() {
    uintptr_t gamePed = getPlayerEntity();
    if (&gamePed != nullptr) {
        return reinterpret_cast<CVector*(__thiscall*)(uintptr_t)>(0x4043A0)(gamePed);
    }

    //return CVector(1.0, 5.0, 10.0);
}
[/CODE]


Так всё и сделано, смотри, вот такая конфигурация:


cpp:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <VCProjectVersion>17.0</VCProjectVersion>
    <Keyword>Win32Proj</Keyword>
    <ProjectGuid>{ab886c38-1f59-43d8-9935-abe2983b5637}</ProjectGuid>
    <RootNamespace>sampvoice</RootNamespace>
    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    <ConfigurationType>DynamicLibrary</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    <ConfigurationType>DynamicLibrary</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
    <PreferredToolArchitecture>
    </PreferredToolArchitecture>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    <ConfigurationType>DynamicLibrary</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <ConfigurationType>DynamicLibrary</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v143</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>Unicode</CharacterSet>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
  </ImportGroup>
  <ImportGroup Label="Shared">
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>WIN32;_DEBUG;SAMPVOICE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <PrecompiledHeader>Use</PrecompiledHeader>
      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
    </ClCompile>
    <Link>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <EnableUAC>false</EnableUAC>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>WIN32;NDEBUG;SAMPVOICE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <PrecompiledHeader>Use</PrecompiledHeader>
      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
      <LanguageStandard>stdcpplatest</LanguageStandard>
      <AdditionalIncludeDirectories>C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\include;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x86-Release\_deps\cyanide-src\include;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x86-Release\_deps\polyhook-src\zydis\src;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x86-Release\_deps\polyhook-src;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x86-Release\_deps\polyhook-src\polyhook2;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x86-Release\_deps\polyhook-src\sources;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x86-Release\_deps\polyhook-src\zydis\include;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x86-Release\_deps\polyhook-src\zydis\include\Zydis;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x86-Release\_deps\xbyak-src;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x86-Release\_deps\xbyak-src\xbyak;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x64-Debug\_deps\polyhook-src\zydis\dependencies\zycore\include;C:\plugin-sdk\tools\myplugin-gen\generated\client-npc\RakHook\out\build\x64-Debug\_deps\polyhook-src\zydis\msvc;C:\portaudio-master\include;C:\Users\swlm\Desktop\MinHook\include;C:\opus-main\include;C:\Users\swlm\Desktop\basic-template;C:\Users\swlm\Desktop\basic-template\pawn\source;C:\Users\swlm\Desktop\basic-template\pawn\source\linux;C:\Users\swlm\Desktop\basic-template\sdk\include;C:\Users\swlm\Desktop\basic-template\sdk\lib\glm\glm\..;C:\Users\swlm\Desktop\basic-template\sdk\lib\robin-hood-hashing\src\include;C:\Users\swlm\Desktop\basic-template\sdk\lib\span-lite\include;C:\Users\swlm\Desktop\basic-template\sdk\lib\string-view-lite\include;$(PLUGIN_SDK_DIR)\shared;$(PLUGIN_SDK_DIR)\shared\game;$(PLUGIN_SDK_DIR)\plugin_SA;$(PLUGIN_SDK_DIR)\plugin_SA\game_SA;$(PLUGIN_SDK_DIR)\plugin_SA\game_SA\rw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
      <BufferSecurityCheck>true</BufferSecurityCheck>
    </ClCompile>
    <Link>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <EnableUAC>false</EnableUAC>
      <AdditionalLibraryDirectories>C:\plugin-sdk\output\lib;C:\opus-main\out\build\x86-Release\Release;C:\Users\swlm\Desktop\minhook\build\VC17\lib\Release;C:\portaudio-master\out\build\x86-Release\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>plugin.lib;rakhook.lib;PolyHook_2.lib;cyanide.lib;Zydis.lib;Zycore.lib;portaudio.lib;opus.lib;libMinHook.x86.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>_DEBUG;SAMPVOICE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <PrecompiledHeader>Use</PrecompiledHeader>
      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
    </ClCompile>
    <Link>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <EnableUAC>false</EnableUAC>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <WarningLevel>Level3</WarningLevel>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>NDEBUG;SAMPVOICE_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <PrecompiledHeader>Use</PrecompiledHeader>
      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
    </ClCompile>
    <Link>
      <SubSystem>Windows</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <EnableUAC>false</EnableUAC>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClInclude Include="AVSSync\AVSSyncClient.hpp" />
    <ClInclude Include="BitStream.h" />
    <ClInclude Include="AVSSync\raknet\RakClient.h" />
    <ClInclude Include="CAudio.h" />
    <ClInclude Include="CCodec.h" />
    <ClInclude Include="CMultiplayer.h" />
    <ClInclude Include="dllmain.h" />
    <ClInclude Include="framework.h" />
    <ClInclude Include="Hooks.h" />
    <ClInclude Include="pch.h" />
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="BitStream.cpp" />
    <ClCompile Include="CAudio.cpp" />
    <ClCompile Include="CMultiplayer.cpp" />
    <ClCompile Include="dllmain.cpp" />
    <ClCompile Include="Hooks.cpp" />
    <ClCompile Include="pch.cpp">
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
    </ClCompile>
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>
А какие ошибки при компиляции?
 

swlm

Участник
47
15
А какие ошибки при компиляции?
Там их просто море...


cpp:
C:\plugin-sdk\shared\GameVersion.h(92,5): warning C4060: оператор switch не содержит метку "case" или "default"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\GameVersion.h(243,5): warning C4060: оператор switch не содержит метку "case" или "default"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,12): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,22): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "InterpV2D"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,22): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,42): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "a"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,67): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,67): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CVector2D.h(25,27): warning C4099: CVector: имя типа, ранее отображенное с помощью "struct", теперь отображено с помощью "class"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\shared\extensions\Config.h(73,19): error C3646: asVec2d: неизвестный спецификатор переопределения
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(73,26): error C2059: синтаксическая ошибка: (
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(73,48): error C2238: непредвиденные лексемы перед ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(74,19): error C3646: asVec2d: неизвестный спецификатор переопределения
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(74,26): error C2059: синтаксическая ошибка: (
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(74,28): error C2238: непредвиденные лексемы перед ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(11,7): error C2011: CVector: переопределение типа "struct"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(77,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,31): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,41): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,52): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,62): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,73): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(81,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,31): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,41): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,52): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,62): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,73): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(85,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,40): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,60): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(89,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,40): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,60): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(94,13): error C2079: "diff" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(94,29): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(98,1): error C2338: static_assert failed: 'Invalid structure size of CVector'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CSimpleTransform.h(16,10): error C2079: "CSimpleTransform::m_vPosn" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CSimpleTransform.h(19,22): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CSimpleTransform.h(24,1): error C2338: static_assert failed: 'Invalid structure size of CSimpleTransform'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(15,13): error C2079: "CQuaternion::imag" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(19,14): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(25,14): error C2061: синтаксическая ошибка: идентификатор "RwV3d"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(25,10): error C2535: void CQuaternion::Get(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(19,10):
1>     см. объявление "CQuaternion::Get"
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(34,14): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(40,14): error C2061: синтаксическая ошибка: идентификатор "RwV3d"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(40,10): error C2535: void CQuaternion::Set(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(34,10):
1>     см. объявление "CQuaternion::Set"
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(76,1): error C2338: static_assert failed: 'Invalid structure size of CQuaternion'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(15,18): error C2079: "CMatrix::right" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(17,18): error C2079: "CMatrix::up" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(19,18): error C2079: "CMatrix::at" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(21,18): error C2079: "CMatrix::pos" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(24,11): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(24,2): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(24,27): error C2238: непредвиденные лексемы перед ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(34,10): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(34,2): error C2535: CMatrix::CMatrix(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(27,5):
1>     см. объявление "CMatrix::CMatrix"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(36,14): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(42,16): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(42,7): error C2535: void CMatrix::UpdateRW(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(41,7):
1>     см. объявление "CMatrix::UpdateRW"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(61,22): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(28,9): error C2065: m_pAttachMatrix: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(70,43): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(70,43):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(70,43):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(73,45): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(73,45):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(73,45):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(76,40): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(76,40):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(76,40):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(79,46): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(79,46):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(79,46):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(82,1): error C2338: static_assert failed: 'Invalid structure size of CMatrix'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(22,20): error C2144: синтаксическая ошибка: перед "void" требуется ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(22,5): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(23,20): error C2144: синтаксическая ошибка: перед "void" требуется ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(23,5): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(26,1): error C2338: static_assert failed: 'Invalid structure size of CMatrixLink'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(20,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(21,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(22,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(23,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(24,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(25,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(26,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(27,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(28,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(29,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(20,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(21,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(22,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(23,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(23,19): error C1003: число ошибок превышает 100; остановка компиляции
 

вайега52

Налуашил состояние
Модератор
2,976
3,092
Там их просто море...


cpp:
C:\plugin-sdk\shared\GameVersion.h(92,5): warning C4060: оператор switch не содержит метку "case" или "default"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\GameVersion.h(243,5): warning C4060: оператор switch не содержит метку "case" или "default"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,12): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,22): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "InterpV2D"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,22): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,42): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "a"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,67): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,67): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CVector2D.h(25,27): warning C4099: CVector: имя типа, ранее отображенное с помощью "struct", теперь отображено с помощью "class"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\shared\extensions\Config.h(73,19): error C3646: asVec2d: неизвестный спецификатор переопределения
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(73,26): error C2059: синтаксическая ошибка: (
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(73,48): error C2238: непредвиденные лексемы перед ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(74,19): error C3646: asVec2d: неизвестный спецификатор переопределения
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(74,26): error C2059: синтаксическая ошибка: (
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(74,28): error C2238: непредвиденные лексемы перед ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(11,7): error C2011: CVector: переопределение типа "struct"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(77,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,31): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,41): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,52): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,62): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,73): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(81,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,31): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,41): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,52): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,62): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,73): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(85,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,40): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,60): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(89,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,40): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,60): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(94,13): error C2079: "diff" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(94,29): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(98,1): error C2338: static_assert failed: 'Invalid structure size of CVector'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CSimpleTransform.h(16,10): error C2079: "CSimpleTransform::m_vPosn" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CSimpleTransform.h(19,22): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CSimpleTransform.h(24,1): error C2338: static_assert failed: 'Invalid structure size of CSimpleTransform'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(15,13): error C2079: "CQuaternion::imag" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(19,14): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(25,14): error C2061: синтаксическая ошибка: идентификатор "RwV3d"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(25,10): error C2535: void CQuaternion::Get(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(19,10):
1>     см. объявление "CQuaternion::Get"
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(34,14): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(40,14): error C2061: синтаксическая ошибка: идентификатор "RwV3d"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(40,10): error C2535: void CQuaternion::Set(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(34,10):
1>     см. объявление "CQuaternion::Set"
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(76,1): error C2338: static_assert failed: 'Invalid structure size of CQuaternion'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(15,18): error C2079: "CMatrix::right" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(17,18): error C2079: "CMatrix::up" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(19,18): error C2079: "CMatrix::at" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(21,18): error C2079: "CMatrix::pos" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(24,11): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(24,2): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(24,27): error C2238: непредвиденные лексемы перед ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(34,10): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(34,2): error C2535: CMatrix::CMatrix(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(27,5):
1>     см. объявление "CMatrix::CMatrix"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(36,14): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(42,16): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(42,7): error C2535: void CMatrix::UpdateRW(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(41,7):
1>     см. объявление "CMatrix::UpdateRW"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(61,22): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(28,9): error C2065: m_pAttachMatrix: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(70,43): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(70,43):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(70,43):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(73,45): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(73,45):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(73,45):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(76,40): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(76,40):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(76,40):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(79,46): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(79,46):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(79,46):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(82,1): error C2338: static_assert failed: 'Invalid structure size of CMatrix'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(22,20): error C2144: синтаксическая ошибка: перед "void" требуется ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(22,5): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(23,20): error C2144: синтаксическая ошибка: перед "void" требуется ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(23,5): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(26,1): error C2338: static_assert failed: 'Invalid structure size of CMatrixLink'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(20,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(21,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(22,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(23,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(24,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(25,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(26,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(27,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(28,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(29,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(20,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(21,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(22,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(23,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(23,19): error C1003: число ошибок превышает 100; остановка компиляции
Скорее всего неправильно расставлены инклуды
 

swlm

Участник
47
15
game_ped почему-то nullptr

cpp:
uintptr_t getPlayerEntity() {
    uintptr_t player_pool = getPlayerPool();
    uintptr_t local_info = player_pool + 0x2F14;
    uintptr_t* local_player = reinterpret_cast<uintptr_t*>(local_info + 0x26);
    uintptr_t samp_ped = *local_player;
    uintptr_t game_ped = samp_ped + 0x2A4;

    return game_ped;
}

CVector* getPos() {
    uintptr_t gamePed = getPlayerEntity();
    if (!gamePed) {
        return reinterpret_cast<CVector*(__thiscall*)(uintptr_t)>(0x4043A0)(gamePed);
    }

    return new CVector{ 1.0, 0.0, 10.0 };
}

Получилось, получил координаты.
Правильный вариант оказался таким:

cpp:
uintptr_t getPlayerEntity() {
    uintptr_t player_pool = getPlayerPool();
    uintptr_t local = player_pool + 0x2F14;

    uintptr_t local_info = *reinterpret_cast<uintptr_t*>(local + 0x26);
    if (!local_info) return 0;

    uintptr_t samp_ped = *reinterpret_cast<uintptr_t*>(local_info + 0x0);
    uintptr_t game_ped = *reinterpret_cast<uintptr_t*>(samp_ped + 0x2A4);

    return game_ped;
}

CVector* getPos() {
    uintptr_t gamePed = getPlayerEntity();
    if (gamePed) {
        return reinterpret_cast<CVector*(__thiscall*)(uintptr_t)>(0x4043A0)(gamePed);
    }

    return new CVector{ 1.0, 0.0, 10.0 };
}
 
Последнее редактирование:
  • Нравится
Реакции: вайега52

fuflexxxx

Известный
37
17
Там их просто море...


cpp:
C:\plugin-sdk\shared\GameVersion.h(92,5): warning C4060: оператор switch не содержит метку "case" или "default"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\GameVersion.h(243,5): warning C4060: оператор switch не содержит метку "case" или "default"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,12): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,22): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "InterpV2D"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,22): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,42): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "a"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,67): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\Other.h(214,67): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CVector2D.h(25,27): warning C4099: CVector: имя типа, ранее отображенное с помощью "struct", теперь отображено с помощью "class"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\shared\extensions\Config.h(73,19): error C3646: asVec2d: неизвестный спецификатор переопределения
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(73,26): error C2059: синтаксическая ошибка: (
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(73,48): error C2238: непредвиденные лексемы перед ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(74,19): error C3646: asVec2d: неизвестный спецификатор переопределения
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(74,26): error C2059: синтаксическая ошибка: (
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\shared\extensions\Config.h(74,28): error C2238: непредвиденные лексемы перед ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(11,7): error C2011: CVector: переопределение типа "struct"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(77,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,31): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,41): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,52): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,62): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,73): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(78,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(81,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,31): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,41): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,52): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,62): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,73): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(82,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(85,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,40): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,60): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(86,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(89,16): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,20): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,40): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,60): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(90,19): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(94,13): error C2079: "diff" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(94,29): error C2027: использование неопределенного типа "CVector"
1>(компиляция исходного файла "pch.cpp")
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CVector.h(98,1): error C2338: static_assert failed: 'Invalid structure size of CVector'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CSimpleTransform.h(16,10): error C2079: "CSimpleTransform::m_vPosn" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CSimpleTransform.h(19,22): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CSimpleTransform.h(24,1): error C2338: static_assert failed: 'Invalid structure size of CSimpleTransform'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(15,13): error C2079: "CQuaternion::imag" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(19,14): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(25,14): error C2061: синтаксическая ошибка: идентификатор "RwV3d"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(25,10): error C2535: void CQuaternion::Get(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(19,10):
1>     см. объявление "CQuaternion::Get"
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(34,14): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(40,14): error C2061: синтаксическая ошибка: идентификатор "RwV3d"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(40,10): error C2535: void CQuaternion::Set(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(34,10):
1>     см. объявление "CQuaternion::Set"
1>C:\plugin-sdk\plugin_SA\game_SA\CQuaternion.h(76,1): error C2338: static_assert failed: 'Invalid structure size of CQuaternion'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(15,18): error C2079: "CMatrix::right" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(17,18): error C2079: "CMatrix::up" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(19,18): error C2079: "CMatrix::at" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(21,18): error C2079: "CMatrix::pos" использует не имеющую определения структуру struct "CVector"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(24,11): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(24,2): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(24,27): error C2238: непредвиденные лексемы перед ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(34,10): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(34,2): error C2535: CMatrix::CMatrix(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(27,5):
1>     см. объявление "CMatrix::CMatrix"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(36,14): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(42,16): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(42,7): error C2535: void CMatrix::UpdateRW(void): функция-член уже определена или объявлена
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(41,7):
1>     см. объявление "CMatrix::UpdateRW"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(61,22): error C2061: синтаксическая ошибка: идентификатор "RwMatrix"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(28,9): error C2065: m_pAttachMatrix: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(70,43): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(70,43):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(70,43):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(73,45): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(73,45):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(73,45):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(76,40): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(76,40):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(76,40):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(79,46): error C2440: return: невозможно преобразовать "const <error type>" в "const CVector &"
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(79,46):
1>    Причина: невозможно преобразовать "const <error type>" в "const CVector"
1>    C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(79,46):
1>    использование неопределенного типа "CVector"
1>    C:\Users\swlm\source\repos\samp-voice\samp-voice\CMultiplayer.h(4,8):
1>     см. объявление "CVector"
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrix.h(82,1): error C2338: static_assert failed: 'Invalid structure size of CMatrix'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(22,20): error C2144: синтаксическая ошибка: перед "void" требуется ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(22,5): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(23,20): error C2144: синтаксическая ошибка: перед "void" требуется ";"
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(23,5): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\CMatrixLink.h(26,1): error C2338: static_assert failed: 'Invalid structure size of CMatrixLink'
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(20,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(21,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(22,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(23,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(24,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(25,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(26,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(27,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(28,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(29,19): error C2065: GAME_10US_COMPACT: необъявленный идентификатор
1>(компиляция исходного файла "pch.cpp")
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(20,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(21,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(22,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(23,19): error C2975: "Values": недопустимый аргумент шаблона для "plugin::RefList", ожидается константное выражение времени компиляции
1>(компиляция исходного файла "pch.cpp")
1>    C:\plugin-sdk\shared\RefList.h(11,19):
1>     см. объявление "Values"
1>C:\plugin-sdk\plugin_SA\game_SA\meta\meta.CMatrixLink.h(23,19): error C1003: число ошибок превышает 100; остановка компиляции
Стандарт с++ поставь последний.
 

Lusikkip

Новичок
10
3
Код:
#include "includes.h"

#ifdef _WIN64
#define GWL_WNDPROC GWLP_WNDPROC
#endif

extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

EndScene oEndScene = NULL;
WNDPROC oWndProc;
static HWND window = NULL;

void InitImGui(LPDIRECT3DDEVICE9 pDevice)
{
    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO();
    io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange;
    ImGui_ImplWin32_Init(window);
    ImGui_ImplDX9_Init(pDevice);
}

bool init = false;
long __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice)
{
    if (!init)
    {
        InitImGui(pDevice);
        init = true;
    }

    ImGui_ImplDX9_NewFrame();
    ImGui_ImplWin32_NewFrame();
    ImGui::NewFrame();

 
    ImGui::Begin("ImGui Menu"); 
    if (ImGui::Button("Click Me"))
    {
        
        MessageBox(NULL, "Button clicked!", "Info", MB_OK);
    }
    ImGui::End();

    ImGui::EndFrame();
    ImGui::Render();
    ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());

    return oEndScene(pDevice);
}

LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    if (true && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam))
        return true;

    return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam);
}

BOOL CALLBACK EnumWindowsCallback(HWND handle, LPARAM lParam)
{
    DWORD wndProcId;
    GetWindowThreadProcessId(handle, &wndProcId);

    if (GetCurrentProcessId() != wndProcId)
        return TRUE;

    window = handle;
    return FALSE;
}

HWND GetProcessWindow()
{
    window = NULL;
    EnumWindows(EnumWindowsCallback, NULL);
    return window;
}

DWORD WINAPI MainThread(LPVOID lpReserved)
{
    bool attached = false;
    do
    {
        if (kiero::init(kiero::RenderType::D3D9) == kiero::Status::Success)
        {
            kiero::bind(42, (void**)&oEndScene, hkEndScene);
            do
                window = GetProcessWindow();
            while (window == NULL);
            oWndProc = (WNDPROC)SetWindowLongPtr(window, GWL_WNDPROC, (LONG_PTR)WndProc);
            attached = true;
        }
    } while (!attached);
    return TRUE;
}

BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(hMod);
        CreateThread(nullptr, 0, MainThread, hMod, 0, nullptr);
        break;
    case DLL_PROCESS_DETACH:
        kiero::shutdown();
        break;
    }
    return TRUE;
}


Пытаюсь увеличить окно, не увеличивается, пытаюсь свернуть, не сворачивается, нажимаю на кнопку не нажимается, пытаюсь ввести что то в input, не вводится, нечего не происходит только курсор мыши торчит, и камеру не повернешь
 

Вложения

  • 1755037932474.png
    1755037932474.png
    3.9 KB · Просмотры: 57

writeline

Новичок
28
9
При запуске предлагает выбрать монитор и разрешение, как можно перехватить это окно выбора и изменить, картинку там добавить или текст какой то?
Через IDA смотрел не нашёл по strings ничего подобного.








Пытаюсь получить координаты локального игрока в мире, но почему-то они постоянно 0.
Что не так?


cpp:
Это R3

CVector* pos = samp->getPos();
printf("x: %f, y: %f, z: %f\n", pos->x, pos->y, pos->z);

uintptr_t* getPlayerEntity() {
    uintptr_t player_pool = getPlayerPool();
    uintptr_t local_info = player_pool + 0x2F14;

    return reinterpret_cast<uintptr_t*>(local_info + 0x2A4);
}

CVector* getPos() {
    uintptr_t* gamePed = getPlayerEntity();
    if (gamePed != nullptr) {
        return reinterpret_cast<CVector*(__thiscall*)(uintptr_t*)>(0x4043A0)(gamePed);
    }

    //return CVector(1.0, 5.0, 10.0);
}

// 0x4043A0
CSimpleTransform *__thiscall CEntity::GetPosition(CEntity *this) - функция в IDA PRO
с++:
    float* GetPlayerPositionPtr() {
        DWORD playerPtr = *(DWORD*)0xB6F5F0;
        if (!playerPtr) return nullptr;
        DWORD pedPtr = *(DWORD*)(playerPtr + 0x14);
        if (!pedPtr) return nullptr;
        return (float*)(pedPtr + 0x30);
    }


    void DrawCoordinates() {
      
        float* position = GetPlayerPositionPtr();
        if (!position) return;

        char buffer[128];
        sprintf_s(buffer, "%.3f %.3f %.3f",
            position[0], position[1], position[2]);

        RECT textRect = { 0 };
        pFontNormal->DrawTextA(NULL, buffer, -1, &textRect, DT_CALCRECT | DT_LEFT, 0);

        int xPos = viewport.Width - (textRect.right - textRect.left) - 1;
        int yPos = viewport.Height - (textRect.bottom - textRect.top) - 1;

        RECT drawRect = { xPos, yPos, xPos + (textRect.right - textRect.left), yPos + (textRect.bottom - textRect.top) };

        DrawTextOutlined(pFontNormal, buffer, drawRect, COORDS_COLOR, SHADOW_COLOR, /*thickness=*/1);
    }

Вырвал из клиента, мб чего то не будет хватать.
Но реализация рабочая.
1755734788957.png
 
Последнее редактирование:

swlm

Участник
47
15
При запуске предлагает выбрать монитор и разрешение, как можно перехватить это окно выбора и изменить, картинку там добавить или текст какой то?
Через IDA смотрел не нашёл по strings ничего подобного.









с++:
    float* GetPlayerPositionPtr() {
        DWORD playerPtr = *(DWORD*)0xB6F5F0;
        if (!playerPtr) return nullptr;
        DWORD pedPtr = *(DWORD*)(playerPtr + 0x14);
        if (!pedPtr) return nullptr;
        return (float*)(pedPtr + 0x30);
    }


    void DrawCoordinates() {
     
        float* position = GetPlayerPositionPtr();
        if (!position) return;

        char buffer[128];
        sprintf_s(buffer, "%.3f %.3f %.3f",
            position[0], position[1], position[2]);

        RECT textRect = { 0 };
        pFontNormal->DrawTextA(NULL, buffer, -1, &textRect, DT_CALCRECT | DT_LEFT, 0);

        int xPos = viewport.Width - (textRect.right - textRect.left) - 1;
        int yPos = viewport.Height - (textRect.bottom - textRect.top) - 1;

        RECT drawRect = { xPos, yPos, xPos + (textRect.right - textRect.left), yPos + (textRect.bottom - textRect.top) };

        DrawTextOutlined(pFontNormal, buffer, drawRect, COORDS_COLOR, SHADOW_COLOR, /*thickness=*/1);
    }

Вырвал из клиента, мб чего то не будет хватать.
Но реализация рабочая.
Посмотреть вложение 277051
Да я уже давно справился с этой задачей. Но всё равно спасибо.

Всем привет. Вопрос следующего характера. Не могу понять, почему при Render`е обычного 3D текста через графическую библиотеку ImGui при ALT + ENTER (смене разрешения) всё нормально, но, стоит мне сделать ALT + ENTER, то ники мои вообще не вижу (собсна, которые рендерю через ImGui)
А если я сделаю ALT + ENTER в момент когда рендерится ник над головой, то игра вообще не развернётся и всё.

В чём трабл?
Единственное что удивляет, с HP/Armour барами такого нету.
Может дело в шрифте?

cpp:
void __fastcall CPlayerTags_DrawHealthBar_Hook(void* thisptr, void* edx, CVectorSamp* position, float fHealth, float fArmour, float fDistanceToCamera) {
    if (!deviceReset)
        return cPlayerTags_DrawHealthBar(thisptr, position, fHealth, fArmour, fDistanceToCamera);
    
    Main::RenderBars(position, fDistanceToCamera, fHealth, fArmour);
}

void __fastcall CPlayerTags_DrawLabel_Hook(void* thisptr, void* edx, CVectorSamp* position, const char* szText, unsigned long color, float fDistanceCamera, bool bDrawStatus, int nStatus) {
    /*if (true) {
        return;
    }*/

    if (!deviceReset)
        return cPlayerTags_DrawLabel(thisptr, position, szText, color, fDistanceCamera, bDrawStatus, nStatus);

    Main::RenderText(szText, position, color, fDistanceCamera);
}

Инициализация ImGui.

Events::initGameEvent += []() {
    CHooks::InitMinHook();

    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO(); (void)io;
    io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange;

    myFont = io.Fonts->AddFontFromFileTTF(std::string(CUtils::GetPath() + "font.ttf").c_str(), 18.0f, NULL, io.Fonts->GetGlyphRangesCyrillic());
    if (myFont == nullptr) {
        printf("font not found\n");
        myFont = io.Fonts->AddFontDefault();
    }

    ImGui::StyleColorsDark();

    ImGui_ImplWin32_Init(GetActiveWindow());
    ImGui_ImplDX9_Init(*reinterpret_cast<IDirect3DDevice9**>(0xC97C28));

    CHooks::GameLoop_HookInstall();
    CHooks::CLabel__DrawHookInstall();
    CHooks::CPlayerTags__DrawLabelHookInstall();
    CHooks::CPlayerTags__DrawHealthBarHookInstall();

    return true;
};

Events::d3dResetEvent += []() {
    deviceReset = true;

    ImGui_ImplWin32_Init(GetActiveWindow());
    ImGui_ImplDX9_Init(*reinterpret_cast<IDirect3DDevice9**>(0xC97C28));

    ImGui_ImplDX9_CreateDeviceObjects();

    ImGuiIO& io = ImGui::GetIO();
    io.Fonts->AddFontFromFileTTF(std::string(CUtils::GetPath() + "font.ttf").c_str(), 18.0f, NULL, io.Fonts->GetGlyphRangesCyrillic());
    io.Fonts->Build();

    return true;
};

Events::d3dLostEvent += []() {
    if (!deviceReset) return true;

    deviceReset = false;

    ImGui_ImplWin32_Shutdown();
    ImGui_ImplDX9_Shutdown();

    ImGui_ImplDX9_InvalidateDeviceObjects();

    ImGuiIO& io = ImGui::GetIO();
    io.Fonts->Clear(); // Очистить текущие шрифты

    return true;
};

extern "C" __declspec(dllexport) void Ext_RenderText(const char* szText, CVectorSamp* position, unsigned long color, float fDistanceToCamera, bool isBot = false)
{
    if (!deviceReset) return;

    ImGui_ImplDX9_NewFrame();
    ImGui_ImplWin32_NewFrame();
    ImGui::NewFrame();

    position->z = fDistanceToCamera * 0.047499999 + position->z + 0.2;
    RwV3d pos{ position->x, position->y, position->z };
    RwV3d out;
    float width, height;
    uint8_t r, g, b, a;
    CUtils::explode_argb((uint32_t)color, a, r, g, b);

    CVector cameraPos = TheCamera.GetPosition();
    CEntity* entity = FindPlayerPed();
    CColPoint colPoint;
    bool isLineOfSight = !CWorld::ProcessLineOfSight(
        cameraPos,
        pos,
        colPoint,
        entity,
        true,
        false,
        false,
        true,
        false,
        true,
        false,
        false
    );

    if (!isLineOfSight) return;

    if (CSprite::CalcScreenCoors(pos, &out, &width, &height, true, true)) {
        ImVec2 screenPos(out.x, out.y + 4.0f);
        ImDrawList* drawList = ImGui::GetForegroundDrawList();
        std::string utf8Text = CUtils::ConvertAnsiToUtf8(szText);

        auto RemoveColorCodes = [](const std::string& text) -> std::string {
            std::string result = text;
            size_t pos = 0;
            while ((pos = result.find('{', pos)) != std::string::npos) {
                size_t endPos = result.find('}', pos);
                if (endPos != std::string::npos) {
                    result.erase(pos, endPos - pos + 1);
                }
                else {
                    break;
                }
            }
            return result;
        };

        std::string nickname;
        int playerID = -1;

        size_t openBracket = utf8Text.find('(');
        if (openBracket != std::string::npos) {
            size_t closeBracket = utf8Text.find(')', openBracket);
            if (closeBracket != std::string::npos) {
                nickname = utf8Text.substr(0, openBracket);

                std::string idString = utf8Text.substr(openBracket + 1, closeBracket - openBracket - 1);
                try {
                    playerID = std::stoi(idString);
                }
                catch (const std::exception&) {
                    playerID = -1;
                }

                if (!nickname.empty() && nickname.back() == ' ') {
                    nickname.pop_back();
                }
            }
        }
        else {
            nickname = utf8Text;
            playerID = -1;
        }

        UINT32 characterId = 0;

        if (CHooks::playersCharacterId.contains(playerID)) {
            characterId = CHooks::playersCharacterId[playerID];
        }

        if (!characterId && !isBot) return;

        if (isBot) characterId = playerID;

        nickname = RemoveColorCodes(nickname);

        std::string characterIdPart = " #" + std::to_string(characterId);

        ImVec2 nicknameSize = ImGui::CalcTextSize(nickname.c_str());
        ImVec2 characterIdSize = ImGui::CalcTextSize(characterIdPart.c_str());
        ImVec2 totalSize = ImVec2(nicknameSize.x + characterIdSize.x, std::max(nicknameSize.y, characterIdSize.y));

        ImVec2 centeredPos = screenPos;
        centeredPos.x -= totalSize.x / 2.0f;
        centeredPos.y -= totalSize.y / 2.0f;

        auto DrawTextOutline = [&](const ImVec2& pos, const std::string& text, ImU32 textColor, ImU32 outlineColor = IM_COL32(0, 0, 0, 255)) {
            float outlineThickness = 1.0f;
            ImVec2 offsets[] = {
                ImVec2(-outlineThickness, -outlineThickness), // лево-верх
                ImVec2(0, -outlineThickness),                 // верх
                ImVec2(outlineThickness, -outlineThickness),  // право-верх
                ImVec2(-outlineThickness, 0),                 // лево
                ImVec2(outlineThickness, 0),                  // право
                ImVec2(-outlineThickness, outlineThickness),  // лево-низ
                ImVec2(0, outlineThickness),                  // низ
                ImVec2(outlineThickness, outlineThickness)    // право-низ
            };

            for (int layer = 0; layer < 2; layer++) {
                for (const auto& offset : offsets) {
                    ImVec2 outlinePos = ImVec2(pos.x + offset.x, pos.y + offset.y);
                    drawList->AddText(
                        myFont,
                        ImGui::GetFontSize(),
                        outlinePos,
                        outlineColor,
                        text.c_str()
                    );
                }
            }

            drawList->AddText(
                myFont,
                ImGui::GetFontSize(),
                pos,
                textColor,
                text.c_str()
            );
        };

        if (!nickname.empty()) {
            ImU32 nicknameColor = IM_COL32(r, g, b, 255);
            DrawTextOutline(centeredPos, nickname, nicknameColor);
        }

        ImVec2 characterIdPos = ImVec2(centeredPos.x + nicknameSize.x, centeredPos.y);
        ImU32 whiteColor = IM_COL32(255, 255, 255, 255);
        DrawTextOutline(characterIdPos, characterIdPart, whiteColor);
    }

    ImGui::EndFrame();
    ImGui::Render();
    ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
}
 
Последнее редактирование:

writeline

Новичок
28
9
Да я уже давно справился с этой задачей. Но всё равно спасибо.

Всем привет. Вопрос следующего характера. Не могу понять, почему при Render`е обычного 3D текста через графическую библиотеку ImGui при ALT + ENTER (смене разрешения) всё нормально, но, стоит мне сделать ALT + ENTER, то ники мои вообще не вижу (собсна, которые рендерю через ImGui)
А если я сделаю ALT + ENTER в момент когда рендерится ник над головой, то игра вообще не развернётся и всё.

В чём трабл?
Единственное что удивляет, с HP/Armour барами такого нету.
Может дело в шрифте?

cpp:
void __fastcall CPlayerTags_DrawHealthBar_Hook(void* thisptr, void* edx, CVectorSamp* position, float fHealth, float fArmour, float fDistanceToCamera) {
    if (!deviceReset)
        return cPlayerTags_DrawHealthBar(thisptr, position, fHealth, fArmour, fDistanceToCamera);
   
    Main::RenderBars(position, fDistanceToCamera, fHealth, fArmour);
}

void __fastcall CPlayerTags_DrawLabel_Hook(void* thisptr, void* edx, CVectorSamp* position, const char* szText, unsigned long color, float fDistanceCamera, bool bDrawStatus, int nStatus) {
    /*if (true) {
        return;
    }*/

    if (!deviceReset)
        return cPlayerTags_DrawLabel(thisptr, position, szText, color, fDistanceCamera, bDrawStatus, nStatus);

    Main::RenderText(szText, position, color, fDistanceCamera);
}

Инициализация ImGui.

Events::initGameEvent += []() {
    CHooks::InitMinHook();

    ImGui::CreateContext();
    ImGuiIO& io = ImGui::GetIO(); (void)io;
    io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange;

    myFont = io.Fonts->AddFontFromFileTTF(std::string(CUtils::GetPath() + "font.ttf").c_str(), 18.0f, NULL, io.Fonts->GetGlyphRangesCyrillic());
    if (myFont == nullptr) {
        printf("font not found\n");
        myFont = io.Fonts->AddFontDefault();
    }

    ImGui::StyleColorsDark();

    ImGui_ImplWin32_Init(GetActiveWindow());
    ImGui_ImplDX9_Init(*reinterpret_cast<IDirect3DDevice9**>(0xC97C28));

    CHooks::GameLoop_HookInstall();
    CHooks::CLabel__DrawHookInstall();
    CHooks::CPlayerTags__DrawLabelHookInstall();
    CHooks::CPlayerTags__DrawHealthBarHookInstall();

    return true;
};

Events::d3dResetEvent += []() {
    deviceReset = true;

    ImGui_ImplWin32_Init(GetActiveWindow());
    ImGui_ImplDX9_Init(*reinterpret_cast<IDirect3DDevice9**>(0xC97C28));

    ImGui_ImplDX9_CreateDeviceObjects();

    ImGuiIO& io = ImGui::GetIO();
    io.Fonts->AddFontFromFileTTF(std::string(CUtils::GetPath() + "font.ttf").c_str(), 18.0f, NULL, io.Fonts->GetGlyphRangesCyrillic());
    io.Fonts->Build();

    return true;
};

Events::d3dLostEvent += []() {
    if (!deviceReset) return true;

    deviceReset = false;

    ImGui_ImplWin32_Shutdown();
    ImGui_ImplDX9_Shutdown();

    ImGui_ImplDX9_InvalidateDeviceObjects();

    ImGuiIO& io = ImGui::GetIO();
    io.Fonts->Clear(); // Очистить текущие шрифты

    return true;
};

extern "C" __declspec(dllexport) void Ext_RenderText(const char* szText, CVectorSamp* position, unsigned long color, float fDistanceToCamera, bool isBot = false)
{
    if (!deviceReset) return;

    ImGui_ImplDX9_NewFrame();
    ImGui_ImplWin32_NewFrame();
    ImGui::NewFrame();

    position->z = fDistanceToCamera * 0.047499999 + position->z + 0.2;
    RwV3d pos{ position->x, position->y, position->z };
    RwV3d out;
    float width, height;
    uint8_t r, g, b, a;
    CUtils::explode_argb((uint32_t)color, a, r, g, b);

    CVector cameraPos = TheCamera.GetPosition();
    CEntity* entity = FindPlayerPed();
    CColPoint colPoint;
    bool isLineOfSight = !CWorld::ProcessLineOfSight(
        cameraPos,
        pos,
        colPoint,
        entity,
        true,
        false,
        false,
        true,
        false,
        true,
        false,
        false
    );

    if (!isLineOfSight) return;

    if (CSprite::CalcScreenCoors(pos, &out, &width, &height, true, true)) {
        ImVec2 screenPos(out.x, out.y + 4.0f);
        ImDrawList* drawList = ImGui::GetForegroundDrawList();
        std::string utf8Text = CUtils::ConvertAnsiToUtf8(szText);

        auto RemoveColorCodes = [](const std::string& text) -> std::string {
            std::string result = text;
            size_t pos = 0;
            while ((pos = result.find('{', pos)) != std::string::npos) {
                size_t endPos = result.find('}', pos);
                if (endPos != std::string::npos) {
                    result.erase(pos, endPos - pos + 1);
                }
                else {
                    break;
                }
            }
            return result;
        };

        std::string nickname;
        int playerID = -1;

        size_t openBracket = utf8Text.find('(');
        if (openBracket != std::string::npos) {
            size_t closeBracket = utf8Text.find(')', openBracket);
            if (closeBracket != std::string::npos) {
                nickname = utf8Text.substr(0, openBracket);

                std::string idString = utf8Text.substr(openBracket + 1, closeBracket - openBracket - 1);
                try {
                    playerID = std::stoi(idString);
                }
                catch (const std::exception&) {
                    playerID = -1;
                }

                if (!nickname.empty() && nickname.back() == ' ') {
                    nickname.pop_back();
                }
            }
        }
        else {
            nickname = utf8Text;
            playerID = -1;
        }

        UINT32 characterId = 0;

        if (CHooks::playersCharacterId.contains(playerID)) {
            characterId = CHooks::playersCharacterId[playerID];
        }

        if (!characterId && !isBot) return;

        if (isBot) characterId = playerID;

        nickname = RemoveColorCodes(nickname);

        std::string characterIdPart = " #" + std::to_string(characterId);

        ImVec2 nicknameSize = ImGui::CalcTextSize(nickname.c_str());
        ImVec2 characterIdSize = ImGui::CalcTextSize(characterIdPart.c_str());
        ImVec2 totalSize = ImVec2(nicknameSize.x + characterIdSize.x, std::max(nicknameSize.y, characterIdSize.y));

        ImVec2 centeredPos = screenPos;
        centeredPos.x -= totalSize.x / 2.0f;
        centeredPos.y -= totalSize.y / 2.0f;

        auto DrawTextOutline = [&](const ImVec2& pos, const std::string& text, ImU32 textColor, ImU32 outlineColor = IM_COL32(0, 0, 0, 255)) {
            float outlineThickness = 1.0f;
            ImVec2 offsets[] = {
                ImVec2(-outlineThickness, -outlineThickness), // лево-верх
                ImVec2(0, -outlineThickness),                 // верх
                ImVec2(outlineThickness, -outlineThickness),  // право-верх
                ImVec2(-outlineThickness, 0),                 // лево
                ImVec2(outlineThickness, 0),                  // право
                ImVec2(-outlineThickness, outlineThickness),  // лево-низ
                ImVec2(0, outlineThickness),                  // низ
                ImVec2(outlineThickness, outlineThickness)    // право-низ
            };

            for (int layer = 0; layer < 2; layer++) {
                for (const auto& offset : offsets) {
                    ImVec2 outlinePos = ImVec2(pos.x + offset.x, pos.y + offset.y);
                    drawList->AddText(
                        myFont,
                        ImGui::GetFontSize(),
                        outlinePos,
                        outlineColor,
                        text.c_str()
                    );
                }
            }

            drawList->AddText(
                myFont,
                ImGui::GetFontSize(),
                pos,
                textColor,
                text.c_str()
            );
        };

        if (!nickname.empty()) {
            ImU32 nicknameColor = IM_COL32(r, g, b, 255);
            DrawTextOutline(centeredPos, nickname, nicknameColor);
        }

        ImVec2 characterIdPos = ImVec2(centeredPos.x + nicknameSize.x, centeredPos.y);
        ImU32 whiteColor = IM_COL32(255, 255, 255, 255);
        DrawTextOutline(characterIdPos, characterIdPart, whiteColor);
    }

    ImGui::EndFrame();
    ImGui::Render();
    ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
}
У меня подобное было при рендере текста через DirectX, попробуй восстанавливать состояние, я обошёл это обычным перезапуском рендера
 

swlm

Участник
47
15
У меня подобное было при рендере текста через DirectX, попробуй восстанавливать состояние, я обошёл это обычным перезапуском рендера
Ты имеешь ввиду вот это?

cpp:
ImGui_ImplWin32_Init(GetActiveWindow());
ImGui_ImplDX9_Init(*reinterpret_cast<IDirect3DDevice9**>(0xC97C28));

Восстанавливать состояние? Не особо понял, что ты имел ввиду.

Ты имеешь ввиду вот это?

cpp:
ImGui_ImplWin32_Init(GetActiveWindow());
ImGui_ImplDX9_Init(*reinterpret_cast<IDirect3DDevice9**>(0xC97C28));

Восстанавливать состояние? Не особо понял, что ты имел ввиду.

P.S. Всё исправил. Проблема была в моей невнимательности.

Ты имеешь ввиду вот это?

cpp:
ImGui_ImplWin32_Init(GetActiveWindow());
ImGui_ImplDX9_Init(*reinterpret_cast<IDirect3DDevice9**>(0xC97C28));

Восстанавливать состояние? Не особо понял, что ты имел ввиду.



P.S. Всё исправил. Проблема была в моей невнимательности.
Моим нервам пизда, нихуя не исправилось, как исправить эту ебаную хуйню?
С WindowedMode всё заебись и ALT + ENTER нормально работает, но как я удалю этот ебучий WindowedMode всё летит к хуям собачим, а именно текст ломается нахуй "появляются квадратики какие-то"


cpp:
        Events::initGameEvent += []() {
            CHooks::InitMinHook();

            ImGui::CreateContext();
            ImGuiIO& io = ImGui::GetIO(); (void)io;
            io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange;

            myFont = io.Fonts->AddFontFromFileTTF(std::string(CUtils::GetPath() + "font.ttf").c_str(), 18.0f, NULL, io.Fonts->GetGlyphRangesCyrillic());
            if (myFont == nullptr) {
                printf("font not found\n");
                myFont = io.Fonts->AddFontDefault();
            }

            ImGui::StyleColorsDark();

            ImGui_ImplWin32_Init(GetActiveWindow());
            ImGui_ImplDX9_Init(*reinterpret_cast<IDirect3DDevice9**>(0xC97C28));

            CHooks::GameLoop_HookInstall();
            CHooks::CLabel__DrawHookInstall();
            CHooks::CPlayerTags__DrawLabelHookInstall();
            CHooks::CPlayerTags__DrawHealthBarHookInstall();

            return true;
        };

        Events::d3dResetEvent += []() {
            if (!deviceReset) return false;
            
            deviceReset = false;

            //ImGui::CreateContext();
            //ImGui_ImplWin32_Init(GetActiveWindow());
            //ImGui_ImplDX9_Init(*reinterpret_cast<IDirect3DDevice9**>(0xC97C28));

            ImGui_ImplDX9_CreateDeviceObjects();

            ImGuiIO& io = ImGui::GetIO();
            io.Fonts->AddFontFromFileTTF(std::string(CUtils::GetPath() + "font.ttf").c_str(), 18.0f, NULL, io.Fonts->GetGlyphRangesCyrillic());
            io.Fonts->Build();

            return true;
        };

        Events::d3dLostEvent += []() {
            deviceReset = true;

            //ImGui_ImplWin32_Shutdown();
            //ImGui_ImplDX9_Shutdown();

            ImGui_ImplDX9_InvalidateDeviceObjects();

            //ImGuiIO& io = ImGui::GetIO();
            //io.Fonts->Clear(); // Очистить текущие шрифты

            return true;
        };

        Events::pedDtorEvent += [](CPed* ped) {
            int playerId = CMultiplayer::GetPlayerID(ped);

            if (playerId != 65535) {
                CHooks::playersCharacterId.erase(playerId);
            }
        };
    };
} grade_tags;

BOOL APIENTRY DllMain(HMODULE hModule, DWORD fdwReason, LPVOID lpReserved)
{
    if (fdwReason == DLL_PROCESS_ATTACH) {}
        //gChat.initialize();
    else if (fdwReason == DLL_PROCESS_DETACH)
    {
        ImGui_ImplDX9_Shutdown();
        ImGui_ImplWin32_Shutdown();
        ImGui::DestroyContext();
    }

    return TRUE;
}

extern "C" __declspec(dllexport) void Ext_RenderText(const char* szText, CVectorSamp* position, unsigned long color, float fDistanceToCamera, bool isBot = false)
{
    if (deviceReset) return;

    ImGui_ImplDX9_NewFrame();
    ImGui_ImplWin32_NewFrame();
    ImGui::NewFrame();

    position->z = fDistanceToCamera * 0.047499999 + position->z + 0.2;
    RwV3d pos{ position->x, position->y, position->z };
    RwV3d out;
    float width, height;
    uint8_t r, g, b, a;
    CUtils::explode_argb((uint32_t)color, a, r, g, b);

    CVector cameraPos = TheCamera.GetPosition();
    CEntity* entity = FindPlayerPed();
    CColPoint colPoint;
    bool isLineOfSight = !CWorld::ProcessLineOfSight(
        cameraPos,
        pos,
        colPoint,
        entity,
        true,
        false,
        false,
        true,
        false,
        true,
        false,
        false
    );

    if (!isLineOfSight) return;

    if (CSprite::CalcScreenCoors(pos, &out, &width, &height, true, true)) {
        ImVec2 screenPos(out.x, out.y + 4.0f);
        ImDrawList* drawList = ImGui::GetForegroundDrawList();
        std::string utf8Text = CUtils::ConvertAnsiToUtf8(szText);

        auto RemoveColorCodes = [](const std::string& text) -> std::string {
            std::string result = text;
            size_t pos = 0;
            while ((pos = result.find('{', pos)) != std::string::npos) {
                size_t endPos = result.find('}', pos);
                if (endPos != std::string::npos) {
                    result.erase(pos, endPos - pos + 1);
                }
                else {
                    break;
                }
            }
            return result;
        };

        std::string nickname;
        int playerID = -1;

        size_t openBracket = utf8Text.find('(');
        if (openBracket != std::string::npos) {
            size_t closeBracket = utf8Text.find(')', openBracket);
            if (closeBracket != std::string::npos) {
                nickname = utf8Text.substr(0, openBracket);

                std::string idString = utf8Text.substr(openBracket + 1, closeBracket - openBracket - 1);
                try {
                    playerID = std::stoi(idString);
                }
                catch (const std::exception&) {
                    playerID = -1;
                }

                if (!nickname.empty() && nickname.back() == ' ') {
                    nickname.pop_back();
                }
            }
        }
        else {
            nickname = utf8Text;
            playerID = -1;
        }

        UINT32 characterId = 0;

        if (CHooks::playersCharacterId.contains(playerID)) {
            characterId = CHooks::playersCharacterId[playerID];
        }

        if (!characterId && !isBot) return;

        if (isBot) characterId = playerID;

        nickname = RemoveColorCodes(nickname);

        std::string characterIdPart = " #" + std::to_string(characterId);

        ImVec2 nicknameSize = ImGui::CalcTextSize(nickname.c_str());
        ImVec2 characterIdSize = ImGui::CalcTextSize(characterIdPart.c_str());
        ImVec2 totalSize = ImVec2(nicknameSize.x + characterIdSize.x, std::max(nicknameSize.y, characterIdSize.y));

        ImVec2 centeredPos = screenPos;
        centeredPos.x -= totalSize.x / 2.0f;
        centeredPos.y -= totalSize.y / 2.0f;

        auto DrawTextOutline = [&](const ImVec2& pos, const std::string& text, ImU32 textColor, ImU32 outlineColor = IM_COL32(0, 0, 0, 255)) {
            float outlineThickness = 1.0f;
            ImVec2 offsets[] = {
                ImVec2(-outlineThickness, -outlineThickness), // лево-верх
                ImVec2(0, -outlineThickness),                 // верх
                ImVec2(outlineThickness, -outlineThickness),  // право-верх
                ImVec2(-outlineThickness, 0),                 // лево
                ImVec2(outlineThickness, 0),                  // право
                ImVec2(-outlineThickness, outlineThickness),  // лево-низ
                ImVec2(0, outlineThickness),                  // низ
                ImVec2(outlineThickness, outlineThickness)    // право-низ
            };

            for (int layer = 0; layer < 2; layer++) {
                for (const auto& offset : offsets) {
                    ImVec2 outlinePos = ImVec2(pos.x + offset.x, pos.y + offset.y);
                    drawList->AddText(
                        myFont,
                        ImGui::GetFontSize(),
                        outlinePos,
                        outlineColor,
                        text.c_str()
                    );
                }
            }

            drawList->AddText(
                myFont,
                ImGui::GetFontSize(),
                pos,
                textColor,
                text.c_str()
            );
        };

        if (!nickname.empty()) {
            ImU32 nicknameColor = IM_COL32(r, g, b, 255);
            DrawTextOutline(centeredPos, nickname, nicknameColor);
        }

        ImVec2 characterIdPos = ImVec2(centeredPos.x + nicknameSize.x, centeredPos.y);
        ImU32 whiteColor = IM_COL32(255, 255, 255, 255);
        DrawTextOutline(characterIdPos, characterIdPart, whiteColor);
    }

    ImGui::EndFrame();
    ImGui::Render();
    ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
}

Всякие хуки

void __fastcall CPlayerTags_DrawHealthBar_Hook(void* thisptr, void* edx, CVectorSamp* position, float fHealth, float fArmour, float fDistanceToCamera) {
    if (deviceReset)
        return cPlayerTags_DrawHealthBar(thisptr, position, fHealth, fArmour, fDistanceToCamera);
    
    Main::RenderBars(position, fDistanceToCamera, fHealth, fArmour);
}

void __fastcall CPlayerTags_DrawLabel_Hook(void* thisptr, void* edx, CVectorSamp* position, const char* szText, unsigned long color, float fDistanceCamera, bool bDrawStatus, int nStatus) {
    /*if (true) {
        return;
    }*/

    if (deviceReset)
        return cPlayerTags_DrawLabel(thisptr, position, szText, color, fDistanceCamera, bDrawStatus, nStatus);

    Main::RenderText(szText, position, color, fDistanceCamera);
}
 
Последнее редактирование:

swlm

Участник
47
15
При удалении создания шрифта в ресете, ничего не меняется?
У меня вообще подозрения на то, что я не правильно понял предназначения этих двух Event`ов


cpp:
Events::d3dResetEvent += []() {
    if (!deviceReset) return false;
    
    deviceReset = false;

    ImGui::CreateContext();
    //ImGui_ImplWin32_Init(GetActiveWindow());
    //ImGui_ImplDX9_Init(*reinterpret_cast<IDirect3DDevice9**>(0xC97C28));

    //ImGui_ImplDX9_CreateDeviceObjects();

    //ImGuiIO& io = ImGui::GetIO();
    //io.Fonts->AddFontFromFileTTF(std::string(CUtils::GetPath() + "font.ttf").c_str(), 18.0f, NULL, io.Fonts->GetGlyphRangesCyrillic());
    //io.Fonts->Build();

    return true;
};

Events::d3dLostEvent += []() {
    deviceReset = true;

    //ImGui_ImplWin32_Shutdown();
    //ImGui_ImplDX9_Shutdown();
  
    ImGui_ImplDX9_InvalidateDeviceObjects();

    ImGuiIO& io = ImGui::GetIO();
    io.Fonts->Clear(); // Очистить текущие шрифты

    return true;
};
lost, когда же потерян фокус с экраном, а reset - восстановлен фокус с экраном?
Так-вот, я делаю очистку шрифта, и у меня игра сразу же при запуске.