diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000..b01784493f --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,142 @@ +name: Continuous Integration +on: + workflow_dispatch: + push: + branches: + - master + - 1.9-dev + pull_request: + branches: + - master + - 1.9-dev +jobs: + test: + strategy: + matrix: + include: + # - os: ubuntu-latest + # os_short: linux + # compiler_cc: gcc + # compiler_cxx: g++ + # - os: ubuntu-latest + # os_short: linux + # compiler_cc: clang + # compiler_cxx: clang++ + - os: ubuntu-22.04 + os_short: linux + compiler_cc: clang-11 + compiler_cxx: clang++-11 + - os: ubuntu-22.04 + os_short: linux + compiler_cc: gcc-9 + compiler_cxx: g++-9 + compiler_install: 'gcc-9-multilib g++-9-multilib' + - os: windows-2022 + os_short: windows + compiler_cc: msvc + fail-fast: false + runs-on: ${{ matrix.os }} + name: ${{ matrix.os_short }}-${{ matrix.compiler_cc }} + env: + DEPENDENCIES_FOLDER: dependencies + DEPENDENCIES_ROOT: ${{ github.workspace }}/dependencies + DEPENDENCIES_ROOT_WIN: ${{ github.workspace }}\dependencies + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + path: amxmodx + # Setup Python for AMBuild + - uses: actions/setup-python@v2 + name: Setup Python 3.9 + with: + python-version: 3.9 + - name: Install Python dependencies + run: | + python3 -m pip install --upgrade pip setuptools wheel + python3 --version + - name: Install AMXModX dependencies (Linux) + if: startsWith(runner.os, 'Linux') + shell: bash + run: | + mkdir -p ${{ env.DEPENDENCIES_FOLDER }} + cd ${{ env.DEPENDENCIES_FOLDER }} + + # Satisfy checkout-deps requirement for a "amxmodx" folder. + mkdir -p amxmodx + ../amxmodx/support/checkout-deps.sh + - name: Install AMXModX dependencies (Windows) + if: startsWith(runner.os, 'Windows') + shell: cmd + run: | + mkdir %DEPENDENCIES_ROOT_WIN%\nasm + curl -L -o "%DEPENDENCIES_ROOT_WIN%\nasm\nasm.zip" https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/win32/nasm-2.13.03-win32.zip + chdir %DEPENDENCIES_ROOT_WIN%\nasm + 7z x nasm.zip + + chdir %DEPENDENCIES_ROOT_WIN% + git clone https://github.com/alliedmodders/ambuild + git clone https://github.com/alliedmodders/metamod-hl1 metamod-am + git clone https://github.com/alliedmodders/hlsdk + + curl -L -o "mysql-connector-c-6.1.1-win32.zip" https://downloads.mysql.com/archives/get/p/19/file/mysql-connector-c-6.1.1-win32.zip + 7z x mysql-connector-c-6.1.1-win32.zip -o"mysql" + cd mysql + dir + ren mysql-connector-c-6.1.1-win32 mysql-5.5 + move /Y mysql-5.5 ..\ + + cd ..\ambuild + python3 setup.py install + - name: Install Linux dependencies + if: startsWith(runner.os, 'Linux') + run: | + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + gcc-multilib g++-multilib libstdc++6 lib32stdc++6 \ + libc6-dev libc6-dev-i386 linux-libc-dev \ + linux-libc-dev:i386 lib32z1-dev nasm ${{ matrix.compiler_cc }} ${{ matrix.compiler_install }} + - name: Select compiler + if: startsWith(runner.os, 'Linux') + run: | + echo "CC=${{ matrix.compiler_cc }}" >> $GITHUB_ENV + echo "CXX=${{ matrix.compiler_cxx }}" >> $GITHUB_ENV + ${{ matrix.compiler_cc }} --version + ${{ matrix.compiler_cxx }} --version + - uses: ilammy/setup-nasm@v1 + - name: Build Linux + if: startsWith(runner.os, 'Linux') + working-directory: amxmodx + run: | + mkdir build + cd build + python3 ../configure.py --enable-optimize --metamod=${{ env.DEPENDENCIES_ROOT }}/metamod-am --hlsdk=${{ env.DEPENDENCIES_ROOT }}/hlsdk --mysql=${{ env.DEPENDENCIES_ROOT }}/mysql-5.5 + ambuild + - name: Upload Linux artifacts + if: startsWith(runner.os, 'Linux') && always() + uses: actions/upload-artifact@v4 + with: + name: amxmodx-${{ matrix.os_short }}-${{ matrix.compiler_cc }}-${{ github.sha }} + path: amxmodx/build/packages/ + retention-days: 7 + - uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x86 + - name: Build Windows + if: startsWith(runner.os, 'Windows') + working-directory: amxmodx + shell: cmd + run: | + cl.exe + mkdir build + cd build + python3 ../configure.py --enable-optimize --metamod=${{ env.DEPENDENCIES_ROOT_WIN }}\metamod-am --hlsdk=${{ env.DEPENDENCIES_ROOT_WIN }}\hlsdk --mysql=${{ env.DEPENDENCIES_ROOT_WIN }}\mysql-5.5 + ambuild + - name: Upload Windows artifacts + if: startsWith(runner.os, 'Windows') && always() + uses: actions/upload-artifact@v4 + with: + name: amxmodx-${{ matrix.os_short }}-${{ matrix.compiler_cc }}-${{ github.sha }} + path: amxmodx/build/packages/ + retention-days: 7 diff --git a/.gitignore b/.gitignore index 8692a2f538..b6c155b3c1 100644 --- a/.gitignore +++ b/.gitignore @@ -84,5 +84,7 @@ Thumbs.db # AMXX plugin build related files plugins/compile.dat plugins/compiled/ +*.amx +*.amxx build_deps/ diff --git a/AMBuildScript b/AMBuildScript index df3a2ab6ce..8036ed6e7a 100644 --- a/AMBuildScript +++ b/AMBuildScript @@ -71,7 +71,7 @@ class AMXXConfig(object): if len(hlsdk_path): self.hlsdk_path = os.path.join(builder.originalCwd, hlsdk_path) if not os.path.exists(self.hlsdk_path): - raise Exception('Metamod path does not exist: {0}'.format(hlsdk_path)) + raise Exception('HLSDK path does not exist: {0}'.format(hlsdk_path)) else: try_paths = [ os.path.join(builder.sourcePath, '..', 'hlsdk'), @@ -94,7 +94,7 @@ class AMXXConfig(object): if len(mysql_path): self.mysql_path = os.path.join(builder.originalCwd, mysql_path) if not os.path.exists(self.mysql_path): - raise Exception('Metamod path does not exist: {0}'.format(mysql_path)) + raise Exception('MySQL path does not exist: {0}'.format(mysql_path)) else: try_paths = [ os.path.join(builder.sourcePath, '..', 'mysql-5.5'), @@ -225,8 +225,19 @@ class AMXXConfig(object): cxx.cxxflags += ['-Wno-delete-non-virtual-dtor'] if have_gcc and cxx.version >= '4.8': cxx.cflags += ['-Wno-unused-result', '-Wno-error=sign-compare'] + if have_gcc and cxx.version >= '8.0': + cxx.cflags += ['-Wno-stringop-truncation'] + if have_gcc and cxx.version >= '9.0': + cxx.cflags += ['-Wno-address-of-packed-member'] if have_clang: cxx.cxxflags += ['-Wno-implicit-exception-spec-mismatch'] + if cxx.version >= '10.0': + cxx.cxxflags += ['-Wno-tautological-compare'] + if cxx.version >= 'apple-clang-10.0': + cxx.cxxflags += [ + '-Wno-inconsistent-missing-override', + '-Wno-varargs', + ] if cxx.version >= 'apple-clang-5.1' or cxx.version >= 'clang-3.4': cxx.cxxflags += ['-Wno-deprecated-register'] else: @@ -317,15 +328,18 @@ class AMXXConfig(object): def configure_mac(self, cxx): cxx.defines += ['OSX', '_OSX', 'POSIX'] - cxx.cflags += ['-mmacosx-version-min=10.5'] + cxx.cflags += [ + '-mmacosx-version-min=10.7', + '-Wno-address-of-packed-member', + ] cxx.linkflags += [ - '-mmacosx-version-min=10.5', + '-mmacosx-version-min=10.7', '-arch', 'i386', '-lstdc++', - '-stdlib=libstdc++', + '-stdlib=libc++', '-framework', 'CoreServices', ] - cxx.cxxflags += ['-stdlib=libstdc++'] + cxx.cxxflags += ['-stdlib=libc++'] def configure_windows(self, cxx): cxx.defines += ['WIN32', '_WINDOWS'] diff --git a/amxmodx/CFlagManager.h b/amxmodx/CFlagManager.h index cec800a30f..95fd010d5b 100644 --- a/amxmodx/CFlagManager.h +++ b/amxmodx/CFlagManager.h @@ -143,6 +143,10 @@ class CFlagManager fclose(fp); }; } + else + { + fclose(fp); + } }; /** * Returns 1 if the timestamp for the file is different than the one we have loaded diff --git a/amxmodx/CForward.cpp b/amxmodx/CForward.cpp index 67ad2893e0..4b6ea2d869 100755 --- a/amxmodx/CForward.cpp +++ b/amxmodx/CForward.cpp @@ -323,7 +323,7 @@ cell CSPForward::execute(cell *params, ForwardPreparedArray *preparedArrays) amx_Push(m_Amx, realParams[i]); // exec - cell retVal; + cell retVal = 0; #if defined BINLOG_ENABLED g_BinLog.WriteOp(BinLog_CallPubFunc, pPlugin->getId(), m_Func); #endif diff --git a/amxmodx/CFrameAction.h b/amxmodx/CFrameAction.h index ee368b6a84..1201a928a7 100644 --- a/amxmodx/CFrameAction.h +++ b/amxmodx/CFrameAction.h @@ -53,6 +53,15 @@ class CFrameActionMngr } } + void clear() + { + int count = m_requestedFrames.length(); + while (count--) + { + m_requestedFrames.popFront(); + } + } + private: ke::Deque> m_requestedFrames; diff --git a/amxmodx/amxmodx.cpp b/amxmodx/amxmodx.cpp index 1bc7c53285..9a1847d93b 100755 --- a/amxmodx/amxmodx.cpp +++ b/amxmodx/amxmodx.cpp @@ -197,7 +197,7 @@ static cell AMX_NATIVE_CALL console_print(AMX *amx, cell *params) /* 2 param */ if (index < 1 || index > gpGlobals->maxClients) // Server console { - if (len > 254) + if (len > 254) // Server console truncates after byte 255. (254 + \n = 255) { len = 254; if ((message[len - 1] & 1 << 7)) @@ -216,18 +216,26 @@ static cell AMX_NATIVE_CALL console_print(AMX *amx, cell *params) /* 2 param */ if (pPlayer->ingame && !pPlayer->IsBot()) { - if (len > 126) // Client console truncates after byte 127. (126 + \n = 127) + if (len > 125) // Client console truncates after byte 127. (125 + \n\n = 127) { - len = 126; + len = 125; if ((message[len - 1] & 1 << 7)) { len -= UTIL_CheckValidChar(message + len - 1); // Don't truncate a multi-byte character } } - message[len++] = '\n'; // Client expects newline from the server + message[len++] = '\n'; + + const auto canUseFormatString = g_official_mod && !g_bmod_dod; // Temporary exclusion for DoD until officially supported + + if (canUseFormatString) + { + message[len++] = '\n'; // Double newline is required when pre-formatted string in TextMsg is passed as argument. + } + message[len] = 0; - UTIL_ClientPrint(pPlayer->pEdict, 2, message); + UTIL_ClientPrint(pPlayer->pEdict, HUD_PRINTCONSOLE, message); } } @@ -241,6 +249,8 @@ static cell AMX_NATIVE_CALL client_print(AMX *amx, cell *params) /* 3 param */ int len = 0; char *msg; + const auto canUseFormatString = g_official_mod && !g_bmod_dod; // Temporary exclusion for DoD until officially supported + if (params[1] == 0) // 0 = All players { for (int i = 1; i <= gpGlobals->maxClients; ++i) @@ -252,16 +262,38 @@ static cell AMX_NATIVE_CALL client_print(AMX *amx, cell *params) /* 3 param */ g_langMngr.SetDefLang(i); msg = format_amxstring(amx, params, 3, len); - // params[2]: print_notify = 1, print_console = 2, print_chat = 3, print_center = 4 - if (((params[2] == 1) || (params[2] == 2)) && (len > 126)) // Client console truncates after byte 127. (126 + \n = 127) + // Client console truncates after byte 127. + // If format string is used, limit includes double new lines (125 + \n\n), otherwise one new line (126 + \n). + const auto bytesLimit = canUseFormatString ? 125 : 126; + + if (g_bmod_cstrike && params[2] == HUD_PRINTCENTER) // Likely a temporary fix. + { + for (int j = 0; j < len; ++j) + { + if (msg[j] == '\n') + { + msg[j] = '\r'; + } + } + } + else if (((params[2] == HUD_PRINTNOTIFY) || (params[2] == HUD_PRINTCONSOLE)) && (len > bytesLimit)) { - len = 126; + len = bytesLimit; if ((msg[len - 1] & 1 << 7)) { len -= UTIL_CheckValidChar(msg + len - 1); // Don't truncate a multi-byte character } } - msg[len++] = '\n'; // Client expects newline from the server + msg[len++] = '\n'; + + if (canUseFormatString) + { + if (!g_bmod_cstrike || params[2] == HUD_PRINTNOTIFY || params[2] == HUD_PRINTCONSOLE) + { + msg[len++] = '\n'; // Double newline is required when pre-formatted string in TextMsg is passed as argument. + } + } + msg[len] = 0; UTIL_ClientPrint(pPlayer->pEdict, params[2], msg); @@ -286,16 +318,38 @@ static cell AMX_NATIVE_CALL client_print(AMX *amx, cell *params) /* 3 param */ msg = format_amxstring(amx, params, 3, len); - // params[2]: print_notify = 1, print_console = 2, print_chat = 3, print_center = 4 - if (((params[2] == 1) || (params[2] == 2)) && (len > 126)) // Client console truncates after byte 127. (126 + \n = 127) + // Client console truncates after byte 127. + // If format string is used, limit includes double new lines (125 + \n\n), otherwise one new line (126 + \n). + const auto bytesLimit = canUseFormatString ? 125 : 126; + + if (g_bmod_cstrike && params[2] == HUD_PRINTCENTER) // Likely a temporary fix. { - len = 126; + for (int j = 0; j < len; ++j) + { + if (msg[j] == '\n') + { + msg[j] = '\r'; + } + } + } + else if (((params[2] == HUD_PRINTNOTIFY) || (params[2] == HUD_PRINTCONSOLE)) && (len > bytesLimit)) // Client console truncates after byte 127. (125 + \n\n = 127) + { + len = bytesLimit; if ((msg[len - 1] & 1 << 7)) { len -= UTIL_CheckValidChar(msg + len - 1); // Don't truncate a multi-byte character } } - msg[len++] = '\n'; // Client expects newline from the server + msg[len++] = '\n'; + + if (canUseFormatString) + { + if (!g_bmod_cstrike || params[2] == HUD_PRINTNOTIFY || params[2] == HUD_PRINTCONSOLE) + { + msg[len++] = '\n'; // Double newline is required when pre-formatted string in TextMsg is passed as argument. + } + } + msg[len] = 0; UTIL_ClientPrint(pPlayer->pEdict, params[2], msg); @@ -344,16 +398,15 @@ static cell AMX_NATIVE_CALL client_print_color(AMX *amx, cell *params) /* 3 para *msg = 1; } - if (len > 190) // Server crashes after byte 190. (190 + \n = 191) + if (len > 187) // Max available bytes: 188 { - len = 190; + len = 187; if ((msg[len - 1] & 1 << 7)) { len -= UTIL_CheckValidChar(msg + len - 1); // Don't truncate a multi-byte character } } - - msg[len++] = '\n'; + msg[len] = 0; UTIL_ClientSayText(pPlayer->pEdict, sender ? sender : i, msg); @@ -382,16 +435,15 @@ static cell AMX_NATIVE_CALL client_print_color(AMX *amx, cell *params) /* 3 para *msg = 1; } - if (len > 190) // Server crashes after byte 190. (190 + \n = 191) + if (len > 187) // Max available bytes: 188 { - len = 190; + len = 187; if ((msg[len - 1] & 1 << 7)) { len -= UTIL_CheckValidChar(msg + len - 1); // Don't truncate a multi-byte character } } - msg[len++] = '\n'; msg[len] = 0; UTIL_ClientSayText(pPlayer->pEdict, sender ? sender : index, msg); @@ -473,13 +525,27 @@ static cell AMX_NATIVE_CALL next_hudchannel(AMX *amx, cell *params) return pPlayer->NextHUDChannel(); } -static cell AMX_NATIVE_CALL set_hudmessage(AMX *amx, cell *params) /* 11 param */ +static cell AMX_NATIVE_CALL set_hudmessage(AMX *amx, cell *params) /* 13 param */ { - g_hudset.a1 = 0; - g_hudset.a2 = 0; - g_hudset.r2 = 255; - g_hudset.g2 = 255; - g_hudset.b2 = 250; + cell num_params = params[0] / sizeof(cell); + + if(num_params >= 13) { + cell *color2 = get_amxaddr(amx, params[13]); + + g_hudset.a1 = params[12]; + g_hudset.a2 = color2[3]; + g_hudset.r2 = color2[0]; + g_hudset.g2 = color2[1]; + g_hudset.b2 = color2[2]; + } + else { + g_hudset.a1 = 0; + g_hudset.a2 = 0; + g_hudset.r2 = 255; + g_hudset.g2 = 255; + g_hudset.b2 = 250; + } + g_hudset.r1 = static_cast(params[1]); g_hudset.g1 = static_cast(params[2]); g_hudset.b1 = static_cast(params[3]); @@ -1272,7 +1338,6 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */ // Fire newmenu callback so closing it can be handled by the plugin if (!CloseNewMenus(pPlayer)) { - LogError(amx, AMX_ERR_NATIVE, "Plugin called menu_display when item=MENU_EXIT"); return 2; } @@ -1318,7 +1383,7 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */ return 0; } - if (closeMenu(index)) + if (closeMenu(index) == 2) { return 0; } @@ -1352,7 +1417,7 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */ pPlayer->vgui = false; if (time == -1) - pPlayer->menuexpire = INFINITE; + pPlayer->menuexpire = static_cast(INFINITE); else pPlayer->menuexpire = gpGlobals->time + static_cast(time); @@ -1370,7 +1435,7 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */ pPlayer->vgui = false; if (time == -1) - pPlayer->menuexpire = INFINITE; + pPlayer->menuexpire = static_cast(INFINITE); else pPlayer->menuexpire = gpGlobals->time + static_cast(time); @@ -2532,7 +2597,7 @@ static cell AMX_NATIVE_CALL read_argv(AMX *amx, cell *params) /* 3 param */ { int argc = params[1]; - const char *value = g_fakecmd.notify ? (argc >= 0 && argc < 3 ? g_fakecmd.argv[argc] : "") : CMD_ARGV(argc); + const char *value = g_fakecmd.notify ? ((argc >= 0 && argc < 3 && g_fakecmd.argv[argc] != nullptr) ? g_fakecmd.argv[argc] : "") : CMD_ARGV(argc); return set_amxstring_utf8(amx, params[2], value, strlen(value), params[3]); } @@ -2545,7 +2610,7 @@ static cell AMX_NATIVE_CALL read_argv_int(AMX *amx, cell *params) /* 1 param */ return 0; } - const char *value = g_fakecmd.notify ? (argc >= 1 && argc < 3 ? g_fakecmd.argv[argc] : "") : CMD_ARGV(argc); + const char *value = g_fakecmd.notify ? ((argc >= 1 && argc < 3 && g_fakecmd.argv[argc] != nullptr) ? g_fakecmd.argv[argc] : "") : CMD_ARGV(argc); return atoi(value); } @@ -2559,7 +2624,7 @@ static cell AMX_NATIVE_CALL read_argv_float(AMX *amx, cell *params) /* 1 param * return 0; } - const char *value = g_fakecmd.notify ? (argc >= 1 && argc < 3 ? g_fakecmd.argv[argc] : "") : CMD_ARGV(argc); + const char *value = g_fakecmd.notify ? ((argc >= 1 && argc < 3 && g_fakecmd.argv[argc] != nullptr) ? g_fakecmd.argv[argc] : "") : CMD_ARGV(argc); float flValue = atof(value); return amx_ftoc(flValue); @@ -2567,7 +2632,7 @@ static cell AMX_NATIVE_CALL read_argv_float(AMX *amx, cell *params) /* 1 param * static cell AMX_NATIVE_CALL read_args(AMX *amx, cell *params) /* 2 param */ { - const char* sValue = g_fakecmd.notify ? (g_fakecmd.argc > 1 ? g_fakecmd.args : g_fakecmd.argv[0]) : CMD_ARGS(); + const char* sValue = g_fakecmd.notify ? (g_fakecmd.argc > 1 ? g_fakecmd.args : "") : CMD_ARGS(); return set_amxstring_utf8(amx, params[1], sValue ? sValue : "", sValue ? strlen(sValue) : 0, params[2]); } diff --git a/amxmodx/amxmodx.h b/amxmodx/amxmodx.h index 7216793a94..037662e944 100755 --- a/amxmodx/amxmodx.h +++ b/amxmodx/amxmodx.h @@ -188,6 +188,11 @@ extern WeaponsVault g_weaponsData[MAX_WEAPONS]; extern XVars g_xvars; extern bool g_bmod_cstrike; extern bool g_bmod_dod; +extern bool g_bmod_dmc; +extern bool g_bmod_ricochet; +extern bool g_bmod_valve; +extern bool g_bmod_gearbox; +extern bool g_official_mod; extern bool g_dontprecache; extern int g_srvindex; extern cvar_t* amxmodx_version; diff --git a/amxmodx/meta_api.cpp b/amxmodx/meta_api.cpp index 6a4e10ad7c..1ec76b29cb 100755 --- a/amxmodx/meta_api.cpp +++ b/amxmodx/meta_api.cpp @@ -88,6 +88,11 @@ XVars g_xvars; bool g_bmod_tfc; bool g_bmod_cstrike; bool g_bmod_dod; +bool g_bmod_dmc; +bool g_bmod_ricochet; +bool g_bmod_valve; +bool g_bmod_gearbox; +bool g_official_mod; bool g_dontprecache; bool g_forcedmodules; bool g_forcedsounds; @@ -383,6 +388,7 @@ int C_Spawn(edict_t *pent) } + g_frameActionMngr.clear(); g_forwards.clear(); g_log.MapChange(); @@ -761,6 +767,7 @@ void C_ServerDeactivate_Post() g_forcegeneric.clear(); g_grenades.clear(); g_tasksMngr.clear(); + g_frameActionMngr.clear(); g_forwards.clear(); g_logevents.clearLogEvents(); g_events.clearEvents(); @@ -1709,6 +1716,7 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIME now, PL_UNLOAD_REASON reason) modules_callPluginsUnloading(); g_auth.clear(); + g_frameActionMngr.clear(); g_forwards.clear(); g_commands.clear(); g_forcemodels.clear(); @@ -1800,6 +1808,7 @@ C_DLLEXPORT int GetEntityAPI2_Post(DLL_FUNCTIONS *pFunctionTable, int *interface } enginefuncs_t meta_engfuncs; + C_DLLEXPORT int GetEngineFunctions(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) { memset(&meta_engfuncs, 0, sizeof(enginefuncs_t)); @@ -1809,11 +1818,17 @@ C_DLLEXPORT int GetEngineFunctions(enginefuncs_t *pengfuncsFromEngine, int *inte meta_engfuncs.pfnSetModel = C_SetModel; g_bmod_cstrike = true; } else { - g_bmod_cstrike = false; - g_bmod_dod = !stricmp(g_mod_name.chars(), "dod"); - g_bmod_tfc = !stricmp(g_mod_name.chars(), "tfc"); + g_bmod_cstrike = false; + g_bmod_dod = !stricmp(g_mod_name.chars(), "dod"); + g_bmod_dmc = !stricmp(g_mod_name.chars(), "dmc"); + g_bmod_tfc = !stricmp(g_mod_name.chars(), "tfc"); + g_bmod_ricochet = !stricmp(g_mod_name.chars(), "ricochet"); + g_bmod_valve = !stricmp(g_mod_name.chars(), "valve"); + g_bmod_gearbox = !stricmp(g_mod_name.chars(), "gearbox"); } + g_official_mod = g_bmod_cstrike || g_bmod_dod || g_bmod_dmc || g_bmod_ricochet || g_bmod_tfc || g_bmod_valve || g_bmod_gearbox; + meta_engfuncs.pfnCmd_Argc = C_Cmd_Argc; meta_engfuncs.pfnCmd_Argv = C_Cmd_Argv; meta_engfuncs.pfnCmd_Args = C_Cmd_Args; diff --git a/amxmodx/msvc12/ipch/WINCSX-7d4a1d4a/WINCSX-e0702fa2.ipch b/amxmodx/msvc12/ipch/WINCSX-7d4a1d4a/WINCSX-e0702fa2.ipch deleted file mode 100644 index 6d0b20bb5e..0000000000 Binary files a/amxmodx/msvc12/ipch/WINCSX-7d4a1d4a/WINCSX-e0702fa2.ipch and /dev/null differ diff --git a/amxmodx/newmenus.cpp b/amxmodx/newmenus.cpp index 9e07d3560b..af4e61db5b 100755 --- a/amxmodx/newmenus.cpp +++ b/amxmodx/newmenus.cpp @@ -809,7 +809,20 @@ static cell AMX_NATIVE_CALL menu_display(AMX *amx, cell *params) int player = params[1]; int page = params[3]; + + if (player < 1 || player > gpGlobals->maxClients) + { + LogError(amx, AMX_ERR_NATIVE, "Invalid player id %d.", player); + return 0; + } + CPlayer* pPlayer = GET_PLAYER_POINTER_I(player); + + if (!pPlayer->ingame) + { + LogError(amx, AMX_ERR_NATIVE, "Player %d is not in game.", player); + return 0; + } if (!CloseNewMenus(pPlayer)) { @@ -842,7 +855,7 @@ static cell AMX_NATIVE_CALL menu_display(AMX *amx, cell *params) time = params[4]; if (time < 0) - pPlayer->menuexpire = INFINITE; + pPlayer->menuexpire = static_cast(INFINITE); else pPlayer->menuexpire = gpGlobals->time + static_cast(time); @@ -995,7 +1008,7 @@ static cell AMX_NATIVE_CALL menu_setprop(AMX *amx, cell *params) } case MPROP_SHOWPAGE: { - pMenu->showPageNumber = (get_amxaddr(amx, params[3]) != 0); + pMenu->showPageNumber = *get_amxaddr(amx, params[3]) != 0; break; } case MPROP_SET_NUMBER_COLOR: diff --git a/amxmodx/string.cpp b/amxmodx/string.cpp index 2ff80fc726..ebed1ab932 100755 --- a/amxmodx/string.cpp +++ b/amxmodx/string.cpp @@ -1,4 +1,4 @@ -// vim: set ts=4 sw=4 tw=99 noet: +// vim: set ts=4 sw=4 tw=99 noet: // // AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO"). // Copyright (C) The AMX Mod X Development Team. @@ -210,6 +210,16 @@ void copy_amxmemory(cell* dest, cell* src, int len) *dest++=*src++; } +bool utf8isspace(const char* string) +{ + return utf8iscategory(string, 1, UTF8_CATEGORY_ISSPACE) != 0; +} + +size_t utf8getspaces(const char* string) +{ + return utf8iscategory(string, SIZE_MAX, UTF8_CATEGORY_ISSPACE); +} + char* parse_arg(char** line, int& state) { static char arg[3072]; @@ -218,7 +228,7 @@ char* parse_arg(char** line, int& state) while (**line) { - if (isspace(**line)) + if (utf8isspace(*line)) { if (state == 1) break; @@ -919,6 +929,7 @@ static cell AMX_NATIVE_CALL amx_strtok(AMX *amx, cell *params) int right_pos = 0; unsigned int i = 0; bool done_flag = false; + size_t spaces; int len = 0; //string[] @@ -938,9 +949,9 @@ static cell AMX_NATIVE_CALL amx_strtok(AMX *amx, cell *params) { if (trim && !done_flag) { - if (isspace(string[i])) + if ((spaces = utf8getspaces(string + i) > 0)) { - while (isspace(string[++i])); + i += spaces; done_flag = true; } } @@ -974,6 +985,7 @@ static cell AMX_NATIVE_CALL amx_strtok2(AMX *amx, cell *params) { int left_pos = 0, right_pos = 0, len, pos = -1; unsigned int i = 0; + size_t spaces; char *string = get_amxstring(amx, params[1], 0, len); char *left = new char[len + 1], *right = new char[len + 1]; @@ -989,9 +1001,9 @@ static cell AMX_NATIVE_CALL amx_strtok2(AMX *amx, cell *params) int trim = params[7]; // ltrim left - if (trim & 1 && isspace(string[i])) + if (trim & 1 && (spaces = utf8getspaces(string)) > 0) { - while (isspace(string[++i])); + i += spaces; } for (; i < (unsigned int) len; ++i) @@ -1007,17 +1019,17 @@ static cell AMX_NATIVE_CALL amx_strtok2(AMX *amx, cell *params) } // rtrim left - if (trim & 2 && left_pos && isspace(left[left_pos - 1])) + if (trim & 2 && left_pos && utf8isspace(&left[left_pos - 1])) { - while (--left_pos >= 0 && isspace(left[left_pos])); + while (--left_pos >= 0 && utf8isspace(&left[left_pos])); ++left_pos; } // ltrim right - if (trim & 4 && isspace(string[i])) + if (trim & 4 && (spaces = utf8getspaces(string + i)) > 0) { - while (isspace(string[++i])); + i += spaces; } for (; i < (unsigned int) len; ++i) @@ -1026,9 +1038,9 @@ static cell AMX_NATIVE_CALL amx_strtok2(AMX *amx, cell *params) } // rtrim right - if (trim & 8 && right_pos && isspace(right[right_pos - 1])) + if (trim & 8 && right_pos && utf8isspace(&right[right_pos - 1])) { - while (--right_pos >= 0 && isspace(right[right_pos])); + while (--right_pos >= 0 && utf8isspace(&right[right_pos])); ++right_pos; } @@ -1058,8 +1070,12 @@ static cell AMX_NATIVE_CALL argparse(AMX *amx, cell *params) // Strip all left-hand whitespace. size_t i = start_pos; - while (i < input_len && isspace(input[i])) - i++; + size_t spaces; + + if ((spaces = utf8getspaces(input + i)) > 0) + { + i += spaces; + } if (i >= input_len) { *buffer = '\0'; @@ -1078,7 +1094,7 @@ static cell AMX_NATIVE_CALL argparse(AMX *amx, cell *params) } // If not in quotes, and we see a space, stop. - if (isspace(input[i]) && !in_quote) + if (utf8isspace(input + i) && !in_quote) break; if (size_t(bufpos - buffer) < buflen) @@ -1106,9 +1122,13 @@ static cell AMX_NATIVE_CALL strbreak(AMX *amx, cell *params) /* 5 param */ int RightMax = params[5]; size_t len = (size_t)_len; + size_t spaces; + + if ((spaces = utf8getspaces(string)) > 0) + { + i += spaces; + } - while (isspace(string[i]) && i 0) { do_copy: size_t pos = i; - while (isspace(string[i])) - i++; + i += spaces; + const char *start = had_quotes ? &(string[beg+1]) : &(string[beg]); size_t _end = had_quotes ? (i==len-1 ? 1 : 2) : 0; size_t end = (pos - _end > (size_t)LeftMax) ? (size_t)LeftMax : pos - _end; @@ -1367,18 +1387,27 @@ static cell AMX_NATIVE_CALL amx_strlen(AMX *amx, cell *params) static cell AMX_NATIVE_CALL amx_trim(AMX *amx, cell *params) { - int len, newlen; - char *str = get_amxstring(amx, params[1], 0, len); + int length; + auto string = get_amxstring(amx, params[1], 0, length); - UTIL_TrimLeft(str); - UTIL_TrimRight(str); + auto leftSpaces = utf8getspaces(string); + auto rightSpaces = 0u; - newlen = strlen(str); - len -= newlen; + auto originalLength = length; - set_amxstring(amx, params[1], str, newlen); + if (leftSpaces < size_t(length)) + { + while (--length >= 0 && utf8isspace(string + length)) + { + ++rightSpaces; + } + } - return len; + auto totalSpaces = leftSpaces + rightSpaces; + + set_amxstring(amx, params[1], string + leftSpaces, originalLength - totalSpaces); + + return totalSpaces; } static cell AMX_NATIVE_CALL n_strcat(AMX *amx, cell *params) diff --git a/amxmodx/textparse.cpp b/amxmodx/textparse.cpp index 7ad389ded6..9f4e062c8e 100644 --- a/amxmodx/textparse.cpp +++ b/amxmodx/textparse.cpp @@ -44,7 +44,12 @@ cell destroyParser(cell *handle) // native SMCParser:SMC_CreateParser(); static cell AMX_NATIVE_CALL SMC_CreateParser(AMX *amx, cell *params) { - return createParser(); + const auto handle = createParser(); + const auto parseInfo = TextParsersHandles.lookup(handle); + + parseInfo->handle = handle; + + return handle; } // native SMC_SetParseStart(SMCParser:handle, const func[]); @@ -224,7 +229,12 @@ static cell AMX_NATIVE_CALL SMC_DestroyParser(AMX *amx, cell *params) // native INIParser:INI_CreateParser(); static cell AMX_NATIVE_CALL INI_CreateParser(AMX *amx, cell *params) { - return createParser(); + const auto handle = createParser(); + const auto parseInfo = TextParsersHandles.lookup(handle); + + parseInfo->handle = handle; + + return handle; } // native bool:INI_ParseFile(INIParser:handle, const file[], &line = 0, &col = 0, any:data = 0); diff --git a/amxmodx/util.cpp b/amxmodx/util.cpp index 8b3713dcf4..d09b032c5f 100755 --- a/amxmodx/util.cpp +++ b/amxmodx/util.cpp @@ -221,11 +221,11 @@ void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, const ch WRITE_BYTE(textparms.r1); WRITE_BYTE(textparms.g1); WRITE_BYTE(textparms.b1); - WRITE_BYTE(0); - WRITE_BYTE(255); - WRITE_BYTE(255); - WRITE_BYTE(250); - WRITE_BYTE(0); + WRITE_BYTE(textparms.a1); + WRITE_BYTE(textparms.r2); + WRITE_BYTE(textparms.g2); + WRITE_BYTE(textparms.b2); + WRITE_BYTE(textparms.a2); WRITE_SHORT(FixedUnsigned16(textparms.fadeinTime, (1<<8))); WRITE_SHORT(FixedUnsigned16(textparms.fadeoutTime, (1<<8))); WRITE_SHORT(FixedUnsigned16(textparms.holdTime, (1<<8))); @@ -260,40 +260,54 @@ void UTIL_DHudMessage(edict_t *pEntity, const hudtextparms_t &textparms, const c MESSAGE_END(); } -/* warning - buffer of msg must be longer than 190 chars! -(here in AMX it is always longer) */ +/** + * User message size limit: 192 bytes + * Actual available size: 188 bytes (with EOS) + */ void UTIL_ClientPrint(edict_t *pEntity, int msg_dest, char *msg) { if (!gmsgTextMsg) return; // :TODO: Maybe output a warning log? - char c = msg[190]; - msg[190] = 0; // truncate without checking with strlen() + const auto canUseFormatString = g_official_mod && !g_bmod_dod; // Temporary exclusion for DoD until officially supported + const auto index = canUseFormatString ? 187 : 190; + char c = msg[index]; + msg[index] = 0; // truncate without checking with strlen() if (pEntity) MESSAGE_BEGIN(MSG_ONE, gmsgTextMsg, NULL, pEntity); else MESSAGE_BEGIN(MSG_BROADCAST, gmsgTextMsg); - WRITE_BYTE(msg_dest); - WRITE_STRING(msg); - MESSAGE_END(); - msg[190] = c; + WRITE_BYTE(msg_dest); // 1 byte + if (canUseFormatString) + WRITE_STRING("%s"); // 3 bytes (2 + EOS) + WRITE_STRING(msg); // max 188 bytes (187 + EOS) + MESSAGE_END(); // max 192 bytes + msg[index] = c; } +/** + * User message size limit: 192 bytes + * Actual available size: 188 bytes (with EOS) + */ void UTIL_ClientSayText(edict_t *pEntity, int sender, char *msg) { if (!gmsgSayText) return; // :TODO: Maybe output a warning log? - char c = msg[190]; - msg[190] = 0; // truncate without checking with strlen() + const auto canUseFormatString = g_official_mod && !g_bmod_dod; // Temporary exclusion for DoD until officially supported + const auto index = canUseFormatString ? 187 : 190; + char c = msg[index]; + msg[index] = 0; // truncate without checking with strlen() MESSAGE_BEGIN(MSG_ONE, gmsgSayText, NULL, pEntity); - WRITE_BYTE(sender); - WRITE_STRING(msg); - MESSAGE_END(); - msg[190] = c; + WRITE_BYTE(sender); // 1 byte + if (canUseFormatString) + WRITE_STRING("%s"); // 3 bytes (2 + EOS) + WRITE_STRING(msg); // max 188 bytes (187 + EOS) + MESSAGE_END(); // max 192 bytes + msg[index] = c; } void UTIL_TeamInfo(edict_t *pEntity, int playerIndex, const char *pszTeamName) diff --git a/appveyor.yml b/appveyor.yml index 087c775f8c..4f5e965eee 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -12,7 +12,7 @@ install: - git clone https://github.com/alliedmodders/ambuild - git clone https://github.com/alliedmodders/metamod-hl1 - git clone https://github.com/alliedmodders/hlsdk -- ps: Start-FileDownload 'https://downloads.mysql.com/archives/get/file/mysql-connector-c-6.1.1-win32.zip' +- ps: Start-FileDownload 'https://downloads.mysql.com/archives/get/p/19/file/mysql-connector-c-6.1.1-win32.zip' - 7z x mysql-connector-c-6.1.1-win32.zip -o"mysql" - cd mysql - dir diff --git a/compiler/libpc300/sc.h b/compiler/libpc300/sc.h index 0f8b321210..82a7616dc1 100755 --- a/compiler/libpc300/sc.h +++ b/compiler/libpc300/sc.h @@ -726,8 +726,6 @@ int mfputs(MEMFILE *mf,char *string); SC_FUNC int cp_path(const char *root,const char *directory); SC_FUNC int cp_set(const char *name); SC_FUNC cell cp_translate(const unsigned char *string,const unsigned char **endptr); -SC_FUNC cell get_utf8_char(const unsigned char *string,const unsigned char **endptr); -SC_FUNC int scan_utf8(FILE *fp,const char *filename); /* function prototypes in SCSTATE.C */ SC_FUNC constvalue *automaton_add(const char *name); @@ -803,7 +801,6 @@ SC_VDECL int sc_status; /* read/write status */ SC_VDECL int sc_rationaltag; /* tag for rational numbers */ SC_VDECL int rational_digits; /* number of fractional digits */ SC_VDECL int sc_allowproccall;/* allow/detect tagnames in lex() */ -SC_VDECL short sc_is_utf8; /* is this source file in UTF-8 encoding */ SC_VDECL char *pc_deprecate; /* if non-NULL, mark next declaration as deprecated */ SC_VDECL int sc_warnings_are_errors; diff --git a/compiler/libpc300/sc2.c b/compiler/libpc300/sc2.c index 5bd3735b55..5d7b6a8406 100755 --- a/compiler/libpc300/sc2.c +++ b/compiler/libpc300/sc2.c @@ -152,7 +152,6 @@ static char *extensions[] = { ".inc", ".p", ".pawn" }; PUSHSTK_I(iflevel); assert(!SKIPPING); assert(skiplevel==iflevel); /* these two are always the same when "parsing" */ - PUSHSTK_I(sc_is_utf8); PUSHSTK_I(icomment); PUSHSTK_I(fcurrent); PUSHSTK_I(fline); @@ -169,7 +168,6 @@ static char *extensions[] = { ".inc", ".p", ".pawn" }; assert(sc_status == statFIRST || strcmp(get_inputfile(fcurrent), inpfname) == 0); setfiledirect(inpfname); /* (optionally) set in the list file */ listline=-1; /* force a #line directive when changing the file */ - sc_is_utf8=(short)scan_utf8(inpf,name); return TRUE; } @@ -319,7 +317,6 @@ static void readline(unsigned char *line) fline=i; fcurrent=(short)POPSTK_I(); icomment=(short)POPSTK_I(); - sc_is_utf8=(short)POPSTK_I(); iflevel=(short)POPSTK_I(); skiplevel=iflevel; /* this condition held before including the file */ assert(!SKIPPING); /* idem ditto */ @@ -603,13 +600,6 @@ static int htoi(cell *val,const unsigned char *curptr) return (int)(ptr-curptr); } -#if defined __APPLE__ -static double pow10(double d) -{ - return pow(10, d); -} -#endif - /* ftoi * * Attempts to interpret a numeric symbol as a rational number, either as @@ -685,11 +675,7 @@ static int ftoi(cell *val,const unsigned char *curptr) exp=(exp*10)+(*ptr-'0'); ptr++; } /* while */ - #if defined __GNUC__ - fmult=pow10(exp*sign); - #else - fmult=pow(10,exp*sign); - #endif + fmult=pow(10,exp*sign); fnum *= fmult; dnum *= (unsigned long)(fmult+0.5); } /* if */ @@ -2395,21 +2381,12 @@ static cell litchar(const unsigned char **lptr,int flags) cptr=*lptr; if ((flags & RAWMODE)!=0 || *cptr!=sc_ctrlchar) { /* no escape character */ - #if !defined NO_UTF8 - if (sc_is_utf8 && (flags & UTF8MODE)!=0) { - c=get_utf8_char(cptr,&cptr); - assert(c>=0); /* file was already scanned for conformance to UTF-8 */ - } else { - #endif #if !defined NO_CODEPAGE c=cp_translate(cptr,&cptr); #else c=*cptr; cptr+=1; #endif - #if !defined NO_UTF8 - } /* if */ - #endif } else { cptr+=1; if (*cptr==sc_ctrlchar) { diff --git a/compiler/libpc300/sci18n.c b/compiler/libpc300/sci18n.c index b106fa9c28..40912c46dd 100755 --- a/compiler/libpc300/sci18n.c +++ b/compiler/libpc300/sci18n.c @@ -309,120 +309,3 @@ SC_FUNC cell cp_translate(const unsigned char *string,const unsigned char **endp } #endif /* NO_CODEPAGE */ - -#if !defined NO_UTF8 -SC_FUNC cell get_utf8_char(const unsigned char *string,const unsigned char **endptr) -{ - int follow=0; - long lowmark=0; - unsigned char ch; - cell result=0; - - if (endptr!=NULL) - *endptr=string; - - for ( ;; ) { - ch=*string++; - - if (follow>0 && (ch & 0xc0)==0x80) { - /* leader code is active, combine with earlier code */ - result=(result << 6) | (ch & 0x3f); - if (--follow==0) { - /* encoding a character in more bytes than is strictly needed, - * is not really valid UTF-8; we are strict here to increase - * the chance of heuristic dectection of non-UTF-8 text - * (JAVA writes zero bytes as a 2-byte code UTF-8, which is invalid) - */ - if (result=0xd800 && result<=0xdfff) || result==0xfffe || result==0xffff) - return -1; - } /* if */ - break; - } else if (follow==0 && (ch & 0x80)==0x80) { - /* UTF-8 leader code */ - if ((ch & 0xe0)==0xc0) { - /* 110xxxxx 10xxxxxx */ - follow=1; - lowmark=0x80L; - result=ch & 0x1f; - } else if ((ch & 0xf0)==0xe0) { - /* 1110xxxx 10xxxxxx 10xxxxxx (16 bits, BMP plane) */ - follow=2; - lowmark=0x800L; - result=ch & 0x0f; - } else if ((ch & 0xf8)==0xf0) { - /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */ - follow=3; - lowmark=0x10000L; - result=ch & 0x07; - } else if ((ch & 0xfc)==0xf8) { - /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */ - follow=4; - lowmark=0x200000L; - result=ch & 0x03; - } else if ((ch & 0xfe)==0xfc) { - /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx (32 bits) */ - follow=5; - lowmark=0x4000000L; - result=ch & 0x01; - } else { - /* this is invalid UTF-8 */ - return -1; - } /* if */ - } else if (follow==0 && (ch & 0x80)==0x00) { - /* 0xxxxxxx (US-ASCII) */ - result=ch; - break; - } else { - /* this is invalid UTF-8 */ - return -1; - } /* if */ - - } /* for */ - - if (endptr!=NULL) - *endptr=string; - return result; -} -#endif - -SC_FUNC int scan_utf8(FILE *fp,const char *filename) -{ - #if defined NO_UTF8 - return 0; - #else - static void *resetpos=NULL; - int utf8=TRUE; - int firstchar=TRUE,bom_found=FALSE; - const unsigned char *ptr; - - resetpos=pc_getpossrc(fp); - while (utf8 && pc_readsrc(fp,pline,sLINEMAX)!=NULL) { - ptr=pline; - if (firstchar) { - /* check whether the very first character on the very first line - * starts with a BYTE order mark - */ - cell c=get_utf8_char(ptr,&ptr); - bom_found= (c==0xfeff); - utf8= (c>=0); - firstchar=FALSE; - } /* if */ - while (utf8 && *ptr!='\0') - utf8= (get_utf8_char(ptr,&ptr)>=0); - } /* while */ - pc_resetsrc(fp,resetpos); - if (bom_found) { - unsigned char bom[3]; - if (!utf8) - error(77,filename); /* malformed UTF-8 encoding */ - pc_readsrc(fp,bom,3); - assert(bom[0]==0xef && bom[1]==0xbb && bom[2]==0xbf); - } /* if */ - return utf8; - #endif /* NO_UTF8 */ -} diff --git a/compiler/libpc300/scvars.c b/compiler/libpc300/scvars.c index 4a38f149e7..89c3b339a7 100755 --- a/compiler/libpc300/scvars.c +++ b/compiler/libpc300/scvars.c @@ -84,7 +84,6 @@ SC_VDEFINE int sc_status; /* read/write status */ SC_VDEFINE int sc_rationaltag=0; /* tag for rational numbers */ SC_VDEFINE int rational_digits=0; /* number of fractional digits */ SC_VDEFINE int sc_allowproccall=0; /* allow/detect tagnames in lex() */ -SC_VDEFINE short sc_is_utf8=FALSE; /* is this source file in UTF-8 encoding */ SC_VDEFINE char *pc_deprecate = NULL;/* if non-null, mark next declaration as deprecated */ SC_VDEFINE int sc_showincludes=0; /* show include files */ SC_VDEFINE int sc_warnings_are_errors=0; diff --git a/gamedata/common.games/entities.games/cstrike/offsets-cbaseplayer.txt b/gamedata/common.games/entities.games/cstrike/offsets-cbaseplayer.txt index 856731b759..ddf81f3121 100644 --- a/gamedata/common.games/entities.games/cstrike/offsets-cbaseplayer.txt +++ b/gamedata/common.games/entities.games/cstrike/offsets-cbaseplayer.txt @@ -1729,6 +1729,33 @@ "linux" "2468" "mac" "2468" } + + "m_iLastAccount" // int + { + "type" "integer" + + "windows" "2480" + "linux" "2500" + "mac" "2500" + } + + "m_iLastClientHealth" // int + { + "type" "integer" + + "windows" "2484" + "linux" "2504" + "mac" "2504" + } + + "m_tmNextAccountHealthUpdate" // float + { + "type" "float" + + "windows" "2488" + "linux" "2508" + "mac" "2508" + } } } } diff --git a/gamedata/common.games/entities.games/cstrike/offsets-cbot.txt b/gamedata/common.games/entities.games/cstrike/offsets-cbot.txt index 07d9cac946..86e5c3594d 100644 --- a/gamedata/common.games/entities.games/cstrike/offsets-cbot.txt +++ b/gamedata/common.games/entities.games/cstrike/offsets-cbot.txt @@ -23,9 +23,9 @@ { "type" "pointer" - "windows" "2480" - "linux" "2500" - "mac" "2500" + "windows" "2492" + "linux" "2512" + "mac" "2512" } "m_id" // unsigned int @@ -33,81 +33,81 @@ "type" "integer" "unsigned" "1" - "windows" "2484" - "linux" "2504" - "mac" "2504" + "windows" "2496" + "linux" "2516" + "mac" "2516" } "m_flNextBotThink" // float { "type" "float" - "windows" "2488" - "linux" "2508" - "mac" "2508" + "windows" "2500" + "linux" "2520" + "mac" "2520" } "m_flNextFullBotThink" // float { "type" "float" - "windows" "2492" - "linux" "2512" - "mac" "2512" + "windows" "2504" + "linux" "2524" + "mac" "2524" } "m_flPreviousCommandTime" // float { "type" "float" - "windows" "2496" - "linux" "2516" - "mac" "2516" + "windows" "2508" + "linux" "2528" + "mac" "2528" } "m_isRunning" // bool { "type" "boolean" - "windows" "2500" - "linux" "2520" - "mac" "2520" + "windows" "2512" + "linux" "2532" + "mac" "2532" } "m_isCrouching" // bool { "type" "boolean" - "windows" "2501" - "linux" "2521" - "mac" "2521" + "windows" "2513" + "linux" "2533" + "mac" "2533" } "m_forwardSpeed" // float { "type" "float" - "windows" "2504" - "linux" "2524" - "mac" "2524" + "windows" "2516" + "linux" "2536" + "mac" "2536" } "m_strafeSpeed" // float { "type" "float" - "windows" "2508" - "linux" "2528" - "mac" "2528" + "windows" "2520" + "linux" "2540" + "mac" "2540" } "m_verticalSpeed" // float { "type" "float" - "windows" "2512" - "linux" "2532" - "mac" "2532" + "windows" "2524" + "linux" "2544" + "mac" "2544" } "m_buttonFlags" // short unsigned int @@ -115,18 +115,18 @@ "type" "short" "unsigned" "1" - "windows" "2516" - "linux" "2536" - "mac" "2536" + "windows" "2528" + "linux" "2548" + "mac" "2548" } "m_jumpTimestamp" // float { "type" "float" - "windows" "2520" - "linux" "2540" - "mac" "2540" + "windows" "2532" + "linux" "2552" + "mac" "2552" } "m_postureStack" // struct PostureContext[8] @@ -134,18 +134,18 @@ "type" "structure" "size" "8" - "windows" "2524" - "linux" "2544" - "mac" "2544" + "windows" "2536" + "linux" "2556" + "mac" "2556" } "m_postureStackIndex" // int { "type" "integer" - "windows" "2540" - "linux" "2560" - "mac" "2560" + "windows" "2552" + "linux" "2572" + "mac" "2572" } } } diff --git a/gamedata/common.games/entities.games/cstrike/offsets-ccsbot.txt b/gamedata/common.games/entities.games/cstrike/offsets-ccsbot.txt index 05de82a1f6..e82d3afd58 100644 --- a/gamedata/common.games/entities.games/cstrike/offsets-ccsbot.txt +++ b/gamedata/common.games/entities.games/cstrike/offsets-ccsbot.txt @@ -24,111 +24,84 @@ "type" "string" "size" "64" - "windows" "2544" - "linux" "2564" - "mac" "2564" + "windows" "2556" + "linux" "2576" + "mac" "2576" } "m_combatRange" // float { "type" "float" - "windows" "2608" - "linux" "2628" - "mac" "2628" + "windows" "2620" + "linux" "2640" + "mac" "2640" } "m_isRogue" // bool { "type" "boolean" - "windows" "2612" - "linux" "2632" - "mac" "2632" - } - - "m_rogueTimer" // class CountdownTimer - { - "type" "class" - - "windows" "2616" - "linux" "2636" - "mac" "2636" - } - - "m_morale" // enum MoraleType - { - "type" "integer" - "windows" "2624" "linux" "2644" "mac" "2644" } - "m_diedLastRound" // bool + "m_rogueTimer" // class CountdownTimer { - "type" "boolean" + "type" "class" "windows" "2628" "linux" "2648" "mac" "2648" } - "m_safeTime" // float - { - "type" "float" - - "windows" "2632" - "linux" "2652" - "mac" "2652" - } - - "m_wasSafe" // bool + "m_morale" // enum MoraleType { - "type" "boolean" + "type" "integer" "windows" "2636" "linux" "2656" "mac" "2656" } - "m_blindMoveDir" // enum NavRelativeDirType + "m_diedLastRound" // bool { - "type" "integer" + "type" "boolean" "windows" "2640" "linux" "2660" "mac" "2660" } - "m_blindFire" // bool + "m_safeTime" // float { - "type" "boolean" + "type" "float" "windows" "2644" "linux" "2664" "mac" "2664" } - "m_surpriseDelay" // float + "m_wasSafe" // bool { - "type" "float" + "type" "boolean" "windows" "2648" "linux" "2668" "mac" "2668" } - "m_surpriseTimestamp" // float + "m_blindMoveDir" // enum NavRelativeDirType { - "type" "float" + "type" "integer" "windows" "2652" "linux" "2672" "mac" "2672" } - "m_isFollowing" // bool + "m_blindFire" // bool { "type" "boolean" @@ -137,52 +110,61 @@ "mac" "2676" } - "m_leader" // EHANDLE + "m_surpriseDelay" // float { - "type" "ehandle" + "type" "float" "windows" "2660" "linux" "2680" "mac" "2680" } - "m_followTimestamp" // float + "m_surpriseTimestamp" // float { "type" "float" + "windows" "2664" + "linux" "2684" + "mac" "2684" + } + + "m_isFollowing" // bool + { + "type" "boolean" + "windows" "2668" "linux" "2688" "mac" "2688" } - "m_allowAutoFollowTime" // float + "m_leader" // EHANDLE { - "type" "float" + "type" "ehandle" "windows" "2672" "linux" "2692" "mac" "2692" } - "m_hurryTimer" // class CountdownTimer + "m_followTimestamp" // float { - "type" "class" + "type" "float" - "windows" "2676" - "linux" "2696" - "mac" "2696" + "windows" "2680" + "linux" "2700" + "mac" "2700" } - "m_idleState" // class IdleState + "m_allowAutoFollowTime" // float { - "type" "class" + "type" "float" "windows" "2684" "linux" "2704" "mac" "2704" } - "m_huntState" // class HuntState + "m_hurryTimer" // class CountdownTimer { "type" "class" @@ -191,7 +173,7 @@ "mac" "2708" } - "m_attackState" // class AttackState + "m_idleState" // class IdleState { "type" "class" @@ -200,220 +182,238 @@ "mac" "2716" } + "m_huntState" // class HuntState + { + "type" "class" + + "windows" "2700" + "linux" "2720" + "mac" "2720" + } + + "m_attackState" // class AttackState + { + "type" "class" + + "windows" "2708" + "linux" "2728" + "mac" "2728" + } + "m_investigateNoiseState" // class InvestigateNoiseState { "type" "class" - "windows" "2756" - "linux" "2776" - "mac" "2776" + "windows" "2768" + "linux" "2788" + "mac" "2788" } "m_buyState" // class BuyState { "type" "class" - "windows" "2772" - "linux" "2792" - "mac" "2792" + "windows" "2784" + "linux" "2804" + "mac" "2804" } "m_moveToState" // class MoveToState { "type" "class" - "windows" "2800" - "linux" "2820" - "mac" "2820" + "windows" "2812" + "linux" "2832" + "mac" "2832" } "m_fetchBombState" // class FetchBombState { "type" "class" - "windows" "2824" - "linux" "2844" - "mac" "2844" + "windows" "2836" + "linux" "2856" + "mac" "2856" } "m_plantBombState" // class PlantBombState { "type" "class" - "windows" "2828" - "linux" "2848" - "mac" "2848" + "windows" "2840" + "linux" "2860" + "mac" "2860" } "m_defuseBombState" // class DefuseBombState { "type" "class" - "windows" "2832" - "linux" "2852" - "mac" "2852" + "windows" "2844" + "linux" "2864" + "mac" "2864" } "m_hideState" // class HideState { "type" "class" - "windows" "2836" - "linux" "2856" - "mac" "2856" + "windows" "2848" + "linux" "2868" + "mac" "2868" } "m_escapeFromBombState" // class EscapeFromBombState { "type" "class" - "windows" "2900" - "linux" "2920" - "mac" "2920" + "windows" "2912" + "linux" "2932" + "mac" "2932" } "m_followState" // class FollowState { "type" "class" - "windows" "2904" - "linux" "2924" - "mac" "2924" + "windows" "2916" + "linux" "2936" + "mac" "2936" } "m_useEntityState" // class UseEntityState { "type" "class" - "windows" "2980" - "linux" "3000" - "mac" "3000" + "windows" "2992" + "linux" "3012" + "mac" "3012" } "m_state" // class BotState* { "type" "pointer" - "windows" "2992" - "linux" "3012" - "mac" "3012" + "windows" "3004" + "linux" "3024" + "mac" "3024" } "m_stateTimestamp" // float { "type" "float" - "windows" "2996" - "linux" "3016" - "mac" "3016" + "windows" "3008" + "linux" "3028" + "mac" "3028" } "m_isAttacking" // bool { "type" "boolean" - "windows" "3000" - "linux" "3020" - "mac" "3020" + "windows" "3012" + "linux" "3032" + "mac" "3032" } "m_task" // enum TaskType { "type" "integer" - "windows" "3004" - "linux" "3024" - "mac" "3024" + "windows" "3016" + "linux" "3036" + "mac" "3036" } "m_taskEntity" // EHANDLE { "type" "ehandle" - "windows" "3008" - "linux" "3028" - "mac" "3028" + "windows" "3020" + "linux" "3040" + "mac" "3040" } "m_goalPosition" // Vector { "type" "vector" - "windows" "3016" - "linux" "3036" - "mac" "3036" + "windows" "3028" + "linux" "3048" + "mac" "3048" } "m_goalEntity" // EHANDLE { "type" "ehandle" - "windows" "3028" - "linux" "3048" - "mac" "3048" + "windows" "3040" + "linux" "3060" + "mac" "3060" } "m_currentArea" // class CNavArea* { "type" "pointer" - "windows" "3036" - "linux" "3056" - "mac" "3056" + "windows" "3048" + "linux" "3068" + "mac" "3068" } "m_lastKnownArea" // class CNavArea* { "type" "pointer" - "windows" "3040" - "linux" "3060" - "mac" "3060" + "windows" "3052" + "linux" "3072" + "mac" "3072" } "m_avoid" // EHANDLE { "type" "ehandle" - "windows" "3044" - "linux" "3064" - "mac" "3064" + "windows" "3056" + "linux" "3076" + "mac" "3076" } "m_avoidTimestamp" // float { "type" "float" - "windows" "3052" - "linux" "3072" - "mac" "3072" + "windows" "3064" + "linux" "3084" + "mac" "3084" } "m_isJumpCrouching" // bool { "type" "boolean" - "windows" "3056" - "linux" "3076" - "mac" "3076" + "windows" "3068" + "linux" "3088" + "mac" "3088" } "m_isJumpCrouched" // bool { "type" "boolean" - "windows" "3057" - "linux" "3077" - "mac" "3077" + "windows" "3069" + "linux" "3089" + "mac" "3089" } "m_jumpCrouchTimestamp" // float { "type" "float" - "windows" "3060" - "linux" "3080" - "mac" "3080" + "windows" "3072" + "linux" "3092" + "mac" "3092" } "m_path" // struct ConnectInfo[256] @@ -421,162 +421,162 @@ "type" "structure" "size" "256" - "windows" "3064" - "linux" "3084" - "mac" "3084" + "windows" "3076" + "linux" "3096" + "mac" "3096" } "m_pathLength" // int { "type" "integer" - "windows" "9208" - "linux" "9228" - "mac" "9228" + "windows" "9220" + "linux" "9240" + "mac" "9240" } "m_pathIndex" // int { "type" "integer" - "windows" "9212" - "linux" "9232" - "mac" "9232" + "windows" "9224" + "linux" "9244" + "mac" "9244" } "m_areaEnteredTimestamp" // float { "type" "float" - "windows" "9216" - "linux" "9236" - "mac" "9236" + "windows" "9228" + "linux" "9248" + "mac" "9248" } "m_repathTimer" // class CountdownTimer { "type" "class" - "windows" "9220" - "linux" "9240" - "mac" "9240" + "windows" "9232" + "linux" "9252" + "mac" "9252" } "m_avoidFriendTimer" // class CountdownTimer { "type" "class" - "windows" "9228" - "linux" "9248" - "mac" "9248" + "windows" "9240" + "linux" "9260" + "mac" "9260" } "m_isFriendInTheWay" // bool { "type" "boolean" - "windows" "9236" - "linux" "9256" - "mac" "9256" + "windows" "9248" + "linux" "9268" + "mac" "9268" } "m_politeTimer" // class CountdownTimer { "type" "class" - "windows" "9240" - "linux" "9260" - "mac" "9260" + "windows" "9252" + "linux" "9272" + "mac" "9272" } "m_isWaitingBehindFriend" // bool { "type" "boolean" - "windows" "9248" - "linux" "9268" - "mac" "9268" + "windows" "9260" + "linux" "9280" + "mac" "9280" } "m_pathLadderState" // enum LadderNavState { "type" "integer" - "windows" "9252" - "linux" "9272" - "mac" "9272" + "windows" "9264" + "linux" "9284" + "mac" "9284" } "m_pathLadderFaceIn" // bool { "type" "boolean" - "windows" "9256" - "linux" "9276" - "mac" "9276" + "windows" "9268" + "linux" "9288" + "mac" "9288" } "m_pathLadder" // const class CNavLadder* { "type" "pointer" - "windows" "9260" - "linux" "9280" - "mac" "9280" + "windows" "9272" + "linux" "9292" + "mac" "9292" } "m_pathLadderDismountDir" // enum NavRelativeDirType { "type" "integer" - "windows" "9264" - "linux" "9284" - "mac" "9284" + "windows" "9276" + "linux" "9296" + "mac" "9296" } "m_pathLadderDismountTimestamp" // float { "type" "float" - "windows" "9268" - "linux" "9288" - "mac" "9288" + "windows" "9280" + "linux" "9300" + "mac" "9300" } "m_pathLadderEnd" // float { "type" "float" - "windows" "9272" - "linux" "9292" - "mac" "9292" + "windows" "9284" + "linux" "9304" + "mac" "9304" } "m_pathLadderTimestamp" // float { "type" "float" - "windows" "9276" - "linux" "9296" - "mac" "9296" + "windows" "9288" + "linux" "9308" + "mac" "9308" } "m_mustRunTimer" // class CountdownTimer { "type" "class" - "windows" "9280" - "linux" "9300" - "mac" "9300" + "windows" "9292" + "linux" "9312" + "mac" "9312" } "m_gameState" // class CSGameState { "type" "class" - "windows" "9288" - "linux" "9308" - "mac" "9308" + "windows" "9300" + "linux" "9320" + "mac" "9320" } "m_hostageEscortCount" // byte @@ -584,216 +584,216 @@ "type" "character" "unsigned" "1" - "windows" "9636" - "linux" "9656" - "mac" "9656" + "windows" "9648" + "linux" "9668" + "mac" "9668" } "m_hostageEscortCountTimestamp" // float { "type" "float" - "windows" "9640" - "linux" "9660" - "mac" "9660" + "windows" "9652" + "linux" "9672" + "mac" "9672" } "m_isWaitingForHostage" // bool { "type" "boolean" - "windows" "9644" - "linux" "9664" - "mac" "9664" + "windows" "9656" + "linux" "9676" + "mac" "9676" } "m_inhibitWaitingForHostageTimer" // class CountdownTimer { "type" "class" - "windows" "9648" - "linux" "9668" - "mac" "9668" + "windows" "9660" + "linux" "9680" + "mac" "9680" } "m_waitForHostageTimer" // class CountdownTimer { "type" "class" - "windows" "9656" - "linux" "9676" - "mac" "9676" + "windows" "9668" + "linux" "9688" + "mac" "9688" } "m_noisePosition" // Vector { "type" "vector" - "windows" "9664" - "linux" "9684" - "mac" "9684" + "windows" "9676" + "linux" "9696" + "mac" "9696" } "m_noiseTimestamp" // float { "type" "float" - "windows" "9676" - "linux" "9696" - "mac" "9696" + "windows" "9688" + "linux" "9708" + "mac" "9708" } "m_noiseArea" // class CNavArea* { "type" "pointer" - "windows" "9680" - "linux" "9700" - "mac" "9700" + "windows" "9692" + "linux" "9712" + "mac" "9712" } "m_noiseCheckTimestamp" // float { "type" "float" - "windows" "9684" - "linux" "9704" - "mac" "9704" + "windows" "9696" + "linux" "9716" + "mac" "9716" } "m_noisePriority" // enum PriorityType { "type" "integer" - "windows" "9688" - "linux" "9708" - "mac" "9708" + "windows" "9700" + "linux" "9720" + "mac" "9720" } "m_isNoiseTravelRangeChecked" // bool { "type" "boolean" - "windows" "9692" - "linux" "9712" - "mac" "9712" + "windows" "9704" + "linux" "9724" + "mac" "9724" } "m_lookAroundStateTimestamp" // float { "type" "float" - "windows" "9696" - "linux" "9716" - "mac" "9716" + "windows" "9708" + "linux" "9728" + "mac" "9728" } "m_lookAheadAngle" // float { "type" "float" - "windows" "9700" - "linux" "9720" - "mac" "9720" + "windows" "9712" + "linux" "9732" + "mac" "9732" } "m_forwardAngle" // float { "type" "float" - "windows" "9704" - "linux" "9724" - "mac" "9724" + "windows" "9716" + "linux" "9736" + "mac" "9736" } "m_inhibitLookAroundTimestamp" // float { "type" "float" - "windows" "9708" - "linux" "9728" - "mac" "9728" + "windows" "9720" + "linux" "9740" + "mac" "9740" } "m_lookAtSpotState" // enum LookAtSpotState { "type" "integer" - "windows" "9712" - "linux" "9732" - "mac" "9732" + "windows" "9724" + "linux" "9744" + "mac" "9744" } "m_lookAtSpot" // Vector { "type" "vector" - "windows" "9716" - "linux" "9736" - "mac" "9736" + "windows" "9728" + "linux" "9748" + "mac" "9748" } "m_lookAtSpotPriority" // enum PriorityType { "type" "integer" - "windows" "9728" - "linux" "9748" - "mac" "9748" + "windows" "9740" + "linux" "9760" + "mac" "9760" } "m_lookAtSpotDuration" // float { "type" "float" - "windows" "9732" - "linux" "9752" - "mac" "9752" + "windows" "9744" + "linux" "9764" + "mac" "9764" } "m_lookAtSpotTimestamp" // float { "type" "float" - "windows" "9736" - "linux" "9756" - "mac" "9756" + "windows" "9748" + "linux" "9768" + "mac" "9768" } "m_lookAtSpotAngleTolerance" // float { "type" "float" - "windows" "9740" - "linux" "9760" - "mac" "9760" + "windows" "9752" + "linux" "9772" + "mac" "9772" } "m_lookAtSpotClearIfClose" // bool { "type" "boolean" - "windows" "9744" - "linux" "9764" - "mac" "9764" + "windows" "9756" + "linux" "9776" + "mac" "9776" } "m_lookAtDesc" // const char* { "type" "stringptr" - "windows" "9748" - "linux" "9768" - "mac" "9768" + "windows" "9760" + "linux" "9780" + "mac" "9780" } "m_peripheralTimestamp" // float { "type" "float" - "windows" "9752" - "linux" "9772" - "mac" "9772" + "windows" "9764" + "linux" "9784" + "mac" "9784" } "m_approachPoint" // Vector[16] @@ -801,9 +801,9 @@ "type" "vector" "size" "16" - "windows" "9756" - "linux" "9776" - "mac" "9776" + "windows" "9768" + "linux" "9788" + "mac" "9788" } "m_approachPointCount" // unsigned char @@ -811,54 +811,54 @@ "type" "character" "unsigned" "1" - "windows" "9948" - "linux" "9968" - "mac" "9968" + "windows" "9960" + "linux" "9980" + "mac" "9980" } "m_approachPointViewPosition" // Vector { "type" "vector" - "windows" "9952" - "linux" "9972" - "mac" "9972" + "windows" "9964" + "linux" "9984" + "mac" "9984" } "m_isWaitingToTossGrenade" // bool { "type" "boolean" - "windows" "9964" - "linux" "9984" - "mac" "9984" + "windows" "9976" + "linux" "9996" + "mac" "9996" } "m_tossGrenadeTimer" // class CountdownTimer { "type" "class" - "windows" "9968" - "linux" "9988" - "mac" "9988" + "windows" "9980" + "linux" "10000" + "mac" "10000" } "m_spotEncounter" // class SpotEncounter* { "type" "pointer" - "windows" "9976" - "linux" "9996" - "mac" "9996" + "windows" "9988" + "linux" "10008" + "mac" "10008" } "m_spotCheckTimestamp" // float { "type" "float" - "windows" "9980" - "linux" "10000" - "mac" "10000" + "windows" "9992" + "linux" "10012" + "mac" "10012" } "m_checkedHidingSpot" // struct HidingSpotCheckInfo[64] @@ -866,75 +866,66 @@ "type" "structure" "size" "64" - "windows" "9984" - "linux" "10004" - "mac" "10004" + "windows" "9996" + "linux" "10016" + "mac" "10016" } "m_checkedHidingSpotCount" // int { "type" "integer" - "windows" "10496" - "linux" "10516" - "mac" "10516" + "windows" "10508" + "linux" "10528" + "mac" "10528" } "m_lookPitch" // float { "type" "float" - "windows" "10500" - "linux" "10520" - "mac" "10520" + "windows" "10512" + "linux" "10532" + "mac" "10532" } "m_lookPitchVel" // float { "type" "float" - "windows" "10504" - "linux" "10524" - "mac" "10524" + "windows" "10516" + "linux" "10536" + "mac" "10536" } "m_lookYaw" // float { "type" "float" - "windows" "10508" - "linux" "10528" - "mac" "10528" + "windows" "10520" + "linux" "10540" + "mac" "10540" } "m_lookYawVel" // float { "type" "float" - "windows" "10512" - "linux" "10532" - "mac" "10532" + "windows" "10524" + "linux" "10544" + "mac" "10544" } "m_eyePos" // Vector { "type" "vector" - "windows" "10516" - "linux" "10536" - "mac" "10536" - } - - "m_aimOffset" // Vector - { - "type" "vector" - "windows" "10528" "linux" "10548" "mac" "10548" } - "m_aimOffsetGoal" // Vector + "m_aimOffset" // Vector { "type" "vector" @@ -943,67 +934,76 @@ "mac" "10560" } - "m_aimOffsetTimestamp" // float + "m_aimOffsetGoal" // Vector { - "type" "float" + "type" "vector" "windows" "10552" "linux" "10572" "mac" "10572" } + "m_aimOffsetTimestamp" // float + { + "type" "float" + + "windows" "10564" + "linux" "10584" + "mac" "10584" + } + "m_aimSpreadTimestamp" // float { "type" "float" - "windows" "10556" - "linux" "10576" - "mac" "10576" + "windows" "10568" + "linux" "10588" + "mac" "10588" } "m_aimSpot" // Vector { "type" "vector" - "windows" "10560" - "linux" "10580" - "mac" "10580" + "windows" "10572" + "linux" "10592" + "mac" "10592" } "m_disposition" // enum DispositionType { "type" "integer" - "windows" "10572" - "linux" "10592" - "mac" "10592" + "windows" "10584" + "linux" "10604" + "mac" "10604" } "m_ignoreEnemiesTimer" // class CountdownTimer { "type" "class" - "windows" "10576" - "linux" "10596" - "mac" "10596" + "windows" "10588" + "linux" "10608" + "mac" "10608" } "m_enemy" // EHANDLE { "type" "ehandle" - "windows" "10584" - "linux" "10604" - "mac" "10604" + "windows" "10596" + "linux" "10616" + "mac" "10616" } "m_isEnemyVisible" // bool { "type" "boolean" - "windows" "10592" - "linux" "10612" - "mac" "10612" + "windows" "10604" + "linux" "10624" + "mac" "10624" } "m_visibleEnemyParts" // unsigned char @@ -1011,72 +1011,72 @@ "type" "character" "unsigned" "1" - "windows" "10593" - "linux" "10613" - "mac" "10613" + "windows" "10605" + "linux" "10625" + "mac" "10625" } "m_lastEnemyPosition" // Vector { "type" "vector" - "windows" "10596" - "linux" "10616" - "mac" "10616" + "windows" "10608" + "linux" "10628" + "mac" "10628" } "m_lastSawEnemyTimestamp" // float { "type" "float" - "windows" "10608" - "linux" "10628" - "mac" "10628" + "windows" "10620" + "linux" "10640" + "mac" "10640" } "m_firstSawEnemyTimestamp" // float { "type" "float" - "windows" "10612" - "linux" "10632" - "mac" "10632" + "windows" "10624" + "linux" "10644" + "mac" "10644" } "m_currentEnemyAcquireTimestamp" // float { "type" "float" - "windows" "10616" - "linux" "10636" - "mac" "10636" + "windows" "10628" + "linux" "10648" + "mac" "10648" } "m_enemyDeathTimestamp" // float { "type" "float" - "windows" "10620" - "linux" "10640" - "mac" "10640" + "windows" "10632" + "linux" "10652" + "mac" "10652" } "m_isLastEnemyDead" // bool { "type" "boolean" - "windows" "10624" - "linux" "10644" - "mac" "10644" + "windows" "10636" + "linux" "10656" + "mac" "10656" } "m_nearbyEnemyCount" // int { "type" "integer" - "windows" "10628" - "linux" "10648" - "mac" "10648" + "windows" "10640" + "linux" "10660" + "mac" "10660" } "m_enemyPlace" // unsigned int @@ -1084,9 +1084,9 @@ "type" "integer" "unsigned" "1" - "windows" "10632" - "linux" "10652" - "mac" "10652" + "windows" "10644" + "linux" "10664" + "mac" "10664" } "m_watchInfo" // struct WatchInfo[32] @@ -1094,108 +1094,108 @@ "type" "structure" "size" "32" - "windows" "10636" - "linux" "10656" - "mac" "10656" + "windows" "10648" + "linux" "10668" + "mac" "10668" } "m_bomber" // EHANDLE { "type" "ehandle" - "windows" "10892" - "linux" "10912" - "mac" "10912" + "windows" "10904" + "linux" "10924" + "mac" "10924" } "m_nearbyFriendCount" // int { "type" "integer" - "windows" "10900" - "linux" "10920" - "mac" "10920" + "windows" "10912" + "linux" "10932" + "mac" "10932" } "m_closestVisibleFriend" // EHANDLE { "type" "ehandle" - "windows" "10904" - "linux" "10924" - "mac" "10924" + "windows" "10916" + "linux" "10936" + "mac" "10936" } "m_closestVisibleHumanFriend" // EHANDLE { "type" "ehandle" - "windows" "10912" - "linux" "10932" - "mac" "10932" + "windows" "10924" + "linux" "10944" + "mac" "10944" } "m_attacker" // CBasePlayer* { "type" "classptr" - "windows" "10920" - "linux" "10940" - "mac" "10940" + "windows" "10932" + "linux" "10952" + "mac" "10952" } "m_attackedTimestamp" // float { "type" "float" - "windows" "10924" - "linux" "10944" - "mac" "10944" + "windows" "10936" + "linux" "10956" + "mac" "10956" } "m_lastVictimID" // int { "type" "integer" - "windows" "10928" - "linux" "10948" - "mac" "10948" + "windows" "10940" + "linux" "10960" + "mac" "10960" } "m_isAimingAtEnemy" // bool { "type" "boolean" - "windows" "10932" - "linux" "10952" - "mac" "10952" + "windows" "10944" + "linux" "10964" + "mac" "10964" } "m_isRapidFiring" // bool { "type" "boolean" - "windows" "10933" - "linux" "10953" - "mac" "10953" + "windows" "10945" + "linux" "10965" + "mac" "10965" } "m_equipTimer" // class IntervalTimer { "type" "class" - "windows" "10936" - "linux" "10956" - "mac" "10956" + "windows" "10948" + "linux" "10968" + "mac" "10968" } "m_fireWeaponTimestamp" // float { "type" "float" - "windows" "10940" - "linux" "10960" - "mac" "10960" + "windows" "10952" + "linux" "10972" + "mac" "10972" } "m_enemyQueue" // struct ReactionState[20] @@ -1203,9 +1203,9 @@ "type" "structure" "size" "20" - "windows" "10944" - "linux" "10964" - "mac" "10964" + "windows" "10956" + "linux" "10976" + "mac" "10976" } "m_enemyQueueIndex" // byte @@ -1213,9 +1213,9 @@ "type" "character" "unsigned" "1" - "windows" "11184" - "linux" "11204" - "mac" "11204" + "windows" "11196" + "linux" "11216" + "mac" "11216" } "m_enemyQueueCount" // byte @@ -1223,9 +1223,9 @@ "type" "character" "unsigned" "1" - "windows" "11185" - "linux" "11205" - "mac" "11205" + "windows" "11197" + "linux" "11217" + "mac" "11217" } "m_enemyQueueAttendIndex" // byte @@ -1233,63 +1233,63 @@ "type" "character" "unsigned" "1" - "windows" "11186" - "linux" "11206" - "mac" "11206" + "windows" "11198" + "linux" "11218" + "mac" "11218" } "m_isStuck" // bool { "type" "boolean" - "windows" "11187" - "linux" "11207" - "mac" "11207" + "windows" "11199" + "linux" "11219" + "mac" "11219" } "m_stuckTimestamp" // float { "type" "float" - "windows" "11188" - "linux" "11208" - "mac" "11208" + "windows" "11200" + "linux" "11220" + "mac" "11220" } "m_stuckSpot" // Vector { "type" "vector" - "windows" "11192" - "linux" "11212" - "mac" "11212" + "windows" "11204" + "linux" "11224" + "mac" "11224" } "m_wiggleDirection" // enum NavRelativeDirType { "type" "integer" - "windows" "11204" - "linux" "11224" - "mac" "11224" + "windows" "11216" + "linux" "11236" + "mac" "11236" } "m_wiggleTimestamp" // float { "type" "float" - "windows" "11208" - "linux" "11228" - "mac" "11228" + "windows" "11220" + "linux" "11240" + "mac" "11240" } "m_stuckJumpTimestamp" // float { "type" "float" - "windows" "11212" - "linux" "11232" - "mac" "11232" + "windows" "11224" + "linux" "11244" + "mac" "11244" } "m_avgVel" // float[5] @@ -1297,180 +1297,180 @@ "type" "float" "size" "5" - "windows" "11216" - "linux" "11236" - "mac" "11236" + "windows" "11228" + "linux" "11248" + "mac" "11248" } "m_avgVelIndex" // int { "type" "integer" - "windows" "11236" - "linux" "11256" - "mac" "11256" + "windows" "11248" + "linux" "11268" + "mac" "11268" } "m_avgVelCount" // int { "type" "integer" - "windows" "11240" - "linux" "11260" - "mac" "11260" + "windows" "11252" + "linux" "11272" + "mac" "11272" } "m_lastOrigin" // Vector { "type" "vector" - "windows" "11244" - "linux" "11264" - "mac" "11264" + "windows" "11256" + "linux" "11276" + "mac" "11276" } "m_lastRadioCommand" // enum GameEventType { "type" "integer" - "windows" "11256" - "linux" "11276" - "mac" "11276" + "windows" "11268" + "linux" "11288" + "mac" "11288" } "m_lastRadioRecievedTimestamp" // float { "type" "float" - "windows" "11260" - "linux" "11280" - "mac" "11280" + "windows" "11272" + "linux" "11292" + "mac" "11292" } "m_lastRadioSentTimestamp" // float { "type" "float" - "windows" "11264" - "linux" "11284" - "mac" "11284" + "windows" "11276" + "linux" "11296" + "mac" "11296" } "m_radioSubject" // EHANDLE { "type" "ehandle" - "windows" "11268" - "linux" "11288" - "mac" "11288" + "windows" "11280" + "linux" "11300" + "mac" "11300" } "m_radioPosition" // Vector { "type" "vector" - "windows" "11276" - "linux" "11296" - "mac" "11296" + "windows" "11288" + "linux" "11308" + "mac" "11308" } "m_voiceFeedbackStartTimestamp" // float { "type" "float" - "windows" "11288" - "linux" "11308" - "mac" "11308" + "windows" "11300" + "linux" "11320" + "mac" "11320" } "m_voiceFeedbackEndTimestamp" // float { "type" "float" - "windows" "11292" - "linux" "11312" - "mac" "11312" + "windows" "11304" + "linux" "11324" + "mac" "11324" } "m_chatter" // struct BotChatterInterface { "type" "structure" - "windows" "11296" - "linux" "11316" - "mac" "11316" + "windows" "11308" + "linux" "11328" + "mac" "11328" } "m_navNodeList" // const class CNavNode* { "type" "pointer" - "windows" "11360" - "linux" "11380" - "mac" "11380" + "windows" "11372" + "linux" "11392" + "mac" "11392" } "m_currentNode" // class CNavNode* { "type" "pointer" - "windows" "11364" - "linux" "11384" - "mac" "11384" + "windows" "11376" + "linux" "11396" + "mac" "11396" } "m_generationDir" // enum NavDirType { "type" "integer" - "windows" "11368" - "linux" "11388" - "mac" "11388" + "windows" "11380" + "linux" "11400" + "mac" "11400" } "m_analyzeIter" // iterator { "type" "class" - "windows" "11372" - "linux" "11392" - "mac" "11392" + "windows" "11384" + "linux" "11404" + "mac" "11404" } "m_processMode" // enum ProcessType { "type" "integer" - "windows" "11376" - "linux" "11396" - "mac" "11396" + "windows" "11388" + "linux" "11408" + "mac" "11408" } "m_mumbleTimer" // class CountdownTimer { "type" "class" - "windows" "11380" - "linux" "11400" - "mac" "11400" + "windows" "11392" + "linux" "11412" + "mac" "11412" } "m_booTimer" // class CountdownTimer { "type" "class" - "windows" "11388" - "linux" "11408" - "mac" "11408" + "windows" "11400" + "linux" "11420" + "mac" "11420" } "m_relocateTimer" // class CountdownTimer { "type" "class" - "windows" "11396" - "linux" "11416" - "mac" "11416" + "windows" "11408" + "linux" "11428" + "mac" "11428" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-calliedbarney.txt b/gamedata/common.games/entities.games/dod/offsets-calliedbarney.txt index 83f2376d86..80cfdb8b44 100644 --- a/gamedata/common.games/entities.games/dod/offsets-calliedbarney.txt +++ b/gamedata/common.games/entities.games/dod/offsets-calliedbarney.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "1040" - "linux" "1060" - "mac" "1060" - } - - "m_painTime" // float - { - "type" "float" - "windows" "1044" "linux" "1064" "mac" "1064" } - "m_checkAttackTime" // float + "m_painTime" // float { "type" "float" @@ -46,40 +37,49 @@ "mac" "1068" } - "m_lastAttackCheck" // BOOL + "m_checkAttackTime" // float { - "type" "integer" + "type" "float" "windows" "1052" "linux" "1072" "mac" "1072" } - "m_angles" // Vector + "m_lastAttackCheck" // BOOL { - "type" "vector" + "type" "integer" "windows" "1056" "linux" "1076" "mac" "1076" } + "m_angles" // Vector + { + "type" "vector" + + "windows" "1060" + "linux" "1080" + "mac" "1080" + } + "m_origin" // Vector { "type" "vector" - "windows" "1068" - "linux" "1088" - "mac" "1088" + "windows" "1072" + "linux" "1092" + "mac" "1092" } "m_flPlayerDamage" // float { "type" "float" - "windows" "1080" - "linux" "1100" - "mac" "1100" + "windows" "1084" + "linux" "1104" + "mac" "1104" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-calliedgrunt.txt b/gamedata/common.games/entities.games/dod/offsets-calliedgrunt.txt index af2ca90ab2..c232529f63 100644 --- a/gamedata/common.games/entities.games/dod/offsets-calliedgrunt.txt +++ b/gamedata/common.games/entities.games/dod/offsets-calliedgrunt.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "972" - "linux" "992" - "mac" "992" - } - - "m_flNextPainTime" // float - { - "type" "float" - "windows" "976" "linux" "996" "mac" "996" } - "m_flLastEnemySightTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -46,25 +37,25 @@ "mac" "1000" } - "m_vecTossVelocity" // Vector + "m_flLastEnemySightTime" // float { - "type" "vector" + "type" "float" "windows" "984" "linux" "1004" "mac" "1004" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "996" - "linux" "1016" - "mac" "1016" + "windows" "988" + "linux" "1008" + "mac" "1008" } - "m_fStanding" // BOOL + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -73,7 +64,7 @@ "mac" "1020" } - "m_fFirstEncounter" // BOOL + "m_fStanding" // BOOL { "type" "integer" @@ -82,7 +73,7 @@ "mac" "1024" } - "m_cClipSize" // int + "m_fFirstEncounter" // BOOL { "type" "integer" @@ -91,7 +82,7 @@ "mac" "1028" } - "m_voicePitch" // int + "m_cClipSize" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "1032" } - "m_iBrassShell" // int + "m_voicePitch" // int { "type" "integer" @@ -109,7 +100,7 @@ "mac" "1036" } - "m_iSentence" // int + "m_iBrassShell" // int { "type" "integer" @@ -117,6 +108,15 @@ "linux" "1040" "mac" "1040" } + + "m_iSentence" // int + { + "type" "integer" + + "windows" "1024" + "linux" "1044" + "mac" "1044" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-caxisgrunt.txt b/gamedata/common.games/entities.games/dod/offsets-caxisgrunt.txt index 0dc1dd723b..f4cf51e25d 100644 --- a/gamedata/common.games/entities.games/dod/offsets-caxisgrunt.txt +++ b/gamedata/common.games/entities.games/dod/offsets-caxisgrunt.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "972" - "linux" "992" - "mac" "992" - } - - "m_flNextPainTime" // float - { - "type" "float" - "windows" "976" "linux" "996" "mac" "996" } - "m_flLastEnemySightTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -46,25 +37,25 @@ "mac" "1000" } - "m_vecTossVelocity" // Vector + "m_flLastEnemySightTime" // float { - "type" "vector" + "type" "float" "windows" "984" "linux" "1004" "mac" "1004" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "996" - "linux" "1016" - "mac" "1016" + "windows" "988" + "linux" "1008" + "mac" "1008" } - "m_fStanding" // BOOL + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -73,7 +64,7 @@ "mac" "1020" } - "m_fFirstEncounter" // BOOL + "m_fStanding" // BOOL { "type" "integer" @@ -82,7 +73,7 @@ "mac" "1024" } - "m_cClipSize" // int + "m_fFirstEncounter" // BOOL { "type" "integer" @@ -91,7 +82,7 @@ "mac" "1028" } - "m_voicePitch" // int + "m_cClipSize" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "1032" } - "m_iBrassShell" // int + "m_voicePitch" // int { "type" "integer" @@ -109,7 +100,7 @@ "mac" "1036" } - "m_iSentence" // int + "m_iBrassShell" // int { "type" "integer" @@ -117,6 +108,15 @@ "linux" "1040" "mac" "1040" } + + "m_iSentence" // int + { + "type" "integer" + + "windows" "1024" + "linux" "1044" + "mac" "1044" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cbasemonster.txt b/gamedata/common.games/entities.games/dod/offsets-cbasemonster.txt index a5a9ce17ab..31af812f8a 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cbasemonster.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cbasemonster.txt @@ -429,14 +429,23 @@ "mac" "928" } - "m_iClass" // int + "m_flLastYawTime" // float { - "type" "integer" + "type" "float" "windows" "912" "linux" "932" "mac" "932" } + + "m_iClass" // int + { + "type" "integer" + + "windows" "916" + "linux" "936" + "mac" "936" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cbaseplayer.txt b/gamedata/common.games/entities.games/dod/offsets-cbaseplayer.txt index faa629794d..6e07626bcf 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cbaseplayer.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cbaseplayer.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" - } - - "random_seed" // int - { - "type" "integer" - "windows" "920" "linux" "940" "mac" "940" } - "m_iPlayerSound" // int + "random_seed" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "944" } - "m_iTargetVolume" // int + "m_iPlayerSound" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "948" } - "m_iWeaponVolume" // int + "m_iTargetVolume" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "952" } - "m_iExtraSoundTypes" // int + "m_iWeaponVolume" // int { "type" "integer" @@ -73,25 +64,25 @@ "mac" "956" } - "m_flStopExtraSoundTime" // float + "m_iExtraSoundTypes" // int { - "type" "float" + "type" "integer" "windows" "940" "linux" "960" "mac" "960" } - "m_afButtonLast" // int + "m_flStopExtraSoundTime" // float { - "type" "integer" + "type" "float" "windows" "944" "linux" "964" "mac" "964" } - "m_afButtonPressed" // int + "m_afButtonLast" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "968" } - "m_afButtonReleased" // int + "m_afButtonPressed" // int { "type" "integer" @@ -109,25 +100,25 @@ "mac" "972" } - "m_pentSndLast" // edict_t* + "m_afButtonReleased" // int { - "type" "edict" + "type" "integer" "windows" "956" "linux" "976" "mac" "976" } - "m_flSndRoomtype" // float + "m_pentSndLast" // edict_t* { - "type" "float" + "type" "edict" "windows" "960" "linux" "980" "mac" "980" } - "m_flSndRange" // float + "m_flSndRoomtype" // float { "type" "float" @@ -136,7 +127,7 @@ "mac" "984" } - "m_flFallVelocity" // float + "m_flSndRange" // float { "type" "float" @@ -145,16 +136,16 @@ "mac" "988" } - "m_fKnownItem" // int + "m_flFallVelocity" // float { - "type" "integer" + "type" "float" "windows" "972" "linux" "992" "mac" "992" } - "m_fNewAmmo" // int + "m_fKnownItem" // int { "type" "integer" @@ -163,26 +154,26 @@ "mac" "996" } - "m_afPhysicsFlags" // unsigned int + "m_fNewAmmo" // int { "type" "integer" - "unsigned" "1" "windows" "980" "linux" "1000" "mac" "1000" } - "m_fNextSuicideTime" // float + "m_afPhysicsFlags" // unsigned int { - "type" "float" + "type" "integer" + "unsigned" "1" "windows" "984" "linux" "1004" "mac" "1004" } - "m_flTimeWeaponIdle" // float + "m_fNextSuicideTime" // float { "type" "float" @@ -191,35 +182,35 @@ "mac" "1008" } - "m_szTextureName" // char[13] + "m_flTimeWeaponIdle" // float { - "type" "string" - "size" "13" + "type" "float" "windows" "992" "linux" "1012" "mac" "1012" } - "m_chTextureType" // char + "m_szTextureName" // char[13] { - "type" "character" + "type" "string" + "size" "13" - "windows" "1005" - "linux" "1025" - "mac" "1025" + "windows" "996" + "linux" "1016" + "mac" "1016" } - "m_idrowndmg" // int + "m_chTextureType" // char { - "type" "integer" + "type" "character" - "windows" "1008" - "linux" "1028" - "mac" "1028" + "windows" "1009" + "linux" "1029" + "mac" "1029" } - "m_idrownrestored" // int + "m_idrowndmg" // int { "type" "integer" @@ -228,7 +219,7 @@ "mac" "1032" } - "m_bitsHUDDamage" // int + "m_idrownrestored" // int { "type" "integer" @@ -237,7 +228,7 @@ "mac" "1036" } - "m_fInitHUD" // BOOL + "m_bitsHUDDamage" // int { "type" "integer" @@ -246,7 +237,7 @@ "mac" "1040" } - "m_fGameHUDInitialized" // BOOL + "m_fInitHUD" // BOOL { "type" "integer" @@ -255,7 +246,7 @@ "mac" "1044" } - "m_iTrain" // int + "m_fGameHUDInitialized" // BOOL { "type" "integer" @@ -264,7 +255,7 @@ "mac" "1048" } - "m_fWeapon" // BOOL + "m_iTrain" // int { "type" "integer" @@ -273,7 +264,7 @@ "mac" "1052" } - "m_iJoiningState" // enum JoinState + "m_fWeapon" // BOOL { "type" "integer" @@ -282,34 +273,34 @@ "mac" "1056" } - "m_pTank" // EHANDLE + "m_iJoiningState" // enum JoinState { - "type" "ehandle" + "type" "integer" "windows" "1040" "linux" "1060" "mac" "1060" } - "m_fDeadTime" // float + "m_pTank" // EHANDLE { - "type" "float" + "type" "ehandle" - "windows" "1048" - "linux" "1068" - "mac" "1068" + "windows" "1044" + "linux" "1064" + "mac" "1064" } - "m_iUpdateTime" // int + "m_fDeadTime" // float { - "type" "integer" + "type" "float" "windows" "1052" "linux" "1072" "mac" "1072" } - "m_iHideHUD" // int + "m_iUpdateTime" // int { "type" "integer" @@ -318,25 +309,25 @@ "mac" "1076" } - "m_iRespawnFrames" // float + "m_iHideHUD" // int { - "type" "float" + "type" "integer" "windows" "1060" "linux" "1080" "mac" "1080" } - "m_iClientHealth" // int + "m_iRespawnFrames" // float { - "type" "integer" + "type" "float" "windows" "1064" "linux" "1084" "mac" "1084" } - "m_iClientHideHUD" // int + "m_iClientHealth" // int { "type" "integer" @@ -345,7 +336,7 @@ "mac" "1088" } - "m_iClientFOV" // int + "m_iClientHideHUD" // int { "type" "integer" @@ -354,7 +345,7 @@ "mac" "1092" } - "m_nCustomSprayFrames" // int + "m_iClientFOV" // int { "type" "integer" @@ -363,35 +354,35 @@ "mac" "1096" } - "m_flNextDecalTime" // float + "m_nCustomSprayFrames" // int { - "type" "float" + "type" "integer" "windows" "1080" "linux" "1100" "mac" "1100" } - "m_rgpPlayerItems" // CBasePlayerItem*[6] + "m_flNextDecalTime" // float { - "type" "classptr" - "size" "6" + "type" "float" "windows" "1084" "linux" "1104" "mac" "1104" } - "m_pActiveItem" // CBasePlayerItem* + "m_rgpPlayerItems" // CBasePlayerItem*[6] { "type" "classptr" + "size" "6" - "windows" "1108" - "linux" "1128" - "mac" "1128" + "windows" "1088" + "linux" "1108" + "mac" "1108" } - "m_pClientActiveItem" // CBasePlayerItem* + "m_pActiveItem" // CBasePlayerItem* { "type" "classptr" @@ -400,7 +391,7 @@ "mac" "1132" } - "m_pLastItem" // CBasePlayerItem* + "m_pClientActiveItem" // CBasePlayerItem* { "type" "classptr" @@ -409,24 +400,33 @@ "mac" "1136" } - "m_rgAmmo" // int[32] + "m_pLastItem" // CBasePlayerItem* { - "type" "integer" - "size" "32" + "type" "classptr" "windows" "1120" "linux" "1140" "mac" "1140" } + "m_rgAmmo" // int[32] + { + "type" "integer" + "size" "32" + + "windows" "1124" + "linux" "1144" + "mac" "1144" + } + "m_rgAmmoLast" // int[32] { "type" "integer" "size" "32" - "windows" "1248" - "linux" "1268" - "mac" "1268" + "windows" "1252" + "linux" "1272" + "mac" "1272" } "m_rgItems" // int[5] @@ -434,9 +434,9 @@ "type" "integer" "size" "5" - "windows" "1376" - "linux" "1396" - "mac" "1396" + "windows" "1380" + "linux" "1400" + "mac" "1400" } "m_szTeamName" // char[16] @@ -444,30 +444,21 @@ "type" "string" "size" "16" - "windows" "1396" - "linux" "1416" - "mac" "1416" + "windows" "1400" + "linux" "1420" + "mac" "1420" } "m_irdytospawn" // int { "type" "integer" - "windows" "1412" - "linux" "1432" - "mac" "1432" - } - - "m_imissedwave" // int - { - "type" "integer" - "windows" "1416" "linux" "1436" "mac" "1436" } - "m_ilastteam" // int + "m_imissedwave" // int { "type" "integer" @@ -476,7 +467,7 @@ "mac" "1440" } - "m_ijustjoined" // int + "m_ilastteam" // int { "type" "integer" @@ -485,7 +476,7 @@ "mac" "1444" } - "m_chatMsg" // int + "m_ijustjoined" // int { "type" "integer" @@ -494,7 +485,7 @@ "mac" "1448" } - "m_deathMsg" // int + "m_chatMsg" // int { "type" "integer" @@ -503,7 +494,7 @@ "mac" "1452" } - "m_handSignal" // int + "m_deathMsg" // int { "type" "integer" @@ -512,16 +503,16 @@ "mac" "1456" } - "m_nextRunThink" // float + "m_handSignal" // int { - "type" "float" + "type" "integer" "windows" "1440" "linux" "1460" "mac" "1460" } - "m_flIdleTimer" // float + "m_nextRunThink" // float { "type" "float" @@ -530,7 +521,7 @@ "mac" "1464" } - "m_inextprone" // float + "m_flIdleTimer" // float { "type" "float" @@ -539,16 +530,16 @@ "mac" "1468" } - "m_voteid" // int + "m_inextprone" // float { - "type" "integer" + "type" "float" "windows" "1452" "linux" "1472" "mac" "1472" } - "m_iFOV" // int + "m_voteid" // int { "type" "integer" @@ -557,61 +548,61 @@ "mac" "1476" } - "m_fGunDropTime" // float + "m_iFOV" // int { - "type" "float" + "type" "integer" "windows" "1460" "linux" "1480" "mac" "1480" } - "m_iNextClass" // int + "m_fGunDropTime" // float { - "type" "integer" + "type" "float" "windows" "1464" "linux" "1484" "mac" "1484" } - "m_bIsRandomClass" // bool + "m_iNextClass" // int { - "type" "boolean" + "type" "integer" "windows" "1468" "linux" "1488" "mac" "1488" } - "m_hObserverTarget" // EHANDLE + "m_bIsRandomClass" // bool { - "type" "ehandle" + "type" "boolean" "windows" "1472" "linux" "1492" "mac" "1492" } - "m_flNextObserverInput" // float + "m_hObserverTarget" // EHANDLE { - "type" "float" + "type" "ehandle" - "windows" "1480" - "linux" "1500" - "mac" "1500" + "windows" "1476" + "linux" "1496" + "mac" "1496" } - "m_iObserverWeapon" // int + "m_flNextObserverInput" // float { - "type" "integer" + "type" "float" "windows" "1484" "linux" "1504" "mac" "1504" } - "m_iObserverLastMode" // int + "m_iObserverWeapon" // int { "type" "integer" @@ -620,7 +611,7 @@ "mac" "1508" } - "m_bIsObserver" // int + "m_iObserverLastMode" // int { "type" "integer" @@ -629,7 +620,7 @@ "mac" "1512" } - "HasObject" // BOOL + "m_bIsObserver" // int { "type" "integer" @@ -638,43 +629,43 @@ "mac" "1516" } - "m_pObject" // CObject* + "HasObject" // BOOL { - "type" "classptr" + "type" "integer" "windows" "1500" "linux" "1520" "mac" "1520" } - "m_sPlayerModel" // char* + "m_pObject" // CObject* { - "type" "stringptr" + "type" "classptr" "windows" "1504" "linux" "1524" "mac" "1524" } - "m_fNextStamina" // float + "m_sPlayerModel" // char* { - "type" "float" + "type" "stringptr" "windows" "1508" "linux" "1528" "mac" "1528" } - "m_nMGAmmoCount" // int + "m_fNextStamina" // float { - "type" "integer" + "type" "float" "windows" "1512" "linux" "1532" "mac" "1532" } - "m_nGenericAmmoCount" // int + "m_nMGAmmoCount" // int { "type" "integer" @@ -683,7 +674,7 @@ "mac" "1536" } - "m_iClassSpeed" // int + "m_nGenericAmmoCount" // int { "type" "integer" @@ -692,34 +683,34 @@ "mac" "1540" } - "m_fSpeedFactor" // float + "m_iClassSpeed" // int { - "type" "float" + "type" "integer" "windows" "1524" "linux" "1544" "mac" "1544" } - "m_bSlowedByHit" // bool + "m_fSpeedFactor" // float { - "type" "boolean" + "type" "float" "windows" "1528" "linux" "1548" "mac" "1548" } - "m_flUnslowTime" // float + "m_bSlowedByHit" // bool { - "type" "float" + "type" "boolean" "windows" "1532" "linux" "1552" "mac" "1552" } - "m_flNextVoice" // float + "m_flUnslowTime" // float { "type" "float" @@ -728,7 +719,7 @@ "mac" "1556" } - "m_flNextHand" // float + "m_flNextVoice" // float { "type" "float" @@ -737,35 +728,35 @@ "mac" "1560" } - "lastMenuSelected" // int + "m_flNextHand" // float { - "type" "integer" + "type" "float" "windows" "1544" "linux" "1564" "mac" "1564" } - "m_izSBarState" // int[4] + "lastMenuSelected" // int { "type" "integer" - "size" "4" "windows" "1548" "linux" "1568" "mac" "1568" } - "m_flNextSBarUpdateTime" // float + "m_izSBarState" // int[4] { - "type" "float" + "type" "integer" + "size" "4" - "windows" "1564" - "linux" "1584" - "mac" "1584" + "windows" "1552" + "linux" "1572" + "mac" "1572" } - "m_flStatusBarDisappearDelay" // float + "m_flNextSBarUpdateTime" // float { "type" "float" @@ -774,54 +765,54 @@ "mac" "1588" } - "m_SbarString0" // char[128] + "m_flStatusBarDisappearDelay" // float { - "type" "string" - "size" "128" + "type" "float" "windows" "1572" "linux" "1592" "mac" "1592" } + "m_SbarString0" // char[128] + { + "type" "string" + "size" "128" + + "windows" "1576" + "linux" "1596" + "mac" "1596" + } + "m_SbarString1" // char[128] { "type" "string" "size" "128" - "windows" "1700" - "linux" "1720" - "mac" "1720" + "windows" "1704" + "linux" "1724" + "mac" "1724" } "m_hLastIDTarget" // EHANDLE { "type" "ehandle" - "windows" "1828" - "linux" "1848" - "mac" "1848" + "windows" "1832" + "linux" "1852" + "mac" "1852" } "m_flLastTalkTime" // float { "type" "float" - "windows" "1836" - "linux" "1856" - "mac" "1856" - } - - "i_cutScenes" // int - { - "type" "integer" - "windows" "1840" "linux" "1860" "mac" "1860" } - "i_seenAllieSpawnScene" // int + "i_cutScenes" // int { "type" "integer" @@ -830,7 +821,7 @@ "mac" "1864" } - "i_seenAxisSpawnScene" // int + "i_seenAllieSpawnScene" // int { "type" "integer" @@ -839,7 +830,7 @@ "mac" "1868" } - "i_seenAllieWinScene" // int + "i_seenAxisSpawnScene" // int { "type" "integer" @@ -848,7 +839,7 @@ "mac" "1872" } - "i_seenAxisWinScene" // int + "i_seenAllieWinScene" // int { "type" "integer" @@ -857,7 +848,7 @@ "mac" "1876" } - "i_seenAllieLooseScene" // int + "i_seenAxisWinScene" // int { "type" "integer" @@ -866,7 +857,7 @@ "mac" "1880" } - "i_seenAxisLooseScene" // int + "i_seenAllieLooseScene" // int { "type" "integer" @@ -875,7 +866,7 @@ "mac" "1884" } - "i_seenAllieDrawScene" // int + "i_seenAxisLooseScene" // int { "type" "integer" @@ -884,7 +875,7 @@ "mac" "1888" } - "i_seenAxisDrawScene" // int + "i_seenAllieDrawScene" // int { "type" "integer" @@ -893,25 +884,25 @@ "mac" "1892" } - "m_signals" // class CUnifiedSignals + "i_seenAxisDrawScene" // int { - "type" "class" + "type" "integer" "windows" "1876" "linux" "1896" "mac" "1896" } - "m_iCapAreaIndex" // int + "m_signals" // class CUnifiedSignals { - "type" "integer" + "type" "class" - "windows" "1884" - "linux" "1904" - "mac" "1904" + "windows" "1880" + "linux" "1900" + "mac" "1900" } - "m_iCapAreaIconIndex" // int + "m_iCapAreaIndex" // int { "type" "integer" @@ -920,7 +911,7 @@ "mac" "1908" } - "m_iObjectAreaIndex" // int + "m_iCapAreaIconIndex" // int { "type" "integer" @@ -929,25 +920,25 @@ "mac" "1912" } - "m_fHandleSignalsTime" // float + "m_iObjectAreaIndex" // int { - "type" "float" + "type" "integer" "windows" "1896" "linux" "1916" "mac" "1916" } - "m_iObjScore" // int + "m_fHandleSignalsTime" // float { - "type" "integer" + "type" "float" "windows" "1900" "linux" "1920" "mac" "1920" } - "m_iDeaths" // int + "m_iObjScore" // int { "type" "integer" @@ -956,7 +947,7 @@ "mac" "1924" } - "m_iNumTKs" // int + "m_iDeaths" // int { "type" "integer" @@ -965,7 +956,7 @@ "mac" "1928" } - "m_bBazookaDeployed" // BOOL + "m_iNumTKs" // int { "type" "integer" @@ -974,7 +965,7 @@ "mac" "1932" } - "m_iMinimap" // int + "m_bBazookaDeployed" // BOOL { "type" "integer" @@ -983,40 +974,49 @@ "mac" "1936" } - "m_bShowHints" // bool + "m_iMinimap" // int { - "type" "boolean" + "type" "integer" "windows" "1920" "linux" "1940" "mac" "1940" } + "m_bShowHints" // bool + { + "type" "boolean" + + "windows" "1924" + "linux" "1944" + "mac" "1944" + } + "m_bAutoReload" // bool { "type" "boolean" - "windows" "1921" - "linux" "1941" - "mac" "1941" + "windows" "1925" + "linux" "1945" + "mac" "1945" } "m_hintMessageQueue" // class CHintMessageQueue { "type" "class" - "windows" "1924" - "linux" "1944" - "mac" "1944" + "windows" "1928" + "linux" "1948" + "mac" "1948" } "m_flDisplayHistory" // long int { "type" "integer" - "windows" "1972" - "linux" "1992" - "mac" "1992" + "windows" "1976" + "linux" "1996" + "mac" "1996" } "m_szAnimExtention" // char[32] @@ -1024,9 +1024,9 @@ "type" "string" "size" "32" - "windows" "1976" - "linux" "1996" - "mac" "1996" + "windows" "1980" + "linux" "2000" + "mac" "2000" } "m_szAnimReloadExt" // char[32] @@ -1034,30 +1034,21 @@ "type" "string" "size" "32" - "windows" "2008" - "linux" "2028" - "mac" "2028" + "windows" "2012" + "linux" "2032" + "mac" "2032" } "m_iGaitsequence" // int { "type" "integer" - "windows" "2040" - "linux" "2060" - "mac" "2060" - } - - "m_flGaitframe" // float - { - "type" "float" - "windows" "2044" "linux" "2064" "mac" "2064" } - "m_flGaityaw" // float + "m_flGaitframe" // float { "type" "float" @@ -1066,25 +1057,25 @@ "mac" "2068" } - "m_prevgaitorigin" // Vector + "m_flGaityaw" // float { - "type" "vector" + "type" "float" "windows" "2052" "linux" "2072" "mac" "2072" } - "m_flPitch" // float + "m_prevgaitorigin" // Vector { - "type" "float" + "type" "vector" - "windows" "2064" - "linux" "2084" - "mac" "2084" + "windows" "2056" + "linux" "2076" + "mac" "2076" } - "m_flYaw" // float + "m_flPitch" // float { "type" "float" @@ -1093,7 +1084,7 @@ "mac" "2088" } - "m_flGaitMovement" // float + "m_flYaw" // float { "type" "float" @@ -1102,7 +1093,7 @@ "mac" "2092" } - "m_flYawModifier" // float + "m_flGaitMovement" // float { "type" "float" @@ -1111,16 +1102,16 @@ "mac" "2096" } - "m_iCurrentAnimationState" // int + "m_flYawModifier" // float { - "type" "integer" + "type" "float" "windows" "2080" "linux" "2100" "mac" "2100" } - "m_iCurrentAnimationSequence" // int + "m_iCurrentAnimationState" // int { "type" "integer" @@ -1129,7 +1120,7 @@ "mac" "2104" } - "m_pszSavedWeaponModel" // int + "m_iCurrentAnimationSequence" // int { "type" "integer" @@ -1138,7 +1129,7 @@ "mac" "2108" } - "m_ianimupdate" // int + "m_pszSavedWeaponModel" // int { "type" "integer" @@ -1147,25 +1138,25 @@ "mac" "2112" } - "m_flNextMapMarkerTime" // float + "m_ianimupdate" // int { - "type" "float" + "type" "integer" "windows" "2096" "linux" "2116" "mac" "2116" } - "m_iMapMarker" // int + "m_flNextMapMarkerTime" // float { - "type" "integer" + "type" "float" "windows" "2100" "linux" "2120" "mac" "2120" } - "m_iWeapons2" // int + "m_iMapMarker" // int { "type" "integer" @@ -1173,6 +1164,15 @@ "linux" "2124" "mac" "2124" } + + "m_iWeapons2" // int + { + "type" "integer" + + "windows" "2108" + "linux" "2128" + "mac" "2128" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cbaseturret.txt b/gamedata/common.games/entities.games/dod/offsets-cbaseturret.txt index 6e38c9729f..373149e581 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cbaseturret.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cbaseturret.txt @@ -23,39 +23,30 @@ { "type" "float" - "windows" "916" - "linux" "936" - "mac" "936" - } - - "m_iSpin" // int - { - "type" "integer" - "windows" "920" "linux" "940" "mac" "940" } - "m_pEyeGlow" // CSprite* + "m_iSpin" // int { - "type" "classptr" + "type" "integer" "windows" "924" "linux" "944" "mac" "944" } - "m_eyeBrightness" // int + "m_pEyeGlow" // CSprite* { - "type" "integer" + "type" "classptr" "windows" "928" "linux" "948" "mac" "948" } - "m_iDeployHeight" // int + "m_eyeBrightness" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "952" } - "m_iRetractHeight" // int + "m_iDeployHeight" // int { "type" "integer" @@ -73,7 +64,7 @@ "mac" "956" } - "m_iMinPitch" // int + "m_iRetractHeight" // int { "type" "integer" @@ -82,7 +73,7 @@ "mac" "960" } - "m_iBaseTurnRate" // int + "m_iMinPitch" // int { "type" "integer" @@ -91,25 +82,25 @@ "mac" "964" } - "m_fTurnRate" // float + "m_iBaseTurnRate" // int { - "type" "float" + "type" "integer" "windows" "948" "linux" "968" "mac" "968" } - "m_iOrientation" // int + "m_fTurnRate" // float { - "type" "integer" + "type" "float" "windows" "952" "linux" "972" "mac" "972" } - "m_iOn" // int + "m_iOrientation" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "976" } - "m_fBeserk" // int + "m_iOn" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "980" } - "m_iAutoStart" // int + "m_fBeserk" // int { "type" "integer" @@ -136,25 +127,25 @@ "mac" "984" } - "m_vecLastSight" // Vector + "m_iAutoStart" // int { - "type" "vector" + "type" "integer" "windows" "968" "linux" "988" "mac" "988" } - "m_flLastSight" // float + "m_vecLastSight" // Vector { - "type" "float" + "type" "vector" - "windows" "980" - "linux" "1000" - "mac" "1000" + "windows" "972" + "linux" "992" + "mac" "992" } - "m_flMaxWait" // float + "m_flLastSight" // float { "type" "float" @@ -163,58 +154,67 @@ "mac" "1004" } - "m_iSearchSpeed" // int + "m_flMaxWait" // float { - "type" "integer" + "type" "float" "windows" "988" "linux" "1008" "mac" "1008" } - "m_flStartYaw" // float + "m_iSearchSpeed" // int { - "type" "float" + "type" "integer" "windows" "992" "linux" "1012" "mac" "1012" } - "m_vecCurAngles" // Vector + "m_flStartYaw" // float { - "type" "vector" + "type" "float" "windows" "996" "linux" "1016" "mac" "1016" } + "m_vecCurAngles" // Vector + { + "type" "vector" + + "windows" "1000" + "linux" "1020" + "mac" "1020" + } + "m_vecGoalAngles" // Vector { "type" "vector" - "windows" "1008" - "linux" "1028" - "mac" "1028" + "windows" "1012" + "linux" "1032" + "mac" "1032" } "m_flPingTime" // float { "type" "float" - "windows" "1020" - "linux" "1040" - "mac" "1040" + "windows" "1024" + "linux" "1044" + "mac" "1044" } "m_flSpinUpTime" // float { "type" "float" - "windows" "1024" - "linux" "1044" - "mac" "1044" + "windows" "1028" + "linux" "1048" + "mac" "1048" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-ccinemonster.txt b/gamedata/common.games/entities.games/dod/offsets-ccinemonster.txt index 10be5d2088..b32f379a72 100644 --- a/gamedata/common.games/entities.games/dod/offsets-ccinemonster.txt +++ b/gamedata/common.games/entities.games/dod/offsets-ccinemonster.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" - } - - "m_iszIdle" // int - { - "type" "integer" - "windows" "920" "linux" "940" "mac" "940" } - "m_iszPlay" // int + "m_iszIdle" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "944" } - "m_iszEntity" // int + "m_iszPlay" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "948" } - "m_iszAttack" // int + "m_iszEntity" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "952" } - "m_iszFireOnBegin" // int + "m_iszAttack" // int { "type" "integer" @@ -73,7 +64,7 @@ "mac" "956" } - "m_fMoveTo" // int + "m_iszFireOnBegin" // int { "type" "integer" @@ -82,7 +73,7 @@ "mac" "960" } - "m_fTurnType" // int + "m_fMoveTo" // int { "type" "integer" @@ -91,7 +82,7 @@ "mac" "964" } - "m_fAction" // int + "m_fTurnType" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "968" } - "m_iFinishSchedule" // int + "m_fAction" // int { "type" "integer" @@ -109,52 +100,52 @@ "mac" "972" } - "m_flRadius" // float + "m_iFinishSchedule" // int { - "type" "float" + "type" "integer" "windows" "956" "linux" "976" "mac" "976" } - "m_iDelay" // int + "m_flRadius" // float { - "type" "integer" + "type" "float" "windows" "960" "linux" "980" "mac" "980" } - "m_startTime" // float + "m_iDelay" // int { - "type" "float" + "type" "integer" "windows" "964" "linux" "984" "mac" "984" } - "m_saved_m_hTargetEnt" // EHANDLE + "m_startTime" // float { - "type" "ehandle" + "type" "float" "windows" "968" "linux" "988" "mac" "988" } - "m_saved_m_pGoalEnt" // int + "m_saved_m_hTargetEnt" // EHANDLE { - "type" "integer" + "type" "ehandle" - "windows" "976" - "linux" "996" - "mac" "996" + "windows" "972" + "linux" "992" + "mac" "992" } - "m_saved_movetype" // int + "m_saved_m_pGoalEnt" // int { "type" "integer" @@ -163,7 +154,7 @@ "mac" "1000" } - "m_saved_solid" // int + "m_saved_movetype" // int { "type" "integer" @@ -172,7 +163,7 @@ "mac" "1004" } - "m_saved_effects" // int + "m_saved_solid" // int { "type" "integer" @@ -181,7 +172,7 @@ "mac" "1008" } - "m_interruptable" // BOOL + "m_saved_effects" // int { "type" "integer" @@ -189,6 +180,15 @@ "linux" "1012" "mac" "1012" } + + "m_interruptable" // BOOL + { + "type" "integer" + + "windows" "996" + "linux" "1016" + "mac" "1016" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-ccontroller.txt b/gamedata/common.games/entities.games/dod/offsets-ccontroller.txt index 74683ebf8c..554c03f552 100644 --- a/gamedata/common.games/entities.games/dod/offsets-ccontroller.txt +++ b/gamedata/common.games/entities.games/dod/offsets-ccontroller.txt @@ -23,27 +23,27 @@ { "type" "float" - "windows" "972" - "linux" "992" - "mac" "992" + "windows" "976" + "linux" "996" + "mac" "996" } "m_flShootTime" // float { "type" "float" - "windows" "976" - "linux" "996" - "mac" "996" + "windows" "980" + "linux" "1000" + "mac" "1000" } "m_flShootEnd" // float { "type" "float" - "windows" "980" - "linux" "1000" - "mac" "1000" + "windows" "984" + "linux" "1004" + "mac" "1004" } "m_pBall" // CSprite*[2] @@ -51,9 +51,9 @@ "type" "classptr" "size" "2" - "windows" "984" - "linux" "1004" - "mac" "1004" + "windows" "988" + "linux" "1008" + "mac" "1008" } "m_iBall" // int[2] @@ -61,9 +61,9 @@ "type" "integer" "size" "2" - "windows" "992" - "linux" "1012" - "mac" "1012" + "windows" "996" + "linux" "1016" + "mac" "1016" } "m_iBallTime" // float[2] @@ -71,9 +71,9 @@ "type" "float" "size" "2" - "windows" "1000" - "linux" "1020" - "mac" "1020" + "windows" "1004" + "linux" "1024" + "mac" "1024" } "m_iBallCurrent" // int[2] @@ -81,36 +81,36 @@ "type" "integer" "size" "2" - "windows" "1008" - "linux" "1028" - "mac" "1028" + "windows" "1012" + "linux" "1032" + "mac" "1032" } "m_vecEstVelocity" // Vector { "type" "vector" - "windows" "1016" - "linux" "1036" - "mac" "1036" + "windows" "1020" + "linux" "1040" + "mac" "1040" } "m_velocity" // Vector { "type" "vector" - "windows" "1028" - "linux" "1048" - "mac" "1048" + "windows" "1032" + "linux" "1052" + "mac" "1052" } "m_fInCombat" // int { "type" "integer" - "windows" "1040" - "linux" "1060" - "mac" "1060" + "windows" "1044" + "linux" "1064" + "mac" "1064" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-ccontrollerheadball.txt b/gamedata/common.games/entities.games/dod/offsets-ccontrollerheadball.txt index cef6993d83..9fa05bb912 100644 --- a/gamedata/common.games/entities.games/dod/offsets-ccontrollerheadball.txt +++ b/gamedata/common.games/entities.games/dod/offsets-ccontrollerheadball.txt @@ -23,36 +23,36 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } "m_flNextAttack" // int { "type" "integer" - "windows" "920" - "linux" "940" - "mac" "940" + "windows" "924" + "linux" "944" + "mac" "944" } "m_vecIdeal" // Vector { "type" "vector" - "windows" "924" - "linux" "944" - "mac" "944" + "windows" "928" + "linux" "948" + "mac" "948" } "m_hOwner" // EHANDLE { "type" "ehandle" - "windows" "936" - "linux" "956" - "mac" "956" + "windows" "940" + "linux" "960" + "mac" "960" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-ccontrollerzapball.txt b/gamedata/common.games/entities.games/dod/offsets-ccontrollerzapball.txt index e185612ced..52e9a19f9f 100644 --- a/gamedata/common.games/entities.games/dod/offsets-ccontrollerzapball.txt +++ b/gamedata/common.games/entities.games/dod/offsets-ccontrollerzapball.txt @@ -23,9 +23,9 @@ { "type" "ehandle" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-ccycler.txt b/gamedata/common.games/entities.games/dod/offsets-ccycler.txt index 7f67c3748f..7cd353a9f8 100644 --- a/gamedata/common.games/entities.games/dod/offsets-ccycler.txt +++ b/gamedata/common.games/entities.games/dod/offsets-ccycler.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cdeadalliedgrunt.txt b/gamedata/common.games/entities.games/dod/offsets-cdeadalliedgrunt.txt index a7401ef5d1..587169373b 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cdeadalliedgrunt.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cdeadalliedgrunt.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cdeadaxisgrunt.txt b/gamedata/common.games/entities.games/dod/offsets-cdeadaxisgrunt.txt index 79a460c171..8c632b5caa 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cdeadaxisgrunt.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cdeadaxisgrunt.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cdeadhev.txt b/gamedata/common.games/entities.games/dod/offsets-cdeadhev.txt index 811a8ff2b3..251b5c3724 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cdeadhev.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cdeadhev.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cenvexplosion.txt b/gamedata/common.games/entities.games/dod/offsets-cenvexplosion.txt index 231e9d34e5..cc593a4e7d 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cenvexplosion.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cenvexplosion.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } "m_spriteScale" // int { "type" "integer" - "windows" "920" - "linux" "940" - "mac" "940" + "windows" "924" + "linux" "944" + "mac" "944" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cgrenade.txt b/gamedata/common.games/entities.games/dod/offsets-cgrenade.txt index d524598397..5a4b58c951 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cgrenade.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cgrenade.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" - } - - "m_flClipTime" // int - { - "type" "integer" - "windows" "920" "linux" "940" "mac" "940" } - "m_iOldMoveType" // int + "m_flClipTime" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "944" } - "m_iBodyGibs" // int + "m_iOldMoveType" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "948" } - "m_fRegisteredSound" // BOOL + "m_iBodyGibs" // int { "type" "integer" @@ -63,6 +54,15 @@ "linux" "952" "mac" "952" } + + "m_fRegisteredSound" // BOOL + { + "type" "integer" + + "windows" "936" + "linux" "956" + "mac" "956" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cguntarget.txt b/gamedata/common.games/entities.games/dod/offsets-cguntarget.txt index 2cd7d5e963..0921784962 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cguntarget.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cguntarget.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cmortar.txt b/gamedata/common.games/entities.games/dod/offsets-cmortar.txt index 8144fabde7..af407f5785 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cmortar.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cmortar.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "936" - "linux" "956" - "mac" "956" + "windows" "940" + "linux" "960" + "mac" "960" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-crat.txt b/gamedata/common.games/entities.games/dod/offsets-crat.txt index cffb933887..1eae4ec052 100644 --- a/gamedata/common.games/entities.games/dod/offsets-crat.txt +++ b/gamedata/common.games/entities.games/dod/offsets-crat.txt @@ -23,30 +23,21 @@ { "type" "float" - "windows" "916" - "linux" "936" - "mac" "936" - } - - "m_flNextSmellTime" // float - { - "type" "float" - "windows" "920" "linux" "940" "mac" "940" } - "m_fLightHacked" // BOOL + "m_flNextSmellTime" // float { - "type" "integer" + "type" "float" "windows" "924" "linux" "944" "mac" "944" } - "m_iMode" // int + "m_fLightHacked" // BOOL { "type" "integer" @@ -54,6 +45,15 @@ "linux" "948" "mac" "948" } + + "m_iMode" // int + { + "type" "integer" + + "windows" "932" + "linux" "952" + "mac" "952" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-croach.txt b/gamedata/common.games/entities.games/dod/offsets-croach.txt index 3d2ad25758..72573fcd4d 100644 --- a/gamedata/common.games/entities.games/dod/offsets-croach.txt +++ b/gamedata/common.games/entities.games/dod/offsets-croach.txt @@ -23,30 +23,21 @@ { "type" "float" - "windows" "916" - "linux" "936" - "mac" "936" - } - - "m_flNextSmellTime" // float - { - "type" "float" - "windows" "920" "linux" "940" "mac" "940" } - "m_fLightHacked" // BOOL + "m_flNextSmellTime" // float { - "type" "integer" + "type" "float" "windows" "924" "linux" "944" "mac" "944" } - "m_iMode" // int + "m_fLightHacked" // BOOL { "type" "integer" @@ -54,6 +45,15 @@ "linux" "948" "mac" "948" } + + "m_iMode" // int + { + "type" "integer" + + "windows" "932" + "linux" "952" + "mac" "952" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-csarge.txt b/gamedata/common.games/entities.games/dod/offsets-csarge.txt index a4ee0af39f..9079476914 100644 --- a/gamedata/common.games/entities.games/dod/offsets-csarge.txt +++ b/gamedata/common.games/entities.games/dod/offsets-csarge.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "1040" - "linux" "1060" - "mac" "1060" - } - - "m_painTime" // float - { - "type" "float" - "windows" "1044" "linux" "1064" "mac" "1064" } - "m_checkAttackTime" // float + "m_painTime" // float { "type" "float" @@ -46,14 +37,23 @@ "mac" "1068" } - "m_lastAttackCheck" // BOOL + "m_checkAttackTime" // float { - "type" "integer" + "type" "float" "windows" "1052" "linux" "1072" "mac" "1072" } + + "m_lastAttackCheck" // BOOL + { + "type" "integer" + + "windows" "1056" + "linux" "1076" + "mac" "1076" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-csquadmonster.txt b/gamedata/common.games/entities.games/dod/offsets-csquadmonster.txt index 3e4bf8fa11..e06de5f2f9 100644 --- a/gamedata/common.games/entities.games/dod/offsets-csquadmonster.txt +++ b/gamedata/common.games/entities.games/dod/offsets-csquadmonster.txt @@ -23,9 +23,9 @@ { "type" "ehandle" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } "m_hSquadMember" // EHANDLE[4] @@ -33,39 +33,30 @@ "type" "ehandle" "size" "4" - "windows" "924" - "linux" "944" - "mac" "944" + "windows" "928" + "linux" "948" + "mac" "948" } "m_afSquadSlots" // int { "type" "integer" - "windows" "956" - "linux" "976" - "mac" "976" - } - - "m_flLastEnemySightTime" // float - { - "type" "float" - "windows" "960" "linux" "980" "mac" "980" } - "m_fEnemyEluded" // BOOL + "m_flLastEnemySightTime" // float { - "type" "integer" + "type" "float" "windows" "964" "linux" "984" "mac" "984" } - "m_iMySlot" // int + "m_fEnemyEluded" // BOOL { "type" "integer" @@ -73,6 +64,15 @@ "linux" "988" "mac" "988" } + + "m_iMySlot" // int + { + "type" "integer" + + "windows" "972" + "linux" "992" + "mac" "992" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-ctalkmonster.txt b/gamedata/common.games/entities.games/dod/offsets-ctalkmonster.txt index 3a4872ce1d..2849be65cc 100644 --- a/gamedata/common.games/entities.games/dod/offsets-ctalkmonster.txt +++ b/gamedata/common.games/entities.games/dod/offsets-ctalkmonster.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" - } - - "m_nSpeak" // int - { - "type" "integer" - "windows" "920" "linux" "940" "mac" "940" } - "m_voicePitch" // int + "m_nSpeak" // int { "type" "integer" @@ -46,35 +37,35 @@ "mac" "944" } - "m_szGrp" // const char*[19] + "m_voicePitch" // int { - "type" "stringptr" - "size" "19" + "type" "integer" "windows" "928" "linux" "948" "mac" "948" } - "m_useTime" // float + "m_szGrp" // const char*[19] { - "type" "float" + "type" "stringptr" + "size" "19" - "windows" "1004" - "linux" "1024" - "mac" "1024" + "windows" "932" + "linux" "952" + "mac" "952" } - "m_iszUse" // int + "m_useTime" // float { - "type" "integer" + "type" "float" "windows" "1008" "linux" "1028" "mac" "1028" } - "m_iszUnUse" // int + "m_iszUse" // int { "type" "integer" @@ -83,7 +74,7 @@ "mac" "1032" } - "m_iszDecline" // int + "m_iszUnUse" // int { "type" "integer" @@ -92,7 +83,7 @@ "mac" "1036" } - "m_iszSpeakAs" // int + "m_iszDecline" // int { "type" "integer" @@ -101,16 +92,16 @@ "mac" "1040" } - "m_flLastSaidSmelled" // float + "m_iszSpeakAs" // int { - "type" "float" + "type" "integer" "windows" "1024" "linux" "1044" "mac" "1044" } - "m_flStopTalkTime" // float + "m_flLastSaidSmelled" // float { "type" "float" @@ -119,14 +110,23 @@ "mac" "1048" } - "m_hTalkTarget" // EHANDLE + "m_flStopTalkTime" // float { - "type" "ehandle" + "type" "float" "windows" "1032" "linux" "1052" "mac" "1052" } + + "m_hTalkTarget" // EHANDLE + { + "type" "ehandle" + + "windows" "1036" + "linux" "1056" + "mac" "1056" + } } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-ctesthull.txt b/gamedata/common.games/entities.games/dod/offsets-ctesthull.txt index 8617207612..b410e1bcfe 100644 --- a/gamedata/common.games/entities.games/dod/offsets-ctesthull.txt +++ b/gamedata/common.games/entities.games/dod/offsets-ctesthull.txt @@ -23,9 +23,9 @@ { "type" "vector" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cturret.txt b/gamedata/common.games/entities.games/dod/offsets-cturret.txt index 473fd55149..44d19da033 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cturret.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cturret.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1028" - "linux" "1048" - "mac" "1048" + "windows" "1032" + "linux" "1052" + "mac" "1052" } } } diff --git a/gamedata/common.games/entities.games/dod/offsets-cwreckage.txt b/gamedata/common.games/entities.games/dod/offsets-cwreckage.txt index 354f8e2c49..5a81262b33 100644 --- a/gamedata/common.games/entities.games/dod/offsets-cwreckage.txt +++ b/gamedata/common.games/entities.games/dod/offsets-cwreckage.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "916" - "linux" "936" - "mac" "936" + "windows" "920" + "linux" "940" + "mac" "940" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cagrunt.txt b/gamedata/common.games/entities.games/gearbox/offsets-cagrunt.txt index 090fd09787..4598a38fc6 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cagrunt.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cagrunt.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "764" - "linux" "784" - "mac" "784" - } - - "m_flNextHornetAttackCheck" // float - { - "type" "float" - "windows" "768" "linux" "788" "mac" "788" } - "m_flNextPainTime" // float + "m_flNextHornetAttackCheck" // float { "type" "float" @@ -46,7 +37,7 @@ "mac" "792" } - "m_flNextSpeakTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -55,7 +46,7 @@ "mac" "796" } - "m_flNextWordTime" // float + "m_flNextSpeakTime" // float { "type" "float" @@ -64,14 +55,23 @@ "mac" "800" } - "m_iLastWord" // int + "m_flNextWordTime" // float { - "type" "integer" + "type" "float" "windows" "784" "linux" "804" "mac" "804" } + + "m_iLastWord" // int + { + "type" "integer" + + "windows" "788" + "linux" "808" + "mac" "808" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cairtank.txt b/gamedata/common.games/entities.games/gearbox/offsets-cairtank.txt index ebc842aa86..d502454704 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cairtank.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cairtank.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-capache.txt b/gamedata/common.games/entities.games/gearbox/offsets-capache.txt index e16ae82cf6..051579e9e6 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-capache.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-capache.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_flForce" // float - { - "type" "float" - "windows" "712" "linux" "732" "mac" "732" } - "m_flNextRocket" // float + "m_flForce" // float { "type" "float" @@ -46,88 +37,88 @@ "mac" "736" } - "m_vecTarget" // Vector + "m_flNextRocket" // float { - "type" "vector" + "type" "float" "windows" "720" "linux" "740" "mac" "740" } + "m_vecTarget" // Vector + { + "type" "vector" + + "windows" "724" + "linux" "744" + "mac" "744" + } + "m_posTarget" // Vector { "type" "vector" - "windows" "732" - "linux" "752" - "mac" "752" + "windows" "736" + "linux" "756" + "mac" "756" } "m_vecDesired" // Vector { "type" "vector" - "windows" "744" - "linux" "764" - "mac" "764" + "windows" "748" + "linux" "768" + "mac" "768" } "m_posDesired" // Vector { "type" "vector" - "windows" "756" - "linux" "776" - "mac" "776" + "windows" "760" + "linux" "780" + "mac" "780" } "m_vecGoal" // Vector { "type" "vector" - "windows" "768" - "linux" "788" - "mac" "788" + "windows" "772" + "linux" "792" + "mac" "792" } "m_angGun" // Vector { "type" "vector" - "windows" "780" - "linux" "800" - "mac" "800" + "windows" "784" + "linux" "804" + "mac" "804" } "m_flLastSeen" // float { "type" "float" - "windows" "792" - "linux" "812" - "mac" "812" - } - - "m_flPrevSeen" // float - { - "type" "float" - "windows" "796" "linux" "816" "mac" "816" } - "m_iSoundState" // int + "m_flPrevSeen" // float { - "type" "integer" + "type" "float" "windows" "800" "linux" "820" "mac" "820" } - "m_iSpriteTexture" // int + "m_iSoundState" // int { "type" "integer" @@ -136,7 +127,7 @@ "mac" "824" } - "m_iExplode" // int + "m_iSpriteTexture" // int { "type" "integer" @@ -145,7 +136,7 @@ "mac" "828" } - "m_iBodyGibs" // int + "m_iExplode" // int { "type" "integer" @@ -154,32 +145,41 @@ "mac" "832" } - "m_flGoalSpeed" // float + "m_iBodyGibs" // int { - "type" "float" + "type" "integer" "windows" "816" "linux" "836" "mac" "836" } - "m_iDoSmokePuff" // int + "m_flGoalSpeed" // float { - "type" "integer" + "type" "float" "windows" "820" "linux" "840" "mac" "840" } - "m_pBeam" // CBeam* + "m_iDoSmokePuff" // int { - "type" "classptr" + "type" "integer" "windows" "824" "linux" "844" "mac" "844" } + + "m_pBeam" // CBeam* + { + "type" "classptr" + + "windows" "828" + "linux" "848" + "mac" "848" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-capachehvr.txt b/gamedata/common.games/entities.games/gearbox/offsets-capachehvr.txt index f7c00d8151..787d75ad1e 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-capachehvr.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-capachehvr.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_vecForward" // Vector { "type" "vector" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cbarnacle.txt b/gamedata/common.games/entities.games/gearbox/offsets-cbarnacle.txt index fe826f4d3f..3306d63e68 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cbarnacle.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cbarnacle.txt @@ -23,30 +23,21 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_flKillVictimTime" // float - { - "type" "float" - "windows" "712" "linux" "732" "mac" "732" } - "m_cGibs" // int + "m_flKillVictimTime" // float { - "type" "integer" + "type" "float" "windows" "716" "linux" "736" "mac" "736" } - "m_fTongueExtended" // BOOL + "m_cGibs" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "740" } - "m_fLiftingPrey" // BOOL + "m_fTongueExtended" // BOOL { "type" "integer" @@ -64,14 +55,23 @@ "mac" "744" } - "m_flTongueAdj" // float + "m_fLiftingPrey" // BOOL { - "type" "float" + "type" "integer" "windows" "728" "linux" "748" "mac" "748" } + + "m_flTongueAdj" // float + { + "type" "float" + + "windows" "732" + "linux" "752" + "mac" "752" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cbarney.txt b/gamedata/common.games/entities.games/gearbox/offsets-cbarney.txt index 4246c1157a..1d4dbfbc8a 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cbarney.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cbarney.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "824" - "linux" "844" - "mac" "844" - } - - "m_painTime" // float - { - "type" "float" - "windows" "828" "linux" "848" "mac" "848" } - "m_checkAttackTime" // float + "m_painTime" // float { "type" "float" @@ -46,23 +37,32 @@ "mac" "852" } - "m_lastAttackCheck" // BOOL + "m_checkAttackTime" // float { - "type" "integer" + "type" "float" "windows" "836" "linux" "856" "mac" "856" } - "m_flPlayerDamage" // float + "m_lastAttackCheck" // BOOL { - "type" "float" + "type" "integer" "windows" "840" "linux" "860" "mac" "860" } + + "m_flPlayerDamage" // float + { + "type" "float" + + "windows" "844" + "linux" "864" + "mac" "864" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cbaseentity.txt b/gamedata/common.games/entities.games/gearbox/offsets-cbaseentity.txt index 48a2360027..441fcfe8c0 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cbaseentity.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cbaseentity.txt @@ -55,11 +55,47 @@ "mac" "16" } + "m_pfnThink" // (*__pfn)(CBaseEntity*) + { + "type" "function" + + "windows" "20" + "linux" "20" + "mac" "20" + } + + "m_pfnTouch" // (*__pfn)(CBaseEntity*, CBaseEntity*) + { + "type" "function" + + "windows" "24" + "linux" "28" + "mac" "28" + } + + "m_pfnUse" // (*__pfn)(CBaseEntity*, CBaseEntity*, CBaseEntity*, USE_TYPE, float) + { + "type" "function" + + "windows" "28" + "linux" "36" + "mac" "36" + } + + "m_pfnBlocked" // (*__pfn)(CBaseEntity*, CBaseEntity*) + { + "type" "function" + + "windows" "32" + "linux" "44" + "mac" "44" + } + "ammo_9mm" // int { "type" "integer" - "windows" "52" + "windows" "36" "linux" "52" "mac" "52" } @@ -68,7 +104,7 @@ { "type" "integer" - "windows" "56" + "windows" "40" "linux" "56" "mac" "56" } @@ -77,7 +113,7 @@ { "type" "integer" - "windows" "60" + "windows" "44" "linux" "60" "mac" "60" } @@ -86,7 +122,7 @@ { "type" "integer" - "windows" "64" + "windows" "48" "linux" "64" "mac" "64" } @@ -95,7 +131,7 @@ { "type" "integer" - "windows" "68" + "windows" "52" "linux" "68" "mac" "68" } @@ -104,7 +140,7 @@ { "type" "integer" - "windows" "72" + "windows" "56" "linux" "72" "mac" "72" } @@ -113,7 +149,7 @@ { "type" "integer" - "windows" "76" + "windows" "60" "linux" "76" "mac" "76" } @@ -122,7 +158,7 @@ { "type" "integer" - "windows" "80" + "windows" "64" "linux" "80" "mac" "80" } @@ -131,7 +167,7 @@ { "type" "integer" - "windows" "84" + "windows" "68" "linux" "84" "mac" "84" } @@ -140,7 +176,7 @@ { "type" "integer" - "windows" "88" + "windows" "72" "linux" "88" "mac" "88" } @@ -149,7 +185,7 @@ { "type" "float" - "windows" "92" + "windows" "76" "linux" "92" "mac" "92" } @@ -158,7 +194,7 @@ { "type" "float" - "windows" "96" + "windows" "80" "linux" "96" "mac" "96" } @@ -167,7 +203,7 @@ { "type" "integer" - "windows" "100" + "windows" "84" "linux" "100" "mac" "100" } @@ -176,7 +212,7 @@ { "type" "integer" - "windows" "104" + "windows" "88" "linux" "104" "mac" "104" } @@ -185,7 +221,7 @@ { "type" "integer" - "windows" "108" + "windows" "92" "linux" "108" "mac" "108" } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cbasemonster.txt b/gamedata/common.games/entities.games/gearbox/offsets-cbasemonster.txt index 083eeba7b8..634cb19849 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cbasemonster.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cbasemonster.txt @@ -491,6 +491,15 @@ "linux" "724" "mac" "724" } + + "m_flLastYawTime" // float + { + "type" "float" + + "windows" "708" + "linux" "728" + "mac" "728" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cbaseplayer.txt b/gamedata/common.games/entities.games/gearbox/offsets-cbaseplayer.txt index 04ca983efc..1bba0ba3d8 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cbaseplayer.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cbaseplayer.txt @@ -23,39 +23,30 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_DisplacerReturn" // Vector { "type" "vector" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_flDisplacerSndRoomtype" // float { "type" "float" - "windows" "724" - "linux" "744" - "mac" "744" - } - - "m_iPlayerSound" // int - { - "type" "integer" - "windows" "728" "linux" "748" "mac" "748" } - "m_iTargetVolume" // int + "m_iPlayerSound" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "752" } - "m_iWeaponVolume" // int + "m_iTargetVolume" // int { "type" "integer" @@ -73,7 +64,7 @@ "mac" "756" } - "m_iExtraSoundTypes" // int + "m_iWeaponVolume" // int { "type" "integer" @@ -82,7 +73,7 @@ "mac" "760" } - "m_iWeaponFlash" // int + "m_iExtraSoundTypes" // int { "type" "integer" @@ -91,16 +82,16 @@ "mac" "764" } - "m_flStopExtraSoundTime" // float + "m_iWeaponFlash" // int { - "type" "float" + "type" "integer" "windows" "748" "linux" "768" "mac" "768" } - "m_flFlashLightTime" // float + "m_flStopExtraSoundTime" // float { "type" "float" @@ -109,16 +100,16 @@ "mac" "772" } - "m_iFlashBattery" // int + "m_flFlashLightTime" // float { - "type" "integer" + "type" "float" "windows" "756" "linux" "776" "mac" "776" } - "m_afButtonLast" // int + "m_iFlashBattery" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "780" } - "m_afButtonPressed" // int + "m_afButtonLast" // int { "type" "integer" @@ -136,7 +127,7 @@ "mac" "784" } - "m_afButtonReleased" // int + "m_afButtonPressed" // int { "type" "integer" @@ -145,25 +136,25 @@ "mac" "788" } - "m_pentSndLast" // edict_t* + "m_afButtonReleased" // int { - "type" "edict" + "type" "integer" "windows" "772" "linux" "792" "mac" "792" } - "m_flSndRoomtype" // float + "m_pentSndLast" // edict_t* { - "type" "float" + "type" "edict" "windows" "776" "linux" "796" "mac" "796" } - "m_flSndRange" // float + "m_flSndRoomtype" // float { "type" "float" @@ -172,7 +163,7 @@ "mac" "800" } - "m_flFallVelocity" // float + "m_flSndRange" // float { "type" "float" @@ -181,26 +172,26 @@ "mac" "804" } - "m_rgItems" // int[7] + "m_flFallVelocity" // float { - "type" "integer" - "size" "7" + "type" "float" "windows" "788" "linux" "808" "mac" "808" } - "m_fKnownItem" // int + "m_rgItems" // int[7] { "type" "integer" + "size" "7" - "windows" "816" - "linux" "836" - "mac" "836" + "windows" "792" + "linux" "812" + "mac" "812" } - "m_fNewAmmo" // int + "m_fKnownItem" // int { "type" "integer" @@ -209,26 +200,26 @@ "mac" "840" } - "m_afPhysicsFlags" // unsigned int + "m_fNewAmmo" // int { "type" "integer" - "unsigned" "1" "windows" "824" "linux" "844" "mac" "844" } - "m_fNextSuicideTime" // float + "m_afPhysicsFlags" // unsigned int { - "type" "float" + "type" "integer" + "unsigned" "1" "windows" "828" "linux" "848" "mac" "848" } - "m_flTimeStepSound" // float + "m_fNextSuicideTime" // float { "type" "float" @@ -237,7 +228,7 @@ "mac" "852" } - "m_flTimeWeaponIdle" // float + "m_flTimeStepSound" // float { "type" "float" @@ -246,7 +237,7 @@ "mac" "856" } - "m_flSwimTime" // float + "m_flTimeWeaponIdle" // float { "type" "float" @@ -255,7 +246,7 @@ "mac" "860" } - "m_flDuckTime" // float + "m_flSwimTime" // float { "type" "float" @@ -264,7 +255,7 @@ "mac" "864" } - "m_flWallJumpTime" // float + "m_flDuckTime" // float { "type" "float" @@ -273,7 +264,7 @@ "mac" "868" } - "m_flSuitUpdate" // float + "m_flWallJumpTime" // float { "type" "float" @@ -282,64 +273,64 @@ "mac" "872" } - "m_rgSuitPlayList" // int[4] + "m_flSuitUpdate" // float { - "type" "integer" - "size" "4" + "type" "float" "windows" "856" "linux" "876" "mac" "876" } - "m_iSuitPlayNext" // int + "m_rgSuitPlayList" // int[4] { "type" "integer" + "size" "4" - "windows" "872" - "linux" "892" - "mac" "892" + "windows" "860" + "linux" "880" + "mac" "880" } - "m_rgiSuitNoRepeat" // int[32] + "m_iSuitPlayNext" // int { "type" "integer" - "size" "32" "windows" "876" "linux" "896" "mac" "896" } - "m_rgflSuitNoRepeatTime" // float[32] + "m_rgiSuitNoRepeat" // int[32] { - "type" "float" + "type" "integer" "size" "32" - "windows" "1004" - "linux" "1024" - "mac" "1024" + "windows" "880" + "linux" "900" + "mac" "900" } - "m_lastDamageAmount" // int + "m_rgflSuitNoRepeatTime" // float[32] { - "type" "integer" + "type" "float" + "size" "32" - "windows" "1132" - "linux" "1152" - "mac" "1152" + "windows" "1008" + "linux" "1028" + "mac" "1028" } - "m_tbdPrev" // float + "m_lastDamageAmount" // int { - "type" "float" + "type" "integer" "windows" "1136" "linux" "1156" "mac" "1156" } - "m_flgeigerRange" // float + "m_tbdPrev" // float { "type" "float" @@ -348,7 +339,7 @@ "mac" "1160" } - "m_flgeigerDelay" // float + "m_flgeigerRange" // float { "type" "float" @@ -357,16 +348,16 @@ "mac" "1164" } - "m_igeigerRangePrev" // int + "m_flgeigerDelay" // float { - "type" "integer" + "type" "float" "windows" "1148" "linux" "1168" "mac" "1168" } - "m_iStepLeft" // int + "m_igeigerRangePrev" // int { "type" "integer" @@ -375,35 +366,35 @@ "mac" "1172" } - "m_szTextureName" // char[13] + "m_iStepLeft" // int { - "type" "string" - "size" "13" + "type" "integer" "windows" "1156" "linux" "1176" "mac" "1176" } - "m_chTextureType" // char + "m_szTextureName" // char[13] { - "type" "character" + "type" "string" + "size" "13" - "windows" "1169" - "linux" "1189" - "mac" "1189" + "windows" "1160" + "linux" "1180" + "mac" "1180" } - "m_idrowndmg" // int + "m_chTextureType" // char { - "type" "integer" + "type" "character" - "windows" "1172" - "linux" "1192" - "mac" "1192" + "windows" "1173" + "linux" "1193" + "mac" "1193" } - "m_idrownrestored" // int + "m_idrowndmg" // int { "type" "integer" @@ -412,7 +403,7 @@ "mac" "1196" } - "m_bitsHUDDamage" // int + "m_idrownrestored" // int { "type" "integer" @@ -421,7 +412,7 @@ "mac" "1200" } - "m_fInitHUD" // BOOL + "m_bitsHUDDamage" // int { "type" "integer" @@ -430,7 +421,7 @@ "mac" "1204" } - "m_fGameHUDInitialized" // BOOL + "m_fInitHUD" // BOOL { "type" "integer" @@ -439,7 +430,7 @@ "mac" "1208" } - "m_iTrain" // int + "m_fGameHUDInitialized" // BOOL { "type" "integer" @@ -448,7 +439,7 @@ "mac" "1212" } - "m_fWeapon" // BOOL + "m_iTrain" // int { "type" "integer" @@ -457,34 +448,34 @@ "mac" "1216" } - "m_pTank" // EHANDLE + "m_fWeapon" // BOOL { - "type" "ehandle" + "type" "integer" "windows" "1200" "linux" "1220" "mac" "1220" } - "m_fDeadTime" // float + "m_pTank" // EHANDLE { - "type" "float" + "type" "ehandle" - "windows" "1208" - "linux" "1228" - "mac" "1228" + "windows" "1204" + "linux" "1224" + "mac" "1224" } - "m_fNoPlayerSound" // BOOL + "m_fDeadTime" // float { - "type" "integer" + "type" "float" "windows" "1212" "linux" "1232" "mac" "1232" } - "m_fLongJump" // BOOL + "m_fNoPlayerSound" // BOOL { "type" "integer" @@ -493,25 +484,25 @@ "mac" "1236" } - "m_tSneaking" // float + "m_fLongJump" // BOOL { - "type" "float" + "type" "integer" "windows" "1220" "linux" "1240" "mac" "1240" } - "m_iUpdateTime" // int + "m_tSneaking" // float { - "type" "integer" + "type" "float" "windows" "1224" "linux" "1244" "mac" "1244" } - "m_iClientHealth" // int + "m_iUpdateTime" // int { "type" "integer" @@ -520,7 +511,7 @@ "mac" "1248" } - "m_iClientBattery" // int + "m_iClientHealth" // int { "type" "integer" @@ -529,7 +520,7 @@ "mac" "1252" } - "m_iHideHUD" // int + "m_iClientBattery" // int { "type" "integer" @@ -538,7 +529,7 @@ "mac" "1256" } - "m_iClientHideHUD" // int + "m_iHideHUD" // int { "type" "integer" @@ -547,7 +538,7 @@ "mac" "1260" } - "m_iFOV" // int + "m_iClientHideHUD" // int { "type" "integer" @@ -556,7 +547,7 @@ "mac" "1264" } - "m_iClientFOV" // int + "m_iFOV" // int { "type" "integer" @@ -565,25 +556,25 @@ "mac" "1268" } - "m_szTeamModel" // char* + "m_iClientFOV" // int { - "type" "stringptr" + "type" "integer" "windows" "1252" "linux" "1272" "mac" "1272" } - "m_iTeamNum" // int + "m_szTeamModel" // char* { - "type" "integer" + "type" "stringptr" "windows" "1256" "linux" "1276" "mac" "1276" } - "m_iNewTeamNum" // int + "m_iTeamNum" // int { "type" "integer" @@ -592,17 +583,16 @@ "mac" "1280" } - "m_iItems" // unsigned int + "m_iNewTeamNum" // int { "type" "integer" - "unsigned" "1" "windows" "1264" "linux" "1284" "mac" "1284" } - "m_iClientItems" // unsigned int + "m_iItems" // unsigned int { "type" "integer" "unsigned" "1" @@ -612,34 +602,35 @@ "mac" "1288" } - "m_pFlag" // EHANDLE + "m_iClientItems" // unsigned int { - "type" "ehandle" + "type" "integer" + "unsigned" "1" "windows" "1272" "linux" "1292" "mac" "1292" } - "m_iCurrentMenu" // int + "m_pFlag" // EHANDLE { - "type" "integer" + "type" "ehandle" - "windows" "1280" - "linux" "1300" - "mac" "1300" + "windows" "1276" + "linux" "1296" + "mac" "1296" } - "m_flNextHEVCharge" // float + "m_iCurrentMenu" // int { - "type" "float" + "type" "integer" "windows" "1284" "linux" "1304" "mac" "1304" } - "m_flNextHealthCharge" // float + "m_flNextHEVCharge" // float { "type" "float" @@ -648,7 +639,7 @@ "mac" "1308" } - "m_flNextAmmoCharge" // float + "m_flNextHealthCharge" // float { "type" "float" @@ -657,16 +648,16 @@ "mac" "1312" } - "m_iLastPlayerTrace" // int + "m_flNextAmmoCharge" // float { - "type" "integer" + "type" "float" "windows" "1296" "linux" "1316" "mac" "1316" } - "m_fPlayingHChargeSound" // BOOL + "m_iLastPlayerTrace" // int { "type" "integer" @@ -675,7 +666,7 @@ "mac" "1320" } - "m_fPlayingAChargeSound" // BOOL + "m_fPlayingHChargeSound" // BOOL { "type" "integer" @@ -684,7 +675,7 @@ "mac" "1324" } - "m_nLastShotBy" // int + "m_fPlayingAChargeSound" // BOOL { "type" "integer" @@ -693,25 +684,25 @@ "mac" "1328" } - "m_flLastShotTime" // float + "m_nLastShotBy" // int { - "type" "float" + "type" "integer" "windows" "1312" "linux" "1332" "mac" "1332" } - "m_iFlagCaptures" // int + "m_flLastShotTime" // float { - "type" "integer" + "type" "float" "windows" "1316" "linux" "1336" "mac" "1336" } - "m_iCTFScore" // int + "m_iFlagCaptures" // int { "type" "integer" @@ -720,7 +711,7 @@ "mac" "1340" } - "m_fWONAuthSent" // BOOL + "m_iCTFScore" // int { "type" "integer" @@ -729,25 +720,16 @@ "mac" "1344" } - "m_iOffense" // short int + "m_fWONAuthSent" // BOOL { - "type" "short" + "type" "integer" "windows" "1328" "linux" "1348" "mac" "1348" } - "m_iDefense" // short int - { - "type" "short" - - "windows" "1330" - "linux" "1350" - "mac" "1350" - } - - "m_iSnipeKills" // short int + "m_iOffense" // short int { "type" "short" @@ -756,7 +738,7 @@ "mac" "1352" } - "m_iBarnacleKills" // short int + "m_iDefense" // short int { "type" "short" @@ -765,7 +747,7 @@ "mac" "1354" } - "m_iSuicides" // short int + "m_iSnipeKills" // short int { "type" "short" @@ -774,43 +756,52 @@ "mac" "1356" } - "m_flLastDamageTime" // float + "m_iBarnacleKills" // short int { - "type" "float" + "type" "short" + + "windows" "1338" + "linux" "1358" + "mac" "1358" + } + + "m_iSuicides" // short int + { + "type" "short" "windows" "1340" "linux" "1360" "mac" "1360" } - "m_iLastDamage" // short int + "m_flLastDamageTime" // float { - "type" "short" + "type" "float" "windows" "1344" "linux" "1364" "mac" "1364" } - "m_iMostDamage" // short int + "m_iLastDamage" // short int { "type" "short" - "windows" "1346" - "linux" "1366" - "mac" "1366" + "windows" "1348" + "linux" "1368" + "mac" "1368" } - "m_flAccelTime" // float + "m_iMostDamage" // short int { - "type" "float" + "type" "short" - "windows" "1348" - "linux" "1368" - "mac" "1368" + "windows" "1350" + "linux" "1370" + "mac" "1370" } - "m_flBackpackTime" // float + "m_flAccelTime" // float { "type" "float" @@ -819,7 +810,7 @@ "mac" "1372" } - "m_flHealthTime" // float + "m_flBackpackTime" // float { "type" "float" @@ -828,7 +819,7 @@ "mac" "1376" } - "m_flShieldTime" // float + "m_flHealthTime" // float { "type" "float" @@ -837,7 +828,7 @@ "mac" "1380" } - "m_flJumpTime" // float + "m_flShieldTime" // float { "type" "float" @@ -846,7 +837,7 @@ "mac" "1384" } - "m_flNextChatTime" // float + "m_flJumpTime" // float { "type" "float" @@ -855,26 +846,26 @@ "mac" "1388" } - "m_rgpPlayerItems" // CBasePlayerItem*[7] + "m_flNextChatTime" // float { - "type" "classptr" - "size" "7" + "type" "float" "windows" "1372" "linux" "1392" "mac" "1392" } - "m_pActiveItem" // CBasePlayerItem* + "m_rgpPlayerItems" // CBasePlayerItem*[7] { "type" "classptr" + "size" "7" - "windows" "1400" - "linux" "1420" - "mac" "1420" + "windows" "1376" + "linux" "1396" + "mac" "1396" } - "m_pClientActiveItem" // CBasePlayerItem* + "m_pActiveItem" // CBasePlayerItem* { "type" "classptr" @@ -883,7 +874,7 @@ "mac" "1424" } - "m_pLastItem" // CBasePlayerItem* + "m_pClientActiveItem" // CBasePlayerItem* { "type" "classptr" @@ -892,45 +883,45 @@ "mac" "1428" } - "m_rgAmmo" // int[32] + "m_pLastItem" // CBasePlayerItem* { - "type" "integer" - "size" "32" + "type" "classptr" "windows" "1412" "linux" "1432" "mac" "1432" } - "m_rgAmmoLast" // int[32] + "m_rgAmmo" // int[32] { "type" "integer" "size" "32" - "windows" "1540" - "linux" "1560" - "mac" "1560" + "windows" "1416" + "linux" "1436" + "mac" "1436" } - "m_vecAutoAim" // Vector + "m_rgAmmoLast" // int[32] { - "type" "vector" + "type" "integer" + "size" "32" - "windows" "1668" - "linux" "1688" - "mac" "1688" + "windows" "1544" + "linux" "1564" + "mac" "1564" } - "m_fOnTarget" // BOOL + "m_vecAutoAim" // Vector { - "type" "integer" + "type" "vector" - "windows" "1680" - "linux" "1700" - "mac" "1700" + "windows" "1672" + "linux" "1692" + "mac" "1692" } - "m_iDeaths" // int + "m_fOnTarget" // BOOL { "type" "integer" @@ -939,25 +930,25 @@ "mac" "1704" } - "m_iRespawnFrames" // float + "m_iDeaths" // int { - "type" "float" + "type" "integer" "windows" "1688" "linux" "1708" "mac" "1708" } - "m_lastx" // int + "m_iRespawnFrames" // float { - "type" "integer" + "type" "float" "windows" "1692" "linux" "1712" "mac" "1712" } - "m_lasty" // int + "m_lastx" // int { "type" "integer" @@ -966,7 +957,7 @@ "mac" "1716" } - "m_nCustomSprayFrames" // int + "m_lasty" // int { "type" "integer" @@ -975,63 +966,63 @@ "mac" "1720" } - "m_flNextDecalTime" // float + "m_nCustomSprayFrames" // int { - "type" "float" + "type" "integer" "windows" "1704" "linux" "1724" "mac" "1724" } - "m_szTeamName" // char[16] + "m_flNextDecalTime" // float { - "type" "string" - "size" "16" + "type" "float" "windows" "1708" "linux" "1728" "mac" "1728" } + "m_szTeamName" // char[16] + { + "type" "string" + "size" "16" + + "windows" "1712" + "linux" "1732" + "mac" "1732" + } + "m_szAnimExtention" // char[32] { "type" "string" "size" "32" - "windows" "1724" - "linux" "1744" - "mac" "1744" + "windows" "1728" + "linux" "1748" + "mac" "1748" } "m_hObserverTarget" // EHANDLE { "type" "ehandle" - "windows" "1756" - "linux" "1776" - "mac" "1776" + "windows" "1760" + "linux" "1780" + "mac" "1780" } "m_flNextObserverInput" // float { "type" "float" - "windows" "1764" - "linux" "1784" - "mac" "1784" - } - - "m_flStartCharge" // float - { - "type" "float" - "windows" "1768" "linux" "1788" "mac" "1788" } - "m_flAmmoStartCharge" // float + "m_flStartCharge" // float { "type" "float" @@ -1040,7 +1031,7 @@ "mac" "1792" } - "m_flPlayAftershock" // float + "m_flAmmoStartCharge" // float { "type" "float" @@ -1049,7 +1040,7 @@ "mac" "1796" } - "m_flNextAmmoBurn" // float + "m_flPlayAftershock" // float { "type" "float" @@ -1058,32 +1049,50 @@ "mac" "1800" } - "mRope" // CRope* + "m_flNextAmmoBurn" // float { - "type" "classptr" + "type" "float" "windows" "1784" "linux" "1804" "mac" "1804" } - "mLastClimbTime" // float + "mRope" // CRope* { - "type" "float" + "type" "classptr" "windows" "1788" "linux" "1808" "mac" "1808" } - "mIsClimbing" // int + "mLastClimbTime" // float { - "type" "integer" + "type" "float" "windows" "1792" "linux" "1812" "mac" "1812" } + + "mIsClimbing" // int + { + "type" "integer" + + "windows" "1796" + "linux" "1816" + "mac" "1816" + } + + "m_iAutoWepSwitch" // int + { + "type" "integer" + + "windows" "1800" + "linux" "1820" + "mac" "1820" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cbasetoggle.txt b/gamedata/common.games/entities.games/gearbox/offsets-cbasetoggle.txt index db4de323a5..59a444de64 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cbasetoggle.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cbasetoggle.txt @@ -145,11 +145,20 @@ "mac" "224" } + "m_pfnCallWhenMoveDone" // (*__pfn)(CBaseToggle*) + { + "type" "function" + + "windows" "216" + "linux" "232" + "mac" "232" + } + "m_vecFinalDest" // Vector { "type" "vector" - "windows" "224" + "windows" "220" "linux" "240" "mac" "240" } @@ -158,7 +167,7 @@ { "type" "vector" - "windows" "236" + "windows" "232" "linux" "252" "mac" "252" } @@ -167,7 +176,7 @@ { "type" "integer" - "windows" "248" + "windows" "244" "linux" "264" "mac" "264" } @@ -176,7 +185,7 @@ { "type" "stringint" - "windows" "252" + "windows" "248" "linux" "268" "mac" "268" } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cbaseturret.txt b/gamedata/common.games/entities.games/gearbox/offsets-cbaseturret.txt index 5087059526..1f3665243d 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cbaseturret.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cbaseturret.txt @@ -23,39 +23,30 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_iSpin" // int - { - "type" "integer" - "windows" "712" "linux" "732" "mac" "732" } - "m_pEyeGlow" // CSprite* + "m_iSpin" // int { - "type" "classptr" + "type" "integer" "windows" "716" "linux" "736" "mac" "736" } - "m_eyeBrightness" // int + "m_pEyeGlow" // CSprite* { - "type" "integer" + "type" "classptr" "windows" "720" "linux" "740" "mac" "740" } - "m_iDeployHeight" // int + "m_eyeBrightness" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "744" } - "m_iRetractHeight" // int + "m_iDeployHeight" // int { "type" "integer" @@ -73,7 +64,7 @@ "mac" "748" } - "m_iMinPitch" // int + "m_iRetractHeight" // int { "type" "integer" @@ -82,7 +73,7 @@ "mac" "752" } - "m_iBaseTurnRate" // int + "m_iMinPitch" // int { "type" "integer" @@ -91,25 +82,25 @@ "mac" "756" } - "m_fTurnRate" // float + "m_iBaseTurnRate" // int { - "type" "float" + "type" "integer" "windows" "740" "linux" "760" "mac" "760" } - "m_iOrientation" // int + "m_fTurnRate" // float { - "type" "integer" + "type" "float" "windows" "744" "linux" "764" "mac" "764" } - "m_iOn" // int + "m_iOrientation" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "768" } - "m_fBeserk" // int + "m_iOn" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "772" } - "m_iAutoStart" // int + "m_fBeserk" // int { "type" "integer" @@ -136,25 +127,25 @@ "mac" "776" } - "m_vecLastSight" // Vector + "m_iAutoStart" // int { - "type" "vector" + "type" "integer" "windows" "760" "linux" "780" "mac" "780" } - "m_flLastSight" // float + "m_vecLastSight" // Vector { - "type" "float" + "type" "vector" - "windows" "772" - "linux" "792" - "mac" "792" + "windows" "764" + "linux" "784" + "mac" "784" } - "m_flMaxWait" // float + "m_flLastSight" // float { "type" "float" @@ -163,58 +154,67 @@ "mac" "796" } - "m_iSearchSpeed" // int + "m_flMaxWait" // float { - "type" "integer" + "type" "float" "windows" "780" "linux" "800" "mac" "800" } - "m_flStartYaw" // float + "m_iSearchSpeed" // int { - "type" "float" + "type" "integer" "windows" "784" "linux" "804" "mac" "804" } - "m_vecCurAngles" // Vector + "m_flStartYaw" // float { - "type" "vector" + "type" "float" "windows" "788" "linux" "808" "mac" "808" } + "m_vecCurAngles" // Vector + { + "type" "vector" + + "windows" "792" + "linux" "812" + "mac" "812" + } + "m_vecGoalAngles" // Vector { "type" "vector" - "windows" "800" - "linux" "820" - "mac" "820" + "windows" "804" + "linux" "824" + "mac" "824" } "m_flPingTime" // float { "type" "float" - "windows" "812" - "linux" "832" - "mac" "832" + "windows" "816" + "linux" "836" + "mac" "836" } "m_flSpinUpTime" // float { "type" "float" - "windows" "816" - "linux" "836" - "mac" "836" + "windows" "820" + "linux" "840" + "mac" "840" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cbigmomma.txt b/gamedata/common.games/entities.games/gearbox/offsets-cbigmomma.txt index bc3864727d..36261f5bba 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cbigmomma.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cbigmomma.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_crabTime" // float - { - "type" "float" - "windows" "712" "linux" "732" "mac" "732" } - "m_mortarTime" // float + "m_crabTime" // float { "type" "float" @@ -46,7 +37,7 @@ "mac" "736" } - "m_painSoundTime" // float + "m_mortarTime" // float { "type" "float" @@ -55,14 +46,23 @@ "mac" "740" } - "m_crabCount" // int + "m_painSoundTime" // float { - "type" "integer" + "type" "float" "windows" "724" "linux" "744" "mac" "744" } + + "m_crabCount" // int + { + "type" "integer" + + "windows" "728" + "linux" "748" + "mac" "748" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cbullsquid.txt b/gamedata/common.games/entities.games/gearbox/offsets-cbullsquid.txt index 095b427771..da4ec2528a 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cbullsquid.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cbullsquid.txt @@ -23,27 +23,27 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_flLastHurtTime" // float { "type" "float" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_flNextSpitTime" // float { "type" "float" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-ccinemonster.txt b/gamedata/common.games/entities.games/gearbox/offsets-ccinemonster.txt index 0dd0242aa2..ead07f61f3 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-ccinemonster.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-ccinemonster.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_iszPlay" // int - { - "type" "integer" - "windows" "712" "linux" "732" "mac" "732" } - "m_iszEntity" // int + "m_iszPlay" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "736" } - "m_fMoveTo" // int + "m_iszEntity" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "740" } - "m_iFinishSchedule" // int + "m_fMoveTo" // int { "type" "integer" @@ -64,16 +55,16 @@ "mac" "744" } - "m_flRadius" // float + "m_iFinishSchedule" // int { - "type" "float" + "type" "integer" "windows" "728" "linux" "748" "mac" "748" } - "m_flRepeat" // float + "m_flRadius" // float { "type" "float" @@ -82,34 +73,34 @@ "mac" "752" } - "m_iDelay" // int + "m_flRepeat" // float { - "type" "integer" + "type" "float" "windows" "736" "linux" "756" "mac" "756" } - "m_startTime" // float + "m_iDelay" // int { - "type" "float" + "type" "integer" "windows" "740" "linux" "760" "mac" "760" } - "m_saved_movetype" // int + "m_startTime" // float { - "type" "integer" + "type" "float" "windows" "744" "linux" "764" "mac" "764" } - "m_saved_solid" // int + "m_saved_movetype" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "768" } - "m_saved_effects" // int + "m_saved_solid" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "772" } - "m_interruptable" // BOOL + "m_saved_effects" // int { "type" "integer" @@ -135,6 +126,15 @@ "linux" "776" "mac" "776" } + + "m_interruptable" // BOOL + { + "type" "integer" + + "windows" "760" + "linux" "780" + "mac" "780" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-ccleansuitscientist.txt b/gamedata/common.games/entities.games/gearbox/offsets-ccleansuitscientist.txt index c368eab5bd..84ce4ed75d 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-ccleansuitscientist.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-ccleansuitscientist.txt @@ -23,27 +23,27 @@ { "type" "float" - "windows" "824" - "linux" "844" - "mac" "844" + "windows" "828" + "linux" "848" + "mac" "848" } "m_healTime" // float { "type" "float" - "windows" "828" - "linux" "848" - "mac" "848" + "windows" "832" + "linux" "852" + "mac" "852" } "m_fearTime" // float { "type" "float" - "windows" "832" - "linux" "852" - "mac" "852" + "windows" "836" + "linux" "856" + "mac" "856" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-ccontroller.txt b/gamedata/common.games/entities.games/gearbox/offsets-ccontroller.txt index 65fb357f07..23b9581f46 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-ccontroller.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-ccontroller.txt @@ -23,27 +23,27 @@ { "type" "float" - "windows" "764" - "linux" "784" - "mac" "784" + "windows" "768" + "linux" "788" + "mac" "788" } "m_flShootTime" // float { "type" "float" - "windows" "768" - "linux" "788" - "mac" "788" + "windows" "772" + "linux" "792" + "mac" "792" } "m_flShootEnd" // float { "type" "float" - "windows" "772" - "linux" "792" - "mac" "792" + "windows" "776" + "linux" "796" + "mac" "796" } "m_pBall" // CSprite*[2] @@ -51,9 +51,9 @@ "type" "classptr" "size" "2" - "windows" "776" - "linux" "796" - "mac" "796" + "windows" "780" + "linux" "800" + "mac" "800" } "m_iBall" // int[2] @@ -61,9 +61,9 @@ "type" "integer" "size" "2" - "windows" "784" - "linux" "804" - "mac" "804" + "windows" "788" + "linux" "808" + "mac" "808" } "m_iBallTime" // float[2] @@ -71,9 +71,9 @@ "type" "float" "size" "2" - "windows" "792" - "linux" "812" - "mac" "812" + "windows" "796" + "linux" "816" + "mac" "816" } "m_iBallCurrent" // int[2] @@ -81,36 +81,36 @@ "type" "integer" "size" "2" - "windows" "800" - "linux" "820" - "mac" "820" + "windows" "804" + "linux" "824" + "mac" "824" } "m_vecEstVelocity" // Vector { "type" "vector" - "windows" "808" - "linux" "828" - "mac" "828" + "windows" "812" + "linux" "832" + "mac" "832" } "m_velocity" // Vector { "type" "vector" - "windows" "820" - "linux" "840" - "mac" "840" + "windows" "824" + "linux" "844" + "mac" "844" } "m_fInCombat" // int { "type" "integer" - "windows" "832" - "linux" "852" - "mac" "852" + "windows" "836" + "linux" "856" + "mac" "856" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-ccontrollerheadball.txt b/gamedata/common.games/entities.games/gearbox/offsets-ccontrollerheadball.txt index 814aee97a0..7de0b771fb 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-ccontrollerheadball.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-ccontrollerheadball.txt @@ -23,36 +23,36 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_flNextAttack" // int { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_vecIdeal" // Vector { "type" "vector" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_hOwner" // EHANDLE { "type" "ehandle" - "windows" "728" - "linux" "748" - "mac" "748" + "windows" "732" + "linux" "752" + "mac" "752" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-ccontrollerzapball.txt b/gamedata/common.games/entities.games/gearbox/offsets-ccontrollerzapball.txt index 869a58bc03..1e21c21320 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-ccontrollerzapball.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-ccontrollerzapball.txt @@ -23,9 +23,9 @@ { "type" "ehandle" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-ccycler.txt b/gamedata/common.games/entities.games/gearbox/offsets-ccycler.txt index 3350d4e642..f5f9c8e92a 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-ccycler.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-ccycler.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_iCyclerBody" // int { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadbarney.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadbarney.txt index 08f76c18f7..6085408770 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadbarney.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadbarney.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadcleansuitscientist.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadcleansuitscientist.txt index 32979f1f7a..ccb1c9d700 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadcleansuitscientist.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadcleansuitscientist.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadgonome.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadgonome.txt index 1b78430c57..a319672029 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadgonome.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadgonome.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadhev.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadhev.txt index fbb767d542..3a5eccd030 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadhev.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadhev.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadhfgrunt.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadhfgrunt.txt index 1dd5fc3be8..844f2827e8 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadhfgrunt.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadhfgrunt.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadhgrunt.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadhgrunt.txt index 1dbe0dee99..cf913a4505 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadhgrunt.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadhgrunt.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadhgruntally.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadhgruntally.txt index c84dd1a69e..d9bbacdb28 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadhgruntally.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadhgruntally.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_iGruntHead" // int { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadhoundeye.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadhoundeye.txt index f0e591df16..db71df5cb9 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadhoundeye.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadhoundeye.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadislave.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadislave.txt index 847d6be81b..7e796a341d 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadislave.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadislave.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadmofassassin.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadmofassassin.txt index 2a8dea0cc4..b0089ca6cb 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadmofassassin.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadmofassassin.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadotis.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadotis.txt index 7da428b2f7..a37d5edace 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadotis.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadotis.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadscientist.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadscientist.txt index fb642748a9..bbf41ce851 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadscientist.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadscientist.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadshocktrooper.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadshocktrooper.txt index 90362c340f..7e95c33bf2 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadshocktrooper.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadshocktrooper.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdeadzombiesoldier.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdeadzombiesoldier.txt index 9734bb396e..995dfa650c 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdeadzombiesoldier.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdeadzombiesoldier.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cdrillsergeant.txt b/gamedata/common.games/entities.games/gearbox/offsets-cdrillsergeant.txt index 14ce440bf8..9e1d3b3845 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cdrillsergeant.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cdrillsergeant.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "824" - "linux" "844" - "mac" "844" - } - - "m_painTime" // float - { - "type" "float" - "windows" "828" "linux" "848" "mac" "848" } - "m_checkAttackTime" // float + "m_painTime" // float { "type" "float" @@ -46,23 +37,32 @@ "mac" "852" } - "m_lastAttackCheck" // BOOL + "m_checkAttackTime" // float { - "type" "integer" + "type" "float" "windows" "836" "linux" "856" "mac" "856" } - "m_flPlayerDamage" // float + "m_lastAttackCheck" // BOOL { - "type" "float" + "type" "integer" "windows" "840" "linux" "860" "mac" "860" } + + "m_flPlayerDamage" // float + { + "type" "float" + + "windows" "844" + "linux" "864" + "mac" "864" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cenvexplosion.txt b/gamedata/common.games/entities.games/gearbox/offsets-cenvexplosion.txt index 5d0923c609..f2b7c5c9f4 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cenvexplosion.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cenvexplosion.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_spriteScale" // int { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cflockingflyer.txt b/gamedata/common.games/entities.games/gearbox/offsets-cflockingflyer.txt index 71d327614f..477b91d030 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cflockingflyer.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cflockingflyer.txt @@ -23,30 +23,21 @@ { "type" "classptr" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_pSquadNext" // CFlockingFlyer* - { - "type" "classptr" - "windows" "712" "linux" "732" "mac" "732" } - "m_fTurning" // BOOL + "m_pSquadNext" // CFlockingFlyer* { - "type" "integer" + "type" "classptr" "windows" "716" "linux" "736" "mac" "736" } - "m_fCourseAdjust" // BOOL + "m_fTurning" // BOOL { "type" "integer" @@ -55,7 +46,7 @@ "mac" "740" } - "m_fPathBlocked" // BOOL + "m_fCourseAdjust" // BOOL { "type" "integer" @@ -64,34 +55,34 @@ "mac" "744" } - "m_vecReferencePoint" // Vector + "m_fPathBlocked" // BOOL { - "type" "vector" + "type" "integer" "windows" "728" "linux" "748" "mac" "748" } - "m_vecAdjustedVelocity" // Vector + "m_vecReferencePoint" // Vector { "type" "vector" - "windows" "740" - "linux" "760" - "mac" "760" + "windows" "732" + "linux" "752" + "mac" "752" } - "m_flGoalSpeed" // float + "m_vecAdjustedVelocity" // Vector { - "type" "float" + "type" "vector" - "windows" "752" - "linux" "772" - "mac" "772" + "windows" "744" + "linux" "764" + "mac" "764" } - "m_flLastBlockedTime" // float + "m_flGoalSpeed" // float { "type" "float" @@ -100,7 +91,7 @@ "mac" "776" } - "m_flFakeBlockedTime" // float + "m_flLastBlockedTime" // float { "type" "float" @@ -109,7 +100,7 @@ "mac" "780" } - "m_flAlertTime" // float + "m_flFakeBlockedTime" // float { "type" "float" @@ -118,7 +109,7 @@ "mac" "784" } - "m_flFlockNextSoundTime" // float + "m_flAlertTime" // float { "type" "float" @@ -126,6 +117,15 @@ "linux" "788" "mac" "788" } + + "m_flFlockNextSoundTime" // float + { + "type" "float" + + "windows" "772" + "linux" "792" + "mac" "792" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cflockingflyerflock.txt b/gamedata/common.games/entities.games/gearbox/offsets-cflockingflyerflock.txt index 4415a5fd88..0a0fe736b3 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cflockingflyerflock.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cflockingflyerflock.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_flFlockRadius" // float { "type" "float" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cflyingmonster.txt b/gamedata/common.games/entities.games/gearbox/offsets-cflyingmonster.txt index 62e83ac45d..0fcb6152b8 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cflyingmonster.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cflyingmonster.txt @@ -23,30 +23,21 @@ { "type" "vector" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_flightSpeed" // float { "type" "float" - "windows" "720" - "linux" "740" - "mac" "740" - } - - "m_stopTime" // float - { - "type" "float" - "windows" "724" "linux" "744" "mac" "744" } - "m_momentum" // float + "m_stopTime" // float { "type" "float" @@ -55,14 +46,32 @@ "mac" "748" } - "m_pFlapSound" // const char* + "m_momentum" // float { - "type" "stringptr" + "type" "float" "windows" "732" "linux" "752" "mac" "752" } + + "m_pFlapSound" // const char* + { + "type" "stringptr" + + "windows" "736" + "linux" "756" + "mac" "756" + } + + "m_flLastZYawTime" // float + { + "type" "float" + + "windows" "740" + "linux" "760" + "mac" "760" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cgargantua.txt b/gamedata/common.games/entities.games/gearbox/offsets-cgargantua.txt index d8c9ec6f4e..679f9127c4 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cgargantua.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cgargantua.txt @@ -23,9 +23,9 @@ { "type" "classptr" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_pFlame" // CBeam*[4] @@ -33,30 +33,21 @@ "type" "classptr" "size" "4" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_eyeBrightness" // int { "type" "integer" - "windows" "728" - "linux" "748" - "mac" "748" - } - - "m_seeTime" // float - { - "type" "float" - "windows" "732" "linux" "752" "mac" "752" } - "m_flameTime" // float + "m_seeTime" // float { "type" "float" @@ -65,7 +56,7 @@ "mac" "756" } - "m_painSoundTime" // float + "m_flameTime" // float { "type" "float" @@ -74,7 +65,7 @@ "mac" "760" } - "m_streakTime" // float + "m_painSoundTime" // float { "type" "float" @@ -83,7 +74,7 @@ "mac" "764" } - "m_flameX" // float + "m_streakTime" // float { "type" "float" @@ -92,7 +83,7 @@ "mac" "768" } - "m_flameY" // float + "m_flameX" // float { "type" "float" @@ -100,6 +91,15 @@ "linux" "772" "mac" "772" } + + "m_flameY" // float + { + "type" "float" + + "windows" "756" + "linux" "776" + "mac" "776" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cgenericmonster.txt b/gamedata/common.games/entities.games/gearbox/offsets-cgenericmonster.txt index baae943930..261c8b398e 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cgenericmonster.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cgenericmonster.txt @@ -23,36 +23,36 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_hTalkTarget" // EHANDLE { "type" "ehandle" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_flIdealYaw" // float { "type" "float" - "windows" "720" - "linux" "740" - "mac" "740" + "windows" "724" + "linux" "744" + "mac" "744" } "m_flCurrentYaw" // float { "type" "float" - "windows" "724" - "linux" "744" - "mac" "744" + "windows" "728" + "linux" "748" + "mac" "748" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cgman.txt b/gamedata/common.games/entities.games/gearbox/offsets-cgman.txt index 66cad3dc7f..1392b80e6e 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cgman.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cgman.txt @@ -23,27 +23,27 @@ { "type" "ehandle" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_hTalkTarget" // EHANDLE { "type" "ehandle" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_flTalkTime" // float { "type" "float" - "windows" "724" - "linux" "744" - "mac" "744" + "windows" "728" + "linux" "748" + "mac" "748" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cgrenade.txt b/gamedata/common.games/entities.games/gearbox/offsets-cgrenade.txt index f997cd48ce..1cbe5b699b 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cgrenade.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cgrenade.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cguntarget.txt b/gamedata/common.games/entities.games/gearbox/offsets-cguntarget.txt index cd0ac7e517..8822cb2bfb 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cguntarget.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cguntarget.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-chassassin.txt b/gamedata/common.games/entities.games/gearbox/offsets-chassassin.txt index 65b37838d2..51e039ce5e 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-chassassin.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-chassassin.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_flDiviation" // float - { - "type" "float" - "windows" "712" "linux" "732" "mac" "732" } - "m_flNextJump" // float + "m_flDiviation" // float { "type" "float" @@ -46,43 +37,43 @@ "mac" "736" } - "m_vecJumpVelocity" // Vector + "m_flNextJump" // float { - "type" "vector" + "type" "float" "windows" "720" "linux" "740" "mac" "740" } - "m_flNextGrenadeCheck" // float + "m_vecJumpVelocity" // Vector { - "type" "float" + "type" "vector" - "windows" "732" - "linux" "752" - "mac" "752" + "windows" "724" + "linux" "744" + "mac" "744" } - "m_vecTossVelocity" // Vector + "m_flNextGrenadeCheck" // float { - "type" "vector" + "type" "float" "windows" "736" "linux" "756" "mac" "756" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "748" - "linux" "768" - "mac" "768" + "windows" "740" + "linux" "760" + "mac" "760" } - "m_iTargetRanderamt" // int + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -91,7 +82,7 @@ "mac" "772" } - "m_iFrustration" // int + "m_iTargetRanderamt" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "776" } - "m_iShell" // int + "m_iFrustration" // int { "type" "integer" @@ -108,6 +99,15 @@ "linux" "780" "mac" "780" } + + "m_iShell" // int + { + "type" "integer" + + "windows" "764" + "linux" "784" + "mac" "784" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-chfgrunt.txt b/gamedata/common.games/entities.games/gearbox/offsets-chfgrunt.txt index 2b3f9ff94c..60fea747bc 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-chfgrunt.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-chfgrunt.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "764" - "linux" "784" - "mac" "784" - } - - "m_flNextPainTime" // float - { - "type" "float" - "windows" "768" "linux" "788" "mac" "788" } - "m_flLastEnemySightTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -46,25 +37,25 @@ "mac" "792" } - "m_vecTossVelocity" // Vector + "m_flLastEnemySightTime" // float { - "type" "vector" + "type" "float" "windows" "776" "linux" "796" "mac" "796" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "788" - "linux" "808" - "mac" "808" + "windows" "780" + "linux" "800" + "mac" "800" } - "m_fStanding" // BOOL + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -73,7 +64,7 @@ "mac" "812" } - "m_fFirstEncounter" // BOOL + "m_fStanding" // BOOL { "type" "integer" @@ -82,7 +73,7 @@ "mac" "816" } - "m_cClipSize" // int + "m_fFirstEncounter" // BOOL { "type" "integer" @@ -91,7 +82,7 @@ "mac" "820" } - "m_voicePitch" // int + "m_cClipSize" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "824" } - "m_iBrassShell" // int + "m_voicePitch" // int { "type" "integer" @@ -109,7 +100,7 @@ "mac" "828" } - "m_iShotgunShell" // int + "m_iBrassShell" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "832" } - "m_iSentence" // int + "m_iShotgunShell" // int { "type" "integer" @@ -126,6 +117,15 @@ "linux" "836" "mac" "836" } + + "m_iSentence" // int + { + "type" "integer" + + "windows" "820" + "linux" "840" + "mac" "840" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-chfgruntrepel.txt b/gamedata/common.games/entities.games/gearbox/offsets-chfgruntrepel.txt index 86bdd6c385..e1e510eff9 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-chfgruntrepel.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-chfgruntrepel.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-chgrunt.txt b/gamedata/common.games/entities.games/gearbox/offsets-chgrunt.txt index 4d61fe566e..6c3aafe8e8 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-chgrunt.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-chgrunt.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "764" - "linux" "784" - "mac" "784" - } - - "m_flNextPainTime" // float - { - "type" "float" - "windows" "768" "linux" "788" "mac" "788" } - "m_flLastEnemySightTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -46,25 +37,25 @@ "mac" "792" } - "m_vecTossVelocity" // Vector + "m_flLastEnemySightTime" // float { - "type" "vector" + "type" "float" "windows" "776" "linux" "796" "mac" "796" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "788" - "linux" "808" - "mac" "808" + "windows" "780" + "linux" "800" + "mac" "800" } - "m_fStanding" // BOOL + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -73,7 +64,7 @@ "mac" "812" } - "m_fFirstEncounter" // BOOL + "m_fStanding" // BOOL { "type" "integer" @@ -82,7 +73,7 @@ "mac" "816" } - "m_cClipSize" // int + "m_fFirstEncounter" // BOOL { "type" "integer" @@ -91,7 +82,7 @@ "mac" "820" } - "m_voicePitch" // int + "m_cClipSize" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "824" } - "m_iBrassShell" // int + "m_voicePitch" // int { "type" "integer" @@ -109,7 +100,7 @@ "mac" "828" } - "m_iShotgunShell" // int + "m_iBrassShell" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "832" } - "m_iSentence" // int + "m_iShotgunShell" // int { "type" "integer" @@ -126,6 +117,15 @@ "linux" "836" "mac" "836" } + + "m_iSentence" // int + { + "type" "integer" + + "windows" "820" + "linux" "840" + "mac" "840" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-chgruntally.txt b/gamedata/common.games/entities.games/gearbox/offsets-chgruntally.txt index 588f1adba1..b338178c5a 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-chgruntally.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-chgruntally.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "896" - "linux" "916" - "mac" "916" - } - - "m_flPlayerDamage" // float - { - "type" "float" - "windows" "900" "linux" "920" "mac" "920" } - "m_flNextGrenadeCheck" // float + "m_flPlayerDamage" // float { "type" "float" @@ -46,7 +37,7 @@ "mac" "924" } - "m_flNextPainTime" // float + "m_flNextGrenadeCheck" // float { "type" "float" @@ -55,7 +46,7 @@ "mac" "928" } - "m_flLastEnemySightTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -64,25 +55,25 @@ "mac" "932" } - "m_vecTossVelocity" // Vector + "m_flLastEnemySightTime" // float { - "type" "vector" + "type" "float" "windows" "916" "linux" "936" "mac" "936" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "928" - "linux" "948" - "mac" "948" + "windows" "920" + "linux" "940" + "mac" "940" } - "m_fStanding" // BOOL + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -91,7 +82,7 @@ "mac" "952" } - "m_fFirstEncounter" // BOOL + "m_fStanding" // BOOL { "type" "integer" @@ -100,7 +91,7 @@ "mac" "956" } - "m_cClipSize" // int + "m_fFirstEncounter" // BOOL { "type" "integer" @@ -109,7 +100,7 @@ "mac" "960" } - "m_iBrassShell" // int + "m_cClipSize" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "964" } - "m_iShotgunShell" // int + "m_iBrassShell" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "968" } - "m_iSawShell" // int + "m_iShotgunShell" // int { "type" "integer" @@ -136,7 +127,7 @@ "mac" "972" } - "m_iSawLink" // int + "m_iSawShell" // int { "type" "integer" @@ -145,7 +136,7 @@ "mac" "976" } - "m_iSentence" // int + "m_iSawLink" // int { "type" "integer" @@ -154,7 +145,7 @@ "mac" "980" } - "m_iWeaponIdx" // int + "m_iSentence" // int { "type" "integer" @@ -163,7 +154,7 @@ "mac" "984" } - "m_iGruntHead" // int + "m_iWeaponIdx" // int { "type" "integer" @@ -172,7 +163,7 @@ "mac" "988" } - "m_iGruntTorso" // int + "m_iGruntHead" // int { "type" "integer" @@ -180,6 +171,15 @@ "linux" "992" "mac" "992" } + + "m_iGruntTorso" // int + { + "type" "integer" + + "windows" "976" + "linux" "996" + "mac" "996" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-chgruntallyrepel.txt b/gamedata/common.games/entities.games/gearbox/offsets-chgruntallyrepel.txt index 1b923c6dc4..7c0a1d8ebb 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-chgruntallyrepel.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-chgruntallyrepel.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_iGruntHead" // int - { - "type" "integer" - "windows" "712" "linux" "732" "mac" "732" } - "m_iszUse" // int + "m_iGruntHead" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "736" } - "m_iszUnUse" // int + "m_iszUse" // int { "type" "integer" @@ -54,6 +45,15 @@ "linux" "740" "mac" "740" } + + "m_iszUnUse" // int + { + "type" "integer" + + "windows" "724" + "linux" "744" + "mac" "744" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-chgruntrepel.txt b/gamedata/common.games/entities.games/gearbox/offsets-chgruntrepel.txt index 17b61e84b1..6d074c4d00 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-chgruntrepel.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-chgruntrepel.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-chornet.txt b/gamedata/common.games/entities.games/gearbox/offsets-chornet.txt index 72b21ed0ee..164f1adf64 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-chornet.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-chornet.txt @@ -23,27 +23,27 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_iHornetType" // int { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_flFlySpeed" // float { "type" "float" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-choundeye.txt b/gamedata/common.games/entities.games/gearbox/offsets-choundeye.txt index 388ba702b3..251047ba74 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-choundeye.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-choundeye.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "764" - "linux" "784" - "mac" "784" - } - - "m_fAsleep" // BOOL - { - "type" "integer" - "windows" "768" "linux" "788" "mac" "788" } - "m_fDontBlink" // BOOL + "m_fAsleep" // BOOL { "type" "integer" @@ -46,14 +37,23 @@ "mac" "792" } - "m_vecPackCenter" // Vector + "m_fDontBlink" // BOOL { - "type" "vector" + "type" "integer" "windows" "776" "linux" "796" "mac" "796" } + + "m_vecPackCenter" // Vector + { + "type" "vector" + + "windows" "780" + "linux" "800" + "mac" "800" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cichthyosaur.txt b/gamedata/common.games/entities.games/gearbox/offsets-cichthyosaur.txt index eca5927664..d470219392 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cichthyosaur.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cichthyosaur.txt @@ -23,48 +23,30 @@ { "type" "vector" - "windows" "736" - "linux" "756" - "mac" "756" + "windows" "744" + "linux" "764" + "mac" "764" } "m_idealDist" // float { "type" "float" - "windows" "748" - "linux" "768" - "mac" "768" - } - - "m_flBlink" // float - { - "type" "float" - - "windows" "752" - "linux" "772" - "mac" "772" - } - - "m_flEnemyTouched" // float - { - "type" "float" - "windows" "756" "linux" "776" "mac" "776" } - "m_bOnAttack" // BOOL + "m_flBlink" // float { - "type" "integer" + "type" "float" "windows" "760" "linux" "780" "mac" "780" } - "m_flMaxSpeed" // float + "m_flEnemyTouched" // float { "type" "float" @@ -73,16 +55,16 @@ "mac" "784" } - "m_flMinSpeed" // float + "m_bOnAttack" // BOOL { - "type" "float" + "type" "integer" "windows" "768" "linux" "788" "mac" "788" } - "m_flMaxDist" // float + "m_flMaxSpeed" // float { "type" "float" @@ -91,16 +73,16 @@ "mac" "792" } - "m_pBeam" // CBeam* + "m_flMinSpeed" // float { - "type" "classptr" + "type" "float" "windows" "776" "linux" "796" "mac" "796" } - "m_flNextAlert" // float + "m_flMaxDist" // float { "type" "float" @@ -108,6 +90,42 @@ "linux" "800" "mac" "800" } + + "m_pBeam" // CBeam* + { + "type" "classptr" + + "windows" "784" + "linux" "804" + "mac" "804" + } + + "m_flNextAlert" // float + { + "type" "float" + + "windows" "788" + "linux" "808" + "mac" "808" + } + + "m_flLastPitchTime" // float + { + "type" "float" + + "windows" "792" + "linux" "812" + "mac" "812" + } + + "m_flLastZYawTime" // float + { + "type" "float" + + "windows" "796" + "linux" "816" + "mac" "816" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cislave.txt b/gamedata/common.games/entities.games/gearbox/offsets-cislave.txt index c06ee50596..9797d09be1 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cislave.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cislave.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "764" - "linux" "784" - "mac" "784" + "windows" "768" + "linux" "788" + "mac" "788" } "m_pBeam" // CBeam*[8] @@ -33,45 +33,45 @@ "type" "classptr" "size" "8" - "windows" "768" - "linux" "788" - "mac" "788" + "windows" "772" + "linux" "792" + "mac" "792" } "m_iBeams" // int { "type" "integer" - "windows" "800" - "linux" "820" - "mac" "820" + "windows" "804" + "linux" "824" + "mac" "824" } "m_flNextAttack" // float { "type" "float" - "windows" "804" - "linux" "824" - "mac" "824" + "windows" "808" + "linux" "828" + "mac" "828" } "m_voicePitch" // int { "type" "integer" - "windows" "808" - "linux" "828" - "mac" "828" + "windows" "812" + "linux" "832" + "mac" "832" } "m_hDead" // EHANDLE { "type" "ehandle" - "windows" "812" - "linux" "832" - "mac" "832" + "windows" "816" + "linux" "836" + "mac" "836" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cleech.txt b/gamedata/common.games/entities.games/gearbox/offsets-cleech.txt index 8a7b5624d6..70907b7f53 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cleech.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cleech.txt @@ -23,30 +23,21 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_fPathBlocked" // BOOL - { - "type" "integer" - "windows" "712" "linux" "732" "mac" "732" } - "m_flAccelerate" // float + "m_fPathBlocked" // BOOL { - "type" "float" + "type" "integer" "windows" "716" "linux" "736" "mac" "736" } - "m_obstacle" // float + "m_flAccelerate" // float { "type" "float" @@ -55,7 +46,7 @@ "mac" "740" } - "m_top" // float + "m_obstacle" // float { "type" "float" @@ -64,7 +55,7 @@ "mac" "744" } - "m_bottom" // float + "m_top" // float { "type" "float" @@ -73,7 +64,7 @@ "mac" "748" } - "m_height" // float + "m_bottom" // float { "type" "float" @@ -82,7 +73,7 @@ "mac" "752" } - "m_waterTime" // float + "m_height" // float { "type" "float" @@ -91,7 +82,7 @@ "mac" "756" } - "m_sideTime" // float + "m_waterTime" // float { "type" "float" @@ -100,7 +91,7 @@ "mac" "760" } - "m_zTime" // float + "m_sideTime" // float { "type" "float" @@ -109,7 +100,7 @@ "mac" "764" } - "m_stateTime" // float + "m_zTime" // float { "type" "float" @@ -118,7 +109,7 @@ "mac" "768" } - "m_attackSoundTime" // float + "m_stateTime" // float { "type" "float" @@ -126,6 +117,15 @@ "linux" "772" "mac" "772" } + + "m_attackSoundTime" // float + { + "type" "float" + + "windows" "756" + "linux" "776" + "mac" "776" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cmofassassin.txt b/gamedata/common.games/entities.games/gearbox/offsets-cmofassassin.txt index dcf37b1e04..0dd6dd305b 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cmofassassin.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cmofassassin.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "764" - "linux" "784" - "mac" "784" - } - - "m_flNextPainTime" // float - { - "type" "float" - "windows" "768" "linux" "788" "mac" "788" } - "m_flLastEnemySightTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -46,25 +37,25 @@ "mac" "792" } - "m_vecTossVelocity" // Vector + "m_flLastEnemySightTime" // float { - "type" "vector" + "type" "float" "windows" "776" "linux" "796" "mac" "796" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "788" - "linux" "808" - "mac" "808" + "windows" "780" + "linux" "800" + "mac" "800" } - "m_fStanding" // BOOL + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -73,7 +64,7 @@ "mac" "812" } - "m_fFirstEncounter" // BOOL + "m_fStanding" // BOOL { "type" "integer" @@ -82,7 +73,7 @@ "mac" "816" } - "m_cClipSize" // int + "m_fFirstEncounter" // BOOL { "type" "integer" @@ -91,43 +82,43 @@ "mac" "820" } - "m_flLastShot" // float + "m_cClipSize" // int { - "type" "float" + "type" "integer" "windows" "804" "linux" "824" "mac" "824" } - "m_fStandingGround" // BOOL + "m_flLastShot" // float { - "type" "integer" + "type" "float" "windows" "808" "linux" "828" "mac" "828" } - "m_flStandGroundRange" // float + "m_fStandingGround" // BOOL { - "type" "float" + "type" "integer" "windows" "812" "linux" "832" "mac" "832" } - "m_voicePitch" // int + "m_flStandGroundRange" // float { - "type" "integer" + "type" "float" "windows" "816" "linux" "836" "mac" "836" } - "m_iBrassShell" // int + "m_voicePitch" // int { "type" "integer" @@ -136,7 +127,7 @@ "mac" "840" } - "m_iSentence" // int + "m_iBrassShell" // int { "type" "integer" @@ -145,7 +136,7 @@ "mac" "844" } - "m_iAssassinHead" // int + "m_iSentence" // int { "type" "integer" @@ -153,6 +144,15 @@ "linux" "848" "mac" "848" } + + "m_iAssassinHead" // int + { + "type" "integer" + + "windows" "832" + "linux" "852" + "mac" "852" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cmofassassinrepel.txt b/gamedata/common.games/entities.games/gearbox/offsets-cmofassassinrepel.txt index 396675866b..b6bf357791 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cmofassassinrepel.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cmofassassinrepel.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cmonstermaker.txt b/gamedata/common.games/entities.games/gearbox/offsets-cmonstermaker.txt index 537c448d1d..a2eb73dce5 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cmonstermaker.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cmonstermaker.txt @@ -23,21 +23,12 @@ { "type" "stringint" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_cNumMonsters" // int - { - "type" "integer" - "windows" "712" "linux" "732" "mac" "732" } - "m_cLiveChildren" // int + "m_cNumMonsters" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "736" } - "m_iMaxLiveChildren" // int + "m_cLiveChildren" // int { "type" "integer" @@ -55,25 +46,25 @@ "mac" "740" } - "m_flGround" // float + "m_iMaxLiveChildren" // int { - "type" "float" + "type" "integer" "windows" "724" "linux" "744" "mac" "744" } - "m_fActive" // BOOL + "m_flGround" // float { - "type" "integer" + "type" "float" "windows" "728" "linux" "748" "mac" "748" } - "m_fFadeChildren" // BOOL + "m_fActive" // BOOL { "type" "integer" @@ -81,6 +72,15 @@ "linux" "752" "mac" "752" } + + "m_fFadeChildren" // BOOL + { + "type" "integer" + + "windows" "736" + "linux" "756" + "mac" "756" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cmortar.txt b/gamedata/common.games/entities.games/gearbox/offsets-cmortar.txt index e61e36134e..1fe1458f49 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cmortar.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cmortar.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cmortarshell.txt b/gamedata/common.games/entities.games/gearbox/offsets-cmortarshell.txt index daba6733d1..b1396f1db4 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cmortarshell.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cmortarshell.txt @@ -23,30 +23,21 @@ { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" - } - - "m_flIgniteTime" // float - { - "type" "float" - "windows" "716" "linux" "736" "mac" "736" } - "m_velocity" // int + "m_flIgniteTime" // float { - "type" "integer" + "type" "float" "windows" "720" "linux" "740" "mac" "740" } - "m_iSoundedOff" // int + "m_velocity" // int { "type" "integer" @@ -54,6 +45,15 @@ "linux" "744" "mac" "744" } + + "m_iSoundedOff" // int + { + "type" "integer" + + "windows" "728" + "linux" "748" + "mac" "748" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cnihilanth.txt b/gamedata/common.games/entities.games/gearbox/offsets-cnihilanth.txt index 5435e2d1ed..759b0632df 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cnihilanth.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cnihilanth.txt @@ -23,111 +23,102 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_flNextPainSound" // float { "type" "float" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_velocity" // Vector { "type" "vector" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_avelocity" // Vector { "type" "vector" - "windows" "728" - "linux" "748" - "mac" "748" + "windows" "732" + "linux" "752" + "mac" "752" } "m_vecTarget" // Vector { "type" "vector" - "windows" "740" - "linux" "760" - "mac" "760" + "windows" "744" + "linux" "764" + "mac" "764" } "m_posTarget" // Vector { "type" "vector" - "windows" "752" - "linux" "772" - "mac" "772" + "windows" "756" + "linux" "776" + "mac" "776" } "m_vecDesired" // Vector { "type" "vector" - "windows" "764" - "linux" "784" - "mac" "784" + "windows" "768" + "linux" "788" + "mac" "788" } "m_posDesired" // Vector { "type" "vector" - "windows" "776" - "linux" "796" - "mac" "796" + "windows" "780" + "linux" "800" + "mac" "800" } "m_flMinZ" // float { "type" "float" - "windows" "788" - "linux" "808" - "mac" "808" - } - - "m_flMaxZ" // float - { - "type" "float" - "windows" "792" "linux" "812" "mac" "812" } - "m_vecGoal" // Vector + "m_flMaxZ" // float { - "type" "vector" + "type" "float" "windows" "796" "linux" "816" "mac" "816" } - "m_flLastSeen" // float + "m_vecGoal" // Vector { - "type" "float" + "type" "vector" - "windows" "808" - "linux" "828" - "mac" "828" + "windows" "800" + "linux" "820" + "mac" "820" } - "m_flPrevSeen" // float + "m_flLastSeen" // float { "type" "float" @@ -136,16 +127,16 @@ "mac" "832" } - "m_irritation" // int + "m_flPrevSeen" // float { - "type" "integer" + "type" "float" "windows" "816" "linux" "836" "mac" "836" } - "m_iLevel" // int + "m_irritation" // int { "type" "integer" @@ -154,7 +145,7 @@ "mac" "840" } - "m_iTeleport" // int + "m_iLevel" // int { "type" "integer" @@ -163,50 +154,59 @@ "mac" "844" } - "m_hRecharger" // EHANDLE + "m_iTeleport" // int { - "type" "ehandle" + "type" "integer" "windows" "828" "linux" "848" "mac" "848" } + "m_hRecharger" // EHANDLE + { + "type" "ehandle" + + "windows" "832" + "linux" "852" + "mac" "852" + } + "m_hSphere" // EHANDLE[20] { "type" "ehandle" "size" "20" - "windows" "836" - "linux" "856" - "mac" "856" + "windows" "840" + "linux" "860" + "mac" "860" } "m_iActiveSpheres" // int { "type" "integer" - "windows" "996" - "linux" "1016" - "mac" "1016" + "windows" "1000" + "linux" "1020" + "mac" "1020" } "m_flAdj" // float { "type" "float" - "windows" "1000" - "linux" "1020" - "mac" "1020" + "windows" "1004" + "linux" "1024" + "mac" "1024" } "m_pBall" // CSprite* { "type" "classptr" - "windows" "1004" - "linux" "1024" - "mac" "1024" + "windows" "1008" + "linux" "1028" + "mac" "1028" } "m_szRechargerTarget" // char[64] @@ -214,9 +214,9 @@ "type" "string" "size" "64" - "windows" "1008" - "linux" "1028" - "mac" "1028" + "windows" "1012" + "linux" "1032" + "mac" "1032" } "m_szDrawUse" // char[64] @@ -224,9 +224,9 @@ "type" "string" "size" "64" - "windows" "1072" - "linux" "1092" - "mac" "1092" + "windows" "1076" + "linux" "1096" + "mac" "1096" } "m_szTeleportUse" // char[64] @@ -234,9 +234,9 @@ "type" "string" "size" "64" - "windows" "1136" - "linux" "1156" - "mac" "1156" + "windows" "1140" + "linux" "1160" + "mac" "1160" } "m_szTeleportTouch" // char[64] @@ -244,9 +244,9 @@ "type" "string" "size" "64" - "windows" "1200" - "linux" "1220" - "mac" "1220" + "windows" "1204" + "linux" "1224" + "mac" "1224" } "m_szDeadUse" // char[64] @@ -254,9 +254,9 @@ "type" "string" "size" "64" - "windows" "1264" - "linux" "1284" - "mac" "1284" + "windows" "1268" + "linux" "1288" + "mac" "1288" } "m_szDeadTouch" // char[64] @@ -264,27 +264,27 @@ "type" "string" "size" "64" - "windows" "1328" - "linux" "1348" - "mac" "1348" + "windows" "1332" + "linux" "1352" + "mac" "1352" } "m_flShootEnd" // float { "type" "float" - "windows" "1392" - "linux" "1412" - "mac" "1412" + "windows" "1396" + "linux" "1416" + "mac" "1416" } "m_flShootTime" // float { "type" "float" - "windows" "1396" - "linux" "1416" - "mac" "1416" + "windows" "1400" + "linux" "1420" + "mac" "1420" } "m_hFriend" // EHANDLE[3] @@ -292,9 +292,9 @@ "type" "ehandle" "size" "3" - "windows" "1400" - "linux" "1420" - "mac" "1420" + "windows" "1404" + "linux" "1424" + "mac" "1424" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cnihilanthhvr.txt b/gamedata/common.games/entities.games/gearbox/offsets-cnihilanthhvr.txt index f7858f2326..485e73797c 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cnihilanthhvr.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cnihilanthhvr.txt @@ -23,45 +23,45 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_vecIdeal" // Vector { "type" "vector" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_pNihilanth" // CNihilanth* { "type" "classptr" - "windows" "724" - "linux" "744" - "mac" "744" + "windows" "728" + "linux" "748" + "mac" "748" } "m_hTouch" // EHANDLE { "type" "ehandle" - "windows" "728" - "linux" "748" - "mac" "748" + "windows" "732" + "linux" "752" + "mac" "752" } "m_nFrames" // int { "type" "integer" - "windows" "736" - "linux" "756" - "mac" "756" + "windows" "740" + "linux" "760" + "mac" "760" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofallymonster.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofallymonster.txt index 9505a647bd..bd96dfbe4e 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofallymonster.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofallymonster.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_nSpeak" // int - { - "type" "integer" - "windows" "712" "linux" "732" "mac" "732" } - "m_voicePitch" // int + "m_nSpeak" // int { "type" "integer" @@ -46,35 +37,35 @@ "mac" "736" } - "m_szGrp" // const char*[18] + "m_voicePitch" // int { - "type" "stringptr" - "size" "18" + "type" "integer" "windows" "720" "linux" "740" "mac" "740" } - "m_useTime" // float + "m_szGrp" // const char*[18] { - "type" "float" + "type" "stringptr" + "size" "18" - "windows" "792" - "linux" "812" - "mac" "812" + "windows" "724" + "linux" "744" + "mac" "744" } - "m_iszUse" // int + "m_useTime" // float { - "type" "integer" + "type" "float" "windows" "796" "linux" "816" "mac" "816" } - "m_iszUnUse" // int + "m_iszUse" // int { "type" "integer" @@ -83,16 +74,16 @@ "mac" "820" } - "m_flLastSaidSmelled" // float + "m_iszUnUse" // int { - "type" "float" + "type" "integer" "windows" "804" "linux" "824" "mac" "824" } - "m_flStopTalkTime" // float + "m_flLastSaidSmelled" // float { "type" "float" @@ -101,14 +92,23 @@ "mac" "828" } - "m_hTalkTarget" // EHANDLE + "m_flStopTalkTime" // float { - "type" "ehandle" + "type" "float" "windows" "812" "linux" "832" "mac" "832" } + + "m_hTalkTarget" // EHANDLE + { + "type" "ehandle" + + "windows" "816" + "linux" "836" + "mac" "836" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofbabyvoltigore.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofbabyvoltigore.txt index 615334fe26..99ad738a2d 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofbabyvoltigore.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofbabyvoltigore.txt @@ -24,30 +24,21 @@ "type" "classptr" "size" "8" - "windows" "764" - "linux" "784" - "mac" "784" + "windows" "768" + "linux" "788" + "mac" "788" } "m_iBeams" // int { "type" "integer" - "windows" "796" - "linux" "816" - "mac" "816" - } - - "m_flNextBeamAttackCheck" // float - { - "type" "float" - "windows" "800" "linux" "820" "mac" "820" } - "m_flNextPainTime" // float + "m_flNextBeamAttackCheck" // float { "type" "float" @@ -56,7 +47,7 @@ "mac" "824" } - "m_flNextSpeakTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -65,7 +56,7 @@ "mac" "828" } - "m_flNextWordTime" // float + "m_flNextSpeakTime" // float { "type" "float" @@ -74,16 +65,16 @@ "mac" "832" } - "m_iLastWord" // int + "m_flNextWordTime" // float { - "type" "integer" + "type" "float" "windows" "816" "linux" "836" "mac" "836" } - "m_iBabyVoltigoreGibs" // int + "m_iLastWord" // int { "type" "integer" @@ -92,7 +83,7 @@ "mac" "840" } - "m_fDeathCharge" // BOOL + "m_iBabyVoltigoreGibs" // int { "type" "integer" @@ -101,14 +92,23 @@ "mac" "844" } - "m_flDeathStartTime" // float + "m_fDeathCharge" // BOOL { - "type" "float" + "type" "integer" "windows" "828" "linux" "848" "mac" "848" } + + "m_flDeathStartTime" // float + { + "type" "float" + + "windows" "832" + "linux" "852" + "mac" "852" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsapache.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsapache.txt index 108edf22dc..1c1ae8327b 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsapache.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsapache.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_flForce" // float - { - "type" "float" - "windows" "712" "linux" "732" "mac" "732" } - "m_flNextRocket" // float + "m_flForce" // float { "type" "float" @@ -46,88 +37,88 @@ "mac" "736" } - "m_vecTarget" // Vector + "m_flNextRocket" // float { - "type" "vector" + "type" "float" "windows" "720" "linux" "740" "mac" "740" } + "m_vecTarget" // Vector + { + "type" "vector" + + "windows" "724" + "linux" "744" + "mac" "744" + } + "m_posTarget" // Vector { "type" "vector" - "windows" "732" - "linux" "752" - "mac" "752" + "windows" "736" + "linux" "756" + "mac" "756" } "m_vecDesired" // Vector { "type" "vector" - "windows" "744" - "linux" "764" - "mac" "764" + "windows" "748" + "linux" "768" + "mac" "768" } "m_posDesired" // Vector { "type" "vector" - "windows" "756" - "linux" "776" - "mac" "776" + "windows" "760" + "linux" "780" + "mac" "780" } "m_vecGoal" // Vector { "type" "vector" - "windows" "768" - "linux" "788" - "mac" "788" + "windows" "772" + "linux" "792" + "mac" "792" } "m_angGun" // Vector { "type" "vector" - "windows" "780" - "linux" "800" - "mac" "800" + "windows" "784" + "linux" "804" + "mac" "804" } "m_flLastSeen" // float { "type" "float" - "windows" "792" - "linux" "812" - "mac" "812" - } - - "m_flPrevSeen" // float - { - "type" "float" - "windows" "796" "linux" "816" "mac" "816" } - "m_iSoundState" // int + "m_flPrevSeen" // float { - "type" "integer" + "type" "float" "windows" "800" "linux" "820" "mac" "820" } - "m_iSpriteTexture" // int + "m_iSoundState" // int { "type" "integer" @@ -136,7 +127,7 @@ "mac" "824" } - "m_iExplode" // int + "m_iSpriteTexture" // int { "type" "integer" @@ -145,7 +136,7 @@ "mac" "828" } - "m_iBodyGibs" // int + "m_iExplode" // int { "type" "integer" @@ -154,32 +145,41 @@ "mac" "832" } - "m_flGoalSpeed" // float + "m_iBodyGibs" // int { - "type" "float" + "type" "integer" "windows" "816" "linux" "836" "mac" "836" } - "m_iDoSmokePuff" // int + "m_flGoalSpeed" // float { - "type" "integer" + "type" "float" "windows" "820" "linux" "840" "mac" "840" } - "m_pBeam" // CBeam* + "m_iDoSmokePuff" // int { - "type" "classptr" + "type" "integer" "windows" "824" "linux" "844" "mac" "844" } + + "m_pBeam" // CBeam* + { + "type" "classptr" + + "windows" "828" + "linux" "848" + "mac" "848" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsapachehvr.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsapachehvr.txt index 27494b40fa..98ddb5fb1b 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsapachehvr.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsapachehvr.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_vecForward" // Vector { "type" "vector" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsosprey.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsosprey.txt index 10aea9f3e9..4b05dadb8a 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsosprey.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofblackopsosprey.txt @@ -23,102 +23,93 @@ { "type" "classptr" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_vel1" // Vector { "type" "vector" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_vel2" // Vector { "type" "vector" - "windows" "724" - "linux" "744" - "mac" "744" + "windows" "728" + "linux" "748" + "mac" "748" } "m_pos1" // Vector { "type" "vector" - "windows" "736" - "linux" "756" - "mac" "756" + "windows" "740" + "linux" "760" + "mac" "760" } "m_pos2" // Vector { "type" "vector" - "windows" "748" - "linux" "768" - "mac" "768" + "windows" "752" + "linux" "772" + "mac" "772" } "m_ang1" // Vector { "type" "vector" - "windows" "760" - "linux" "780" - "mac" "780" + "windows" "764" + "linux" "784" + "mac" "784" } "m_ang2" // Vector { "type" "vector" - "windows" "772" - "linux" "792" - "mac" "792" + "windows" "776" + "linux" "796" + "mac" "796" } "m_startTime" // float { "type" "float" - "windows" "784" - "linux" "804" - "mac" "804" - } - - "m_dTime" // float - { - "type" "float" - "windows" "788" "linux" "808" "mac" "808" } - "m_velocity" // Vector + "m_dTime" // float { - "type" "vector" + "type" "float" "windows" "792" "linux" "812" "mac" "812" } - "m_flIdealtilt" // float + "m_velocity" // Vector { - "type" "float" + "type" "vector" - "windows" "804" - "linux" "824" - "mac" "824" + "windows" "796" + "linux" "816" + "mac" "816" } - "m_flRotortilt" // float + "m_flIdealtilt" // float { "type" "float" @@ -127,7 +118,7 @@ "mac" "828" } - "m_flRightHealth" // float + "m_flRotortilt" // float { "type" "float" @@ -136,7 +127,7 @@ "mac" "832" } - "m_flLeftHealth" // float + "m_flRightHealth" // float { "type" "float" @@ -145,33 +136,42 @@ "mac" "836" } - "m_iUnits" // int + "m_flLeftHealth" // float { - "type" "integer" + "type" "float" "windows" "820" "linux" "840" "mac" "840" } - "m_hGrunt" // EHANDLE[24] + "m_iUnits" // int { - "type" "ehandle" - "size" "24" + "type" "integer" "windows" "824" "linux" "844" "mac" "844" } + "m_hGrunt" // EHANDLE[24] + { + "type" "ehandle" + "size" "24" + + "windows" "828" + "linux" "848" + "mac" "848" + } + "m_vecOrigin" // Vector[24] { "type" "vector" "size" "24" - "windows" "1016" - "linux" "1036" - "mac" "1036" + "windows" "1020" + "linux" "1040" + "mac" "1040" } "m_hRepel" // EHANDLE[4] @@ -179,30 +179,21 @@ "type" "ehandle" "size" "4" - "windows" "1304" - "linux" "1324" - "mac" "1324" + "windows" "1308" + "linux" "1328" + "mac" "1328" } "m_iSoundState" // int { "type" "integer" - "windows" "1336" - "linux" "1356" - "mac" "1356" - } - - "m_iSpriteTexture" // int - { - "type" "integer" - "windows" "1340" "linux" "1360" "mac" "1360" } - "m_iPitch" // int + "m_iSpriteTexture" // int { "type" "integer" @@ -211,7 +202,7 @@ "mac" "1364" } - "m_iExplode" // int + "m_iPitch" // int { "type" "integer" @@ -220,7 +211,7 @@ "mac" "1368" } - "m_iTailGibs" // int + "m_iExplode" // int { "type" "integer" @@ -229,7 +220,7 @@ "mac" "1372" } - "m_iBodyGibs" // int + "m_iTailGibs" // int { "type" "integer" @@ -238,7 +229,7 @@ "mac" "1376" } - "m_iEngineGibs" // int + "m_iBodyGibs" // int { "type" "integer" @@ -247,7 +238,7 @@ "mac" "1380" } - "m_iDoLeftSmokePuff" // int + "m_iEngineGibs" // int { "type" "integer" @@ -256,7 +247,7 @@ "mac" "1384" } - "m_iDoRightSmokePuff" // int + "m_iDoLeftSmokePuff" // int { "type" "integer" @@ -264,6 +255,15 @@ "linux" "1388" "mac" "1388" } + + "m_iDoRightSmokePuff" // int + { + "type" "integer" + + "windows" "1372" + "linux" "1392" + "mac" "1392" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofgeneworm.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofgeneworm.txt index f33c89b27c..4f2a994127 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofgeneworm.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofgeneworm.txt @@ -23,30 +23,21 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_posTarget" // Vector - { - "type" "vector" - "windows" "712" "linux" "732" "mac" "732" } - "m_flLastSeen" // float + "m_posTarget" // Vector { - "type" "float" + "type" "vector" - "windows" "724" - "linux" "744" - "mac" "744" + "windows" "716" + "linux" "736" + "mac" "736" } - "m_flPrevSeen" // float + "m_flLastSeen" // float { "type" "float" @@ -55,34 +46,34 @@ "mac" "748" } - "m_pCloud" // COFGeneWormCloud* + "m_flPrevSeen" // float { - "type" "classptr" + "type" "float" "windows" "732" "linux" "752" "mac" "752" } - "m_iWasHit" // int + "m_pCloud" // COFGeneWormCloud* { - "type" "integer" + "type" "classptr" "windows" "736" "linux" "756" "mac" "756" } - "m_flTakeHitTime" // float + "m_iWasHit" // int { - "type" "float" + "type" "integer" "windows" "740" "linux" "760" "mac" "760" } - "m_flHitTime" // float + "m_flTakeHitTime" // float { "type" "float" @@ -91,7 +82,7 @@ "mac" "764" } - "m_flNextMeleeTime" // float + "m_flHitTime" // float { "type" "float" @@ -100,7 +91,7 @@ "mac" "768" } - "m_flNextRangeTime" // float + "m_flNextMeleeTime" // float { "type" "float" @@ -109,16 +100,16 @@ "mac" "772" } - "m_fRightEyeHit" // BOOL + "m_flNextRangeTime" // float { - "type" "integer" + "type" "float" "windows" "756" "linux" "776" "mac" "776" } - "m_fLeftEyeHit" // BOOL + "m_fRightEyeHit" // BOOL { "type" "integer" @@ -127,7 +118,7 @@ "mac" "780" } - "m_fGetMad" // BOOL + "m_fLeftEyeHit" // BOOL { "type" "integer" @@ -136,7 +127,7 @@ "mac" "784" } - "m_fOrificeHit" // BOOL + "m_fGetMad" // BOOL { "type" "integer" @@ -145,52 +136,52 @@ "mac" "788" } - "m_flOrificeOpenTime" // float + "m_fOrificeHit" // BOOL { - "type" "float" + "type" "integer" "windows" "772" "linux" "792" "mac" "792" } - "m_orificeGlow" // COFGeneWormSpawn* + "m_flOrificeOpenTime" // float { - "type" "classptr" + "type" "float" "windows" "776" "linux" "796" "mac" "796" } - "m_fSpawningTrooper" // BOOL + "m_orificeGlow" // COFGeneWormSpawn* { - "type" "integer" + "type" "classptr" "windows" "780" "linux" "800" "mac" "800" } - "m_flSpawnTrooperTime" // float + "m_fSpawningTrooper" // BOOL { - "type" "float" + "type" "integer" "windows" "784" "linux" "804" "mac" "804" } - "m_iHitTimes" // int + "m_flSpawnTrooperTime" // float { - "type" "integer" + "type" "float" "windows" "788" "linux" "808" "mac" "808" } - "m_iMaxHitTimes" // int + "m_iHitTimes" // int { "type" "integer" @@ -199,16 +190,16 @@ "mac" "812" } - "m_offsetBeam" // float + "m_iMaxHitTimes" // int { - "type" "float" + "type" "integer" "windows" "796" "linux" "816" "mac" "816" } - "m_lenBeam" // float + "m_offsetBeam" // float { "type" "float" @@ -217,43 +208,43 @@ "mac" "820" } - "m_posBeam" // Vector + "m_lenBeam" // float { - "type" "vector" + "type" "float" "windows" "804" "linux" "824" "mac" "824" } - "m_vecBeam" // Vector + "m_posBeam" // Vector { "type" "vector" - "windows" "816" - "linux" "836" - "mac" "836" + "windows" "808" + "linux" "828" + "mac" "828" } - "m_angleBeam" // Vector + "m_vecBeam" // Vector { "type" "vector" - "windows" "828" - "linux" "848" - "mac" "848" + "windows" "820" + "linux" "840" + "mac" "840" } - "m_flBeamExpireTime" // float + "m_angleBeam" // Vector { - "type" "float" + "type" "vector" - "windows" "840" - "linux" "860" - "mac" "860" + "windows" "832" + "linux" "852" + "mac" "852" } - "m_flBeamDir" // float + "m_flBeamExpireTime" // float { "type" "float" @@ -262,59 +253,68 @@ "mac" "864" } - "m_fSpitting" // BOOL + "m_flBeamDir" // float { - "type" "integer" + "type" "float" "windows" "848" "linux" "868" "mac" "868" } - "m_flSpitStartTime" // float + "m_fSpitting" // BOOL { - "type" "float" + "type" "integer" "windows" "852" "linux" "872" "mac" "872" } - "m_fActivated" // BOOL + "m_flSpitStartTime" // float { - "type" "integer" + "type" "float" "windows" "856" "linux" "876" "mac" "876" } - "m_flDeathStart" // float + "m_fActivated" // BOOL { - "type" "float" + "type" "integer" "windows" "860" "linux" "880" "mac" "880" } - "m_fHasEntered" // BOOL + "m_flDeathStart" // float { - "type" "integer" + "type" "float" "windows" "864" "linux" "884" "mac" "884" } - "m_flMadDelayTime" // float + "m_fHasEntered" // BOOL { - "type" "float" + "type" "integer" "windows" "868" "linux" "888" "mac" "888" } + + "m_flMadDelayTime" // float + { + "type" "float" + + "windows" "872" + "linux" "892" + "mac" "892" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofgonome.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofgonome.txt index ea24cd1d61..d2e436cf39 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofgonome.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofgonome.txt @@ -23,36 +23,36 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_flNextThrowTime" // float { "type" "float" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_pGonomeGuts" // COFGonomeGuts* { "type" "classptr" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_fPlayerLocked" // BOOL { "type" "integer" - "windows" "720" - "linux" "740" - "mac" "740" + "windows" "724" + "linux" "744" + "mac" "744" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofmedically.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofmedically.txt index 1d7b429e7d..9e0e27aac7 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofmedically.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofmedically.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "896" - "linux" "916" - "mac" "916" - } - - "m_flPlayerDamage" // float - { - "type" "float" - "windows" "900" "linux" "920" "mac" "920" } - "m_flNextGrenadeCheck" // float + "m_flPlayerDamage" // float { "type" "float" @@ -46,7 +37,7 @@ "mac" "924" } - "m_flNextPainTime" // float + "m_flNextGrenadeCheck" // float { "type" "float" @@ -55,7 +46,7 @@ "mac" "928" } - "m_flLastEnemySightTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -64,25 +55,25 @@ "mac" "932" } - "m_vecTossVelocity" // Vector + "m_flLastEnemySightTime" // float { - "type" "vector" + "type" "float" "windows" "916" "linux" "936" "mac" "936" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "928" - "linux" "948" - "mac" "948" + "windows" "920" + "linux" "940" + "mac" "940" } - "m_fStanding" // BOOL + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -91,7 +82,7 @@ "mac" "952" } - "m_fFirstEncounter" // BOOL + "m_fStanding" // BOOL { "type" "integer" @@ -100,7 +91,7 @@ "mac" "956" } - "m_cClipSize" // int + "m_fFirstEncounter" // BOOL { "type" "integer" @@ -109,7 +100,7 @@ "mac" "960" } - "m_iHealCharge" // int + "m_cClipSize" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "964" } - "m_fUseHealing" // BOOL + "m_iHealCharge" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "968" } - "m_fHealing" // BOOL + "m_fUseHealing" // BOOL { "type" "integer" @@ -136,34 +127,34 @@ "mac" "972" } - "m_flLastUseTime" // float + "m_fHealing" // BOOL { - "type" "float" + "type" "integer" "windows" "956" "linux" "976" "mac" "976" } - "m_hNewTargetEnt" // EHANDLE + "m_flLastUseTime" // float { - "type" "ehandle" + "type" "float" "windows" "960" "linux" "980" "mac" "980" } - "m_fQueueFollow" // BOOL + "m_hNewTargetEnt" // EHANDLE { - "type" "integer" + "type" "ehandle" - "windows" "968" - "linux" "988" - "mac" "988" + "windows" "964" + "linux" "984" + "mac" "984" } - "m_fHealAudioPlaying" // BOOL + "m_fQueueFollow" // BOOL { "type" "integer" @@ -172,25 +163,25 @@ "mac" "992" } - "m_flFollowCheckTime" // float + "m_fHealAudioPlaying" // BOOL { - "type" "float" + "type" "integer" "windows" "976" "linux" "996" "mac" "996" } - "m_fFollowChecking" // BOOL + "m_flFollowCheckTime" // float { - "type" "integer" + "type" "float" "windows" "980" "linux" "1000" "mac" "1000" } - "m_fFollowChecked" // BOOL + "m_fFollowChecking" // BOOL { "type" "integer" @@ -199,25 +190,25 @@ "mac" "1004" } - "m_flLastRejectAudio" // float + "m_fFollowChecked" // BOOL { - "type" "float" + "type" "integer" "windows" "988" "linux" "1008" "mac" "1008" } - "m_iBlackOrWhite" // int + "m_flLastRejectAudio" // float { - "type" "integer" + "type" "float" "windows" "992" "linux" "1012" "mac" "1012" } - "m_fGunHolstered" // BOOL + "m_iBlackOrWhite" // int { "type" "integer" @@ -226,7 +217,7 @@ "mac" "1016" } - "m_fHypoHolstered" // BOOL + "m_fGunHolstered" // BOOL { "type" "integer" @@ -235,7 +226,7 @@ "mac" "1020" } - "m_fHealActive" // BOOL + "m_fHypoHolstered" // BOOL { "type" "integer" @@ -244,7 +235,7 @@ "mac" "1024" } - "m_iWeaponIdx" // int + "m_fHealActive" // BOOL { "type" "integer" @@ -253,25 +244,25 @@ "mac" "1028" } - "m_flLastShot" // float + "m_iWeaponIdx" // int { - "type" "float" + "type" "integer" "windows" "1012" "linux" "1032" "mac" "1032" } - "m_iBrassShell" // int + "m_flLastShot" // float { - "type" "integer" + "type" "float" "windows" "1016" "linux" "1036" "mac" "1036" } - "m_iSentence" // int + "m_iBrassShell" // int { "type" "integer" @@ -279,6 +270,15 @@ "linux" "1040" "mac" "1040" } + + "m_iSentence" // int + { + "type" "integer" + + "windows" "1024" + "linux" "1044" + "mac" "1044" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofmedicallyrepel.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofmedicallyrepel.txt index a6ba1f8180..4a8cf3f23d 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofmedicallyrepel.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofmedicallyrepel.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_iBlackOrWhite" // int - { - "type" "integer" - "windows" "712" "linux" "732" "mac" "732" } - "m_iszUse" // int + "m_iBlackOrWhite" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "736" } - "m_iszUnUse" // int + "m_iszUse" // int { "type" "integer" @@ -54,6 +45,15 @@ "linux" "740" "mac" "740" } + + "m_iszUnUse" // int + { + "type" "integer" + + "windows" "724" + "linux" "744" + "mac" "744" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofpitworm.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofpitworm.txt index c5d0a66444..7aa3d7e9a1 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofpitworm.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofpitworm.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_spikeTime" // float - { - "type" "float" - "windows" "712" "linux" "732" "mac" "732" } - "m_painSoundTime" // float + "m_spikeTime" // float { "type" "float" @@ -46,25 +37,25 @@ "mac" "736" } - "m_slowMode" // Activity + "m_painSoundTime" // float { - "type" "integer" + "type" "float" "windows" "720" "linux" "740" "mac" "740" } - "m_slowTime" // float + "m_slowMode" // Activity { - "type" "float" + "type" "integer" "windows" "724" "linux" "744" "mac" "744" } - "m_flHeadYaw" // float + "m_slowTime" // float { "type" "float" @@ -73,7 +64,7 @@ "mac" "748" } - "m_flHeadPitch" // float + "m_flHeadYaw" // float { "type" "float" @@ -82,7 +73,7 @@ "mac" "752" } - "m_flIdealHeadYaw" // float + "m_flHeadPitch" // float { "type" "float" @@ -91,7 +82,7 @@ "mac" "756" } - "m_flIdealHeadPitch" // float + "m_flIdealHeadYaw" // float { "type" "float" @@ -100,79 +91,79 @@ "mac" "760" } - "m_posTarget" // Vector + "m_flIdealHeadPitch" // float { - "type" "vector" + "type" "float" "windows" "744" "linux" "764" "mac" "764" } + "m_posTarget" // Vector + { + "type" "vector" + + "windows" "748" + "linux" "768" + "mac" "768" + } + "m_vecTarget" // Vector { "type" "vector" - "windows" "756" - "linux" "776" - "mac" "776" + "windows" "760" + "linux" "780" + "mac" "780" } "m_pBeam" // CBeam* { "type" "classptr" - "windows" "768" - "linux" "788" - "mac" "788" + "windows" "772" + "linux" "792" + "mac" "792" } "m_posBeam" // Vector { "type" "vector" - "windows" "772" - "linux" "792" - "mac" "792" + "windows" "776" + "linux" "796" + "mac" "796" } "m_vecBeam" // Vector { "type" "vector" - "windows" "784" - "linux" "804" - "mac" "804" + "windows" "788" + "linux" "808" + "mac" "808" } "m_angleBeam" // Vector { "type" "vector" - "windows" "796" - "linux" "816" - "mac" "816" + "windows" "800" + "linux" "820" + "mac" "820" } "m_offsetBeam" // float { "type" "float" - "windows" "808" - "linux" "828" - "mac" "828" - } - - "m_flBeamExpireTime" // float - { - "type" "float" - "windows" "812" "linux" "832" "mac" "832" } - "m_flBeamDir" // float + "m_flBeamExpireTime" // float { "type" "float" @@ -181,14 +172,23 @@ "mac" "836" } - "m_NextActivity" // Activity + "m_flBeamDir" // float { - "type" "integer" + "type" "float" "windows" "820" "linux" "840" "mac" "840" } + + "m_NextActivity" // Activity + { + "type" "integer" + + "windows" "824" + "linux" "844" + "mac" "844" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofpitwormup.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofpitwormup.txt index bbd1524ada..4c00c86827 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofpitwormup.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofpitwormup.txt @@ -23,102 +23,93 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_vecTarget" // Vector { "type" "vector" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_posTarget" // Vector { "type" "vector" - "windows" "724" - "linux" "744" - "mac" "744" + "windows" "728" + "linux" "748" + "mac" "748" } "m_vecDesired" // Vector { "type" "vector" - "windows" "736" - "linux" "756" - "mac" "756" + "windows" "740" + "linux" "760" + "mac" "760" } "m_posDesired" // Vector { "type" "vector" - "windows" "748" - "linux" "768" - "mac" "768" + "windows" "752" + "linux" "772" + "mac" "772" } "m_offsetBeam" // float { "type" "float" - "windows" "760" - "linux" "780" - "mac" "780" + "windows" "764" + "linux" "784" + "mac" "784" } "m_posBeam" // Vector { "type" "vector" - "windows" "764" - "linux" "784" - "mac" "784" + "windows" "768" + "linux" "788" + "mac" "788" } "m_vecBeam" // Vector { "type" "vector" - "windows" "776" - "linux" "796" - "mac" "796" + "windows" "780" + "linux" "800" + "mac" "800" } "m_angleBeam" // Vector { "type" "vector" - "windows" "788" - "linux" "808" - "mac" "808" + "windows" "792" + "linux" "812" + "mac" "812" } "m_flBeamExpireTime" // float { "type" "float" - "windows" "800" - "linux" "820" - "mac" "820" - } - - "m_flBeamDir" // float - { - "type" "float" - "windows" "804" "linux" "824" "mac" "824" } - "m_flTorsoYaw" // float + "m_flBeamDir" // float { "type" "float" @@ -127,7 +118,7 @@ "mac" "828" } - "m_flHeadYaw" // float + "m_flTorsoYaw" // float { "type" "float" @@ -136,7 +127,7 @@ "mac" "832" } - "m_flHeadPitch" // float + "m_flHeadYaw" // float { "type" "float" @@ -145,7 +136,7 @@ "mac" "836" } - "m_flIdealTorsoYaw" // float + "m_flHeadPitch" // float { "type" "float" @@ -154,7 +145,7 @@ "mac" "840" } - "m_flIdealHeadYaw" // float + "m_flIdealTorsoYaw" // float { "type" "float" @@ -163,7 +154,7 @@ "mac" "844" } - "m_flIdealHeadPitch" // float + "m_flIdealHeadYaw" // float { "type" "float" @@ -172,36 +163,36 @@ "mac" "848" } - "m_flLevels" // float[4] + "m_flIdealHeadPitch" // float { "type" "float" - "size" "4" "windows" "832" "linux" "852" "mac" "852" } - "m_flTargetLevels" // float[4] + "m_flLevels" // float[4] { "type" "float" "size" "4" - "windows" "848" - "linux" "868" - "mac" "868" + "windows" "836" + "linux" "856" + "mac" "856" } - "m_flLastSeen" // float + "m_flTargetLevels" // float[4] { "type" "float" + "size" "4" - "windows" "864" - "linux" "884" - "mac" "884" + "windows" "852" + "linux" "872" + "mac" "872" } - "m_flPrevSeen" // float + "m_flLastSeen" // float { "type" "float" @@ -210,34 +201,34 @@ "mac" "888" } - "m_iLevel" // int + "m_flPrevSeen" // float { - "type" "integer" + "type" "float" "windows" "872" "linux" "892" "mac" "892" } - "m_flLevelSpeed" // float + "m_iLevel" // int { - "type" "float" + "type" "integer" "windows" "876" "linux" "896" "mac" "896" } - "m_pBeam" // CBeam* + "m_flLevelSpeed" // float { - "type" "classptr" + "type" "float" "windows" "880" "linux" "900" "mac" "900" } - "m_pSprite" // CSprite* + "m_pBeam" // CBeam* { "type" "classptr" @@ -246,16 +237,16 @@ "mac" "904" } - "m_fAttacking" // BOOL + "m_pSprite" // CSprite* { - "type" "integer" + "type" "classptr" "windows" "888" "linux" "908" "mac" "908" } - "m_fLockHeight" // BOOL + "m_fAttacking" // BOOL { "type" "integer" @@ -264,7 +255,7 @@ "mac" "912" } - "m_fLockYaw" // BOOL + "m_fLockHeight" // BOOL { "type" "integer" @@ -273,7 +264,7 @@ "mac" "916" } - "m_iWasHit" // int + "m_fLockYaw" // BOOL { "type" "integer" @@ -282,16 +273,16 @@ "mac" "920" } - "m_flTakeHitTime" // float + "m_iWasHit" // int { - "type" "float" + "type" "integer" "windows" "904" "linux" "924" "mac" "924" } - "m_flHitTime" // float + "m_flTakeHitTime" // float { "type" "float" @@ -300,7 +291,7 @@ "mac" "928" } - "m_flNextMeleeTime" // float + "m_flHitTime" // float { "type" "float" @@ -309,7 +300,7 @@ "mac" "932" } - "m_flNextRangeTime" // float + "m_flNextMeleeTime" // float { "type" "float" @@ -318,7 +309,7 @@ "mac" "936" } - "m_flDeathStartTime" // float + "m_flNextRangeTime" // float { "type" "float" @@ -327,16 +318,16 @@ "mac" "940" } - "m_fFirstSighting" // BOOL + "m_flDeathStartTime" // float { - "type" "integer" + "type" "float" "windows" "924" "linux" "944" "mac" "944" } - "m_fTopLevelLocked" // BOOL + "m_fFirstSighting" // BOOL { "type" "integer" @@ -345,16 +336,16 @@ "mac" "948" } - "m_flLastBlinkTime" // float + "m_fTopLevelLocked" // BOOL { - "type" "float" + "type" "integer" "windows" "932" "linux" "952" "mac" "952" } - "m_flLastBlinkInterval" // float + "m_flLastBlinkTime" // float { "type" "float" @@ -363,7 +354,7 @@ "mac" "956" } - "m_flLastEventTime" // float + "m_flLastBlinkInterval" // float { "type" "float" @@ -371,6 +362,15 @@ "linux" "960" "mac" "960" } + + "m_flLastEventTime" // float + { + "type" "float" + + "windows" "944" + "linux" "964" + "mac" "964" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofshockroach.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofshockroach.txt index 22cd45c759..adb4c52f0a 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofshockroach.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofshockroach.txt @@ -23,18 +23,18 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_fRoachSolid" // BOOL { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofskeleton.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofskeleton.txt index 6366c6c9fa..1c8e7db9c8 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofskeleton.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofskeleton.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofsquadtalkmonster.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofsquadtalkmonster.txt index 38d84b6014..21eca11dd9 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofsquadtalkmonster.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofsquadtalkmonster.txt @@ -23,9 +23,9 @@ { "type" "ehandle" - "windows" "820" - "linux" "840" - "mac" "840" + "windows" "824" + "linux" "844" + "mac" "844" } "m_hSquadMember" // EHANDLE[4] @@ -33,57 +33,48 @@ "type" "ehandle" "size" "4" - "windows" "828" - "linux" "848" - "mac" "848" + "windows" "832" + "linux" "852" + "mac" "852" } "m_afSquadSlots" // int { "type" "integer" - "windows" "860" - "linux" "880" - "mac" "880" - } - - "m_flLastEnemySightTime" // float - { - "type" "float" - "windows" "864" "linux" "884" "mac" "884" } - "m_fEnemyEluded" // BOOL + "m_flLastEnemySightTime" // float { - "type" "integer" + "type" "float" "windows" "868" "linux" "888" "mac" "888" } - "m_hWaitMedic" // EHANDLE + "m_fEnemyEluded" // BOOL { - "type" "ehandle" + "type" "integer" "windows" "872" "linux" "892" "mac" "892" } - "m_flMedicWaitTime" // float + "m_hWaitMedic" // EHANDLE { - "type" "float" + "type" "ehandle" - "windows" "880" - "linux" "900" - "mac" "900" + "windows" "876" + "linux" "896" + "mac" "896" } - "m_flLastHitByPlayer" // float + "m_flMedicWaitTime" // float { "type" "float" @@ -92,16 +83,16 @@ "mac" "904" } - "m_iPlayerHits" // int + "m_flLastHitByPlayer" // float { - "type" "integer" + "type" "float" "windows" "888" "linux" "908" "mac" "908" } - "m_iMySlot" // int + "m_iPlayerHits" // int { "type" "integer" @@ -109,6 +100,15 @@ "linux" "912" "mac" "912" } + + "m_iMySlot" // int + { + "type" "integer" + + "windows" "896" + "linux" "916" + "mac" "916" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-coftorchally.txt b/gamedata/common.games/entities.games/gearbox/offsets-coftorchally.txt index 608dc778f6..5b040aa7dd 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-coftorchally.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-coftorchally.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "896" - "linux" "916" - "mac" "916" - } - - "m_painTime" // float - { - "type" "float" - "windows" "900" "linux" "920" "mac" "920" } - "m_checkAttackTime" // float + "m_painTime" // float { "type" "float" @@ -46,25 +37,25 @@ "mac" "924" } - "m_lastAttackCheck" // BOOL + "m_checkAttackTime" // float { - "type" "integer" + "type" "float" "windows" "908" "linux" "928" "mac" "928" } - "m_flPlayerDamage" // float + "m_lastAttackCheck" // BOOL { - "type" "float" + "type" "integer" "windows" "912" "linux" "932" "mac" "932" } - "m_flNextGrenadeCheck" // float + "m_flPlayerDamage" // float { "type" "float" @@ -73,7 +64,7 @@ "mac" "936" } - "m_flNextPainTime" // float + "m_flNextGrenadeCheck" // float { "type" "float" @@ -82,7 +73,7 @@ "mac" "940" } - "m_flLastEnemySightTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -91,25 +82,25 @@ "mac" "944" } - "m_vecTossVelocity" // Vector + "m_flLastEnemySightTime" // float { - "type" "vector" + "type" "float" "windows" "928" "linux" "948" "mac" "948" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "940" - "linux" "960" - "mac" "960" + "windows" "932" + "linux" "952" + "mac" "952" } - "m_fStanding" // BOOL + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -118,7 +109,7 @@ "mac" "964" } - "m_fFirstEncounter" // BOOL + "m_fStanding" // BOOL { "type" "integer" @@ -127,7 +118,7 @@ "mac" "968" } - "m_cClipSize" // int + "m_fFirstEncounter" // BOOL { "type" "integer" @@ -136,7 +127,7 @@ "mac" "972" } - "m_fUseTorch" // BOOL + "m_cClipSize" // int { "type" "integer" @@ -145,25 +136,25 @@ "mac" "976" } - "m_hNewTargetEnt" // EHANDLE + "m_fUseTorch" // BOOL { - "type" "ehandle" + "type" "integer" "windows" "960" "linux" "980" "mac" "980" } - "m_iBlackOrWhite" // int + "m_hNewTargetEnt" // EHANDLE { - "type" "integer" + "type" "ehandle" - "windows" "968" - "linux" "988" - "mac" "988" + "windows" "964" + "linux" "984" + "mac" "984" } - "m_fGunHolstered" // BOOL + "m_iBlackOrWhite" // int { "type" "integer" @@ -172,7 +163,7 @@ "mac" "992" } - "m_fTorchHolstered" // BOOL + "m_fGunHolstered" // BOOL { "type" "integer" @@ -181,7 +172,7 @@ "mac" "996" } - "m_fTorchActive" // BOOL + "m_fTorchHolstered" // BOOL { "type" "integer" @@ -190,32 +181,41 @@ "mac" "1000" } - "m_pTorchBeam" // CBeam* + "m_fTorchActive" // BOOL { - "type" "classptr" + "type" "integer" "windows" "984" "linux" "1004" "mac" "1004" } - "m_flLastShot" // float + "m_pTorchBeam" // CBeam* { - "type" "float" + "type" "classptr" "windows" "988" "linux" "1008" "mac" "1008" } - "m_iSentence" // int + "m_flLastShot" // float { - "type" "integer" + "type" "float" "windows" "992" "linux" "1012" "mac" "1012" } + + "m_iSentence" // int + { + "type" "integer" + + "windows" "996" + "linux" "1016" + "mac" "1016" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-coftorchallyrepel.txt b/gamedata/common.games/entities.games/gearbox/offsets-coftorchallyrepel.txt index 7eec991c22..ea8fb3a750 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-coftorchallyrepel.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-coftorchallyrepel.txt @@ -23,27 +23,27 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_iszUse" // int { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_iszUnUse" // int { "type" "integer" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cofvoltigore.txt b/gamedata/common.games/entities.games/gearbox/offsets-cofvoltigore.txt index 7164b1ce83..e7feb8e441 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cofvoltigore.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cofvoltigore.txt @@ -24,30 +24,21 @@ "type" "classptr" "size" "8" - "windows" "764" - "linux" "784" - "mac" "784" + "windows" "768" + "linux" "788" + "mac" "788" } "m_iBeams" // int { "type" "integer" - "windows" "796" - "linux" "816" - "mac" "816" - } - - "m_flNextBeamAttackCheck" // float - { - "type" "float" - "windows" "800" "linux" "820" "mac" "820" } - "m_flNextPainTime" // float + "m_flNextBeamAttackCheck" // float { "type" "float" @@ -56,7 +47,7 @@ "mac" "824" } - "m_flNextSpeakTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -65,7 +56,7 @@ "mac" "828" } - "m_flNextWordTime" // float + "m_flNextSpeakTime" // float { "type" "float" @@ -74,34 +65,34 @@ "mac" "832" } - "m_iLastWord" // int + "m_flNextWordTime" // float { - "type" "integer" + "type" "float" "windows" "816" "linux" "836" "mac" "836" } - "m_pChargedBolt" // COFChargedBolt* + "m_iLastWord" // int { - "type" "classptr" + "type" "integer" "windows" "820" "linux" "840" "mac" "840" } - "m_iVoltigoreGibs" // int + "m_pChargedBolt" // COFChargedBolt* { - "type" "integer" + "type" "classptr" "windows" "824" "linux" "844" "mac" "844" } - "m_fDeathCharge" // BOOL + "m_iVoltigoreGibs" // int { "type" "integer" @@ -110,14 +101,23 @@ "mac" "848" } - "m_flDeathStartTime" // float + "m_fDeathCharge" // BOOL { - "type" "float" + "type" "integer" "windows" "832" "linux" "852" "mac" "852" } + + "m_flDeathStartTime" // float + { + "type" "float" + + "windows" "836" + "linux" "856" + "mac" "856" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cop4mortar.txt b/gamedata/common.games/entities.games/gearbox/offsets-cop4mortar.txt index d27d871828..aae7c9ddb8 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cop4mortar.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cop4mortar.txt @@ -23,39 +23,30 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "d_y" // int - { - "type" "integer" - "windows" "712" "linux" "732" "mac" "732" } - "m_lastupdate" // float + "d_y" // int { - "type" "float" + "type" "integer" "windows" "716" "linux" "736" "mac" "736" } - "m_playsound" // int + "m_lastupdate" // float { - "type" "integer" + "type" "float" "windows" "720" "linux" "740" "mac" "740" } - "m_updated" // int + "m_playsound" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "744" } - "m_direction" // int + "m_updated" // int { "type" "integer" @@ -73,34 +64,34 @@ "mac" "748" } - "m_start" // Vector + "m_direction" // int { - "type" "vector" + "type" "integer" "windows" "732" "linux" "752" "mac" "752" } - "m_end" // Vector + "m_start" // Vector { "type" "vector" - "windows" "744" - "linux" "764" - "mac" "764" + "windows" "736" + "linux" "756" + "mac" "756" } - "m_velocity" // int + "m_end" // Vector { - "type" "integer" + "type" "vector" - "windows" "756" - "linux" "776" - "mac" "776" + "windows" "748" + "linux" "768" + "mac" "768" } - "m_hmin" // int + "m_velocity" // int { "type" "integer" @@ -109,7 +100,7 @@ "mac" "780" } - "m_hmax" // int + "m_hmin" // int { "type" "integer" @@ -118,16 +109,16 @@ "mac" "784" } - "m_fireLast" // float + "m_hmax" // int { - "type" "float" + "type" "integer" "windows" "768" "linux" "788" "mac" "788" } - "m_maxRange" // float + "m_fireLast" // float { "type" "float" @@ -136,7 +127,7 @@ "mac" "792" } - "m_minRange" // float + "m_maxRange" // float { "type" "float" @@ -145,25 +136,25 @@ "mac" "796" } - "m_iEnemyType" // int + "m_minRange" // float { - "type" "integer" + "type" "float" "windows" "780" "linux" "800" "mac" "800" } - "m_fireDelay" // float + "m_iEnemyType" // int { - "type" "float" + "type" "integer" "windows" "784" "linux" "804" "mac" "804" } - "m_trackDelay" // float + "m_fireDelay" // float { "type" "float" @@ -172,49 +163,58 @@ "mac" "808" } - "m_tracking" // BOOL + "m_trackDelay" // float { - "type" "integer" + "type" "float" "windows" "792" "linux" "812" "mac" "812" } - "m_zeroYaw" // float + "m_tracking" // BOOL { - "type" "float" + "type" "integer" "windows" "796" "linux" "816" "mac" "816" } - "m_vGunAngle" // Vector + "m_zeroYaw" // float { - "type" "vector" + "type" "float" "windows" "800" "linux" "820" "mac" "820" } + "m_vGunAngle" // Vector + { + "type" "vector" + + "windows" "804" + "linux" "824" + "mac" "824" + } + "m_vIdealGunVector" // Vector { "type" "vector" - "windows" "812" - "linux" "832" - "mac" "832" + "windows" "816" + "linux" "836" + "mac" "836" } "m_vIdealGunAngle" // Vector { "type" "vector" - "windows" "824" - "linux" "844" - "mac" "844" + "windows" "828" + "linux" "848" + "mac" "848" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cosprey.txt b/gamedata/common.games/entities.games/gearbox/offsets-cosprey.txt index f26311dd7c..2765090a65 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cosprey.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cosprey.txt @@ -23,102 +23,93 @@ { "type" "classptr" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_vel1" // Vector { "type" "vector" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_vel2" // Vector { "type" "vector" - "windows" "724" - "linux" "744" - "mac" "744" + "windows" "728" + "linux" "748" + "mac" "748" } "m_pos1" // Vector { "type" "vector" - "windows" "736" - "linux" "756" - "mac" "756" + "windows" "740" + "linux" "760" + "mac" "760" } "m_pos2" // Vector { "type" "vector" - "windows" "748" - "linux" "768" - "mac" "768" + "windows" "752" + "linux" "772" + "mac" "772" } "m_ang1" // Vector { "type" "vector" - "windows" "760" - "linux" "780" - "mac" "780" + "windows" "764" + "linux" "784" + "mac" "784" } "m_ang2" // Vector { "type" "vector" - "windows" "772" - "linux" "792" - "mac" "792" + "windows" "776" + "linux" "796" + "mac" "796" } "m_startTime" // float { "type" "float" - "windows" "784" - "linux" "804" - "mac" "804" - } - - "m_dTime" // float - { - "type" "float" - "windows" "788" "linux" "808" "mac" "808" } - "m_velocity" // Vector + "m_dTime" // float { - "type" "vector" + "type" "float" "windows" "792" "linux" "812" "mac" "812" } - "m_flIdealtilt" // float + "m_velocity" // Vector { - "type" "float" + "type" "vector" - "windows" "804" - "linux" "824" - "mac" "824" + "windows" "796" + "linux" "816" + "mac" "816" } - "m_flRotortilt" // float + "m_flIdealtilt" // float { "type" "float" @@ -127,7 +118,7 @@ "mac" "828" } - "m_flRightHealth" // float + "m_flRotortilt" // float { "type" "float" @@ -136,7 +127,7 @@ "mac" "832" } - "m_flLeftHealth" // float + "m_flRightHealth" // float { "type" "float" @@ -145,33 +136,42 @@ "mac" "836" } - "m_iUnits" // int + "m_flLeftHealth" // float { - "type" "integer" + "type" "float" "windows" "820" "linux" "840" "mac" "840" } - "m_hGrunt" // EHANDLE[24] + "m_iUnits" // int { - "type" "ehandle" - "size" "24" + "type" "integer" "windows" "824" "linux" "844" "mac" "844" } + "m_hGrunt" // EHANDLE[24] + { + "type" "ehandle" + "size" "24" + + "windows" "828" + "linux" "848" + "mac" "848" + } + "m_vecOrigin" // Vector[24] { "type" "vector" "size" "24" - "windows" "1016" - "linux" "1036" - "mac" "1036" + "windows" "1020" + "linux" "1040" + "mac" "1040" } "m_hRepel" // EHANDLE[4] @@ -179,30 +179,21 @@ "type" "ehandle" "size" "4" - "windows" "1304" - "linux" "1324" - "mac" "1324" + "windows" "1308" + "linux" "1328" + "mac" "1328" } "m_iSoundState" // int { "type" "integer" - "windows" "1336" - "linux" "1356" - "mac" "1356" - } - - "m_iSpriteTexture" // int - { - "type" "integer" - "windows" "1340" "linux" "1360" "mac" "1360" } - "m_iPitch" // int + "m_iSpriteTexture" // int { "type" "integer" @@ -211,7 +202,7 @@ "mac" "1364" } - "m_iExplode" // int + "m_iPitch" // int { "type" "integer" @@ -220,7 +211,7 @@ "mac" "1368" } - "m_iTailGibs" // int + "m_iExplode" // int { "type" "integer" @@ -229,7 +220,7 @@ "mac" "1372" } - "m_iBodyGibs" // int + "m_iTailGibs" // int { "type" "integer" @@ -238,7 +229,7 @@ "mac" "1376" } - "m_iEngineGibs" // int + "m_iBodyGibs" // int { "type" "integer" @@ -247,7 +238,7 @@ "mac" "1380" } - "m_iDoLeftSmokePuff" // int + "m_iEngineGibs" // int { "type" "integer" @@ -256,7 +247,7 @@ "mac" "1384" } - "m_iDoRightSmokePuff" // int + "m_iDoLeftSmokePuff" // int { "type" "integer" @@ -264,6 +255,15 @@ "linux" "1388" "mac" "1388" } + + "m_iDoRightSmokePuff" // int + { + "type" "integer" + + "windows" "1372" + "linux" "1392" + "mac" "1392" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cotis.txt b/gamedata/common.games/entities.games/gearbox/offsets-cotis.txt index 79bc3ff4d3..00ed0c196a 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cotis.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cotis.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "824" - "linux" "844" - "mac" "844" - } - - "m_painTime" // float - { - "type" "float" - "windows" "828" "linux" "848" "mac" "848" } - "m_checkAttackTime" // float + "m_painTime" // float { "type" "float" @@ -46,16 +37,16 @@ "mac" "852" } - "m_lastAttackCheck" // BOOL + "m_checkAttackTime" // float { - "type" "integer" + "type" "float" "windows" "836" "linux" "856" "mac" "856" } - "m_iOtisBody" // int + "m_lastAttackCheck" // BOOL { "type" "integer" @@ -64,7 +55,7 @@ "mac" "860" } - "m_iOtisHead" // int + "m_iOtisBody" // int { "type" "integer" @@ -73,14 +64,23 @@ "mac" "864" } - "m_flPlayerDamage" // float + "m_iOtisHead" // int { - "type" "float" + "type" "integer" "windows" "848" "linux" "868" "mac" "868" } + + "m_flPlayerDamage" // float + { + "type" "float" + + "windows" "852" + "linux" "872" + "mac" "872" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cpenguingrenade.txt b/gamedata/common.games/entities.games/gearbox/offsets-cpenguingrenade.txt index c953cfc8b3..0928287c70 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cpenguingrenade.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cpenguingrenade.txt @@ -23,63 +23,63 @@ { "type" "float" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_vecTarget" // Vector { "type" "vector" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_flNextHunt" // float { "type" "float" - "windows" "728" - "linux" "748" - "mac" "748" + "windows" "732" + "linux" "752" + "mac" "752" } "m_flNextHit" // float { "type" "float" - "windows" "732" - "linux" "752" - "mac" "752" + "windows" "736" + "linux" "756" + "mac" "756" } "m_posPrev" // Vector { "type" "vector" - "windows" "736" - "linux" "756" - "mac" "756" + "windows" "740" + "linux" "760" + "mac" "760" } "m_hOwner" // EHANDLE { "type" "ehandle" - "windows" "748" - "linux" "768" - "mac" "768" + "windows" "752" + "linux" "772" + "mac" "772" } "m_iMyClass" // int { "type" "integer" - "windows" "756" - "linux" "776" - "mac" "776" + "windows" "760" + "linux" "780" + "mac" "780" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cpitdrone.txt b/gamedata/common.games/entities.games/gearbox/offsets-cpitdrone.txt index 986006ab83..71e35e89fa 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cpitdrone.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cpitdrone.txt @@ -23,36 +23,36 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_flNextSpikeTime" // float { "type" "float" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_iInitialAmmo" // int { "type" "integer" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_flNextEatTime" // float { "type" "float" - "windows" "720" - "linux" "740" - "mac" "740" + "windows" "724" + "linux" "744" + "mac" "744" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-crecruit.txt b/gamedata/common.games/entities.games/gearbox/offsets-crecruit.txt index 23e98a2ab7..4a533b24be 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-crecruit.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-crecruit.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "824" - "linux" "844" - "mac" "844" - } - - "m_painTime" // float - { - "type" "float" - "windows" "828" "linux" "848" "mac" "848" } - "m_checkAttackTime" // float + "m_painTime" // float { "type" "float" @@ -46,23 +37,32 @@ "mac" "852" } - "m_lastAttackCheck" // BOOL + "m_checkAttackTime" // float { - "type" "integer" + "type" "float" "windows" "836" "linux" "856" "mac" "856" } - "m_flPlayerDamage" // float + "m_lastAttackCheck" // BOOL { - "type" "float" + "type" "integer" "windows" "840" "linux" "860" "mac" "860" } + + "m_flPlayerDamage" // float + { + "type" "float" + + "windows" "844" + "linux" "864" + "mac" "864" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-croach.txt b/gamedata/common.games/entities.games/gearbox/offsets-croach.txt index 0d7f4f7d72..f81469bb44 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-croach.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-croach.txt @@ -23,30 +23,21 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_flNextSmellTime" // float - { - "type" "float" - "windows" "712" "linux" "732" "mac" "732" } - "m_fLightHacked" // BOOL + "m_flNextSmellTime" // float { - "type" "integer" + "type" "float" "windows" "716" "linux" "736" "mac" "736" } - "m_iMode" // int + "m_fLightHacked" // BOOL { "type" "integer" @@ -54,6 +45,15 @@ "linux" "740" "mac" "740" } + + "m_iMode" // int + { + "type" "integer" + + "windows" "724" + "linux" "744" + "mac" "744" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-crpgrocket.txt b/gamedata/common.games/entities.games/gearbox/offsets-crpgrocket.txt index 051f6e31b6..09964d3bce 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-crpgrocket.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-crpgrocket.txt @@ -23,27 +23,27 @@ { "type" "integer" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_flIgniteTime" // float { "type" "float" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_pLauncher" // CRpg* { "type" "classptr" - "windows" "720" - "linux" "740" - "mac" "740" + "windows" "724" + "linux" "744" + "mac" "744" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cscientist.txt b/gamedata/common.games/entities.games/gearbox/offsets-cscientist.txt index 804ccd703a..5bebd5a9f3 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cscientist.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cscientist.txt @@ -23,27 +23,27 @@ { "type" "float" - "windows" "824" - "linux" "844" - "mac" "844" + "windows" "828" + "linux" "848" + "mac" "848" } "m_healTime" // float { "type" "float" - "windows" "828" - "linux" "848" - "mac" "848" + "windows" "832" + "linux" "852" + "mac" "852" } "m_fearTime" // float { "type" "float" - "windows" "832" - "linux" "852" - "mac" "852" + "windows" "836" + "linux" "856" + "mac" "856" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cshockbeam.txt b/gamedata/common.games/entities.games/gearbox/offsets-cshockbeam.txt index c9133ac447..2b5eae0b63 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cshockbeam.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cshockbeam.txt @@ -23,21 +23,12 @@ { "type" "classptr" - "windows" "712" - "linux" "732" - "mac" "732" - } - - "m_pBeam2" // CBeam* - { - "type" "classptr" - "windows" "716" "linux" "736" "mac" "736" } - "m_pSprite" // CSprite* + "m_pBeam2" // CBeam* { "type" "classptr" @@ -46,14 +37,23 @@ "mac" "740" } - "m_iBeams" // int + "m_pSprite" // CSprite* { - "type" "integer" + "type" "classptr" "windows" "724" "linux" "744" "mac" "744" } + + "m_iBeams" // int + { + "type" "integer" + + "windows" "728" + "linux" "748" + "mac" "748" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cshocktrooper.txt b/gamedata/common.games/entities.games/gearbox/offsets-cshocktrooper.txt index e9fff22707..0a449108e4 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cshocktrooper.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cshocktrooper.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "764" - "linux" "784" - "mac" "784" - } - - "m_flNextPainTime" // float - { - "type" "float" - "windows" "768" "linux" "788" "mac" "788" } - "m_flLastEnemySightTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -46,25 +37,25 @@ "mac" "792" } - "m_vecTossVelocity" // Vector + "m_flLastEnemySightTime" // float { - "type" "vector" + "type" "float" "windows" "776" "linux" "796" "mac" "796" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "788" - "linux" "808" - "mac" "808" + "windows" "780" + "linux" "800" + "mac" "800" } - "m_fStanding" // BOOL + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -73,7 +64,7 @@ "mac" "812" } - "m_fFirstEncounter" // BOOL + "m_fStanding" // BOOL { "type" "integer" @@ -82,7 +73,7 @@ "mac" "816" } - "m_cClipSize" // int + "m_fFirstEncounter" // BOOL { "type" "integer" @@ -91,25 +82,25 @@ "mac" "820" } - "m_flLastShot" // float + "m_cClipSize" // int { - "type" "float" + "type" "integer" "windows" "804" "linux" "824" "mac" "824" } - "m_voicePitch" // int + "m_flLastShot" // float { - "type" "integer" + "type" "float" "windows" "808" "linux" "828" "mac" "828" } - "m_iBrassShell" // int + "m_voicePitch" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "832" } - "m_iShotgunShell" // int + "m_iBrassShell" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "836" } - "m_iSentence" // int + "m_iShotgunShell" // int { "type" "integer" @@ -136,16 +127,16 @@ "mac" "840" } - "m_flLastChargeTime" // float + "m_iSentence" // int { - "type" "float" + "type" "integer" "windows" "824" "linux" "844" "mac" "844" } - "m_flLastBlinkTime" // float + "m_flLastChargeTime" // float { "type" "float" @@ -154,7 +145,7 @@ "mac" "848" } - "m_flLastBlinkInterval" // float + "m_flLastBlinkTime" // float { "type" "float" @@ -162,6 +153,15 @@ "linux" "852" "mac" "852" } + + "m_flLastBlinkInterval" // float + { + "type" "float" + + "windows" "836" + "linux" "856" + "mac" "856" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cshocktrooperrepel.txt b/gamedata/common.games/entities.games/gearbox/offsets-cshocktrooperrepel.txt index c21862c9ea..18950160b0 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cshocktrooperrepel.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cshocktrooperrepel.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-csittingcleansuitscientist.txt b/gamedata/common.games/entities.games/gearbox/offsets-csittingcleansuitscientist.txt index 6182295461..0f6a956a3b 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-csittingcleansuitscientist.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-csittingcleansuitscientist.txt @@ -23,27 +23,27 @@ { "type" "integer" - "windows" "836" - "linux" "856" - "mac" "856" + "windows" "840" + "linux" "860" + "mac" "860" } "m_headTurn" // int { "type" "integer" - "windows" "840" - "linux" "860" - "mac" "860" + "windows" "844" + "linux" "864" + "mac" "864" } "m_flResponseDelay" // float { "type" "float" - "windows" "844" - "linux" "864" - "mac" "864" + "windows" "848" + "linux" "868" + "mac" "868" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-csittingscientist.txt b/gamedata/common.games/entities.games/gearbox/offsets-csittingscientist.txt index fd93479cf5..962fc20edd 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-csittingscientist.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-csittingscientist.txt @@ -23,27 +23,27 @@ { "type" "integer" - "windows" "836" - "linux" "856" - "mac" "856" + "windows" "840" + "linux" "860" + "mac" "860" } "m_headTurn" // int { "type" "integer" - "windows" "840" - "linux" "860" - "mac" "860" + "windows" "844" + "linux" "864" + "mac" "864" } "m_flResponseDelay" // float { "type" "float" - "windows" "844" - "linux" "864" - "mac" "864" + "windows" "848" + "linux" "868" + "mac" "868" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cspore.txt b/gamedata/common.games/entities.games/gearbox/offsets-cspore.txt index 3b98170148..403bc9e2db 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cspore.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cspore.txt @@ -23,21 +23,12 @@ { "type" "classptr" - "windows" "712" - "linux" "732" - "mac" "732" - } - - "m_iTrail" // int - { - "type" "integer" - "windows" "716" "linux" "736" "mac" "736" } - "m_iBlow" // int + "m_iTrail" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "740" } - "m_iBlowSmall" // int + "m_iBlow" // int { "type" "integer" @@ -55,25 +46,25 @@ "mac" "744" } - "m_flIgniteTime" // float + "m_iBlowSmall" // int { - "type" "float" + "type" "integer" "windows" "728" "linux" "748" "mac" "748" } - "m_iSporeType" // int + "m_flIgniteTime" // float { - "type" "integer" + "type" "float" "windows" "732" "linux" "752" "mac" "752" } - "m_iSpitSprite" // int + "m_iSporeType" // int { "type" "integer" @@ -82,7 +73,7 @@ "mac" "756" } - "m_iGibCount" // int + "m_iSpitSprite" // int { "type" "integer" @@ -91,7 +82,7 @@ "mac" "760" } - "m_bIsAI" // BOOL + "m_iGibCount" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "764" } - "m_bPuked" // BOOL + "m_bIsAI" // BOOL { "type" "integer" @@ -109,14 +100,23 @@ "mac" "768" } - "m_flSoundDelay" // float + "m_bPuked" // BOOL { - "type" "float" + "type" "integer" "windows" "752" "linux" "772" "mac" "772" } + + "m_flSoundDelay" // float + { + "type" "float" + + "windows" "756" + "linux" "776" + "mac" "776" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-csquadmonster.txt b/gamedata/common.games/entities.games/gearbox/offsets-csquadmonster.txt index 88ae7262d2..585a03f33f 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-csquadmonster.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-csquadmonster.txt @@ -23,9 +23,9 @@ { "type" "ehandle" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_hSquadMember" // EHANDLE[4] @@ -33,39 +33,30 @@ "type" "ehandle" "size" "4" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_afSquadSlots" // int { "type" "integer" - "windows" "748" - "linux" "768" - "mac" "768" - } - - "m_flLastEnemySightTime" // float - { - "type" "float" - "windows" "752" "linux" "772" "mac" "772" } - "m_fEnemyEluded" // BOOL + "m_flLastEnemySightTime" // float { - "type" "integer" + "type" "float" "windows" "756" "linux" "776" "mac" "776" } - "m_iMySlot" // int + "m_fEnemyEluded" // BOOL { "type" "integer" @@ -73,6 +64,15 @@ "linux" "780" "mac" "780" } + + "m_iMySlot" // int + { + "type" "integer" + + "windows" "764" + "linux" "784" + "mac" "784" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-csqueakgrenade.txt b/gamedata/common.games/entities.games/gearbox/offsets-csqueakgrenade.txt index 8559369cd1..07e2603054 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-csqueakgrenade.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-csqueakgrenade.txt @@ -23,63 +23,63 @@ { "type" "float" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_vecTarget" // Vector { "type" "vector" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_flNextHunt" // float { "type" "float" - "windows" "728" - "linux" "748" - "mac" "748" + "windows" "732" + "linux" "752" + "mac" "752" } "m_flNextHit" // float { "type" "float" - "windows" "732" - "linux" "752" - "mac" "752" + "windows" "736" + "linux" "756" + "mac" "756" } "m_posPrev" // Vector { "type" "vector" - "windows" "736" - "linux" "756" - "mac" "756" + "windows" "740" + "linux" "760" + "mac" "760" } "m_hOwner" // EHANDLE { "type" "ehandle" - "windows" "748" - "linux" "768" - "mac" "768" + "windows" "752" + "linux" "772" + "mac" "772" } "m_iMyClass" // int { "type" "integer" - "windows" "756" - "linux" "776" - "mac" "776" + "windows" "760" + "linux" "780" + "mac" "780" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-ctalkmonster.txt b/gamedata/common.games/entities.games/gearbox/offsets-ctalkmonster.txt index 1352a7fb9b..1f82c95802 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-ctalkmonster.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-ctalkmonster.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_nSpeak" // int - { - "type" "integer" - "windows" "712" "linux" "732" "mac" "732" } - "m_voicePitch" // int + "m_nSpeak" // int { "type" "integer" @@ -46,35 +37,35 @@ "mac" "736" } - "m_szGrp" // const char*[18] + "m_voicePitch" // int { - "type" "stringptr" - "size" "18" + "type" "integer" "windows" "720" "linux" "740" "mac" "740" } - "m_useTime" // float + "m_szGrp" // const char*[18] { - "type" "float" + "type" "stringptr" + "size" "18" - "windows" "792" - "linux" "812" - "mac" "812" + "windows" "724" + "linux" "744" + "mac" "744" } - "m_iszUse" // int + "m_useTime" // float { - "type" "integer" + "type" "float" "windows" "796" "linux" "816" "mac" "816" } - "m_iszUnUse" // int + "m_iszUse" // int { "type" "integer" @@ -83,16 +74,16 @@ "mac" "820" } - "m_flLastSaidSmelled" // float + "m_iszUnUse" // int { - "type" "float" + "type" "integer" "windows" "804" "linux" "824" "mac" "824" } - "m_flStopTalkTime" // float + "m_flLastSaidSmelled" // float { "type" "float" @@ -101,23 +92,32 @@ "mac" "828" } - "m_fStartSuspicious" // BOOL + "m_flStopTalkTime" // float { - "type" "integer" + "type" "float" "windows" "812" "linux" "832" "mac" "832" } - "m_hTalkTarget" // EHANDLE + "m_fStartSuspicious" // BOOL { - "type" "ehandle" + "type" "integer" "windows" "816" "linux" "836" "mac" "836" } + + "m_hTalkTarget" // EHANDLE + { + "type" "ehandle" + + "windows" "820" + "linux" "840" + "mac" "840" + } } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-ctentacle.txt b/gamedata/common.games/entities.games/gearbox/offsets-ctentacle.txt index 6c367960a7..7cd425c72c 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-ctentacle.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-ctentacle.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" - } - - "m_iGoalAnim" // int - { - "type" "integer" - "windows" "712" "linux" "732" "mac" "732" } - "m_iLevel" // int + "m_iGoalAnim" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "736" } - "m_iDir" // int + "m_iLevel" // int { "type" "integer" @@ -55,16 +46,16 @@ "mac" "740" } - "m_flFramerateAdj" // float + "m_iDir" // int { - "type" "float" + "type" "integer" "windows" "724" "linux" "744" "mac" "744" } - "m_flSoundYaw" // float + "m_flFramerateAdj" // float { "type" "float" @@ -73,25 +64,25 @@ "mac" "748" } - "m_iSoundLevel" // int + "m_flSoundYaw" // float { - "type" "integer" + "type" "float" "windows" "732" "linux" "752" "mac" "752" } - "m_flSoundTime" // float + "m_iSoundLevel" // int { - "type" "float" + "type" "integer" "windows" "736" "linux" "756" "mac" "756" } - "m_flSoundRadius" // float + "m_flSoundTime" // float { "type" "float" @@ -100,25 +91,25 @@ "mac" "760" } - "m_iHitDmg" // int + "m_flSoundRadius" // float { - "type" "integer" + "type" "float" "windows" "744" "linux" "764" "mac" "764" } - "m_flHitTime" // float + "m_iHitDmg" // int { - "type" "float" + "type" "integer" "windows" "748" "linux" "768" "mac" "768" } - "m_flTapRadius" // float + "m_flHitTime" // float { "type" "float" @@ -127,7 +118,7 @@ "mac" "772" } - "m_flNextSong" // float + "m_flTapRadius" // float { "type" "float" @@ -136,7 +127,7 @@ "mac" "776" } - "m_flMaxYaw" // float + "m_flNextSong" // float { "type" "float" @@ -145,31 +136,40 @@ "mac" "780" } - "m_iTapSound" // int + "m_flMaxYaw" // float { - "type" "integer" + "type" "float" "windows" "764" "linux" "784" "mac" "784" } - "m_vecPrevSound" // Vector + "m_iTapSound" // int { - "type" "vector" + "type" "integer" "windows" "768" "linux" "788" "mac" "788" } + "m_vecPrevSound" // Vector + { + "type" "vector" + + "windows" "772" + "linux" "792" + "mac" "792" + } + "m_flPrevSoundTime" // float { "type" "float" - "windows" "780" - "linux" "800" - "mac" "800" + "windows" "784" + "linux" "804" + "mac" "804" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-ctesthull.txt b/gamedata/common.games/entities.games/gearbox/offsets-ctesthull.txt index 2246d458d1..d45ec166e7 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-ctesthull.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-ctesthull.txt @@ -23,9 +23,9 @@ { "type" "vector" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-ctripminegrenade.txt b/gamedata/common.games/entities.games/gearbox/offsets-ctripminegrenade.txt index e853991844..c35ecc573c 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-ctripminegrenade.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-ctripminegrenade.txt @@ -23,81 +23,81 @@ { "type" "float" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_vecDir" // Vector { "type" "vector" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_vecEnd" // Vector { "type" "vector" - "windows" "728" - "linux" "748" - "mac" "748" + "windows" "732" + "linux" "752" + "mac" "752" } "m_flBeamLength" // float { "type" "float" - "windows" "740" - "linux" "760" - "mac" "760" + "windows" "744" + "linux" "764" + "mac" "764" } "m_hOwner" // EHANDLE { "type" "ehandle" - "windows" "744" - "linux" "764" - "mac" "764" + "windows" "748" + "linux" "768" + "mac" "768" } "m_pBeam" // CBeam* { "type" "classptr" - "windows" "752" - "linux" "772" - "mac" "772" + "windows" "756" + "linux" "776" + "mac" "776" } "m_posOwner" // Vector { "type" "vector" - "windows" "756" - "linux" "776" - "mac" "776" + "windows" "760" + "linux" "780" + "mac" "780" } "m_angleOwner" // Vector { "type" "vector" - "windows" "768" - "linux" "788" - "mac" "788" + "windows" "772" + "linux" "792" + "mac" "792" } "m_pRealOwner" // edict_t* { "type" "edict" - "windows" "780" - "linux" "800" - "mac" "800" + "windows" "784" + "linux" "804" + "mac" "804" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cturret.txt b/gamedata/common.games/entities.games/gearbox/offsets-cturret.txt index 1e835130f7..c2dc7c6d04 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cturret.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cturret.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "820" - "linux" "840" - "mac" "840" + "windows" "824" + "linux" "844" + "mac" "844" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-cwreckage.txt b/gamedata/common.games/entities.games/gearbox/offsets-cwreckage.txt index 848bec22c0..5be51f6739 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-cwreckage.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-cwreckage.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-czombie.txt b/gamedata/common.games/entities.games/gearbox/offsets-czombie.txt index d7aeb3df47..d7a9f831f7 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-czombie.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-czombie.txt @@ -23,9 +23,9 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-czombiebarney.txt b/gamedata/common.games/entities.games/gearbox/offsets-czombiebarney.txt index d97067af7d..e4d68bb251 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-czombiebarney.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-czombiebarney.txt @@ -23,9 +23,9 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/gearbox/offsets-czombiesoldier.txt b/gamedata/common.games/entities.games/gearbox/offsets-czombiesoldier.txt index 1c6c4219e0..9d10cc3767 100644 --- a/gamedata/common.games/entities.games/gearbox/offsets-czombiesoldier.txt +++ b/gamedata/common.games/entities.games/gearbox/offsets-czombiesoldier.txt @@ -23,9 +23,9 @@ { "type" "float" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cairtank.txt b/gamedata/common.games/entities.games/tfc/offsets-cairtank.txt index 9feb39a712..124afc46d1 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cairtank.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cairtank.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1728" - "linux" "1748" - "mac" "1748" + "windows" "1732" + "linux" "1752" + "mac" "1752" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cbasemonster.txt b/gamedata/common.games/entities.games/tfc/offsets-cbasemonster.txt index 9ab1b4092c..690e6a3894 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cbasemonster.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cbasemonster.txt @@ -428,6 +428,15 @@ "linux" "1716" "mac" "1716" } + + "m_flLastYawTime" // float + { + "type" "float" + + "windows" "1700" + "linux" "1720" + "mac" "1720" + } } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cbaseplayer.txt b/gamedata/common.games/entities.games/tfc/offsets-cbaseplayer.txt index f3fc2fe98b..a90f77d8f7 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cbaseplayer.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cbaseplayer.txt @@ -23,30 +23,21 @@ { "type" "ehandle" - "windows" "1700" - "linux" "1720" - "mac" "1720" + "windows" "1704" + "linux" "1724" + "mac" "1724" } "m_flNextObserverInput" // float { "type" "float" - "windows" "1708" - "linux" "1728" - "mac" "1728" - } - - "m_iObserverWeapon" // int - { - "type" "integer" - "windows" "1712" "linux" "1732" "mac" "1732" } - "m_iObserverLastMode" // int + "m_iObserverWeapon" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "1736" } - "random_seed" // int + "m_iObserverLastMode" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "1740" } - "m_iPlayerSound" // int + "random_seed" // int { "type" "integer" @@ -73,7 +64,7 @@ "mac" "1744" } - "m_iTargetVolume" // int + "m_iPlayerSound" // int { "type" "integer" @@ -82,7 +73,7 @@ "mac" "1748" } - "m_iWeaponVolume" // int + "m_iTargetVolume" // int { "type" "integer" @@ -91,7 +82,7 @@ "mac" "1752" } - "m_iExtraSoundTypes" // int + "m_iWeaponVolume" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "1756" } - "m_iWeaponFlash" // int + "m_iExtraSoundTypes" // int { "type" "integer" @@ -109,16 +100,16 @@ "mac" "1760" } - "m_flStopExtraSoundTime" // float + "m_iWeaponFlash" // int { - "type" "float" + "type" "integer" "windows" "1744" "linux" "1764" "mac" "1764" } - "m_flFlashLightTime" // float + "m_flStopExtraSoundTime" // float { "type" "float" @@ -127,16 +118,16 @@ "mac" "1768" } - "m_iFlashBattery" // int + "m_flFlashLightTime" // float { - "type" "integer" + "type" "float" "windows" "1752" "linux" "1772" "mac" "1772" } - "m_afButtonLast" // int + "m_iFlashBattery" // int { "type" "integer" @@ -145,7 +136,7 @@ "mac" "1776" } - "m_afButtonPressed" // int + "m_afButtonLast" // int { "type" "integer" @@ -154,7 +145,7 @@ "mac" "1780" } - "m_afButtonReleased" // int + "m_afButtonPressed" // int { "type" "integer" @@ -163,25 +154,25 @@ "mac" "1784" } - "m_pentSndLast" // edict_t* + "m_afButtonReleased" // int { - "type" "edict" + "type" "integer" "windows" "1768" "linux" "1788" "mac" "1788" } - "m_flSndRoomtype" // float + "m_pentSndLast" // edict_t* { - "type" "float" + "type" "edict" "windows" "1772" "linux" "1792" "mac" "1792" } - "m_flSndRange" // float + "m_flSndRoomtype" // float { "type" "float" @@ -190,7 +181,7 @@ "mac" "1796" } - "m_flFallVelocity" // float + "m_flSndRange" // float { "type" "float" @@ -199,26 +190,26 @@ "mac" "1800" } - "m_rgItems" // int[5] + "m_flFallVelocity" // float { - "type" "integer" - "size" "5" + "type" "float" "windows" "1784" "linux" "1804" "mac" "1804" } - "m_fKnownItem" // int + "m_rgItems" // int[5] { "type" "integer" + "size" "5" - "windows" "1804" - "linux" "1824" - "mac" "1824" + "windows" "1788" + "linux" "1808" + "mac" "1808" } - "m_fNewAmmo" // int + "m_fKnownItem" // int { "type" "integer" @@ -227,26 +218,26 @@ "mac" "1828" } - "m_afPhysicsFlags" // unsigned int + "m_fNewAmmo" // int { "type" "integer" - "unsigned" "1" "windows" "1812" "linux" "1832" "mac" "1832" } - "m_fNextSuicideTime" // float + "m_afPhysicsFlags" // unsigned int { - "type" "float" + "type" "integer" + "unsigned" "1" "windows" "1816" "linux" "1836" "mac" "1836" } - "m_fDontPackItemsUntil" // float + "m_fNextSuicideTime" // float { "type" "float" @@ -255,7 +246,7 @@ "mac" "1840" } - "m_fNextTeamOrClassChange" // float + "m_fDontPackItemsUntil" // float { "type" "float" @@ -264,7 +255,7 @@ "mac" "1844" } - "m_flTimeStepSound" // float + "m_fNextTeamOrClassChange" // float { "type" "float" @@ -273,7 +264,7 @@ "mac" "1848" } - "m_flTimeWeaponIdle" // float + "m_flTimeStepSound" // float { "type" "float" @@ -282,7 +273,7 @@ "mac" "1852" } - "m_flSwimTime" // float + "m_flTimeWeaponIdle" // float { "type" "float" @@ -291,7 +282,7 @@ "mac" "1856" } - "m_flDuckTime" // float + "m_flSwimTime" // float { "type" "float" @@ -300,7 +291,7 @@ "mac" "1860" } - "m_flWallJumpTime" // float + "m_flDuckTime" // float { "type" "float" @@ -309,7 +300,7 @@ "mac" "1864" } - "m_flSuitUpdate" // float + "m_flWallJumpTime" // float { "type" "float" @@ -318,64 +309,64 @@ "mac" "1868" } - "m_rgSuitPlayList" // int[4] + "m_flSuitUpdate" // float { - "type" "integer" - "size" "4" + "type" "float" "windows" "1852" "linux" "1872" "mac" "1872" } - "m_iSuitPlayNext" // int + "m_rgSuitPlayList" // int[4] { "type" "integer" + "size" "4" - "windows" "1868" - "linux" "1888" - "mac" "1888" + "windows" "1856" + "linux" "1876" + "mac" "1876" } - "m_rgiSuitNoRepeat" // int[32] + "m_iSuitPlayNext" // int { "type" "integer" - "size" "32" "windows" "1872" "linux" "1892" "mac" "1892" } - "m_rgflSuitNoRepeatTime" // float[32] + "m_rgiSuitNoRepeat" // int[32] { - "type" "float" + "type" "integer" "size" "32" - "windows" "2000" - "linux" "2020" - "mac" "2020" + "windows" "1876" + "linux" "1896" + "mac" "1896" } - "m_lastDamageAmount" // int + "m_rgflSuitNoRepeatTime" // float[32] { - "type" "integer" + "type" "float" + "size" "32" - "windows" "2128" - "linux" "2148" - "mac" "2148" + "windows" "2004" + "linux" "2024" + "mac" "2024" } - "m_tbdPrev" // float + "m_lastDamageAmount" // int { - "type" "float" + "type" "integer" "windows" "2132" "linux" "2152" "mac" "2152" } - "m_flgeigerRange" // float + "m_tbdPrev" // float { "type" "float" @@ -384,7 +375,7 @@ "mac" "2156" } - "m_flgeigerDelay" // float + "m_flgeigerRange" // float { "type" "float" @@ -393,16 +384,16 @@ "mac" "2160" } - "m_igeigerRangePrev" // int + "m_flgeigerDelay" // float { - "type" "integer" + "type" "float" "windows" "2144" "linux" "2164" "mac" "2164" } - "m_iStepLeft" // int + "m_igeigerRangePrev" // int { "type" "integer" @@ -411,35 +402,35 @@ "mac" "2168" } - "m_szTextureName" // char[13] + "m_iStepLeft" // int { - "type" "string" - "size" "13" + "type" "integer" "windows" "2152" "linux" "2172" "mac" "2172" } - "m_chTextureType" // char + "m_szTextureName" // char[13] { - "type" "character" + "type" "string" + "size" "13" - "windows" "2165" - "linux" "2185" - "mac" "2185" + "windows" "2156" + "linux" "2176" + "mac" "2176" } - "m_idrowndmg" // int + "m_chTextureType" // char { - "type" "integer" + "type" "character" - "windows" "2168" - "linux" "2188" - "mac" "2188" + "windows" "2169" + "linux" "2189" + "mac" "2189" } - "m_idrownrestored" // int + "m_idrowndmg" // int { "type" "integer" @@ -448,7 +439,7 @@ "mac" "2192" } - "m_bitsHUDDamage" // int + "m_idrownrestored" // int { "type" "integer" @@ -457,7 +448,7 @@ "mac" "2196" } - "m_fInitHUD" // BOOL + "m_bitsHUDDamage" // int { "type" "integer" @@ -466,7 +457,7 @@ "mac" "2200" } - "m_fGameHUDInitialized" // BOOL + "m_fInitHUD" // BOOL { "type" "integer" @@ -475,7 +466,7 @@ "mac" "2204" } - "m_iTrain" // int + "m_fGameHUDInitialized" // BOOL { "type" "integer" @@ -484,7 +475,7 @@ "mac" "2208" } - "m_fWeapon" // BOOL + "m_iTrain" // int { "type" "integer" @@ -493,34 +484,34 @@ "mac" "2212" } - "m_pTank" // EHANDLE + "m_fWeapon" // BOOL { - "type" "ehandle" + "type" "integer" "windows" "2196" "linux" "2216" "mac" "2216" } - "m_fDeadTime" // float + "m_pTank" // EHANDLE { - "type" "float" + "type" "ehandle" - "windows" "2204" - "linux" "2224" - "mac" "2224" + "windows" "2200" + "linux" "2220" + "mac" "2220" } - "m_fNoPlayerSound" // BOOL + "m_fDeadTime" // float { - "type" "integer" + "type" "float" "windows" "2208" "linux" "2228" "mac" "2228" } - "m_fLongJump" // BOOL + "m_fNoPlayerSound" // BOOL { "type" "integer" @@ -529,7 +520,7 @@ "mac" "2232" } - "m_iGLClip" // int + "m_fLongJump" // BOOL { "type" "integer" @@ -538,25 +529,25 @@ "mac" "2236" } - "m_tSneaking" // float + "m_iGLClip" // int { - "type" "float" + "type" "integer" "windows" "2220" "linux" "2240" "mac" "2240" } - "m_iUpdateTime" // int + "m_tSneaking" // float { - "type" "integer" + "type" "float" "windows" "2224" "linux" "2244" "mac" "2244" } - "m_iClientHealth" // int + "m_iUpdateTime" // int { "type" "integer" @@ -565,7 +556,7 @@ "mac" "2248" } - "m_iClientBattery" // int + "m_iClientHealth" // int { "type" "integer" @@ -574,7 +565,7 @@ "mac" "2252" } - "m_iHideHUD" // int + "m_iClientBattery" // int { "type" "integer" @@ -583,7 +574,7 @@ "mac" "2256" } - "m_iClientHideHUD" // int + "m_iHideHUD" // int { "type" "integer" @@ -592,7 +583,7 @@ "mac" "2260" } - "m_iFOV" // int + "m_iClientHideHUD" // int { "type" "integer" @@ -601,7 +592,7 @@ "mac" "2264" } - "m_iClientFOV" // int + "m_iFOV" // int { "type" "integer" @@ -610,26 +601,26 @@ "mac" "2268" } - "m_rgpPlayerItems" // CBasePlayerItem*[6] + "m_iClientFOV" // int { - "type" "classptr" - "size" "6" + "type" "integer" "windows" "2252" "linux" "2272" "mac" "2272" } - "m_pActiveItem" // CBasePlayerItem* + "m_rgpPlayerItems" // CBasePlayerItem*[6] { "type" "classptr" + "size" "6" - "windows" "2276" - "linux" "2296" - "mac" "2296" + "windows" "2256" + "linux" "2276" + "mac" "2276" } - "m_pClientActiveItem" // CBasePlayerItem* + "m_pActiveItem" // CBasePlayerItem* { "type" "classptr" @@ -638,7 +629,7 @@ "mac" "2300" } - "m_pLastItem" // CBasePlayerItem* + "m_pClientActiveItem" // CBasePlayerItem* { "type" "classptr" @@ -647,54 +638,54 @@ "mac" "2304" } - "m_pszLastItem" // const char* + "m_pLastItem" // CBasePlayerItem* { - "type" "stringptr" + "type" "classptr" "windows" "2288" "linux" "2308" "mac" "2308" } - "m_rgAmmo" // int[32] + "m_pszLastItem" // const char* { - "type" "integer" - "size" "32" + "type" "stringptr" "windows" "2292" "linux" "2312" "mac" "2312" } - "m_rgAmmoLast" // int[32] + "m_rgAmmo" // int[32] { "type" "integer" "size" "32" - "windows" "2420" - "linux" "2440" - "mac" "2440" + "windows" "2296" + "linux" "2316" + "mac" "2316" } - "m_vecAutoAim" // Vector + "m_rgAmmoLast" // int[32] { - "type" "vector" + "type" "integer" + "size" "32" - "windows" "2548" - "linux" "2568" - "mac" "2568" + "windows" "2424" + "linux" "2444" + "mac" "2444" } - "m_fOnTarget" // BOOL + "m_vecAutoAim" // Vector { - "type" "integer" + "type" "vector" - "windows" "2560" - "linux" "2580" - "mac" "2580" + "windows" "2552" + "linux" "2572" + "mac" "2572" } - "m_iDeaths" // int + "m_fOnTarget" // BOOL { "type" "integer" @@ -703,7 +694,7 @@ "mac" "2584" } - "m_iClientDeaths" // int + "m_iDeaths" // int { "type" "integer" @@ -712,7 +703,7 @@ "mac" "2588" } - "m_iClientFrags" // int + "m_iClientDeaths" // int { "type" "integer" @@ -721,7 +712,7 @@ "mac" "2592" } - "m_iClientPlayerClass" // int + "m_iClientFrags" // int { "type" "integer" @@ -730,7 +721,7 @@ "mac" "2596" } - "m_iClientTeam" // int + "m_iClientPlayerClass" // int { "type" "integer" @@ -739,7 +730,7 @@ "mac" "2600" } - "m_iClientItems" // int + "m_iClientTeam" // int { "type" "integer" @@ -748,25 +739,25 @@ "mac" "2604" } - "m_iRespawnFrames" // float + "m_iClientItems" // int { - "type" "float" + "type" "integer" "windows" "2588" "linux" "2608" "mac" "2608" } - "m_iTimeCheckAllowed" // int + "m_iRespawnFrames" // float { - "type" "integer" + "type" "float" "windows" "2592" "linux" "2612" "mac" "2612" } - "m_lastx" // int + "m_iTimeCheckAllowed" // int { "type" "integer" @@ -775,7 +766,7 @@ "mac" "2616" } - "m_lasty" // int + "m_lastx" // int { "type" "integer" @@ -784,7 +775,7 @@ "mac" "2620" } - "m_iConcussion" // int + "m_lasty" // int { "type" "integer" @@ -793,7 +784,7 @@ "mac" "2624" } - "m_iClientConcussion" // int + "m_iConcussion" // int { "type" "integer" @@ -802,7 +793,7 @@ "mac" "2628" } - "m_iConcStartVal" // int + "m_iClientConcussion" // int { "type" "integer" @@ -811,16 +802,16 @@ "mac" "2632" } - "m_flConcStartTime" // float + "m_iConcStartVal" // int { - "type" "float" + "type" "integer" "windows" "2616" "linux" "2636" "mac" "2636" } - "m_flConcDuration" // float + "m_flConcStartTime" // float { "type" "float" @@ -829,16 +820,16 @@ "mac" "2640" } - "m_iBeingTeleported" // int + "m_flConcDuration" // float { - "type" "integer" + "type" "float" "windows" "2624" "linux" "2644" "mac" "2644" } - "m_nCustomSprayFrames" // int + "m_iBeingTeleported" // int { "type" "integer" @@ -847,25 +838,25 @@ "mac" "2648" } - "m_flNextDecalTime" // float + "m_nCustomSprayFrames" // int { - "type" "float" + "type" "integer" "windows" "2632" "linux" "2652" "mac" "2652" } - "m_bDisplayedMOTD" // BOOL + "m_flNextDecalTime" // float { - "type" "integer" + "type" "float" "windows" "2636" "linux" "2656" "mac" "2656" } - "m_bSentBuildingEvents" // BOOL + "m_bDisplayedMOTD" // BOOL { "type" "integer" @@ -874,32 +865,41 @@ "mac" "2660" } - "m_MenuStringBuffer" // char[512] + "m_bSentBuildingEvents" // BOOL { - "type" "string" - "size" "512" + "type" "integer" "windows" "2644" "linux" "2664" "mac" "2664" } + "m_MenuStringBuffer" // char[512] + { + "type" "string" + "size" "512" + + "windows" "2648" + "linux" "2668" + "mac" "2668" + } + "m_MenuSelectionBuffer" // int { "type" "integer" - "windows" "3156" - "linux" "3176" - "mac" "3176" + "windows" "3160" + "linux" "3180" + "mac" "3180" } "m_MenuUpdateTime" // float { "type" "float" - "windows" "3160" - "linux" "3180" - "mac" "3180" + "windows" "3164" + "linux" "3184" + "mac" "3184" } "m_SbarString0" // char[128] @@ -907,9 +907,9 @@ "type" "string" "size" "128" - "windows" "3164" - "linux" "3184" - "mac" "3184" + "windows" "3168" + "linux" "3188" + "mac" "3188" } "m_SbarString1" // char[128] @@ -917,9 +917,9 @@ "type" "string" "size" "128" - "windows" "3292" - "linux" "3312" - "mac" "3312" + "windows" "3296" + "linux" "3316" + "mac" "3316" } "m_SbarString2" // char[128] @@ -927,9 +927,9 @@ "type" "string" "size" "128" - "windows" "3420" - "linux" "3440" - "mac" "3440" + "windows" "3424" + "linux" "3444" + "mac" "3444" } "m_szAnimExtention" // char[32] @@ -937,27 +937,27 @@ "type" "string" "size" "32" - "windows" "3548" - "linux" "3568" - "mac" "3568" + "windows" "3552" + "linux" "3572" + "mac" "3572" } "m_iCurrentAnimationState" // int { "type" "integer" - "windows" "3580" - "linux" "3600" - "mac" "3600" + "windows" "3584" + "linux" "3604" + "mac" "3604" } "m_iCurrentAnimationSequence" // int { "type" "integer" - "windows" "3584" - "linux" "3604" - "mac" "3604" + "windows" "3588" + "linux" "3608" + "mac" "3608" } "m_szSavedAnimExtention" // char[32] @@ -965,66 +965,57 @@ "type" "string" "size" "32" - "windows" "3588" - "linux" "3608" - "mac" "3608" + "windows" "3592" + "linux" "3612" + "mac" "3612" } "m_pszSavedWeaponModel" // char* { "type" "stringptr" - "windows" "3620" - "linux" "3640" - "mac" "3640" - } - - "m_iTeamToDisguiseAs" // int - { - "type" "integer" - "windows" "3624" "linux" "3644" "mac" "3644" } - "m_DB_LastTimingTestTime" // float + "m_iTeamToDisguiseAs" // int { - "type" "float" + "type" "integer" "windows" "3628" "linux" "3648" "mac" "3648" } - "m_nFirstSpawn" // int + "m_DB_LastTimingTestTime" // float { - "type" "integer" + "type" "float" "windows" "3632" "linux" "3652" "mac" "3652" } - "delayed_spawn_message" // string_t + "m_nFirstSpawn" // int { - "type" "stringint" + "type" "integer" "windows" "3636" "linux" "3656" "mac" "3656" } - "forced_spawn" // int + "delayed_spawn_message" // string_t { - "type" "integer" + "type" "stringint" "windows" "3640" "linux" "3660" "mac" "3660" } - "no_sentry_message" // int + "forced_spawn" // int { "type" "integer" @@ -1033,7 +1024,7 @@ "mac" "3664" } - "no_dispenser_message" // int + "no_sentry_message" // int { "type" "integer" @@ -1042,7 +1033,7 @@ "mac" "3668" } - "m_iPipebombCount" // int + "no_dispenser_message" // int { "type" "integer" @@ -1051,7 +1042,7 @@ "mac" "3672" } - "m_iAmmoboxCount" // int + "m_iPipebombCount" // int { "type" "integer" @@ -1060,7 +1051,7 @@ "mac" "3676" } - "m_iMaxArmor" // int + "m_iAmmoboxCount" // int { "type" "integer" @@ -1069,7 +1060,7 @@ "mac" "3680" } - "no_entry_teleporter_message" // int + "m_iMaxArmor" // int { "type" "integer" @@ -1078,7 +1069,7 @@ "mac" "3684" } - "no_exit_teleporter_message" // int + "no_entry_teleporter_message" // int { "type" "integer" @@ -1087,7 +1078,7 @@ "mac" "3688" } - "m_iFadeDirection" // int + "no_exit_teleporter_message" // int { "type" "integer" @@ -1096,16 +1087,16 @@ "mac" "3692" } - "m_flFadeAmount" // float + "m_iFadeDirection" // int { - "type" "float" + "type" "integer" "windows" "3676" "linux" "3696" "mac" "3696" } - "m_flGagTime" // float + "m_flFadeAmount" // float { "type" "float" @@ -1114,7 +1105,7 @@ "mac" "3700" } - "m_flLastTalkTime" // float + "m_flGagTime" // float { "type" "float" @@ -1123,62 +1114,62 @@ "mac" "3704" } - "m_cSpamPoints" // int + "m_flLastTalkTime" // float { - "type" "integer" + "type" "float" "windows" "3688" "linux" "3708" "mac" "3708" } - "m_flNextSBarUpdateTime" // float + "m_cSpamPoints" // int { - "type" "float" + "type" "integer" "windows" "3692" "linux" "3712" "mac" "3712" } - "m_izSBarState" // int[7] + "m_flNextSBarUpdateTime" // float { - "type" "integer" - "size" "7" + "type" "float" "windows" "3696" "linux" "3716" "mac" "3716" } - "m_flStatusBarDisappearDelay" // float + "m_izSBarState" // int[7] { - "type" "float" + "type" "integer" + "size" "7" - "windows" "3724" - "linux" "3744" - "mac" "3744" + "windows" "3700" + "linux" "3720" + "mac" "3720" } - "m_hLastIDTarget" // EHANDLE + "m_flStatusBarDisappearDelay" // float { - "type" "ehandle" + "type" "float" "windows" "3728" "linux" "3748" "mac" "3748" } - "m_bUpdatedCommandMenu" // BOOL + "m_hLastIDTarget" // EHANDLE { - "type" "integer" + "type" "ehandle" - "windows" "3736" - "linux" "3756" - "mac" "3756" + "windows" "3732" + "linux" "3752" + "mac" "3752" } - "m_iClientIsFeigning" // int + "m_bUpdatedCommandMenu" // BOOL { "type" "integer" @@ -1187,7 +1178,7 @@ "mac" "3760" } - "m_iClientIsDetpacking" // int + "m_iClientIsFeigning" // int { "type" "integer" @@ -1196,7 +1187,7 @@ "mac" "3764" } - "m_iClientDetpackAmmo" // int + "m_iClientIsDetpacking" // int { "type" "integer" @@ -1205,7 +1196,7 @@ "mac" "3768" } - "m_iClientBuildState" // int + "m_iClientDetpackAmmo" // int { "type" "integer" @@ -1214,7 +1205,7 @@ "mac" "3772" } - "m_iClientRandomPC" // int + "m_iClientBuildState" // int { "type" "integer" @@ -1223,14 +1214,23 @@ "mac" "3776" } - "m_flTeleporterEffectEndTime" // float + "m_iClientRandomPC" // int { - "type" "float" + "type" "integer" "windows" "3760" "linux" "3780" "mac" "3780" } + + "m_flTeleporterEffectEndTime" // float + { + "type" "float" + + "windows" "3764" + "linux" "3784" + "mac" "3784" + } } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cbaseturret.txt b/gamedata/common.games/entities.games/tfc/offsets-cbaseturret.txt index 81dad2c10b..61587b06e7 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cbaseturret.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cbaseturret.txt @@ -23,39 +23,30 @@ { "type" "float" - "windows" "1700" - "linux" "1720" - "mac" "1720" - } - - "m_iSpin" // int - { - "type" "integer" - "windows" "1704" "linux" "1724" "mac" "1724" } - "m_pEyeGlow" // CSprite* + "m_iSpin" // int { - "type" "classptr" + "type" "integer" "windows" "1708" "linux" "1728" "mac" "1728" } - "m_eyeBrightness" // int + "m_pEyeGlow" // CSprite* { - "type" "integer" + "type" "classptr" "windows" "1712" "linux" "1732" "mac" "1732" } - "m_iDeployHeight" // int + "m_eyeBrightness" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "1736" } - "m_iRetractHeight" // int + "m_iDeployHeight" // int { "type" "integer" @@ -73,7 +64,7 @@ "mac" "1740" } - "m_iMinPitch" // int + "m_iRetractHeight" // int { "type" "integer" @@ -82,7 +73,7 @@ "mac" "1744" } - "m_iBaseTurnRate" // int + "m_iMinPitch" // int { "type" "integer" @@ -91,25 +82,25 @@ "mac" "1748" } - "m_fTurnRate" // float + "m_iBaseTurnRate" // int { - "type" "float" + "type" "integer" "windows" "1732" "linux" "1752" "mac" "1752" } - "m_iOrientation" // int + "m_fTurnRate" // float { - "type" "integer" + "type" "float" "windows" "1736" "linux" "1756" "mac" "1756" } - "m_iOn" // int + "m_iOrientation" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "1760" } - "m_fBeserk" // int + "m_iOn" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "1764" } - "m_iAutoStart" // int + "m_fBeserk" // int { "type" "integer" @@ -136,25 +127,25 @@ "mac" "1768" } - "m_vecLastSight" // Vector + "m_iAutoStart" // int { - "type" "vector" + "type" "integer" "windows" "1752" "linux" "1772" "mac" "1772" } - "m_flLastSight" // float + "m_vecLastSight" // Vector { - "type" "float" + "type" "vector" - "windows" "1764" - "linux" "1784" - "mac" "1784" + "windows" "1756" + "linux" "1776" + "mac" "1776" } - "m_flMaxWait" // float + "m_flLastSight" // float { "type" "float" @@ -163,58 +154,67 @@ "mac" "1788" } - "m_iSearchSpeed" // int + "m_flMaxWait" // float { - "type" "integer" + "type" "float" "windows" "1772" "linux" "1792" "mac" "1792" } - "m_flStartYaw" // float + "m_iSearchSpeed" // int { - "type" "float" + "type" "integer" "windows" "1776" "linux" "1796" "mac" "1796" } - "m_vecCurAngles" // Vector + "m_flStartYaw" // float { - "type" "vector" + "type" "float" "windows" "1780" "linux" "1800" "mac" "1800" } + "m_vecCurAngles" // Vector + { + "type" "vector" + + "windows" "1784" + "linux" "1804" + "mac" "1804" + } + "m_vecGoalAngles" // Vector { "type" "vector" - "windows" "1792" - "linux" "1812" - "mac" "1812" + "windows" "1796" + "linux" "1816" + "mac" "1816" } "m_flPingTime" // float { "type" "float" - "windows" "1804" - "linux" "1824" - "mac" "1824" + "windows" "1808" + "linux" "1828" + "mac" "1828" } "m_flSpinUpTime" // float { "type" "float" - "windows" "1808" - "linux" "1828" - "mac" "1828" + "windows" "1812" + "linux" "1832" + "mac" "1832" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ccinemonster.txt b/gamedata/common.games/entities.games/tfc/offsets-ccinemonster.txt index 3af3a6ebc0..3671e095c6 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ccinemonster.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ccinemonster.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "1700" - "linux" "1720" - "mac" "1720" - } - - "m_iszPlay" // int - { - "type" "integer" - "windows" "1704" "linux" "1724" "mac" "1724" } - "m_iszEntity" // int + "m_iszPlay" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "1728" } - "m_fMoveTo" // int + "m_iszEntity" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "1732" } - "m_iFinishSchedule" // int + "m_fMoveTo" // int { "type" "integer" @@ -64,16 +55,16 @@ "mac" "1736" } - "m_flRadius" // float + "m_iFinishSchedule" // int { - "type" "float" + "type" "integer" "windows" "1720" "linux" "1740" "mac" "1740" } - "m_flRepeat" // float + "m_flRadius" // float { "type" "float" @@ -82,34 +73,34 @@ "mac" "1744" } - "m_iDelay" // int + "m_flRepeat" // float { - "type" "integer" + "type" "float" "windows" "1728" "linux" "1748" "mac" "1748" } - "m_startTime" // float + "m_iDelay" // int { - "type" "float" + "type" "integer" "windows" "1732" "linux" "1752" "mac" "1752" } - "m_saved_movetype" // int + "m_startTime" // float { - "type" "integer" + "type" "float" "windows" "1736" "linux" "1756" "mac" "1756" } - "m_saved_solid" // int + "m_saved_movetype" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "1760" } - "m_saved_effects" // int + "m_saved_solid" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "1764" } - "m_interruptable" // BOOL + "m_saved_effects" // int { "type" "integer" @@ -135,6 +126,15 @@ "linux" "1768" "mac" "1768" } + + "m_interruptable" // BOOL + { + "type" "integer" + + "windows" "1752" + "linux" "1772" + "mac" "1772" + } } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ccycler.txt b/gamedata/common.games/entities.games/tfc/offsets-ccycler.txt index 1e3849fc88..74e2794d23 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ccycler.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ccycler.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1700" - "linux" "1720" - "mac" "1720" + "windows" "1704" + "linux" "1724" + "mac" "1724" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cdeadhev.txt b/gamedata/common.games/entities.games/tfc/offsets-cdeadhev.txt index 47bfdccd14..17d0763099 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cdeadhev.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cdeadhev.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1700" - "linux" "1720" - "mac" "1720" + "windows" "1704" + "linux" "1724" + "mac" "1724" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cdetpack.txt b/gamedata/common.games/entities.games/tfc/offsets-cdetpack.txt index 249d205cad..8b30488026 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cdetpack.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cdetpack.txt @@ -23,27 +23,27 @@ { "type" "integer" - "windows" "1728" - "linux" "1748" - "mac" "1748" + "windows" "1732" + "linux" "1752" + "mac" "1752" } "bAlternateLight" // BOOL { "type" "integer" - "windows" "1732" - "linux" "1752" - "mac" "1752" + "windows" "1736" + "linux" "1756" + "mac" "1756" } "m_pBlinkSprite" // CSprite* { "type" "classptr" - "windows" "1736" - "linux" "1756" - "mac" "1756" + "windows" "1740" + "linux" "1760" + "mac" "1760" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cenvexplosion.txt b/gamedata/common.games/entities.games/tfc/offsets-cenvexplosion.txt index 7722db1935..e29457fb4e 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cenvexplosion.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cenvexplosion.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "1700" - "linux" "1720" - "mac" "1720" + "windows" "1704" + "linux" "1724" + "mac" "1724" } "m_spriteScale" // int { "type" "integer" - "windows" "1704" - "linux" "1724" - "mac" "1724" + "windows" "1708" + "linux" "1728" + "mac" "1728" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cgrenade.txt b/gamedata/common.games/entities.games/tfc/offsets-cgrenade.txt index 5d328fc456..725678e5ad 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cgrenade.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cgrenade.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "1700" - "linux" "1720" - "mac" "1720" - } - - "m_bDontSpark" // BOOL - { - "type" "integer" - "windows" "1704" "linux" "1724" "mac" "1724" } - "m_bDontSmoke" // BOOL + "m_bDontSpark" // BOOL { "type" "integer" @@ -46,16 +37,16 @@ "mac" "1728" } - "m_flExplosionScale" // float + "m_bDontSmoke" // BOOL { - "type" "float" + "type" "integer" "windows" "1712" "linux" "1732" "mac" "1732" } - "m_flSmokeScale" // float + "m_flExplosionScale" // float { "type" "float" @@ -64,24 +55,33 @@ "mac" "1736" } - "m_fRegisteredSound" // BOOL + "m_flSmokeScale" // float { - "type" "integer" + "type" "float" "windows" "1720" "linux" "1740" "mac" "1740" } - "m_usExplode" // short unsigned int + "m_fRegisteredSound" // BOOL { - "type" "short" - "unsigned" "1" + "type" "integer" "windows" "1724" "linux" "1744" "mac" "1744" } + + "m_usExplode" // short unsigned int + { + "type" "short" + "unsigned" "1" + + "windows" "1728" + "linux" "1748" + "mac" "1748" + } } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cguntarget.txt b/gamedata/common.games/entities.games/tfc/offsets-cguntarget.txt index 0d5ed28609..c2769f350c 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cguntarget.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cguntarget.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1700" - "linux" "1720" - "mac" "1720" + "windows" "1704" + "linux" "1724" + "mac" "1724" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cmortar.txt b/gamedata/common.games/entities.games/tfc/offsets-cmortar.txt index 806ef5b21f..6da8a8e7ca 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cmortar.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cmortar.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1728" - "linux" "1748" - "mac" "1748" + "windows" "1732" + "linux" "1752" + "mac" "1752" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-csquadmonster.txt b/gamedata/common.games/entities.games/tfc/offsets-csquadmonster.txt index e405dfb0e3..a74a97e31e 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-csquadmonster.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-csquadmonster.txt @@ -23,9 +23,9 @@ { "type" "ehandle" - "windows" "1700" - "linux" "1720" - "mac" "1720" + "windows" "1704" + "linux" "1724" + "mac" "1724" } "m_hSquadMember" // EHANDLE[4] @@ -33,39 +33,30 @@ "type" "ehandle" "size" "4" - "windows" "1708" - "linux" "1728" - "mac" "1728" + "windows" "1712" + "linux" "1732" + "mac" "1732" } "m_afSquadSlots" // int { "type" "integer" - "windows" "1740" - "linux" "1760" - "mac" "1760" - } - - "m_flLastEnemySightTime" // float - { - "type" "float" - "windows" "1744" "linux" "1764" "mac" "1764" } - "m_fEnemyEluded" // BOOL + "m_flLastEnemySightTime" // float { - "type" "integer" + "type" "float" "windows" "1748" "linux" "1768" "mac" "1768" } - "m_iMySlot" // int + "m_fEnemyEluded" // BOOL { "type" "integer" @@ -73,6 +64,15 @@ "linux" "1772" "mac" "1772" } + + "m_iMySlot" // int + { + "type" "integer" + + "windows" "1756" + "linux" "1776" + "mac" "1776" + } } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctalkmonster.txt b/gamedata/common.games/entities.games/tfc/offsets-ctalkmonster.txt index c34648dd51..0f2f23ba41 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctalkmonster.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctalkmonster.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "1700" - "linux" "1720" - "mac" "1720" - } - - "m_nSpeak" // int - { - "type" "integer" - "windows" "1704" "linux" "1724" "mac" "1724" } - "m_voicePitch" // int + "m_nSpeak" // int { "type" "integer" @@ -46,35 +37,35 @@ "mac" "1728" } - "m_szGrp" // const char*[18] + "m_voicePitch" // int { - "type" "stringptr" - "size" "18" + "type" "integer" "windows" "1712" "linux" "1732" "mac" "1732" } - "m_useTime" // float + "m_szGrp" // const char*[18] { - "type" "float" + "type" "stringptr" + "size" "18" - "windows" "1784" - "linux" "1804" - "mac" "1804" + "windows" "1716" + "linux" "1736" + "mac" "1736" } - "m_iszUse" // int + "m_useTime" // float { - "type" "integer" + "type" "float" "windows" "1788" "linux" "1808" "mac" "1808" } - "m_iszUnUse" // int + "m_iszUse" // int { "type" "integer" @@ -83,16 +74,16 @@ "mac" "1812" } - "m_flLastSaidSmelled" // float + "m_iszUnUse" // int { - "type" "float" + "type" "integer" "windows" "1796" "linux" "1816" "mac" "1816" } - "m_flStopTalkTime" // float + "m_flLastSaidSmelled" // float { "type" "float" @@ -101,14 +92,23 @@ "mac" "1820" } - "m_hTalkTarget" // EHANDLE + "m_flStopTalkTime" // float { - "type" "ehandle" + "type" "float" "windows" "1804" "linux" "1824" "mac" "1824" } + + "m_hTalkTarget" // EHANDLE + { + "type" "ehandle" + + "windows" "1808" + "linux" "1828" + "mac" "1828" + } } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctesthull.txt b/gamedata/common.games/entities.games/tfc/offsets-ctesthull.txt index 1111172fcb..5a9655876d 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctesthull.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctesthull.txt @@ -23,9 +23,9 @@ { "type" "vector" - "windows" "1700" - "linux" "1720" - "mac" "1720" + "windows" "1704" + "linux" "1724" + "mac" "1724" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfdispenser.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfdispenser.txt index 48940a7632..109500603b 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfdispenser.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfdispenser.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "1700" - "linux" "1720" - "mac" "1720" - } - - "m_flNextUseTime" // float - { - "type" "float" - "windows" "1704" "linux" "1724" "mac" "1724" } - "m_flInitialUseDelay" // float + "m_flNextUseTime" // float { "type" "float" @@ -46,7 +37,7 @@ "mac" "1728" } - "m_flNextRefillTime" // float + "m_flInitialUseDelay" // float { "type" "float" @@ -55,14 +46,23 @@ "mac" "1732" } - "m_iDestroyed" // int + "m_flNextRefillTime" // float { - "type" "integer" + "type" "float" "windows" "1716" "linux" "1736" "mac" "1736" } + + "m_iDestroyed" // int + { + "type" "integer" + + "windows" "1720" + "linux" "1740" + "mac" "1740" + } } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfflame.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfflame.txt index 0874d1238c..8fed887e54 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfflame.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfflame.txt @@ -23,9 +23,9 @@ { "type" "float" - "windows" "1700" - "linux" "1720" - "mac" "1720" + "windows" "1704" + "linux" "1724" + "mac" "1724" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfflamethrowerburst.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfflamethrowerburst.txt index 9ae7756e3c..f981f166b8 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfflamethrowerburst.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfflamethrowerburst.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1728" - "linux" "1748" - "mac" "1748" + "windows" "1732" + "linux" "1752" + "mac" "1752" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfgasgrenade.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfgasgrenade.txt index fdec1006bc..1667ca7c9e 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfgasgrenade.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfgasgrenade.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1736" - "linux" "1756" - "mac" "1756" + "windows" "1740" + "linux" "1760" + "mac" "1760" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfgrenade.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfgrenade.txt index 081c80a181..f2d3307047 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfgrenade.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfgrenade.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "1728" - "linux" "1748" - "mac" "1748" + "windows" "1732" + "linux" "1752" + "mac" "1752" } "m_flCreationTime" // float { "type" "float" - "windows" "1732" - "linux" "1752" - "mac" "1752" + "windows" "1736" + "linux" "1756" + "mac" "1756" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfincendiarycrocket.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfincendiarycrocket.txt index 128b676e44..352370685b 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfincendiarycrocket.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfincendiarycrocket.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1728" - "linux" "1748" - "mac" "1748" + "windows" "1732" + "linux" "1752" + "mac" "1752" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfnailgunnail.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfnailgunnail.txt index de9292e7ff..94d660cc10 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfnailgunnail.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfnailgunnail.txt @@ -23,9 +23,9 @@ { "type" "vector" - "windows" "1728" - "linux" "1748" - "mac" "1748" + "windows" "1732" + "linux" "1752" + "mac" "1752" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfnapalmgrenade.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfnapalmgrenade.txt index 9f618fd2dc..9478cff5be 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfnapalmgrenade.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfnapalmgrenade.txt @@ -23,30 +23,21 @@ { "type" "integer" - "windows" "1736" - "linux" "1756" - "mac" "1756" - } - - "m_bitsDamageType" // int - { - "type" "integer" - "windows" "1740" "linux" "1760" "mac" "1760" } - "m_flEffectTime" // float + "m_bitsDamageType" // int { - "type" "float" + "type" "integer" "windows" "1744" "linux" "1764" "mac" "1764" } - "m_flDamageTime" // float + "m_flEffectTime" // float { "type" "float" @@ -54,6 +45,15 @@ "linux" "1768" "mac" "1768" } + + "m_flDamageTime" // float + { + "type" "float" + + "windows" "1752" + "linux" "1772" + "mac" "1772" + } } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfprimegrenade.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfprimegrenade.txt index a4d7b3466c..8202fa7a71 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfprimegrenade.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfprimegrenade.txt @@ -23,18 +23,18 @@ { "type" "float" - "windows" "1728" - "linux" "1748" - "mac" "1748" + "windows" "1732" + "linux" "1752" + "mac" "1752" } "blastRadius" // float { "type" "float" - "windows" "1732" - "linux" "1752" - "mac" "1752" + "windows" "1736" + "linux" "1756" + "mac" "1756" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfrpgrocket.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfrpgrocket.txt index f3caf4fb6e..385a5255a0 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfrpgrocket.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfrpgrocket.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1728" - "linux" "1748" - "mac" "1748" + "windows" "1732" + "linux" "1752" + "mac" "1752" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfsentrygun.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfsentrygun.txt index 40e1cc1aa0..3bb518f2d0 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfsentrygun.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfsentrygun.txt @@ -23,72 +23,72 @@ { "type" "integer" - "windows" "1700" - "linux" "1720" - "mac" "1720" - } - - "m_iShardIndex" // int - { - "type" "integer" - "windows" "1704" "linux" "1724" "mac" "1724" } - "m_flNextCheck" // float + "m_iShardIndex" // int { - "type" "float" + "type" "integer" "windows" "1708" "linux" "1728" "mac" "1728" } - "m_iBaseTurnRate" // int + "m_flNextCheck" // float { - "type" "integer" + "type" "float" "windows" "1712" "linux" "1732" "mac" "1732" } - "m_fTurnRate" // float + "m_iBaseTurnRate" // int { - "type" "float" + "type" "integer" "windows" "1716" "linux" "1736" "mac" "1736" } - "m_vecCurAngles" // Vector + "m_fTurnRate" // float { - "type" "vector" + "type" "float" "windows" "1720" "linux" "1740" "mac" "1740" } + "m_vecCurAngles" // Vector + { + "type" "vector" + + "windows" "1724" + "linux" "1744" + "mac" "1744" + } + "m_vecGoalAngles" // Vector { "type" "vector" - "windows" "1732" - "linux" "1752" - "mac" "1752" + "windows" "1736" + "linux" "1756" + "mac" "1756" } "m_vecCurDishAngles" // Vector { "type" "vector" - "windows" "1744" - "linux" "1764" - "mac" "1764" + "windows" "1748" + "linux" "1768" + "mac" "1768" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-ctfteleporter.txt b/gamedata/common.games/entities.games/tfc/offsets-ctfteleporter.txt index 729e457538..8fc70671b2 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-ctfteleporter.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-ctfteleporter.txt @@ -23,30 +23,21 @@ { "type" "classptr" - "windows" "1700" - "linux" "1720" - "mac" "1720" - } - - "m_flInitialUseDelay" // float - { - "type" "float" - "windows" "1704" "linux" "1724" "mac" "1724" } - "m_iType" // int + "m_flInitialUseDelay" // float { - "type" "integer" + "type" "float" "windows" "1708" "linux" "1728" "mac" "1728" } - "m_iState" // int + "m_iType" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "1732" } - "m_iDestroyed" // int + "m_iState" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "1736" } - "m_iShardIndex" // int + "m_iDestroyed" // int { "type" "integer" @@ -73,16 +64,16 @@ "mac" "1740" } - "m_flMyNextThink" // float + "m_iShardIndex" // int { - "type" "float" + "type" "integer" "windows" "1724" "linux" "1744" "mac" "1744" } - "m_flDamageDelay" // float + "m_flMyNextThink" // float { "type" "float" @@ -90,6 +81,15 @@ "linux" "1748" "mac" "1748" } + + "m_flDamageDelay" // float + { + "type" "float" + + "windows" "1732" + "linux" "1752" + "mac" "1752" + } } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cturret.txt b/gamedata/common.games/entities.games/tfc/offsets-cturret.txt index a6c60c4c11..fd28fcc7c0 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cturret.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cturret.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1812" - "linux" "1832" - "mac" "1832" + "windows" "1816" + "linux" "1836" + "mac" "1836" } } } diff --git a/gamedata/common.games/entities.games/tfc/offsets-cwreckage.txt b/gamedata/common.games/entities.games/tfc/offsets-cwreckage.txt index b6facb06fa..d6ff8d04a7 100644 --- a/gamedata/common.games/entities.games/tfc/offsets-cwreckage.txt +++ b/gamedata/common.games/entities.games/tfc/offsets-cwreckage.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "1700" - "linux" "1720" - "mac" "1720" + "windows" "1704" + "linux" "1724" + "mac" "1724" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cagrunt.txt b/gamedata/common.games/entities.games/valve/offsets-cagrunt.txt index b06d39f99c..4e676c0695 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cagrunt.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cagrunt.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "716" - "linux" "736" - "mac" "736" - } - - "m_flNextHornetAttackCheck" // float - { - "type" "float" - "windows" "720" "linux" "740" "mac" "740" } - "m_flNextPainTime" // float + "m_flNextHornetAttackCheck" // float { "type" "float" @@ -46,7 +37,7 @@ "mac" "744" } - "m_flNextSpeakTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -55,7 +46,7 @@ "mac" "748" } - "m_flNextWordTime" // float + "m_flNextSpeakTime" // float { "type" "float" @@ -64,14 +55,23 @@ "mac" "752" } - "m_iLastWord" // int + "m_flNextWordTime" // float { - "type" "integer" + "type" "float" "windows" "736" "linux" "756" "mac" "756" } + + "m_iLastWord" // int + { + "type" "integer" + + "windows" "740" + "linux" "760" + "mac" "760" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cairtank.txt b/gamedata/common.games/entities.games/valve/offsets-cairtank.txt index a6ae5f0baa..d9c3778631 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cairtank.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cairtank.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-capache.txt b/gamedata/common.games/entities.games/valve/offsets-capache.txt index 5e1289fc8b..58f3629e9c 100644 --- a/gamedata/common.games/entities.games/valve/offsets-capache.txt +++ b/gamedata/common.games/entities.games/valve/offsets-capache.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_flForce" // float - { - "type" "float" - "windows" "664" "linux" "684" "mac" "684" } - "m_flNextRocket" // float + "m_flForce" // float { "type" "float" @@ -46,88 +37,88 @@ "mac" "688" } - "m_vecTarget" // Vector + "m_flNextRocket" // float { - "type" "vector" + "type" "float" "windows" "672" "linux" "692" "mac" "692" } + "m_vecTarget" // Vector + { + "type" "vector" + + "windows" "676" + "linux" "696" + "mac" "696" + } + "m_posTarget" // Vector { "type" "vector" - "windows" "684" - "linux" "704" - "mac" "704" + "windows" "688" + "linux" "708" + "mac" "708" } "m_vecDesired" // Vector { "type" "vector" - "windows" "696" - "linux" "716" - "mac" "716" + "windows" "700" + "linux" "720" + "mac" "720" } "m_posDesired" // Vector { "type" "vector" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_vecGoal" // Vector { "type" "vector" - "windows" "720" - "linux" "740" - "mac" "740" + "windows" "724" + "linux" "744" + "mac" "744" } "m_angGun" // Vector { "type" "vector" - "windows" "732" - "linux" "752" - "mac" "752" + "windows" "736" + "linux" "756" + "mac" "756" } "m_flLastSeen" // float { "type" "float" - "windows" "744" - "linux" "764" - "mac" "764" - } - - "m_flPrevSeen" // float - { - "type" "float" - "windows" "748" "linux" "768" "mac" "768" } - "m_iSoundState" // int + "m_flPrevSeen" // float { - "type" "integer" + "type" "float" "windows" "752" "linux" "772" "mac" "772" } - "m_iSpriteTexture" // int + "m_iSoundState" // int { "type" "integer" @@ -136,7 +127,7 @@ "mac" "776" } - "m_iExplode" // int + "m_iSpriteTexture" // int { "type" "integer" @@ -145,7 +136,7 @@ "mac" "780" } - "m_iBodyGibs" // int + "m_iExplode" // int { "type" "integer" @@ -154,32 +145,41 @@ "mac" "784" } - "m_flGoalSpeed" // float + "m_iBodyGibs" // int { - "type" "float" + "type" "integer" "windows" "768" "linux" "788" "mac" "788" } - "m_iDoSmokePuff" // int + "m_flGoalSpeed" // float { - "type" "integer" + "type" "float" "windows" "772" "linux" "792" "mac" "792" } - "m_pBeam" // CBeam* + "m_iDoSmokePuff" // int { - "type" "classptr" + "type" "integer" "windows" "776" "linux" "796" "mac" "796" } + + "m_pBeam" // CBeam* + { + "type" "classptr" + + "windows" "780" + "linux" "800" + "mac" "800" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-capachehvr.txt b/gamedata/common.games/entities.games/valve/offsets-capachehvr.txt index d1dc81cbac..3bc42e4994 100644 --- a/gamedata/common.games/entities.games/valve/offsets-capachehvr.txt +++ b/gamedata/common.games/entities.games/valve/offsets-capachehvr.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_vecForward" // Vector { "type" "vector" - "windows" "668" - "linux" "688" - "mac" "688" + "windows" "672" + "linux" "692" + "mac" "692" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cbarnacle.txt b/gamedata/common.games/entities.games/valve/offsets-cbarnacle.txt index 51d8b5a9ac..42a8328813 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cbarnacle.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cbarnacle.txt @@ -23,30 +23,21 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_flKillVictimTime" // float - { - "type" "float" - "windows" "664" "linux" "684" "mac" "684" } - "m_cGibs" // int + "m_flKillVictimTime" // float { - "type" "integer" + "type" "float" "windows" "668" "linux" "688" "mac" "688" } - "m_fTongueExtended" // BOOL + "m_cGibs" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "692" } - "m_fLiftingPrey" // BOOL + "m_fTongueExtended" // BOOL { "type" "integer" @@ -64,14 +55,23 @@ "mac" "696" } - "m_flTongueAdj" // float + "m_fLiftingPrey" // BOOL { - "type" "float" + "type" "integer" "windows" "680" "linux" "700" "mac" "700" } + + "m_flTongueAdj" // float + { + "type" "float" + + "windows" "684" + "linux" "704" + "mac" "704" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cbarney.txt b/gamedata/common.games/entities.games/valve/offsets-cbarney.txt index 912a6142e8..372264afd3 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cbarney.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cbarney.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "772" - "linux" "792" - "mac" "792" - } - - "m_painTime" // float - { - "type" "float" - "windows" "776" "linux" "796" "mac" "796" } - "m_checkAttackTime" // float + "m_painTime" // float { "type" "float" @@ -46,23 +37,32 @@ "mac" "800" } - "m_lastAttackCheck" // BOOL + "m_checkAttackTime" // float { - "type" "integer" + "type" "float" "windows" "784" "linux" "804" "mac" "804" } - "m_flPlayerDamage" // float + "m_lastAttackCheck" // BOOL { - "type" "float" + "type" "integer" "windows" "788" "linux" "808" "mac" "808" } + + "m_flPlayerDamage" // float + { + "type" "float" + + "windows" "792" + "linux" "812" + "mac" "812" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cbasemonster.txt b/gamedata/common.games/entities.games/valve/offsets-cbasemonster.txt index 59d488f749..759fb5f971 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cbasemonster.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cbasemonster.txt @@ -428,6 +428,15 @@ "linux" "676" "mac" "676" } + + "m_flLastYawTime" // float + { + "type" "float" + + "windows" "660" + "linux" "680" + "mac" "680" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cbaseplayer.txt b/gamedata/common.games/entities.games/valve/offsets-cbaseplayer.txt index 2d9803b272..05be3355dd 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cbaseplayer.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cbaseplayer.txt @@ -23,30 +23,21 @@ { "type" "ehandle" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_flNextObserverInput" // float { "type" "float" - "windows" "668" - "linux" "688" - "mac" "688" - } - - "m_iObserverWeapon" // int - { - "type" "integer" - "windows" "672" "linux" "692" "mac" "692" } - "m_iObserverLastMode" // int + "m_iObserverWeapon" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "696" } - "random_seed" // int + "m_iObserverLastMode" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "700" } - "m_iPlayerSound" // int + "random_seed" // int { "type" "integer" @@ -73,7 +64,7 @@ "mac" "704" } - "m_iTargetVolume" // int + "m_iPlayerSound" // int { "type" "integer" @@ -82,7 +73,7 @@ "mac" "708" } - "m_iWeaponVolume" // int + "m_iTargetVolume" // int { "type" "integer" @@ -91,7 +82,7 @@ "mac" "712" } - "m_iExtraSoundTypes" // int + "m_iWeaponVolume" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "716" } - "m_iWeaponFlash" // int + "m_iExtraSoundTypes" // int { "type" "integer" @@ -109,16 +100,16 @@ "mac" "720" } - "m_flStopExtraSoundTime" // float + "m_iWeaponFlash" // int { - "type" "float" + "type" "integer" "windows" "704" "linux" "724" "mac" "724" } - "m_flFlashLightTime" // float + "m_flStopExtraSoundTime" // float { "type" "float" @@ -127,16 +118,16 @@ "mac" "728" } - "m_iFlashBattery" // int + "m_flFlashLightTime" // float { - "type" "integer" + "type" "float" "windows" "712" "linux" "732" "mac" "732" } - "m_afButtonLast" // int + "m_iFlashBattery" // int { "type" "integer" @@ -145,7 +136,7 @@ "mac" "736" } - "m_afButtonPressed" // int + "m_afButtonLast" // int { "type" "integer" @@ -154,7 +145,7 @@ "mac" "740" } - "m_afButtonReleased" // int + "m_afButtonPressed" // int { "type" "integer" @@ -163,25 +154,25 @@ "mac" "744" } - "m_pentSndLast" // edict_t* + "m_afButtonReleased" // int { - "type" "edict" + "type" "integer" "windows" "728" "linux" "748" "mac" "748" } - "m_flSndRoomtype" // float + "m_pentSndLast" // edict_t* { - "type" "float" + "type" "edict" "windows" "732" "linux" "752" "mac" "752" } - "m_flSndRange" // float + "m_flSndRoomtype" // float { "type" "float" @@ -190,7 +181,7 @@ "mac" "756" } - "m_flFallVelocity" // float + "m_flSndRange" // float { "type" "float" @@ -199,26 +190,26 @@ "mac" "760" } - "m_rgItems" // int[5] + "m_flFallVelocity" // float { - "type" "integer" - "size" "5" + "type" "float" "windows" "744" "linux" "764" "mac" "764" } - "m_fKnownItem" // int + "m_rgItems" // int[5] { "type" "integer" + "size" "5" - "windows" "764" - "linux" "784" - "mac" "784" + "windows" "748" + "linux" "768" + "mac" "768" } - "m_fNewAmmo" // int + "m_fKnownItem" // int { "type" "integer" @@ -227,26 +218,26 @@ "mac" "788" } - "m_afPhysicsFlags" // unsigned int + "m_fNewAmmo" // int { "type" "integer" - "unsigned" "1" "windows" "772" "linux" "792" "mac" "792" } - "m_fNextSuicideTime" // float + "m_afPhysicsFlags" // unsigned int { - "type" "float" + "type" "integer" + "unsigned" "1" "windows" "776" "linux" "796" "mac" "796" } - "m_flTimeStepSound" // float + "m_fNextSuicideTime" // float { "type" "float" @@ -255,7 +246,7 @@ "mac" "800" } - "m_flTimeWeaponIdle" // float + "m_flTimeStepSound" // float { "type" "float" @@ -264,7 +255,7 @@ "mac" "804" } - "m_flSwimTime" // float + "m_flTimeWeaponIdle" // float { "type" "float" @@ -273,7 +264,7 @@ "mac" "808" } - "m_flDuckTime" // float + "m_flSwimTime" // float { "type" "float" @@ -282,7 +273,7 @@ "mac" "812" } - "m_flWallJumpTime" // float + "m_flDuckTime" // float { "type" "float" @@ -291,7 +282,7 @@ "mac" "816" } - "m_flSuitUpdate" // float + "m_flWallJumpTime" // float { "type" "float" @@ -300,64 +291,64 @@ "mac" "820" } - "m_rgSuitPlayList" // int[4] + "m_flSuitUpdate" // float { - "type" "integer" - "size" "4" + "type" "float" "windows" "804" "linux" "824" "mac" "824" } - "m_iSuitPlayNext" // int + "m_rgSuitPlayList" // int[4] { "type" "integer" + "size" "4" - "windows" "820" - "linux" "840" - "mac" "840" + "windows" "808" + "linux" "828" + "mac" "828" } - "m_rgiSuitNoRepeat" // int[32] + "m_iSuitPlayNext" // int { "type" "integer" - "size" "32" "windows" "824" "linux" "844" "mac" "844" } - "m_rgflSuitNoRepeatTime" // float[32] + "m_rgiSuitNoRepeat" // int[32] { - "type" "float" + "type" "integer" "size" "32" - "windows" "952" - "linux" "972" - "mac" "972" + "windows" "828" + "linux" "848" + "mac" "848" } - "m_lastDamageAmount" // int + "m_rgflSuitNoRepeatTime" // float[32] { - "type" "integer" + "type" "float" + "size" "32" - "windows" "1080" - "linux" "1100" - "mac" "1100" + "windows" "956" + "linux" "976" + "mac" "976" } - "m_tbdPrev" // float + "m_lastDamageAmount" // int { - "type" "float" + "type" "integer" "windows" "1084" "linux" "1104" "mac" "1104" } - "m_flgeigerRange" // float + "m_tbdPrev" // float { "type" "float" @@ -366,7 +357,7 @@ "mac" "1108" } - "m_flgeigerDelay" // float + "m_flgeigerRange" // float { "type" "float" @@ -375,16 +366,16 @@ "mac" "1112" } - "m_igeigerRangePrev" // int + "m_flgeigerDelay" // float { - "type" "integer" + "type" "float" "windows" "1096" "linux" "1116" "mac" "1116" } - "m_iStepLeft" // int + "m_igeigerRangePrev" // int { "type" "integer" @@ -393,35 +384,35 @@ "mac" "1120" } - "m_szTextureName" // char[13] + "m_iStepLeft" // int { - "type" "string" - "size" "13" + "type" "integer" "windows" "1104" "linux" "1124" "mac" "1124" } - "m_chTextureType" // char + "m_szTextureName" // char[13] { - "type" "character" + "type" "string" + "size" "13" - "windows" "1117" - "linux" "1137" - "mac" "1137" + "windows" "1108" + "linux" "1128" + "mac" "1128" } - "m_idrowndmg" // int + "m_chTextureType" // char { - "type" "integer" + "type" "character" - "windows" "1120" - "linux" "1140" - "mac" "1140" + "windows" "1121" + "linux" "1141" + "mac" "1141" } - "m_idrownrestored" // int + "m_idrowndmg" // int { "type" "integer" @@ -430,7 +421,7 @@ "mac" "1144" } - "m_bitsHUDDamage" // int + "m_idrownrestored" // int { "type" "integer" @@ -439,7 +430,7 @@ "mac" "1148" } - "m_fInitHUD" // BOOL + "m_bitsHUDDamage" // int { "type" "integer" @@ -448,7 +439,7 @@ "mac" "1152" } - "m_fGameHUDInitialized" // BOOL + "m_fInitHUD" // BOOL { "type" "integer" @@ -457,7 +448,7 @@ "mac" "1156" } - "m_iTrain" // int + "m_fGameHUDInitialized" // BOOL { "type" "integer" @@ -466,7 +457,7 @@ "mac" "1160" } - "m_fWeapon" // BOOL + "m_iTrain" // int { "type" "integer" @@ -475,34 +466,34 @@ "mac" "1164" } - "m_pTank" // EHANDLE + "m_fWeapon" // BOOL { - "type" "ehandle" + "type" "integer" "windows" "1148" "linux" "1168" "mac" "1168" } - "m_fDeadTime" // float + "m_pTank" // EHANDLE { - "type" "float" + "type" "ehandle" - "windows" "1156" - "linux" "1176" - "mac" "1176" + "windows" "1152" + "linux" "1172" + "mac" "1172" } - "m_fNoPlayerSound" // BOOL + "m_fDeadTime" // float { - "type" "integer" + "type" "float" "windows" "1160" "linux" "1180" "mac" "1180" } - "m_fLongJump" // BOOL + "m_fNoPlayerSound" // BOOL { "type" "integer" @@ -511,25 +502,25 @@ "mac" "1184" } - "m_tSneaking" // float + "m_fLongJump" // BOOL { - "type" "float" + "type" "integer" "windows" "1168" "linux" "1188" "mac" "1188" } - "m_iUpdateTime" // int + "m_tSneaking" // float { - "type" "integer" + "type" "float" "windows" "1172" "linux" "1192" "mac" "1192" } - "m_iClientHealth" // int + "m_iUpdateTime" // int { "type" "integer" @@ -538,7 +529,7 @@ "mac" "1196" } - "m_iClientBattery" // int + "m_iClientHealth" // int { "type" "integer" @@ -547,7 +538,7 @@ "mac" "1200" } - "m_iHideHUD" // int + "m_iClientBattery" // int { "type" "integer" @@ -556,7 +547,7 @@ "mac" "1204" } - "m_iClientHideHUD" // int + "m_iHideHUD" // int { "type" "integer" @@ -565,7 +556,7 @@ "mac" "1208" } - "m_iFOV" // int + "m_iClientHideHUD" // int { "type" "integer" @@ -574,7 +565,7 @@ "mac" "1212" } - "m_iClientFOV" // int + "m_iFOV" // int { "type" "integer" @@ -583,26 +574,26 @@ "mac" "1216" } - "m_rgpPlayerItems" // CBasePlayerItem*[6] + "m_iClientFOV" // int { - "type" "classptr" - "size" "6" + "type" "integer" "windows" "1200" "linux" "1220" "mac" "1220" } - "m_pActiveItem" // CBasePlayerItem* + "m_rgpPlayerItems" // CBasePlayerItem*[6] { "type" "classptr" + "size" "6" - "windows" "1224" - "linux" "1244" - "mac" "1244" + "windows" "1204" + "linux" "1224" + "mac" "1224" } - "m_pClientActiveItem" // CBasePlayerItem* + "m_pActiveItem" // CBasePlayerItem* { "type" "classptr" @@ -611,7 +602,7 @@ "mac" "1248" } - "m_pLastItem" // CBasePlayerItem* + "m_pClientActiveItem" // CBasePlayerItem* { "type" "classptr" @@ -620,45 +611,45 @@ "mac" "1252" } - "m_rgAmmo" // int[32] + "m_pLastItem" // CBasePlayerItem* { - "type" "integer" - "size" "32" + "type" "classptr" "windows" "1236" "linux" "1256" "mac" "1256" } - "m_rgAmmoLast" // int[32] + "m_rgAmmo" // int[32] { "type" "integer" "size" "32" - "windows" "1364" - "linux" "1384" - "mac" "1384" + "windows" "1240" + "linux" "1260" + "mac" "1260" } - "m_vecAutoAim" // Vector + "m_rgAmmoLast" // int[32] { - "type" "vector" + "type" "integer" + "size" "32" - "windows" "1492" - "linux" "1512" - "mac" "1512" + "windows" "1368" + "linux" "1388" + "mac" "1388" } - "m_fOnTarget" // BOOL + "m_vecAutoAim" // Vector { - "type" "integer" + "type" "vector" - "windows" "1504" - "linux" "1524" - "mac" "1524" + "windows" "1496" + "linux" "1516" + "mac" "1516" } - "m_iDeaths" // int + "m_fOnTarget" // BOOL { "type" "integer" @@ -667,25 +658,25 @@ "mac" "1528" } - "m_iRespawnFrames" // float + "m_iDeaths" // int { - "type" "float" + "type" "integer" "windows" "1512" "linux" "1532" "mac" "1532" } - "m_lastx" // int + "m_iRespawnFrames" // float { - "type" "integer" + "type" "float" "windows" "1516" "linux" "1536" "mac" "1536" } - "m_lasty" // int + "m_lastx" // int { "type" "integer" @@ -694,7 +685,7 @@ "mac" "1540" } - "m_nCustomSprayFrames" // int + "m_lasty" // int { "type" "integer" @@ -703,45 +694,45 @@ "mac" "1544" } - "m_flNextDecalTime" // float + "m_nCustomSprayFrames" // int { - "type" "float" + "type" "integer" "windows" "1528" "linux" "1548" "mac" "1548" } - "m_szTeamName" // char[16] + "m_flNextDecalTime" // float { - "type" "string" - "size" "16" + "type" "float" "windows" "1532" "linux" "1552" "mac" "1552" } - "m_szAnimExtention" // char[32] + "m_szTeamName" // char[16] { "type" "string" - "size" "32" + "size" "16" - "windows" "1548" - "linux" "1568" - "mac" "1568" + "windows" "1536" + "linux" "1556" + "mac" "1556" } - "m_flStartCharge" // float + "m_szAnimExtention" // char[32] { - "type" "float" + "type" "string" + "size" "32" - "windows" "1580" - "linux" "1600" - "mac" "1600" + "windows" "1552" + "linux" "1572" + "mac" "1572" } - "m_flAmmoStartCharge" // float + "m_flStartCharge" // float { "type" "float" @@ -750,7 +741,7 @@ "mac" "1604" } - "m_flPlayAftershock" // float + "m_flAmmoStartCharge" // float { "type" "float" @@ -759,7 +750,7 @@ "mac" "1608" } - "m_flNextAmmoBurn" // float + "m_flPlayAftershock" // float { "type" "float" @@ -768,26 +759,26 @@ "mac" "1612" } - "m_izSBarState" // int[4] + "m_flNextAmmoBurn" // float { - "type" "integer" - "size" "4" + "type" "float" "windows" "1596" "linux" "1616" "mac" "1616" } - "m_flNextSBarUpdateTime" // float + "m_izSBarState" // int[4] { - "type" "float" + "type" "integer" + "size" "4" - "windows" "1612" - "linux" "1632" - "mac" "1632" + "windows" "1600" + "linux" "1620" + "mac" "1620" } - "m_flStatusBarDisappearDelay" // float + "m_flNextSBarUpdateTime" // float { "type" "float" @@ -796,33 +787,51 @@ "mac" "1636" } - "m_SbarString0" // char[128] + "m_flStatusBarDisappearDelay" // float { - "type" "string" - "size" "128" + "type" "float" "windows" "1620" "linux" "1640" "mac" "1640" } + "m_SbarString0" // char[128] + { + "type" "string" + "size" "128" + + "windows" "1624" + "linux" "1644" + "mac" "1644" + } + "m_SbarString1" // char[128] { "type" "string" "size" "128" - "windows" "1748" - "linux" "1768" - "mac" "1768" + "windows" "1752" + "linux" "1772" + "mac" "1772" } "m_flNextChatTime" // float { "type" "float" - "windows" "1876" - "linux" "1896" - "mac" "1896" + "windows" "1880" + "linux" "1900" + "mac" "1900" + } + + "m_iAutoWepSwitch" // int + { + "type" "integer" + + "windows" "1884" + "linux" "1904" + "mac" "1904" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cbaseturret.txt b/gamedata/common.games/entities.games/valve/offsets-cbaseturret.txt index 37c0eeae4a..25ae58c1af 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cbaseturret.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cbaseturret.txt @@ -23,39 +23,30 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_iSpin" // int - { - "type" "integer" - "windows" "664" "linux" "684" "mac" "684" } - "m_pEyeGlow" // CSprite* + "m_iSpin" // int { - "type" "classptr" + "type" "integer" "windows" "668" "linux" "688" "mac" "688" } - "m_eyeBrightness" // int + "m_pEyeGlow" // CSprite* { - "type" "integer" + "type" "classptr" "windows" "672" "linux" "692" "mac" "692" } - "m_iDeployHeight" // int + "m_eyeBrightness" // int { "type" "integer" @@ -64,7 +55,7 @@ "mac" "696" } - "m_iRetractHeight" // int + "m_iDeployHeight" // int { "type" "integer" @@ -73,7 +64,7 @@ "mac" "700" } - "m_iMinPitch" // int + "m_iRetractHeight" // int { "type" "integer" @@ -82,7 +73,7 @@ "mac" "704" } - "m_iBaseTurnRate" // int + "m_iMinPitch" // int { "type" "integer" @@ -91,25 +82,25 @@ "mac" "708" } - "m_fTurnRate" // float + "m_iBaseTurnRate" // int { - "type" "float" + "type" "integer" "windows" "692" "linux" "712" "mac" "712" } - "m_iOrientation" // int + "m_fTurnRate" // float { - "type" "integer" + "type" "float" "windows" "696" "linux" "716" "mac" "716" } - "m_iOn" // int + "m_iOrientation" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "720" } - "m_fBeserk" // int + "m_iOn" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "724" } - "m_iAutoStart" // int + "m_fBeserk" // int { "type" "integer" @@ -136,25 +127,25 @@ "mac" "728" } - "m_vecLastSight" // Vector + "m_iAutoStart" // int { - "type" "vector" + "type" "integer" "windows" "712" "linux" "732" "mac" "732" } - "m_flLastSight" // float + "m_vecLastSight" // Vector { - "type" "float" + "type" "vector" - "windows" "724" - "linux" "744" - "mac" "744" + "windows" "716" + "linux" "736" + "mac" "736" } - "m_flMaxWait" // float + "m_flLastSight" // float { "type" "float" @@ -163,58 +154,67 @@ "mac" "748" } - "m_iSearchSpeed" // int + "m_flMaxWait" // float { - "type" "integer" + "type" "float" "windows" "732" "linux" "752" "mac" "752" } - "m_flStartYaw" // float + "m_iSearchSpeed" // int { - "type" "float" + "type" "integer" "windows" "736" "linux" "756" "mac" "756" } - "m_vecCurAngles" // Vector + "m_flStartYaw" // float { - "type" "vector" + "type" "float" "windows" "740" "linux" "760" "mac" "760" } + "m_vecCurAngles" // Vector + { + "type" "vector" + + "windows" "744" + "linux" "764" + "mac" "764" + } + "m_vecGoalAngles" // Vector { "type" "vector" - "windows" "752" - "linux" "772" - "mac" "772" + "windows" "756" + "linux" "776" + "mac" "776" } "m_flPingTime" // float { "type" "float" - "windows" "764" - "linux" "784" - "mac" "784" + "windows" "768" + "linux" "788" + "mac" "788" } "m_flSpinUpTime" // float { "type" "float" - "windows" "768" - "linux" "788" - "mac" "788" + "windows" "772" + "linux" "792" + "mac" "792" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cbigmomma.txt b/gamedata/common.games/entities.games/valve/offsets-cbigmomma.txt index 0c0a8d1996..213870879d 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cbigmomma.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cbigmomma.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_crabTime" // float - { - "type" "float" - "windows" "664" "linux" "684" "mac" "684" } - "m_mortarTime" // float + "m_crabTime" // float { "type" "float" @@ -46,7 +37,7 @@ "mac" "688" } - "m_painSoundTime" // float + "m_mortarTime" // float { "type" "float" @@ -55,14 +46,23 @@ "mac" "692" } - "m_crabCount" // int + "m_painSoundTime" // float { - "type" "integer" + "type" "float" "windows" "676" "linux" "696" "mac" "696" } + + "m_crabCount" // int + { + "type" "integer" + + "windows" "680" + "linux" "700" + "mac" "700" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cbullsquid.txt b/gamedata/common.games/entities.games/valve/offsets-cbullsquid.txt index 43aea630b3..fd530b7a3e 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cbullsquid.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cbullsquid.txt @@ -23,27 +23,27 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_flLastHurtTime" // float { "type" "float" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_flNextSpitTime" // float { "type" "float" - "windows" "668" - "linux" "688" - "mac" "688" + "windows" "672" + "linux" "692" + "mac" "692" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-ccinemonster.txt b/gamedata/common.games/entities.games/valve/offsets-ccinemonster.txt index 5963dcc59d..b217dc93e7 100644 --- a/gamedata/common.games/entities.games/valve/offsets-ccinemonster.txt +++ b/gamedata/common.games/entities.games/valve/offsets-ccinemonster.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_iszPlay" // int - { - "type" "integer" - "windows" "664" "linux" "684" "mac" "684" } - "m_iszEntity" // int + "m_iszPlay" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "688" } - "m_fMoveTo" // int + "m_iszEntity" // int { "type" "integer" @@ -55,7 +46,7 @@ "mac" "692" } - "m_iFinishSchedule" // int + "m_fMoveTo" // int { "type" "integer" @@ -64,16 +55,16 @@ "mac" "696" } - "m_flRadius" // float + "m_iFinishSchedule" // int { - "type" "float" + "type" "integer" "windows" "680" "linux" "700" "mac" "700" } - "m_flRepeat" // float + "m_flRadius" // float { "type" "float" @@ -82,34 +73,34 @@ "mac" "704" } - "m_iDelay" // int + "m_flRepeat" // float { - "type" "integer" + "type" "float" "windows" "688" "linux" "708" "mac" "708" } - "m_startTime" // float + "m_iDelay" // int { - "type" "float" + "type" "integer" "windows" "692" "linux" "712" "mac" "712" } - "m_saved_movetype" // int + "m_startTime" // float { - "type" "integer" + "type" "float" "windows" "696" "linux" "716" "mac" "716" } - "m_saved_solid" // int + "m_saved_movetype" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "720" } - "m_saved_effects" // int + "m_saved_solid" // int { "type" "integer" @@ -127,7 +118,7 @@ "mac" "724" } - "m_interruptable" // BOOL + "m_saved_effects" // int { "type" "integer" @@ -135,6 +126,15 @@ "linux" "728" "mac" "728" } + + "m_interruptable" // BOOL + { + "type" "integer" + + "windows" "712" + "linux" "732" + "mac" "732" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-ccontroller.txt b/gamedata/common.games/entities.games/valve/offsets-ccontroller.txt index daba97e023..390a912d64 100644 --- a/gamedata/common.games/entities.games/valve/offsets-ccontroller.txt +++ b/gamedata/common.games/entities.games/valve/offsets-ccontroller.txt @@ -23,27 +23,27 @@ { "type" "float" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_flShootTime" // float { "type" "float" - "windows" "720" - "linux" "740" - "mac" "740" + "windows" "724" + "linux" "744" + "mac" "744" } "m_flShootEnd" // float { "type" "float" - "windows" "724" - "linux" "744" - "mac" "744" + "windows" "728" + "linux" "748" + "mac" "748" } "m_pBall" // CSprite*[2] @@ -51,9 +51,9 @@ "type" "classptr" "size" "2" - "windows" "728" - "linux" "748" - "mac" "748" + "windows" "732" + "linux" "752" + "mac" "752" } "m_iBall" // int[2] @@ -61,9 +61,9 @@ "type" "integer" "size" "2" - "windows" "736" - "linux" "756" - "mac" "756" + "windows" "740" + "linux" "760" + "mac" "760" } "m_iBallTime" // float[2] @@ -71,9 +71,9 @@ "type" "float" "size" "2" - "windows" "744" - "linux" "764" - "mac" "764" + "windows" "748" + "linux" "768" + "mac" "768" } "m_iBallCurrent" // int[2] @@ -81,36 +81,36 @@ "type" "integer" "size" "2" - "windows" "752" - "linux" "772" - "mac" "772" + "windows" "756" + "linux" "776" + "mac" "776" } "m_vecEstVelocity" // Vector { "type" "vector" - "windows" "760" - "linux" "780" - "mac" "780" + "windows" "764" + "linux" "784" + "mac" "784" } "m_velocity" // Vector { "type" "vector" - "windows" "772" - "linux" "792" - "mac" "792" + "windows" "776" + "linux" "796" + "mac" "796" } "m_fInCombat" // int { "type" "integer" - "windows" "784" - "linux" "804" - "mac" "804" + "windows" "788" + "linux" "808" + "mac" "808" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-ccontrollerheadball.txt b/gamedata/common.games/entities.games/valve/offsets-ccontrollerheadball.txt index a43510dbfc..9e54e83a4f 100644 --- a/gamedata/common.games/entities.games/valve/offsets-ccontrollerheadball.txt +++ b/gamedata/common.games/entities.games/valve/offsets-ccontrollerheadball.txt @@ -23,36 +23,36 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_flNextAttack" // int { "type" "integer" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_vecIdeal" // Vector { "type" "vector" - "windows" "668" - "linux" "688" - "mac" "688" + "windows" "672" + "linux" "692" + "mac" "692" } "m_hOwner" // EHANDLE { "type" "ehandle" - "windows" "680" - "linux" "700" - "mac" "700" + "windows" "684" + "linux" "704" + "mac" "704" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-ccontrollerzapball.txt b/gamedata/common.games/entities.games/valve/offsets-ccontrollerzapball.txt index 624362286a..fe1b23a9e3 100644 --- a/gamedata/common.games/entities.games/valve/offsets-ccontrollerzapball.txt +++ b/gamedata/common.games/entities.games/valve/offsets-ccontrollerzapball.txt @@ -23,9 +23,9 @@ { "type" "ehandle" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-ccycler.txt b/gamedata/common.games/entities.games/valve/offsets-ccycler.txt index 907e7bf6ba..d20fc48721 100644 --- a/gamedata/common.games/entities.games/valve/offsets-ccycler.txt +++ b/gamedata/common.games/entities.games/valve/offsets-ccycler.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cdeadbarney.txt b/gamedata/common.games/entities.games/valve/offsets-cdeadbarney.txt index 5212754438..2f761bad9e 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cdeadbarney.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cdeadbarney.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cdeadhev.txt b/gamedata/common.games/entities.games/valve/offsets-cdeadhev.txt index 1b9a4af4b5..f126e43dda 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cdeadhev.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cdeadhev.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cdeadhgrunt.txt b/gamedata/common.games/entities.games/valve/offsets-cdeadhgrunt.txt index 0e85c9c634..6b7eb90579 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cdeadhgrunt.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cdeadhgrunt.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cdeadscientist.txt b/gamedata/common.games/entities.games/valve/offsets-cdeadscientist.txt index 6dc09e9383..34f04ba5ac 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cdeadscientist.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cdeadscientist.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cenvexplosion.txt b/gamedata/common.games/entities.games/valve/offsets-cenvexplosion.txt index 24821d5b4d..d61bbcbcb1 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cenvexplosion.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cenvexplosion.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_spriteScale" // int { "type" "integer" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cflockingflyer.txt b/gamedata/common.games/entities.games/valve/offsets-cflockingflyer.txt index 0049fd2f63..c167a967b8 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cflockingflyer.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cflockingflyer.txt @@ -23,30 +23,21 @@ { "type" "classptr" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_pSquadNext" // CFlockingFlyer* - { - "type" "classptr" - "windows" "664" "linux" "684" "mac" "684" } - "m_fTurning" // BOOL + "m_pSquadNext" // CFlockingFlyer* { - "type" "integer" + "type" "classptr" "windows" "668" "linux" "688" "mac" "688" } - "m_fCourseAdjust" // BOOL + "m_fTurning" // BOOL { "type" "integer" @@ -55,7 +46,7 @@ "mac" "692" } - "m_fPathBlocked" // BOOL + "m_fCourseAdjust" // BOOL { "type" "integer" @@ -64,34 +55,34 @@ "mac" "696" } - "m_vecReferencePoint" // Vector + "m_fPathBlocked" // BOOL { - "type" "vector" + "type" "integer" "windows" "680" "linux" "700" "mac" "700" } - "m_vecAdjustedVelocity" // Vector + "m_vecReferencePoint" // Vector { "type" "vector" - "windows" "692" - "linux" "712" - "mac" "712" + "windows" "684" + "linux" "704" + "mac" "704" } - "m_flGoalSpeed" // float + "m_vecAdjustedVelocity" // Vector { - "type" "float" + "type" "vector" - "windows" "704" - "linux" "724" - "mac" "724" + "windows" "696" + "linux" "716" + "mac" "716" } - "m_flLastBlockedTime" // float + "m_flGoalSpeed" // float { "type" "float" @@ -100,7 +91,7 @@ "mac" "728" } - "m_flFakeBlockedTime" // float + "m_flLastBlockedTime" // float { "type" "float" @@ -109,7 +100,7 @@ "mac" "732" } - "m_flAlertTime" // float + "m_flFakeBlockedTime" // float { "type" "float" @@ -118,7 +109,7 @@ "mac" "736" } - "m_flFlockNextSoundTime" // float + "m_flAlertTime" // float { "type" "float" @@ -126,6 +117,15 @@ "linux" "740" "mac" "740" } + + "m_flFlockNextSoundTime" // float + { + "type" "float" + + "windows" "724" + "linux" "744" + "mac" "744" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cflockingflyerflock.txt b/gamedata/common.games/entities.games/valve/offsets-cflockingflyerflock.txt index 3b5416c098..83e39c441b 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cflockingflyerflock.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cflockingflyerflock.txt @@ -23,18 +23,18 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_flFlockRadius" // float { "type" "float" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cflyingmonster.txt b/gamedata/common.games/entities.games/valve/offsets-cflyingmonster.txt index 4a7636ff4b..f913b08381 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cflyingmonster.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cflyingmonster.txt @@ -23,30 +23,21 @@ { "type" "vector" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_flightSpeed" // float { "type" "float" - "windows" "672" - "linux" "692" - "mac" "692" - } - - "m_stopTime" // float - { - "type" "float" - "windows" "676" "linux" "696" "mac" "696" } - "m_momentum" // float + "m_stopTime" // float { "type" "float" @@ -55,14 +46,32 @@ "mac" "700" } - "m_pFlapSound" // const char* + "m_momentum" // float { - "type" "stringptr" + "type" "float" "windows" "684" "linux" "704" "mac" "704" } + + "m_pFlapSound" // const char* + { + "type" "stringptr" + + "windows" "688" + "linux" "708" + "mac" "708" + } + + "m_flLastZYawTime" // float + { + "type" "float" + + "windows" "692" + "linux" "712" + "mac" "712" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cgargantua.txt b/gamedata/common.games/entities.games/valve/offsets-cgargantua.txt index 1039010a97..eaac26cad9 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cgargantua.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cgargantua.txt @@ -23,9 +23,9 @@ { "type" "classptr" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_pFlame" // CBeam*[4] @@ -33,30 +33,21 @@ "type" "classptr" "size" "4" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_eyeBrightness" // int { "type" "integer" - "windows" "680" - "linux" "700" - "mac" "700" - } - - "m_seeTime" // float - { - "type" "float" - "windows" "684" "linux" "704" "mac" "704" } - "m_flameTime" // float + "m_seeTime" // float { "type" "float" @@ -65,7 +56,7 @@ "mac" "708" } - "m_painSoundTime" // float + "m_flameTime" // float { "type" "float" @@ -74,7 +65,7 @@ "mac" "712" } - "m_streakTime" // float + "m_painSoundTime" // float { "type" "float" @@ -83,7 +74,7 @@ "mac" "716" } - "m_flameX" // float + "m_streakTime" // float { "type" "float" @@ -92,7 +83,7 @@ "mac" "720" } - "m_flameY" // float + "m_flameX" // float { "type" "float" @@ -100,6 +91,15 @@ "linux" "724" "mac" "724" } + + "m_flameY" // float + { + "type" "float" + + "windows" "708" + "linux" "728" + "mac" "728" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cgman.txt b/gamedata/common.games/entities.games/valve/offsets-cgman.txt index 94f2b8f3fd..eda2788211 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cgman.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cgman.txt @@ -23,27 +23,27 @@ { "type" "ehandle" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_hTalkTarget" // EHANDLE { "type" "ehandle" - "windows" "668" - "linux" "688" - "mac" "688" + "windows" "672" + "linux" "692" + "mac" "692" } "m_flTalkTime" // float { "type" "float" - "windows" "676" - "linux" "696" - "mac" "696" + "windows" "680" + "linux" "700" + "mac" "700" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cgrenade.txt b/gamedata/common.games/entities.games/valve/offsets-cgrenade.txt index 0adaf310e8..06d65d40ad 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cgrenade.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cgrenade.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cguntarget.txt b/gamedata/common.games/entities.games/valve/offsets-cguntarget.txt index 4b50cb79a8..fb27de58cf 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cguntarget.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cguntarget.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-chassassin.txt b/gamedata/common.games/entities.games/valve/offsets-chassassin.txt index fa93d8999e..6be451bea7 100644 --- a/gamedata/common.games/entities.games/valve/offsets-chassassin.txt +++ b/gamedata/common.games/entities.games/valve/offsets-chassassin.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_flDiviation" // float - { - "type" "float" - "windows" "664" "linux" "684" "mac" "684" } - "m_flNextJump" // float + "m_flDiviation" // float { "type" "float" @@ -46,43 +37,43 @@ "mac" "688" } - "m_vecJumpVelocity" // Vector + "m_flNextJump" // float { - "type" "vector" + "type" "float" "windows" "672" "linux" "692" "mac" "692" } - "m_flNextGrenadeCheck" // float + "m_vecJumpVelocity" // Vector { - "type" "float" + "type" "vector" - "windows" "684" - "linux" "704" - "mac" "704" + "windows" "676" + "linux" "696" + "mac" "696" } - "m_vecTossVelocity" // Vector + "m_flNextGrenadeCheck" // float { - "type" "vector" + "type" "float" "windows" "688" "linux" "708" "mac" "708" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "700" - "linux" "720" - "mac" "720" + "windows" "692" + "linux" "712" + "mac" "712" } - "m_iTargetRanderamt" // int + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -91,7 +82,7 @@ "mac" "724" } - "m_iFrustration" // int + "m_iTargetRanderamt" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "728" } - "m_iShell" // int + "m_iFrustration" // int { "type" "integer" @@ -108,6 +99,15 @@ "linux" "732" "mac" "732" } + + "m_iShell" // int + { + "type" "integer" + + "windows" "716" + "linux" "736" + "mac" "736" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-chgrunt.txt b/gamedata/common.games/entities.games/valve/offsets-chgrunt.txt index b885288413..75e8f82344 100644 --- a/gamedata/common.games/entities.games/valve/offsets-chgrunt.txt +++ b/gamedata/common.games/entities.games/valve/offsets-chgrunt.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "716" - "linux" "736" - "mac" "736" - } - - "m_flNextPainTime" // float - { - "type" "float" - "windows" "720" "linux" "740" "mac" "740" } - "m_flLastEnemySightTime" // float + "m_flNextPainTime" // float { "type" "float" @@ -46,25 +37,25 @@ "mac" "744" } - "m_vecTossVelocity" // Vector + "m_flLastEnemySightTime" // float { - "type" "vector" + "type" "float" "windows" "728" "linux" "748" "mac" "748" } - "m_fThrowGrenade" // BOOL + "m_vecTossVelocity" // Vector { - "type" "integer" + "type" "vector" - "windows" "740" - "linux" "760" - "mac" "760" + "windows" "732" + "linux" "752" + "mac" "752" } - "m_fStanding" // BOOL + "m_fThrowGrenade" // BOOL { "type" "integer" @@ -73,7 +64,7 @@ "mac" "764" } - "m_fFirstEncounter" // BOOL + "m_fStanding" // BOOL { "type" "integer" @@ -82,7 +73,7 @@ "mac" "768" } - "m_cClipSize" // int + "m_fFirstEncounter" // BOOL { "type" "integer" @@ -91,7 +82,7 @@ "mac" "772" } - "m_voicePitch" // int + "m_cClipSize" // int { "type" "integer" @@ -100,7 +91,7 @@ "mac" "776" } - "m_iBrassShell" // int + "m_voicePitch" // int { "type" "integer" @@ -109,7 +100,7 @@ "mac" "780" } - "m_iShotgunShell" // int + "m_iBrassShell" // int { "type" "integer" @@ -118,7 +109,7 @@ "mac" "784" } - "m_iSentence" // int + "m_iShotgunShell" // int { "type" "integer" @@ -126,6 +117,15 @@ "linux" "788" "mac" "788" } + + "m_iSentence" // int + { + "type" "integer" + + "windows" "772" + "linux" "792" + "mac" "792" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-chgruntrepel.txt b/gamedata/common.games/entities.games/valve/offsets-chgruntrepel.txt index c368b9ffc8..9e1a9cc727 100644 --- a/gamedata/common.games/entities.games/valve/offsets-chgruntrepel.txt +++ b/gamedata/common.games/entities.games/valve/offsets-chgruntrepel.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-chornet.txt b/gamedata/common.games/entities.games/valve/offsets-chornet.txt index 486ffdc2cd..420f4402e2 100644 --- a/gamedata/common.games/entities.games/valve/offsets-chornet.txt +++ b/gamedata/common.games/entities.games/valve/offsets-chornet.txt @@ -23,27 +23,27 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_iHornetType" // int { "type" "integer" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_flFlySpeed" // float { "type" "float" - "windows" "668" - "linux" "688" - "mac" "688" + "windows" "672" + "linux" "692" + "mac" "692" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-choundeye.txt b/gamedata/common.games/entities.games/valve/offsets-choundeye.txt index f74d358e9a..abb99682cb 100644 --- a/gamedata/common.games/entities.games/valve/offsets-choundeye.txt +++ b/gamedata/common.games/entities.games/valve/offsets-choundeye.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "716" - "linux" "736" - "mac" "736" - } - - "m_fAsleep" // BOOL - { - "type" "integer" - "windows" "720" "linux" "740" "mac" "740" } - "m_fDontBlink" // BOOL + "m_fAsleep" // BOOL { "type" "integer" @@ -46,14 +37,23 @@ "mac" "744" } - "m_vecPackCenter" // Vector + "m_fDontBlink" // BOOL { - "type" "vector" + "type" "integer" "windows" "728" "linux" "748" "mac" "748" } + + "m_vecPackCenter" // Vector + { + "type" "vector" + + "windows" "732" + "linux" "752" + "mac" "752" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cichthyosaur.txt b/gamedata/common.games/entities.games/valve/offsets-cichthyosaur.txt index 7d62b750e0..f597f48cab 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cichthyosaur.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cichthyosaur.txt @@ -23,48 +23,30 @@ { "type" "vector" - "windows" "688" - "linux" "708" - "mac" "708" + "windows" "696" + "linux" "716" + "mac" "716" } "m_idealDist" // float { "type" "float" - "windows" "700" - "linux" "720" - "mac" "720" - } - - "m_flBlink" // float - { - "type" "float" - - "windows" "704" - "linux" "724" - "mac" "724" - } - - "m_flEnemyTouched" // float - { - "type" "float" - "windows" "708" "linux" "728" "mac" "728" } - "m_bOnAttack" // BOOL + "m_flBlink" // float { - "type" "integer" + "type" "float" "windows" "712" "linux" "732" "mac" "732" } - "m_flMaxSpeed" // float + "m_flEnemyTouched" // float { "type" "float" @@ -73,16 +55,16 @@ "mac" "736" } - "m_flMinSpeed" // float + "m_bOnAttack" // BOOL { - "type" "float" + "type" "integer" "windows" "720" "linux" "740" "mac" "740" } - "m_flMaxDist" // float + "m_flMaxSpeed" // float { "type" "float" @@ -91,16 +73,16 @@ "mac" "744" } - "m_pBeam" // CBeam* + "m_flMinSpeed" // float { - "type" "classptr" + "type" "float" "windows" "728" "linux" "748" "mac" "748" } - "m_flNextAlert" // float + "m_flMaxDist" // float { "type" "float" @@ -108,6 +90,42 @@ "linux" "752" "mac" "752" } + + "m_pBeam" // CBeam* + { + "type" "classptr" + + "windows" "736" + "linux" "756" + "mac" "756" + } + + "m_flNextAlert" // float + { + "type" "float" + + "windows" "740" + "linux" "760" + "mac" "760" + } + + "m_flLastPitchTime" // float + { + "type" "float" + + "windows" "744" + "linux" "764" + "mac" "764" + } + + "m_flLastZYawTime" // float + { + "type" "float" + + "windows" "748" + "linux" "768" + "mac" "768" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cislave.txt b/gamedata/common.games/entities.games/valve/offsets-cislave.txt index 319a1d4b7b..e8427dc71c 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cislave.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cislave.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_pBeam" // CBeam*[8] @@ -33,45 +33,45 @@ "type" "classptr" "size" "8" - "windows" "720" - "linux" "740" - "mac" "740" + "windows" "724" + "linux" "744" + "mac" "744" } "m_iBeams" // int { "type" "integer" - "windows" "752" - "linux" "772" - "mac" "772" + "windows" "756" + "linux" "776" + "mac" "776" } "m_flNextAttack" // float { "type" "float" - "windows" "756" - "linux" "776" - "mac" "776" + "windows" "760" + "linux" "780" + "mac" "780" } "m_voicePitch" // int { "type" "integer" - "windows" "760" - "linux" "780" - "mac" "780" + "windows" "764" + "linux" "784" + "mac" "784" } "m_hDead" // EHANDLE { "type" "ehandle" - "windows" "764" - "linux" "784" - "mac" "784" + "windows" "768" + "linux" "788" + "mac" "788" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cleech.txt b/gamedata/common.games/entities.games/valve/offsets-cleech.txt index 960e4fb012..3559658f03 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cleech.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cleech.txt @@ -23,30 +23,21 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_fPathBlocked" // BOOL - { - "type" "integer" - "windows" "664" "linux" "684" "mac" "684" } - "m_flAccelerate" // float + "m_fPathBlocked" // BOOL { - "type" "float" + "type" "integer" "windows" "668" "linux" "688" "mac" "688" } - "m_obstacle" // float + "m_flAccelerate" // float { "type" "float" @@ -55,7 +46,7 @@ "mac" "692" } - "m_top" // float + "m_obstacle" // float { "type" "float" @@ -64,7 +55,7 @@ "mac" "696" } - "m_bottom" // float + "m_top" // float { "type" "float" @@ -73,7 +64,7 @@ "mac" "700" } - "m_height" // float + "m_bottom" // float { "type" "float" @@ -82,7 +73,7 @@ "mac" "704" } - "m_waterTime" // float + "m_height" // float { "type" "float" @@ -91,7 +82,7 @@ "mac" "708" } - "m_sideTime" // float + "m_waterTime" // float { "type" "float" @@ -100,7 +91,7 @@ "mac" "712" } - "m_zTime" // float + "m_sideTime" // float { "type" "float" @@ -109,7 +100,7 @@ "mac" "716" } - "m_stateTime" // float + "m_zTime" // float { "type" "float" @@ -118,7 +109,7 @@ "mac" "720" } - "m_attackSoundTime" // float + "m_stateTime" // float { "type" "float" @@ -126,6 +117,15 @@ "linux" "724" "mac" "724" } + + "m_attackSoundTime" // float + { + "type" "float" + + "windows" "708" + "linux" "728" + "mac" "728" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cmonstermaker.txt b/gamedata/common.games/entities.games/valve/offsets-cmonstermaker.txt index a21fedaac0..2d1c426105 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cmonstermaker.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cmonstermaker.txt @@ -23,21 +23,12 @@ { "type" "stringint" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_cNumMonsters" // int - { - "type" "integer" - "windows" "664" "linux" "684" "mac" "684" } - "m_cLiveChildren" // int + "m_cNumMonsters" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "688" } - "m_iMaxLiveChildren" // int + "m_cLiveChildren" // int { "type" "integer" @@ -55,25 +46,25 @@ "mac" "692" } - "m_flGround" // float + "m_iMaxLiveChildren" // int { - "type" "float" + "type" "integer" "windows" "676" "linux" "696" "mac" "696" } - "m_fActive" // BOOL + "m_flGround" // float { - "type" "integer" + "type" "float" "windows" "680" "linux" "700" "mac" "700" } - "m_fFadeChildren" // BOOL + "m_fActive" // BOOL { "type" "integer" @@ -81,6 +72,15 @@ "linux" "704" "mac" "704" } + + "m_fFadeChildren" // BOOL + { + "type" "integer" + + "windows" "688" + "linux" "708" + "mac" "708" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cmortar.txt b/gamedata/common.games/entities.games/valve/offsets-cmortar.txt index 73834f6b7c..563d2812af 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cmortar.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cmortar.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cnihilanth.txt b/gamedata/common.games/entities.games/valve/offsets-cnihilanth.txt index 97e882ed6b..53bc87a6a0 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cnihilanth.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cnihilanth.txt @@ -23,111 +23,102 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_flNextPainSound" // float { "type" "float" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_velocity" // Vector { "type" "vector" - "windows" "668" - "linux" "688" - "mac" "688" + "windows" "672" + "linux" "692" + "mac" "692" } "m_avelocity" // Vector { "type" "vector" - "windows" "680" - "linux" "700" - "mac" "700" + "windows" "684" + "linux" "704" + "mac" "704" } "m_vecTarget" // Vector { "type" "vector" - "windows" "692" - "linux" "712" - "mac" "712" + "windows" "696" + "linux" "716" + "mac" "716" } "m_posTarget" // Vector { "type" "vector" - "windows" "704" - "linux" "724" - "mac" "724" + "windows" "708" + "linux" "728" + "mac" "728" } "m_vecDesired" // Vector { "type" "vector" - "windows" "716" - "linux" "736" - "mac" "736" + "windows" "720" + "linux" "740" + "mac" "740" } "m_posDesired" // Vector { "type" "vector" - "windows" "728" - "linux" "748" - "mac" "748" + "windows" "732" + "linux" "752" + "mac" "752" } "m_flMinZ" // float { "type" "float" - "windows" "740" - "linux" "760" - "mac" "760" - } - - "m_flMaxZ" // float - { - "type" "float" - "windows" "744" "linux" "764" "mac" "764" } - "m_vecGoal" // Vector + "m_flMaxZ" // float { - "type" "vector" + "type" "float" "windows" "748" "linux" "768" "mac" "768" } - "m_flLastSeen" // float + "m_vecGoal" // Vector { - "type" "float" + "type" "vector" - "windows" "760" - "linux" "780" - "mac" "780" + "windows" "752" + "linux" "772" + "mac" "772" } - "m_flPrevSeen" // float + "m_flLastSeen" // float { "type" "float" @@ -136,16 +127,16 @@ "mac" "784" } - "m_irritation" // int + "m_flPrevSeen" // float { - "type" "integer" + "type" "float" "windows" "768" "linux" "788" "mac" "788" } - "m_iLevel" // int + "m_irritation" // int { "type" "integer" @@ -154,7 +145,7 @@ "mac" "792" } - "m_iTeleport" // int + "m_iLevel" // int { "type" "integer" @@ -163,50 +154,59 @@ "mac" "796" } - "m_hRecharger" // EHANDLE + "m_iTeleport" // int { - "type" "ehandle" + "type" "integer" "windows" "780" "linux" "800" "mac" "800" } + "m_hRecharger" // EHANDLE + { + "type" "ehandle" + + "windows" "784" + "linux" "804" + "mac" "804" + } + "m_hSphere" // EHANDLE[20] { "type" "ehandle" "size" "20" - "windows" "788" - "linux" "808" - "mac" "808" + "windows" "792" + "linux" "812" + "mac" "812" } "m_iActiveSpheres" // int { "type" "integer" - "windows" "948" - "linux" "968" - "mac" "968" + "windows" "952" + "linux" "972" + "mac" "972" } "m_flAdj" // float { "type" "float" - "windows" "952" - "linux" "972" - "mac" "972" + "windows" "956" + "linux" "976" + "mac" "976" } "m_pBall" // CSprite* { "type" "classptr" - "windows" "956" - "linux" "976" - "mac" "976" + "windows" "960" + "linux" "980" + "mac" "980" } "m_szRechargerTarget" // char[64] @@ -214,9 +214,9 @@ "type" "string" "size" "64" - "windows" "960" - "linux" "980" - "mac" "980" + "windows" "964" + "linux" "984" + "mac" "984" } "m_szDrawUse" // char[64] @@ -224,9 +224,9 @@ "type" "string" "size" "64" - "windows" "1024" - "linux" "1044" - "mac" "1044" + "windows" "1028" + "linux" "1048" + "mac" "1048" } "m_szTeleportUse" // char[64] @@ -234,9 +234,9 @@ "type" "string" "size" "64" - "windows" "1088" - "linux" "1108" - "mac" "1108" + "windows" "1092" + "linux" "1112" + "mac" "1112" } "m_szTeleportTouch" // char[64] @@ -244,9 +244,9 @@ "type" "string" "size" "64" - "windows" "1152" - "linux" "1172" - "mac" "1172" + "windows" "1156" + "linux" "1176" + "mac" "1176" } "m_szDeadUse" // char[64] @@ -254,9 +254,9 @@ "type" "string" "size" "64" - "windows" "1216" - "linux" "1236" - "mac" "1236" + "windows" "1220" + "linux" "1240" + "mac" "1240" } "m_szDeadTouch" // char[64] @@ -264,27 +264,27 @@ "type" "string" "size" "64" - "windows" "1280" - "linux" "1300" - "mac" "1300" + "windows" "1284" + "linux" "1304" + "mac" "1304" } "m_flShootEnd" // float { "type" "float" - "windows" "1344" - "linux" "1364" - "mac" "1364" + "windows" "1348" + "linux" "1368" + "mac" "1368" } "m_flShootTime" // float { "type" "float" - "windows" "1348" - "linux" "1368" - "mac" "1368" + "windows" "1352" + "linux" "1372" + "mac" "1372" } "m_hFriend" // EHANDLE[3] @@ -292,9 +292,9 @@ "type" "ehandle" "size" "3" - "windows" "1352" - "linux" "1372" - "mac" "1372" + "windows" "1356" + "linux" "1376" + "mac" "1376" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cnihilanthhvr.txt b/gamedata/common.games/entities.games/valve/offsets-cnihilanthhvr.txt index 9ce898e97e..6c17127920 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cnihilanthhvr.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cnihilanthhvr.txt @@ -23,45 +23,45 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_vecIdeal" // Vector { "type" "vector" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_pNihilanth" // CNihilanth* { "type" "classptr" - "windows" "676" - "linux" "696" - "mac" "696" + "windows" "680" + "linux" "700" + "mac" "700" } "m_hTouch" // EHANDLE { "type" "ehandle" - "windows" "680" - "linux" "700" - "mac" "700" + "windows" "684" + "linux" "704" + "mac" "704" } "m_nFrames" // int { "type" "integer" - "windows" "688" - "linux" "708" - "mac" "708" + "windows" "692" + "linux" "712" + "mac" "712" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cosprey.txt b/gamedata/common.games/entities.games/valve/offsets-cosprey.txt index 0902f2c3b3..bf2e078497 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cosprey.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cosprey.txt @@ -23,102 +23,93 @@ { "type" "classptr" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_vel1" // Vector { "type" "vector" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_vel2" // Vector { "type" "vector" - "windows" "676" - "linux" "696" - "mac" "696" + "windows" "680" + "linux" "700" + "mac" "700" } "m_pos1" // Vector { "type" "vector" - "windows" "688" - "linux" "708" - "mac" "708" + "windows" "692" + "linux" "712" + "mac" "712" } "m_pos2" // Vector { "type" "vector" - "windows" "700" - "linux" "720" - "mac" "720" + "windows" "704" + "linux" "724" + "mac" "724" } "m_ang1" // Vector { "type" "vector" - "windows" "712" - "linux" "732" - "mac" "732" + "windows" "716" + "linux" "736" + "mac" "736" } "m_ang2" // Vector { "type" "vector" - "windows" "724" - "linux" "744" - "mac" "744" + "windows" "728" + "linux" "748" + "mac" "748" } "m_startTime" // float { "type" "float" - "windows" "736" - "linux" "756" - "mac" "756" - } - - "m_dTime" // float - { - "type" "float" - "windows" "740" "linux" "760" "mac" "760" } - "m_velocity" // Vector + "m_dTime" // float { - "type" "vector" + "type" "float" "windows" "744" "linux" "764" "mac" "764" } - "m_flIdealtilt" // float + "m_velocity" // Vector { - "type" "float" + "type" "vector" - "windows" "756" - "linux" "776" - "mac" "776" + "windows" "748" + "linux" "768" + "mac" "768" } - "m_flRotortilt" // float + "m_flIdealtilt" // float { "type" "float" @@ -127,7 +118,7 @@ "mac" "780" } - "m_flRightHealth" // float + "m_flRotortilt" // float { "type" "float" @@ -136,7 +127,7 @@ "mac" "784" } - "m_flLeftHealth" // float + "m_flRightHealth" // float { "type" "float" @@ -145,33 +136,42 @@ "mac" "788" } - "m_iUnits" // int + "m_flLeftHealth" // float { - "type" "integer" + "type" "float" "windows" "772" "linux" "792" "mac" "792" } - "m_hGrunt" // EHANDLE[24] + "m_iUnits" // int { - "type" "ehandle" - "size" "24" + "type" "integer" "windows" "776" "linux" "796" "mac" "796" } + "m_hGrunt" // EHANDLE[24] + { + "type" "ehandle" + "size" "24" + + "windows" "780" + "linux" "800" + "mac" "800" + } + "m_vecOrigin" // Vector[24] { "type" "vector" "size" "24" - "windows" "968" - "linux" "988" - "mac" "988" + "windows" "972" + "linux" "992" + "mac" "992" } "m_hRepel" // EHANDLE[4] @@ -179,30 +179,21 @@ "type" "ehandle" "size" "4" - "windows" "1256" - "linux" "1276" - "mac" "1276" + "windows" "1260" + "linux" "1280" + "mac" "1280" } "m_iSoundState" // int { "type" "integer" - "windows" "1288" - "linux" "1308" - "mac" "1308" - } - - "m_iSpriteTexture" // int - { - "type" "integer" - "windows" "1292" "linux" "1312" "mac" "1312" } - "m_iPitch" // int + "m_iSpriteTexture" // int { "type" "integer" @@ -211,7 +202,7 @@ "mac" "1316" } - "m_iExplode" // int + "m_iPitch" // int { "type" "integer" @@ -220,7 +211,7 @@ "mac" "1320" } - "m_iTailGibs" // int + "m_iExplode" // int { "type" "integer" @@ -229,7 +220,7 @@ "mac" "1324" } - "m_iBodyGibs" // int + "m_iTailGibs" // int { "type" "integer" @@ -238,7 +229,7 @@ "mac" "1328" } - "m_iEngineGibs" // int + "m_iBodyGibs" // int { "type" "integer" @@ -247,7 +238,7 @@ "mac" "1332" } - "m_iDoLeftSmokePuff" // int + "m_iEngineGibs" // int { "type" "integer" @@ -256,7 +247,7 @@ "mac" "1336" } - "m_iDoRightSmokePuff" // int + "m_iDoLeftSmokePuff" // int { "type" "integer" @@ -264,6 +255,15 @@ "linux" "1340" "mac" "1340" } + + "m_iDoRightSmokePuff" // int + { + "type" "integer" + + "windows" "1324" + "linux" "1344" + "mac" "1344" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-croach.txt b/gamedata/common.games/entities.games/valve/offsets-croach.txt index 0a30efbba8..b300e85172 100644 --- a/gamedata/common.games/entities.games/valve/offsets-croach.txt +++ b/gamedata/common.games/entities.games/valve/offsets-croach.txt @@ -23,30 +23,21 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_flNextSmellTime" // float - { - "type" "float" - "windows" "664" "linux" "684" "mac" "684" } - "m_fLightHacked" // BOOL + "m_flNextSmellTime" // float { - "type" "integer" + "type" "float" "windows" "668" "linux" "688" "mac" "688" } - "m_iMode" // int + "m_fLightHacked" // BOOL { "type" "integer" @@ -54,6 +45,15 @@ "linux" "692" "mac" "692" } + + "m_iMode" // int + { + "type" "integer" + + "windows" "676" + "linux" "696" + "mac" "696" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-crpgrocket.txt b/gamedata/common.games/entities.games/valve/offsets-crpgrocket.txt index b7708d05ac..079bd37135 100644 --- a/gamedata/common.games/entities.games/valve/offsets-crpgrocket.txt +++ b/gamedata/common.games/entities.games/valve/offsets-crpgrocket.txt @@ -23,27 +23,27 @@ { "type" "integer" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_flIgniteTime" // float { "type" "float" - "windows" "668" - "linux" "688" - "mac" "688" + "windows" "672" + "linux" "692" + "mac" "692" } "m_pLauncher" // CRpg* { "type" "classptr" - "windows" "672" - "linux" "692" - "mac" "692" + "windows" "676" + "linux" "696" + "mac" "696" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cscientist.txt b/gamedata/common.games/entities.games/valve/offsets-cscientist.txt index 9a0bdf117c..0d99d9fbc8 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cscientist.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cscientist.txt @@ -23,27 +23,27 @@ { "type" "float" - "windows" "772" - "linux" "792" - "mac" "792" + "windows" "776" + "linux" "796" + "mac" "796" } "m_healTime" // float { "type" "float" - "windows" "776" - "linux" "796" - "mac" "796" + "windows" "780" + "linux" "800" + "mac" "800" } "m_fearTime" // float { "type" "float" - "windows" "780" - "linux" "800" - "mac" "800" + "windows" "784" + "linux" "804" + "mac" "804" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-csittingscientist.txt b/gamedata/common.games/entities.games/valve/offsets-csittingscientist.txt index 466443ec27..53d2b1a278 100644 --- a/gamedata/common.games/entities.games/valve/offsets-csittingscientist.txt +++ b/gamedata/common.games/entities.games/valve/offsets-csittingscientist.txt @@ -23,27 +23,27 @@ { "type" "integer" - "windows" "784" - "linux" "804" - "mac" "804" + "windows" "788" + "linux" "808" + "mac" "808" } "m_headTurn" // int { "type" "integer" - "windows" "788" - "linux" "808" - "mac" "808" + "windows" "792" + "linux" "812" + "mac" "812" } "m_flResponseDelay" // float { "type" "float" - "windows" "792" - "linux" "812" - "mac" "812" + "windows" "796" + "linux" "816" + "mac" "816" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-csquadmonster.txt b/gamedata/common.games/entities.games/valve/offsets-csquadmonster.txt index 39e7a5f170..52463a3915 100644 --- a/gamedata/common.games/entities.games/valve/offsets-csquadmonster.txt +++ b/gamedata/common.games/entities.games/valve/offsets-csquadmonster.txt @@ -23,9 +23,9 @@ { "type" "ehandle" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } "m_hSquadMember" // EHANDLE[4] @@ -33,39 +33,30 @@ "type" "ehandle" "size" "4" - "windows" "668" - "linux" "688" - "mac" "688" + "windows" "672" + "linux" "692" + "mac" "692" } "m_afSquadSlots" // int { "type" "integer" - "windows" "700" - "linux" "720" - "mac" "720" - } - - "m_flLastEnemySightTime" // float - { - "type" "float" - "windows" "704" "linux" "724" "mac" "724" } - "m_fEnemyEluded" // BOOL + "m_flLastEnemySightTime" // float { - "type" "integer" + "type" "float" "windows" "708" "linux" "728" "mac" "728" } - "m_iMySlot" // int + "m_fEnemyEluded" // BOOL { "type" "integer" @@ -73,6 +64,15 @@ "linux" "732" "mac" "732" } + + "m_iMySlot" // int + { + "type" "integer" + + "windows" "716" + "linux" "736" + "mac" "736" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-csqueakgrenade.txt b/gamedata/common.games/entities.games/valve/offsets-csqueakgrenade.txt index 2b457a1fb9..ec1f6bac4d 100644 --- a/gamedata/common.games/entities.games/valve/offsets-csqueakgrenade.txt +++ b/gamedata/common.games/entities.games/valve/offsets-csqueakgrenade.txt @@ -23,63 +23,63 @@ { "type" "float" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_vecTarget" // Vector { "type" "vector" - "windows" "668" - "linux" "688" - "mac" "688" + "windows" "672" + "linux" "692" + "mac" "692" } "m_flNextHunt" // float { "type" "float" - "windows" "680" - "linux" "700" - "mac" "700" + "windows" "684" + "linux" "704" + "mac" "704" } "m_flNextHit" // float { "type" "float" - "windows" "684" - "linux" "704" - "mac" "704" + "windows" "688" + "linux" "708" + "mac" "708" } "m_posPrev" // Vector { "type" "vector" - "windows" "688" - "linux" "708" - "mac" "708" + "windows" "692" + "linux" "712" + "mac" "712" } "m_hOwner" // EHANDLE { "type" "ehandle" - "windows" "700" - "linux" "720" - "mac" "720" + "windows" "704" + "linux" "724" + "mac" "724" } "m_iMyClass" // int { "type" "integer" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-ctalkmonster.txt b/gamedata/common.games/entities.games/valve/offsets-ctalkmonster.txt index 7d01a050c7..b933c7c8ad 100644 --- a/gamedata/common.games/entities.games/valve/offsets-ctalkmonster.txt +++ b/gamedata/common.games/entities.games/valve/offsets-ctalkmonster.txt @@ -23,21 +23,12 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_nSpeak" // int - { - "type" "integer" - "windows" "664" "linux" "684" "mac" "684" } - "m_voicePitch" // int + "m_nSpeak" // int { "type" "integer" @@ -46,35 +37,35 @@ "mac" "688" } - "m_szGrp" // const char*[18] + "m_voicePitch" // int { - "type" "stringptr" - "size" "18" + "type" "integer" "windows" "672" "linux" "692" "mac" "692" } - "m_useTime" // float + "m_szGrp" // const char*[18] { - "type" "float" + "type" "stringptr" + "size" "18" - "windows" "744" - "linux" "764" - "mac" "764" + "windows" "676" + "linux" "696" + "mac" "696" } - "m_iszUse" // int + "m_useTime" // float { - "type" "integer" + "type" "float" "windows" "748" "linux" "768" "mac" "768" } - "m_iszUnUse" // int + "m_iszUse" // int { "type" "integer" @@ -83,16 +74,16 @@ "mac" "772" } - "m_flLastSaidSmelled" // float + "m_iszUnUse" // int { - "type" "float" + "type" "integer" "windows" "756" "linux" "776" "mac" "776" } - "m_flStopTalkTime" // float + "m_flLastSaidSmelled" // float { "type" "float" @@ -101,14 +92,23 @@ "mac" "780" } - "m_hTalkTarget" // EHANDLE + "m_flStopTalkTime" // float { - "type" "ehandle" + "type" "float" "windows" "764" "linux" "784" "mac" "784" } + + "m_hTalkTarget" // EHANDLE + { + "type" "ehandle" + + "windows" "768" + "linux" "788" + "mac" "788" + } } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-ctentacle.txt b/gamedata/common.games/entities.games/valve/offsets-ctentacle.txt index 55860e9dba..bd64b9717e 100644 --- a/gamedata/common.games/entities.games/valve/offsets-ctentacle.txt +++ b/gamedata/common.games/entities.games/valve/offsets-ctentacle.txt @@ -23,21 +23,12 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" - } - - "m_iGoalAnim" // int - { - "type" "integer" - "windows" "664" "linux" "684" "mac" "684" } - "m_iLevel" // int + "m_iGoalAnim" // int { "type" "integer" @@ -46,7 +37,7 @@ "mac" "688" } - "m_iDir" // int + "m_iLevel" // int { "type" "integer" @@ -55,16 +46,16 @@ "mac" "692" } - "m_flFramerateAdj" // float + "m_iDir" // int { - "type" "float" + "type" "integer" "windows" "676" "linux" "696" "mac" "696" } - "m_flSoundYaw" // float + "m_flFramerateAdj" // float { "type" "float" @@ -73,25 +64,25 @@ "mac" "700" } - "m_iSoundLevel" // int + "m_flSoundYaw" // float { - "type" "integer" + "type" "float" "windows" "684" "linux" "704" "mac" "704" } - "m_flSoundTime" // float + "m_iSoundLevel" // int { - "type" "float" + "type" "integer" "windows" "688" "linux" "708" "mac" "708" } - "m_flSoundRadius" // float + "m_flSoundTime" // float { "type" "float" @@ -100,25 +91,25 @@ "mac" "712" } - "m_iHitDmg" // int + "m_flSoundRadius" // float { - "type" "integer" + "type" "float" "windows" "696" "linux" "716" "mac" "716" } - "m_flHitTime" // float + "m_iHitDmg" // int { - "type" "float" + "type" "integer" "windows" "700" "linux" "720" "mac" "720" } - "m_flTapRadius" // float + "m_flHitTime" // float { "type" "float" @@ -127,7 +118,7 @@ "mac" "724" } - "m_flNextSong" // float + "m_flTapRadius" // float { "type" "float" @@ -136,7 +127,7 @@ "mac" "728" } - "m_flMaxYaw" // float + "m_flNextSong" // float { "type" "float" @@ -145,31 +136,40 @@ "mac" "732" } - "m_iTapSound" // int + "m_flMaxYaw" // float { - "type" "integer" + "type" "float" "windows" "716" "linux" "736" "mac" "736" } - "m_vecPrevSound" // Vector + "m_iTapSound" // int { - "type" "vector" + "type" "integer" "windows" "720" "linux" "740" "mac" "740" } + "m_vecPrevSound" // Vector + { + "type" "vector" + + "windows" "724" + "linux" "744" + "mac" "744" + } + "m_flPrevSoundTime" // float { "type" "float" - "windows" "732" - "linux" "752" - "mac" "752" + "windows" "736" + "linux" "756" + "mac" "756" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-ctesthull.txt b/gamedata/common.games/entities.games/valve/offsets-ctesthull.txt index db961072ae..591df7ab4e 100644 --- a/gamedata/common.games/entities.games/valve/offsets-ctesthull.txt +++ b/gamedata/common.games/entities.games/valve/offsets-ctesthull.txt @@ -23,9 +23,9 @@ { "type" "vector" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-ctripminegrenade.txt b/gamedata/common.games/entities.games/valve/offsets-ctripminegrenade.txt index 2138da2ca5..3351a9a69a 100644 --- a/gamedata/common.games/entities.games/valve/offsets-ctripminegrenade.txt +++ b/gamedata/common.games/entities.games/valve/offsets-ctripminegrenade.txt @@ -23,81 +23,81 @@ { "type" "float" - "windows" "664" - "linux" "684" - "mac" "684" + "windows" "668" + "linux" "688" + "mac" "688" } "m_vecDir" // Vector { "type" "vector" - "windows" "668" - "linux" "688" - "mac" "688" + "windows" "672" + "linux" "692" + "mac" "692" } "m_vecEnd" // Vector { "type" "vector" - "windows" "680" - "linux" "700" - "mac" "700" + "windows" "684" + "linux" "704" + "mac" "704" } "m_flBeamLength" // float { "type" "float" - "windows" "692" - "linux" "712" - "mac" "712" + "windows" "696" + "linux" "716" + "mac" "716" } "m_hOwner" // EHANDLE { "type" "ehandle" - "windows" "696" - "linux" "716" - "mac" "716" + "windows" "700" + "linux" "720" + "mac" "720" } "m_pBeam" // CBeam* { "type" "classptr" - "windows" "704" - "linux" "724" - "mac" "724" + "windows" "708" + "linux" "728" + "mac" "728" } "m_posOwner" // Vector { "type" "vector" - "windows" "708" - "linux" "728" - "mac" "728" + "windows" "712" + "linux" "732" + "mac" "732" } "m_angleOwner" // Vector { "type" "vector" - "windows" "720" - "linux" "740" - "mac" "740" + "windows" "724" + "linux" "744" + "mac" "744" } "m_pRealOwner" // edict_t* { "type" "edict" - "windows" "732" - "linux" "752" - "mac" "752" + "windows" "736" + "linux" "756" + "mac" "756" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cturret.txt b/gamedata/common.games/entities.games/valve/offsets-cturret.txt index 4ca787ff2c..01607c582c 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cturret.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cturret.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "772" - "linux" "792" - "mac" "792" + "windows" "776" + "linux" "796" + "mac" "796" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-cwreckage.txt b/gamedata/common.games/entities.games/valve/offsets-cwreckage.txt index 323065b44d..c6b57623f9 100644 --- a/gamedata/common.games/entities.games/valve/offsets-cwreckage.txt +++ b/gamedata/common.games/entities.games/valve/offsets-cwreckage.txt @@ -23,9 +23,9 @@ { "type" "integer" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/gamedata/common.games/entities.games/valve/offsets-czombie.txt b/gamedata/common.games/entities.games/valve/offsets-czombie.txt index 6625538ffd..cf4e04009d 100644 --- a/gamedata/common.games/entities.games/valve/offsets-czombie.txt +++ b/gamedata/common.games/entities.games/valve/offsets-czombie.txt @@ -23,9 +23,9 @@ { "type" "float" - "windows" "660" - "linux" "680" - "mac" "680" + "windows" "664" + "linux" "684" + "mac" "684" } } } diff --git a/modules/cstrike/csx/AMBuilder b/modules/cstrike/csx/AMBuilder index fdb2a10553..b7d7451e65 100644 --- a/modules/cstrike/csx/AMBuilder +++ b/modules/cstrike/csx/AMBuilder @@ -3,6 +3,10 @@ import os.path binary = AMXX.MetaModule(builder, 'csx') +binary.compiler.defines += [ + 'HAVE_STDINT_H', +] + binary.sources = [ '../../../public/sdk/amxxmodule.cpp', 'CRank.cpp', diff --git a/modules/cstrike/csx/CMisc.cpp b/modules/cstrike/csx/CMisc.cpp index 218b0373f1..97f15a09fa 100644 --- a/modules/cstrike/csx/CMisc.cpp +++ b/modules/cstrike/csx/CMisc.cpp @@ -127,11 +127,11 @@ void CPlayer::Connect(const char* address ){ void CPlayer::restartStats(bool all) { - if ( all ) memset(weapons,0,sizeof(weapons)); - memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats - memset(attackers,0,sizeof(attackers)); - memset(victims,0,sizeof(victims)); - memset(&life,0,sizeof(life)); + if ( all ) memset(&weapons,0,sizeof(weapons)); + memset(&weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats + memset(&attackers,0,sizeof(attackers)); + memset(&victims,0,sizeof(victims)); + life = {}; } void CPlayer::Init( int pi, edict_t* pe ) diff --git a/modules/dod/dodfun/AMBuilder b/modules/dod/dodfun/AMBuilder index 7599c5e13a..64f26ccb01 100644 --- a/modules/dod/dodfun/AMBuilder +++ b/modules/dod/dodfun/AMBuilder @@ -3,6 +3,10 @@ import os.path binary = AMXX.MetaModule(builder, 'dodfun') +binary.compiler.defines += [ + 'HAVE_STDINT_H', +] + binary.sources = [ '../../../public/sdk/amxxmodule.cpp', 'NBase.cpp', diff --git a/modules/dod/dodfun/CMisc.h b/modules/dod/dodfun/CMisc.h index 2861ee786e..a6848bb669 100644 --- a/modules/dod/dodfun/CMisc.h +++ b/modules/dod/dodfun/CMisc.h @@ -24,14 +24,14 @@ #define DODFUN_VERSION "1.0.2" // DoD Player -#define STEAM_PDOFFSET_WDEPLOY 229 + LINUXOFFSET // weapon deploy +#define STEAM_PDOFFSET_WDEPLOY 230 + LINUXOFFSET // weapon deploy -#define STEAM_PDOFFSET_TEAMNAME 1396 + (LINUXOFFSET * sizeof(char)) // team name 349 char[16] -#define STEAM_PDOFFSET_CLASS 366 + LINUXOFFSET // player class -#define STEAM_PDOFFSET_RCLASS 367 + LINUXOFFSET // random class +#define STEAM_PDOFFSET_TEAMNAME 1400 + (LINUXOFFSET * sizeof(char)) // team name 349 char[16] +#define STEAM_PDOFFSET_CLASS 367 + LINUXOFFSET // player class +#define STEAM_PDOFFSET_RCLASS 368 + LINUXOFFSET // random class -#define STEAM_PDOFFSET_SCORE 475 + LINUXOFFSET // score -#define STEAM_PDOFFSET_DEATHS 476 + LINUXOFFSET // deaths +#define STEAM_PDOFFSET_SCORE 476 + LINUXOFFSET // score +#define STEAM_PDOFFSET_DEATHS 477 + LINUXOFFSET // deaths // DoD Control Point struct pd_dcp { diff --git a/modules/dod/dodfun/NPD.cpp b/modules/dod/dodfun/NPD.cpp index 1d671756e6..98cf2fd364 100644 --- a/modules/dod/dodfun/NPD.cpp +++ b/modules/dod/dodfun/NPD.cpp @@ -206,7 +206,7 @@ static cell AMX_NATIVE_CALL set_user_teamname(AMX *amx, cell *params){ if ( pPlayer->ingame ){ int iLen; - char *szTeamName = MF_GetAmxString(amx, params[1], 0, &iLen); + char *szTeamName = MF_GetAmxString(amx, params[2], 0, &iLen); pPlayer->setTeamName(szTeamName); diff --git a/modules/dod/dodx/AMBuilder b/modules/dod/dodx/AMBuilder index ded8f6f0d9..a6f04b1bdf 100644 --- a/modules/dod/dodx/AMBuilder +++ b/modules/dod/dodx/AMBuilder @@ -3,6 +3,10 @@ import os.path binary = AMXX.MetaModule(builder, 'dodx') +binary.compiler.defines += [ + 'HAVE_STDINT_H', +] + binary.sources = [ '../../../public/sdk/amxxmodule.cpp', 'CRank.cpp', diff --git a/modules/dod/dodx/CMisc.cpp b/modules/dod/dodx/CMisc.cpp index 7a2cdcaa87..f736495011 100644 --- a/modules/dod/dodx/CMisc.cpp +++ b/modules/dod/dodx/CMisc.cpp @@ -94,15 +94,15 @@ void CPlayer::restartStats(bool all) { if ( all ) { - memset(weapons,0,sizeof(weapons)); - memset(&round,0,sizeof(round)); - memset(weaponsRnd,0,sizeof(weaponsRnd)); + memset(&weapons,0,sizeof(weapons)); + memset(static_cast(&round),0,sizeof(round)); + memset(&weaponsRnd,0,sizeof(weaponsRnd)); } - memset(weaponsLife,0,sizeof(weaponsLife)); //DEC-Weapon (Round) stats - memset(attackers,0,sizeof(attackers)); - memset(victims,0,sizeof(victims)); - memset(&life,0,sizeof(life)); + memset(&weaponsLife,0,sizeof(weaponsLife)); //DEC-Weapon (Round) stats + memset(&attackers,0,sizeof(attackers)); + memset(&victims,0,sizeof(victims)); + life = {}; } void CPlayer::Init( int pi, edict_t* pe ) diff --git a/modules/dod/dodx/moduleconfig.cpp b/modules/dod/dodx/moduleconfig.cpp index 00606bfb7e..6009d7297b 100644 --- a/modules/dod/dodx/moduleconfig.cpp +++ b/modules/dod/dodx/moduleconfig.cpp @@ -172,8 +172,8 @@ void PlayerPreThink_Post(edict_t *pEntity) if(pPlayer->clearRound && pPlayer->clearRound < gpGlobals->time) { pPlayer->clearRound = 0.0f; - memset(&pPlayer->round,0,sizeof(pPlayer->round)); - memset(pPlayer->weaponsRnd,0,sizeof(pPlayer->weaponsRnd)); + memset(static_cast(&pPlayer->round),0,sizeof(pPlayer->round)); + memset(&pPlayer->weaponsRnd,0,sizeof(pPlayer->weaponsRnd)); } if (pPlayer->sendScore && pPlayer->sendScore < gpGlobals->time) diff --git a/modules/fakemeta/fm_tr.cpp b/modules/fakemeta/fm_tr.cpp index 6b735f06f6..1bd9d671ae 100644 --- a/modules/fakemeta/fm_tr.cpp +++ b/modules/fakemeta/fm_tr.cpp @@ -27,7 +27,6 @@ static cell AMX_NATIVE_CALL set_tr(AMX *amx, cell *params) } cell *ptr = MF_GetAmxAddr(amx, params[2]); - edict_t *e; switch (type) { @@ -85,12 +84,13 @@ static cell AMX_NATIVE_CALL set_tr(AMX *amx, cell *params) } case TR_pHit: { - e = TypeConversion.id_to_edict(*ptr); - if (*ptr != -1 && FNullEnt(e)) - return 0; //TODO: return error - gfm_tr->pHit = e; + const auto pEdict = TypeConversion.id_to_edict(*ptr); + if (pEdict == nullptr) + { + return 0; + } + gfm_tr->pHit = pEdict; return 1; - break; } case TR_iHitgroup: { diff --git a/modules/fakemeta/fm_tr2.cpp b/modules/fakemeta/fm_tr2.cpp index 57db06c99b..83edbc7a81 100644 --- a/modules/fakemeta/fm_tr2.cpp +++ b/modules/fakemeta/fm_tr2.cpp @@ -98,12 +98,13 @@ static cell AMX_NATIVE_CALL set_tr2(AMX *amx, cell *params) } case TR_pHit: { - edict_t *e = TypeConversion.id_to_edict(*ptr); - if (*ptr != -1 && FNullEnt(e)) - return 0; //TODO: return error - tr->pHit = e; + const auto pEdict = TypeConversion.id_to_edict(*ptr); + if (pEdict == nullptr) + { + return 0; + } + tr->pHit = pEdict; return 1; - break; } case TR_iHitgroup: { @@ -1254,7 +1255,7 @@ static cell AMX_NATIVE_CALL create_tr2(AMX *amx, cell *params) tr = g_FreeTRs.front(); g_FreeTRs.pop(); } - memset(tr, 0, sizeof(TraceResult)); + memset(static_cast(tr), 0, sizeof(TraceResult)); return reinterpret_cast(tr); } diff --git a/modules/fun/AMBuilder b/modules/fun/AMBuilder index 758f2d21b9..660ce63788 100644 --- a/modules/fun/AMBuilder +++ b/modules/fun/AMBuilder @@ -3,6 +3,10 @@ import os.path binary = AMXX.MetaModule(builder, 'fun') +binary.compiler.defines += [ + 'HAVE_STDINT_H', +] + binary.sources = [ '../../public/sdk/amxxmodule.cpp', '../../public/memtools/MemoryUtils.cpp', diff --git a/modules/fun/fun.cpp b/modules/fun/fun.cpp index 53be8696bb..943ff05fc8 100644 --- a/modules/fun/fun.cpp +++ b/modules/fun/fun.cpp @@ -495,7 +495,6 @@ void TraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *shoot if (!(Players[shooterIndex].GetBodyHits(targetIndex) & (1 << ptr->iHitgroup))) { ptr->flFraction = 1.0; - RETURN_META(MRES_HANDLED); } } diff --git a/modules/geoip/AMBuilder b/modules/geoip/AMBuilder index 2e79c52eec..ab1991f35f 100644 --- a/modules/geoip/AMBuilder +++ b/modules/geoip/AMBuilder @@ -3,7 +3,8 @@ import os.path binary = AMXX.MetaModule(builder, 'geoip') -binary.compiler.cxxincludes += [ +binary.compiler.includes += [ + os.path.join(builder.currentSourcePath, '..', '..', 'amxmodx'), os.path.join(builder.currentSourcePath, '..', '..', 'third_party', 'libmaxminddb') ] diff --git a/modules/geoip/geoip_main.cpp b/modules/geoip/geoip_main.cpp index 3e9370de50..46273bd570 100644 --- a/modules/geoip/geoip_main.cpp +++ b/modules/geoip/geoip_main.cpp @@ -18,12 +18,15 @@ MMDB_s HandleDB; ke::Vector LangList; +bool NativesRegistered; void OnAmxxAttach() { if (loadDatabase()) { MF_AddNatives(GeoipNatives); + + NativesRegistered = true; } REG_SVR_COMMAND("geoip", OnGeoipCommand); @@ -38,7 +41,7 @@ void OnAmxxDetach() void OnGeoipCommand() { - const char *cmd = CMD_ARGV(1); + const auto cmd = CMD_ARGV(1); if (!strcmp(cmd, "version")) { @@ -48,7 +51,7 @@ void OnGeoipCommand() return; } - const char *meta_dump = "\n" + const auto meta_dump = "\n" " Database metadata\n" " Node count: %i\n" " Record size: %i bits\n" @@ -59,7 +62,7 @@ void OnGeoipCommand() " Languages: "; char date[40]; - strftime(date, sizeof(date), "%Y-%m-%d %H:%M:%S UTC", gmtime((const time_t *)&HandleDB.metadata.build_epoch)); + strftime(date, sizeof date, "%Y-%m-%d %H:%M:%S UTC", gmtime(reinterpret_cast(&HandleDB.metadata.build_epoch))); fprintf(stdout, meta_dump, HandleDB.metadata.node_count, @@ -100,7 +103,7 @@ void OnGeoipCommand() return; } - int num_args = CMD_ARGC(); + const auto num_args = CMD_ARGC(); if (num_args < 3) { @@ -108,12 +111,12 @@ void OnGeoipCommand() return; } - char *ip = stripPort((char *)CMD_ARGV(2)); + const auto ip = stripPort(const_cast(CMD_ARGV(2))); - int gai_error = 0; - int mmdb_error = 0; + auto gai_error = 0; + auto mmdb_error = 0; - MMDB_lookup_result_s result = MMDB_lookup_string(&HandleDB, ip, &gai_error, &mmdb_error); + auto result = MMDB_lookup_string(&HandleDB, ip, &gai_error, &mmdb_error); if (gai_error != 0 || mmdb_error != MMDB_SUCCESS || !result.found_entry) { @@ -121,17 +124,17 @@ void OnGeoipCommand() return; } - MMDB_entry_data_list_s *entry_data_list = NULL; - int status = -1; + MMDB_entry_data_list_s *entry_data_list = nullptr; + int status; - if ((status = MMDB_get_entry_data_list(&result.entry, &entry_data_list)) != MMDB_SUCCESS || entry_data_list == NULL) + if ((status = MMDB_get_entry_data_list(&result.entry, &entry_data_list)) != MMDB_SUCCESS || entry_data_list == nullptr) { MF_PrintSrvConsole("\n Could not retrieve data list - %s.\n\n", MMDB_strerror(status)); return; } - const char *file = NULL; - FILE *fp = NULL; + const char *file = nullptr; + FILE *fp = nullptr; if (num_args > 3) { @@ -141,7 +144,7 @@ void OnGeoipCommand() if (!fp) { - file = NULL; + file = nullptr; fp = stdout; } @@ -156,12 +159,29 @@ void OnGeoipCommand() MMDB_free_entry_data_list(entry_data_list); } + else if (!strcmp(cmd, "reload")) + { + const auto isDatabaseLoaded = HandleDB.filename != nullptr; + + if (isDatabaseLoaded) + { + MMDB_close(&HandleDB); + } + + if (loadDatabase() && !NativesRegistered) + { + MF_AddNatives(GeoipNatives); + + NativesRegistered = true; + } + } else { MF_PrintSrvConsole("\n"); MF_PrintSrvConsole(" Usage: geoip [argument]\n"); MF_PrintSrvConsole(" Commands:\n"); MF_PrintSrvConsole(" version - display geoip database metadata\n"); + MF_PrintSrvConsole(" reload - reload geoip database\n"); MF_PrintSrvConsole(" dump [output file] - dump all data from an IP address formatted in a JSON-ish fashion.\n"); MF_PrintSrvConsole(" An output file is mod-based and if not provided, it will print in the console.\n"); MF_PrintSrvConsole("\n"); @@ -170,7 +190,9 @@ void OnGeoipCommand() bool loadDatabase() { - if (HandleDB.filename) // Already loaded. + const auto isDatabaseLoaded = HandleDB.filename != nullptr; + + if (isDatabaseLoaded) { return true; } @@ -181,18 +203,18 @@ bool loadDatabase() "Country" // Is the default shipped database with AMXX. }; - const char *modName = MF_GetModname(); - const char *dataDir = MF_GetLocalInfo("amxx_datadir", "addons/amxmodx/data"); + const auto modName = MF_GetModname(); + const auto dataDir = MF_GetLocalInfo("amxx_datadir", "addons/amxmodx/data"); - char file[255]; - int status = -1; + char file[260]; + auto status = -1; - for (size_t i = 0; i < ARRAYSIZE(databases); ++i) + for (auto& database : databases) { // MF_BuildPathname not used because backslash // makes CreateFileMapping failing under windows. - ke::SafeSprintf(file, sizeof(file), "%s/%s/GeoLite2-%s.mmdb", modName, dataDir, databases[i]); + ke::SafeSprintf(file, sizeof file, "%s/%s/GeoLite2-%s.mmdb", modName, dataDir, database); status = MMDB_open(file, MMDB_MODE_MMAP, &HandleDB); @@ -200,7 +222,8 @@ bool loadDatabase() { break; } - else if (status != MMDB_FILE_OPEN_ERROR) + + if (status != MMDB_FILE_OPEN_ERROR) { MF_Log("Could not open %s - %s", file, MMDB_strerror(status)); diff --git a/modules/geoip/msvc12/geoip.vcxproj b/modules/geoip/msvc12/geoip.vcxproj index b86a84f5a8..67b3f8240a 100644 --- a/modules/geoip/msvc12/geoip.vcxproj +++ b/modules/geoip/msvc12/geoip.vcxproj @@ -54,7 +54,7 @@ Disabled - ..\;..\sdk;..\..\..\public;..\..\..\public\amtl;..\..\..\third_party\libmaxminddb;..\..\third_party\hashing;..\..\..\public\sdk;..\GeoIP2;$(METAMOD)\metamod;$(HLSDK)\common;$(HLSDK)\engine;$(HLSDK)\dlls;$(HLSDK)\pm_shared;$(HLSDK)\public;%(AdditionalIncludeDirectories) + ..\;..\sdk;..\..\..\amxmodx;..\..\..\public;..\..\..\public\amtl;..\..\..\third_party\libmaxminddb;..\..\third_party\hashing;..\..\..\public\sdk;..\GeoIP2;$(METAMOD)\metamod;$(HLSDK)\common;$(HLSDK)\engine;$(HLSDK)\dlls;$(HLSDK)\pm_shared;$(HLSDK)\public;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;GEOIP_EXPORTS;HAVE_STDINT_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -80,7 +80,7 @@ - ..\;..\sdk;..\..\..\public;..\..\..\public\amtl;..\..\..\third_party\libmaxminddb;..\..\third_party\hashing;..\..\..\public\sdk;..\GeoIP2;$(METAMOD)\metamod;$(HLSDK)\common;$(HLSDK)\engine;$(HLSDK)\dlls;$(HLSDK)\pm_shared;$(HLSDK)\public;%(AdditionalIncludeDirectories) + ..\;..\sdk;..\..\..\amxmodx;..\..\..\public;..\..\..\public\amtl;..\..\..\third_party\libmaxminddb;..\..\third_party\hashing;..\..\..\public\sdk;..\GeoIP2;$(METAMOD)\metamod;$(HLSDK)\common;$(HLSDK)\engine;$(HLSDK)\dlls;$(HLSDK)\pm_shared;$(HLSDK)\public;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;GEOIP_EXPORTS;HAVE_STDINT_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) MultiThreaded false diff --git a/modules/hamsandwich/hook_callbacks.cpp b/modules/hamsandwich/hook_callbacks.cpp index 9ba1dab9b0..fcf021702f 100644 --- a/modules/hamsandwich/hook_callbacks.cpp +++ b/modules/hamsandwich/hook_callbacks.cpp @@ -136,7 +136,7 @@ extern bool gDoForwards; #define CHECK_RETURN_VEC() \ if (thisresult < HAM_OVERRIDE) \ { \ - memcpy(out, &origret, sizeof(Vector)); \ + memcpy(static_cast(out), &origret, sizeof(Vector)); \ return; \ } @@ -852,8 +852,8 @@ void Hook_Vector_Float_Cbase_Int(Hook *hook, Vector *out, void *pthis, float f1, MAKE_VECTOR() - memset(&ret, 0x0, sizeof(Vector)); - memset(&origret, 0x0, sizeof(Vector)); + memset(static_cast(&ret), 0x0, sizeof(Vector)); + memset(static_cast(&origret), 0x0, sizeof(Vector)); int iEnt = TypeConversion.cbase_to_id(cb); @@ -879,7 +879,7 @@ void Hook_Vector_Float_Cbase_Int(Hook *hook, Vector *out, void *pthis, float f1, POP() CHECK_RETURN_VEC() - memcpy(out, &ret, sizeof(Vector)); + memcpy(static_cast(out), &ret, sizeof(Vector)); } void Hook_Void_Cbase_Cbase_Int_Float(Hook *hook, void *pthis, void *cb1, void *cb2, int i1, float f1) @@ -1038,8 +1038,8 @@ void Hook_Vector_Void(Hook *hook, Vector *out, void *pthis) MAKE_VECTOR() - memset(&ret, 0x0, sizeof(Vector)); - memset(&origret, 0x0, sizeof(Vector)); + memset(static_cast(&ret), 0x0, sizeof(Vector)); + memset(static_cast(&origret), 0x0, sizeof(Vector)); PRE_START() PRE_END() @@ -1056,7 +1056,7 @@ void Hook_Vector_Void(Hook *hook, Vector *out, void *pthis) KILL_VECTOR() POP() CHECK_RETURN_VEC() - memcpy(out, &ret, sizeof(Vector)); + memcpy(static_cast(out), &ret, sizeof(Vector)); } @@ -1074,8 +1074,8 @@ void Hook_Vector_pVector(Hook *hook, Vector *out, void *pthis, Vector *v1) MAKE_VECTOR() P_PTRVECTOR(v1) - memset(&ret, 0x0, sizeof(Vector)); - memset(&origret, 0x0, sizeof(Vector)); + memset(static_cast(&ret), 0x0, sizeof(Vector)); + memset(static_cast(&origret), 0x0, sizeof(Vector)); PRE_START() , MF_PrepareCellArrayA(reinterpret_cast(v1), 3, false) @@ -1094,7 +1094,7 @@ void Hook_Vector_pVector(Hook *hook, Vector *out, void *pthis, Vector *v1) KILL_VECTOR() POP() CHECK_RETURN_VEC() - memcpy(out, &ret, sizeof(Vector)); + memcpy(static_cast(out), &ret, sizeof(Vector)); } int Hook_Int_pVector(Hook *hook, void *pthis, Vector *v1) @@ -1476,8 +1476,8 @@ void Hook_Vector_Float(Hook *hook, Vector *out, void *pthis, float f1) MAKE_VECTOR() P_FLOAT(f1) - memset(&ret, 0x0, sizeof(Vector)); - memset(&origret, 0x0, sizeof(Vector)); + memset(static_cast(&ret), 0x0, sizeof(Vector)); + memset(static_cast(&origret), 0x0, sizeof(Vector)); PRE_START() , f1 @@ -1496,7 +1496,7 @@ void Hook_Vector_Float(Hook *hook, Vector *out, void *pthis, float f1) KILL_VECTOR() POP() CHECK_RETURN_VEC() - memcpy(out, &ret, sizeof(Vector)); + memcpy(static_cast(out), &ret, sizeof(Vector)); } @@ -3269,8 +3269,8 @@ void Hook_Vector_Vector_Vector_Vector(Hook *hook, Vector *out, void *pthis, Vect P_VECTOR(v2) P_VECTOR(v3) - memset(&ret, 0x0, sizeof(Vector)); - memset(&origret, 0x0, sizeof(Vector)); + memset(static_cast(&ret), 0x0, sizeof(Vector)); + memset(static_cast(&origret), 0x0, sizeof(Vector)); PRE_START() , MF_PrepareCellArrayA(reinterpret_cast(&v1), 3, false) @@ -3294,7 +3294,7 @@ void Hook_Vector_Vector_Vector_Vector(Hook *hook, Vector *out, void *pthis, Vect POP() CHECK_RETURN_VEC() - memcpy(out, &ret, sizeof(Vector)); + memcpy(static_cast(out), &ret, sizeof(Vector)); } const char *Hook_Str_Str(Hook *hook, void *pthis, const char* str) diff --git a/modules/json/JsonNatives.cpp b/modules/json/JsonNatives.cpp index 358f2760d6..46871bfef5 100644 --- a/modules/json/JsonNatives.cpp +++ b/modules/json/JsonNatives.cpp @@ -697,6 +697,12 @@ static cell AMX_NATIVE_CALL amxx_json_object_set_value(AMX *amx, cell *params) return 0; } + if (!JsonMngr->IsValidHandle(params[3])) + { + MF_LogError(amx, AMX_ERR_NATIVE, "Invalid JSON value! %d", params[3]); + return 0; + } + int len; auto name = MF_GetAmxString(amx, params[2], 0, &len); diff --git a/modules/mysqlx/AMBuilder b/modules/mysqlx/AMBuilder index 7c7bcc933f..afe86a12e0 100644 --- a/modules/mysqlx/AMBuilder +++ b/modules/mysqlx/AMBuilder @@ -17,18 +17,18 @@ if AMXX.mysql_path: binary.sources = [] - if builder.target_platform is 'linux' or builder.target_platform is 'mac': + if builder.target_platform == 'linux' or builder.target_platform == 'mac': binary.compiler.defines += ['stricmp=strcasecmp'] binary.compiler.linkflags += [ os.path.join(AMXX.mysql_path, 'lib', 'libmysqlclient_r.a'), '-lpthread', '-lm', ] - if builder.target_platform is 'linux': + if builder.target_platform == 'linux': binary.compiler.linkflags += [ '-lrt' ] - elif builder.target_platform is 'windows': + elif builder.target_platform == 'windows': binary.compiler.linkflags += [ os.path.join(AMXX.mysql_path, 'lib', 'mysqlclient.lib'), 'ws2_32.lib', diff --git a/modules/mysqlx/threading.cpp b/modules/mysqlx/threading.cpp index 27b875575b..4f2cbfbade 100644 --- a/modules/mysqlx/threading.cpp +++ b/modules/mysqlx/threading.cpp @@ -178,7 +178,7 @@ void MysqlThread::RunThread(IThreadHandle *pHandle) float save_time = m_qrInfo.queue_time; - memset(&m_qrInfo, 0, sizeof(m_qrInfo)); + memset(static_cast(&m_qrInfo), 0, sizeof(m_qrInfo)); m_qrInfo.queue_time = save_time; diff --git a/modules/sqlite/AMBuilder b/modules/sqlite/AMBuilder index 581e307f01..644a8cf383 100644 --- a/modules/sqlite/AMBuilder +++ b/modules/sqlite/AMBuilder @@ -12,7 +12,7 @@ binary.compiler.defines += [ 'HAVE_STDINT_H', ] -if builder.target_platform is 'linux' or builder.target_platform is 'mac': +if builder.target_platform == 'linux' or builder.target_platform == 'mac': binary.compiler.defines += ['stricmp=strcasecmp'] binary.compiler.postlink += ['-lpthread'] diff --git a/modules/sqlite/threading.cpp b/modules/sqlite/threading.cpp index e33f746767..2512cbfd11 100644 --- a/modules/sqlite/threading.cpp +++ b/modules/sqlite/threading.cpp @@ -162,7 +162,7 @@ void MysqlThread::RunThread(IThreadHandle *pHandle) float save_time = m_qrInfo.queue_time; - memset(&m_qrInfo, 0, sizeof(m_qrInfo)); + memset(static_cast(&m_qrInfo), 0, sizeof(m_qrInfo)); m_qrInfo.queue_time = save_time; diff --git a/modules/tfcx/AMBuilder b/modules/tfcx/AMBuilder index 88f697c6ea..4779c1d54d 100644 --- a/modules/tfcx/AMBuilder +++ b/modules/tfcx/AMBuilder @@ -3,6 +3,10 @@ import os.path binary = AMXX.MetaModule(builder, 'tfcx') +binary.compiler.defines += [ + 'HAVE_STDINT_H', +] + binary.sources = [ '../../public/sdk/amxxmodule.cpp', 'CRank.cpp', diff --git a/modules/tfcx/CMisc.cpp b/modules/tfcx/CMisc.cpp index 82cc1aee3b..7e53b4e79c 100644 --- a/modules/tfcx/CMisc.cpp +++ b/modules/tfcx/CMisc.cpp @@ -126,11 +126,11 @@ void CPlayer::Connect(const char* address ){ void CPlayer::restartStats(bool all) { - if ( all ) memset(weapons,0,sizeof(weapons)); - memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats - memset(attackers,0,sizeof(attackers)); - memset(victims,0,sizeof(victims)); - memset(&life,0,sizeof(life)); + if ( all ) memset(&weapons,0,sizeof(weapons)); + memset(&weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats + memset(&attackers,0,sizeof(attackers)); + memset(&victims,0,sizeof(victims)); + life = {}; } void CPlayer::Init( int pi, edict_t* pe ) diff --git a/modules/tfcx/usermsg.cpp b/modules/tfcx/usermsg.cpp index 81d8cde9c3..4dc1fc40c7 100644 --- a/modules/tfcx/usermsg.cpp +++ b/modules/tfcx/usermsg.cpp @@ -121,10 +121,23 @@ void Client_Damage(void* mValue){ if ( FNullEnt( enemy ) ) break; +#ifdef _DEBUG_TFCX + ALERT(at_logged, "Clinet_damage Called with state-%d dmg-%d Netname'%s'(Class'%s') slno-'%d'\n", + mState, damage, STRING(mPlayer->pEdict->v.netname), + STRING(mPlayer->pEdict->v.classname), mPlayer->pEdict->serialnumber); + + ALERT(at_logged, " Called with enemy-slno-%d Netname:'%s'(Class'%s')\n", mPlayer->pEdict->serialnumber, + STRING(enemy->v.netname), STRING(enemy->v.classname)); +#endif // _DEBUG_TFCX + if (enemy->v.flags & (FL_CLIENT | FL_FAKECLIENT) ) { // attacker is player and his active weapon pAttacker = GET_PLAYER_POINTER(enemy); - + +#ifdef _DEBUG_TFCX + ALERT(at_logged, " attacker is player and his active weapon id-%d, has flags - (FL_CLIENT | FL_FAKECLIENT)\n\n", pAttacker->current); +#endif // _DEBUG_TFCX + aim = pAttacker->aiming; weapon = pAttacker->current; @@ -150,6 +163,15 @@ void Client_Damage(void* mValue){ pAttacker = GET_PLAYER_POINTER(enemy->v.owner); +#ifdef _DEBUG_TFCX + ALERT(at_logged, " attacker is Class'%s'(with its enmy as Netname'%s'[Class'%s']) and his owner is '%s(%s)' enemy->owner has flags - FL_CLIENT | FL_FAKECLIENT\n\n", + (enemy ? STRING(enemy->v.classname) : "Null"), + (enemy->v.enemy ? STRING(enemy->v.enemy->v.netname) : "Null"), + (enemy->v.enemy ? STRING(enemy->v.enemy->v.classname) : "Null"), + (enemy->v.owner ? STRING(enemy->v.owner->v.netname) : "Null"), + (enemy->v.owner ? STRING(enemy->v.owner->v.classname) : "Null")); +#endif // _DEBUG_TFCX + const char *szClass = STRING(enemy->v.classname); switch(szClass[10]){ @@ -185,16 +207,8 @@ void Client_Damage(void* mValue){ if ( !weapon ) { switch(szClass[3]){ case 'e': - weapon = TFC_WPN_TIMER; // TFC_WPN_MEDKIT ?? - - tempInt = get_pdata_ehandle(mPlayer->pEdict, pdTimerOwner * 4); // function is char-based. - - if (tempInt < 1 || tempInt > gpGlobals->maxClients) - { - break; - } - - pAttacker = GET_PLAYER_POINTER_I(tempInt); + weapon = TFC_WPN_TIMER; // TFC_WPN_MEDKIT ?? //ShootingKing: Class - "timer" + pAttacker = GET_PLAYER_POINTER(enemy->v.enemy); if (pAttacker->teamId == mPlayer->teamId) // ??? { diff --git a/modules/ts/tsfun/AMBuilder b/modules/ts/tsfun/AMBuilder index e209351296..468094a5d6 100644 --- a/modules/ts/tsfun/AMBuilder +++ b/modules/ts/tsfun/AMBuilder @@ -3,6 +3,10 @@ import os.path binary = AMXX.MetaModule(builder, 'tsfun') +binary.compiler.defines += [ + 'HAVE_STDINT_H', +] + binary.sources = [ '../../../public/sdk/amxxmodule.cpp', ] diff --git a/modules/ts/tsx/AMBuilder b/modules/ts/tsx/AMBuilder index bea49fd6be..49de903e32 100644 --- a/modules/ts/tsx/AMBuilder +++ b/modules/ts/tsx/AMBuilder @@ -3,6 +3,10 @@ import os.path binary = AMXX.MetaModule(builder, 'tsx') +binary.compiler.defines += [ + 'HAVE_STDINT_H', +] + binary.sources = [ '../../../public/sdk/amxxmodule.cpp', 'CMisc.cpp', diff --git a/modules/ts/tsx/CMisc.cpp b/modules/ts/tsx/CMisc.cpp index fed2c32ece..e42cdfcd9c 100644 --- a/modules/ts/tsx/CMisc.cpp +++ b/modules/ts/tsx/CMisc.cpp @@ -78,11 +78,11 @@ void CPlayer::Connect(const char* ippp) void CPlayer::restartStats(bool all) { - if ( all ) memset(weapons,0,sizeof(weapons)); - memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats - memset(attackers,0,sizeof(attackers)); - memset(victims,0,sizeof(victims)); - memset(&life,0,sizeof(life)); + if ( all ) memset(&weapons,0,sizeof(weapons)); + memset(&weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats + memset(&attackers,0,sizeof(attackers)); + memset(&victims,0,sizeof(victims)); + life = {}; } void CPlayer::Init( int pi, edict_t* pe ) diff --git a/plugins/adminchat.sma b/plugins/adminchat.sma index 1f5681d7c7..d5a7e621aa 100755 --- a/plugins/adminchat.sma +++ b/plugins/adminchat.sma @@ -216,20 +216,18 @@ public cmdSayAdmin(id) log_amx("Chat: ^"%s<%d><%s><>^" chat ^"%s^"", name, userid, authid, message[1]) log_message("^"%s<%d><%s><>^" triggered ^"amx_chat^" (text ^"%s^")", name, userid, authid, message[1]) - if (is_user_admin(id)) // no diff here if admins have g_AdminChatFlag access or not, but we don't want to print "PLAYER" - format(message, charsmax(message), "(%L) %s : %s", id, "ADMIN", name, message[1]) - else - format(message, charsmax(message), "(%L) %s : %s", id, "PLAYER", name, message[1]) - get_players(players, inum, "ch") - for (new i = 0; i < inum; ++i) + for (new bool:is_sender_admin = is_user_admin(id) != 0, i = 0; i < inum; ++i) { pl = players[i] + if (pl == id || get_user_flags(pl) & g_AdminChatFlag) - client_print(pl, print_chat, "%s", message) + { + client_print(pl, print_chat, "(%l) %s : %s", is_sender_admin ? "ADMIN" : "PLAYER", name, message[1]) + } } - + return PLUGIN_HANDLED } diff --git a/plugins/admincmd.sma b/plugins/admincmd.sma index 843d866458..6df9d2a350 100755 --- a/plugins/admincmd.sma +++ b/plugins/admincmd.sma @@ -222,13 +222,13 @@ public cmdKick(id, level, cid) } /** - * ';' and '\n' are command delimiters. If a command arg contains these 2 + * ';' and '^n' are command delimiters. If a command arg contains these 2 * it is not safe to be passed to server_cmd() as it may be trying to execute * a command. */ isCommandArgSafe(const arg[]) { - return contain(arg, ";") == -1 && contain(arg, "\n") == -1; + return contain(arg, ";") == -1 && contain(arg, "^n") == -1; } public cmdUnban(id, level, cid) @@ -668,7 +668,7 @@ public cmdMap(id, level, cid) new arg[32] new arglen = read_argv(1, arg, charsmax(arg)) - if (!is_map_valid(arg)) + if (!is_map_valid(arg) || contain(arg, "..") != -1) { console_print(id, "[AMXX] %L", id, "MAP_NOT_FOUND") return PLUGIN_HANDLED @@ -787,14 +787,18 @@ public cmdCvar(id, level, cid) console_print(id, "[AMXX] %L", id, "CVAR_IS", arg, arg2) return PLUGIN_HANDLED } - - if (equali(arg, "servercfgfile") || equali(arg, "lservercfgfile")) + + if (equali(arg, "servercfgfile") || equali(arg, "lservercfgfile") || equali(arg, "mapchangecfgfile")) { new pos = contain(arg2, ";") if (pos != -1) { arg2[pos] = '^0' } + else if ((pos = contain(arg2, "^n")) != -1) + { + arg2[pos] = '^0' + } } new authid[32], name[MAX_NAME_LENGTH] diff --git a/plugins/adminvote.sma b/plugins/adminvote.sma index 9e0d537293..f1d2ebb548 100755 --- a/plugins/adminvote.sma +++ b/plugins/adminvote.sma @@ -238,7 +238,10 @@ public cmdVoteMap(id, level, cid) for (new i = 1; i < argc; ++i) { read_argv(i, g_optionName[g_validMaps], 31) - + + if (contain(g_optionName[g_validMaps], "..") != -1) + continue + if (is_map_valid(g_optionName[g_validMaps])) g_validMaps++ } diff --git a/plugins/cstrike/miscstats.sma b/plugins/cstrike/miscstats.sma index 89ecb00065..4107e44fec 100755 --- a/plugins/cstrike/miscstats.sma +++ b/plugins/cstrike/miscstats.sma @@ -13,6 +13,7 @@ #include #include +#include #include public MultiKill @@ -81,9 +82,6 @@ new g_pcvar_mp_c4timer, g_c4timer_value const TASK_BOMB_TIMER = 8038 const TASK_DELAYED_NEW_ROUND = 98038 -const TEAM_T = 1 -const TEAM_CT = 2 - new g_connected[MAX_PLAYERS + 1] new g_msounds[MAX_PLAYERS + 1] new const _msound[] = "_msound" @@ -93,7 +91,7 @@ new g_MultiKillMsg[7][] = "Multi-Kill! %s^n%L %d %L (%d %L)", "Ultra-Kill!!! %s^n%L %d %L (%d %L)", "%s IS ON A KILLING SPREE!!!^n%L %d %L (%d %L)", - "RAMPAGE!!! %s^n%L %d %L (%d hs)", + "RAMPAGE!!! %s^n%L %d %L (%d %L)", "%s IS UNSTOPPABLE!!!^n%L %d %L (%d %L)", "%s IS A MONSTER!^n%L %d %L (%d %L)", "%s IS GODLIKE!!!!^n%L %d %L (%d %L)" @@ -178,13 +176,7 @@ new g_HeadShots[7][] = "HS_MSG_7" } -new g_teamsNames[4][] = -{ - "TERRORIST", - "CT", - "TERRORISTS", - "CTS" -} +new const g_teamsNames[CsTeams][] = { "", "TERRORIST" , "CT", "" }; public plugin_init() { @@ -543,48 +535,26 @@ public client_death(killer, victim, wpnindex, hitplace, TK) } } - new team = get_user_team(victim) - if (EnemyRemaining && is_user_connected(victim)) + new const CsTeams:team = cs_get_user_team(victim); + + if (EnemyRemaining && CS_TEAM_T <= team <= CS_TEAM_CT && is_user_connected(victim)) { - if( TEAM_T <= team <= TEAM_CT ) + new const victimTeammatesCount = get_playersnum_ex(GetPlayers_ExcludeDead | GetPlayers_MatchTeam, g_teamsNames[team]); + + if (victimTeammatesCount) { - new ppl[MAX_PLAYERS], pplnum, epplnum, a - get_players(ppl, epplnum, "ae", team == TEAM_T ? "CT" : "TERRORIST") - get_players(ppl, pplnum, "ae", team == TEAM_T ? "TERRORIST" : "CT") - if( victim_alive ) - { - for(a=0; a 1 ? + ShowSyncHudMsg(killerTeammatesList[teammate], g_bottom_sync, "%l", "REMAINING_ENEMIES", victimTeammatesCount) : + ShowSyncHudMsg(killerTeammatesList[teammate], g_bottom_sync, "%l","REMAINING_ENEMY"); } } } @@ -600,7 +570,7 @@ public client_death(killer, victim, wpnindex, hitplace, TK) { switch( team ) { - case TEAM_T: + case CS_TEAM_T: { for(b=0; b 1) { g_LastAnnounce = cts[0] oposite = tsnum - _team = 0 + _team = CS_TEAM_T } else if (tsnum == 1 && ctsnum > 1) { g_LastAnnounce = ts[0] oposite = ctsnum - _team = 1 + _team = CS_TEAM_CT } if (g_LastAnnounce) @@ -818,7 +788,7 @@ public showStatus(id) get_user_name(pid, name, charsmax(name)) new color1 = 0, color2 = 0 - if (get_user_team(pid) == TEAM_T) + if (cs_get_user_team(pid) == CS_TEAM_T) color1 = 255 else color2 = 255 diff --git a/plugins/cstrike/restmenu.sma b/plugins/cstrike/restmenu.sma index c5436add3c..0544e76f9b 100755 --- a/plugins/cstrike/restmenu.sma +++ b/plugins/cstrike/restmenu.sma @@ -495,8 +495,10 @@ findAdminsWithMenu(playersList[MAX_PLAYERS], &playersCount, const commandLevel = get_players(playersList, playersCount, "ch"); - for (new i = 0; i < playersCount, (player = playersList[i]); ++i) + for (new i = 0; i < playersCount; ++i) { + player = playersList[i] + if (player_menu_info(player, menu, newmenu) && newmenu != -1 && newmenu == MenuHandle[player]) { if (commandLevel == -1 || access(player, commandLevel)) // extra safety @@ -519,8 +521,10 @@ refreshMenus(const commandLevel = 0, const bool:displaySaveMessage = false) return; } - for (new i = 0, player; i < playersCount, (player = playersList[i]); ++i) + for (new i = 0, player; i < playersCount; ++i) { + player = playersList[i] + MenuHandle[player] = displayMenu(player, MenuPosition[player]); if (displaySaveMessage) diff --git a/plugins/include/amxconst.inc b/plugins/include/amxconst.inc index ca5011ee6f..23fc592557 100755 --- a/plugins/include/amxconst.inc +++ b/plugins/include/amxconst.inc @@ -55,10 +55,45 @@ public stock const NULL_STRING[1]; public stock const Float:NULL_VECTOR[3]; /** - * The maximum buffer size required to store a clients name. + * The maximum buffer size required to store a client's name. */ #define MAX_NAME_LENGTH 32 +/** + * The maximum buffer size required to store a client's IP address without a port. + */ +#define MAX_IP_LENGTH 16 + +/** + * The maximum buffer size required to store a client's IP address with a port. + */ +#define MAX_IP_WITH_PORT_LENGTH 22 + +/** + * The maximum buffer size required to store a client's AuthID. + */ +#define MAX_AUTHID_LENGTH 64 + +/** + * The maximum buffer size required to store a resource path. + */ +#define MAX_RESOURCE_PATH_LENGTH 64 + +/** + * The maximum buffer size that can be displayed in a MOTD. + */ +#define MAX_MOTD_LENGTH 1536 + +/** + * The maximum size accepted by the user info buffer. + */ +#define MAX_USER_INFO_LENGTH 256 + +/** + * The maximum buffer size that can be displayed in a menu. + */ +#define MAX_MENU_LENGTH 512 + /** * π */ @@ -306,6 +341,7 @@ enum kRenderFxExplode, /* Scale up really big! */ kRenderFxGlowShell, /* Glowing Shell */ kRenderFxClampMinScale, /* Keep this sprite from getting very small (SPRITES only!) */ + kRenderFxLightMultiplier, /* CTM !!!CZERO added to tell the studiorender that the value in iuser2 is a lightmultiplier */ }; /** @@ -533,4 +569,16 @@ enum STATSX_MAX_STATS } +/** + * Constants for get_user_origin() + */ +enum +{ + Origin_Client = 0, // Client's Origin + Origin_Eyes, // Eyes (and Weapon) Origin + Origin_AimEndClient, // Aim End Origin from Client's Position + Origin_AimEndEyes, // Aim End Origin from Eyes Position + Origin_CS_LastBullet // Last Bullet's Origin (Counter-Strike) +} + #include // To keep backward compatibility diff --git a/plugins/include/amxmodx.inc b/plugins/include/amxmodx.inc index 98630819c3..efbb610218 100755 --- a/plugins/include/amxmodx.inc +++ b/plugins/include/amxmodx.inc @@ -670,7 +670,7 @@ native disable_logevent(handle); * * @param red Red component of hudmessage color * @param green Green component of hudmessage color - * @param blue Blue component of hudmessage color + * @param blue Blue component of hudmessage color * @param x Location of the message on the x axis in percent * @param y Location of the message on the y axis in percent * @param effects Display effect @@ -679,10 +679,12 @@ native disable_logevent(handle); * @param fadeintime Time it takes the message to fully appear (fade-in) * @param fadeouttime Time it takes the message to fully disappear (fade-out) * @param channel Channel to use on the client - * + * @param alpha1 Alpha component of hudmessage color + * @param color2[4] Color 2 array {r,g,b,a} + * * @noreturn */ -native set_hudmessage(red = 200, green = 100, blue = 0, Float:x = -1.0, Float:y = 0.35, effects = 0, Float:fxtime = 6.0, Float:holdtime = 12.0, Float:fadeintime = 0.1, Float:fadeouttime = 0.2, channel = -1); +native set_hudmessage(red = 200, green = 100, blue = 0, Float:x = -1.0, Float:y = 0.35, effects = 0, Float:fxtime = 6.0, Float:holdtime = 12.0, Float:fadeintime = 0.1, Float:fadeouttime = 0.2, channel = -1, alpha1 = 0, color2[4] = {255, 255, 250, 0}); /** * Displays a message on the client HUD. @@ -921,6 +923,19 @@ native is_user_bot(index); */ native is_user_hltv(index); +/** + * Returns if the client is authorized. + * + * @note This does not throw an error if the provided index is out of the + * 1 to MaxClients range. That means you can safely use this native + * without manually verifying that the index is a valid client index. + * + * @param index Client index + * + * @return 1 if client is authorized, 0 otherwise + */ +native is_user_authorized(index); + /** * Returns if the client is connected. * @@ -1203,14 +1218,16 @@ native get_user_ping(index, &ping, &loss); /** * Retrieves an origin related to the client. * + * @note For a list of possible modes see the Origin_* constants in amxconst.inc. + * * @param index Client index * @param origin Array to store origin in * @param mode What type of origin to retrieve: - * 0 - current position - * 1 - position of eyes (and weapon) - * 2 - aim end position from client position - * 3 - aim end position from eyes (hit point for weapon) - * 4 - position of last bullet hit (only for Counter-Strike) + * Origin_Client - current position + * Origin_Eyes - position of eyes (and weapon) + * Origin_AimEndClient - aim end position from client position + * Origin_AimEndEyes - aim end position from eyes (hit point for weapon) + * Origin_CS_LastBullet - position of last bullet hit (only for Counter-Strike) * * @return 1 on success, 0 if client is not connected * @error If the client index is not within the range of 1 to @@ -1828,7 +1845,7 @@ native set_user_flags(index, flags = -1, id = 0); * @param index Client index, 0 to set flags of server * @param id Flag set id, ranging from 0 to 31 * - * @noreturn + * @return Bitflag sum of client's admin flags * @error If the index is not within the range of 0 to MaxClients, an * error will be thrown. */ diff --git a/plugins/include/cstrike_const.inc b/plugins/include/cstrike_const.inc index 3b0f77fbdf..00d3b8542b 100644 --- a/plugins/include/cstrike_const.inc +++ b/plugins/include/cstrike_const.inc @@ -281,7 +281,7 @@ enum CsMenu }; /** - * Player's join states for use with m_iJointState. + * Player's join states for use with m_iJoiningState. */ enum CsJoinState { @@ -488,3 +488,34 @@ enum CsAmmoCostType CS_AMMO_9MM_PRICE = 20, CS_AMMO_BUCKSHOT_PRICE = 65 }; + +/** + * Weapon state for use with m_iWeaponState. + */ +#define CS_WPNSTATE_USP_SILENCED (1<<0) +#define CS_WPNSTATE_GLOCK18_BURST_MODE (1<<1) +#define CS_WPNSTATE_M4A1_SILENCED (1<<2) +#define CS_WPNSTATE_ELITE_LEFT (1<<3) +#define CS_WPNSTATE_FAMAS_BURST_MODE (1<<4) +#define CS_WPNSTATE_SHIELD_DRAWN (1<<5) + +/** + * Internal commands, for use with m_flLastCommandTime. + */ +#define CS_CMD_SAY 0 +#define CS_CMD_SAYTEAM 1 +#define CS_CMD_FULLUPDATE 2 +#define CS_CMD_VOTE 3 +#define CS_CMD_VOTEMAP 4 +#define CS_CMD_LISTMAPS 5 +#define CS_CMD_LISTPLAYERS 6 +#define CS_CMD_NIGHTVISION 7 + +/** + * Signal state for use with m_signals. + */ +#define CS_SIGNAL_BUY (1<<0) +#define CS_SIGNAL_BOMB (1<<1) +#define CS_SIGNAL_RESCUE (1<<2) +#define CS_SIGNAL_ESCAPE (1<<3) +#define CS_SIGNAL_VIPSAFETY (1<<4) diff --git a/plugins/include/engine.inc b/plugins/include/engine.inc index 09e2f42710..4c9483d90b 100755 --- a/plugins/include/engine.inc +++ b/plugins/include/engine.inc @@ -117,8 +117,8 @@ native register_touch(const Touched[], const Toucher[], const function[]); * blocking the think. To immediately block return PLUGIN_HANDLED_MAIN * instead. * - * @param Touched Entity classname to hook - * @param function Name of callback function + * @param Classname Entity classname to hook + * @param function Name of callback function * * @return Think forward id */ diff --git a/plugins/include/engine_const.inc b/plugins/include/engine_const.inc index c48bbda278..389a776665 100755 --- a/plugins/include/engine_const.inc +++ b/plugins/include/engine_const.inc @@ -12,7 +12,7 @@ // #if defined _engine_const_included - #endinput + #endinput #endif #define _engine_const_included @@ -212,54 +212,63 @@ enum { */ #if defined _jghg_enums - #endinput + #endinput #endif #define _jghg_enums + +/** + * Used by get_global_[edict/float/int/string/vector]() + */ enum { - // Edict - GL_trace_ent = 0, - // Float - GL_coop, - GL_deathmatch, - GL_force_retouch, - GL_found_secrets, - GL_frametime, - GL_serverflags, - GL_teamplay, - GL_time, - GL_trace_allsolid, - GL_trace_fraction, - GL_trace_inopen, - GL_trace_inwater, - GL_trace_plane_dist, - GL_trace_startsolid, + // Edict + GL_trace_ent = 0, - // Int - GL_cdAudioTrack, - GL_maxClients, - GL_maxEntities, - GL_msg_entity, - GL_trace_flags, - GL_trace_hitgroup, + // Float + GL_coop, + GL_deathmatch, + GL_force_retouch, + GL_found_secrets, + GL_frametime, + GL_serverflags, + GL_teamplay, + GL_time, + GL_trace_allsolid, + GL_trace_fraction, + GL_trace_inopen, + GL_trace_inwater, + GL_trace_plane_dist, + GL_trace_startsolid, - // String - GL_pStringBase, - GL_mapname, - GL_startspot, + // Int + GL_cdAudioTrack, + GL_maxClients, + GL_maxEntities, + GL_msg_entity, + GL_trace_flags, + GL_trace_hitgroup, - // Vector - GL_trace_endpos, - GL_trace_plane_normal, - GL_v_forward, - GL_v_right, - GL_v_up, - GL_vecLandmarkOffset, + // String + GL_pStringBase, + GL_mapname, + GL_startspot, - // Void (not supported) - GL_pSaveData + // Vector + GL_trace_endpos, + GL_trace_plane_normal, + GL_v_forward, + GL_v_right, + GL_v_up, + GL_vecLandmarkOffset, + + // Void (not supported) + GL_pSaveData }; + +/** + * Used by [get/set]_usercmd() + */ enum { usercmd_float_start, @@ -282,7 +291,9 @@ enum usercmd_vec_end }; -// Used by the traceresult() native. +/** + * Used by the traceresult() + */ enum { TR_AllSolid, // (int) if true, plane is not valid diff --git a/plugins/include/engine_stocks.inc b/plugins/include/engine_stocks.inc index 1ef2189060..baa386fae9 100755 --- a/plugins/include/engine_stocks.inc +++ b/plugins/include/engine_stocks.inc @@ -125,7 +125,7 @@ stock remove_entity_name(const eName[]) stock ViewContents(id) { new origin[3], Float:Orig[3]; - get_user_origin(id, origin, 3); + get_user_origin(id, origin, Origin_AimEndEyes); Orig[0] = float(origin[0]); Orig[1] = float(origin[1]); Orig[2] = float(origin[2]); diff --git a/plugins/include/fakemeta_util.inc b/plugins/include/fakemeta_util.inc index b0bab0d0ee..4c66231ecd 100644 --- a/plugins/include/fakemeta_util.inc +++ b/plugins/include/fakemeta_util.inc @@ -325,7 +325,7 @@ stock fm_remove_entity_name(const classname[]) { stock fm_ViewContents(id) { new origin[3], Float:Orig[3]; - get_user_origin(id, origin, 3); + get_user_origin(id, origin, Origin_AimEndEyes); IVecFVec(origin, Orig); return fm_point_contents(Orig); diff --git a/plugins/include/hlsdk_const.inc b/plugins/include/hlsdk_const.inc index 8c9d7525ea..f9b8cfa2d8 100644 --- a/plugins/include/hlsdk_const.inc +++ b/plugins/include/hlsdk_const.inc @@ -209,6 +209,14 @@ #define DMG_GRENADE (1<<24) // Counter-Strike only - Hit by HE grenade #define DMG_TIMEBASED (~(0x3fff)) // Mask for time-based damage +/** +* Gib values used on client kill based on instant damage values +*/ +#define GIB_NORMAL 0 // Gib if entity was overkilled +#define GIB_NEVER 1 // Never gib, no matter how much death damage is done ( freezing, etc ) +#define GIB_ALWAYS 2 // Always gib ( Houndeye Shock, Barnacle Bite ) +#define GIB_TRY_HEALTH -9000 // Gib players if their health is under this value. (GIB_NEVER overrides this value) + /** * Valid constants for fNoMonsters parameter of EngFunc_TraceLine, * EngFunc_TraceMonsterHull, EngFunc_TraceHull and EngFunc_TraceSphere. @@ -252,6 +260,7 @@ * func_wall_toggle */ #define SF_WALL_START_OFF 0x0001 +#define SF_WALL_NOTSOLID 0x0008 /** * func_converyor @@ -271,6 +280,7 @@ * func_rot_button */ #define SF_ROTBUTTON_NOTSOLID 1 +#define SF_ROTBUTTON_BACKWARDS 2 /** * env_global @@ -306,7 +316,8 @@ #define SF_DOOR_ROTATE_X 128 #define SF_DOOR_USE_ONLY 256 // Door must be opened by player's use button #define SF_DOOR_NOMONSTERS 512 // Monster can't open -#define SF_DOOR_SILENT 0x80000000 +#define SF_DOOR_TOUCH_ONLY_CLIENTS 1024 // Only clients can touch +#define SF_DOOR_SILENT 0x80000000 // This bit marks that func_door are actually func_water /** * gibshooter @@ -475,6 +486,27 @@ #define SF_CORNER_TELEPORT 0x002 #define SF_CORNER_FIREONCE 0x004 +/** +* func_plat +*/ +#define SF_PLAT_TOGGLE 0x0001 + +/** +* path_track +*/ +#define SF_PATH_DISABLED 0x00000001 +#define SF_PATH_FIREONCE 0x00000002 +#define SF_PATH_ALTREVERSE 0x00000004 +#define SF_PATH_DISABLE_TRAIN 0x00000008 +#define SF_PATH_ALTERNATE 0x00008000 + +/** +* path_corner +*/ +#define SF_CORNER_WAITFORTRIG 0x001 +#define SF_CORNER_TELEPORT 0x002 +#define SF_CORNER_FIREONCE 0x004 + /** * trigger_push */ @@ -493,6 +525,7 @@ * trigger_auto */ #define SF_AUTO_FIREONCE 0x0001 +#define SF_AUTO_NORESET 0x0002 /** * trigger_relay @@ -555,6 +588,16 @@ #define SF_TRIG_PUSH_ONCE 1 +/** +* trigger_multiple +*/ +#define SF_TRIGGER_MULTIPLE_NOTOUCH 0x0001 + +/** +* trigger_counter +*/ +#define SF_TRIGGER_COUNTER_NOMESSAGE 0x0001 + /** * func_breakable */ @@ -662,7 +705,9 @@ #define ITEM_FLAG_LIMITINWORLD (1<<3) #define ITEM_FLAG_EXHAUSTIBLE (1<<4) - +/** +* PlaybackEvent flags +*/ #define FEV_NOTHOST (1<<0) // Skip local host for event send. #define FEV_RELIABLE (1<<1) // Send the event reliably. You must specify the origin and angles // for this to work correctly on the server for anything @@ -688,3 +733,76 @@ #define FCAP_ONOFF_USE 0x00000020 // can be used by the player #define FCAP_DIRECTIONAL_USE 0x00000040 // Player sends +/- 1 when using (currently only tracktrains) #define FCAP_MASTER 0x00000080 // Can be used to "master" other entities (like multisource) +#define FCAP_MUST_RESET 0x00000100 // Should reset on the new round +#define FCAP_MUST_RELEASE 0x00000200 // Should release on the new round +#define FCAP_DONT_SAVE 0x80000000 // Don't save this + +// UNDONE: This will ignore transition volumes (trigger_transition), but not the PVS!!! +#define FCAP_FORCE_TRANSITION 0x00000080 // ALWAYS goes across transitions + +/** +* All monsters need this data +*/ +#define DONT_BLEED -1 +#define BLOOD_COLOR_RED 247 +#define BLOOD_COLOR_YELLOW 195 +#define BLOOD_COLOR_GREEN BLOOD_COLOR_YELLOW + +/** + * Player physics flags + */ +#define PFLAG_ONLADDER (1<<0) +#define PFLAG_ONSWING (1<<0) +#define PFLAG_ONTRAIN (1<<1) +#define PFLAG_ONBARNACLE (1<<2) +#define PFLAG_DUCKING (1<<3) // In the process of ducking, but totally squatted yet +#define PFLAG_USING (1<<4) // Using a continuous entity +#define PFLAG_OBSERVER (1<<5) // Player is locked in stationary cam mode. Spectators can move, observers can't. + +/** +* Player hide HUD values +*/ +#define HIDEHUD_WEAPONS (1<<0) +#define HIDEHUD_FLASHLIGHT (1<<1) +#define HIDEHUD_ALL (1<<2) +#define HIDEHUD_HEALTH (1<<3) +#define HIDEHUD_TIMER (1<<4) +#define HIDEHUD_MONEY (1<<5) +#define HIDEHUD_CROSSHAIR (1<<6) +#define HIDEHUD_OBSERVER_CROSSHAIR (1<<7) + +/** +* Entity classification +*/ +#define CLASS_NONE 0 +#define CLASS_MACHINE 1 +#define CLASS_PLAYER 2 +#define CLASS_HUMAN_PASSIVE 3 +#define CLASS_HUMAN_MILITARY 4 +#define CLASS_ALIEN_MILITARY 5 +#define CLASS_ALIEN_PASSIVE 6 +#define CLASS_ALIEN_MONSTER 7 +#define CLASS_ALIEN_PREY 8 +#define CLASS_ALIEN_PREDATOR 9 +#define CLASS_INSECT 10 +#define CLASS_PLAYER_ALLY 11 +#define CLASS_PLAYER_BIOWEAPON 12 // hornets and snarks.launched by players +#define CLASS_ALIEN_BIOWEAPON 13 // hornets and snarks.launched by the alien menace +#define CLASS_VEHICLE 14 +#define CLASS_BARNACLE 99 // special because no one pays attention to it, and it eats a wide cross-section of creatures. + +/** +* Entities that toggle (buttons/triggers/doors) need this +*/ +#define TS_AT_TOP 0 +#define TS_AT_BOTTOM 1 +#define TS_GOING_UP 2 +#define TS_GOING_DOWN 3 + +/** +* Entity use states (buttons/triggers/platforms) +*/ +#define USE_OFF 0 +#define USE_ON 1 +#define USE_SET 2 +#define USE_TOGGLE 3 diff --git a/plugins/include/json.inc b/plugins/include/json.inc index 687421b64c..61f608db46 100644 --- a/plugins/include/json.inc +++ b/plugins/include/json.inc @@ -64,7 +64,7 @@ enum JSON * @param is_file True to treat string param as filename, false otherwise * @param with_comments True if parsing JSON includes comments (it will ignore them), false otherwise * - * @return JSON handle, Invalid_JSONValue if error occurred + * @return JSON handle, Invalid_JSON if error occurred */ native JSON:json_parse(const string[], bool:is_file = false, bool:with_comments = false); @@ -594,10 +594,8 @@ native json_object_get_name(const JSON:object, index, buffer[], maxlen); * * @param object Object handle * @param index Position from which get key name - * @param buffer Buffer to copy string to - * @param maxlen Maximum size of the buffer * - * @return The number of cells written to the buffer + * @return JSON handle, Invalid_JSON if error occurred * @error If passed handle is not a valid object */ native JSON:json_object_get_value_at(const JSON:object, index); diff --git a/plugins/include/message_const.inc b/plugins/include/message_const.inc index f76412e7b9..a7816b9cde 100644 --- a/plugins/include/message_const.inc +++ b/plugins/include/message_const.inc @@ -565,7 +565,6 @@ enum * write_byte(red) * write_byte(green) * write_byte(blue) - * write_byte(brightness) * write_byte(life in 10's) * write_byte(decay rate in 10's) */ @@ -738,7 +737,7 @@ enum * write_byte(TE_FIZZ) * write_short(entity) * write_short(sprite index) - * write_byte density) + * write_byte(density) */ #define TE_FIZZ 105 diff --git a/plugins/include/sqlx.inc b/plugins/include/sqlx.inc index 1c70f04b94..5576f88099 100644 --- a/plugins/include/sqlx.inc +++ b/plugins/include/sqlx.inc @@ -519,7 +519,7 @@ stock SQL_SimpleQueryFmt(Handle:db, error[]="", maxlength=0, &rows=0, const fmt[ * @param queryfmt The query string that can be formated with format specifiers. * @pram ... Additional arguments for formating the query. * - * @return 1 on error. + * @return -1 on error. * >= 0 on success (with the number of affected rows). */ stock SQL_QueryAndIgnore(Handle:db, const queryfmt[], any:...) diff --git a/plugins/lang/admin.txt b/plugins/lang/admin.txt index df49cb9d54..6b44956071 100755 --- a/plugins/lang/admin.txt +++ b/plugins/lang/admin.txt @@ -38,16 +38,16 @@ PRIV_SET = Privilegije podesene NO_ENTRY = Nemate pristup serveru... [tr] -LOADED_ADMIN = 1 Admin yuklendi -LOADED_ADMINS = %d Admin dosyadan yuklendi +LOADED_ADMIN = Dosyadan 1 admin yuklendi +LOADED_ADMINS = Dosyadan %d admin yuklendi SQL_CANT_CON = SQL hatasi: baglanamiyor: '%s' -SQL_CANT_LOAD_ADMINS = SQL hatasi: admin yuklenemiyor: '%s' +SQL_CANT_LOAD_ADMINS = SQL hatasi: adminler yuklenemiyor: '%s' NO_ADMINS = Hic admin bulunamadi. -SQL_LOADED_ADMIN = 1 Admin dosyadan yuklendi -SQL_LOADED_ADMINS = %d Admin ana hafizadan yuklendi -INV_PAS = Hatali kod! -PAS_ACC = Kod onaylandi -PRIV_SET = Haklar onaylandi +SQL_LOADED_ADMIN = Veri tabanindan 1 admin yuklendi +SQL_LOADED_ADMINS = Veri tabanindan %d admin yuklendi +INV_PAS = Gecersiz Sifre! +PAS_ACC = Sifre onaylandi +PRIV_SET = Ayricaliklar ayarlandi NO_ENTRY = Servere giris hakkiniz yok... [fr] @@ -296,3 +296,29 @@ INV_PAS = 无效的密码! PAS_ACC = 密码已经被接受 PRIV_SET = 权限设置 NO_ENTRY = 您没有进入到服务器... + +[al] +LOADED_ADMIN = Ngarkuar 1 admin nga skedari +LOADED_ADMINS = Ngarkuar %d admina nga skedari +SQL_CANT_CON = Gabim në SQL: nuk mund të lidhet: '%s' +SQL_CANT_LOAD_ADMINS = Gabim në SQL: nuk mund të ngarkojë adminat: '%s' +NO_ADMINS = Nuk është gjendur asnjë admin +SQL_LOADED_ADMIN = Ngarkuar 1 admin nga database +SQL_LOADED_ADMINS = Ngarkuar %d admina nga database +INV_PAS = Fjalëkalim i gabuar! +PAS_ACC = Fjalëkalimi i sakte +PRIV_SET = Privilegjet u vendosën +NO_ENTRY = Ju nuk mund të futeni në server... + +[pt] +LOADED_ADMIN = 1 admin foi carregado do ficheiro +LOADED_ADMINS = %d admins foram carregados do ficheiro +SQL_CANT_CON = Erro de SQL: não foi possível conectar-se: '%s' +SQL_CANT_LOAD_ADMINS = Erro de SQL: não foi possível carregar admins: '%s' +NO_ADMINS = Não foram encontrados admins. +SQL_LOADED_ADMIN = 1 admin foi carregado da base de dados +SQL_LOADED_ADMINS = %d admins foram carregados da base de dados +INV_PAS = Palavra-passe inválida! +PAS_ACC = Palavra-passe aceite +PRIV_SET = Previlégios postos +NO_ENTRY = Tu não podes entrar no servidor... diff --git a/plugins/lang/adminchat.txt b/plugins/lang/adminchat.txt index dd13690de3..c370478116 100755 --- a/plugins/lang/adminchat.txt +++ b/plugins/lang/adminchat.txt @@ -12,9 +12,9 @@ COL_MAROON = maroon PRINT_ALL = (ALL) %s : %s [de] -COL_WHITE = weiss +COL_WHITE = weiß COL_RED = rot -COL_GREEN = gruen +COL_GREEN = grün COL_BLUE = blau COL_YELLOW = gelb COL_MAGENTA = magenta-rot @@ -43,11 +43,11 @@ COL_RED = kirmizi COL_GREEN = yesil COL_BLUE = mavi COL_YELLOW = sari -COL_MAGENTA = magenta -COL_CYAN = cian +COL_MAGENTA = eflatun +COL_CYAN = camgobegi COL_ORANGE = turuncu COL_OCEAN = deniz -COL_MAROON = kahverengi +COL_MAROON = kestane rengi PRINT_ALL = (HEPSI) %s : %s [fr] @@ -296,3 +296,29 @@ COL_ORANGE = 橙色 COL_OCEAN = 深蓝色 COL_MAROON = 褐红色 PRINT_ALL = (全部) %s : %s + +[al] +COL_WHITE = bardhë +COL_RED = kuq +COL_GREEN = gjelbërt +COL_BLUE = kaltër(blu) +COL_YELLOW = verdhë +COL_MAGENTA = rozë +COL_CYAN = kaltër e hapur +COL_ORANGE = portokalle +COL_OCEAN = kaltër e mbylltë +COL_MAROON = kaftë +PRINT_ALL = (Gjithë) %s : %s + +[pt] +COL_WHITE = branco +COL_RED = vermelho +COL_GREEN = verde +COL_BLUE = azul +COL_YELLOW = amarelo +COL_MAGENTA = magenta +COL_CYAN = ciano +COL_ORANGE = laranja +COL_OCEAN = azul marinho +COL_MAROON = castanho +PRINT_ALL = (TODOS) %s : %s diff --git a/plugins/lang/admincmd.txt b/plugins/lang/admincmd.txt index fa2c41869b..4e77d72711 100755 --- a/plugins/lang/admincmd.txt +++ b/plugins/lang/admincmd.txt @@ -85,31 +85,31 @@ ADMIN_UNBAN_2 = ADMIN %s: entbannt %s ADMIN_ADDBAN_1 = ADMIN: bannt %s ADMIN_ADDBAN_2 = ADMIN %s: bannt %s BANNED = gebannt -REASON = grund -FOR_MIN = fuer %s Minuten -PERM = fuer immer +REASON = Grund +FOR_MIN = für %s Minuten +PERM = für immer CLIENT_BANNED = Spieler "%s" gebannt ADMIN_SLAY_1 = ADMIN: killt %s ADMIN_SLAY_2 = ADMIN %s: killt %s CLIENT_SLAYED = Spieler "%s" wurde gekillt -ADMIN_SLAP_1 = ADMIN: schlaegt %s mit %d Schaden -ADMIN_SLAP_2 = ADMIN %s: schlaegt %s mit %d Schaden +ADMIN_SLAP_1 = ADMIN: schlägt %s mit %d Schaden +ADMIN_SLAP_2 = ADMIN %s: schlägt %s mit %d Schaden CLIENT_SLAPED = Spieler "%s" wurde mit %d Schaden geschlagen -MAP_NOT_FOUND = Diese Map ist nicht vorhanden oder unzulaessig +MAP_NOT_FOUND = Diese Map ist nicht vorhanden oder unzulässig ADMIN_MAP_1 = ADMIN: wechselt zur Map %s ADMIN_MAP_2 = ADMIN %s: wechselt zur Map %s -NO_MORE_CVARS = Kann keine weiteren CVAR´s fuer rcon-Berechtigung hinzufuegen! +NO_MORE_CVARS = Kann keine weiteren CVARs für rcon-Berechtigung hinzufügen! UNKNOWN_CVAR = Unbekannte CVAR: %s UNKNOWN_XVAR = Unbekannte XVAR: %s -CVAR_NO_ACC = Du hast keine Berechtigung fuer diese CVAR! -XVAR_NO_ACC = Du hast keine Berechtigung fuer diese XVAR! +CVAR_NO_ACC = Du hast keine Berechtigung für diese CVAR! +XVAR_NO_ACC = Du hast keine Berechtigung für diese XVAR! CVAR_IS = CVAR "%s" ist "%s" XVAR_IS = XVAR "%s" ist "%s" -PROTECTED = GESCHUETZT +PROTECTED = GESCHÜTZT SET_CVAR_TO = %s setzte CVAR %s auf "%s" SET_XVAR_TO = %s setzte XVAR %s auf "%s" -CVAR_CHANGED = CVAR "%s" geaendert auf "%s" -XVAR_CHANGED = XVAR "%s" geaendert auf "%s" +CVAR_CHANGED = CVAR "%s" geändert auf "%s" +XVAR_CHANGED = XVAR "%s" geändert auf "%s" LOADED_PLUGINS = Momentan geladene Plugins NAME = Name VERSION = Version @@ -120,35 +120,35 @@ PLUGINS_RUN = %d Plugins, %d Plugins laufen LOADED_MODULES = Momentan geladene Module NUM_MODULES = %d Module FILE_NOT_FOUND = Datei "%s" nicht gefunden -ADMIN_CONF_1 = ADMIN: fuehrt Config %s aus -ADMIN_CONF_2 = ADMIN %s: fuehrt Config %s aus +ADMIN_CONF_1 = ADMIN: führt Config %s aus +ADMIN_CONF_2 = ADMIN %s: führt Config %s aus PAUSED = pausiert -UNPAUSED = Pause beendet -UNABLE_PAUSE = Server konnte das Spiel nicht anhalten. Reale Spieler werden auf dem Server benoetigt. -SERVER_PROC = Server fuehrt %s aus -PAUSING = Pausieren -UNPAUSING = Pause beendet +UNPAUSED = fortgesetzt +UNABLE_PAUSE = Server konnte das Spiel nicht anhalten. Reale Spieler werden auf dem Server benötigt. +SERVER_PROC = Server führt %s aus +PAUSING = pausiert den Server... +UNPAUSING = setzt den Server fort... PAUSE = Pause -UNPAUSE = Pause beendet +UNPAUSE = Fortsetzen COM_SENT_SERVER = Befehlszeile "%s" zur Serverconsole gesendet CLIENTS_ON_SERVER = Spieler auf dem Server -IMMU = Immunitaet +IMMU = Immunität RESERV = Reserviert ACCESS = Berechtigung TOTAL_NUM = Total %d -SKIP_MATCH = Ueberspringe "%s" (stimmt ueberein mit "%s") -SKIP_IMM = Ueberspringe "%s" (Immunitaet) -KICK_PL = Kickt "%s" -YOU_DROPPED = Du wurdest gekickt, weil der Admin nur spezielle Spielergruppen auf dem Server zulaesst -KICKED_CLIENTS = Kickt %d clients -ADMIN_LEAVE_1 = ADMIN: erlaubt %s %s %s %s -ADMIN_LEAVE_2 = ADMIN %s: erlaubt %s %s %s %s -ADMIN_NICK_1 = ADMIN: aendert Name von %s zu "%s" -ADMIN_NICK_2 = ADMIN %s: aendert Name von %s zu "%s" -CHANGED_NICK = Name von %s zu "%s" geaendert -ADMIN_EXTEND_1 = ADMIN: Verlaengere Map fuer %d Minuten -ADMIN_EXTEND_2 = ADMIN %s: Verlaengere Map fuer %d Minuten -MAP_EXTENDED = Map "%s" wurde fuer %d Minuten verlaengert +SKIP_MATCH = Überspringe "%s" (stimmt überein mit "%s") +SKIP_IMM = Überspringe "%s" (Immunität) +KICK_PL = Kicke "%s" +YOU_DROPPED = Du wurdest gekickt, weil der Admin nur spezielle Spielergruppen auf dem Server zulässt +KICKED_CLIENTS = %d Spieler gekickt +ADMIN_LEAVE_1 = ADMIN: Spieler ohne Berechtigung %s %s %s %s verlassen den Server! +ADMIN_LEAVE_2 = ADMIN %s: Spieler ohne Berechtigung %s %s %s %s verlassen den Server! +ADMIN_NICK_1 = ADMIN: ändert Name von %s zu "%s" +ADMIN_NICK_2 = ADMIN %s: ändert Name von %s zu "%s" +CHANGED_NICK = Name von %s zu "%s" geändert +ADMIN_EXTEND_1 = ADMIN: Verlängere Map um %d Minuten +ADMIN_EXTEND_2 = ADMIN %s: Verlängere Map um %d Minuten +MAP_EXTENDED = Map "%s" wurde um %d Minuten verlängert [sr] ADMIN_KICK_1 = ADMIN: kick %s @@ -226,79 +226,82 @@ ADMIN_EXTEND_2 = ADMIN %s: produziti mapu za %d minuta MAP_EXTENDED = Mapa "%s" je produzena za %d minuta [tr] -ADMIN_KICK_1 = ADMIN: at %s -ADMIN_KICK_2 = ADMIN %s: at %s -IP_REMOVED = Ip "%s" ban listesinden silindi -AUTHID_REMOVED = Authid "%s" ban listesinden silindi -ADMIN_UNBAN_1 = ADMIN: ban kalkdi %s -ADMIN_UNBAN_2 = ADMIN %s: ban kalkdi %s -ADMIN_ADDBAN_1 = ADMIN: banla %s -ADMIN_ADDBAN_2 = ADMIN %s: banla %s +ADMIN_KICK_1 = ADMIN, %s kisisini atti +ADMIN_KICK_2 = ADMIN %s, %s kisisini atti +IP_REMOVED = Ip "%s" ban listesinden kaldirildi +AUTHID_REMOVED = Authid "%s" ban listesinden kaldirildi +ADMIN_UNBAN_1 = ADMIN, %s kisisinin banini kaldirdi +ADMIN_UNBAN_2 = ADMIN %s, %s kisisinin banini kaldirdi +ADMIN_ADDBAN_1 = ADMIN, %s kisisini banladi +ADMIN_ADDBAN_2 = ADMIN %s, %s kisisini banladi BANNED = banlandi -REASON = Neden -FOR_MIN = %s dakika ban -PERM = suresiz -CLIENT_BANNED = Oyuncu "%s" banlandi -ADMIN_SLAY_1 = ADMIN: oldurdu %s -ADMIN_SLAY_2 = ADMIN %s: oldurdu %s -CLIENT_SLAYED = Oyuncu "%s" olduruldu -ADMIN_SLAP_1 = ADMIN: %s tokatla verilen zarar %d -ADMIN_SLAP_2 = ADMIN %s: %s tokatla verilen zarar %d -CLIENT_SLAPED = Oyuncu "%s" tokatlandi %d zarar ile -MAP_NOT_FOUND = Map ismi bulunamadi yada mevcud degildir -ADMIN_MAP_1 = ADMIN: %s mapina degisdirdi -ADMIN_MAP_2 = ADMIN %s: %s mapina degisdirdi -NO_MORE_CVARS = Rcon'a daha cvar ekliyemiyorsunuz! +REASON = neden +FOR_MIN = %s dakika +PERM = kalici olarak +CLIENT_BANNED = Kullanici "%s" banlandi +ADMIN_SLAY_1 = ADMIN, %s kisisini oldurdu +ADMIN_SLAY_2 = ADMIN %s, %s kisisini oldurdu +CLIENT_SLAYED = Kullanici "%s" olduruldu +ADMIN_SLAP_1 = ADMIN, %s kisisini %d hasarla tokatladi +ADMIN_SLAP_2 = ADMIN %s, %s kisini %d hasarla tokatladi +CLIENT_SLAPED = Kullanici "%s" %d zarar ile tokatlandi +MAP_NOT_FOUND = O isimde bir harita bulunamadi yada harita gecersizdir +ADMIN_MAP_1 = ADMIN, haritayi %s olarak degistirdi +ADMIN_MAP_2 = ADMIN %s, haritayi %s olarak degistirdi +NO_MORE_CVARS = Rcon erisimi icin daha fazla cvar eklenemiyor UNKNOWN_CVAR = Bilinmeyen cvar: %s UNKNOWN_XVAR = Bilinmeyen xvar: %s -CVAR_NO_ACC = O cvar'a giris hakkiniz yok -XVAR_NO_ACC = O xvar'a giris hakkiniz yok +CVAR_NO_ACC = O cvara erisim hakkiniz yok +XVAR_NO_ACC = O xvara erisim hakkiniz yok CVAR_IS = Cvar "%s" budur "%s" XVAR_IS = Xvar "%s" budur "%s" -PROTECTED = GUVENLI -SET_CVAR_TO = %s cvar ayari %s onaylandi "%s" -SET_XVAR_TO = %s xvar ayari %s onaylandi "%s" -CVAR_CHANGED = Cvar "%s" degisimi "%s" tamamlandi -XVAR_CHANGED = Xvar "%s" degisimi "%s" tamamlandi -LOADED_PLUGINS = Su anki yuklenen Plugin'ler +PROTECTED = KORUMALI +SET_CVAR_TO = %s %s cvarini "%s" olarak degistirdi +SET_XVAR_TO = %s %s xvarini "%s" olarak degistirdi +CVAR_CHANGED = Cvar "%s" "%s" olarak degistirildi +XVAR_CHANGED = Xvar "%s" "%s" olarak degistirildi +LOADED_PLUGINS = Suanda yuklenen eklentiler NAME = isim VERSION = versiyon -AUTHOR = ureten +AUTHOR = yaratici FILE = dosya -STATUS = durum -PLUGINS_RUN = %d plugin, %d calisiyor -LOADED_MODULES = Su anki yuklenen module'ler -NUM_MODULES = %d module'ler -FILE_NOT_FOUND = "%s" Dosya bulunamadi -ADMIN_CONF_1 = ADMIN: %s Config dosyasi acildi -ADMIN_CONF_2 = ADMIN %s: %s Config dosyasi acildi -PAUSED = Gecici olarak durduruldu -UNPAUSED = Tekrar baslatildi -UNABLE_PAUSE = Server gecici olarak durdurulamadi. Serverde gercek oyuncu gerek. +STATUS = statu +PLUGINS_RUN = %d eklenti, %d tanesi calisiyor +LOADED_MODULES = Suanda yuklenen moduller +NUM_MODULES = %d modul +FILE_NOT_FOUND = "%s" dosyasi bulunamadi +ADMIN_CONF_1 = ADMIN, %s configini gerceklestirdi +ADMIN_CONF_2 = ADMIN %s, %s configini gerceklestirdi +PAUSED = durduruldu +UNPAUSED = devam ettirildi +UNABLE_PAUSE = Server oyunu durdurmak icin musait degildi. Serverde gercek oyuncular gerekli. SERVER_PROC = Server devami %s -PAUSING = Gecici olarak durduruldu -UNPAUSING = Tekrar baslatildi +PAUSING = durduruluyor +UNPAUSING = tekrar baslatiliyor PAUSE = durdur -UNPAUSE = baslat -COM_SENT_SERVER = Emir "%s" server consoluna gonderildi -CLIENTS_ON_SERVER = Serverde olan oyuncular -IMMU = dokunulmaz +UNPAUSE = tekrar baslat +COM_SENT_SERVER = Komut satiri "%s" server konsoluna gonderildi +CLIENTS_ON_SERVER = Serverdeki kullanicilar +IMMU = dokunulmazlik RESERV = reservasyon -ACCESS = giris -TOTAL_NUM = Tam %d -SKIP_MATCH = "%s" kullanilamiyor (benzeri ise "%s") -SKIP_IMM = "%s" kullanilamiyor (dokunulmazlik) -KICK_PL = "%s" atin -YOU_DROPPED = Sadece ozel gurupa mevcud oldugu icin atildiniz -KICKED_CLIENTS = %d oyuncular atildi -ADMIN_LEAVE_1 = ADMIN: %s %s %s %s gitdi -ADMIN_LEAVE_2 = ADMIN %s: %s %s %s %s gitdi -ADMIN_NICK_1 = ADMIN: %s kisinin ismini buna degisdirdi "%s" -ADMIN_NICK_2 = ADMIN %s: %s kisinin ismini buna degisdirdi "%s" -CHANGED_NICK = %s kisinin nickini buna degisdirdi "%s" -ADMIN_EXTEND_1 = ADMIN: haritayi %d dakika uzatti -ADMIN_EXTEND_2 = ADMIN %s: haritayi %d dakika uzatti +ACCESS = erisim +TOTAL_NUM = Toplam %d +SKIP_MATCH = "%s" atlaniyor ("%s" eslesiyor) +SKIP_IMM = "%s" atlaniyor (dokunulmazlik) +KICK_PL = "%s" atiliyor +YOU_DROPPED = Adminin sadece belirli kullanici gruplarini birakmasindan dolayi dusuruldunuz +KICKED_CLIENTS = %d kullanici atildi +ADMIN_LEAVE_1 = ADMIN, %s %s %s %s kisilerini birakti +ADMIN_LEAVE_2 = ADMIN %s, %s %s %s %s kisilerini birakti +ADMIN_NICK_1 = ADMIN, %s kisinin ismini "%s" olarak degistirdi +ADMIN_NICK_2 = ADMIN %s, %s kisinin ismini "%s" olarak degistirdi +CHANGED_NICK = %s kisinin ismi, "%s" olarak degistirildi +ADMIN_EXTEND_1 = ADMIN, haritayi %d dakika uzatti +ADMIN_EXTEND_2 = ADMIN %s, haritayi %d dakika uzatti MAP_EXTENDED = Harita "%s" %d dakika uzatildi +ADMIN_MUST_TEMPBAN = Oyunculari sadece gecici olarak banlayabilirsin, %d dakikaya kadar +ADMIN_MUST_TEMPUNBAN = Sadece yakinlarda banladigin oyuncularin banini kaldirabilirsin + [fr] ADMIN_KICK_1 = ADMIN: kick %s @@ -1127,8 +1130,8 @@ MAP_EXTENDED = Harta "%s" a fost extinsa pentru %d minute [hu] ADMIN_KICK_1 = ADMIN: %s kirúgva ADMIN_KICK_2 = ADMIN %s: %s kirúgva -IP_REMOVED = IP "%s" eltávolítva a ban-listárol -AUTHID_REMOVED = Authid "%s" eltávolítva a ban-listáról +IP_REMOVED = IP "%s" eltávolítva a banlistáról +AUTHID_REMOVED = Authid "%s" eltávolítva a banlistáról ADMIN_UNBAN_1 = ADMIN: %s ban visszavonva ADMIN_UNBAN_2 = ADMIN %s: %s ban visszavonva ADMIN_ADDBAN_1 = ADMIN: ban %s @@ -1721,3 +1724,157 @@ CHANGED_NICK = 改变 %s 的昵称为 "%s" ADMIN_EXTEND_1 = 管理员: 将地图时间延长 %d 分钟 ADMIN_EXTEND_2 = 管理员 %s: 将地图时间延长 %d 分钟 MAP_EXTENDED = "%s" 该地图已经被延长 %d 分钟 + +[al] +ADMIN_KICK_1 = ADMIN: largoi %s +ADMIN_KICK_2 = ADMIN %s: largoi %s +IP_REMOVED = IP "%s" u fshi nga lista dënimit +AUTHID_REMOVED = Authid "%s" u fshi nga lista ndalimit +ADMIN_UNBAN_1 = ADMIN: i fshiu dënimin %s +ADMIN_UNBAN_2 = ADMIN %s: fshiu dënimin %s +ADMIN_ADDBAN_1 = ADMIN: dënoj %s +ADMIN_ADDBAN_2 = ADMIN %s: dënoj %s +BANNED = dënoj +REASON = arsyeja +FOR_MIN = për %s min +PERM = përgjithëmon +CLIENT_BANNED = Lojtari "%s" morri dënim në server +ADMIN_SLAY_1 = ADMIN: vrau %s +ADMIN_SLAY_2 = ADMIN %s: vrau %s +CLIENT_SLAYED = Lojtari "%s" u vra +ADMIN_SLAP_1 = ADMIN: ndëshkoi %s me %d dëmtime +ADMIN_SLAP_2 = ADMIN %s: ndëshkoi %s me %d dëmtime +CLIENT_SLAPED = Lojtari "%s" mori ndëshkim me %d dëmtime +MAP_NOT_FOUND = Harta me atë emër nuk u gjetë ose është e pavlefshme +ADMIN_MAP_1 = ADMIN: ndryshoi hartën në %s +ADMIN_MAP_2 = ADMIN %s: ndryshoi hartën në %s +NO_MORE_CVARS = Nuk mund të shtoni cvars për rcon! +UNKNOWN_CVAR = Cvar Panjohur: %s +UNKNOWN_XVAR = Cvar Panjohur: %s +CVAR_NO_ACC = Ju nuk keni qasje në këtë cvar +XVAR_NO_ACC = Ju nuk keni qasje në këtë cvar +CVAR_IS = Cvar "%s" është "%s" +XVAR_IS = Xvar "%s" është "%s" +PROTECTED = MBROJTUR +SET_CVAR_TO = %s vendosi cvar %s në "%s" +SET_XVAR_TO = %s vendosi cvar %s në "%s" +CVAR_CHANGED = Cvar "%s" ndryshoi në "%s" +XVAR_CHANGED = Xvar "%s" ndryshoi në "%s" +LOADED_PLUGINS = Pluginat e ngarkuar aktualë +NAME = emri +VERSION = verzioni +AUTHOR = autori +FILE = skedari +STATUS = statusi +PLUGINS_RUN = %d plugins, %d duke punuar +LOADED_MODULES = Modulet e ngarkuar aktuale +NUM_MODULES = %d modules +FILE_NOT_FOUND = Skedari "%s" nuk u gjetë +ADMIN_CONF_1 = ADMIN: ekzekutoj konfigurimet %s +ADMIN_CONF_2 = ADMIN %s: ekzekutoj konfigurimet %s +PAUSED = pushim +UNPAUSED = rikthim +UNABLE_PAUSE = Serveri nuk ishte në gjendje të ndalte lojën. Lojtarët e vërtetë në server janë të nevojshëm. +SERVER_PROC = Serveri vazhdon %s +PAUSING = pushuar +UNPAUSING = rikthyer +PAUSE = pusho +UNPAUSE = rikthe +COM_SENT_SERVER = Komandat e rreshtit "%s" dërgoi në server në konsole +CLIENTS_ON_SERVER = Lojtarët në server +IMMU = imunitet +RESERV = res +ACCESS = qasje +TOTAL_NUM = Totali %d +SKIP_MATCH = Anashkaloi "%s" (koordinim "%s") +SKIP_IMM = Anashkaloi "%s" (imunitet) +KICK_PL = Largoi "%s" +YOU_DROPPED = Ju jeni larguar sepse administratori ka lënë vetëm grupin e caktuar të lojtarëve +KICKED_CLIENTS = Largoi %d lojtarët +ADMIN_LEAVE_1 = ADMIN: largoi %s %s %s %s +ADMIN_LEAVE_2 = ADMIN %s: largoi %s %s %s %s +ADMIN_NICK_1 = ADMIN: i ndryshoi emrin prej %s në "%s" +ADMIN_NICK_2 = ADMIN %s: i ndryshoi emrin prej %s në "%s" +CHANGED_NICK = Ndryshoi emrin prej %s në "%s" +ADMIN_EXTEND_1 = ADMIN: vazhdojë hartën për %d minuta +ADMIN_EXTEND_2 = ADMIN %s: vazhdojë hartën për %d minuta +MAP_EXTENDED = Harta "%s" është vazhduar për %d minuta +ADMIN_MUST_TEMPBAN = Ju mund të ndaloni lojtarët përkohësisht, deri në %d minuta +ADMIN_MUST_TEMPUNBAN = Ju vetem mund të zhbllokoni lojtarët që keni ndaluar kohët e fundit + +[pt] +ADMIN_KICK_1 = ADMIN: expulsou %s +ADMIN_KICK_2 = ADMIN %s: expulsou %s +IP_REMOVED = O IP "%s" foi removido da lista de bans +AUTHID_REMOVED = O authid "%s" foi removido da lista de bans +ADMIN_UNBAN_1 = ADMIN: desbaniu %s +ADMIN_UNBAN_2 = ADMIN %s: desbaniu %s +ADMIN_ADDBAN_1 = ADMIN: baniu %s +ADMIN_ADDBAN_2 = ADMIN %s: baniu %s +BANNED = banido +REASON = razão +FOR_MIN = por %s minutos +PERM = permanentemente +CLIENT_BANNED = O cliente "%s" foi banido +ADMIN_SLAY_1 = ADMIN: matou %s +ADMIN_SLAY_2 = ADMIN %s: matou %s +CLIENT_SLAYED = O cliente "%s" foi morto +ADMIN_SLAP_1 = ADMIN: esbofeteou %s com %d de dano +ADMIN_SLAP_2 = ADMIN %s: esbofeteou %s com %d de dano +CLIENT_SLAPED = O cliente "%s" foi esbofeteado com %d de dano +MAP_NOT_FOUND = O mapa com esse nome não foi encontrado ou é inválido +ADMIN_MAP_1 = ADMIN: mudou de mapa para %s +ADMIN_MAP_2 = ADMIN %s: mudou de mapa para %s +NO_MORE_CVARS = Não é possível adicionar mais cvars para acesso rcon! +UNKNOWN_CVAR = Cvar desconhecida: %s +UNKNOWN_XVAR = Xvar desconhecida: %s +CVAR_NO_ACC = Tu não tens acesso a essa cvar +XVAR_NO_ACC = Tu não tens acesso a essa xvar +CVAR_IS = A cvar "%s" é "%s" +XVAR_IS = A xvar "%s" é "%s" +PROTECTED = PROTEGIDO +SET_CVAR_TO = %s mudou a cvar %s para "%s" +SET_XVAR_TO = %s mudou a xvar %s para "%s" +CVAR_CHANGED = A cvar "%s" foi mudada para "%s" +XVAR_CHANGED = A xvar "%s" foi mudada para "%s" +LOADED_PLUGINS = Plugins atualmente carregados +NAME = nome +VERSION = versão +AUTHOR = autor +FILE = ficheiro +STATUS = estado +PLUGINS_RUN = %d plugins, %d ativos +LOADED_MODULES = Módulos atualmente carregados +NUM_MODULES = %d módulos +FILE_NOT_FOUND = O ficheiro "%s" não foi encontrado +ADMIN_CONF_1 = ADMIN: executou a config %s +ADMIN_CONF_2 = ADMIN %s: executou a config %s +PAUSED = pausado +UNPAUSED = despausado +UNABLE_PAUSE = O servidor não pôde pausar o jogo. É preciso jogadores reais no servidor. +SERVER_PROC = O servidor procedeu %s +PAUSING = a pausar +UNPAUSING = a despausar +PAUSE = pausar +UNPAUSE = despausar +COM_SENT_SERVER = A linha de comando "%s" foi enviada para a consola do servidor +CLIENTS_ON_SERVER = Clientes no servidor +IMMU = imunidade +RESERV = reservação +ACCESS = acesso +TOTAL_NUM = Total %d +SKIP_MATCH = A saltar "%s" (a coincidir com "%s") +SKIP_IMM = A saltar "%s" (imunidade) +KICK_PL = A expulsar "%s" +YOU_DROPPED = Tu foste desconectado pois o admin só deixa entrar um grupo de clientes específico +KICKED_CLIENTS = Foram expulsos %d clientes +ADMIN_LEAVE_1 = ADMIN: deixou %s %s %s %s +ADMIN_LEAVE_2 = ADMIN %s: deixou %s %s %s %s +ADMIN_NICK_1 = ADMIN: mudou o nome de %s para "%s" +ADMIN_NICK_2 = ADMIN %s: mudou o nome de %s para "%s" +CHANGED_NICK = Mudou o nome de %s para "%s" +ADMIN_EXTEND_1 = ADMIN: extendeu o mapa por %d minutos +ADMIN_EXTEND_2 = ADMIN %s: extendeu o mapa por %d minutos +MAP_EXTENDED = O mapa "%s" foi extendido por %d minutos +ADMIN_MUST_TEMPBAN = Tu só podes banir jogadores temporariamente, até %d minutos +ADMIN_MUST_TEMPUNBAN = Tu só podes desbanir jogadores que baniste recentemente diff --git a/plugins/lang/adminhelp.txt b/plugins/lang/adminhelp.txt index c214c52230..29f124ef38 100755 --- a/plugins/lang/adminhelp.txt +++ b/plugins/lang/adminhelp.txt @@ -12,12 +12,12 @@ NO_MATCHING_RESULTS = ^nNo matching results found^n [de] HELP_COMS = AMX Mod X Help: Befehle -HELP_ENTRIES = Eintraege %d - %d von %d -HELP_USE_MORE = Nutze '%s %d' fuer die naechste Seite +HELP_ENTRIES = Einträge %d - %d von %d +HELP_USE_MORE = Nutze '%s %d' für die nächste Seite HELP_USE_BEGIN = Nutze '%s 1' um zum Anfang zu gelangen -TYPE_HELP = Schreibe '%s' '%s' in die Konsole um die verfuegbaren Befehle zu sehen. -TIME_INFO_1 = Verbleibende Zeit: %d:%02d Minuten, naechste Map: %s -TIME_INFO_2 = Kein Zeitlimit. Naechste Map ist: %s +TYPE_HELP = Schreibe '%s' '%s' in die Konsole um die verfügbaren Befehle zu sehen. +TIME_INFO_1 = Verbleibende Zeit: %d:%02d Minuten, nächste Map: %s +TIME_INFO_2 = Kein Zeitlimit. Nächste Map ist: %s [sr] HELP_COMS = AMX Mod X Pomoc: Komande @@ -29,13 +29,16 @@ TIME_INFO_1 = Preostalo Vreme: %d:%02d min. Sledeca Mapa: %s TIME_INFO_2 = Nema vremenskog ogranicenja. Sledeca Mapa: %s [tr] -HELP_COMS = AMX Mod X Yardim: Emirler -HELP_ENTRIES = Girisler %d - %d of %d -HELP_USE_MORE = '%s %d' kullanin gerisini gormek icin -HELP_USE_BEGIN = Baslatmak icin '%s 1' i kullanin -TYPE_HELP = Consolda '%s' '%s' yazin, mevcud olan emirleri gormek icin -TIME_INFO_1 = Geri kalan zaman: %d:%02d dak. Diger Map: %s -TIME_INFO_2 = Zaman sureci yokdur. Diger Map: %s +HELP_COMS = AMX Mod X Yardim: Komutlar +HELP_ENTRIES = Girisler %d - %d / %d +HELP_USE_MORE = Daha fazlasi icin '%s %d' kullanin +HELP_USE_BEGIN = Baslamak icin '%s 1' kullanin +TYPE_HELP = Mevcut komutlari gormek icin konsola '%s' '%s' yazin +TIME_INFO_1 = Kalan Zaman: %d:%02d dk. Sonraki Harita: %s +TIME_INFO_2 = Zaman Limiti Yok. Sonraki Harita: %s +HELP_CMD_INFO = [gosterilecek giris no. (sadece server)] - mevcut komutlar hakkinda bilgi gosterir +SEARCH_CMD_INFO = [gosterilecek girislerin no.su (sadece server)] - eslesen komutlar hakkinda bilgi verir +NO_MATCHING_RESULTS = ^nHic eslesen sonuc bulunamadi^n [fr] HELP_COMS = Aide AMX Mod X: Commandes @@ -140,11 +143,11 @@ TIME_INFO_2 = Nici o Limita a Timpului. Urmatoarea Harta: %s [hu] HELP_COMS = AMX Mod X segítség: Parancsok -HELP_ENTRIES = Bejegyzés %d - %d of %d -HELP_USE_MORE = Írj 'amx_help %d' -t többhöz -HELP_USE_BEGIN = Yrj 'amx_help 1' -t az első oldalhoz -TYPE_HELP = Írj 'amx_help' -t a konzolba hogy láthasd a parancsokat -TIME_INFO_1 = Hátrálévő idő: %d:%02d perc. következő pálya: %s +HELP_ENTRIES = Bejegyzés %d - %d / %d +HELP_USE_MORE = Írj 'amx_help %d' többhöz +HELP_USE_BEGIN = Írj 'amx_help 1'-et az első oldalhoz +TYPE_HELP = Írj 'amx_help'-et a konzolba, hogy láthasd a parancsokat +TIME_INFO_1 = Hátrálévő idő: %d:%02d perc. Következő pálya: %s TIME_INFO_2 = Nincs időhatár. A következő pálya: %s HELP_CMD_INFO = [megjeneítendő bejegyzések száma (csak szerver)] - információt nyújt az elérhető parancsokhoz SEARCH_CMD_INFO = [megjeneítendő bejegyzések száma (csak szerver)] - információt nyújt az egyező parancsokhoz @@ -212,3 +215,27 @@ HELP_USE_BEGIN = 使用 '%s 1' 返回首页 TYPE_HELP = 在控制台输入 '%s' '%s' 查看有效的命令 TIME_INFO_1 = 剩余时间: %d:%02d 分钏. 下一张地图为: %s TIME_INFO_2 = 无时间限制. 下一张地图为: %s + +[al] +HELP_COMS = AMX Mod X Ndihma: Komandat +HELP_ENTRIES = Hyrje %d - %d prej %d +HELP_USE_MORE = Përdorë '%s %d' për më shumë +HELP_USE_BEGIN = Përdorë '%s 1' për të filluar +TYPE_HELP = Shkruaj '%s' '%s' në konsole për ti shikuar komandat e lira +TIME_INFO_1 = Koha Mbetur: %d:%02d min. Harta Ardhëshme: %s +TIME_INFO_2 = Pakufizuar. Harta Ardhëshme: %s +HELP_CMD_INFO = [nr. e hyrjeve për t'u shfaqur (vetem serveri)] - tregon informacion në lidhje me komandat në dispozicion +SEARCH_CMD_INFO = [nr. e hyrjeve për t'u shfaqur (vetem serveri)] - shfaq informacione rreth komandave të përputhura +NO_MATCHING_RESULTS = ^nNuk u gjetën rezultate^n + +[pt] +HELP_COMS = Ajuda do AMX Mod X: Comandos +HELP_ENTRIES = Entradas %d - %d de %d +HELP_USE_MORE = Usa '%s %d' para mostrar mais +HELP_USE_BEGIN = Usa '%s 1' para voltar ao início +TYPE_HELP = Escreve '%s' '%s' na consola para ver os comandos disponíveis +TIME_INFO_1 = Tempo Restante: %d:%02d min. Próximo Mapa: %s +TIME_INFO_2 = Sem Limite de Tempo. Próximo Mapa: %s +HELP_CMD_INFO = [no. de entradas para mostrar (do servidor)] - mostra informação acerca de comandos disponíveis +SEARCH_CMD_INFO = [no. de entradas para mostrar (do servidor)] - mostra informações acerca de comandos correspondentes á pesquisa +NO_MATCHING_RESULTS = ^nSem resultados correspondentes^n diff --git a/plugins/lang/adminslots.txt b/plugins/lang/adminslots.txt index e7dfef86d9..0850f6766d 100755 --- a/plugins/lang/adminslots.txt +++ b/plugins/lang/adminslots.txt @@ -8,7 +8,7 @@ DROPPED_RES = Sorry, dieser Slot ist reserviert DROPPED_RES = Server je pun, nemate pristup rezervisanim mestima [tr] -DROPPED_RES = Reservasyon nedeniyle atildiniz +DROPPED_RES = Slot rezervasyonundan dolayi dusuruldun [fr] DROPPED_RES = Desole, un admin vient de prendre sa place reservee, tu as ete ejecte du serveur @@ -66,3 +66,11 @@ DROPPED_RES = Извините мест нет, это зарезервиров [cn] DROPPED_RES = 由于你无法使用预留通道,以至于与服务器连接断开 + +[al] +DROPPED_RES = U largua për shkak të rezervimit të vendit që është plugini aktiv në server! + +[pt] +DROPPED_RES = Foste desconectado por causa da reservação de slots +CVAR_RESERVATION = Quantidade de slots para reservar +CVAR_HIDESLOTS = Se tu definires isto para 1, tu podes esconder slots no teu servidor.^nSe os slots públicos e escondidos do servidor estiverem cheios, tu deverás manualmente conectar com o comando de consola "connect". diff --git a/plugins/lang/adminvote.txt b/plugins/lang/adminvote.txt index 6cf967e1cf..6f7403af9e 100755 --- a/plugins/lang/adminvote.txt +++ b/plugins/lang/adminvote.txt @@ -36,35 +36,35 @@ ADMIN_VOTE_FOR_2 = %s %s: vote %s for %s ADMIN_CANC_VOTE_1 = %s: Abstimmung abgebrochen ADMIN_CANC_VOTE_2 = %s %s: Abstimmung abgebrochen VOTING_CANC = Auswahl abgebrochen -NO_VOTE_CANC = Zur Zeit ist keine Abstimmung vorhanden oder das Abbrechen ist mit diesem Befehl nicht moeglich +NO_VOTE_CANC = Zur Zeit ist keine Abstimmung vorhanden oder das Abbrechen ist mit diesem Befehl nicht möglich RES_REF = Resultat abgelehnt RES_ACCEPTED = Resultat angenommen VOTING_FAILED = Abstimmung gescheitert -VOTING_RES_1 = %s (Ja "%d") (Nein "%d") (benoetigt "%d") -VOTING_RES_2 = %s (erhielt "%d") (benoetigt "%d") +VOTING_RES_1 = %s (Ja "%d") (Nein "%d") (benötigt "%d") +VOTING_RES_2 = %s (erhielt "%d") (benötigt "%d") VOTING_SUCCESS = Abstimmung erfolgreich -VOTING_RES_3 = %s (erhielt "%d") (benoetigt "%d"). Ergebnis: %s +VOTING_RES_3 = %s (erhielt "%d") (benötigt "%d"). Ergebnis: %s THE_RESULT = Das Ergebnis -WANT_CONTINUE = Forfahren? -VOTED_FOR = %s stimmten dafuer -VOTED_AGAINST = %s stimmten dagegen -VOTED_FOR_OPT = %s stimmten fuer Option #%d -ALREADY_VOTING = Abstimmung laeuft bereits... -VOTING_NOT_ALLOW = Abstimmung ist momentan nicht moeglich! -GIVEN_NOT_VALID = %s ist unzulaessig +WANT_CONTINUE = Fortfahren? +VOTED_FOR = %s stimmte dafür +VOTED_AGAINST = %s stimmte dagegen +VOTED_FOR_OPT = %s stimmte für Option #%d +ALREADY_VOTING = Abstimmung läuft bereits... +VOTING_NOT_ALLOW = Abstimmung ist momentan nicht möglich! +GIVEN_NOT_VALID = %s ist unzulässig MAP_IS = Map ist MAPS_ARE = Maps sind -CHOOSE_MAP = Waehle Map -ADMIN_VOTE_MAP_1 = %s: Abstimmung fuer Map(s) gestartet -ADMIN_VOTE_MAP_2 = %s %s: Abstimmung fuer Map(s) gestartet +CHOOSE_MAP = Wähle Map +ADMIN_VOTE_MAP_1 = %s: Abstimmung für Map(s) gestartet +ADMIN_VOTE_MAP_2 = %s %s: Abstimmung für Map(s) gestartet VOTING_STARTED = Abstimmung gestartet ... -VOTING_FORBIDDEN = Abstimmung dafuer ist verboten. +VOTING_FORBIDDEN = Abstimmung dafür ist verboten. ADMIN_VOTE_CUS_1 = %s: startet eigene Umfrage ADMIN_VOTE_CUS_2 = %s %s: startet eigene Umfrage VOTE = Abstimmung -ACTION_PERFORMED = Durchfuehrung an BOT "%s" ist nicht moeglich -ADMIN_VOTE_FOR_1 = %s: %s Stimmen fuer %s -ADMIN_VOTE_FOR_2 = %s %s: %s Stimmen fuer %s +ACTION_PERFORMED = Durchführung an BOT "%s" ist nicht möglich +ADMIN_VOTE_FOR_1 = %s: %s Stimmen für %s +ADMIN_VOTE_FOR_2 = %s %s: %s Stimmen für %s [sr] ADMIN_CANC_VOTE_1 = %s: otkazi glasanje @@ -101,38 +101,38 @@ ADMIN_VOTE_FOR_1 = %s: glasao %s za %s ADMIN_VOTE_FOR_2 = %s %s: glasao %s za %s [tr] -ADMIN_CANC_VOTE_1 = %s: oylamayi durdur -ADMIN_CANC_VOTE_2 = %s %s: oylamayi durdur -VOTING_CANC = Oylama durduruldu -NO_VOTE_CANC = Durdurulacak oylama yokdur yada oylamayi o emir ile durduramazsiniz -RES_REF = Sonuc red edildi +ADMIN_CANC_VOTE_1 = %s, oylamayi iptal etti +ADMIN_CANC_VOTE_2 = %s %s, oylamayi iptal etti +VOTING_CANC = Oylama iptal edildi +NO_VOTE_CANC = Iptal edilecek bir oylama yok yada oylama oturumu o komut ile iptal edilemez +RES_REF = Sonuc reddedildi RES_ACCEPTED = Sonuc kabul edildi -VOTING_FAILED = Oylama hatali -VOTING_RES_1 = %s (evet "%d") (hayir "%d") (gerekli "%d") -VOTING_RES_2 = %s (alinan "%d") (gerekli "%d") -VOTING_SUCCESS = Oylama sonucu kabul edilmistir -VOTING_RES_3 = %s (alinan "%d") (gerekli "%d"). Sonuc: %s +VOTING_FAILED = Oylama basarisiz +VOTING_RES_1 = %s ("%d" evet) ("%d" hayir) ("%d" gerekli) +VOTING_RES_2 = %s ("%d" alinan) ("%d" gerekli) +VOTING_SUCCESS = Oylama basarili +VOTING_RES_3 = %s ("%d" alinan) ("%d" gerekli). Sonuc: %s THE_RESULT = Sonuc -WANT_CONTINUE = Devam etmek istiyormusunuz? -VOTED_FOR = %s Oy verdi -VOTED_AGAINST = %s Red etdi -VOTED_FOR_OPT = %s Buna oy verdi #%d -ALREADY_VOTING = Zaten su an oylama suruyor... -VOTING_NOT_ALLOW = Su anda oylama yapamazsiniz -GIVEN_NOT_VALID = %s verildi, gecerli degil -MAP_IS = Map budur -MAPS_ARE = Maplar bunlardir -CHOOSE_MAP = Map secin -ADMIN_VOTE_MAP_1 = %s:map(lar) oylamasi -ADMIN_VOTE_MAP_2 = %s %s: map(lar) oylamasi -VOTING_STARTED = Oylama baslamisdir... -VOTING_FORBIDDEN = Onun hakkinda oylama yasaklanmisdir -ADMIN_VOTE_CUS_1 = %s: Ozel oylama -ADMIN_VOTE_CUS_2 = %s %s: Ozel oylama +WANT_CONTINUE = Devam etmek istiyor musun? +VOTED_FOR = %s suna oy verdi +VOTED_AGAINST = %s suna karsi oy verdi +VOTED_FOR_OPT = %s #%d secenegine oy verdi +ALREADY_VOTING = Zaten devam eden bir oylama var... +VOTING_NOT_ALLOW = Oylama suanda yapilamaz +GIVEN_NOT_VALID = %s gecersiz verildi +MAP_IS = harita +MAPS_ARE = haritalar +CHOOSE_MAP = Harita Sec +ADMIN_VOTE_MAP_1 = %s, harita oylamasi oyladi +ADMIN_VOTE_MAP_2 = %s %s, harita oylamasi oyladi +VOTING_STARTED = Oylama basladi... +VOTING_FORBIDDEN = Onun icin oylama yasaklandi +ADMIN_VOTE_CUS_1 = %s, ozel oylama oyladi +ADMIN_VOTE_CUS_2 = %s %s, ozel oylama oyladi VOTE = Oy -ACTION_PERFORMED = Bot uzerinde bunu yapamassiniz "%s" -ADMIN_VOTE_FOR_1 = %s: %s hakkinda oy %s -ADMIN_VOTE_FOR_2 = %s %s: %s hakkinda oy %s +ACTION_PERFORMED = O eylem "%s" botu uzerinde yapilamaz +ADMIN_VOTE_FOR_1 = %s, %s oylamasini %s icin oyladi +ADMIN_VOTE_FOR_2 = %s %s, %s oylamasini %s icin oyladi [fr] ADMIN_CANC_VOTE_1 = %s: annule le vote @@ -779,3 +779,71 @@ VOTE = 投票 ACTION_PERFORMED = 机器人 "%s" 无法执行这个投票 ADMIN_VOTE_FOR_1 = %s: 投票 %s %s ADMIN_VOTE_FOR_2 = %s %s: 投票 %s %s + +[al] +ADMIN_CANC_VOTE_1 = %s: anuloj votën +ADMIN_CANC_VOTE_2 = %s %s: anuloj votën +VOTING_CANC = Votimi u anulua +NO_VOTE_CANC = Nuk ka votim për anulim ose votimi nuk mund të anulohet me atë komandë +RES_REF = Rezultati u refuzua +RES_ACCEPTED = Rezultati u pranua +VOTING_FAILED = Votimi dështoi +VOTING_RES_1 = %s (po "%d") (jo "%d") (nevojitet "%d") +VOTING_RES_2 = %s (mori "%d") (nevojitet "%d") +VOTING_SUCCESS = Votimi u bë me sukëses +VOTING_RES_3 = %s (mori "%d") (nevojitet "%d"). Rezultati: %s +THE_RESULT = Rezultati +WANT_CONTINUE = A dëshironi të vazhdoni? +VOTED_FOR = %s votuan për +VOTED_AGAINST = %s votuan përsëri +VOTED_FOR_OPT = %s votuan për mundësin #%d +ALREADY_VOTING = Ekziston tashmë një votim... +VOTING_NOT_ALLOW = Votimi nuk lejohet në këtë kohë +GIVEN_NOT_VALID = Dhuroi %s të pa vlefshme +MAP_IS = harta është +MAPS_ARE = hartat janë +CHOOSE_MAP = Zgjedh Hartën +ADMIN_VOTE_MAP_1 = %s: voto hartën(s) +ADMIN_VOTE_MAP_2 = %s %s: voto hartën(s) +VOTING_STARTED = Votimi filloj... +VOTING_FORBIDDEN = Votimi për këtë është ndaluar +ADMIN_VOTE_CUS_1 = %s: votoni me porosi +ADMIN_VOTE_CUS_2 = %s %s: votoni me porosi +VOTE = Vota +ACTION_PERFORMED = Ky veprim nuk mund të kryhet në bot (jo lojtar) "%s" +ADMIN_VOTE_FOR_1 = %s: votoj %s për %s +ADMIN_VOTE_FOR_2 = %s %s: votoj %s për %s + +[pt] +ADMIN_CANC_VOTE_1 = %s: cancelou votação +ADMIN_CANC_VOTE_2 = %s %s: cancelou votação +VOTING_CANC = Votação cancelada +NO_VOTE_CANC = Não existe nenhuma votação para poder cancelar ou a votação não pode ser cancelada com esse comando +RES_REF = O resultado foi recusado +RES_ACCEPTED = O resultado foi aceite +VOTING_FAILED = A votação falhou +VOTING_RES_1 = %s (sim "%d") (não "%d") (necessário "%d") +VOTING_RES_2 = %s (obteve "%d") (necessário "%d") +VOTING_SUCCESS = A votação terminou com sucesso +VOTING_RES_3 = %s (obteve "%d") (necessário "%d"). O resultado: %s +THE_RESULT = O resultado +WANT_CONTINUE = Queres continuar? +VOTED_FOR = %s votou a favor +VOTED_AGAINST = %s votou contra +VOTED_FOR_OPT = %s votou a opção #%d +ALREADY_VOTING = Já tem uma votação a decorrer... +VOTING_NOT_ALLOW = Votação não é permitida neste momento +GIVEN_NOT_VALID = %s não é válido +MAP_IS = O mapa é +MAPS_ARE = Os mapas são +CHOOSE_MAP = Escolhe o mapa +ADMIN_VOTE_MAP_1 = %s: votação de mapa(s) +ADMIN_VOTE_MAP_2 = %s %s: votaçao de mapa(s) +VOTING_STARTED = Uma votação começou... +VOTING_FORBIDDEN = Votação disso é proíbido +ADMIN_VOTE_CUS_1 = %s: votação customizada +ADMIN_VOTE_CUS_2 = %s %s: votação customizada +VOTE = Voto +ACTION_PERFORMED = Essa ação não pode ser executada no bot "%s" +ADMIN_VOTE_FOR_1 = %s: votação %s para %s +ADMIN_VOTE_FOR_2 = %s %s: votação %s para %s diff --git a/plugins/lang/antiflood.txt b/plugins/lang/antiflood.txt index e6b5ad9e76..1924e7a59b 100755 --- a/plugins/lang/antiflood.txt +++ b/plugins/lang/antiflood.txt @@ -8,7 +8,7 @@ STOP_FLOOD = Bitte nicht zu viele Eingaben auf einmal! STOP_FLOOD = Prestani da opterecujes server porukama! [tr] -STOP_FLOOD = Serveri yazi ile doldurmayin! +STOP_FLOOD = Serveri floodlamayi kes! [fr] STOP_FLOOD = Arrete de flooder le serveur! @@ -66,3 +66,9 @@ STOP_FLOOD = Прекратите флуд на сервере! [cn] STOP_FLOOD = 请停止愚弄服务器! + +[al] +STOP_FLOOD = Ndalo përmbytjen(flood) në këtë server, sepse do të ndëshkoheni( Kontrollo Internetin)! + +[pt] +STOP_FLOOD = Para com o flood no servidor! diff --git a/plugins/lang/cmdmenu.txt b/plugins/lang/cmdmenu.txt index c9b7998c25..29d0fc32a2 100755 --- a/plugins/lang/cmdmenu.txt +++ b/plugins/lang/cmdmenu.txt @@ -4,9 +4,9 @@ CONF_MENU = Configs Menu SPE_MENU = Speech Menu [de] -CMD_MENU = Menu > Befehle -CONF_MENU = Menu > Konfiguration -SPE_MENU = Menu > Sprechen +CMD_MENU = Menü > Befehle +CONF_MENU = Menü > Konfiguration +SPE_MENU = Menü > Sprechen [sr] CMD_MENU = Komandne @@ -14,8 +14,8 @@ CONF_MENU = Podesavanja SPE_MENU = Govorne Komande [tr] -CMD_MENU = Emir Menusu -CONF_MENU = Configler Menusu +CMD_MENU = Komut Menu +CONF_MENU = Config Menu SPE_MENU = Konusma Menusu [fr] @@ -112,3 +112,13 @@ SPE_MENU = Меню звуков CMD_MENU = 命令菜单 CONF_MENU = 配置菜单 SPE_MENU = 语音菜单 + +[al] +CMD_MENU = Lista Komandave +CONF_MENU = Lista Konfigurimeve +SPE_MENU = Lista Fjalëve + +[pt] +CMD_MENU = Menu de Comandos +CONF_MENU = Menu de Configurações +SPE_MENU = Menu de Voz diff --git a/plugins/lang/common.txt b/plugins/lang/common.txt index 03f6c60af1..504dfbdf30 100755 --- a/plugins/lang/common.txt +++ b/plugins/lang/common.txt @@ -21,7 +21,7 @@ ON = On OFF = Off [de] -BACK = Zurueck +BACK = Zurück EXIT = Beenden MORE = Mehr NONE = Keine @@ -32,13 +32,13 @@ YES = Ja NO = Nein BAN = ban KICK = kick -NO_ACC_COM = Du hast nicht genuegend Rechte, um diesen Befehl auszufuehren! +NO_ACC_COM = Du hast nicht genügend Rechte, um diesen Befehl auszuführen! USAGE = Anwendung MORE_CL_MATCHT = Es gibt mehrere Spieler, auf die deine Angaben zutreffen CL_NOT_FOUND = Spieler mit diesem Namen oder dieser UserID nicht gefunden -CLIENT_IMM = Spieler "%s" hat Immnuitaet -CANT_PERF_DEAD = Diese Aktion kann nicht am toten Spieler "%s" ausgefuehrt werden. -CANT_PERF_BOT = Diese Aktion kann nicht am Bot "%s" ausgefuehrt werden. +CLIENT_IMM = Spieler "%s" hat Immunität +CANT_PERF_DEAD = Diese Aktion kann nicht am toten Spieler "%s" ausgeführt werden. +CANT_PERF_BOT = Diese Aktion kann nicht am Bot "%s" ausgeführt werden. ON = An OFF = Aus @@ -70,19 +70,19 @@ EXIT = Cikis MORE = Daha NONE = Hic ADMIN = ADMIN -PLAYER = Oyuncu +PLAYER = OYUNCU ERROR = hata -YES = evet -NO = hayir +YES = Evet +NO = Hayir BAN = ban KICK = at -NO_ACC_COM = O emiri kullanma hakkiniz yok -USAGE = kullanim -MORE_CL_MATCHT = Aradiginiz konuya uygun oyuncular -CL_NOT_FOUND = O isimde oyuncu yada kullaniciID'si bulunamadi -CLIENT_IMM = "%s" oyuncunun dokunulmazligi var -CANT_PERF_DEAD = Bunu olu bir oyuncunun uzerinde yapamazsiniz "%s" -CANT_PERF_BOT = Bot uzerinde bunu yapamazsiniz "%s" +NO_ACC_COM = O komuta erisimin yok +USAGE = Kullanim +MORE_CL_MATCHT = Argumaninizla eslesen birden fazla kullanici var +CL_NOT_FOUND = O isimde yada useridde bir kullanici bulunamadi +CLIENT_IMM = "%s" kullanicisinin dokunulmazligi var +CANT_PERF_DEAD = O eylem "%s" olu oyuncusunda gerceklestirilemez +CANT_PERF_BOT = Bu eylem "%s" botunda gerceklestirilemez ON = Acik OFF = Kapali @@ -503,3 +503,47 @@ CANT_PERF_DEAD = 玩家 "%s" 已经死亡,无法执行该命令 CANT_PERF_BOT = 机器人 "%s" 无法执行该命令 ON = 开启 OFF = 关闭 + +[al] +BACK = Mbrapa +EXIT = Mbylle +MORE = Më shumë +NONE = Asnjë +ADMIN = ADMIN +PLAYER = LOJTAR +ERROR = gabim +YES = Po +NO = Jo +BAN = dënim +KICK = largim +NO_ACC_COM = Nuk keni qasje në këtë komandë +USAGE = Përdori +MORE_CL_MATCHT = Ka më shumë se një lojtarë që përputhet me argumentin tuaj +CL_NOT_FOUND = Lojtari me atë emër nuk është gjetur +CLIENT_IMM = Lojtari "%s" ka imunitet +CANT_PERF_DEAD = Ky veprim nuk mund të kryhet në një lojtar të vdekur "%s" +CANT_PERF_BOT = Ky veprim nuk mund të kryhet në bot(jo lojtar) "%s" +ON = Aktiv +OFF = Joaktiv + +[pt] +BACK = Atrás +EXIT = Sair +MORE = Mais +NONE = Nenhum +ADMIN = ADMIN +PLAYER = JOGADOR +ERROR = erro +YES = Sim +NO = Não +BAN = banir +KICK = expulsar +NO_ACC_COM = Tu não tens acesso a esse comando +USAGE = Uso +MORE_CL_MATCHT = Há mais do que um cliente a corresponder o teu argumento +CL_NOT_FOUND = O cliente com esse nome ou userid não foi encontrado +CLIENT_IMM = O cliente "%s" tem imunidade +CANT_PERF_DEAD = Essa ação não pode ser executada no cliente morto "%s" +CANT_PERF_BOT = Essa ação não pode ser executada no bot "%s" +ON = Ativado +OFF = Desativado diff --git a/plugins/lang/imessage.txt b/plugins/lang/imessage.txt index 84e5b33da2..13f5df7646 100755 --- a/plugins/lang/imessage.txt +++ b/plugins/lang/imessage.txt @@ -8,7 +8,7 @@ INF_REACH = Nachrichtenlimit erreicht! INF_REACH = Dostignut limit Informacione Poruke! [tr] -INF_REACH = Informasyon mesajlari sinirina ulasildi! +INF_REACH = Bilgilendirme Mesajlari limitine ulasildi! [fr] INF_REACH = Limite de Messages d'Information atteinte! @@ -66,3 +66,9 @@ INF_REACH = Достигнут максимум информационных с [cn] INF_REACH=信息消息已达到限制数量! + +[al] +INF_REACH = Limiti i mesazheve për informacion u arrit! + +[pt] +INF_REACH = Alcançaste o limite de Mensagens de Informação! diff --git a/plugins/lang/languages.txt b/plugins/lang/languages.txt index 2c5d21b9f9..bc9934ed68 100755 --- a/plugins/lang/languages.txt +++ b/plugins/lang/languages.txt @@ -89,3 +89,11 @@ LANG_NAME_NATIVE = Русский [cn] LANG_NAME = Simplified Chinese LANG_NAME_NATIVE = 简体中文 + +[al] +LANG_NAME = Albanian +LANG_NAME_NATIVE = Shqipë + +[pt] +LANG_NAME = European Portuguese +LANG_NAME_NATIVE = Português de Portugal diff --git a/plugins/lang/mapchooser.txt b/plugins/lang/mapchooser.txt index 9c66acdfb0..fa876ac40d 100755 --- a/plugins/lang/mapchooser.txt +++ b/plugins/lang/mapchooser.txt @@ -8,13 +8,13 @@ EXTED_MAP = Extend map %s TIME_CHOOSE = It's time to choose the nextmap... [de] -CHO_FIN_EXT = Auswahl beendet. Laufende Map wird um %.0f Minuten verlaengert. -CHO_FIN_NEXT = Auswahl beendet. Naechste Map ist %s -CHOSE_EXT = %s waehlten Map-Verlaengerung -X_CHOSE_X = %s waehlten %s -CHOOSE_NEXTM = AMXX waehlt naechste Map -EXTED_MAP = Verlangere Map %s -TIME_CHOOSE = Es ist an der Zeit, die naechste Map zu waehlen... +CHO_FIN_EXT = Auswahl beendet. Laufende Map wird um %.0f Minuten verlängert. +CHO_FIN_NEXT = Auswahl beendet. Nächste Map ist %s +CHOSE_EXT = %s wählte Map-Verlängerung +X_CHOSE_X = %s wählte %s +CHOOSE_NEXTM = [AMXX] Wählt die nächste Map +EXTED_MAP = Verlängere Map %s +TIME_CHOOSE = Es ist an der Zeit, die nächste Map zu wählen... [sr] CHO_FIN_EXT = Biranje zavrseno. Sadasnja mapa ce biti produzena za %.0f minuta @@ -26,13 +26,13 @@ EXTED_MAP = Produzi mapu %s TIME_CHOOSE = Vreme je da se izabere sledeca map... [tr] -CHO_FIN_EXT = Oylama bitmisdir. Su anki map %.0f dakika uzatilacakdir -CHO_FIN_NEXT = Oylama bitmisdir. Secilen map ise %s -CHOSE_EXT = %s Map uzatilmasini secin -X_CHOSE_X = %s Secin %s -CHOOSE_NEXTM = AMX diger map secimi -EXTED_MAP = %s Map surecini uzat -TIME_CHOOSE = Yeni map secimi baslamisdir... +CHO_FIN_EXT = Oylama bitti. Suanki harita %.0f dakika uzatilacaktir +CHO_FIN_NEXT = Oylama bitmistirr. Sonraki harita %s olacaktir +CHOSE_EXT = %s haritayi uzatmayi secti +X_CHOSE_X = %s %s secti +CHOOSE_NEXTM = AMX Sonraki Haritayi Sec +EXTED_MAP = %s haritasini uzat +TIME_CHOOSE = Sonraki harita secme zamani... [fr] CHO_FIN_EXT = Les choix sont termines. La carte est prolongee de %.0f minutes @@ -136,8 +136,8 @@ TIME_CHOOSE = E timpul sa alegeti harta urmatoare... [hu] CHO_FIN_EXT = A választás véget ért. A mostani pálya még %.0f percig lesz. CHO_FIN_NEXT = A választás véget ért. A következő pálya a %s lesz. -CHOSE_EXT = %s még maradni szeretne -X_CHOSE_X = %s a %s pályára szavazott +CHOSE_EXT = %s még maradni szeretne. +X_CHOSE_X = %s a %s pályára szavazott. CHOOSE_NEXTM = Válaszd ki a következő pályát. EXTED_MAP = Maradjunk a %s pályán! TIME_CHOOSE = Itt az idő hogy kiválaszd a következő pályát. @@ -204,3 +204,21 @@ X_CHOSE_X = %s 选择了 %s CHOOSE_NEXTM = AMX 选择下一张地图 EXTED_MAP = 延长地图 %s TIME_CHOOSE = 是该选择下一张地图了... + +[al] +CHO_FIN_EXT = Zgjedhja përfundoi. Harta tanishme do të vazhdohet edhe për %.0f minuta +CHO_FIN_NEXT = Zgjedhja përfundoi. Harta e ardhëshme do të jetë %s +CHOSE_EXT = %s zgjedhi vazhdimin e hartës +X_CHOSE_X = %s zgjedhi %s +CHOOSE_NEXTM = AMX Zgjedh Hartën e Ardhëshme +EXTED_MAP = Vazhdo hartën %s +TIME_CHOOSE = Koha është të zgjedhni hartën e ardhëshme... + +[pt] +CHO_FIN_EXT = A votação terminou. O mapa atual vai ser estendido por %.0f minutos +CHO_FIN_NEXT = A votação terminou. O próximo mapa será %s +CHOSE_EXT = %s escolheu estender o mapa +X_CHOSE_X = %s escolheu %s +CHOOSE_NEXTM = AMX Escolher próximo mapa +EXTED_MAP = Estender o mapa %s +TIME_CHOOSE = É hora de escolher o próximo mapa... diff --git a/plugins/lang/mapsmenu.txt b/plugins/lang/mapsmenu.txt index 15fe486e3a..60c1726f8c 100755 --- a/plugins/lang/mapsmenu.txt +++ b/plugins/lang/mapsmenu.txt @@ -30,21 +30,21 @@ VOTE_FAILED = Abstimmung gescheitert THE_WINNER = Der Gewinner WANT_CONT = Willst du fortfahren? VOT_CANC = Abstimmung abgebrochen -X_VOTED_FOR = %s stimmten fuer Option #%d -VOTEMAP_MENU = Menu > Mapwahl -START_VOT = Start Abstimmung -SEL_MAPS = Ausgewaehlte Maps -ALREADY_VOT = Es laeuft bereits eine Abstimmung... -NO_MAPS_MENU = Es sind keine Maps im Menu vorhanden -VOT_NOW_ALLOW = Abstimmung zur Zeit nicht moeglich -WHICH_MAP = Welche Map moechtest du? +X_VOTED_FOR = %s stimmte für Option #%d +VOTEMAP_MENU = Menü > Mapwahl +START_VOT = Starte Abstimmung +SEL_MAPS = Ausgewählte Maps +ALREADY_VOT = Es läuft bereits eine Abstimmung... +NO_MAPS_MENU = Es sind keine Maps im Menü vorhanden +VOT_NOW_ALLOW = Abstimmung zur Zeit nicht möglich +WHICH_MAP = Welche Map möchtest du? CHANGE_MAP_TO = Wechsle zu Map CANC_VOTE = Abstimmung abgebrochen -ADMIN_V_MAP_1 = ADMIN: waehlt Map(s) -ADMIN_V_MAP_2 = ADMIN %s: waehlt Map(s) +ADMIN_V_MAP_1 = ADMIN: wählt Map(s) +ADMIN_V_MAP_2 = ADMIN %s: wählt Map(s) ADMIN_CHANGEL_1 = ADMIN: wechselt zur Map %s ADMIN_CHANGEL_2 = ADMIN %s: wechselt zur Map %s -CHANGLE_MENU = Menu > Mapwechsel +CHANGLE_MENU = Menü > Mapwechsel [sr] RESULT_REF = Rezultat odbijen @@ -71,28 +71,28 @@ ADMIN_CHANGEL_2 = ADMIN %s: changelevel %s CHANGLE_MENU = Meni za menjanje mape [tr] -RESULT_REF = Sonuc red edilmistir -RESULT_ACC = Sonuc kabul edilmistir -VOTE_SUCCESS = Oylama sonucu kabul. Bu map'e degisiyor -VOTE_FAILED = Oylama hatali +RESULT_REF = Sonuc reddedildi +RESULT_ACC = Sonuc kabul edildi +VOTE_SUCCESS = Oylama basarili. Harita suna degistirilecektir +VOTE_FAILED = Oylama basarisiz THE_WINNER = Kazanan -WANT_CONT = Devam etmek istiyormusunuz? -VOT_CANC = Oylama durdurulmusdur -X_VOTED_FOR = %s oyladigi #%d -VOTEMAP_MENU = Map oylama menusu -START_VOT = Oylamayi baslat -SEL_MAPS = Secilen maplar -ALREADY_VOT = Zaten su an oylama suruyor... -NO_MAPS_MENU = Menude map yokdur -VOT_NOW_ALLOW = Su an oylama yapamiyorsunuz -WHICH_MAP = Hangi map'i secmek istiyorsunuz? -CHANGE_MAP_TO = Map'i buna degisdir -CANC_VOTE = Oylamayi durdur -ADMIN_V_MAP_1 = ADMIN: Map(lar) oylamasi -ADMIN_V_MAP_2 = ADMIN %s: Map(lar) oylamasi -ADMIN_CHANGEL_1 = ADMIN: %s buna degisdirdi -ADMIN_CHANGEL_2 = ADMIN %s: %s buna degisdirdi -CHANGLE_MENU = Bolum degisdirme menusu +WANT_CONT = Devam etmek istiyor musun? +VOT_CANC = Oylama iptal edildi +X_VOTED_FOR = %s #%d secenegine oy verdi +VOTEMAP_MENU = Harita Oylama Menusu +START_VOT = Oylama Baslat +SEL_MAPS = Secilen Haritalar +ALREADY_VOT = Zaten bir oylama suruyor... +NO_MAPS_MENU = Menude hic harita yok +VOT_NOW_ALLOW = Oylama suan yapilamaz +WHICH_MAP = Hangi haritayi istiyorsun? +CHANGE_MAP_TO = Haritayi Suna Degistir +CANC_VOTE = Oylama Iptal Et +ADMIN_V_MAP_1 = ADMIN, harita oylamasi oyladi +ADMIN_V_MAP_2 = ADMIN %s, harita oylamasi oyladi +ADMIN_CHANGEL_1 = ADMIN, haritayi %s olarak degistirdi +ADMIN_CHANGEL_2 = ADMIN %s, haritayi %s olarak degistirdi +CHANGLE_MENU = Harita Degistirme Menusu [fr] RESULT_REF = Resultat refuse @@ -549,3 +549,51 @@ ADMIN_V_MAP_2 = 管理员 %s: 进行投票更改地图 ADMIN_CHANGEL_1 = 管理员: 更改地图为 %s ADMIN_CHANGEL_2 = 管理员 %s: 更改地图为 %s CHANGLE_MENU = 更改地图菜单 + +[al] +RESULT_REF = Rezultati u refuzua +RESULT_ACC = Rezultati u pranua +VOTE_SUCCESS = Votimi përfundëoj me sukses. Harta do të ndryshohet në +VOTE_FAILED = Votimi dështoi +THE_WINNER = Fituesi +WANT_CONT = A dëshironi të vazhdoni? +VOT_CANC = Votimi është anuluar +X_VOTED_FOR = %s votoj për opcionin #%d +VOTEMAP_MENU = Lista Hartave Votimit +START_VOT = Filloni Votimin +SEL_MAPS = Zgjedh Hartat +ALREADY_VOT = Ekziston tashmë një votim... +NO_MAPS_MENU = Nuk ka harta në listë +VOT_NOW_ALLOW = Votimi nuk lejohet në këtë kohë +WHICH_MAP = Cilën hartë dëshironi? +CHANGE_MAP_TO = Ndrysho hartën tek +CANC_VOTE = Ndalo votimin +ADMIN_V_MAP_1 = ADMIN: votoj hartën(s) +ADMIN_V_MAP_2 = ADMIN %s: votoj hartën(s) +ADMIN_CHANGEL_1 = ADMIN: ndryshoj hartën në %s +ADMIN_CHANGEL_2 = ADMIN %s: ndryshoj hartën në %s +CHANGLE_MENU = Lista Ndryshimeve Hartës + +[pt] +RESULT_REF = Resultado recusado +RESULT_ACC = Resultado aceite +VOTE_SUCCESS = A votação terminou com sucesso. Vai ser mudado para o mapa +VOTE_FAILED = A votação falhou +THE_WINNER = O vencedor +WANT_CONT = Queres continuar? +VOT_CANC = A votação foi cancelada +X_VOTED_FOR = %s votou a opção #%d +VOTEMAP_MENU = Menu de Votação de Mapas +START_VOT = Iniciar Votação +SEL_MAPS = Mapas Selecionados +ALREADY_VOT = Já existe uma votação a decorrer... +NO_MAPS_MENU = Não existem mapas no menu +VOT_NOW_ALLOW = Não é permitido agora uma votação +WHICH_MAP = Que mapa queres? +CHANGE_MAP_TO = Mudar o Mapa para +CANC_VOTE = Cancelar Votação +ADMIN_V_MAP_1 = ADMIN: começou uma votação de mapa(s) +ADMIN_V_MAP_2 = ADMIN %s: começou uma votação de mapa(s) +ADMIN_CHANGEL_1 = ADMIN: mudou de mapa para %s +ADMIN_CHANGEL_2 = ADMIN %s: mudou de mapa para %s +CHANGLE_MENU = Menu de Mudar de Mapa diff --git a/plugins/lang/menufront.txt b/plugins/lang/menufront.txt index db0b4c9ff9..9678092619 100755 --- a/plugins/lang/menufront.txt +++ b/plugins/lang/menufront.txt @@ -17,10 +17,10 @@ RES_WEAP = Restrict Weapons TELE_PLAYER = Teleport Player [de] -KICK_PLAYER = Kick Spieler -BAN_PLAYER = Ban Spieler -SLAP_SLAY = Schlage/Toete Spieler -TEAM_PLAYER = Team Spieler ^n +KICK_PLAYER = Spieler kicken +BAN_PLAYER = Spieler bannen +SLAP_SLAY = Spieler schlagen/killen +TEAM_PLAYER = Team der Spieler ändern ^n CHANGEL = Mapwechsel VOTE_MAPS = Map Abstimmung ^n SPECH_STUFF = Soundausgabe @@ -32,7 +32,7 @@ LANG_SET = Spracheinstellung STATS_SET = Statistik-Einstellungen ^n PAUSE_PLUG = Plugins pausieren RES_WEAP = Waffen verbieten -TELE_PLAYER = Teleport Spieler +TELE_PLAYER = Spieler teleportieren [sr] KICK_PLAYER = Kick Igraca @@ -53,22 +53,22 @@ RES_WEAP = Ogranici Oruzja TELE_PLAYER = Teleport Igraca [tr] -KICK_PLAYER = Oyuncuyu at -BAN_PLAYER = Oyuncuyu banla -SLAP_SLAY = Oyuncuyu tokatla/oldur -TEAM_PLAYER = Takim oyuncusu ^n -CHANGEL = Bolum degisdir -VOTE_MAPS = Mapler icin oylama ^n -SPECH_STUFF = Konusma cihazlari -CLIENT_COM = Oyuncu emirleri -SERVER_COM = Server emirleri -CVARS_SET = Cvars ayarlari -CONFIG = Config ayarlari -LANG_SET = Dil ayarlari -STATS_SET = Statistik ayarlari ^n -PAUSE_PLUG = Pluginleri durdurun -RES_WEAP = Yasakli silahlar -TELE_PLAYER = Oyuncuyu teleport yapi +KICK_PLAYER = Oyuncu At +BAN_PLAYER = Oyuncu Banla +SLAP_SLAY = Oyuncu Tokatla/Oldur +TEAM_PLAYER = Takim Oyuncusu ^n +CHANGEL = Harita Degis +VOTE_MAPS = Harita oylamasi yap ^n +SPECH_STUFF = Konusma Zirvalari +CLIENT_COM = Kullanici Komutlari +SERVER_COM = Server Komutlari +CVARS_SET = Cvar Ayarlari +CONFIG = Yapilandirma +LANG_SET = Dil Ayarlari +STATS_SET = Istatistik Ayarlari ^n +PAUSE_PLUG = Eklentileri Durdur +RES_WEAP = Silahlari Yasakla +TELE_PLAYER = Oyuncu Isinla [fr] KICK_PLAYER = Kicker Joueur @@ -274,15 +274,15 @@ BAN_PLAYER = Játékos ban SLAP_SLAY = Játékos Megütes/Megölés TEAM_PLAYER = Játékos csapatváltása ^n CHANGEL = Pályaváltás -VOTE_MAPS = Szavazás pályára ^n +VOTE_MAPS = Válassz pályát ^n SPECH_STUFF = Beszéd menü -CLIENT_COM = Játekos parancsok +CLIENT_COM = Játékos parancsok SERVER_COM = Szerver parancsok CVARS_SET = Cvar Beállítások CONFIG = Configuráció LANG_SET = Nyelv Beállítások -STATS_SET = Stat beállítások ^n -PAUSE_PLUG = Pillanat állj Pluginok +STATS_SET = Statisztika beállítások ^n +PAUSE_PLUG = Pluginok Szüneteltetése RES_WEAP = Felfüggesztett fegyverek TELE_PLAYER = Játékos teleportálása @@ -411,3 +411,39 @@ STATS_SET = 统计设置 ^n PAUSE_PLUG = 暂停插件 RES_WEAP = 限制武器 TELE_PLAYER = 传送玩家 + +[al] +KICK_PLAYER = Largo Lojtarin +BAN_PLAYER = Ndalo Lojtarin +SLAP_SLAY = Ndëshko/Vrite Lojtarin +TEAM_PLAYER = Lojtari Ekipit ^n +CHANGEL = Ndrysho Hartën +VOTE_MAPS = Voto për harta ^n +SPECH_STUFF = Fjalë Folura +CLIENT_COM = Komandat Lojtarit +SERVER_COM = Komandat Serverit +CVARS_SET = Konfigurimet Cvar +CONFIG = Konfigurimet +LANG_SET = Konfigurimet Gjuhës +STATS_SET = Konfigurimet Statistikave ^n +PAUSE_PLUG = Pusho Plugins +RES_WEAP = Kufizo Armët +TELE_PLAYER = Transporto Lojtarin + +[pt] +KICK_PLAYER = Expulsar Jogador +BAN_PLAYER = Banir Jogador +SLAP_SLAY = Esbofetear/Matar Jogador +TEAM_PLAYER = Equipa do Jogador ^n +CHANGEL = Mudar de Mapa +VOTE_MAPS = Votação de Mapas ^n +SPECH_STUFF = Menu de Voz +CLIENT_COM = Comandos do Cliente +SERVER_COM = Comandos do Servidor +CVARS_SET = Definições de Cvars +CONFIG = Configuração +LANG_SET = Definições de Linguagem +STATS_SET = Definições de Stats ^n +PAUSE_PLUG = Pausar Plugins +RES_WEAP = Restringir Armas +TELE_PLAYER = Teleportar Jogador diff --git a/plugins/lang/miscstats.txt b/plugins/lang/miscstats.txt index 78bfed0039..269ccde9a6 100755 --- a/plugins/lang/miscstats.txt +++ b/plugins/lang/miscstats.txt @@ -42,53 +42,57 @@ CTS = CTS TERRORIST = TERRORIST TERRORISTS = TERRORISTS REMAINING = %d %s Remaining... +REMAINING_ENEMY = One enemy remaining... +REMAINING_ENEMIES = %d enemies remaining... KILLS = kills HS = hs [de] WITH = mit -KNIFE_MSG_1 = %s hat %s geschnitten und gewuerfelt -KNIFE_MSG_2 = %s hat sein Messer gezueckt und %s ausgeweidet +KNIFE_MSG_1 = %s hat %s geschnitten und gewürfelt +KNIFE_MSG_2 = %s hat sein Messer gezückt und %s ausgeweidet KNIFE_MSG_3 = %s hat sich angeschlichen und %s gemessert -KNIFE_MSG_4 = %s messerte und verstuemmelte %s -LAST_MSG_1 = Nun haengt alles von dir ab! +KNIFE_MSG_4 = %s messerte und verstümmelte %s +LAST_MSG_1 = Nun hängt alles von dir ab! LAST_MSG_2 = Hoffentlich hast du ein Medipack dabei. -LAST_MSG_3 = Deine Teamkameraden sind alle tot. Viel Glueck! -LAST_MSG_4 = Nun bist du allein. Hab Spass dabei! +LAST_MSG_3 = Deine Teamkameraden sind alle tot. Viel Glück! +LAST_MSG_4 = Nun bist du allein. Hab Spaß dabei! HE_MSG_1 = %s sendet ein kleines Geschenk an %s HE_MSG_2 = %s wirft ein Knallbonbon zu %s -HE_MSG_3 = %s macht einen Praezisionswurf zu %s +HE_MSG_3 = %s macht einen Präzisionswurf zu %s HE_MSG_4 = %s schickte eine dicke Explosion an %s SHE_MSG_1 = %s sprengte sich selbst mit einer Granate -SHE_MSG_2 = %s untersuchte die Auswirkungen ^neiner Granate an sich selbst... +SHE_MSG_2 = %s untersuchte die Auswirkungen einer Granate an sich selbst... SHE_MSG_3 = %s schluckte eine Granate! SHE_MSG_4 = %s explodierte! HS_MSG_1 = $kn killte $vn mit einem ^nplazierten Schuss in den Kopf! -HS_MSG_2 = $kn entfernte den Kopf von $vn^nmit einem Praezisionsschuss. +HS_MSG_2 = $kn entfernte den Kopf von $vn^nmit einem Präzisionsschuss. HS_MSG_3 = $kn verwandelte den Kopf ^nvon $vn in Pudding. -HS_MSG_4 = $kn siegte ueber $vn durch eine Kopfschuss. +HS_MSG_4 = $kn besiegte $vn durch einen Kopfschuss. HS_MSG_5 = $vn's Kopf wurde in der Gegend verteilt -HS_MSG_6 = $kn hat einen super ^nTreffer gelandet,das weiss ^n$vn nun auch. +HS_MSG_6 = $kn hat einen super ^nTreffer gelandet,das weiß ^n$vn nun auch. HS_MSG_7 = $vn's Kopf war ein bisschen zu lange im Fadenkreuz von $kn... DOUBLE_KILL = Wow! %s machte einen Doppelkill!!! PREPARE_FIGHT = Vorbereiten zum Kampf!^nRunde %d -KILLED_ROW = Du hast bis jetzt %d in einer Runde gekillt. -DIED_ROUNDS = Du bist bis jetzt %d Runden hintereinander gestorben... +KILLED_ROW = Du hast nun %d Gegner gekillt, ohne zu sterben! +DIED_ROUNDS = Achtung! Du bist schon %d Runden in Folge ohne Kill gestorben... KILLED_CHICKEN = Irgendjemand killte ein Huhn!!! -BLEW_RADIO = Irgendjemand sprenge das Radio!!! +BLEW_RADIO = Irgendjemand sprengte das Radio!!! REACHED_TARGET = OMG! %s erreichte das Ziel! PLANT_BOMB = %s legt die Bombe! -DEFUSING_BOMB = %s entschaerft die Bombe... +DEFUSING_BOMB = %s entschärft die Bombe... SET_UP_BOMB = %s legte die Bombe!!! -DEFUSED_BOMB = %s entschaerfte die Bombe! -FAILED_DEFU = %s konnte die Bombe nicht entschaerfen... +DEFUSED_BOMB = %s entschärfte die Bombe! +FAILED_DEFU = %s konnte die Bombe nicht entschärfen... PICKED_BOMB = %s hob die Bombe auf... DROPPED_BOMB = %s warf die Bombe weg!!! CT = CT CTS = CTs TERRORIST = TERRORIST TERRORISTS = TERRORISTEN -REMAINING = %d %s uebrig... +REMAINING = %d %s übrig... +REMAINING_ENEMY = Ein Gegner übrig... +REMAINING_ENEMIES = %d Gegner übrig... KILLS = kills HS = hs @@ -136,54 +140,58 @@ CTS = CTS TERRORIST = TERORISTA TERRORISTS = TERORISTA REMAINING = %d %s Preostalo... +REMAINING_ENEMY = Jedan preostali protivnika... +REMAINING_ENEMIES = %d preostalih protivnika... KILLS = ubistava HS = hs [tr] -WITH = bununla -KNIFE_MSG_1 = %s kesdi parcaladi %s -KNIFE_MSG_2 = %s bicagini cekdi ve %s yardi -KNIFE_MSG_3 = %s belli etmeden arkadan geldi ve %s bicakladi -KNIFE_MSG_4 = %s bicakladi %s -LAST_MSG_1 = Hersey sana bagli! -LAST_MSG_2 = Umarim halen yarabandin vardir. -LAST_MSG_3 = Butun takim arkadaslarin oldu. Bol sans! -LAST_MSG_4 = Yalnizsin Dostum. Iyi eglenceler! -HE_MSG_1 = %s Kucuk bir hediye yolladi %s -HE_MSG_2 = %s Arkadasa bir paket yolladi %s -HE_MSG_3 = %s Dort dortluk bir atis yapdi %s -HE_MSG_4 = %s Buyuk bir patlama oldu %s -SHE_MSG_1 = %s Kendini patlatdi -SHE_MSG_2 = %s HE bombanin gucunu kendinde denedi -SHE_MSG_3 = %s Tum olarak bombayi yutdu! -SHE_MSG_4 = %s Patladi! -HS_MSG_1 = $kn oldurdu $vn tam isabet^nkafa vurusu ile! -HS_MSG_2 = $kn kafasini yok etdi $vn's^nsilah ile $wn -HS_MSG_3 = $kn kafasini recele cevirdi $vn' ^nsilah ile $wn -HS_MSG_4 = $vn Harcandi... arkadasin sayesinde $kn -HS_MSG_5 = $vn's kafasini dagatdi^n -HS_MSG_6 = $kn mukemmel bir atisci $wn,^n arkadasinda $vn bildigi gibi. -HS_MSG_7 = $vn's kafasini fazla sure $kn's^ndurbununde bekletdi... -DOUBLE_KILL = Wow! %s Tek atisda cift!!! -PREPARE_FIGHT = Hazirlanin!!^n %d Rounddayiz -KILLED_ROW = olmeden %d adam vurdun -DIED_ROUNDS = Dikkat et %d rounddur oluyorsun -KILLED_CHICKEN = Birisi bir tavuk oldurdu!!! -BLEW_RADIO = Birisi radyoyu patlatdi!!! -REACHED_TARGET = inanilmaz %s hedefe ulasdi -PLANT_BOMB = %s Bombayi yerlesdiriyor! -DEFUSING_BOMB = %s Bombayi etkisiz hale getirmeye calisiyor -SET_UP_BOMB = %s Bombayi hazirladi!!! -DEFUSED_BOMB = %s Bombayi etkisiz hale getirdi! -FAILED_DEFU = %s Malesef bombayi etkisiz hale getiremedi... -PICKED_BOMB = %s Bombayi yerden aldi... -DROPPED_BOMB = %s Bombayi dusurdu!!! +WITH = ile +KNIFE_MSG_1 = %s %s kisisini kucuk parcalara ayirdi +KNIFE_MSG_2 = %s bicagini cikardi ve %s kisisinin bagirsagini desti +KNIFE_MSG_3 = %s gizlice arkasina gecti ve %s kisisini bicakladi +KNIFE_MSG_4 = %s %s kisisini bicakladi +LAST_MSG_1 = Simdi her sey sana bagli! +LAST_MSG_2 = Umarim hala saglik cantan vardir! +LAST_MSG_3 = Butun takim arkadaslarin olduruldu. Bol sans! +LAST_MSG_4 = Suan Yalnizsin. Iyi eglenceler! +HE_MSG_1 = %s %s kisisine kucuk bir hediye gonderdi +HE_MSG_2 = %s %s kisisine ufak bir hediye atti +HE_MSG_3 = %s %s kisisine hassas bir atis yapti +HE_MSG_4 = %s %s kisisi icin buyuk bir patlama getirdi +SHE_MSG_1 = %s kendisini bir bombayla patlatti +SHE_MSG_2 = %s bir HE bombasinin efektini denedi +SHE_MSG_3 = %s butun bombalari yuttu! +SHE_MSG_4 = %s patladi! +HS_MSG_1 = $kn $vn kisisini kafaya yerlesen^nguzel bir vurusla oldurdu +HS_MSG_2 = $kn $vn kisisinin kafasini^n$wn ile kopardi +HS_MSG_3 = $kn $vn kisisinin kafasini^n$wn ile pudinge cevirdi +HS_MSG_4 = $vn $kn kisisi tarafindan yenildi +HS_MSG_5 = $vn kisisinin kafasi^nkirmizi joleye donustu +HS_MSG_6 = $kn $wn silahinda super bir aime sahip,^n$vn iyi bilir +HS_MSG_7 = $vn kisisinin kafasi^n$kn kisisinin crosshairinde biraz fazla kaldi... +DOUBLE_KILL = Vay! %s cift kill aldi!!! +PREPARE_FIGHT = SAVASA Hazirlanin!!^nRaund %d +KILLED_ROW = %d kisisini yakinlarda ust uste oldurdun +DIED_ROUNDS = Dikkat et! %d rounddur ust uste oldun... +KILLED_CHICKEN = Birileri bir tavuk oldurdu!!! +BLEW_RADIO = Birileri radyoyu patlatti!!! +REACHED_TARGET = Aman Tanrim! %s hedefe ulasti! +PLANT_BOMB = %s bombayi yerlestiriyor! +DEFUSING_BOMB = %s bombayi cozuyor... +SET_UP_BOMB = %s bize bomba kurdu... +DEFUSED_BOMB = %s bombayi etkisiz hale getirdi! +FAILED_DEFU = %s bombayi etkisiz hale getiremedi... +PICKED_BOMB = %s bombayi aldi... +DROPPED_BOMB = %s bombayi dusurdu!!! CT = CT -CTS = CTS +CTS = CTLER TERRORIST = TERORIST -TERRORISTS = TERORISLER -REMAINING = %d %s Geriye kaldi... -KILLS = oldurulen +TERRORISTS = TERORISTLER +REMAINING = %d %s Kaldi... +REMAINING_ENEMY = Bir dusman kaldi... +REMAINING_ENEMIES = %d dusman kaldi... +KILLS = kill HS = hs [fr] @@ -230,6 +238,8 @@ CTS = CTS TERRORIST = TERRORISTE TERRORISTS = TERRORISTES REMAINING = %d %s Restant... +REMAINING_ENEMY = Dernier ennemi restant... +REMAINING_ENEMIES = %d ennemis restants... KILLS = frags HS = hs @@ -512,6 +522,8 @@ CTS = CTS TERRORIST = TERRORISTA TERRORISTS = TERRORISTAS REMAINING = %d %s restando... +REMAINING_ENEMY = Um inimigo restante... +REMAINING_ENEMIES = %d inimigos restantes... KILLS = frags HS = hs @@ -747,6 +759,8 @@ CTS = CT TERRORIST = TERRORIST TERRORISTS = TERRORIST REMAINING = %d %s van még hátra... +REMAINING_ENEMY = Egy ellenfél maradt... +REMAINING_ENEMIES = %d ellenfél maradt... KILLS = ölés HS = fej @@ -1078,3 +1092,101 @@ TERRORISTS = 恐怖分子们 REMAINING = 还剩 %d %s... KILLS = 杀敌 HS = 爆头 + +[al] +WITH = me +KNIFE_MSG_1 = %s theri një kurban %s +KNIFE_MSG_2 = %s shkoj nga mbrapa dhe e mbyti me thikë %s +KNIFE_MSG_3 = %s bëri një vrasje makabërr me thikë %s +KNIFE_MSG_4 = %s theri %s +LAST_MSG_1 = Të gjithë shokët varen nga ti, bëje më të mirën! +LAST_MSG_2 = Shpresoj të keni HP të mjaftueshme. +LAST_MSG_3 = Të gjithë shokët tuaj janë vrarë. Paqë Fat! +LAST_MSG_4 = Tani je vetem. Kënaqu, përpiqu për të fituar! +HE_MSG_1 = %s dërgoj një dhuratë për %s +HE_MSG_2 = %s e hodhi në ajër me granatë %s +HE_MSG_3 = %s hodhi një granatë tek %s +HE_MSG_4 = %s bëri një predhë të mrekullueshme ndaj %s +SHE_MSG_1 = %s bëri vetëvrasje me granatë +SHE_MSG_2 = %s u përpoqë të shikonte efektin e Granatës +SHE_MSG_3 = %s sukësese në runde të tjera shoku! +SHE_MSG_4 = %s shpërtheu si një bombë e madhe ! +HS_MSG_1 = $kn vrau $vn me^n një plumb në lulë të ballit! +HS_MSG_2 = $kn ju vrau ne $vn's^nkokë me $wn +HS_MSG_3 = $kn goditi $vn's kokë^nshpërtheu si domate $wn +HS_MSG_4 = $vn gjuajti direkt në shenjë $kn +HS_MSG_5 = $vn's koka i morri^n ngjyrë të kuqe +HS_MSG_6 = $kn ka shënjestër $wn,^nsuper $vn dihet. +HS_MSG_7 = $vn's kokën e madhe $kn's^nqëndroi shumë në shënjestër... +DOUBLE_KILL = Mrekullueshme! %s bëri vrasje dyfishtë!!! +PREPARE_FIGHT = Përgadituni për LUFTË!^nRundi %d +KILLED_ROW = Deri tani keni vrarë %d rresht +DIED_ROUNDS = Kujdes! Ju keni vdekurë %d runda rresht... +KILLED_CHICKEN = Dikush e preu pulën!!! +BLEW_RADIO = Dikush shpërtheu në radio!!! +REACHED_TARGET = o Zot! %s arriti objektivin! +PLANT_BOMB = %s është duke aktivizuar bombën! +DEFUSING_BOMB = %s është duke q'aktivizuar bombën... +SET_UP_BOMB = %s ngriti bombën lart!!! +DEFUSED_BOMB = %s q'aktivizoj bombën! +FAILED_DEFU = %s dështoi të q'aktivizonte bombën... +PICKED_BOMB = %s morri bombën, shpejto për të aktivizuar... +DROPPED_BOMB = %s hodhi bombën, shpresojmë që një Terrorist ta marrë atë!!! +CT = POLIC +CTS = POLICËT +TERRORIST = TERRORISTËT +TERRORISTS = TERRORISTAT +REMAINING = %d %s Kanë mbetur... +REMAINING_ENEMY = Një armik i mbetur... +REMAINING_ENEMIES = %d armiqë të mbetur... +KILLS = vrasjet +HS = hs + +[pt] +WITH = com +KNIFE_MSG_1 = %s fatiou e picou %s +KNIFE_MSG_2 = %s sacou a faca e estripou %s +KNIFE_MSG_3 = %s esgueirou-se com cuidado por trás e esfaqueou %s +KNIFE_MSG_4 = %s esfaqueou %s +LAST_MSG_1 = Agora tudo depende de ti! +LAST_MSG_2 = Espero que tenhas um kit de vida. +LAST_MSG_3 = Todos os teus colegas de equipa foram mortos. Boa sorte! +LAST_MSG_4 = Agora estás sozinho. Diverte-te! +HE_MSG_1 = %s enviou uma pequena prenda a %s +HE_MSG_2 = %s atirou um pequeno presente a %s +HE_MSG_3 = %s fez um arremesso preciso a %s +HE_MSG_4 = %s fez uma grande explosão a %s +SHE_MSG_1 = %s detonou-se com uma granada +SHE_MSG_2 = %s testou o efeito de uma granada +SHE_MSG_3 = %s engoliu uma granada inteira! +SHE_MSG_4 = %s explodiu! +HS_MSG_1 = $kn matou $vn com um tiro^nbem colocado na cabeça! +HS_MSG_2 = $kn removeu a cabeça de $vn^ncom $wn +HS_MSG_3 = $kn tornou a cabeça de $vn^nem pudim com $wn +HS_MSG_4 = $vn foi humilhado por $kn +HS_MSG_5 = A cabeça de $vn tornou-se^nnuma gelatina vermelha +HS_MSG_6 = $kn tem uma boa pontaria com $wn,^n$vn sabe bem disso. +HS_MSG_7 = A cabeça de $vn ficou^nna mira de $kn demasiado tempo... +DOUBLE_KILL = Uau! %s matou 2 jogadores de seguida!!! +PREPARE_FIGHT = Preparem-se para LUTAR!^nRonda %d +KILLED_ROW = Tu mataste %d vezes de seguida +DIED_ROUNDS = Cuidado! Tu morreste %d vezes de seguida... +KILLED_CHICKEN = Alguém matou a galinha!!! +BLEW_RADIO = Alguém explodiu o rádio!!! +REACHED_TARGET = Oh meu deus! %s alcançou o objetivo! +PLANT_BOMB = %s está a plantar a bomba! +DEFUSING_BOMB = %s está a desarmar a bomba... +SET_UP_BOMB = %s plantou a bomba!!! +DEFUSED_BOMB = %s desarmou a bomba! +FAILED_DEFU = %s não conseguiu desarmar a bomba... +PICKED_BOMB = %s pegou a bomba... +DROPPED_BOMB = %s largou a bomba!!! +CT = CT +CTS = CTS +TERRORIST = TERRORISTA +TERRORISTS = TERRORISTAS +REMAINING = %d %s Restante(s)... +REMAINING_ENEMY = Resta um inimigo... +REMAINING_ENEMIES = Restam %d inimigos... +KILLS = mortes +HS = hs diff --git a/plugins/lang/multilingual.txt b/plugins/lang/multilingual.txt index d1ab9b36d8..78e513ecd2 100755 --- a/plugins/lang/multilingual.txt +++ b/plugins/lang/multilingual.txt @@ -10,15 +10,15 @@ TYPE_LANGMENU = Type 'amx_langmenu' in the console to display a menu where you c LANG_MENU_DISABLED = Language menu disabled. [de] -LANG_NOT_EXISTS = Diese Sprache exsistiert nicht. +LANG_NOT_EXISTS = Diese Sprache existiert nicht. PERSO_LANG = Eigene Sprache -LANG_MENU = Sprach Menu -SERVER_LANG = Server Sprache +LANG_MENU = Sprachmenü +SERVER_LANG = Sprache des Servers SAVE_LANG = Spracheinstellung speichern -SET_LANG_SERVER = Die Sprache des Servers wurde auf "%s" geaendert -SET_LANG_USER = Deine Sprache wurde auf "%s" geaendert -TYPE_LANGMENU = Schreibe 'amx_langmenu' in die Konsole zum Anzeigen des Sprachauswahlmenus -LANG_MENU_DISABLED = Sprachen Menü deaktiviert. +SET_LANG_SERVER = Die Sprache des Servers wurde auf "%s" geändert +SET_LANG_USER = Deine Sprache wurde auf "%s" geändert +TYPE_LANGMENU = Schreibe 'amx_langmenu' in die Konsole zum Anzeigen des Sprachmenüs +LANG_MENU_DISABLED = Sprachmenü deaktiviert. [sr] LANG_NOT_EXISTS = Jezik ne postoji @@ -32,15 +32,15 @@ TYPE_LANGMENU = Unesi 'amx_langmenu' u konzoli da bi otvorio meni za menjanje je LANG_MENU_DISABLED = Meni za izbor jezika je iskljucen. [tr] -LANG_NOT_EXISTS = Aradiginiz dil mevcud degildir -PERSO_LANG = Sahiz dil -LANG_MENU = Lisan/dil menusu -SERVER_LANG = Serverin dili -SAVE_LANG = Lisan/dili saklayin -SET_LANG_SERVER = Serverin dili "%s" buna degisdirildi -SET_LANG_USER = Sahiz diliniz "%s" buna degisdirildi -TYPE_LANGMENU = Konsolda mevcud olan dillerin menusunu gormek icin 'amx_langmenu' yazin -LANG_MENU_DISABLED = Lisan menusu kapatildi. +LANG_NOT_EXISTS = O dil yer almiyor +PERSO_LANG = Kisisel Dil +LANG_MENU = Dil Menu +SERVER_LANG = Server Dili +SAVE_LANG = Dili Kaydedin +SET_LANG_SERVER = Server dili "%s" olarak ayarlandi +SET_LANG_USER = Dilin "%s" olarak ayarlandi +TYPE_LANGMENU = Dilini secebilecegin bir menuyu gormek icin konsola 'amx_langmenu' yaz +LANG_MENU_DISABLED = Dil menu devre disi. [fr] LANG_NOT_EXISTS = Cette langue n'existe pas @@ -250,3 +250,25 @@ SET_LANG_SERVER = 服务器语言被设置为 "%s" SET_LANG_USER = 你的语言被设置为 "%s" TYPE_LANGMENU = 在控制台输入'amx_langmenu'打开一个菜单来选择你的语言 LANG_MENU_DISABLED = 语言菜单已禁用. + +[al] +LANG_NOT_EXISTS = Kjo gjuhë nuk ekziston +PERSO_LANG = Gjuha Personale +LANG_MENU = Lista Gjuhës +SERVER_LANG = Gjuha Serverit +SAVE_LANG = Ruaj Gjuhën +SET_LANG_SERVER = Gjuha e Serverit u vendos "%s" +SET_LANG_USER = Gjuha juaj u vendos "%s" +TYPE_LANGMENU = Shkruaj 'amx_langmenu' në konsole për të shfaqur listën e gjuhëve +LANG_MENU_DISABLED = Lista e gjuhëve është e ndalur. + +[pt] +LANG_NOT_EXISTS = A língua não existe +PERSO_LANG = Língua Pessoal +LANG_MENU = Menu de Línguas +SERVER_LANG = Língua do Servidor +SAVE_LANG = Guardar Língua +SET_LANG_SERVER = A língua do servidor foi definida para "%s" +SET_LANG_USER = A tua língua foi definida para "%s" +TYPE_LANGMENU = Escreve 'amx_langmenu' na consola para apresentar um menu onde podes escolher a tua língua +LANG_MENU_DISABLED = Menu de línguas desativado. diff --git a/plugins/lang/nextmap.txt b/plugins/lang/nextmap.txt index a9c2a1ff1e..94cd1b1c9e 100755 --- a/plugins/lang/nextmap.txt +++ b/plugins/lang/nextmap.txt @@ -4,8 +4,8 @@ PLAYED_MAP = Played map FRIEND_FIRE = Friendly fire [de] -NEXT_MAP = Naechste Map: -PLAYED_MAP = Gespielte Maps +NEXT_MAP = Nächste Map: +PLAYED_MAP = Aktuelle Map FRIEND_FIRE = Friendly fire [sr] @@ -14,8 +14,8 @@ PLAYED_MAP = Igrana mapa FRIEND_FIRE = Friendly fire [tr] -NEXT_MAP = Diger Map: -PLAYED_MAP = Oynanan map +NEXT_MAP = Sonraki Harita: +PLAYED_MAP = Oynanan harita FRIEND_FIRE = Dost atesi [fr] @@ -112,3 +112,13 @@ FRIEND_FIRE = Огонь по своим NEXT_MAP = 下张地图: PLAYED_MAP = 已经玩过地图 FRIEND_FIRE = 友军开火伤害 + +[al] +NEXT_MAP = Harta Ardhëshme: +PLAYED_MAP = Harta që luajtëm +FRIEND_FIRE = Sulmo shokët + +[pt] +NEXT_MAP = Próximo Mapa: +PLAYED_MAP = Mapa jogado +FRIEND_FIRE = Fogo amigo diff --git a/plugins/lang/pausecfg.txt b/plugins/lang/pausecfg.txt index da49c9789c..fde44b2f5d 100755 --- a/plugins/lang/pausecfg.txt +++ b/plugins/lang/pausecfg.txt @@ -39,15 +39,15 @@ CANT_UNPAUSE_PLUGIN = Plugin "%s" is stopped and cannot be paused or unpaused. CLEAR_PAUSED = Clear file with paused [de] -PAUSE_COULDNT_FIND = Konnte kein Plugin finden, dass mit "%s" uebereinstimmt -PAUSE_PLUGIN_MATCH = Plugin stimmt mit "%s" ueberein -PAUSE_CONF_CLEARED = Konfigurationsdatei geloescht. Bei Bedarf Map neu starten. -PAUSE_ALR_CLEARED = Konfiguration war bereits geloescht! +PAUSE_COULDNT_FIND = Konnte kein Plugin finden, dass mit "%s" übereinstimmt +PAUSE_PLUGIN_MATCH = Plugin stimmt mit "%s" überein +PAUSE_CONF_CLEARED = Konfigurationsdatei gelöscht. Bei Bedarf Map neu starten. +PAUSE_ALR_CLEARED = Konfiguration war bereits gelöscht! PAUSE_CONF_SAVED = Konfiguration erfolgreich gespeichert. PAUSE_SAVE_FAILED = Fehler beim Speichern der Konfiguration!!! LOCKED = GESPERRT PAUSE_UNPAUSE = Pausiere/Aktiviere Plugins -CLEAR_STOPPED = Loeschen der Datei gestoppt +CLEAR_STOPPED = Löschen der Datei gestoppt SAVE_STOPPED = Speichern abgebrochen PAUSED_PLUGIN = Pausiere %d Plugin PAUSED_PLUGINS = Pausiere %d Plugins @@ -58,8 +58,8 @@ PAUSE_LOADED = Pausierte Plugins: Plugins geladen STOPPED = gestoppt VERSION = Version FILE = Datei -PAUSE_ENTRIES = Eintraege %d - %d von %d (%d laufen) -PAUSE_USE_MORE = Benutze 'amx_pausecfg list %d' fuer mehr +PAUSE_ENTRIES = Einträge %d - %d von %d (%d laufen) +PAUSE_USE_MORE = Benutze 'amx_pausecfg list %d' für mehr PAUSE_USE_BEGIN = Benutze 'amx_pausecfg list 1' um zum Anfang zu gelangen PAUSE_USAGE = Benutze: amx_pausecfg [Name] PAUSE_COMMANDS = Befehle @@ -69,14 +69,14 @@ COM_PAUSE_STOP = ^tstop - stoppt ein Plugin COM_PAUSE_PAUSE = ^tpause - pausiert ein Plugin COM_PAUSE_ENABLE = ^tenable - aktiviert ein Plugin COM_PAUSE_SAVE = ^tsave - speichert die Liste der gestoppten Plugins -COM_PAUSE_CLEAR = ^tclear - loescht die Liste der gestoppten Plugins +COM_PAUSE_CLEAR = ^tclear - löscht die Liste der gestoppten Plugins COM_PAUSE_LIST = ^tlist [id] - Plugins anzeigen COM_PAUSE_ADD = ^tadd - markiert ein Plugin als nicht pausierbar SAVE_PAUSED = Speichere pausierte Plugins COM_PAUSE_SAVE_PAUSED = ^tsave - speichert die Liste der pausierten Plugins COM_PAUSE_CLEAR_PAUSED = ^tclear - leert die Liste der pausierten Plugins -CANT_UNPAUSE_PLUGIN = Das Plugin "%s" ist gestoppt und kann nicht pausiert oder unpausiert werden. -CLEAR_PAUSED = Loeschen der Datei pausierten +CANT_UNPAUSE_PLUGIN = Das Plugin "%s" ist gestoppt und kann nicht pausiert oder aktiviert werden. +CLEAR_PAUSED = Löscht die Liste der pausierten Plugins [sr] PAUSE_COULDNT_FIND = Nije moguce naci plugin koji se poklapa sa "%s" @@ -119,44 +119,44 @@ CANT_UNPAUSE_PLUGIN = Plugin "%s" je stopiran i ne moze se pauzirati ili otpauzi CLEAR_PAUSED = obrisati fajl sa pauziranim [tr] -PAUSE_COULDNT_FIND = "%s" Buna benzer bir plugin bulunamadi -PAUSE_PLUGIN_MATCH = "%s" Benzer plugin -PAUSE_CONF_CLEARED = Config dosyasi temizlendi. Gerekliyse mapi tekrar yukleyin -PAUSE_ALR_CLEARED = Config dosyasi zaten temizlenmisdi! -PAUSE_CONF_SAVED = Config dosyasina basari ile saklandi -PAUSE_SAVE_FAILED = Config dosyasina eklenemedi!!! -LOCKED = KILITLI -PAUSE_UNPAUSE = Pluginleri Durdur/Baslat -CLEAR_STOPPED = Durdur emiri ile dosyayi temizleyin -SAVE_STOPPED = Durdur emirini saklayin -PAUSED_PLUGIN = Durdurulmus Plugin %d -PAUSED_PLUGINS = Durdurulmus Pluginler %d -UNPAUSED_PLUGIN = Durdurulmamis Plugin %d -UNPAUSED_PLUGINS = Durdurulmamis Pluginler %d -CANT_MARK_MORE = Sinir asildi gecici olarak Plugin durdurulamiyor! -PAUSE_LOADED = Pluginleri durdur: Calisan pluginler -STOPPED = Durduruldu +PAUSE_COULDNT_FIND = "%s" ile eslesen bir eklenti bulunamadi +PAUSE_PLUGIN_MATCH = "%s" ile eslesen eklenti +PAUSE_CONF_CLEARED = Yapilandirma dosyasi temizlendi. Gerekliyse haritayi yeniden ac +PAUSE_ALR_CLEARED = Yapilandirma dosyasi zaten temizlenmis! +PAUSE_CONF_SAVED = Yapilandirma dosyası basariyla kaydedildi +PAUSE_SAVE_FAILED = Yapilandirma kaydedilemedi!!! +LOCKED = KILITLENDI +PAUSE_UNPAUSE = Eklenti Durdur/Baslat +CLEAR_STOPPED = Durdurulanli dosyayi temizle +SAVE_STOPPED = Durdurulanlari Kaydet +PAUSED_PLUGIN = Durdurulan %d eklenti +PAUSED_PLUGINS = Durdurulan %d eklenti +UNPAUSED_PLUGIN = Baslatilan %d eklenti +UNPAUSED_PLUGINS = Baslatilan %d eklenti +CANT_MARK_MORE = Baslatilan daha fazla eklenti isaretlenemiyor! +PAUSE_LOADED = Durdurulan eklentiler: Yuklenen eklentiler +STOPPED = durdurulan VERSION = versiyon FILE = dosya -PAUSE_ENTRIES = Girisler %d - %d ve %d (%d calisiyor) -PAUSE_USE_MORE = 'amx_pausecfg list %d' i kullanin daha gormek icin -PAUSE_USE_BEGIN = 'amx_pausecfg list 1' i kullanin baslatmak icin -PAUSE_USAGE = kullanim: amx_pausecfg <emir> [isim] -PAUSE_COMMANDS = Emirler -COM_PAUSE_OFF = ^toff - listede olmayan butun pluginler gecici olarak durdurur -COM_PAUSE_ON = ^ton - Durdurulmus pluginleri tekrar baslatir -COM_PAUSE_STOP = ^tstop <dosya> -bir plugin durdurur -COM_PAUSE_PAUSE = ^tpause <dosya> - bir plugin durdurur gecici olarak -COM_PAUSE_ENABLE = ^tenable <dosya> - bir plugin baslatir -COM_PAUSE_SAVE = ^tsave - Durdulmus pluginler uzerine bir liste saklar -COM_PAUSE_CLEAR = ^tclear - Durdurulmus pluginlerin listesini siler -COM_PAUSE_LIST = ^tlist [id] - Pluginleri listele -COM_PAUSE_ADD = ^tadd <isim> - Durduralamiyan bir plugin isaretler -SAVE_PAUSED = Ayarlari kaydet -COM_PAUSE_SAVE_PAUSED = ^tHerseyi kayit et -COM_PAUSE_CLEAR_PAUSED = ^tHerseyi temizle -CANT_UNPAUSE_PLUGIN = "%s" isimli plugin durdurulamaz yada baslatilamaz! -CLEAR_PAUSED = Dosyayi temizle +PAUSE_ENTRIES = Girisler %d - %d / %d (%d tanesi calisiyor) +PAUSE_USE_MORE = Daha fazlasi icin 'amx_pausecfg list %d' kullan +PAUSE_USE_BEGIN = Baslamak icin 'amx_pausecfg 1' kullan +PAUSE_USAGE = Kullanim: amx_pausecfg <komut> [isim] +PAUSE_COMMANDS = Komutlar +COM_PAUSE_OFF = ^toff - listede olmayan butun eklentileri durdurur +COM_PAUSE_ON = ^ton - eklentileri baslatir +COM_PAUSE_STOP = ^tstop <dosya> -bir eklenti durdurur +COM_PAUSE_PAUSE = ^tpause <dosya> - bir eklentiyi duraklatir +COM_PAUSE_ENABLE = ^tenable <dosya> - bir eklentiyi baslatir +COM_PAUSE_SAVE = ^tsave - durdurulmus eklentilerin listesini kaydeder +COM_PAUSE_CLEAR = ^tclear - durdurulmus eklentilerin listesini temizler +COM_PAUSE_LIST = ^tlist [id] - eklentileri listeler +COM_PAUSE_ADD = ^tadd <isim> - bir eklentiyi baslatilir olarak isaretler +SAVE_PAUSED = Durdurulanlari kaydet +COM_PAUSE_SAVE_PAUSED = ^tsave - duraklatilan eklenti listesini kaydeder +COM_PAUSE_CLEAR_PAUSED = ^tclear - duraklatilan eklenti listesini temizler +CANT_UNPAUSE_PLUGIN = "%s" eklentisi durduruldu ve duraklatilamaz yada baslatilamaz +CLEAR_PAUSED = Durdurulanli dosyayi temizle [fr] PAUSE_COULDNT_FIND = Impossible de trouver un plugin correspondant a "%s" @@ -591,11 +591,11 @@ CLEAR_PAUSED = Goleste fisier-ul cu cele oprite [hu] PAUSE_COULDNT_FIND = Nem található a plugin "%s" PAUSE_PLUGIN_MATCH = Plugin egyezik "%s" -PAUSE_CONF_CLEARED = Beállitások fájl betöltve. Válts pályát a használatához +PAUSE_CONF_CLEARED = Beállítások fájl betöltve. Válts pályát a használatához! PAUSE_ALR_CLEARED = A beállítások már ki vannak ürítve! PAUSE_CONF_SAVED = Beállítások sikeresen elmentve PAUSE_SAVE_FAILED = Nem sikerült a mentés!!! -LOCKED = LEZARVA +LOCKED = LEZÁRVA PAUSE_UNPAUSE = Pluginok Ki-/Bekapcsolása CLEAR_STOPPED = A leállított pluginok fájljának ürítése SAVE_STOPPED = Leállítottak mentése @@ -608,7 +608,7 @@ PAUSE_LOADED = Pluginok szüneteltetése: Betöltött pluginok STOPPED = leállítva VERSION = verzió FILE = fájl -PAUSE_ENTRIES = Bejegyzés %d - %d a %d-bol (%d fut) +PAUSE_ENTRIES = Bejegyzés %d - %d / %d (%d fut) PAUSE_USE_MORE = Írj 'amx_pausecfg list %d' a többihez PAUSE_USE_BEGIN = Írj 'amx_pausecfg list 1' az elejéhez PAUSE_USAGE = Használat: amx_pausecfg <parancs> [név] @@ -625,7 +625,7 @@ COM_PAUSE_ADD = ^tadd <nev> - megjelölni a plugint megallíthatóként SAVE_PAUSED = Szüneteltetettek mentése COM_PAUSE_SAVE_PAUSED = ^tsave - menti a szünetelt pluginok listáját COM_PAUSE_CLEAR_PAUSED = ^tclear - törli a szünetelt pluginok listáját -CANT_UNPAUSE_PLUGIN = A "%s" plugint nemlehet szüneteltetni vagy engedályezni. +CANT_UNPAUSE_PLUGIN = A "%s" plugint nem lehet szüneteltetni vagy engedélyezni. CLEAR_PAUSED = Törli a szüneteltetett pluginok listáját [lt] @@ -892,3 +892,83 @@ COM_PAUSE_SAVE_PAUSED = ^tsave - 保存暂停插件的列表 COM_PAUSE_CLEAR_PAUSED = ^tclear - 清除暂停插件的列表 CANT_UNPAUSE_PLUGIN = 插件 "%s" 已经被停止,无法再暂停或开启. CLEAR_PAUSED = 清除暂停的插件 + +[al] +PAUSE_COULDNT_FIND = Nuk u gjetë një përputhshmëri me pluginin "%s" +PAUSE_PLUGIN_MATCH = Përputhja Plugin "%s" +PAUSE_CONF_CLEARED = Skedari i konfigurimit u pastrua. Rifresko hartën nëse është e nevojshme +PAUSE_ALR_CLEARED = Konfigurimi është pastruar tashmë! +PAUSE_CONF_SAVED = Konfigurimi është ruajtur me sukses +PAUSE_SAVE_FAILED = Ruajtja konfigurimit dështoi!!! +LOCKED = MBYLLUR +PAUSE_UNPAUSE = Pusho/Rikthe Plugins +CLEAR_STOPPED = Pastro skedaret e ndaluar +SAVE_STOPPED = Ruaj ndalimet +PAUSED_PLUGIN = Pushim %d plugin +PAUSED_PLUGINS = Pushim %d pluginsa +UNPAUSED_PLUGIN = Rikthyen %d plugin +UNPAUSED_PLUGINS = Rikthyen %d pluginsa +CANT_MARK_MORE = Nuk mund të shënoj më shumë plugins si të papërdorshëm! +PAUSE_LOADED = Pluginsat në pushim: Ngarko plugins +STOPPED = ndalo +VERSION = modeli +FILE = skedari +PAUSE_ENTRIES = Janë %d - %d prej %d (%d duke punuar) +PAUSE_USE_MORE = Përdore 'amx_pausecfg listen %d' për më shumë +PAUSE_USE_BEGIN = Përdore 'amx_pausecfg listen 1' për fillim +PAUSE_USAGE = Përdorimi: amx_pausecfg <komanda> [emri] +PAUSE_COMMANDS = Komandat +COM_PAUSE_OFF = ^toff - pusho të gjithë pluginsat që nuk janë në listë +COM_PAUSE_ON = ^ton - rikthe të gjithë pluginsat +COM_PAUSE_STOP = ^tstop <skedari> - ndalon plugin +COM_PAUSE_PAUSE = ^tpause <skedari> - pushon plugin +COM_PAUSE_ENABLE = ^tenable <skedari> - mundëson plugin +COM_PAUSE_SAVE = ^tsave - ruan listën e pluginave të ndaluar +COM_PAUSE_CLEAR = ^tclear - pastro listën e pluginave të ndaluar +COM_PAUSE_LIST = ^tlist [id] - lista pluginsave +COM_PAUSE_ADD = ^tadd <titulli> - shënon një plugin si të pa përdorur +SAVE_PAUSED = Ruaj pushimet +COM_PAUSE_SAVE_PAUSED = ^tsave - ruan një listë të pluginave të pushuar +COM_PAUSE_CLEAR_PAUSED = ^tclear - pastron listën e pluginave të pushuar +CANT_UNPAUSE_PLUGIN = Plugin "%s" është ndalur në plugins.ini dhe nuk mund të pushoj ose të rikthehet në funksion përmes komandës. +CLEAR_PAUSED = Pastro skedarin me pushime + +[pt] +PAUSE_COULDNT_FIND = Não foi possível encontrar um plugin coincidindo "%s" +PAUSE_PLUGIN_MATCH = Plugin coincidindo "%s" +PAUSE_CONF_CLEARED = Ficheiro de configuração limpo. Recarrega o mapa se for necessário +PAUSE_ALR_CLEARED = A configuração já foi limpa! +PAUSE_CONF_SAVED = Configuração guardada com sucesso +PAUSE_SAVE_FAILED = Falha ao guardar a configuração!!! +LOCKED = BLOQUEADO +PAUSE_UNPAUSE = Pausar/Despausar Plugins +CLEAR_STOPPED = Limpar ficheiro de plugins parados +SAVE_STOPPED = Guardar plugins parados +PAUSED_PLUGIN = %d plugin foi pausado +PAUSED_PLUGINS = %d plugins foram pausados +UNPAUSED_PLUGIN = %d plugin foi despausado +UNPAUSED_PLUGINS = %d plugins foram despausados +CANT_MARK_MORE = Não é possível marcar mais plugins como não-pausáveis! +PAUSE_LOADED = Pausar Plugins: Plugins carregados +STOPPED = parado +VERSION = versão +FILE = ficheiro +PAUSE_ENTRIES = Entradas %d - %d de %d (%d em execução) +PAUSE_USE_MORE = Usa 'amx_pausecfg list %d' para mostrar mais +PAUSE_USE_BEGIN = Usa 'amx_pausecfg list 1' para voltar ao início +PAUSE_USAGE = Uso: amx_pausecfg <comando> [nome] +PAUSE_COMMANDS = Comandos +COM_PAUSE_OFF = ^toff - pausa todos os plugins que não estão na lista +COM_PAUSE_ON = ^ton - despausa todos os plugins +COM_PAUSE_STOP = ^tstop <ficheiro> - para um plugin +COM_PAUSE_PAUSE = ^tpause <ficheiro> - pausa um plugin +COM_PAUSE_ENABLE = ^tenable <ficheiro> - ativa um plugin +COM_PAUSE_SAVE = ^tsave - guarda a lista de plugins parados +COM_PAUSE_CLEAR = ^tclear - limpa a lista de plugins parados +COM_PAUSE_LIST = ^tlist [id] - lista plugins +COM_PAUSE_ADD = ^tadd <título> - marca um plugin como não-pausável +SAVE_PAUSED = Guardar plugins pausados +COM_PAUSE_SAVE_PAUSED = ^tsave - guarda a lista de plugins pausados +COM_PAUSE_CLEAR_PAUSED = ^tclear - limpa a lista de plugins pausados +CANT_UNPAUSE_PLUGIN = O plugin "%s" está parado e não pode ser nem pausado nem despausado. +CLEAR_PAUSED = Limpar ficheiro de plugins pausados diff --git a/plugins/lang/plmenu.txt b/plugins/lang/plmenu.txt index 347530876e..6804762fef 100755 --- a/plugins/lang/plmenu.txt +++ b/plugins/lang/plmenu.txt @@ -20,21 +20,21 @@ CANT_PERF_PLAYER = That action can't be performed on player "%s" [de] ADMIN_BAN_1 = ADMIN: bannt %s ADMIN_BAN_2 = ADMIN %s: bannt %s -BAN_MENU = Menu > bannen -BAN_FOR_MIN = Bann fuer %d Minuten -BAN_PERM = fuer immer bannen -SLAP_SLAY_MENU = Schlagen/Toeten-Menu -SLAP_WITH_DMG = Schlaegt mit %d Schaden -SLAY = toeten -KICK_MENU = Menu >kicken +BAN_MENU = Menü > bannen +BAN_FOR_MIN = für %d Minuten bannen +BAN_PERM = für immer bannen +SLAP_SLAY_MENU = Schlagen/Killen-Menü +SLAP_WITH_DMG = mit %d Schaden schlagen +SLAY = killen +KICK_MENU = Menü > kicken ADMIN_TRANSF_1 = ADMIN: verschiebt %s zu den %s ADMIN_TRANSF_2 = ADMIN %s: verschiebt %s zu den %s -TEAM_MENU = Menu > Team -TRANSF_TO = zu den %s geschoben +TEAM_MENU = Menü > Team +TRANSF_TO = zu den %s schieben TRANSF_SILENT = Stiller Transfer -CL_CMD_MENU = Menu > Spielerbefehle -NO_CMDS = keine Befehle verfuegbar -CANT_PERF_PLAYER = Diese Aktion kann nicht am spieler "%s" ausgefuehrt werden. +CL_CMD_MENU = Menü > Spielerbefehle +NO_CMDS = keine Befehle verfügbar +CANT_PERF_PLAYER = Diese Aktion kann nicht am Spieler "%s" ausgeführt werden. [sr] ADMIN_BAN_1 = ADMIN: ban %s @@ -56,23 +56,23 @@ NO_CMDS = Nema dostupnih komandi CANT_PERF_PLAYER = Komanda ne moze biti izvrsena na igrac "%s" [tr] -ADMIN_BAN_1 = ADMIN: ban %s -ADMIN_BAN_2 = ADMIN %s: ban %s -BAN_MENU = Ban Menusu -BAN_FOR_MIN = Ban %d dakika olarak -BAN_PERM = Ban suresiz -SLAP_SLAY_MENU = Tokatla/oldur menusu -SLAP_WITH_DMG = Tokatla %d zarar ile +ADMIN_BAN_1 = ADMIN, %s kisisini banladi +ADMIN_BAN_2 = ADMIN %s, %s kisisini banladi +BAN_MENU = Ban Menu +BAN_FOR_MIN = %d dakika banla +BAN_PERM = Sinirsiz banla +SLAP_SLAY_MENU = Tokat/Oldur Menu +SLAP_WITH_DMG = %d hasar ile tokatla SLAY = Oldur -KICK_MENU = Atma menusu -ADMIN_TRANSF_1 = ADMIN: takim %s goc %s -ADMIN_TRANSF_2 = ADMIN %s: takim %s goc %s +KICK_MENU = Atma Menusu +ADMIN_TRANSF_1 = ADMIN, %s kisisini %s takimina transfer etti +ADMIN_TRANSF_2 = ADMIN %s, kisisini %s %s takimina transfer etti TEAM_MENU = Takim menu -TRANSF_TO = %s takima goc -TRANSF_SILENT = sessiz Transferi -CL_CMD_MENU = Oyuncu Emir Menusu -NO_CMDS = Emir mevcud degildir -CANT_PERF_PLAYER = Oyuncu uzerinde bunu yapamazsiniz "%s" +TRANSF_TO = %s takimina transfer +TRANSF_SILENT = Sessiz Transfer +CL_CMD_MENU = Kullanici Komut Menusu +NO_CMDS = Mevcut komut yok +CANT_PERF_PLAYER = O eylem "%s" oyuncusu uzerinde yapilamaz [fr] ADMIN_BAN_1 = ADMIN: banni %s @@ -429,3 +429,41 @@ TRANSF_TO = 传送到 %s 队伍 CL_CMD_MENU = 客户端命令菜单 NO_CMDS = 无可用命令 CANT_PERF_PLAYER = 该操作不能对玩家 "%s" 执行 + +[al] +ADMIN_BAN_1 = ADMIN: ndaloi %s +ADMIN_BAN_2 = ADMIN %s: ndaloi %s +BAN_MENU = Lista Ndalimit +BAN_FOR_MIN = Ndaloi për %d minuta +BAN_PERM = Ndaloi përgjithëmon +SLAP_SLAY_MENU = Lista Ndëshkimit/Vrasjes +SLAP_WITH_DMG = Ndëshkoi me %d dëmtime +SLAY = Vras +KICK_MENU = Lista Largimit +ADMIN_TRANSF_1 = ADMIN: transferoj %s tek %s +ADMIN_TRANSF_2 = ADMIN %s: transferoj %s tek %s +TEAM_MENU = Lista Ekipit +TRANSF_TO = Transferou tek %s +TRANSF_SILENT = Transferim i heshtur +CL_CMD_MENU = Lista e komandave lojtarit +NO_CMDS = Nuk ka komanda të lira +CANT_PERF_PLAYER = Ky veprim nuk mund të kryhet tek lojtari "%s" + +[pt] +ADMIN_BAN_1 = ADMIN: baniu %s +ADMIN_BAN_2 = ADMIN %s: baniu %s +BAN_MENU = Menu de Banir +BAN_FOR_MIN = Banir por %d minutos +BAN_PERM = Banir permanentemente +SLAP_SLAY_MENU = Menu de Esbofetear/Matar +SLAP_WITH_DMG = Esbofetear com %d de dano +SLAY = Matar +KICK_MENU = Menu de Expulsar +ADMIN_TRANSF_1 = ADMIN: transferiu %s para %s +ADMIN_TRANSF_2 = ADMIN %s: transferiu %s para %s +TEAM_MENU = Menu de Equipas +TRANSF_TO = Transferir para %s +TRANSF_SILENT = Transferência Silenciosa +CL_CMD_MENU = Menu de Comandos do Cliente +NO_CMDS = Não existem comandos disponíveis +CANT_PERF_PLAYER = Essa ação não pode ser feita no jogador "%s" diff --git a/plugins/lang/restmenu.txt b/plugins/lang/restmenu.txt index 439b7f8fc5..3d9b6cb672 100755 --- a/plugins/lang/restmenu.txt +++ b/plugins/lang/restmenu.txt @@ -87,15 +87,15 @@ ADMIN_MENU_SAVEDCFG = Menu: %N saved items restrictions in "%s" [de] EQ_WE_RES = Ausrüstung und Waffen wurden verboten EQ_WE_UNRES = Ausrüstung und Waffen wurden freigegeben -HAVE_BEEN = sind gewesen -HAS_BEEN = ist gewesen +HAVE_BEEN = wurden +HAS_BEEN = wurde RESTRICTED = verboten UNRESTRICTED = wieder erlaubt NO_EQ_WE = Konnte diese Ausrüstung oder Waffe nicht finden WEAP_RES = Waffenverbot VALUE = Wert REST_ENTRIES_OF = Eintrag %i - %i von %i -REST_USE_MORE = Benutze 'amx_restrict list %i' für mehr Info´s +REST_USE_MORE = Benutze 'amx_restrict list %i' für mehr Infos REST_USE_BEGIN = Benutze 'amx_restrict list 1' um zum Anfang zu gelangen REST_USE_HOW = Benutze 'amx_restrict list <value>' (1 -> 8) REST_CONF_SAVED = Konfiguration gesichert (Datei "%s") @@ -105,9 +105,9 @@ REST_COULDNT_LOAD = Konfiguration konnte nicht geladen werden (Datei "%s") COM_REST_USAGE = Benutze: amx_restrict <Befehl> [Wert] COM_REST_COMMANDS = Befehle: COM_REST_ON = " on - Setze Verbot auf die gesamte Ausrüstung" -COM_REST_OFF = " off - Verbot für Ausrüstung aufheben" +COM_REST_OFF = " off - Verbot für die gesamte Ausrüstung aufheben" COM_REST_ONV = " on <value> [...] - Setze spezielles Verbot" -COM_REST_OFFV = " off <value> [...] - Spezielles Verbot aufgehoben" +COM_REST_OFFV = " off <value> [...] - Spezielles Verbot aufheben" COM_REST_LIST = " list <value> - Zeigt die Liste der verfügbaren Waffen und Ausrüstungen" COM_REST_SAVE = " save - Verbote speichern" COM_REST_LOAD = " load [file] - Lädt Verbote [aus einer Datei]" @@ -117,8 +117,8 @@ REST_WEAP = Waffen verbieten SAVE_SET = Einstellungen speichern CONF_SAV_SUC = Konfiguration erfolgreich gespeichert CONF_SAV_FAIL = Speichern der Konfiguration fehlgeschlagen!!! -REG_CMD_MENU = - Zeigt Waffen-Verbots Menü -REG_CMD_REST = - Zeigt Hilfe für Waffen-Verbots Menü +REG_CMD_MENU = - Zeigt Waffen-Verbotsmenü +REG_CMD_REST = - Zeigt Hilfe für Waffen-Verbotsmenü RESTRICTED_ITEM = * Dieser Gegenstand ist verboten * MENU_TITLE_HANDGUNS = Handwaffen MENU_TITLE_SHOTGUNS = Schrotgewehre @@ -155,14 +155,20 @@ MENU_ITEM_M249 = FN M249 Para MENU_ITEM_VEST = Kevlarweste MENU_ITEM_VESTHELM = Kevlarweste & Helm MENU_ITEM_FLASHBANG = Blendgranate -MENU_ITEM_HEGRENADE = HE Granate -MENU_ITEM_SMOKEGRENADE = Rauch Granate -MENU_ITEM_DEFUSER = Entschärfungs Kit +MENU_ITEM_HEGRENADE = HE-Granate +MENU_ITEM_SMOKEGRENADE = Rauchgranate +MENU_ITEM_DEFUSER = Entschärfungskit MENU_ITEM_NVGS = Nachtsichtgerät MENU_ITEM_SHIELD = Tactical Shield -MENU_ITEM_PRIAMMO = Primär Waffen Munition -MENU_ITEM_SECAMMO = Sekundär Waffen Munition +MENU_ITEM_PRIAMMO = Primärwaffenmunition +MENU_ITEM_SECAMMO = Sekundärwaffenmunition CONFIG_FILE_HEADER = ; Erstellt durch %s Plugin. Nicht verändern!^n; Wert Name^n +ADMIN_UPD_RES_1 = ADMIN: Waffen- und Ausrüstungsverbote wurden aktualisiert. +ADMIN_UPD_RES_2 = ADMIN %s: Waffen- und Ausrüstungsverbote wurden aktualisiert. +ADMIN_CMD_UPDATEDCFG = Cmd: %N Waffen- und Ausrüstungsverbote wurden aktualisiert. +ADMIN_CMD_LOADEDCFG = Cmd: %N Waffen- und Ausrüstungsverbote wurden von "%s" geladen. +ADMIN_CMD_SAVEDCFG = Cmd: %N Waffen- und Ausrüstungsverbote wurden in "%s" gespeichert. +ADMIN_MENU_SAVEDCFG = Menu: %N Waffen- und Ausrüstungsverbote wurden in "%s" gespeichert. [sr] EQ_WE_RES = Oprema i oruzje su zabranjeni @@ -199,38 +205,23 @@ CONF_SAV_SUC = Konfiguracija je uspesno sacuvana CONF_SAV_FAIL = Konfiguracija je neuspesno sacuvana!!! [tr] -EQ_WE_RES = Silahlar ve sayre yasakli listesinde -EQ_WE_UNRES = Silahlar ve sayre yasakli listesinden alinmisdir -HAVE_BEEN = olmus -HAS_BEEN = oldu -RESTRICTED = yasaklandi -UNRESTRICTED = yasakli degil -NO_EQ_WE = oylesi bir silah ve sayre bulunamadi -WEAP_RES = Silah Yasaklama -VALUE = deger -REST_ENTRIES_OF = Girisler %i - %i ve %i -REST_USE_MORE = 'amx_restrict list %i' i kullanin dahasini gormek icin -REST_USE_BEGIN = 'amx_restrict list 1' i kullanin baslatmak icin -REST_USE_HOW = 'amx_restrict list <deger>' (1 -> 8) i kullanin -REST_CONF_SAVED = Configler basari ile saklanmisdir (dosya "%s") -REST_COULDNT_SAVE = Configler saklanamadi (dosya "%s") -REST_CONF_LOADED = Config yuklenmis durumda (dosya "%s") -REST_COULDNT_LOAD = Config yuklenemedi (dosya "%s") -COM_REST_USAGE = Kullanim: amx_restrict <emir> [deger] -COM_REST_COMMANDS = Emirler: -COM_REST_ON = " on - Tumunu yasakla" -COM_REST_OFF = " off - Tumunden yasakli listesini kaldir" -COM_REST_ONV = " on <deger> [...] - Ozellikle yasakla" -COM_REST_OFFV = " off <deger> [...] - Ozellikle yasakliyi kaldir" -COM_REST_LIST = " list <deger> - Mevcud olan silahlar ve sayre listesini goster" -COM_REST_SAVE = " save - Yasakli listesini sakla" -COM_REST_LOAD = " load [dosya] - Yasakli listesini yukle [dosyadan]" -COM_REST_VALUES = Mevcud olan degerleri yasaklamak:^nammo, equip, pistol, shotgun, sub, rifle, sniper, machine -COM_REST_TYPE = 'amx_restrict list' i kullanin daha ozel degerleri gormek icin -REST_WEAP = Yasakli Silahlar -SAVE_SET = Ayarlari Saklayin -CONF_SAV_SUC = Ayarlar basari ile saklandi -CONF_SAV_FAIL = Ayarlar malesef saklanamadi!!! +ADMIN_BAN_1 = ADMIN: ban %s +ADMIN_BAN_2 = ADMIN %s: ban %s +BAN_MENU = Ban Menusu +BAN_FOR_MIN = Ban %d dakika olarak +BAN_PERM = Ban suresiz +SLAP_SLAY_MENU = Tokatla/oldur menusu +SLAP_WITH_DMG = Tokatla %d zarar ile +SLAY = Oldur +KICK_MENU = Atma menusu +ADMIN_TRANSF_1 = ADMIN: takim %s goc %s +ADMIN_TRANSF_2 = ADMIN %s: takim %s goc %s +TEAM_MENU = Takim menu +TRANSF_TO = %s takima goc +TRANSF_SILENT = sessiz Transferi +CL_CMD_MENU = Oyuncu Emir Menusu +NO_CMDS = Emir mevcud degildir +CANT_PERF_PLAYER = Oyuncu uzerinde bunu yapamazsiniz "%s" [fr] EQ_WE_RES = Les armes et équipements ont été restreints @@ -1276,4 +1267,176 @@ MENU_ITEM_NVGS = 夜视护目镜 MENU_ITEM_SHIELD = 战术盾牌 MENU_ITEM_PRIAMMO = 主武器弹药 MENU_ITEM_SECAMMO = 副武器弹药 -CONFIG_FILE_HEADER = ; 由 %s 插件生成. 请勿修改!^n; 值名称^n \ No newline at end of file +CONFIG_FILE_HEADER = ; 由 %s 插件生成. 请勿修改!^n; 值名称^n + +[al] +EQ_WE_RES = Paisjet dhe armët janë kufizuar +EQ_WE_UNRES = Paisjet dhe armët janë të pakufizuara +HAVE_BEEN = kan qenë +HAS_BEEN = ka qenë +RESTRICTED = kufizuar +UNRESTRICTED = i pakufizuar +NO_EQ_WE = Nuk mund të gjendet një armë e tillë +WEAP_RES = Kufizimi Armëve +VALUE = vlera +REST_ENTRIES_OF = Hyrja %i - %i prej %i +REST_USE_MORE = Shkruaj 'amx_restrict lista %i' për më shumë +REST_USE_BEGIN = Shkruaj 'amx_restrict lista 1' për fillim +REST_USE_HOW = Shkruaj 'amx_restrict lista <vlera>' (1 -> 8) +REST_CONF_SAVED = Konfigurimet u ruajtën me sukses (skedari "%s") +REST_COULDNT_SAVE = Nuk mund të ruhen konfigurimet (skedari "%s") +REST_CONF_LOADED = Konfigurimet u ngarkuan (skedari "%s") +REST_COULDNT_LOAD = Konfigurimet nuk mund të ngarkohen (skedari "%s") +COM_REST_USAGE = Përdorimi: amx_restrict <komanda> [vlera] +COM_REST_COMMANDS = Komandat: +COM_REST_ON = " on - Vendosni kufizime në të gjitha paisjet" +COM_REST_OFF = " off - Fshijeni kufizimet në paisjet" +COM_REST_ONV = " on <vlera> [...] - Vendosni kufizime të specifikuara" +COM_REST_OFFV = " off <vlera> [...] - Fshijeni kufizimet e specifikuara" +COM_REST_LIST = " list <vlera> - Shfaqë listën e paisjeve dhe armëve në dispozicion" +COM_REST_SAVE = " save - Ruaj kufizimet" +COM_REST_LOAD = " ngarko [skedarë] - Ngarko kufizimet [prej skedarit]" +COM_REST_VALUES = Vlerat e disponushme për të kufizuar janë:^nmonucionet, paisjet, revolet, pushkët, nën, pushkë, snajperkat, makinat +COM_REST_TYPE = Shkruaj 'amx_restrict list' për më shumë vlera të specifikuara +REST_WEAP = Kufizo Armët +SAVE_SET = Ruaj ndryshimet +CONF_SAV_SUC = Konfigurimet u ruajtën me sukses +CONF_SAV_FAIL = Ruajtja e konfigurimeve dështoi!!! +REG_CMD_MENU = - shfaq listën e armëve të kufizuara +REG_CMD_REST = - shfaq ndihmën për kufizimin e armëve +RESTRICTED_ITEM = * Ky artikull është i kufizuar * +MENU_TITLE_HANDGUNS = Pistoletat +MENU_TITLE_SHOTGUNS = Pushkët +MENU_TITLE_SUBMACHINES = Gjysëm-Automatikët +MENU_TITLE_RIFLES = Rrafallicë +MENU_TITLE_SNIPERS = Snajperkë +MENU_TITLE_MACHINE = Mitrolozët +MENU_TITLE_EQUIPMENT = Paisjet +MENU_TITLE_AMMUNITION = Monucioni +MENU_ITEM_USP = H&K USP .45 Tactical +MENU_ITEM_GLOCK18 = Glock18 Select Fire +MENU_ITEM_DEAGLE = Desert Eagle .50AE +MENU_ITEM_P228 = SIG P228 +MENU_ITEM_ELITE = Dual Beretta 96G Elite +MENU_ITEM_FIVESEVEN = FN Five-Seven +MENU_ITEM_M3 = Benelli M3 Super90 +MENU_ITEM_XM1014 = Benelli XM1014 +MENU_ITEM_MP5NAVY = H&K MP5-Navy +MENU_ITEM_TMP = Steyr Tactical Machine Pistol +MENU_ITEM_P90 = FN P90 +MENU_ITEM_MAC10 = Ingram MAC-10 +MENU_ITEM_UMP45 = H&K UMP45 +MENU_ITEM_AK47 = AK-47 +MENU_ITEM_SG552 = Sig SG-552 Commando +MENU_ITEM_M4A1 = Colt M4A1 Carbine +MENU_ITEM_GALIL = Galil +MENU_ITEM_FAMAS = Famas +MENU_ITEM_AUG = Steyr Aug +MENU_ITEM_SCOUT = Steyr Scout +MENU_ITEM_AWP = AI Arctic Warfare/Magnum +MENU_ITEM_G3SG1 = H&K G3/SG-1 Sniper Rifle +MENU_ITEM_SG550 = Sig SG-550 Sniper +MENU_ITEM_M249 = FN M249 Para +MENU_ITEM_VEST = Pancer Mbrojtës +MENU_ITEM_VESTHELM = Pancer Mbrojtës & Kaskë +MENU_ITEM_FLASHBANG = Granata Tymit(o3) +MENU_ITEM_HEGRENADE = Granata Zjarrit +MENU_ITEM_SMOKEGRENADE = Granata Mjegull +MENU_ITEM_DEFUSER = Paisjet për q'montimë c4 +MENU_ITEM_NVGS = Syza për Mbrëmje +MENU_ITEM_SHIELD = Mburojë +MENU_ITEM_PRIAMMO = Munucioni armëve parësore +MENU_ITEM_SECAMMO = Munucioni armëve dytësore +CONFIG_FILE_HEADER = ; Gjeneruar nga %s Plugin. Mos e ndrysho!^n; emri vlerës^n +ADMIN_UPD_RES_1 = ADMIN: përditësoj kufizimin e artikujve +ADMIN_UPD_RES_2 = ADMIN %s: përditësoj kufizimin e artikujve +ADMIN_CMD_UPDATEDCFG = Cmd: %N përditësoj kufizimin e artikujve +ADMIN_CMD_LOADEDCFG = Cmd: %N ngarkoj artikujt e kufizuar prej "%s" +ADMIN_CMD_SAVEDCFG = Cmd: %N ruajti artikujt e kufizuar në "%s" +ADMIN_MENU_SAVEDCFG = Menu: %N ruajti artikujt e kufizuar në "%s" + +[pt] +EQ_WE_RES = Equipamentos e armas foram restritos +EQ_WE_UNRES = Equipamentos e armas deixaram de ser restritos +HAVE_BEEN = foram +HAS_BEEN = foi +RESTRICTED = restrito +UNRESTRICTED = irrestrito +NO_EQ_WE = Não foi possível encontrar esse equipamento ou arma +WEAP_RES = Restrição de Armas +VALUE = valor +REST_ENTRIES_OF = Entradas %i - %i de %i +REST_USE_MORE = Usa 'amx_restrict list %i' para mostrar mais +REST_USE_BEGIN = Usa 'amx_restrict list 1' para voltar ao início +REST_USE_HOW = Usa 'amx_restrict list <valor>' (1 -> 8) +REST_CONF_SAVED = A configuração foi guardada (ficheiro "%s") +REST_COULDNT_SAVE = Não foi possível guardar a configuração (ficheiro "%s") +REST_CONF_LOADED = A configuração foi carregada (ficheiro "%s") +REST_COULDNT_LOAD = Não foi possível carregar a configuração (ficheiro "%s") +COM_REST_USAGE = Uso: amx_restrict <comando> [valor] +COM_REST_COMMANDS = Comandos: +COM_REST_ON = " on - Pôr restrição em todos os equipamentos" +COM_REST_OFF = " off - Remover restrição de todos os equipamentos" +COM_REST_ONV = " on <value> [...] - Pôr uma restrição específica" +COM_REST_OFFV = " off <value> [...] - Remover restrição específica" +COM_REST_LIST = " list <value> - Mostrar todos os equipamentos e armas disponíveis" +COM_REST_SAVE = " save - Guardar restrição" +COM_REST_LOAD = " load [file] - Carregar restrição [de um ficheiro]" +COM_REST_VALUES = Os valores disponíveis para restringir são:^nammo, equip, pistol, shotgun, sub, rifle, sniper, machine +COM_REST_TYPE = Escreve 'amx_restrict list' para mais valores específicos +REST_WEAP = Restringir Armas +SAVE_SET = Guardar definições +CONF_SAV_SUC = Configuração guardada com sucesso +CONF_SAV_FAIL = Falha ao guardar a configuração!!! +REG_CMD_MENU = - mostra o menu de restrição de armas +REG_CMD_REST = - mostra a ajuda para restrição de armas +RESTRICTED_ITEM = * Este item é restrito * +MENU_TITLE_HANDGUNS = Pistolas +MENU_TITLE_SHOTGUNS = Espingardas +MENU_TITLE_SUBMACHINES = Sub-metralhadoras +MENU_TITLE_RIFLES = Rifles de Assalto +MENU_TITLE_SNIPERS = Rifles de Precisão +MENU_TITLE_MACHINE = Metralhadoras +MENU_TITLE_EQUIPMENT = Equipamento +MENU_TITLE_AMMUNITION = Munição +MENU_ITEM_USP = H&K USP .45 Tactical +MENU_ITEM_GLOCK18 = Glock18 Select Fire +MENU_ITEM_DEAGLE = Desert Eagle .50AE +MENU_ITEM_P228 = SIG P228 +MENU_ITEM_ELITE = Dual Beretta 96G Elite +MENU_ITEM_FIVESEVEN = FN Five-Seven +MENU_ITEM_M3 = Benelli M3 Super90 +MENU_ITEM_XM1014 = Benelli XM1014 +MENU_ITEM_MP5NAVY = H&K MP5-Navy +MENU_ITEM_TMP = Steyr Tactical Machine Pistol +MENU_ITEM_P90 = FN P90 +MENU_ITEM_MAC10 = Ingram MAC-10 +MENU_ITEM_UMP45 = H&K UMP45 +MENU_ITEM_AK47 = AK-47 +MENU_ITEM_SG552 = Sig SG-552 Commando +MENU_ITEM_M4A1 = Colt M4A1 Carbine +MENU_ITEM_GALIL = Galil +MENU_ITEM_FAMAS = Famas +MENU_ITEM_AUG = Steyr Aug +MENU_ITEM_SCOUT = Steyr Scout +MENU_ITEM_AWP = AI Arctic Warfare/Magnum +MENU_ITEM_G3SG1 = H&K G3/SG-1 Sniper Rifle +MENU_ITEM_SG550 = Sig SG-550 Sniper +MENU_ITEM_M249 = FN M249 Para +MENU_ITEM_VEST = Colete +MENU_ITEM_VESTHELM = Colete & Capacete +MENU_ITEM_FLASHBANG = Flashbang +MENU_ITEM_HEGRENADE = Granada HE +MENU_ITEM_SMOKEGRENADE = Granada de fumo +MENU_ITEM_DEFUSER = Kit para Desarmar bombas +MENU_ITEM_NVGS = Óculos de Visão Noturna +MENU_ITEM_SHIELD = Escudo Tático +MENU_ITEM_PRIAMMO = Munição da arma primária +MENU_ITEM_SECAMMO = Munição da arma secundária +CONFIG_FILE_HEADER = ; Gerado pelo Plugin %s. Não modifique!^n; nome do valor^n +ADMIN_UPD_RES_1 = ADMIN: atualizou a restrição de itens +ADMIN_UPD_RES_2 = ADMIN %s: atualizou a restrição de itens +ADMIN_CMD_UPDATEDCFG = Cmd: %N atualizou a restrição de itens +ADMIN_CMD_LOADEDCFG = Cmd: %N carregou a restrição de itens de "%s" +ADMIN_CMD_SAVEDCFG = Cmd: %N guardou a restrição de itens em "%s" +ADMIN_MENU_SAVEDCFG = Menu: %N guardou a restrição de itens em "%s" diff --git a/plugins/lang/scrollmsg.txt b/plugins/lang/scrollmsg.txt index 120615c7f4..aa15905647 100755 --- a/plugins/lang/scrollmsg.txt +++ b/plugins/lang/scrollmsg.txt @@ -4,8 +4,8 @@ MSG_FREQ = Scrolling message displaying frequency: %d:%02d minutes MSG_DISABLED = Scrolling message disabled [de] -MIN_FREQ = Minimale Frequenz fuer diese Anzeige sind %d Sekunden -MSG_FREQ = Scrollnachricht Anzeigefrequenz: %d:%02d Minuten +MIN_FREQ = Die minimale Frequenz für diese Anzeige sind %d Sekunden +MSG_FREQ = Anzeigefrequenz der Scrollnachricht: %d:%02d Minuten MSG_DISABLED = Scrollnachrichten abgeschaltet [sr] @@ -14,9 +14,9 @@ MSG_FREQ = Vreme prikazivanja prolazece poruke: %d:%02d minut(a) MSG_DISABLED = Prolazeca poruka iskljucna [tr] -MIN_FREQ = Bu mesajin en az frekansi %d saniyedir -MSG_FREQ = Kaydirilan mesaj gosterme frekansi: %d:%02d dakika -MSG_DISABLED = Kaydirilan mesaj kullanimda degil +MIN_FREQ = Bu mesaj icin minimum siklik %d saniyedir +MSG_FREQ = Kaydirmali mesaj gosterme sikligi: %d:%02d dakika +MSG_DISABLED = Kaydirmali mesaj devre disi [fr] MIN_FREQ = La frequence minimale pour ce message est de %d secondes @@ -112,3 +112,13 @@ MSG_DISABLED = Бегущая строка заблокирована MIN_FREQ = 此消息的最小频率为 %d 秒 MSG_FREQ = 滚动信息的显示频率为每 %d:%02d 分钟显示一次 MSG_DISABLED = 滚动消息已禁用 + +[al] +MIN_FREQ = Vlera minimale e frekuencës për këtë mesazhë është %d sekonda +MSG_FREQ = Mesazhi që shfaq frekuencën qdo: %d:%02d minuta +MSG_DISABLED = Diskutimi mesazhit është i q'aktivizuar + +[pt] +MIN_FREQ = A Frequência Mínima para esta mensagem é de %d segundos +MSG_FREQ = Frequência de exibição da Mensagem Rolante: %d:%02d minutos +MSG_DISABLED = Mensagem Rolante desativada diff --git a/plugins/lang/stats_dod.txt b/plugins/lang/stats_dod.txt index f002968c53..4ec125c965 100755 --- a/plugins/lang/stats_dod.txt +++ b/plugins/lang/stats_dod.txt @@ -94,9 +94,9 @@ M_THEIR_RANK_IS = Their rank is M_OF = of [de] -WHOLEBODY = Koerper +WHOLEBODY = Körper HEAD = Kopf -CHEST = Oberkoerper +CHEST = Oberkörper STOMACH = Bauch LEFTARM = linker Arm RIGHTARM = rechter Arm @@ -116,51 +116,51 @@ RAMPAGE_SMALL = %s: RANDALIERER!!! UNSTOPPABLE_SMALL = %s IST NICHT ZU STOPPEN!! MONSTER_SMALL = %s IST EIN MONSTER! GODLIKE_SMALL = %s IST GODLIKE!!! -KNIFE_MSG1 = %s hat %s geschnitten und gewuerfelt -KNIFE_MSG2 = %s hat sein Messer gezueckt und %s ausgeweidet +KNIFE_MSG1 = %s hat %s geschnitten und gewürfelt +KNIFE_MSG2 = %s hat sein Messer gezückt und %s ausgeweidet KNIFE_MSG3 = %s hat sich angeschlichen und %s gemessert -KNIFE_MSG4 = %s messerte und verstuemmelte %s +KNIFE_MSG4 = %s messerte und verstümmelte %s HE_MSG1 = %s sendet ein kleines Geschenk an %s HE_MSG2 = %s wirft ein Knallbonbon zu %s -HE_MSG3 = %s macht einen Praezisionswurf zu %s +HE_MSG3 = %s macht einen Präzisionswurf zu %s HE_MSG4 = %s schickte eine dicke Explosion an %s SHE_MSG1 = %s sprengte sich selbst mit einer Granate SHE_MSG2 = %s untersuchte die Auswirkungen ^neiner Granate an sich selbst... SHE_MSG3 = %s schluckte eine Granate! SHE_MSG4 = %s explodierte! HEAD_MSG1 = $kn killte $vn mit einem ^nplazierten Schuss in den Kopf! -HEAD_MSG2 = $kn entfernte den Kopf von $vn^nmit einem Praezisionsschuss. +HEAD_MSG2 = $kn entfernte den Kopf von $vn^nmit einem Präzisionsschuss. HEAD_MSG3 = $kn verwandelte den Kopf ^nvon $vn in Pudding. -HEAD_MSG4 = $vn siegte ueber $kn durch eine Kopfschuss. +HEAD_MSG4 = $vn killte $kn durch einen Kopfschuss. HEAD_MSG5 = $vn's Kopf wurde in der Gegend verteilt -HEAD_MSG6 = $kn hat einen super ^nTreffer gelandet,das weiss ^n$vn nun auch. +HEAD_MSG6 = $kn hat einen super ^nTreffer gelandet,das weiß ^n$vn nun auch. HEAD_MSG7 = $vn's Kopf war ein bisschen zu lange im Fadenkreuz von $kn... DOUBLE_MSG1 = Wow! %s machte einen Doppelkill!!! DOUBLE_MSG2 = Unglaublich! %s macht einen dreifachen Kill !!! -DOUBLE_MSG3 = Ueberrascung! %s macht %d Kills auf einmal !!! -MORTAR_MSG1 = %s stellte den Moerser auf und schickte %s in den Himmel. -MORTAR_MSG2 = %s killte %s ueber eine lange Distanz. -KILL_INFO1 = %s killte dich mit der %s^nueber eine Entfernung von %.2f Meter.^n -KILL_INFO2 = Er machte %d Schaden bei dir mit %d Treffern ^nund hat noch %dHP.^n -KILL_INFO3 = Du machtest %d Schaden bei ihm mit %d Treffern.^n +DOUBLE_MSG3 = Überraschung! %s macht %d Kills auf einmal !!! +MORTAR_MSG1 = %s stellte den Mörser auf und schickte %s in den Himmel. +MORTAR_MSG2 = %s killte %s über eine lange Distanz. +KILL_INFO1 = %s killte dich mit der %s^nüber eine Entfernung von %.2f Meter.^n +KILL_INFO2 = Er machte %d Schaden bei dir mit %d Treffer(n) ^nund hat noch %dHP.^n +KILL_INFO3 = Du machtest %d Schaden bei ihm mit %d Treffer(n).^n KILL_INFO4 = Du hast ihn getroffen in den/das:^n%s^n STILL_HAS = %s hat noch %dHP NO_KILLER = Du hast keinen Killer... TOPX = Top %d FFIRE_IS = Friendly fire: ATTACKERS = Angreifer: -VICTIMS = Gewinner: +VICTIMS = Opfer: DMG = Schaden HIT_S = Treffer YOU_HIT = Du trafst %s in: -SERVER_STATS = Server Statistik +SERVER_STATS = Serverstatistik SHOW_STATS = Statistik anzeigen SHOW_RANK = Rang anzeigen -TA_MSG = %s schiesst auf einen Kameraden -TK_MSG = %s toetete einen Kameraden! -NADE_CAUGHT = Wow! %s faengt eine gegnereische Granate! -NADE_FAILEDTK = Oops.. %s killte dich bei dem Versuch, die Granate zurueckzuwerfen.. -NADE_FAILED = %s konnte feindliche Granate nicht zurück werfen. +TA_MSG = %s schießt auf einen Kameraden +TK_MSG = %s killte einen Kameraden! +NADE_CAUGHT = Wow! %s fängt eine gegnerische Granate! +NADE_FAILEDTK = Oops.. %s killte dich bei dem Versuch, die Granate zurückzuwerfen.. +NADE_FAILED = %s konnte die feindliche Granate nicht zurückwerfen. NADE_MASTER = OMG! %s ist der Meister der Granaten !!! DISABLED_MSG = Server hat diese Option deaktiviert. MOST_KILLS = Meisten Kills @@ -179,7 +179,7 @@ M_DEATHS = Deaths: M_SCORE = Note: M_TKS = TKs: M_HITS = Treffer: -M_SHOTS = Schuesse: +M_SHOTS = Schüsse: M_HS = HS: M_WEAPON = Waffe: M_DAMAGE = Schaden: @@ -286,97 +286,97 @@ M_OF = of [tr] WHOLEBODY = tum vucut HEAD = kafa -CHEST = dos -STOMACH = migde +CHEST = gogus +STOMACH = karin LEFTARM = sol kol RIGHTARM = sag kol LEFTLEG = sol bacak RIGHTLEG = sag bacak -MULTI_MSG = Muthis! %s^nkullandigi %d oldurdugu (%d hs) -ULTRA_MSG = Super!!! %s^nkullandigi %d oldurdugu (%d hs) -SPREE_MSG = %s OLUM SACIYOR!!!^nkullandigi %d oldurdugu (%d hs) -RAMPAGE_MSG = DAGITIYOR!!! %s^nkullandigi %d oldurdugu (%d hs) -UNSTOPPABLE_MSG = %s DURDURULMAZ!!!^nkullandigi %d oldurdugu (%d hs) -MONSTER_MSG = %s YARATIK!^nwith %d kills (%d hs) -GODLIKE_MSG = %s TANRI GUCUNDE!!!!^nwith %d kills (%d hs) -MULTI_SMALL = %s: Muthis! -ULTRA_SMALL = %s: Super!!! -SPREE_SMALL = %s OLUM SACIYOR!!! -RAMPAGE_SMALL = %s: DAGITIYOR!!! -UNSTOPPABLE_SMALL = %s DURDURULMAZ!!! -MONSTER_SMALL = %s YARATIK! -GODLIKE_SMALL = %s TANRI GUCUNDE!!! -KNIFE_MSG1 = %s kesdi parcaladi %s -KNIFE_MSG2 = %s bicagini cekdi ve yardi %s -KNIFE_MSG3 = %s sezdirmeden arkadan geldi ve kesdi %s -KNIFE_MSG4 = %s bicakladi %s -HE_MSG1 = %s bir hediye yolladi %s -HE_MSG2 = %s bir paket gonderdi %s -HE_MSG3 = %s dort dortluk atis yapdi %s -HE_MSG4 = %s buyuk bir patlama olusdurdu %s -SHE_MSG1 = %s kendini havaya ucurdu -SHE_MSG2 = %s bombanin gucunu kendinde denedi -SHE_MSG3 = %s kendini parim parca etdi -SHE_MSG4 = %s patladi! -HEAD_MSG1 = $kn oldurdu $vn kullandigi^ntam kafa isabeti ile! -HEAD_MSG2 = $kn yok etdi kafasini $vn'in^nkullandigi $wn -HEAD_MSG3 = $kn kafasini $vn'in^nrecele cevirdi bu silah ile $wn -HEAD_MSG4 = $vn arkadasi harcadi $kn -HEAD_MSG5 = $vn'in kafasini^nkirmizi muhallebiye cevirdi -HEAD_MSG6 = $kn cok super bir atisci $wn,^n arkadasin $vn bildigi gibi. -HEAD_MSG7 = $vn'in kafasini $kn's^nnamlida fazla bekletdi... -DOUBLE_MSG1 = Wow! %s bir tas ile iki kus !!! -DOUBLE_MSG2 = Inanilmaz! %s uc kisi birden oldurdu !!! -DOUBLE_MSG3 = Muthis! %s tam %d kisi birden oldurdu !!! -MORTAR_MSG1 = %s bombayi tam hazirladi ve patlatdi %s -MORTAR_MSG2 = %s uzun mesafeli oldurdu %s -KILL_INFO1 = %s sizi oldurdu %s^nmesafe %.2f metre.^n -KILL_INFO2 = onun verdigi zarar %d vurdugu %d ^nve halen %dhp.^n -KILL_INFO3 = sizin verdiginiz zarar %d vurdugunuz %d vurus(lar).^n -KILL_INFO4 = sizi isabetledigi yerler:^n%s^n -STILL_HAS = %s halen bu kadar gucu var %dhp -NO_KILLER = Sizi olduren yok... +MULTI_MSG = Coklu-Kill! %s^n%d kill ile (%d hs) +ULTRA_MSG = Ultra-Kill!!! %s^n%d kill ile (%d hs) +SPREE_MSG = %s KILL CILGINLIGINDA!!!^n%d kill ile (%d hs) +RAMPAGE_MSG = OFKELI!!! %s^n%D kill ile (%d hs) +UNSTOPPABLE_MSG = %s DURDURULAMAZ!!!^n%d kill ile(%d hs) +MONSTER_MSG = %s CANAVAR!^n%d kill ile (%d hs) +GODLIKE_MSG = %s TANRISAL!!!!^n%d kill ile (%d hs) +MULTI_SMALL = %s: Multi-Kill! +ULTRA_SMALL = %s: Ultra-Kill!!! +SPREE_SMALL = %s KILL CILGINLIGINDA!!! +RAMPAGE_SMALL = %s: OFKELI!!! +UNSTOPPABLE_SMALL = %s DURDURULAMAZ!!! +MONSTER_SMALL = %s BIR CANAVAR! +GODLIKE_SMALL = %s TANRISAL!!! +KNIFE_MSG_1 = %s %s kisisini kucuk parcalara ayirdi +KNIFE_MSG_2 = %s bicagini cikardi ve %s kisisinin bagirsagini desti +KNIFE_MSG_3 = %s gizlice arkasina gecti ve %s kisisini bicakladi +KNIFE_MSG_4 = %s %s kisisini bicakladi +HE_MSG_1 = %s %s kisisine kucuk bir hediye gonderdi +HE_MSG_2 = %s %s kisisine ufak bir hediye atti +HE_MSG_3 = %s %s kisisine hassas bir atis yapti +HE_MSG_4 = %s %s kisisi icin buyuk bir patlama getirdi +SHE_MSG_1 = %s kendisini bir bombayla patlatti +SHE_MSG_2 = %s bir HE bombasinin efektini denedi +SHE_MSG_3 = %s butun bombalari yuttu! +SHE_MSG_4 = %s patladi! +HEAD_MSG_1 = $kn $vn kisisini kafaya yerlesen^nguzel bir vurusla oldurdu +HEAD_MSG_2 = $kn $vn kisisinin kafasini^n$wn ile kopardi +HEAD_MSG_3 = $kn $vn kisisinin kafasini^n$wn ile pudinge cevirdi +HEAD_MSG_4 = $vn $kn kisisi tarafindan yenildi +HEAD_MSG_5 = $vn kisisinin kafasi^nkirmizi joleye donustu +HEAD_MSG_6 = $kn $wn silahinda super bir aime sahip,^n$vn iyi bilir +HEAD_MSG_7 = $vn kisisinin kafasi^n$kn kisisinin crosshairinde biraz fazla kaldi... +DOUBLE_MSG1 = Vay! %s cift kill yapti!!! +DOUBLE_MSG2 = Inanilmaz! %s uclu kill yapti !!! +DOUBLE_MSG3 = Muthis! %s tek seferde %d kill yapti!!! +MORTAR_MSG1 = %s bir bomba kurdu ve %s kisisini patlatti +MORTAR_MSG2 = %s %s kisisini uzun menzilden oldurdu +KILL_INFO1 = %s seni %s ile oldurdu^n%.2f metre uzakliktan.^n +KILL_INFO2 = O sana %d hasar verdi%d isabetle^nve hala %dcani var.^n +KILL_INFO3 = Ona %d hasar verdin %d isabetle.^n +KILL_INFO4 = Seni isabetledigi yerler:^n%s^n +STILL_HAS = %s kisisinin hala %dcani var +NO_KILLER = Seni olduren yok... TOPX = Top %d FFIRE_IS = Dost atesi: ATTACKERS = Saldiranlar: -VICTIMS = Magdurlar: -DMG = zarar -HIT_S = vurdugunuz(lar) -YOU_HIT = sizin vurdugunuz %s: -SERVER_STATS = Server statistigi -SHOW_STATS = Statistigi goster +VICTIMS = Kurbanlar: +DMG = hasar +HIT_S = isabetler +YOU_HIT = %s kisisini surasindan vurdun: +SERVER_STATS = Server Istatistikleri +SHOW_STATS = Istatistikleri goster SHOW_RANK = Siralamayi goster -TA_MSG = %s Takim arkadasina ates etdi -TK_MSG = %s Takim arkadasini oldurdu ! -NADE_CAUGHT = Wow! %s Dusmanin bombasini yakaladi! -NADE_FAILEDTK = Vay be.. %s sizi oldurdu bombayi geri atayim derken.. -NADE_FAILED = %s malesef bombayi geri atamadi.. -NADE_MASTER = HAYRET! %s el bombasi uzmani !!! -DISABLED_MSG = Server o cvar'i kullanmiyor -MOST_KILLS = En fazla olduren -KILL = oldurdugu -KILLS = olduren +TA_MSG = %s bir takim arkadasina saldirdi +TK_MSG = %s bir takim arkadasini oldurdu ! +NADE_CAUGHT = Vay! %s dusmanin bombasini yakaladi! +NADE_FAILEDTK = Hay aksi... %s dusman bombasini geri atmaya calisirken seni oldurdu.. +NADE_FAILED = %s dusman bombasini geri atamadi.. +NADE_MASTER = AMAN TANRIM! %s bir bomba uzmani !!! +DISABLED_MSG = Server o ayari devre disi birakti +MOST_KILLS = En Fazla Kill +KILL = kill +KILLS = kill HEADSHOT = kafa vurusu HEADSHOTS = kafa vuruslari -BEST_SCORE = En iyi skor -POINTS = puan(lar) +BEST_SCORE = En iyi Skor +POINTS = puanlar MOST_DAMAGE = En fazla zarar DAMAGE = zarar -HIT = vurus -HITS = vurus(lar) -M_KILLS = oldurdugu: -M_DEATHS = oldugunuz: +HIT = isabet +HITS = isabetler +M_KILLS = Kill: +M_DEATHS = Olum: M_SCORE = Skor: -M_TKS = TK'ler: -M_HITS = vuruslar: -M_SHOTS = kursun: -M_HS = HS'lar: +M_TKS = TKler: +M_HITS = Isabet: +M_SHOTS = Atis: +M_HS = HS: M_WEAPON = Silah: -M_DAMAGE = Zarar: -M_NICK = Nik: -M_YOUR_RANK_IS = Sizin siralamaniz -M_THEIR_RANK_IS = Onlarin siralamasi -M_OF = Kapali +M_DAMAGE = Hasar: +M_NICK = Isim: +M_YOUR_RANK_IS = Siralaman +M_THEIR_RANK_IS = Onlarin siralamalari +M_OF = [fr] WHOLEBODY = le corps entier @@ -2087,3 +2087,193 @@ M_NICK = 昵称: M_YOUR_RANK_IS = 你的排名是 M_THEIR_RANK_IS = 他们的排名是 M_OF = 的 + +[al] +WHOLEBODY = gjithë trupi +HEAD = kokë +CHEST = gjoksë +STOMACH = bark +LEFTARM = krahu majtë +RIGHTARM = krahu djathtë +LEFTLEG = këmba majtë +RIGHTLEG = këmba djathtë +MULTI_MSG = Multi-Kill! %s^nme %d vrasje (%d kokë) +ULTRA_MSG = Ultra-Kill!!! %s^nme %d vrasje (%d kokë) +SPREE_MSG = %s IS ON A KILLING SPREE!!!^nme %d vrasje (%d kokë) +RAMPAGE_MSG = RAMPAGE!!! %s^nme %d vrasje (%d kokë) +UNSTOPPABLE_MSG = %s IS UNSTOPPABLE!!!^nme %d vrasje (%d kokë) +MONSTER_MSG = %s IS A MONSTER!^nme %d vrasje (%d kokë) +GODLIKE_MSG = %s IS GODLIKE!!!!^nme %d vrasje (%d kokë) +MULTI_SMALL = %s: Multi-Kill! +ULTRA_SMALL = %s: Ultra-Kill!!! +SPREE_SMALL = %s IS ON A KILLING SPREE!!! +RAMPAGE_SMALL = %s: RAMPAGE!!! +UNSTOPPABLE_SMALL = %s IS UNSTOPPABLE!!! +MONSTER_SMALL = %s IS A MONSTER! +GODLIKE_SMALL = %s IS GODLIKE!!! +KNIFE_MSG1 = %s vrau në mënyrë makabërr %s +KNIFE_MSG2 = %s i nguli thikën shumë mirë %s +KNIFE_MSG3 = %s bëri një vrasje fenomenale me thikë në %s +KNIFE_MSG4 = %s preu një kurban %s +HE_MSG1 = %s dërgoi një dhuratë të vogël për %s +HE_MSG2 = %s hedhi një dhuratë të vogël për %s +HE_MSG3 = %s bëri një hedhje të saktë për %s +HE_MSG4 = %s i dha nje shpërthim të madhë %s +SHE_MSG1 = %s e hodhi veten në ajër me granatë +SHE_MSG2 = %s përvoj efektin e granatës +SHE_MSG3 = %s bëri një kiks të vogël me granatë +SHE_MSG4 = %s shpërtheu! +HEAD_MSG1 = $kn vrau $vn mirë me^nnjë plumbë në kokë! +HEAD_MSG2 = $kn largo $vn's^nkokën prej $wn +HEAD_MSG3 = $kn hodhi $vn's në kokë^nnjë plumb $wn +HEAD_MSG4 = $vn prej $kn +HEAD_MSG5 = $vn's koka i shpërtheu^nsi një domate +HEAD_MSG6 = $kn ka një super shënjestër $wn,^nas $vn dihet. +HEAD_MSG7 = $vn's qëndroi me kokë në $kn's^nshenje për një kohë të gjatë... +DOUBLE_MSG1 = Wow! %s bëri vrasje dyfishtë !!! +DOUBLE_MSG2 = E mahnitshme! %s bëri vrasje trefisht !!! +DOUBLE_MSG3 = Mrekullueshme! %s bëri %d në të njëjtën kohë !!! +MORTAR_MSG1 = %s vendosi për %s +MORTAR_MSG2 = %s bëri një kohë gjatë për të vrarë %s +KILL_INFO1 = %s ju vrau ju me %s^nprej distancës %.2f metra.^n +KILL_INFO2 = Ai shkaktoj %d dëmtime juve me %d goditje(s)^ndhe ka %dhp.^n +KILL_INFO3 = Ju shkaktuat %d dëmtime me %d goditje(s).^n +KILL_INFO4 = Ai ju goditi juve në:^n%s^n +STILL_HAS = %s ka %dhp +NO_KILLER = Ju nuk keni vrarë... +TOPX = Top %d +FFIRE_IS = Sulm shokut: +ATTACKERS = Sulmuesit: +VICTIMS = Viktima: +DMG = dëmtime +HIT_S = goditje(s) +YOU_HIT = Ju goditet %s në: +SERVER_STATS = Statistikat Serverit +SHOW_STATS = Trego statistikat +SHOW_RANK = Trego rankun +TA_MSG = %s sulmoi një shokë të ekipës +TK_MSG = %s vrau shokun e ekipit ! +NADE_CAUGHT = Wow! %s u vra nga granata armikut! +NADE_FAILEDTK = Oops.. %s ju vrau duke u përpjekur për të hedhur granatën.. +NADE_FAILED = %s dështuat të hedhni granatë te armiku.. +NADE_MASTER = OMG! %s është mjeshtër i granatës !!! +DISABLED_MSG = Serveri e ka të ndaluar ketë zgjedhje +MOST_KILLS = Më së shumti vrasje +KILL = vrasje +KILLS = vrasje +HEADSHOT = kokë +HEADSHOTS = kokë +BEST_SCORE = Rezultati më i mirë +POINTS = pikë +MOST_DAMAGE = Më së shumti dëmtime +DAMAGE = dëmtime +HIT = goditje +HITS = goditjet +M_KILLS = Vrasjet: +M_DEATHS = Vdekjet: +M_SCORE = Rezultati: +M_TKS = TKs: +M_HITS = Goditjet: +M_SHOTS = Shtënat: +M_HS = KOKË: +M_WEAPON = Armë: +M_DAMAGE = Dëmtime: +M_NICK = Emri: +M_YOUR_RANK_IS = Ranku juaj është +M_THEIR_RANK_IS = Ranku atij është +M_OF = prej + +[pt] +WHOLEBODY = todo o corpo +HEAD = cabeça +CHEST = peito +STOMACH = estômago +LEFTARM = braço esquerdo +RIGHTARM = braço direito +LEFTLEG = perna esquerda +RIGHTLEG = perna direita +MULTI_MSG = Multi-Kill! %s^ncom %d mortes (%d hs) +ULTRA_MSG = Ultra-Kill!!! %s^ncom %d mortes (%d hs) +SPREE_MSG = %s ESTÁ NUMA MATANÇA!!!^ncom %d mortes (%d hs) +RAMPAGE_MSG = RAMPAGE!!! %s^ncom %d mortes (%d hs) +UNSTOPPABLE_MSG = %s ESTÁ IMPARÁVEL!!!^ncom %d mortes (%d hs) +MONSTER_MSG = %s É UM MONSTRO!^ncom %d mortes (%d hs) +GODLIKE_MSG = %s É UM DEUS!!!!^ncom %d mortes (%d hs) +MULTI_SMALL = %s: Multi-Kill! +ULTRA_SMALL = %s: Ultra-Kill!!! +SPREE_SMALL = %s ESTÁ NUMA MATANÇA!!! +RAMPAGE_SMALL = %s: RAMPAGE!!! +UNSTOPPABLE_SMALL = %s ESTÁ IMPARÁVEL!!! +MONSTER_SMALL = %s É UM MONSTRO! +GODLIKE_SMALL = %s É UM DEUS!!! +KNIFE_MSG1 = %s fatiou e picou %s +KNIFE_MSG2 = %s sacou a faca e estripou %s +KNIFE_MSG3 = %s esgueirou-se com cuidado por trás e esfaqueou %s +KNIFE_MSG4 = %s esfaqueou %s +HE_MSG1 = %s enviou uma pequena prenda a %s +HE_MSG2 = %s atirou um pequeno presente a %s +HE_MSG3 = %s fez um arremesso preciso a %s +HE_MSG4 = %s fez uma grande explosão a %s +SHE_MSG1 = %s detonou-se com uma granada +SHE_MSG2 = %s testou o efeito de uma granada +SHE_MSG3 = %s engoliu uma granada inteira! +SHE_MSG4 = %s explodiu! +HEAD_MSG1 = $kn matou $vn com um tiro^nbem colocado na cabeça! +HEAD_MSG2 = $kn removeu a cabeça de $vn^ncom $wn +HEAD_MSG3 = $kn tornou a cabeça de $vn^nem pudim com $wn +HEAD_MSG4 = $vn foi humilhado por $kn +HEAD_MSG5 = A cabeça de $vn tornou-se^nnuma gelatina vermelha +HEAD_MSG6 = $kn tem uma boa pontaria com $wn,^n$vn sabe bem disso. +HEAD_MSG7 = A cabeça de $vn ficou^nna mira de $kn demasiado tempo... +DOUBLE_MSG1 = Uau! %s matou 2 jogadores de seguida!!! +DOUBLE_MSG2 = Incrível! %s matou 3 jogadores de seguida !!! +DOUBLE_MSG3 = Surpreendente! %s matou %d jogadores de seguida !!! +MORTAR_MSG1 = %s montou bem um morteiro e explodiu %s +MORTAR_MSG2 = %s matou %s de uma longa distância +KILL_INFO1 = %s matou-te com %s^nde uma distância de %.2f metros.^n +KILL_INFO2 = Ele causou %d de dano a ti com %d acerto(s)^ne ainda tem %d de vida.^n +KILL_INFO3 = Tu causaste %d de dano a ele com %d acerto(s).^n +KILL_INFO4 = Ele acertou-te em:^n%s^n +STILL_HAS = %s ainda tem %d de vida +NO_KILLER = Tu não tens nenhum atacante... +TOPX = Top %d +FFIRE_IS = Fogo amigo: +ATTACKERS = Atacantes: +VICTIMS = Vítimas: +DMG = dano +HIT_S = acerto(s) +YOU_HIT = Tu acertaste %s em: +SERVER_STATS = Estatísticas do Servidor +SHOW_STATS = Mostrar estatísticas +SHOW_RANK = Mostrar rank +TA_MSG = %s atacou um colega de equipa +TK_MSG = %s matou um colega de equipa ! +NADE_CAUGHT = Uau! %s apanhou a granada inimiga! +NADE_FAILEDTK = Oops.. %s matou-te a tentar atirar de volta a granada inimiga.. +NADE_FAILED = %s não conseguiu atirar a granada inimiga.. +NADE_MASTER = Oh meu deus! %s é um mestre das granadas !!! +DISABLED_MSG = O servidor desativou essa opção +MOST_KILLS = Mais matanças +KILL = mantaça +KILLS = mantaças +HEADSHOT = tiro na cabeça +HEADSHOTS = tiros na cabeça +BEST_SCORE = Melhor pontuação +POINTS = pontos +MOST_DAMAGE = Mais dano +DAMAGE = dano +HIT = acerto +HITS = acertos +M_KILLS = Matanças: +M_DEATHS = Mortes: +M_SCORE = Pontuação: +M_TKS = TKs: +M_HITS = Acertos: +M_SHOTS = Tiros: +M_HS = HS: +M_WEAPON = Arma: +M_DAMAGE = Dano: +M_NICK = Nome: +M_YOUR_RANK_IS = O teu rank é +M_THEIR_RANK_IS = O rank dele(a) +M_OF = de diff --git a/plugins/lang/statscfg.txt b/plugins/lang/statscfg.txt index 3cba2697c2..c1d08aa22a 100755 --- a/plugins/lang/statscfg.txt +++ b/plugins/lang/statscfg.txt @@ -88,63 +88,63 @@ STATS_CONF_FAILED = Fehler beim Speichern der Statistik-Konfiguration!!! STATS_CONF_LOADED = Statistik-Konfiguration erfolgreich geladen STATS_CONF_FAIL_LOAD = Fehler beim Laden der Statistik-Konfiguration!!! STATS_CONF = Statistik-Konfiguration -STATS_ENTRIES_OF = Eintraege %i - %i von %i -STATS_USE_MORE = Benutze 'amx_statscfg list %i' fuer mehr Info´s +STATS_ENTRIES_OF = Einträge %i - %i von %i +STATS_USE_MORE = Benutze 'amx_statscfg list %i' für mehr Infos STATS_USE_BEGIN = Benutze 'amx_statscfg list 1' um zum Anfang zu gelangen -CANT_ADD_STATS = Kann keine Statistik mehr hinzufuegen, das Limit ist erreicht! +CANT_ADD_STATS = Kann keine Statistik mehr hinzufügen, das Limit ist erreicht! COM_STATS_USAGE = Benutze: amx_statscfg <Befehl> [Parameter] ... COM_STATS_COM = Befehl: COM_STATS_ON = ^ton <variable> - gibt spezielle Option frei COM_STATS_OFF = ^toff <variable> - sperrt spezielle Option COM_STATS_SAVE = ^tsave - speichert Statistik-Konfiguration -COM_STATS_LOAD = ^tload - laedt Statistik-Konfiguration +COM_STATS_LOAD = ^tload - lädt Statistik-Konfiguration COM_STATS_LIST = ^tlist [id] - Statistik-Status anzeigen -COM_STATS_ADD = ^tadd <name> <variable> - fuegt eine Statistik zur Liste hinzu +COM_STATS_ADD = ^tadd <name> <variable> - fügt eine Statistik zur Liste hinzu NO_STATS = Statistik-Plugin ist nicht^nauf diesem Server installiert^n SAVE_CONF = Konfiguration speichern -STATS_ENABLED = Stats enabled -STATS_DISABLED = Stats disabled -ST_MULTI_KILL = MultiKill -ST_MULTI_KILL_SOUND = MultiKill Sound +STATS_ENABLED = Stats aktiviert +STATS_DISABLED = Stats deaktiviert +ST_MULTI_KILL = Multikill +ST_MULTI_KILL_SOUND = Multikill Sound ST_BOMB_PLANTING = Bombe platzieren -ST_BOMB_DEFUSING = Bombe entschaerfen +ST_BOMB_DEFUSING = Bombe entschärfen ST_BOMB_PLANTED = Bombe platziert -ST_BOMB_DEF_SUCC = Bombe entschaerfen erf. -ST_BOMB_DEF_FAIL = Bombe entschaerfen fehl. +ST_BOMB_DEF_SUCC = Bombe entschärfen erf. +ST_BOMB_DEF_FAIL = Bombe entschärfen fehl. ST_BOMB_PICKUP = Bombe aufgenommen ST_BOMB_DROP = Bombe verloren -ST_BOMB_CD_VOICE = Bomben Countdown Stimme -ST_BOMB_CD_DEF = Bomben Countdown (entschaerfer) -ST_BOMB_SITE = Bomben Platz erreicht -ST_ITALY_BONUS = Italy extra Kill +ST_BOMB_CD_VOICE = Bombencountdown Stimme +ST_BOMB_CD_DEF = Bombencountdown (Entschärfer) +ST_BOMB_SITE = Bombenplatz erreicht +ST_ITALY_BONUS = Italy Bonuskill ST_LAST_MAN = Letzter Mann -ST_KNIFE_KILL = Messer Kill -ST_KNIFE_KILL_SOUND = Messer Kill Sound -ST_HE_KILL = Granaten Kill -ST_HE_SUICIDE = Granaten Selbstmord -ST_HS_KILL = Headshot Kill -ST_HS_KILL_SOUND = Headshot Kill Sound -ST_ROUND_CNT = Runden Zaehler -ST_ROUND_CNT_SOUND = Runden Zaehler Sound +ST_KNIFE_KILL = Messerkill +ST_KNIFE_KILL_SOUND = Messerkill Sound +ST_HE_KILL = Granatenkill +ST_HE_SUICIDE = Granatenselbstmord +ST_HS_KILL = Headshotkill +ST_HS_KILL_SOUND = Headshotkill Sound +ST_ROUND_CNT = Rundenzähler +ST_ROUND_CNT_SOUND = Rundenzähler Sound ST_KILL_STR = Kill Serie ST_KILL_STR_SOUND = Kill Serie Sound ST_ENEMY_REM = Gegner verbleibend -ST_DOUBLE_KILL = Doppel Kill -ST_DOUBLE_KILL_SOUND = Doppel Kill Sound -ST_PLAYER_NAME = Spieler Name +ST_DOUBLE_KILL = Doppelkill +ST_DOUBLE_KILL_SOUND = Doppelkill Sound +ST_PLAYER_NAME = Spielername ST_FIRST_BLOOD_SOUND = Erstes Blut Sound ST_SHOW_KILLER_CHAT = Zeige Killer HP&AP ST_SHOW_ATTACKERS = Zeige Angreifer -ST_SHOW_VICTIMS = Zeige Gegner +ST_SHOW_VICTIMS = Zeige Opfer ST_SHOW_KILLER = Zeige Killer ST_SHOW_TEAM_SCORE = Zeige Team Score ST_SHOW_TOTAL_STATS = Zeige totale Stats ST_SHOW_BEST_SCORE = Zeige besten Score -ST_SHOW_MOST_DISRUPTIVE = Zeige meisten Durchschlaege +ST_SHOW_MOST_DISRUPTIVE = Zeige meisten Durchschläge ST_SHOW_HUD_STATS_DEF = Standard HUD-Stats ST_SHOW_DIST_HS_HUD = Distanz&HS in HUD Liste ST_STATS_PLAYER_MAP_END = Stats am Ende der Map -ST_STATS_TOP15_MAP_END = Top15 am ende der Map +ST_STATS_TOP15_MAP_END = Top15 am Ende der Map ST_SAY_HP = Say /hp ST_SAY_STATSME = Say /statsme ST_SAY_RANKSTATS = Say /rankstats @@ -156,13 +156,13 @@ ST_SAY_TOP15 = Say /top15 ST_SAY_STATS = Say /stats ST_SPEC_RANK = Spec. Rang Info ST_BOMB_PLANTED_SOUND = Bombe platziert Sound -ST_BOMB_DEF_SUCC_SOUND = Bombe entschaerfen erf. Sound -ST_BOMB_DEF_FAIL_SOUND = Bombe entschaerfen fehl. Sound -ST_BOMB_CD_HUD = Bomben Countdown Hud +ST_BOMB_DEF_SUCC_SOUND = Bombe entschärfen erf. Sound +ST_BOMB_DEF_FAIL_SOUND = Bombe entschärfen fehl. Sound +ST_BOMB_CD_HUD = Bomben Countdown HUD ST_LAST_MAN_SOUND = Letzter Mann Sound -ST_LAST_MAN_HEALTH = Last Man Health -ST_HE_KILL_SOUND = Granaten Kill Sound -ST_HE_SUICIDE_SOUND = Granaten Selbstmord Sound +ST_LAST_MAN_HEALTH = Letzter Mann HP +ST_HE_KILL_SOUND = Granatenkill Sound +ST_HE_SUICIDE_SOUND = Granatenselbstmord Sound [sr] NO_OPTION = Nepostoji optcija(e) sa tom promenljivom (ime "%s") @@ -248,69 +248,69 @@ ST_HE_KILL_SOUND = Grenade Kill Sound ST_HE_SUICIDE_SOUND = Grenade Suicide Sound [tr] -NO_OPTION = O isimde aranan secenek(ler) bulunamadi (isim "%s") -STATS_CONF_SAVED = Statistik configi basari ile saklandi -STATS_CONF_FAILED = Statistik configi malesef saklanamadi!!! -STATS_CONF_LOADED = Statistik configi basari ile yuklendi -STATS_CONF_FAIL_LOAD = Statistik configi malesef yuklenemedi!!! -STATS_CONF = Statistik configi -STATS_ENTRIES_OF = Girisler %i - %i ve %i -STATS_USE_MORE = 'amx_statscfg list %i' i kullanin dahasini gormek icin -STATS_USE_BEGIN = 'amx_statscfg list 1' i kullanin baslatmak icin -CANT_ADD_STATS = Statistik saklanamiyor, sinir asildi! -COM_STATS_USAGE = Kullanim: amx_statscfg <emir> [parametre] ... -COM_STATS_COM = Emirler: -COM_STATS_ON = ^ton <variable> - Ozellikle secilen secenekleri baslat -COM_STATS_OFF = ^toff <variable> - Ozellikle secilen secenekleri durdur -COM_STATS_SAVE = ^tsave - Statistik configini sakla -COM_STATS_LOAD = ^tload - Statistik configini yukle -COM_STATS_LIST = ^tlist [id] - Statistik durumunu listele -COM_STATS_ADD = ^tadd <isim> <deger> - Listeye statistik ekleyin -NO_STATS = Statistik plugini^nserverde mevcud degildir^n -SAVE_CONF = Configleri sakla -STATS_ENABLED = Statistik kullanima acik -STATS_DISABLED = Statistik kullanima kapali -ST_MULTI_KILL = MultiKill -ST_MULTI_KILL_SOUND = MultiKillSound -ST_BOMB_PLANTING = Bomb Planting -ST_BOMB_DEFUSING = Bomb Defusing -ST_BOMB_PLANTED = Bomb Planted -ST_BOMB_DEF_SUCC = Bomb Defuse Succ. -ST_BOMB_DEF_FAIL = Bomb Def. Failure -ST_BOMB_PICKUP = Bomb PickUp -ST_BOMB_DROP = Bomb Drop -ST_BOMB_CD_VOICE = Bomb Countdown Voice -ST_BOMB_CD_DEF = Bomb Countdown (defuser) -ST_BOMB_SITE = Bomb Site Reached +NO_OPTION = O deger sahip ayar bulunamadi (isim "%s") +STATS_CONF_SAVED = Istatistik yapilandirmasi basariyla kaydedildi +STATS_CONF_FAILED = Istatistik yapilandirmasi kaydedilemedi!!! +STATS_CONF_LOADED = Istatistik yapilandirmasi basariyla yuklendi +STATS_CONF_FAIL_LOAD = Istatistik yapilandirma yuklenemedi!!! +STATS_CONF = Istatistik Yapilandirmasi +STATS_ENTRIES_OF = Girisler %i - %i / %i +STATS_USE_MORE = Daha fazlasi icin 'amx_statscfg list %i' kullan +STATS_USE_BEGIN = Baslamak icin 'amx_statscfg list 1' kullan +CANT_ADD_STATS = Listeye istatistik eklenemiyor, sinira ulasild! +COM_STATS_USAGE = Kullanim: amx_statscfg <komut> [parametre] ... +COM_STATS_COM = Komutlar: +COM_STATS_ON = ^ton <degisken> - belirli ayarlari etkinlestir +COM_STATS_OFF = ^toff <degisken> - belirli ayari devre disi birak +COM_STATS_SAVE = ^tsave - istatistik yapilandirmasini kaydet +COM_STATS_LOAD = ^tload - istatistik yapilandirmasini yukle +COM_STATS_LIST = ^tlist [id] - istatistiklerin durumunu listele +COM_STATS_ADD = ^tadd <isim> <deger> - listeye istatistik ekle +NO_STATS = Istatistik eklentileri^nbu serverde yuklenmemis^n +SAVE_CONF = Yapilandirmayi kaydet +STATS_ENABLED = Istatistikler etkin +STATS_DISABLED = Istatistikler devre disi +ST_MULTI_KILL = CokluKill +ST_MULTI_KILL_SOUND = CokluKillSesi +ST_BOMB_PLANTING = Bomba Yerlestirme +ST_BOMB_DEFUSING = Bomba Cozme +ST_BOMB_PLANTED = Bomba Yerlestirildi +ST_BOMB_DEF_SUCC = Bomba Imha Basarili +ST_BOMB_DEF_FAIL = Bomb Imha Basarisiz +ST_BOMB_PICKUP = Bomba Al +ST_BOMB_DROP = Bomba Birak +ST_BOMB_CD_VOICE = Bomba Gerisayim Sesi +ST_BOMB_CD_DEF = Bomba Gerisayim (imhaci) +ST_BOMB_SITE = Bomba Yeri Ulasildi ST_ITALY_BONUS = Italy Bonus Kill -ST_LAST_MAN = Last Man -ST_KNIFE_KILL = Knife Kill -ST_KNIFE_KILL_SOUND = Knife Kill Sound -ST_HE_KILL = Grenade Kill -ST_HE_SUICIDE = Grenade Suicide +ST_LAST_MAN = Son Adam +ST_KNIFE_KILL = Bicak Kill +ST_KNIFE_KILL_SOUND = Bicak Kill Sesi +ST_HE_KILL = Bomba Kill +ST_HE_SUICIDE = Bomba Intihar ST_HS_KILL = HeadShot Kill -ST_HS_KILL_SOUND = HeadShot Kill Sound -ST_ROUND_CNT = Round Counter -ST_ROUND_CNT_SOUND = Round Counter Sound +ST_HS_KILL_SOUND = HeadShot Kill Sesi +ST_ROUND_CNT = Raund Sayici +ST_ROUND_CNT_SOUND = Round Sayici Sesi ST_KILL_STR = Killing Streak -ST_KILL_STR_SOUND = Killing Streak Sound -ST_ENEMY_REM = Enemy Remaining -ST_DOUBLE_KILL = Double Kill -ST_DOUBLE_KILL_SOUND = Double Kill Sound -ST_PLAYER_NAME = Player Name -ST_FIRST_BLOOD_SOUND = First Blood Sound -ST_SHOW_KILLER_CHAT = Show Killer HP&AP -ST_SHOW_ATTACKERS = Show Attackers -ST_SHOW_VICTIMS = Show Victims -ST_SHOW_KILLER = Show Killer -ST_SHOW_TEAM_SCORE = Show Team Score -ST_SHOW_TOTAL_STATS = Show Total Stats -ST_SHOW_BEST_SCORE = Show Best Score -ST_SHOW_MOST_DISRUPTIVE = Show Most Disruptive -ST_SHOW_HUD_STATS_DEF = Show HUD-stats default -ST_SHOW_DIST_HS_HUD = Dist&HS in HUD lists -ST_STATS_PLAYER_MAP_END = Stats at the end of map -ST_STATS_TOP15_MAP_END = Top15 at the end of map +ST_KILL_STR_SOUND = Killing Streak Sesi +ST_ENEMY_REM = Kalan Dusmanlar +ST_DOUBLE_KILL = Cift Kill +ST_DOUBLE_KILL_SOUND = Cift Kill Sesi +ST_PLAYER_NAME = Oyuncu Ismi +ST_FIRST_BLOOD_SOUND = Ilk Kan Sesi +ST_SHOW_KILLER_CHAT = Oldurenin HP/AP'sini Goster +ST_SHOW_ATTACKERS = Saldiranlari Goster +ST_SHOW_VICTIMS = Kurbanlari Goster +ST_SHOW_KILLER = Oldurenleri Goster +ST_SHOW_TEAM_SCORE = Takim Skorunu Goster +ST_SHOW_TOTAL_STATS = Total Istatistikleri Goster +ST_SHOW_BEST_SCORE = En Iyi Skoru Goster +ST_SHOW_MOST_DISRUPTIVE = En Yikiciyi Goster +ST_SHOW_HUD_STATS_DEF = HUD-istatistiklerini default goster +ST_SHOW_DIST_HS_HUD = HUD listesindeki Dist&HS +ST_STATS_PLAYER_MAP_END = Haritanin sonundaki istatistikler +ST_STATS_TOP15_MAP_END = Haritanin sonundaki top15 ST_SAY_HP = Say /hp ST_SAY_STATSME = Say /statsme ST_SAY_RANKSTATS = Say /rankstats @@ -320,15 +320,15 @@ ST_SAY_REPORT = Say /report ST_SAY_SCORE = Say /score ST_SAY_TOP15 = Say /top15 ST_SAY_STATS = Say /stats -ST_SPEC_RANK = Spec. Rank Info -ST_BOMB_PLANTED_SOUND = Bomb Planted Sound -ST_BOMB_DEF_SUCC_SOUND = Bomb Defuse Succ. Sound -ST_BOMB_DEF_FAIL_SOUND = Bomb Def. Failure Sound -ST_BOMB_CD_HUD = Bomb Countdown Hud -ST_LAST_MAN_SOUND = Last Man Sound -ST_LAST_MAN_HEALTH = Last Man Health -ST_HE_KILL_SOUND = Grenade Kill Sound -ST_HE_SUICIDE_SOUND = Grenade Suicide Sound +ST_SPEC_RANK = Izleyici Rank Bilgisi +ST_BOMB_PLANTED_SOUND = Bomba Yerlestirildi Sesi +ST_BOMB_DEF_SUCC_SOUND = Bomba Imha Basarili Sesi +ST_BOMB_DEF_FAIL_SOUND = Bomb Imha Basarisiz Sesi +ST_BOMB_CD_HUD = Bomba Gerisayim Hudu +ST_LAST_MAN_SOUND = Son Adam Sesi +ST_LAST_MAN_HEALTH = Son Adam Sagligi +ST_HE_KILL_SOUND = El Bombasi Kill Sesi +ST_HE_SUICIDE_SOUND = El Bombasi Intihar Sesi [fr] NO_OPTION = Option(s) introuvable(s) avec cette variable (nom ^"%s^") @@ -1905,3 +1905,169 @@ ST_BOMB_CD_HUD = 显示回合计数 Hud信息 ST_LAST_MAN_SOUND = 最后一位玩家时的音效 ST_HE_KILL_SOUND = 高爆手雷击杀音效 ST_HE_SUICIDE_SOUND = 高爆手雷自杀音效 + +[al] +NO_OPTION = Nuk u gjetë mundësia me një ndryshore të tillë (emri "%s") +STATS_CONF_SAVED = Konfigurimi statistikave u ruajt me sukëses +STATS_CONF_FAILED = Dështoi ruajtja e konfigurimit të statistikave!!! +STATS_CONF_LOADED = Konfigurimi i statistikave u ngarkua me sukëses +STATS_CONF_FAIL_LOAD = Dështoi ngarkimi i konfigurimit të statistikave!!! +STATS_CONF = Konfigurimi Statistikave +STATS_ENTRIES_OF = Hyra %i - %i prej %i +STATS_USE_MORE = Shkruaj 'amx_statscfg list %i' për më shumë +STATS_USE_BEGIN = Shkruaj 'amx_statscfg list 1' për fillim +STATS_ENABLED = Statistikat u lëshuan +STATS_DISABLED = Statistikat u ndaluan +CANT_ADD_STATS = Nuk mund të shtoni statistika në këtë listë, limiti ka arritur! +COM_STATS_USAGE = Përdorimi: amx_statscfg <command> [parameters] ... +COM_STATS_COM = Komandat: +COM_STATS_ON = ^ton <variable> - aktivizo mundësin e specifikuar +COM_STATS_OFF = ^toff <variable> - ndalo mundësin e specifikuar +COM_STATS_SAVE = ^tsave - ruaj konfigurimet e statistikave +COM_STATS_LOAD = ^tload - ngarku konfigurimet e statistikave +COM_STATS_LIST = ^tlist [id] - statusi i listës +COM_STATS_ADD = ^tadd <name> <variable> - shto statistika në këtë listë +NO_STATS = Statistikat e plugin ^ninstaluar në këtë server^n +SAVE_CONF = Ruaj konfigurimet +ST_MULTI_KILL = MultiKill +ST_MULTI_KILL_SOUND = MultiKillSound +ST_BOMB_PLANTING = Bomba u aktivizua +ST_BOMB_DEFUSING = Bomba u q'aktivizua +ST_BOMB_PLANTED = Bomba u aktiviuza +ST_BOMB_DEF_SUCC = Q'aktivizimi bombës përfundoj me sukses. +ST_BOMB_DEF_FAIL = Q'aktivizimi bombës dështoi +ST_BOMB_PICKUP = Bomba u morrë +ST_BOMB_DROP = Humbi bomba +ST_BOMB_CD_VOICE = Numërimi bombës me zë +ST_BOMB_CD_DEF = Numërimi bombës (q'aktivizuar) +ST_BOMB_SITE = Arritja bombës +ST_ITALY_BONUS = Bonusi vrasjes në Italy +ST_LAST_MAN = Lojtari fundit +ST_KNIFE_KILL = Vrau me thikë +ST_KNIFE_KILL_SOUND = Zëri vrasjes me thikë +ST_HE_KILL = Vrasje me granatë +ST_HE_SUICIDE = Vetëvrasja me granatë +ST_HS_KILL = Vrasja në Kokë +ST_HS_KILL_SOUND = Zëri vrasjes në kokë +ST_ROUND_CNT = Rundi Kundërt +ST_ROUND_CNT_SOUND = Zëri rundit kundërt +ST_KILL_STR = Vrasja rresht +ST_KILL_STR_SOUND = Zëri vrasjes rresht +ST_ENEMY_REM = Mbetja Armikut +ST_DOUBLE_KILL = Vrasje Dyfishtë +ST_DOUBLE_KILL_SOUND = Zëri vrasjes dyfishtë +ST_PLAYER_NAME = Emri Lojtarit +ST_FIRST_BLOOD_SOUND = Zëri gjakut parë +ST_SHOW_KILLER_CHAT = Trego Vrasesin HP&AP +ST_SHOW_ATTACKERS = Trego Sulmuesin +ST_SHOW_VICTIMS = Trego Viktimën +ST_SHOW_KILLER = Trego Vrasësin +ST_SHOW_TEAM_SCORE = Trego Rezultatin Ekipit +ST_SHOW_TOTAL_STATS = Trego Totalin Statistikave +ST_SHOW_BEST_SCORE = Trego Rezultatin më të Mirë +ST_SHOW_MOST_DISRUPTIVE = Trego Shumicën Përqarëse +ST_SHOW_HUD_STATS_DEF = Trego HUD-statistikat përhershme +ST_SHOW_DIST_HS_HUD = Dist&HS ne HUD listë +ST_STATS_PLAYER_MAP_END = Statistikat në fund të hartës +ST_STATS_TOP15_MAP_END = Top15 në fund të hartës +ST_SAY_HP = Shkruaj /hp +ST_SAY_STATSME = Shkruaj /statsme +ST_SAY_RANKSTATS = Shkruaj /rankstats +ST_SAY_ME = Shkruaj /me +ST_SAY_RANK = Shkruaj /rank +ST_SAY_REPORT = Shkruaj /report +ST_SAY_SCORE = Shkruaj /score +ST_SAY_TOP15 = Shkruaj /top15 +ST_SAY_STATS = Shkruaj /stats +ST_SPEC_RANK = Ranku Shikuesve +ST_BOMB_PLANTED_SOUND = Zëri Aktivizimit Bombës +ST_BOMB_DEF_SUCC_SOUND = Zëri Q'aktivizimit Bombës me Sukses +ST_BOMB_DEF_FAIL_SOUND = Zëri Q'aktivizimit Bombës pa Sukses +ST_BOMB_CD_HUD = Numërimi Bombës HUD +ST_LAST_MAN_SOUND = Zëri Lojtarit Fundit +ST_LAST_MAN_HEALTH = Shëndeti Lojtarit Fundit +ST_HE_KILL_SOUND = Zëri Vrasjes Granatë +ST_HE_SUICIDE_SOUND = Zëri Vetëvrasjes Granatë + +[pt] +NO_OPTION = Não foi possível encontrar a(s) opção(ões) com essa variável (nome "%s") +STATS_CONF_SAVED = A configuração das estatísticas foi guardada com sucesso +STATS_CONF_FAILED = Falha ao guardar a configuração das estatísticas!!! +STATS_CONF_LOADED = A configuração das estatísticas foi carregada com sucesso +STATS_CONF_FAIL_LOAD = Falha ao carregar a configuração das estatísticas!!! +STATS_CONF = Configuração das Estatísticas +STATS_ENTRIES_OF = Entradas %i - %i de %i +STATS_USE_MORE = Usa 'amx_statscfg list %i' para mostrar mais +STATS_USE_BEGIN = Usa 'amx_statscfg list 1' para voltar ao início +STATS_ENABLED = Estatísticas ativadas +STATS_DISABLED = Estatísticas desativadas +CANT_ADD_STATS = Não é possível adicionar estatísticas á lista, o limite foi alcançado! +COM_STATS_USAGE = Uso: amx_statscfg <comando> [parâmetros] ... +COM_STATS_COM = Comandos: +COM_STATS_ON = ^ton <variável> - ativar uma opção específica +COM_STATS_OFF = ^toff <variável> - desativar uma opção específica +COM_STATS_SAVE = ^tsave - guardar configuração das estatísticas +COM_STATS_LOAD = ^tload - carregar configuração das estatísticas +COM_STATS_LIST = ^tlist [id] - listar status das estatísticas +COM_STATS_ADD = ^tadd <nome> <variável> - adicionar uma estatística á lista +NO_STATS = Os plugins de estatísticas não estão^ninstalados neste servidor^n +SAVE_CONF = Guardar configuração +ST_MULTI_KILL = MultiKill +ST_MULTI_KILL_SOUND = Som do MultiKill +ST_BOMB_PLANTING = Bomba a ser plantada +ST_BOMB_DEFUSING = Bomba a ser desarmada +ST_BOMB_PLANTED = Bomba plantada +ST_BOMB_DEF_SUCC = Bomba desarmada com sucesso +ST_BOMB_DEF_FAIL = Falha ao desarmar a bomba +ST_BOMB_PICKUP = Pegar a Bomba +ST_BOMB_DROP = Largar a Bomba +ST_BOMB_CD_VOICE = Voz da Contagem Regressiva da Bomba +ST_BOMB_CD_DEF = Contagem Regressiva da Bomba (desarme da bomba) +ST_BOMB_SITE = Chegada ao Local da Bomba +ST_ITALY_BONUS = Bónus de Matança no Italy +ST_LAST_MAN = Último Jogador Vivo +ST_KNIFE_KILL = Morte de Faca +ST_KNIFE_KILL_SOUND = Som da Morte de Faca +ST_HE_KILL = Morte com Granada +ST_HE_SUICIDE = Suicídio com Granada +ST_HS_KILL = Morte com Tiro na Cabeça +ST_HS_KILL_SOUND = Som da Morte com Tiro na Cabeça +ST_ROUND_CNT = Contagem de Rondas +ST_ROUND_CNT_SOUND = Som da Contagem de Rondas +ST_KILL_STR = Matança em Sequência +ST_KILL_STR_SOUND = Som de Matança em Sequência +ST_ENEMY_REM = Inimigos Restantes +ST_DOUBLE_KILL = Duas Mortes de Seguida +ST_DOUBLE_KILL_SOUND = Som de Duas Mortes de Seguida +ST_PLAYER_NAME = Nome do Jogador +ST_FIRST_BLOOD_SOUND = Som da Primeira Morte da Ronda +ST_SHOW_KILLER_CHAT = Mostrar a Vida e Colete do Assassino +ST_SHOW_ATTACKERS = Mostrar Atacantes +ST_SHOW_VICTIMS = Mostrar Vítimas +ST_SHOW_KILLER = Mostrar Assassino +ST_SHOW_TEAM_SCORE = Mostrar a Pontuação das Equipas +ST_SHOW_TOTAL_STATS = Mostrar Estatísticas Totais +ST_SHOW_BEST_SCORE = Mostrar a Melhor Pontuação +ST_SHOW_MOST_DISRUPTIVE = Mostrar o Mais Perturbador +ST_SHOW_HUD_STATS_DEF = Mostrar Estatísticas de HUD +ST_SHOW_DIST_HS_HUD = Distância&Tiro na Cabeça em Listas de HUD +ST_STATS_PLAYER_MAP_END = Estatísticas no fim do mapa +ST_STATS_TOP15_MAP_END = Top15 no fim do mapa +ST_SAY_HP = Escrever /hp +ST_SAY_STATSME = Escrever /statsme +ST_SAY_RANKSTATS = Escrever /rankstats +ST_SAY_ME = Escrever /me +ST_SAY_RANK = Escrever /rank +ST_SAY_REPORT = Escrever /report +ST_SAY_SCORE = Escrever /score +ST_SAY_TOP15 = Escrever /top15 +ST_SAY_STATS = Escrever /stats +ST_SPEC_RANK = Informação do Rank em Espectador +ST_BOMB_PLANTED_SOUND = Som da Bomba Plantada +ST_BOMB_DEF_SUCC_SOUND = Som da Bomba Desarmada com Sucesso +ST_BOMB_DEF_FAIL_SOUND = Som da Falha ao Desarmar a Bomba +ST_BOMB_CD_HUD = HUD da Contagem Regressiva da Bomba +ST_LAST_MAN_SOUND = Som do Último Jogador Vivo +ST_LAST_MAN_HEALTH = Vida do Último Jogador Vivo +ST_HE_KILL_SOUND = Som de Morte com Granada +ST_HE_SUICIDE_SOUND = Som do Suicídio com Granada diff --git a/plugins/lang/statsx.txt b/plugins/lang/statsx.txt index f41a28cf05..836a8a797a 100755 --- a/plugins/lang/statsx.txt +++ b/plugins/lang/statsx.txt @@ -50,9 +50,9 @@ X_RANK_IS = %s's rank is %d of %d DISABLED_MSG = Server has disabled that option [de] -WHOLEBODY = Koerper +WHOLEBODY = Körper HEAD = Kopf -CHEST = Oberkoerper +CHEST = Oberkörper STOMACH = Bauch LEFTARM = linker Arm RIGHTARM = rechter Arm @@ -63,26 +63,26 @@ ATTACKERS = Angreifer ACC = Genauigkeit HIT_S = Treffer DMG = Schaden -VICTIMS = Sieger +VICTIMS = Opfer MOST_DMG = Am meisten verursachter Schaden durch -KILLED_YOU_DIST = %s hat dich getoetet ^naus einer Entfernung von %0.2f Metern. -DID_DMG_HITS = Er verursachte %d Schaden bei dir mit %d Treffern^nund hat noch %dhp und %dap. -YOU_DID_DMG = Du hast %d Schaden bei ihm angerichtet mit %d Treffern. +KILLED_YOU_DIST = %s hat dich mit einer %s ^naus %0.2f Metern Entfernung gekillt. +DID_DMG_HITS = Er verursachte %d Schaden bei dir mit %d Treffer(n)^nund hat noch %dhp und %dap. +YOU_DID_DMG = Du hast bei ihm %d Schaden mit %d Treffer(n) angerichtet. EFF = Effizienz BEST_SCORE = Die meisten Punkte KILL_S = Kill(s) TOTAL = Total -SHOT_S = Schuesse -HITS_YOU_IN = %s Treffer bei ihm -KILLED_BY_WITH = Getoetet von %s mit %s @ %0.0fm +SHOT_S = Schüsse +HITS_YOU_IN = %s traf dich in: +KILLED_BY_WITH = Gekillt von %s mit %s @ %0.0fm NO_HITS = keine Treffer -YOU_NO_KILLER = Du hast niemanden getoetet... +YOU_NO_KILLER = Du hast niemanden gekillt... YOU_HIT = Deine Treffer: %s %d mal, %d Schaden LAST_RES = Letztes Ergebnis: %d Treffer, %d Schaden KILLS = Kills DEATHS = Deaths HITS = Treffer -SHOTS = Schuesse +SHOTS = Schüsse YOUR = Dein PLAYERS = Spieler RANK_IS = Platzierung: %d von %d @@ -91,14 +91,14 @@ WEAPON = Waffe YOUR_RANK_IS = Deine Platzierung: %d von %d mit %d Kill(s), %d Treffer, %0.2f%% eff. und %0.2f%% acc. AMMO = Munition HEALTH = Gesundheit -ARMOR = Ruestung +ARMOR = Rüstung GAME_SCORE = Punkte STATS_ANNOUNCE = Du hast %s Statistik-Meldungen -ENABLED = eingeschaltet -DISABLED = ausgeschaltet +ENABLED = aktiviert +DISABLED = deaktiviert SERVER_STATS = Serverstatistik X_RANK_IS = %s's Platzierung: %d von %d -DISABLED_MSG = Der Server hat diese Option ausgeschaltet. +DISABLED_MSG = Der Server hat diese Option deaktiviert. [sr] WHOLEBODY = celo telo @@ -152,55 +152,55 @@ X_RANK_IS = %s rank je %d od %d DISABLED_MSG = Server je iskljucio tu opciju [tr] -WHOLEBODY = Vucut +WHOLEBODY = Tum vucut HEAD = Kafa -CHEST = Dos -STOMACH = Migde -LEFTARM = Sol-kol -RIGHTARM = Sag-kol -LEFTLEG = Sol-bacak -RIGHTLEG = Sag-bacak -MODE_SET_TO = "amx_statsx_mode" bu ayari tasiyor "%s" -ATTACKERS = Saldiran(lar) +CHEST = Gogus +STOMACH = Karin +LEFTARM = Sol kol +RIGHTARM = Sag kol +LEFTLEG = Sol bacak +RIGHTLEG = Sag bacak +MODE_SET_TO = "amx_statsx_mode" "%s" olarak ayarlandi +ATTACKERS = Saldiranlar ACC = isabet. -HIT_S = vurus -DMG = zarar -VICTIMS = Magdur(lar) +HIT_S = isabet +DMG = hasar +VICTIMS = Kurbanlar MOST_DMG = En fazla zarar veren -KILLED_YOU_DIST = %s Sizi %s^n silah ile vurdu %0.2f metre mesafesinden. -DID_DMG_HITS = Size verdigi zarar %d silah ile %d ^nve halen %dhp kendi gucu ve %dap celigi var. -YOU_DID_DMG = Sizin verdiginiz zarar %d kullandiginiz silah %d. +KILLED_YOU_DIST = %s seni %s ile^n%0.2f metre uzakliktan oldurdu +DID_DMG_HITS = O sana %d hasar verdi %d isabetle^nve hala %d hp ve %d ap'si var +YOU_DID_DMG = Ona %d hasar verdin %d isabetle. EFF = efektif -BEST_SCORE = En iyi puan -KILL_S = oldurulen(ler) -TOTAL = Tam -SHOT_S = vurus(lar) -HITS_YOU_IN = %s isabet ile sizi vurdu -KILLED_BY_WITH = Sizi olduren %s kullandigi %s @ %0.0fm -NO_HITS = isabetsiz atis -YOU_NO_KILLER = Sizi olduren yok... -YOU_HIT = %s vurdunuz %d kez, %d zarar -LAST_RES = Son sonuc: %d vurus, %d zarar -KILLS = oldurdugunuz -DEATHS = kendi oldugunuz -HITS = vurdugunuz -SHOTS = kursun(lar) -YOUR = Sizin +BEST_SCORE = En iyi skor +KILL_S = kill +TOTAL = Total +SHOT_S = atis +HITS_YOU_IN = %s seni surandan vurdu +KILLED_BY_WITH = %s tarafindan %s @ %0.0fm ile olduruldun +NO_HITS = isabet yok +YOU_NO_KILLER = Seni olduren yok... +YOU_HIT = %s kisisini %d kez vurdun, %d hasar +LAST_RES = Son sonuct: %d isabet, %d hasar +KILLS = Kill +DEATHS = Olum +HITS = Isabet +SHOTS = Atis +YOUR = Senin PLAYERS = Oyuncular -RANK_IS = Statistik %d ve %d -DAMAGE = Zarar +RANK_IS = Istatistik %d/%d +DAMAGE = Hasar WEAPON = Silah -YOUR_RANK_IS = Sizin statistik %d ve %d kullanim %d oldurulen, %d vuruslar, %0.2f%% eff. ve %0.2f%% isabet -AMMO = kursun +YOUR_RANK_IS = Siralaman %d/%d, %d kill ile, %d isabet, %0.2f%% eff. ve %0.2f%% acc. +AMMO = cephane HEALTH = saglik -ARMOR = celik -GAME_SCORE = Oyun scoru -STATS_ANNOUNCE = sizin %s statistik konulariniz -ENABLED = kullanimda -DISABLED = kullanilmiyor -SERVER_STATS = Serverin statistigi -X_RANK_IS = %s'in statistik %d ve %d -DISABLED_MSG = Server o secenegi kullanmiyor +ARMOR = zirh +GAME_SCORE = Oyun skoru +STATS_ANNOUNCE = %s istatistik anonsun var +ENABLED = etkin +DISABLED = devre disi +SERVER_STATS = Server Istatistikleri +X_RANK_IS = %s kisisinin siralamasi %d/%d +DISABLED_MSG = Server o ayari devre disi birakti [fr] WHOLEBODY = le corps entier @@ -785,7 +785,7 @@ YOU_DID_DMG = Te %d sebeztél rajta %d találattal. EFF = Hatékonyság BEST_SCORE = Legjobb pont KILL_S = Ölés -TOTAL = Totál +TOTAL = Teljes SHOT_S = Lövések HITS_YOU_IN = %s eltalált téged KILLED_BY_WITH = Megölt %s, %s-el %0.0fméterről @@ -811,7 +811,7 @@ STATS_ANNOUNCE = Statisztika bejelentések %s ENABLED = engedélyezve DISABLED = letiltva SERVER_STATS = Szerver státusz -X_RANK_IS = %s helyezése %d a %d-ból +X_RANK_IS = %s helyezése %d a(z) %d játékosból. DISABLED_MSG = A szerver letiltotta ezt az opciót [lt] @@ -1170,3 +1170,105 @@ DISABLED = 关闭 SERVER_STATS = 服务器统计 X_RANK_IS = %s 的排名是第 %d 位,共有 %d 个玩家 DISABLED_MSG = 服务器关闭了这个选项 + +[al] +WHOLEBODY = gjithë trupin +HEAD = kokë +CHEST = gjoksë +STOMACH = bark +LEFTARM = krahun majtë +RIGHTARM = krahun djathtë +LEFTLEG = këmba majtë +RIGHTLEG = këmba djathtë +MODE_SET_TO = "amx_statsx_mode" vendose në "%s" +ATTACKERS = Sulmuesit +ACC = acc. +HIT_S = goditje(s) +DMG = dëmtime +VICTIMS = Viktimat +MOST_DMG = Më së shumti dëmtime u bënë nga +KILLED_YOU_DIST = %s të vrau ty me %s^nprej distancës %0.2f metra. +DID_DMG_HITS = Ai bëri %d dëmtime tek ju me %d goditje(s)^nedhe ka %dhp dhe %dap. +YOU_DID_DMG = Ju shkaktuat %d dëmtime tek ai me %d goditje(s). +EFF = eff. +BEST_SCORE = Rezultati më i mirë +KILL_S = vrasje(s) +TOTAL = Totali +SHOT_S = shtëna(s) +HITS_YOU_IN = %s goditi juve në +KILLED_BY_WITH = U vra nga %s me %s @ %0.0fm +NO_HITS = ska goditje +YOU_NO_KILLER = Ju nuk keni vrarë... +YOU_HIT = Ju goditët %s %d kohe(s), %d dëmtime +LAST_RES = Rezultati fundit: %d goditje(s), %d dëmtime +KILLS = Vrasjet +DEATHS = Vdekjet +HITS = Goditjet +SHOTS = Shtënat +YOUR = Ju +PLAYERS = Lojtarët +RANK_IS = rank është %d prej %d +DAMAGE = Dëmtime +WEAPON = Armë +YOUR_RANK_IS = Ranku juaj është %d prej %d me %d vrasje(s), %d goditje(s), %0.2f%% eff. dhe %0.2f%% acc. +AMMO = monucion +HEALTH = shëndet +ARMOR = mburojë +GAME_SCORE = Rezultati Lojës +STATS_ANNOUNCE = Ju keni %s shpallje të statistikave +ENABLED = lësho +DISABLED = ndalo +SERVER_STATS = Statistikat Serverit +X_RANK_IS = %s's është në rank %d prej %d +DISABLED_MSG = Serveri e ka të ndaluar këtë zgjedhje + +[pt] +WHOLEBODY = todo o corpo +HEAD = cabeça +CHEST = peito +STOMACH = estômago +LEFTARM = braço esquerdo +RIGHTARM = braço direito +LEFTLEG = perna esquerda +RIGHTLEG = perna direita +MODE_SET_TO = "amx_statsx_mode" definida para "%s" +ATTACKERS = Atacantes +ACC = precisão +HIT_S = acerto(s) +DMG = dano +VICTIMS = Vítimas +MOST_DMG = Maior parte do dano causado por +KILLED_YOU_DIST = %s matou-te com %s^nde uma distância de %0.2f metros. +DID_DMG_HITS = Ele causou %d de dano a ti com %d acerto(s)^ne ainda tem %d de vida e %d de colete. +YOU_DID_DMG = Tu causaste %d de dano a ele com %d acerto(s). +EFF = eficiência +BEST_SCORE = Melhor pontuação +KILL_S = morte(s) +TOTAL = Total +SHOT_S = tiro(s) +HITS_YOU_IN = %s acertou-te em +KILLED_BY_WITH = Morto por %s com %s @ %0.0fm +NO_HITS = sem acertos +YOU_NO_KILLER = Tu não tens nenhum atacante... +YOU_HIT = Tu acertaste %s %d vez(es), %d de dano +LAST_RES = Último resultado: %d tiro(s), %d de dano +KILLS = Matanças +DEATHS = Mortes +HITS = Acertos +SHOTS = Tiros +YOUR = O teu +PLAYERS = Jogadores +RANK_IS = rank é %d de %d +DAMAGE = Dano +WEAPON = Arma +YOUR_RANK_IS = O teu rank é %d de %d com %d matança(s), %d tiro(s), %0.2f%% de eficiência e %0.2f%% de precisão +AMMO = munição +HEALTH = vida +ARMOR = colete +GAME_SCORE = Pontuação do jogo +STATS_ANNOUNCE = Tu %s os anúncios de estatísticas +ENABLED = ativaste +DISABLED = desativaste +SERVER_STATS = Estatísticas do servidor +X_RANK_IS = O rank de %s é %d de %d +DISABLED_MSG = O servidor desativou essa opção diff --git a/plugins/lang/telemenu.txt b/plugins/lang/telemenu.txt index f1aed2e45f..252866cbdb 100755 --- a/plugins/lang/telemenu.txt +++ b/plugins/lang/telemenu.txt @@ -8,7 +8,7 @@ SAVE_LOC = Save Location [de] ADMIN_TELEPORT_1 = ADMIN: teleportiert %s ADMIN_TELEPORT_2 = ADMIN %s: teleportiert %s -TELE_MENU = Menu > Teleport +TELE_MENU = Menü > Teleport CUR_LOC = Momentane Position SAVE_LOC = Position speichern @@ -20,11 +20,11 @@ CUR_LOC = Sadasnja Lokacija SAVE_LOC = Sacuvaj Lokaciju [tr] -ADMIN_TELEPORT_1 = ADMIN: teleportladi %s -ADMIN_TELEPORT_2 = ADMIN %s: teleportladi %s -TELE_MENU = Teleport Menusu -CUR_LOC = Oldugu su anki yer -SAVE_LOC = Oldugu yeri saklayin +ADMIN_TELEPORT_1 = ADMIN, %s kisisini teleportladi +ADMIN_TELEPORT_2 = ADMIN %s, %s kisisini teleportladi +TELE_MENU = Teleport Menu +CUR_LOC = Suanki Konum +SAVE_LOC = Konumu Kaydet [fr] ADMIN_TELEPORT_1 = ADMIN: teleporte %s @@ -158,3 +158,17 @@ ADMIN_TELEPORT_2 = 管理员 %s: 传送 %s TELE_MENU = 传送菜单 CUR_LOC = 当前位置 SAVE_LOC = 存储位置 + +[al] +ADMIN_TELEPORT_1 = ADMIN: transferoj %s +ADMIN_TELEPORT_2 = ADMIN %s: transferoj %s +TELE_MENU = Lista Transferimit +CUR_LOC = Vendi Tanishëm +SAVE_LOC = Ruaj Vendin + +[pt] +ADMIN_TELEPORT_1 = ADMIN: teleportou %s +ADMIN_TELEPORT_2 = ADMIN %s: teleportou %s +TELE_MENU = Menu de Teleporte +CUR_LOC = Localização Atual +SAVE_LOC = Guardar Localização diff --git a/plugins/lang/time.txt b/plugins/lang/time.txt index 7a502bfe1e..10909c8c36 100644 --- a/plugins/lang/time.txt +++ b/plugins/lang/time.txt @@ -74,12 +74,12 @@ TIME_ELEMENT_SECONDS = saniye TIME_ELEMENT_MINUTE = dakika TIME_ELEMENT_MINUTES = dakika TIME_ELEMENT_HOUR = saat -TIME_ELEMENT_HOURS = saater +TIME_ELEMENT_HOURS = saat TIME_ELEMENT_DAY = gun -TIME_ELEMENT_DAYS = gunler +TIME_ELEMENT_DAYS = gun TIME_ELEMENT_WEEK = hafta -TIME_ELEMENT_WEEKS = haftalar -TIME_ELEMENT_PERMANENTLY = surekli +TIME_ELEMENT_WEEKS = haftal +TIME_ELEMENT_PERMANENTLY = sinirsiz TIME_ELEMENT_AND = ve [es] @@ -305,3 +305,36 @@ TIME_ELEMENT_WEEK = 周 TIME_ELEMENT_WEEKS = 周 TIME_ELEMENT_PERMANENTLY = 永久 TIME_ELEMENT_AND = 与 + +[al] +TIME_ELEMENT_SECOND = sekond +TIME_ELEMENT_SECONDS = sekonda +TIME_ELEMENT_MINUTE = minut +TIME_ELEMENT_MINUTES = minuta +TIME_ELEMENT_HOUR = orë +TIME_ELEMENT_HOURS = orë +TIME_ELEMENT_DAY = ditë +TIME_ELEMENT_DAYS = ditë +TIME_ELEMENT_WEEK = javë +TIME_ELEMENT_WEEKS = javë +TIME_ELEMENT_PERMANENTLY = përgjithëmon +TIME_ELEMENT_AND = dhe +TIME_ELEMENT_DAYS = ditë +TIME_ELEMENT_WEEK = javë +TIME_ELEMENT_WEEKS = javë +TIME_ELEMENT_PERMANENTLY = pergjithmonë +TIME_ELEMENT_AND = dhe + +[pt] +TIME_ELEMENT_SECOND = segundo +TIME_ELEMENT_SECONDS = segundos +TIME_ELEMENT_MINUTE = minuto +TIME_ELEMENT_MINUTES = minutos +TIME_ELEMENT_HOUR = hora +TIME_ELEMENT_HOURS = horas +TIME_ELEMENT_DAY = dia +TIME_ELEMENT_DAYS = dias +TIME_ELEMENT_WEEK = semana +TIME_ELEMENT_WEEKS = semanas +TIME_ELEMENT_PERMANENTLY = permanentemente +TIME_ELEMENT_AND = e diff --git a/plugins/lang/timeleft.txt b/plugins/lang/timeleft.txt index 4ddf524ddd..760b578d8c 100755 --- a/plugins/lang/timeleft.txt +++ b/plugins/lang/timeleft.txt @@ -9,7 +9,7 @@ SECONDS = seconds [de] THE_TIME = Es ist -TIME_LEFT = Zeit uebrig +TIME_LEFT = Zeit übrig NO_T_LIMIT = Kein Zeitlimit MINUTE = Minute MINUTES = Minuten @@ -27,12 +27,12 @@ SECONDS = sekundi [tr] THE_TIME = Saat -TIME_LEFT = Kalan zaman -NO_T_LIMIT = Suresiz zaman +TIME_LEFT = Kalan Zaman +NO_T_LIMIT = Zaman Limiti Yok MINUTE = dakika -MINUTES = dakikalar +MINUTES = dakikal SECOND = saniye -SECONDS = saniyeler +SECONDS = saniye [fr] THE_TIME = Il est @@ -204,3 +204,21 @@ MINUTE = 分钟 MINUTES = 分钟 SECOND = 秒 SECONDS = 秒 + +[al] +THE_TIME = Ora +TIME_LEFT = Koha Mbetur +NO_T_LIMIT = Koha Pakufizuar +MINUTE = minut +MINUTES = minuta +SECOND = sekond +SECONDS = sekonda + +[pt] +THE_TIME = Hora +TIME_LEFT = Tempo Restante +NO_T_LIMIT = Sem Limite de Tempo +MINUTE = minuto +MINUTES = minutos +SECOND = segundo +SECONDS = segundos diff --git a/plugins/pluginmenu.sma b/plugins/pluginmenu.sma index 0bf1ec78e7..2d7e2aebf2 100644 --- a/plugins/pluginmenu.sma +++ b/plugins/pluginmenu.sma @@ -151,6 +151,9 @@ stock DisplayPluginMenu(id,const MenuText[], const Handler[], const Command[], c } } + menu_setprop(Menu,MPROP_BACKNAME,fmt("%L", id, "BACK")); + menu_setprop(Menu,MPROP_NEXTNAME,fmt("%L", id, "MORE")); + menu_setprop(Menu,MPROP_EXITNAME,fmt("%L", id, "EXIT")); menu_setprop(Menu,MPROP_NUMBER_COLOR,"\y"); menu_setprop(Menu,MPROP_EXIT,MEXIT_ALL); menu_display(id,Menu,0); @@ -468,7 +471,7 @@ public CvarMenuSelection(id, menu, item) if (ExplicitPlugin[id]==-1) { - DisplayPluginMenuDefault(id); + DisplayPluginMenu(id,"Plugin Cvar Menu:", "PluginMenuSelection","DisplayCvarMenu","GetNumberOfCvarsForPlid"); } } else if (item==MENU_BACK) @@ -564,6 +567,9 @@ public DisplayCvarMenu(id, plid, page) } } + menu_setprop(Menu,MPROP_BACKNAME,fmt("%L", id, "BACK")); + menu_setprop(Menu,MPROP_NEXTNAME,fmt("%L", id, "MORE")); + menu_setprop(Menu,MPROP_EXITNAME,fmt("%L", id, "EXIT")); menu_setprop(Menu,MPROP_EXIT,MEXIT_ALL); menu_setprop(Menu,MPROP_NUMBER_COLOR,"\y"); menu_display(id,Menu,page); @@ -790,7 +796,7 @@ public CommandMenuSelection(id, menu, item) if (ExplicitPlugin[id]==-1) { - client_cmd(id,"amx_plugincmdmenu"); + DisplayPluginMenu(id,"Plugin Command Menu:", "PluginMenuSelection","DisplayCmdMenu","GetNumberOfCmdsForPlid"); } } else if (item==MENU_BACK) @@ -882,6 +888,10 @@ public DisplayCmdMenu(id, plid, page) } } } + + menu_setprop(Menu,MPROP_BACKNAME,fmt("%L", id, "BACK")); + menu_setprop(Menu,MPROP_NEXTNAME,fmt("%L", id, "MORE")); + menu_setprop(Menu,MPROP_EXITNAME,fmt("%L", id, "EXIT")); menu_setprop(Menu,MPROP_NUMBER_COLOR,"\y"); menu_display(id,Menu,page); @@ -914,7 +924,7 @@ public CommandMenuCommand(id, level, cid) { // We need to display a list of the plugins, instead of a specific plugin. ExplicitPlugin[id]=-1; - DisplayPluginMenuDefault(id); + DisplayPluginMenu(id,"Plugin Command Menu:", "PluginMenuSelection","DisplayCmdMenu","GetNumberOfCmdsForPlid"); } else { @@ -925,8 +935,3 @@ public CommandMenuCommand(id, level, cid) } return PLUGIN_HANDLED; } - -DisplayPluginMenuDefault(id) -{ - DisplayPluginMenu(id,"Plugin Command Menu:", "PluginMenuSelection","DisplayCmdMenu","GetNumberOfCmdsForPlid"); -} diff --git a/plugins/tfc/stats.sma b/plugins/tfc/stats.sma index cfbb3cf3f4..a4bc0a7734 100755 --- a/plugins/tfc/stats.sma +++ b/plugins/tfc/stats.sma @@ -469,7 +469,7 @@ public client_putinserver(id) public client_damage(attacker,victim,damage,wpnindex,hitplace,TA){ if ( BulletDamage ) { - if ( attacker==victim || xmod_is_melee_wpn(wpnindex) ) return PLUGIN_CONTINUE + if ( attacker==victim || !wpnindex || xmod_is_melee_wpn(wpnindex) ) return PLUGIN_CONTINUE set_hudmessage(0, 100, 200, 0.45, 0.85, 2, 0.1, 4.0, 0.02, 0.02, -1) ShowSyncHudMsg(attacker,g_damage_sync,"%i",damage) set_hudmessage(200, 0, 0, 0.55, 0.85, 2, 0.1, 4.0, 0.02, 0.02, -1) @@ -575,7 +575,7 @@ public client_death(killer,victim,wpnindex,hitplace,TK){ set_task( 4.0 + float( param[1] ) ,"checkKills",0,param,sizeof(param)) } - if ( xmod_is_melee_wpn(wpnindex) && ( KnifeKill || KnifeKillSound ) ){ + if ( ( KnifeKill || KnifeKillSound ) && wpnindex && xmod_is_melee_wpn(wpnindex) ){ if ( KnifeKill ){ set_hudmessage(255, 100, 100, -1.0, 0.15, 1, 6.0, 6.0, 0.5, 0.15, -1) for (new i=1;i<=MaxClients;i++){ @@ -598,7 +598,7 @@ public client_death(killer,victim,wpnindex,hitplace,TK){ } } - if ( headshot && (HeadShotKill || HeadShotKillSound) && !xmod_is_melee_wpn(wpnindex) ){ + if ( headshot && (HeadShotKill || HeadShotKillSound) && wpnindex && !xmod_is_melee_wpn(wpnindex) ){ if ( HeadShotKill ){ new weapon[32], message[256] xmod_get_wpnname(wpnindex,weapon,charsmax(weapon)) diff --git a/product.version b/product.version index b57588e592..f8e233b273 100644 --- a/product.version +++ b/product.version @@ -1 +1 @@ -1.9.0-dev +1.9.0 diff --git a/public/resdk/engine/rehlds_api.h b/public/resdk/engine/rehlds_api.h index 63348948e5..3a5c318d92 100644 --- a/public/resdk/engine/rehlds_api.h +++ b/public/resdk/engine/rehlds_api.h @@ -45,7 +45,7 @@ #include "../common/hookchains.h" #define REHLDS_API_VERSION_MAJOR 3 -#define REHLDS_API_VERSION_MINOR 4 +#define REHLDS_API_VERSION_MINOR 6 //Steam_NotifyClientConnect hook typedef IHookChain<qboolean, IGameClient*, const void*, unsigned int> IRehldsHook_Steam_NotifyClientConnect; @@ -203,6 +203,10 @@ typedef IHookChainRegistry<bool, edict_t *, IGameClient *, int, const char*, flo typedef IHookChain<edict_t *, const char *> IRehldsHook_CreateFakeClient; typedef IHookChainRegistry<edict_t *, const char *> IRehldsHookRegistry_CreateFakeClient; +//SV_CheckConnectionLessRateLimits +typedef IHookChain<bool, netadr_t &, const uint8_t *, int> IRehldsHook_SV_CheckConnectionLessRateLimits; +typedef IHookChainRegistry<bool, netadr_t &, const uint8_t *, int> IRehldsHookRegistry_SV_CheckConnectionLessRateLimits; + class IRehldsHookchains { public: virtual ~IRehldsHookchains() { } @@ -246,6 +250,7 @@ class IRehldsHookchains { virtual IRehldsHookRegistry_SV_CreatePacketEntities* SV_CreatePacketEntities() = 0; virtual IRehldsHookRegistry_SV_EmitSound2* SV_EmitSound2() = 0; virtual IRehldsHookRegistry_CreateFakeClient* CreateFakeClient() = 0; + virtual IRehldsHookRegistry_SV_CheckConnectionLessRateLimits* SV_CheckConnectionLessRateLimits() = 0; }; struct RehldsFuncs_t { @@ -304,6 +309,55 @@ struct RehldsFuncs_t { void(*RemoveExtDll)(void *hModule); void(*RemoveCvarListener)(const char *var_name, cvar_callback_t func); ENTITYINIT(*GetEntityInit)(char *pszClassName); + + // Read functions + int(*MSG_ReadChar)(); + int(*MSG_ReadByte)(); + int(*MSG_ReadLong)(); + float(*MSG_ReadFloat)(); + char*(*MSG_ReadString)(); + char*(*MSG_ReadStringLine)(); + float(*MSG_ReadAngle)(); + float(*MSG_ReadHiresAngle)(); + void(*MSG_ReadUsercmd)(usercmd_t *to, usercmd_t *from); + float(*MSG_ReadCoord)(); + void(*MSG_ReadVec3Coord)(sizebuf_t *sb, vec3_t fa); + + // Read bit functions + bool(*MSG_IsBitReading)(); + void(*MSG_StartBitReading)(sizebuf_t *buf); + void(*MSG_EndBitReading)(sizebuf_t *buf); + uint32(*MSG_PeekBits)(int numbits); + int(*MSG_ReadOneBit)(); + uint32(*MSG_ReadBits)(int numbits); + int(*MSG_ReadSBits)(int numbits); + float(*MSG_ReadBitCoord)(); + void(*MSG_ReadBitVec3Coord)(vec_t *fa); + float(*MSG_ReadBitAngle)(int numbits); + int(*MSG_ReadBitData)(void *dest, int length); + char*(*MSG_ReadBitString)(); + int(*MSG_CurrentBit)(); + + // Write functions + void(*MSG_WriteLong)(sizebuf_t *sb, int c); + void(*MSG_WriteFloat)(sizebuf_t *sb, float f); + void(*MSG_WriteAngle)(sizebuf_t *sb, float f); + void(*MSG_WriteHiresAngle)(sizebuf_t *sb, float f); + void(*MSG_WriteUsercmd)(sizebuf_t *sb, usercmd_t *to, usercmd_t *from); + void(*MSG_WriteCoord)(sizebuf_t *sb, float f); + void(*MSG_WriteVec3Coord)(sizebuf_t *sb, const vec3_t fa); + + // Write bit functions + bool(*MSG_IsBitWriting)(); + void(*MSG_WriteOneBit)(int nValue); + void(*MSG_WriteSBits)(uint32 data, int numbits); + void(*MSG_WriteBitCoord)(float f); + void(*MSG_WriteBitAngle)(float fAngle, int numbits); + void(*MSG_WriteBitData)(void *src, int length); + void(*MSG_WriteBitString)(const char *p); + void(*SZ_Write)(sizebuf_t *buf, const void *data, int length); + void(*SZ_Print)(sizebuf_t *buf, const char *data); + void(*SZ_Clear)(sizebuf_t *buf); }; class IRehldsApi { diff --git a/support/buildbot/bootstrap.pl b/support/buildbot/bootstrap.pl index 37273792f0..d3f136da17 100755 --- a/support/buildbot/bootstrap.pl +++ b/support/buildbot/bootstrap.pl @@ -9,6 +9,8 @@ my ($myself, $path) = fileparse($0); chdir($path); +use FindBin; +use lib $FindBin::Bin; require 'helpers.pm'; #Go back above build dir @@ -29,12 +31,12 @@ print "Attempting to reconfigure...\n"; my $conf_args = '--enable-optimize --no-color --symbol-files'; if ($argn > 0 && $^O !~ /MSWin/) { - $result = `CC=$ARGV[0] CXX=$ARGV[0] python ../build/configure.py $conf_args`; + $result = `CC=$ARGV[0] CXX=$ARGV[0] python3 ../build/configure.py $conf_args`; } else { if ($^O =~ /MSWin/) { - $result = `C:\\Python27\\Python.exe ..\\build\\configure.py $conf_args`; + $result = `C:\\Python38\\Python.exe ..\\build\\configure.py $conf_args`; } else { - $result = `CC=clang CXX=clang python ../build/configure.py $conf_args`; + $result = `CC=clang CXX=clang python3 ../build/configure.py $conf_args`; } } print "$result\n"; diff --git a/support/buildbot/package.pl b/support/buildbot/package.pl index ad8f7a1c36..2f71dea397 100755 --- a/support/buildbot/package.pl +++ b/support/buildbot/package.pl @@ -5,8 +5,9 @@ use Cwd; use File::Basename; use File::stat; +use File::Temp qw/ tempfile :seekable/; use Net::FTP; -use IO::Uncompress::Gunzip qw(gunzip $GunzipError); +use Archive::Tar; use Time::localtime; my ($ftp_file, $ftp_host, $ftp_user, $ftp_pass, $ftp_path); @@ -28,6 +29,8 @@ my ($myself, $path) = fileparse($0); chdir($path); +use FindBin; +use lib $FindBin::Bin; require 'helpers.pm'; my ($version); @@ -71,12 +74,10 @@ unlink($geoIPfile); } -open(my $fh, ">", $geoIPfile) - or die "cannot open $geoIPfile for writing: $!"; -binmode($fh); -gunzip '../GeoLite2-Country.tar.gz' => $fh - or die "gunzip failed: $GunzipError\n"; -close($fh); +my $next = Archive::Tar->iter('../GeoLite2-Country.tar.gz', 1, {filter => qr/\.mmdb$/}); +while (my $file = $next->()) { + $file->extract($geoIPfile) or warn "Extraction failed"; +} my (@packages,@mac_exclude); @packages = ('base', 'cstrike', 'dod', 'esf', 'ns', 'tfc', 'ts'); @@ -126,21 +127,34 @@ $ftp->binary(); for ($i = 0; $i <= $#packages; $i++) { my ($filename); + my ($latest); if ($^O eq "linux") { $filename = "amxmodx-$version-" . $packages[$i] . "-linux.tar.gz"; + $latest = "amxmodx-latest-" . $packages[$i] . "-linux"; } elsif ($^O eq "darwin") { next if ($packages[$i] ~~ @mac_exclude); $filename = "amxmodx-$version-" . $packages[$i] . "-mac.zip"; + $latest = "amxmodx-latest-" . $packages[$i] . "-mac"; } else { $filename = "amxmodx-$version-" . $packages[$i] . "-windows.zip"; + $latest = "amxmodx-latest-" . $packages[$i] . "-windows"; } + + my ($tmpfh, $tmpfile) = tempfile(); + print $tmpfh $filename; + $tmpfh->seek( 0, SEEK_END ); + print "Uploading $filename...\n"; $ftp->put($filename) or die "Cannot drop file $filename ($ftp_path): " . $ftp->message . "\n"; + + print "Uploading $latest...\n"; + $ftp->put($tmpfile, $latest) + or die "Cannot drop file $latest ($ftp_path): " . $ftp->message . "\n"; } $ftp->close(); print "Files sent to drop site -- build succeeded.\n"; -exit(0); \ No newline at end of file +exit(0); diff --git a/support/buildbot/startbuild.pl b/support/buildbot/startbuild.pl index 42ec2b6f8b..dc4ee3229c 100755 --- a/support/buildbot/startbuild.pl +++ b/support/buildbot/startbuild.pl @@ -5,6 +5,8 @@ my ($myself, $path) = fileparse($0); chdir($path); +use FindBin; +use lib $FindBin::Bin; require 'helpers.pm'; chdir('../../../OUTPUT'); @@ -15,7 +17,11 @@ $ENV{CXX} = $ARGV[0]; } -system("ambuild --no-color 2>&1"); +if ($^O !~ /MSWin/) { + system("ambuild --no-color 2>&1"); +} else { + system("C:\\Python38\\scripts\\ambuild --no-color 2>&1"); +} if ($? != 0) { diff --git a/support/generate_headers.py b/support/generate_headers.py index b61f8c61f9..01acf9ab82 100644 --- a/support/generate_headers.py +++ b/support/generate_headers.py @@ -55,12 +55,10 @@ def output_version_headers(): if m == None: raise Exception('Could not detremine product version') major, minor, release, tag = m.groups() - product = "{0}.{1}.{2}".format(major, minor, release) + product = "{0}.{1}.{2}.{3}".format(major, minor, release, count) fullstring = product if tag != "": fullstring += "-{0}".format(tag) - if tag == "dev": - fullstring += "+{0}".format(count) with open(os.path.join(OutputFolder, 'amxmodx_version_auto.h'), 'w') as fp: fp.write(""" @@ -74,10 +72,10 @@ def output_version_headers(): #define AMXX_BUILD_RELEASE \"{4}\" #define AMXX_BUILD_LOCAL_REV \"{6}\" -#define AMXX_BUILD_UNIQUEID "{6}:" AMXX_BUILD_CSET +#define AMXX_BUILD_UNIQUEID AMXX_BUILD_LOCAL_REV \":\" AMXX_BUILD_CSET #define AMXX_VERSION_STRING \"{5}\" -#define AMXX_VERSION_FILE {2},{3},{4},0 +#define AMXX_VERSION_FILE {2},{3},{4},{6} #endif // _AMXMODX_AUTO_VERSION_INFORMATION_H_ """.format(tag, shorthash, major, minor, release, fullstring, count)) @@ -90,14 +88,17 @@ def output_version_headers(): #endif #define _amxmodx_version_included -#define AMXX_VERSION_TAG \"{tag}\" -#define AMXX_VERSION_CSET \"{shorthash}\" -#define AMXX_VERSION_MAJOR \"{major}\" -#define AMXX_VERSION_MINOR \"{minor}\" -#define AMXX_VERSION_RELEASE \"{release}\" -#define AMXX_VERSION_LOCAL_REV \"{count}\" -#define AMXX_VERSION {major}.{minor}{release} -#define AMXX_VERSION_NUM {version_num} +#define AMXX_VERSION_TAG \"{tag}\" +#define AMXX_VERSION_CSET \"{shorthash}\" +#define AMXX_VERSION_MAJOR \"{major}\" +#define AMXX_VERSION_MAJOR_NUM {major} +#define AMXX_VERSION_MINOR \"{minor}\" +#define AMXX_VERSION_MINOR_NUM {minor} +#define AMXX_VERSION_RELEASE \"{release}\" +#define AMXX_VERSION_LOCAL_REV_NUM {count} +#define AMXX_VERSION_LOCAL_REV \"{count}\" +#define AMXX_VERSION {major}.{minor}{release} +#define AMXX_VERSION_NUM {version_num} stock const AMXX_VERSION_STR[] = "{fullstring}"; """.format( diff --git a/third_party/libmaxminddb/maxminddb_config.h b/third_party/libmaxminddb/maxminddb_config.h index 1a5c62dc72..af91186271 100644 --- a/third_party/libmaxminddb/maxminddb_config.h +++ b/third_party/libmaxminddb/maxminddb_config.h @@ -1,6 +1,13 @@ #ifndef MAXMINDDB_CONFIG_H #define MAXMINDDB_CONFIG_H +#include <osdefs.h> // BYTE_ORDER, LITTLE_ENDIAN + +/* This fixes a behavior change in after https://github.com/maxmind/libmaxminddb/pull/123. */ +#if defined(BYTE_ORDER) && BYTE_ORDER == LITTLE_ENDIAN + #define MMDB_LITTLE_ENDIAN 1 +#endif + #ifndef MMDB_UINT128_USING_MODE /* Define as 1 if we we use unsigned int __atribute__ ((__mode__(TI))) for uint128 values */ #define MMDB_UINT128_USING_MODE 0 diff --git a/third_party/parson/parson.c b/third_party/parson/parson.c index 3f89b7f42b..617ce5e69d 100644 --- a/third_party/parson/parson.c +++ b/third_party/parson/parson.c @@ -1,6 +1,8 @@ /* - Parson ( http://kgabis.github.com/parson/ ) - Copyright (c) 2012 - 2017 Krzysztof Gabis + SPDX-License-Identifier: MIT + + Parson 1.2.1 ( http://kgabis.github.com/parson/ ) + Copyright (c) 2012 - 2021 Krzysztof Gabis Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -28,6 +30,16 @@ #include "parson.h" +#define PARSON_IMPL_VERSION_MAJOR 1 +#define PARSON_IMPL_VERSION_MINOR 2 +#define PARSON_IMPL_VERSION_PATCH 1 + +#if (PARSON_VERSION_MAJOR != PARSON_IMPL_VERSION_MAJOR)\ +|| (PARSON_VERSION_MINOR != PARSON_IMPL_VERSION_MINOR)\ +|| (PARSON_VERSION_PATCH != PARSON_IMPL_VERSION_PATCH) +#error "parson version mismatch between parson.c and parson.h" +#endif + #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -37,28 +49,59 @@ /* Apparently sscanf is not implemented in some "standard" libraries, so don't use it, if you * don't have to. */ +#ifdef sscanf +#undef sscanf #define sscanf THINK_TWICE_ABOUT_USING_SSCANF +#endif + +/* strcpy is unsafe */ +#ifdef strcpy +#undef strcpy +#endif +#define strcpy USE_MEMCPY_INSTEAD_OF_STRCPY #define STARTING_CAPACITY 16 #define MAX_NESTING 2048 -#define FLOAT_FORMAT "%1.17g" + +#define FLOAT_FORMAT "%1.17g" /* do not increase precision without incresing NUM_BUF_SIZE */ +#define NUM_BUF_SIZE 64 /* double printed with "%1.17g" shouldn't be longer than 25 bytes so let's be paranoid and use 64 */ #define SIZEOF_TOKEN(a) (sizeof(a) - 1) #define SKIP_CHAR(str) ((*str)++) -#define SKIP_WHITESPACES(str) while (isspace(**str)) { SKIP_CHAR(str); } +#define SKIP_WHITESPACES(str) while (isspace((unsigned char)(**str))) { SKIP_CHAR(str); } #define MAX(a, b) ((a) > (b) ? (a) : (b)) #undef malloc #undef free +#if defined(isnan) && defined(isinf) +#define IS_NUMBER_INVALID(x) (isnan((x)) || isinf((x))) +#else +#define IS_NUMBER_INVALID(x) (((x) * 0.0) != 0.0) +#endif + +#define OBJECT_INVALID_IX ((size_t)-1) + static JSON_Malloc_Function parson_malloc = malloc; static JSON_Free_Function parson_free = free; +static int parson_escape_slashes = 1; + #define IS_CONT(b) (((unsigned char)(b) & 0xC0) == 0x80) /* is utf-8 continuation byte */ +typedef int parson_bool_t; + +#define PARSON_TRUE 1 +#define PARSON_FALSE 0 + +typedef struct json_string { + char *chars; + size_t length; +} JSON_String; + /* Type definitions */ typedef union json_value_value { - char *string; + JSON_String string; double number; JSON_Object *object; JSON_Array *array; @@ -73,11 +116,15 @@ struct json_value_t { }; struct json_object_t { - JSON_Value *wrapping_value; - char **names; - JSON_Value **values; - size_t count; - size_t capacity; + JSON_Value *wrapping_value; + size_t *cells; + unsigned long *hashes; + char **names; + JSON_Value **values; + size_t *cell_ixs; + size_t count; + size_t item_capacity; + size_t cell_capacity; }; struct json_array_t { @@ -93,55 +140,131 @@ static void remove_comments(char *string, const char *start_token, const char static char * parson_strndup(const char *string, size_t n); static char * parson_strdup(const char *string); static int hex_char_to_int(char c); -static int parse_utf16_hex(const char *string, unsigned int *result); -static int num_bytes_in_utf8_sequence(unsigned char c); -static int verify_utf8_sequence(const unsigned char *string, int *len); -static int is_valid_utf8(const char *string, size_t string_len); -static int is_decimal(const char *string, size_t length); +static JSON_Status parse_utf16_hex(const char *string, unsigned int *result); +static int num_bytes_in_utf8_sequence(unsigned char c); +static JSON_Status verify_utf8_sequence(const unsigned char *string, int *len); +static parson_bool_t is_valid_utf8(const char *string, size_t string_len); +static parson_bool_t is_decimal(const char *string, size_t length); +static unsigned long hash_string(const char *string, size_t n); /* JSON Object */ -static JSON_Object * json_object_init(JSON_Value *wrapping_value); -static JSON_Status json_object_add(JSON_Object *object, const char *name, JSON_Value *value); -static JSON_Status json_object_resize(JSON_Object *object, size_t new_capacity); -static JSON_Value * json_object_nget_value(const JSON_Object *object, const char *name, size_t n); +static JSON_Object * json_object_make(JSON_Value *wrapping_value); +static JSON_Status json_object_init(JSON_Object *object, size_t capacity); +static void json_object_deinit(JSON_Object *object, parson_bool_t free_keys, parson_bool_t free_values); +static JSON_Status json_object_grow_and_rehash(JSON_Object *object); +static size_t json_object_get_cell_ix(const JSON_Object *object, const char *key, size_t key_len, unsigned long hash, parson_bool_t *out_found); +static JSON_Status json_object_add(JSON_Object *object, char *name, JSON_Value *value); +static JSON_Value * json_object_getn_value(const JSON_Object *object, const char *name, size_t name_len); +static JSON_Status json_object_remove_internal(JSON_Object *object, const char *name, parson_bool_t free_value); +static JSON_Status json_object_dotremove_internal(JSON_Object *object, const char *name, parson_bool_t free_value); static void json_object_free(JSON_Object *object); /* JSON Array */ -static JSON_Array * json_array_init(JSON_Value *wrapping_value); +static JSON_Array * json_array_make(JSON_Value *wrapping_value); static JSON_Status json_array_add(JSON_Array *array, JSON_Value *value); static JSON_Status json_array_resize(JSON_Array *array, size_t new_capacity); static void json_array_free(JSON_Array *array); /* JSON Value */ -static JSON_Value * json_value_init_string_no_copy(char *string); +static JSON_Value * json_value_init_string_no_copy(char *string, size_t length); +static const JSON_String * json_value_get_string_desc(const JSON_Value *value); /* Parser */ -static JSON_Status skip_quotes(const char **string); -static int parse_utf16(const char **unprocessed, char **processed); -static char * process_string(const char *input, size_t len); -static char * get_quoted_string(const char **string); -static JSON_Value * parse_object_value(const char **string, size_t nesting); -static JSON_Value * parse_array_value(const char **string, size_t nesting); -static JSON_Value * parse_string_value(const char **string); -static JSON_Value * parse_boolean_value(const char **string); -static JSON_Value * parse_number_value(const char **string); -static JSON_Value * parse_null_value(const char **string); -static JSON_Value * parse_value(const char **string, size_t nesting); +static JSON_Status skip_quotes(const char **string); +static JSON_Status parse_utf16(const char **unprocessed, char **processed); +static char * process_string(const char *input, size_t input_len, size_t *output_len); +static char * get_quoted_string(const char **string, size_t *output_string_len); +static JSON_Value * parse_object_value(const char **string, size_t nesting); +static JSON_Value * parse_array_value(const char **string, size_t nesting); +static JSON_Value * parse_string_value(const char **string); +static JSON_Value * parse_boolean_value(const char **string); +static JSON_Value * parse_number_value(const char **string); +static JSON_Value * parse_null_value(const char **string); +static JSON_Value * parse_value(const char **string, size_t nesting); /* Serialization */ -static int json_serialize_to_buffer_r(const JSON_Value *value, char *buf, int level, int is_pretty, char *num_buf); -static int json_serialize_string(const char *string, char *buf); -static int append_indent(char *buf, int level); -static int append_string(char *buf, const char *string); +static int json_serialize_to_buffer_r(const JSON_Value *value, char *buf, int level, parson_bool_t is_pretty, char *num_buf); +static int json_serialize_string(const char *string, size_t len, char *buf); +static int append_indent(char *buf, int level); +static int append_string(char *buf, const char *string); /* Various */ +static char * read_file(const char * filename) { + FILE *fp = fopen(filename, "r"); + size_t size_to_read = 0; + size_t size_read = 0; + long pos; + char *file_contents; + if (!fp) { + return NULL; + } + fseek(fp, 0L, SEEK_END); + pos = ftell(fp); + if (pos < 0) { + fclose(fp); + return NULL; + } + size_to_read = pos; + rewind(fp); + file_contents = (char*)parson_malloc(sizeof(char) * (size_to_read + 1)); + if (!file_contents) { + fclose(fp); + return NULL; + } + size_read = fread(file_contents, 1, size_to_read, fp); + if (size_read == 0 || ferror(fp)) { + fclose(fp); + parson_free(file_contents); + return NULL; + } + fclose(fp); + file_contents[size_read] = '\0'; + return file_contents; +} + +static void remove_comments(char *string, const char *start_token, const char *end_token) { + parson_bool_t in_string = PARSON_FALSE, escaped = PARSON_FALSE; + size_t i; + char *ptr = NULL, current_char; + size_t start_token_len = strlen(start_token); + size_t end_token_len = strlen(end_token); + if (start_token_len == 0 || end_token_len == 0) { + return; + } + while ((current_char = *string) != '\0') { + if (current_char == '\\' && !escaped) { + escaped = PARSON_TRUE; + string++; + continue; + } else if (current_char == '\"' && !escaped) { + in_string = !in_string; + } else if (!in_string && strncmp(string, start_token, start_token_len) == 0) { + for(i = 0; i < start_token_len; i++) { + string[i] = ' '; + } + string = string + start_token_len; + ptr = strstr(string, end_token); + if (!ptr) { + return; + } + for (i = 0; i < (ptr - string) + end_token_len; i++) { + string[i] = ' '; + } + string = ptr + end_token_len - 1; + } + escaped = PARSON_FALSE; + string++; + } +} + static char * parson_strndup(const char *string, size_t n) { + /* We expect the caller has validated that 'n' fits within the input buffer. */ char *output_string = (char*)parson_malloc(n + 1); if (!output_string) { return NULL; } output_string[n] = '\0'; - strncpy(output_string, string, n); + memcpy(output_string, string, n); return output_string; } @@ -160,20 +283,20 @@ static int hex_char_to_int(char c) { return -1; } -static int parse_utf16_hex(const char *s, unsigned int *result) { +static JSON_Status parse_utf16_hex(const char *s, unsigned int *result) { int x1, x2, x3, x4; if (s[0] == '\0' || s[1] == '\0' || s[2] == '\0' || s[3] == '\0') { - return 0; + return JSONFailure; } x1 = hex_char_to_int(s[0]); x2 = hex_char_to_int(s[1]); x3 = hex_char_to_int(s[2]); x4 = hex_char_to_int(s[3]); if (x1 == -1 || x2 == -1 || x3 == -1 || x4 == -1) { - return 0; + return JSONFailure; } *result = (unsigned int)((x1 << 12) | (x2 << 8) | (x3 << 4) | x4); - return 1; + return JSONSuccess; } static int num_bytes_in_utf8_sequence(unsigned char c) { @@ -191,7 +314,7 @@ static int num_bytes_in_utf8_sequence(unsigned char c) { return 0; /* won't happen */ } -static int verify_utf8_sequence(const unsigned char *string, int *len) { +static JSON_Status verify_utf8_sequence(const unsigned char *string, int *len) { unsigned int cp = 0; *len = num_bytes_in_utf8_sequence(string[0]); @@ -210,220 +333,359 @@ static int verify_utf8_sequence(const unsigned char *string, int *len) { cp = (cp << 6) | (string[2] & 0x3F); cp = (cp << 6) | (string[3] & 0x3F); } else { - return 0; + return JSONFailure; } /* overlong encodings */ if ((cp < 0x80 && *len > 1) || (cp < 0x800 && *len > 2) || (cp < 0x10000 && *len > 3)) { - return 0; + return JSONFailure; } /* invalid unicode */ if (cp > 0x10FFFF) { - return 0; + return JSONFailure; } /* surrogate halves */ if (cp >= 0xD800 && cp <= 0xDFFF) { - return 0; + return JSONFailure; } - return 1; + return JSONSuccess; } static int is_valid_utf8(const char *string, size_t string_len) { int len = 0; const char *string_end = string + string_len; while (string < string_end) { - if (!verify_utf8_sequence((const unsigned char*)string, &len)) { - return 0; + if (verify_utf8_sequence((const unsigned char*)string, &len) != JSONSuccess) { + return PARSON_FALSE; } string += len; } - return 1; + return PARSON_TRUE; } -static int is_decimal(const char *string, size_t length) { +static parson_bool_t is_decimal(const char *string, size_t length) { if (length > 1 && string[0] == '0' && string[1] != '.') { - return 0; + return PARSON_FALSE; } if (length > 2 && !strncmp(string, "-0", 2) && string[2] != '.') { - return 0; + return PARSON_FALSE; } while (length--) { if (strchr("xX", string[length])) { - return 0; + return PARSON_FALSE; } } - return 1; + return PARSON_TRUE; } -static char * read_file(const char * filename) { - FILE *fp = fopen(filename, "r"); - size_t file_size; - long pos; - char *file_contents; - if (!fp) { - return NULL; +static unsigned long hash_string(const char *string, size_t n) { +#ifdef PARSON_FORCE_HASH_COLLISIONS + (void)string; + (void)n; + return 0; +#else + unsigned long hash = 5381; + unsigned char c; + size_t i = 0; + for (i = 0; i < n; i++) { + c = string[i]; + if (c == '\0') { + break; + } + hash = ((hash << 5) + hash) + c; /* hash * 33 + c */ } - fseek(fp, 0L, SEEK_END); - pos = ftell(fp); - if (pos < 0) { - fclose(fp); + return hash; +#endif +} + +/* JSON Object */ +static JSON_Object * json_object_make(JSON_Value *wrapping_value) { + JSON_Status res = JSONFailure; + JSON_Object *new_obj = (JSON_Object*)parson_malloc(sizeof(JSON_Object)); + if (new_obj == NULL) { return NULL; } - file_size = pos; - rewind(fp); - file_contents = (char*)parson_malloc(sizeof(char) * (file_size + 1)); - if (!file_contents) { - fclose(fp); + new_obj->wrapping_value = wrapping_value; + res = json_object_init(new_obj, 0); + if (res != JSONSuccess) { + parson_free(new_obj); return NULL; } - if (fread(file_contents, file_size, 1, fp) < 1) { - if (ferror(fp)) { - fclose(fp); - parson_free(file_contents); - return NULL; + return new_obj; +} + +static JSON_Status json_object_init(JSON_Object *object, size_t capacity) { + unsigned int i = 0; + + object->cells = NULL; + object->names = NULL; + object->values = NULL; + object->cell_ixs = NULL; + object->hashes = NULL; + + object->count = 0; + object->cell_capacity = capacity; + object->item_capacity = (unsigned int)(capacity * 0.7f); + + if (capacity == 0) { + return JSONSuccess; + } + + object->cells = (size_t*)parson_malloc(object->cell_capacity * sizeof(*object->cells)); + object->names = (char**)parson_malloc(object->item_capacity * sizeof(*object->names)); + object->values = (JSON_Value**)parson_malloc(object->item_capacity * sizeof(*object->values)); + object->cell_ixs = (size_t*)parson_malloc(object->item_capacity * sizeof(*object->cell_ixs)); + object->hashes = (unsigned long*)parson_malloc(object->item_capacity * sizeof(*object->hashes)); + if (object->cells == NULL + || object->names == NULL + || object->values == NULL + || object->cell_ixs == NULL + || object->hashes == NULL) { + goto error; + } + for (i = 0; i < object->cell_capacity; i++) { + object->cells[i] = OBJECT_INVALID_IX; + } + return JSONSuccess; +error: + parson_free(object->cells); + parson_free(object->names); + parson_free(object->values); + parson_free(object->cell_ixs); + parson_free(object->hashes); + return JSONFailure; +} + +static void json_object_deinit(JSON_Object *object, parson_bool_t free_keys, parson_bool_t free_values) { + unsigned int i = 0; + for (i = 0; i < object->count; i++) { + if (free_keys) { + parson_free(object->names[i]); + } + if (free_values) { + json_value_free(object->values[i]); } } - fclose(fp); - file_contents[file_size] = '\0'; - return file_contents; + + object->count = 0; + object->item_capacity = 0; + object->cell_capacity = 0; + + parson_free(object->cells); + parson_free(object->names); + parson_free(object->values); + parson_free(object->cell_ixs); + parson_free(object->hashes); + + object->cells = NULL; + object->names = NULL; + object->values = NULL; + object->cell_ixs = NULL; + object->hashes = NULL; } -static void remove_comments(char *string, const char *start_token, const char *end_token) { - int in_string = 0, escaped = 0; - size_t i; - char *ptr = NULL, current_char; - size_t start_token_len = strlen(start_token); - size_t end_token_len = strlen(end_token); - if (start_token_len == 0 || end_token_len == 0) { - return; +static JSON_Status json_object_grow_and_rehash(JSON_Object *object) { + JSON_Value *wrapping_value = NULL; + JSON_Object new_object; + char *key = NULL; + JSON_Value *value = NULL; + unsigned int i = 0; + size_t new_capacity = MAX(object->cell_capacity * 2, STARTING_CAPACITY); + JSON_Status res = json_object_init(&new_object, new_capacity); + if (res != JSONSuccess) { + return JSONFailure; } - while ((current_char = *string) != '\0') { - if (current_char == '\\' && !escaped) { - escaped = 1; - string++; - continue; - } else if (current_char == '\"' && !escaped) { - in_string = !in_string; - } else if (!in_string && strncmp(string, start_token, start_token_len) == 0) { - for(i = 0; i < start_token_len; i++) { - string[i] = ' '; - } - string = string + start_token_len; - ptr = strstr(string, end_token); - if (!ptr) { - return; - } - for (i = 0; i < (ptr - string) + end_token_len; i++) { - string[i] = ' '; - } - string = ptr + end_token_len - 1; + + wrapping_value = json_object_get_wrapping_value(object); + new_object.wrapping_value = wrapping_value; + + for (i = 0; i < object->count; i++) { + key = object->names[i]; + value = object->values[i]; + res = json_object_add(&new_object, key, value); + if (res != JSONSuccess) { + json_object_deinit(&new_object, PARSON_FALSE, PARSON_FALSE); + return JSONFailure; } - escaped = 0; - string++; + value->parent = wrapping_value; } + json_object_deinit(object, PARSON_FALSE, PARSON_FALSE); + *object = new_object; + return JSONSuccess; } -/* JSON Object */ -static JSON_Object * json_object_init(JSON_Value *wrapping_value) { - JSON_Object *new_obj = (JSON_Object*)parson_malloc(sizeof(JSON_Object)); - if (new_obj == NULL) { - return NULL; +static size_t json_object_get_cell_ix(const JSON_Object *object, const char *key, size_t key_len, unsigned long hash, parson_bool_t *out_found) { + size_t cell_ix = hash & (object->cell_capacity - 1); + size_t cell = 0; + size_t ix = 0; + unsigned int i = 0; + unsigned long hash_to_check = 0; + const char *key_to_check = NULL; + size_t key_to_check_len = 0; + + *out_found = PARSON_FALSE; + + for (i = 0; i < object->cell_capacity; i++) { + ix = (cell_ix + i) & (object->cell_capacity - 1); + cell = object->cells[ix]; + if (cell == OBJECT_INVALID_IX) { + return ix; + } + hash_to_check = object->hashes[cell]; + if (hash != hash_to_check) { + continue; + } + key_to_check = object->names[cell]; + key_to_check_len = strlen(key_to_check); + if (key_to_check_len == key_len && strncmp(key, key_to_check, key_len) == 0) { + *out_found = PARSON_TRUE; + return ix; + } } - new_obj->wrapping_value = wrapping_value; - new_obj->names = (char**)NULL; - new_obj->values = (JSON_Value**)NULL; - new_obj->capacity = 0; - new_obj->count = 0; - return new_obj; + return OBJECT_INVALID_IX; } -static JSON_Status json_object_add(JSON_Object *object, const char *name, JSON_Value *value) { - size_t index = 0; - if (object == NULL || name == NULL || value == NULL) { +static JSON_Status json_object_add(JSON_Object *object, char *name, JSON_Value *value) { + unsigned long hash = 0; + parson_bool_t found = PARSON_FALSE; + size_t cell_ix = 0; + JSON_Status res = JSONFailure; + + if (!object || !name || !value) { return JSONFailure; } - if (json_object_get_value(object, name) != NULL) { + + hash = hash_string(name, strlen(name)); + found = PARSON_FALSE; + cell_ix = json_object_get_cell_ix(object, name, strlen(name), hash, &found); + if (found) { return JSONFailure; } - if (object->count >= object->capacity) { - size_t new_capacity = MAX(object->capacity * 2, STARTING_CAPACITY); - if (json_object_resize(object, new_capacity) == JSONFailure) { + + if (object->count >= object->item_capacity) { + res = json_object_grow_and_rehash(object); + if (res != JSONSuccess) { return JSONFailure; } + cell_ix = json_object_get_cell_ix(object, name, strlen(name), hash, &found); } - index = object->count; - object->names[index] = parson_strdup(name); - if (object->names[index] == NULL) { - return JSONFailure; - } - value->parent = json_object_get_wrapping_value(object); - object->values[index] = value; + + object->names[object->count] = name; + object->cells[cell_ix] = object->count; + object->values[object->count] = value; + object->cell_ixs[object->count] = cell_ix; + object->hashes[object->count] = hash; object->count++; + value->parent = json_object_get_wrapping_value(object); + return JSONSuccess; } -static JSON_Status json_object_resize(JSON_Object *object, size_t new_capacity) { - char **temp_names = NULL; - JSON_Value **temp_values = NULL; - - if ((object->names == NULL && object->values != NULL) || - (object->names != NULL && object->values == NULL) || - new_capacity == 0) { - return JSONFailure; /* Shouldn't happen */ +static JSON_Value * json_object_getn_value(const JSON_Object *object, const char *name, size_t name_len) { + unsigned long hash = 0; + parson_bool_t found = PARSON_FALSE; + unsigned long cell_ix = 0; + size_t item_ix = 0; + if (!object || !name) { + return NULL; + } + hash = hash_string(name, name_len); + found = PARSON_FALSE; + cell_ix = json_object_get_cell_ix(object, name, name_len, hash, &found); + if (!found) { + return NULL; } - temp_names = (char**)parson_malloc(new_capacity * sizeof(char*)); - if (temp_names == NULL) { + item_ix = object->cells[cell_ix]; + return object->values[item_ix]; +} + +static JSON_Status json_object_remove_internal(JSON_Object *object, const char *name, parson_bool_t free_value) { + unsigned long hash = 0; + parson_bool_t found = PARSON_FALSE; + size_t cell = 0; + size_t item_ix = 0; + size_t last_item_ix = 0; + size_t i = 0; + size_t j = 0; + size_t x = 0; + size_t k = 0; + JSON_Value *val = NULL; + + if (object == NULL) { return JSONFailure; } - temp_values = (JSON_Value**)parson_malloc(new_capacity * sizeof(JSON_Value*)); - if (temp_values == NULL) { - parson_free(temp_names); + + hash = hash_string(name, strlen(name)); + found = PARSON_FALSE; + cell = json_object_get_cell_ix(object, name, strlen(name), hash, &found); + if (!found) { return JSONFailure; } - if (object->names != NULL && object->values != NULL && object->count > 0) { - memcpy(temp_names, object->names, object->count * sizeof(char*)); - memcpy(temp_values, object->values, object->count * sizeof(JSON_Value*)); + + item_ix = object->cells[cell]; + if (free_value) { + val = object->values[item_ix]; + json_value_free(val); + val = NULL; } - parson_free(object->names); - parson_free(object->values); - object->names = temp_names; - object->values = temp_values; - object->capacity = new_capacity; - return JSONSuccess; -} -static JSON_Value * json_object_nget_value(const JSON_Object *object, const char *name, size_t n) { - size_t i, name_length; - for (i = 0; i < json_object_get_count(object); i++) { - name_length = strlen(object->names[i]); - if (name_length != n) { - continue; + parson_free(object->names[item_ix]); + last_item_ix = object->count - 1; + if (item_ix < last_item_ix) { + object->names[item_ix] = object->names[last_item_ix]; + object->values[item_ix] = object->values[last_item_ix]; + object->cell_ixs[item_ix] = object->cell_ixs[last_item_ix]; + object->hashes[item_ix] = object->hashes[last_item_ix]; + object->cells[object->cell_ixs[item_ix]] = item_ix; + } + object->count--; + + i = cell; + j = i; + for (x = 0; x < (object->cell_capacity - 1); x++) { + j = (j + 1) & (object->cell_capacity - 1); + if (object->cells[j] == OBJECT_INVALID_IX) { + break; } - if (strncmp(object->names[i], name, n) == 0) { - return object->values[i]; + k = object->hashes[object->cells[j]] & (object->cell_capacity - 1); + if ((j > i && (k <= i || k > j)) + || (j < i && (k <= i && k > j))) { + object->cell_ixs[object->cells[j]] = i; + object->cells[i] = object->cells[j]; + i = j; } } - return NULL; + object->cells[i] = OBJECT_INVALID_IX; + return JSONSuccess; } -static void json_object_free(JSON_Object *object) { - size_t i; - for (i = 0; i < object->count; i++) { - parson_free(object->names[i]); - json_value_free(object->values[i]); +static JSON_Status json_object_dotremove_internal(JSON_Object *object, const char *name, parson_bool_t free_value) { + JSON_Value *temp_value = NULL; + JSON_Object *temp_object = NULL; + const char *dot_pos = strchr(name, '.'); + if (!dot_pos) { + return json_object_remove_internal(object, name, free_value); } - parson_free(object->names); - parson_free(object->values); + temp_value = json_object_getn_value(object, name, dot_pos - name); + if (json_value_get_type(temp_value) != JSONObject) { + return JSONFailure; + } + temp_object = json_value_get_object(temp_value); + return json_object_dotremove_internal(temp_object, dot_pos + 1, free_value); +} + +static void json_object_free(JSON_Object *object) { + json_object_deinit(object, PARSON_TRUE, PARSON_TRUE); parson_free(object); } /* JSON Array */ -static JSON_Array * json_array_init(JSON_Value *wrapping_value) { +static JSON_Array * json_array_make(JSON_Value *wrapping_value) { JSON_Array *new_array = (JSON_Array*)parson_malloc(sizeof(JSON_Array)); if (new_array == NULL) { return NULL; @@ -438,7 +700,7 @@ static JSON_Array * json_array_init(JSON_Value *wrapping_value) { static JSON_Status json_array_add(JSON_Array *array, JSON_Value *value) { if (array->count >= array->capacity) { size_t new_capacity = MAX(array->capacity * 2, STARTING_CAPACITY); - if (json_array_resize(array, new_capacity) == JSONFailure) { + if (json_array_resize(array, new_capacity) != JSONSuccess) { return JSONFailure; } } @@ -476,14 +738,15 @@ static void json_array_free(JSON_Array *array) { } /* JSON Value */ -static JSON_Value * json_value_init_string_no_copy(char *string) { +static JSON_Value * json_value_init_string_no_copy(char *string, size_t length) { JSON_Value *new_value = (JSON_Value*)parson_malloc(sizeof(JSON_Value)); if (!new_value) { return NULL; } new_value->parent = NULL; new_value->type = JSONString; - new_value->value.string = string; + new_value->value.string.chars = string; + new_value->value.string.length = length; return new_value; } @@ -508,14 +771,14 @@ static JSON_Status skip_quotes(const char **string) { return JSONSuccess; } -static int parse_utf16(const char **unprocessed, char **processed) { +static JSON_Status parse_utf16(const char **unprocessed, char **processed) { unsigned int cp, lead, trail; - int parse_succeeded = 0; char *processed_ptr = *processed; const char *unprocessed_ptr = *unprocessed; + JSON_Status status = JSONFailure; unprocessed_ptr++; /* skips u */ - parse_succeeded = parse_utf16_hex(unprocessed_ptr, &cp); - if (!parse_succeeded) { + status = parse_utf16_hex(unprocessed_ptr, &cp); + if (status != JSONSuccess) { return JSONFailure; } if (cp < 0x80) { @@ -535,8 +798,8 @@ static int parse_utf16(const char **unprocessed, char **processed) { if (*unprocessed_ptr++ != '\\' || *unprocessed_ptr++ != 'u') { return JSONFailure; } - parse_succeeded = parse_utf16_hex(unprocessed_ptr, &trail); - if (!parse_succeeded || trail < 0xDC00 || trail > 0xDFFF) { /* valid trail surrogate? (0xDC00..0xDFFF) */ + status = parse_utf16_hex(unprocessed_ptr, &trail); + if (status != JSONSuccess || trail < 0xDC00 || trail > 0xDFFF) { /* valid trail surrogate? (0xDC00..0xDFFF) */ return JSONFailure; } cp = ((((lead - 0xD800) & 0x3FF) << 10) | ((trail - 0xDC00) & 0x3FF)) + 0x010000; @@ -557,9 +820,9 @@ static int parse_utf16(const char **unprocessed, char **processed) { /* Copies and processes passed string up to supplied length. Example: "\u006Corem ipsum" -> lorem ipsum */ -static char* process_string(const char *input, size_t len) { +static char* process_string(const char *input, size_t input_len, size_t *output_len) { const char *input_ptr = input; - size_t initial_size = (len + 1) * sizeof(char); + size_t initial_size = (input_len + 1) * sizeof(char); size_t final_size = 0; char *output = NULL, *output_ptr = NULL, *resized_output = NULL; output = (char*)parson_malloc(initial_size); @@ -567,7 +830,7 @@ static char* process_string(const char *input, size_t len) { goto error; } output_ptr = output; - while ((*input_ptr != '\0') && (size_t)(input_ptr - input) < len) { + while ((*input_ptr != '\0') && (size_t)(input_ptr - input) < input_len) { if (*input_ptr == '\\') { input_ptr++; switch (*input_ptr) { @@ -580,7 +843,7 @@ static char* process_string(const char *input, size_t len) { case 'r': *output_ptr = '\r'; break; case 't': *output_ptr = '\t'; break; case 'u': - if (parse_utf16(&input_ptr, &output_ptr) == JSONFailure) { + if (parse_utf16(&input_ptr, &output_ptr) != JSONSuccess) { goto error; } break; @@ -604,6 +867,7 @@ static char* process_string(const char *input, size_t len) { goto error; } memcpy(resized_output, output, final_size); + *output_len = final_size - 1; parson_free(output); return resized_output; error: @@ -613,15 +877,15 @@ static char* process_string(const char *input, size_t len) { /* Return processed contents of a string between quotes and skips passed argument to a matching quote. */ -static char * get_quoted_string(const char **string) { +static char * get_quoted_string(const char **string, size_t *output_string_len) { const char *string_start = *string; - size_t string_len = 0; + size_t input_string_len = 0; JSON_Status status = skip_quotes(string); if (status != JSONSuccess) { return NULL; } - string_len = *string - string_start - 2; /* length without quotes */ - return process_string(string_start + 1, string_len); + input_string_len = *string - string_start - 2; /* length without quotes */ + return process_string(string_start + 1, input_string_len, output_string_len); } static JSON_Value * parse_value(const char **string, size_t nesting) { @@ -650,12 +914,20 @@ static JSON_Value * parse_value(const char **string, size_t nesting) { } static JSON_Value * parse_object_value(const char **string, size_t nesting) { - JSON_Value *output_value = json_value_init_object(), *new_value = NULL; - JSON_Object *output_object = json_value_get_object(output_value); + JSON_Status status = JSONFailure; + JSON_Value *output_value = NULL, *new_value = NULL; + JSON_Object *output_object = NULL; char *new_key = NULL; - if (output_value == NULL || **string != '{') { + + output_value = json_value_init_object(); + if (output_value == NULL) { return NULL; } + if (**string != '{') { + json_value_free(output_value); + return NULL; + } + output_object = json_value_get_object(output_value); SKIP_CHAR(string); SKIP_WHITESPACES(string); if (**string == '}') { /* empty object */ @@ -663,8 +935,15 @@ static JSON_Value * parse_object_value(const char **string, size_t nesting) { return output_value; } while (**string != '\0') { - new_key = get_quoted_string(string); - if (new_key == NULL) { + size_t key_len = 0; + new_key = get_quoted_string(string, &key_len); + /* We do not support key names with embedded \0 chars */ + if (!new_key) { + json_value_free(output_value); + return NULL; + } + if (key_len != strlen(new_key)) { + parson_free(new_key); json_value_free(output_value); return NULL; } @@ -681,13 +960,13 @@ static JSON_Value * parse_object_value(const char **string, size_t nesting) { json_value_free(output_value); return NULL; } - if (json_object_add(output_object, new_key, new_value) == JSONFailure) { + status = json_object_add(output_object, new_key, new_value); + if (status != JSONSuccess) { parson_free(new_key); json_value_free(new_value); json_value_free(output_value); return NULL; } - parson_free(new_key); SKIP_WHITESPACES(string); if (**string != ',') { break; @@ -696,21 +975,26 @@ static JSON_Value * parse_object_value(const char **string, size_t nesting) { SKIP_WHITESPACES(string); } SKIP_WHITESPACES(string); - if (**string != '}' || /* Trim object after parsing is over */ - json_object_resize(output_object, json_object_get_count(output_object)) == JSONFailure) { - json_value_free(output_value); - return NULL; + if (**string != '}') { + json_value_free(output_value); + return NULL; } SKIP_CHAR(string); return output_value; } static JSON_Value * parse_array_value(const char **string, size_t nesting) { - JSON_Value *output_value = json_value_init_array(), *new_array_value = NULL; - JSON_Array *output_array = json_value_get_array(output_value); - if (!output_value || **string != '[') { + JSON_Value *output_value = NULL, *new_array_value = NULL; + JSON_Array *output_array = NULL; + output_value = json_value_init_array(); + if (output_value == NULL) { + return NULL; + } + if (**string != '[') { + json_value_free(output_value); return NULL; } + output_array = json_value_get_array(output_value); SKIP_CHAR(string); SKIP_WHITESPACES(string); if (**string == ']') { /* empty array */ @@ -723,7 +1007,7 @@ static JSON_Value * parse_array_value(const char **string, size_t nesting) { json_value_free(output_value); return NULL; } - if (json_array_add(output_array, new_array_value) == JSONFailure) { + if (json_array_add(output_array, new_array_value) != JSONSuccess) { json_value_free(new_array_value); json_value_free(output_value); return NULL; @@ -737,7 +1021,7 @@ static JSON_Value * parse_array_value(const char **string, size_t nesting) { } SKIP_WHITESPACES(string); if (**string != ']' || /* Trim array after parsing is over */ - json_array_resize(output_array, json_array_get_count(output_array)) == JSONFailure) { + json_array_resize(output_array, json_array_get_count(output_array)) != JSONSuccess) { json_value_free(output_value); return NULL; } @@ -747,11 +1031,12 @@ static JSON_Value * parse_array_value(const char **string, size_t nesting) { static JSON_Value * parse_string_value(const char **string) { JSON_Value *value = NULL; - char *new_string = get_quoted_string(string); + size_t new_string_len = 0; + char *new_string = get_quoted_string(string, &new_string_len); if (new_string == NULL) { return NULL; } - value = json_value_init_string_no_copy(new_string); + value = json_value_init_string_no_copy(new_string, new_string_len); if (value == NULL) { parson_free(new_string); return NULL; @@ -777,7 +1062,10 @@ static JSON_Value * parse_number_value(const char **string) { double number = 0; errno = 0; number = strtod(*string, &end); - if (errno || !is_decimal(*string, end - *string)) { + if (errno == ERANGE && (number <= -HUGE_VAL || number >= HUGE_VAL)) { + return NULL; + } + if ((errno && errno != ERANGE) || !is_decimal(*string, end - *string)) { return NULL; } *string = end; @@ -804,7 +1092,7 @@ static JSON_Value * parse_null_value(const char **string) { if (buf != NULL) { buf += written; }\ written_total += written; } while(0) -static int json_serialize_to_buffer_r(const JSON_Value *value, char *buf, int level, int is_pretty, char *num_buf) +static int json_serialize_to_buffer_r(const JSON_Value *value, char *buf, int level, parson_bool_t is_pretty, char *num_buf) { const char *key = NULL, *string = NULL; JSON_Value *temp_value = NULL; @@ -813,6 +1101,7 @@ static int json_serialize_to_buffer_r(const JSON_Value *value, char *buf, int le size_t i = 0, count = 0; double num = 0.0; int written = -1, written_total = 0; + size_t len = 0; switch (json_value_get_type(value)) { case JSONArray: @@ -862,7 +1151,8 @@ static int json_serialize_to_buffer_r(const JSON_Value *value, char *buf, int le if (is_pretty) { APPEND_INDENT(level+1); } - written = json_serialize_string(key, buf); + /* We do not support key names with embedded \0 chars */ + written = json_serialize_string(key, strlen(key), buf); if (written < 0) { return -1; } @@ -874,7 +1164,7 @@ static int json_serialize_to_buffer_r(const JSON_Value *value, char *buf, int le if (is_pretty) { APPEND_STRING(" "); } - temp_value = json_object_get_value(object, key); + temp_value = json_object_get_value_at(object, i); written = json_serialize_to_buffer_r(temp_value, buf, level+1, is_pretty, num_buf); if (written < 0) { return -1; @@ -900,7 +1190,8 @@ static int json_serialize_to_buffer_r(const JSON_Value *value, char *buf, int le if (string == NULL) { return -1; } - written = json_serialize_string(string, buf); + len = json_value_get_string_len(value); + written = json_serialize_string(string, len, buf); if (written < 0) { return -1; } @@ -940,8 +1231,8 @@ static int json_serialize_to_buffer_r(const JSON_Value *value, char *buf, int le } } -static int json_serialize_string(const char *string, char *buf) { - size_t i = 0, len = strlen(string); +static int json_serialize_string(const char *string, size_t len, char *buf) { + size_t i = 0; char c = '\0'; int written = -1, written_total = 0; APPEND_STRING("\""); @@ -950,7 +1241,6 @@ static int json_serialize_string(const char *string, char *buf) { switch (c) { case '\"': APPEND_STRING("\\\""); break; case '\\': APPEND_STRING("\\\\"); break; - case '/': APPEND_STRING("\\/"); break; /* to make json embeddable in xml\/html */ case '\b': APPEND_STRING("\\b"); break; case '\f': APPEND_STRING("\\f"); break; case '\n': APPEND_STRING("\\n"); break; @@ -988,6 +1278,13 @@ static int json_serialize_string(const char *string, char *buf) { case '\x1d': APPEND_STRING("\\u001d"); break; case '\x1e': APPEND_STRING("\\u001e"); break; case '\x1f': APPEND_STRING("\\u001f"); break; + case '/': + if (parson_escape_slashes) { + APPEND_STRING("\\/"); /* to make json embeddable in xml\/html */ + } else { + APPEND_STRING("/"); + } + break; default: if (buf != NULL) { buf[0] = c; @@ -1074,13 +1371,17 @@ JSON_Value * json_object_get_value(const JSON_Object *object, const char *name) if (object == NULL || name == NULL) { return NULL; } - return json_object_nget_value(object, name, strlen(name)); + return json_object_getn_value(object, name, strlen(name)); } const char * json_object_get_string(const JSON_Object *object, const char *name) { return json_value_get_string(json_object_get_value(object, name)); } +size_t json_object_get_string_len(const JSON_Object *object, const char *name) { + return json_value_get_string_len(json_object_get_value(object, name)); +} + double json_object_get_number(const JSON_Object *object, const char *name) { return json_value_get_number(json_object_get_value(object, name)); } @@ -1102,7 +1403,7 @@ JSON_Value * json_object_dotget_value(const JSON_Object *object, const char *nam if (!dot_position) { return json_object_get_value(object, name); } - object = json_value_get_object(json_object_nget_value(object, name, dot_position - name)); + object = json_value_get_object(json_object_getn_value(object, name, dot_position - name)); return json_object_dotget_value(object, dot_position + 1); } @@ -1110,6 +1411,10 @@ const char * json_object_dotget_string(const JSON_Object *object, const char *na return json_value_get_string(json_object_dotget_value(object, name)); } +size_t json_object_dotget_string_len(const JSON_Object *object, const char *name) { + return json_value_get_string_len(json_object_dotget_value(object, name)); +} + double json_object_dotget_number(const JSON_Object *object, const char *name) { return json_value_get_number(json_object_dotget_value(object, name)); } @@ -1145,6 +1450,9 @@ JSON_Value * json_object_get_value_at(const JSON_Object *object, size_t index) { } JSON_Value *json_object_get_wrapping_value(const JSON_Object *object) { + if (!object) { + return NULL; + } return object->wrapping_value; } @@ -1178,6 +1486,10 @@ const char * json_array_get_string(const JSON_Array *array, size_t index) { return json_value_get_string(json_array_get_value(array, index)); } +size_t json_array_get_string_len(const JSON_Array *array, size_t index) { + return json_value_get_string_len(json_array_get_value(array, index)); +} + double json_array_get_number(const JSON_Array *array, size_t index) { return json_value_get_number(json_array_get_value(array, index)); } @@ -1199,6 +1511,9 @@ size_t json_array_get_count(const JSON_Array *array) { } JSON_Value * json_array_get_wrapping_value(const JSON_Array *array) { + if (!array) { + return NULL; + } return array->wrapping_value; } @@ -1215,8 +1530,18 @@ JSON_Array * json_value_get_array(const JSON_Value *value) { return json_value_get_type(value) == JSONArray ? value->value.array : NULL; } +static const JSON_String * json_value_get_string_desc(const JSON_Value *value) { + return json_value_get_type(value) == JSONString ? &value->value.string : NULL; +} + const char * json_value_get_string(const JSON_Value *value) { - return json_value_get_type(value) == JSONString ? value->value.string : NULL; + const JSON_String *str = json_value_get_string_desc(value); + return str ? str->chars : NULL; +} + +size_t json_value_get_string_len(const JSON_Value *value) { + const JSON_String *str = json_value_get_string_desc(value); + return str ? str->length : 0; } double json_value_get_number(const JSON_Value *value) { @@ -1237,7 +1562,7 @@ void json_value_free(JSON_Value *value) { json_object_free(value->value.object); break; case JSONString: - parson_free(value->value.string); + parson_free(value->value.string.chars); break; case JSONArray: json_array_free(value->value.array); @@ -1255,7 +1580,7 @@ JSON_Value * json_value_init_object(void) { } new_value->parent = NULL; new_value->type = JSONObject; - new_value->value.object = json_object_init(new_value); + new_value->value.object = json_object_make(new_value); if (!new_value->value.object) { parson_free(new_value); return NULL; @@ -1270,7 +1595,7 @@ JSON_Value * json_value_init_array(void) { } new_value->parent = NULL; new_value->type = JSONArray; - new_value->value.array = json_array_init(new_value); + new_value->value.array = json_array_make(new_value); if (!new_value->value.array) { parson_free(new_value); return NULL; @@ -1279,21 +1604,26 @@ JSON_Value * json_value_init_array(void) { } JSON_Value * json_value_init_string(const char *string) { + if (string == NULL) { + return NULL; + } + return json_value_init_string_with_len(string, strlen(string)); +} + +JSON_Value * json_value_init_string_with_len(const char *string, size_t length) { char *copy = NULL; JSON_Value *value; - size_t string_len = 0; if (string == NULL) { return NULL; } - string_len = strlen(string); - if (!is_valid_utf8(string, string_len)) { + if (!is_valid_utf8(string, length)) { return NULL; } - copy = parson_strndup(string, string_len); + copy = parson_strndup(string, length); if (copy == NULL) { return NULL; } - value = json_value_init_string_no_copy(copy); + value = json_value_init_string_no_copy(copy, length); if (value == NULL) { parson_free(copy); } @@ -1302,7 +1632,7 @@ JSON_Value * json_value_init_string(const char *string) { JSON_Value * json_value_init_number(double number) { JSON_Value *new_value = NULL; - if ((number * 0.0) != 0.0) { /* nan and inf test */ + if (IS_NUMBER_INVALID(number)) { return NULL; } new_value = (JSON_Value*)parson_malloc(sizeof(JSON_Value)); @@ -1339,10 +1669,13 @@ JSON_Value * json_value_init_null(void) { JSON_Value * json_value_deep_copy(const JSON_Value *value) { size_t i = 0; JSON_Value *return_value = NULL, *temp_value_copy = NULL, *temp_value = NULL; - const char *temp_string = NULL, *temp_key = NULL; + const JSON_String *temp_string = NULL; + const char *temp_key = NULL; char *temp_string_copy = NULL; JSON_Array *temp_array = NULL, *temp_array_copy = NULL; JSON_Object *temp_object = NULL, *temp_object_copy = NULL; + JSON_Status res = JSONFailure; + char *key_copy = NULL; switch (json_value_get_type(value)) { case JSONArray: @@ -1359,7 +1692,7 @@ JSON_Value * json_value_deep_copy(const JSON_Value *value) { json_value_free(return_value); return NULL; } - if (json_array_add(temp_array_copy, temp_value_copy) == JSONFailure) { + if (json_array_add(temp_array_copy, temp_value_copy) != JSONSuccess) { json_value_free(return_value); json_value_free(temp_value_copy); return NULL; @@ -1369,7 +1702,7 @@ JSON_Value * json_value_deep_copy(const JSON_Value *value) { case JSONObject: temp_object = json_value_get_object(value); return_value = json_value_init_object(); - if (return_value == NULL) { + if (!return_value) { return NULL; } temp_object_copy = json_value_get_object(return_value); @@ -1377,13 +1710,21 @@ JSON_Value * json_value_deep_copy(const JSON_Value *value) { temp_key = json_object_get_name(temp_object, i); temp_value = json_object_get_value(temp_object, temp_key); temp_value_copy = json_value_deep_copy(temp_value); - if (temp_value_copy == NULL) { + if (!temp_value_copy) { json_value_free(return_value); return NULL; } - if (json_object_add(temp_object_copy, temp_key, temp_value_copy) == JSONFailure) { + key_copy = parson_strdup(temp_key); + if (!key_copy) { + json_value_free(temp_value_copy); json_value_free(return_value); + return NULL; + } + res = json_object_add(temp_object_copy, key_copy, temp_value_copy); + if (res != JSONSuccess) { + parson_free(key_copy); json_value_free(temp_value_copy); + json_value_free(return_value); return NULL; } } @@ -1393,15 +1734,15 @@ JSON_Value * json_value_deep_copy(const JSON_Value *value) { case JSONNumber: return json_value_init_number(json_value_get_number(value)); case JSONString: - temp_string = json_value_get_string(value); + temp_string = json_value_get_string_desc(value); if (temp_string == NULL) { return NULL; } - temp_string_copy = parson_strdup(temp_string); + temp_string_copy = parson_strndup(temp_string->chars, temp_string->length); if (temp_string_copy == NULL) { return NULL; } - return_value = json_value_init_string_no_copy(temp_string_copy); + return_value = json_value_init_string_no_copy(temp_string_copy, temp_string->length); if (return_value == NULL) { parson_free(temp_string_copy); } @@ -1416,9 +1757,9 @@ JSON_Value * json_value_deep_copy(const JSON_Value *value) { } size_t json_serialization_size(const JSON_Value *value) { - char num_buf[1100]; /* recursively allocating buffer on stack is a bad idea, so let's do it only once */ - int res = json_serialize_to_buffer_r(value, NULL, 0, 0, num_buf); - return res < 0 ? 0 : (size_t)(res + 1); + char num_buf[NUM_BUF_SIZE]; /* recursively allocating buffer on stack is a bad idea, so let's do it only once */ + int res = json_serialize_to_buffer_r(value, NULL, 0, PARSON_FALSE, num_buf); + return res < 0 ? 0 : (size_t)(res) + 1; } JSON_Status json_serialize_to_buffer(const JSON_Value *value, char *buf, size_t buf_size_in_bytes) { @@ -1427,7 +1768,7 @@ JSON_Status json_serialize_to_buffer(const JSON_Value *value, char *buf, size_t if (needed_size_in_bytes == 0 || buf_size_in_bytes < needed_size_in_bytes) { return JSONFailure; } - written = json_serialize_to_buffer_r(value, buf, 0, 0, NULL); + written = json_serialize_to_buffer_r(value, buf, 0, PARSON_FALSE, NULL); if (written < 0) { return JSONFailure; } @@ -1441,7 +1782,7 @@ JSON_Status json_serialize_to_file(const JSON_Value *value, const char *filename if (serialized_string == NULL) { return JSONFailure; } - fp = fopen (filename, "w"); + fp = fopen(filename, "w"); if (fp == NULL) { json_free_serialized_string(serialized_string); return JSONFailure; @@ -1468,7 +1809,7 @@ char * json_serialize_to_string(const JSON_Value *value) { return NULL; } serialization_result = json_serialize_to_buffer(value, buf, buf_size_bytes); - if (serialization_result == JSONFailure) { + if (serialization_result != JSONSuccess) { json_free_serialized_string(buf); return NULL; } @@ -1476,9 +1817,9 @@ char * json_serialize_to_string(const JSON_Value *value) { } size_t json_serialization_size_pretty(const JSON_Value *value) { - char num_buf[1100]; /* recursively allocating buffer on stack is a bad idea, so let's do it only once */ - int res = json_serialize_to_buffer_r(value, NULL, 0, 1, num_buf); - return res < 0 ? 0 : (size_t)(res + 1); + char num_buf[NUM_BUF_SIZE]; /* recursively allocating buffer on stack is a bad idea, so let's do it only once */ + int res = json_serialize_to_buffer_r(value, NULL, 0, PARSON_TRUE, num_buf); + return res < 0 ? 0 : (size_t)(res) + 1; } JSON_Status json_serialize_to_buffer_pretty(const JSON_Value *value, char *buf, size_t buf_size_in_bytes) { @@ -1487,7 +1828,7 @@ JSON_Status json_serialize_to_buffer_pretty(const JSON_Value *value, char *buf, if (needed_size_in_bytes == 0 || buf_size_in_bytes < needed_size_in_bytes) { return JSONFailure; } - written = json_serialize_to_buffer_r(value, buf, 0, 1, NULL); + written = json_serialize_to_buffer_r(value, buf, 0, PARSON_TRUE, NULL); if (written < 0) { return JSONFailure; } @@ -1501,7 +1842,7 @@ JSON_Status json_serialize_to_file_pretty(const JSON_Value *value, const char *f if (serialized_string == NULL) { return JSONFailure; } - fp = fopen (filename, "w"); + fp = fopen(filename, "w"); if (fp == NULL) { json_free_serialized_string(serialized_string); return JSONFailure; @@ -1528,7 +1869,7 @@ char * json_serialize_to_string_pretty(const JSON_Value *value) { return NULL; } serialization_result = json_serialize_to_buffer_pretty(value, buf, buf_size_bytes); - if (serialization_result == JSONFailure) { + if (serialization_result != JSONSuccess) { json_free_serialized_string(buf); return NULL; } @@ -1566,7 +1907,19 @@ JSON_Status json_array_replace_string(JSON_Array *array, size_t i, const char* s if (value == NULL) { return JSONFailure; } - if (json_array_replace_value(array, i, value) == JSONFailure) { + if (json_array_replace_value(array, i, value) != JSONSuccess) { + json_value_free(value); + return JSONFailure; + } + return JSONSuccess; +} + +JSON_Status json_array_replace_string_with_len(JSON_Array *array, size_t i, const char *string, size_t len) { + JSON_Value *value = json_value_init_string_with_len(string, len); + if (value == NULL) { + return JSONFailure; + } + if (json_array_replace_value(array, i, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1578,7 +1931,7 @@ JSON_Status json_array_replace_number(JSON_Array *array, size_t i, double number if (value == NULL) { return JSONFailure; } - if (json_array_replace_value(array, i, value) == JSONFailure) { + if (json_array_replace_value(array, i, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1590,7 +1943,7 @@ JSON_Status json_array_replace_boolean(JSON_Array *array, size_t i, int boolean) if (value == NULL) { return JSONFailure; } - if (json_array_replace_value(array, i, value) == JSONFailure) { + if (json_array_replace_value(array, i, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1602,7 +1955,7 @@ JSON_Status json_array_replace_null(JSON_Array *array, size_t i) { if (value == NULL) { return JSONFailure; } - if (json_array_replace_value(array, i, value) == JSONFailure) { + if (json_array_replace_value(array, i, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1633,7 +1986,19 @@ JSON_Status json_array_append_string(JSON_Array *array, const char *string) { if (value == NULL) { return JSONFailure; } - if (json_array_append_value(array, value) == JSONFailure) { + if (json_array_append_value(array, value) != JSONSuccess) { + json_value_free(value); + return JSONFailure; + } + return JSONSuccess; +} + +JSON_Status json_array_append_string_with_len(JSON_Array *array, const char *string, size_t len) { + JSON_Value *value = json_value_init_string_with_len(string, len); + if (value == NULL) { + return JSONFailure; + } + if (json_array_append_value(array, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1645,7 +2010,7 @@ JSON_Status json_array_append_number(JSON_Array *array, double number) { if (value == NULL) { return JSONFailure; } - if (json_array_append_value(array, value) == JSONFailure) { + if (json_array_append_value(array, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1657,7 +2022,7 @@ JSON_Status json_array_append_boolean(JSON_Array *array, int boolean) { if (value == NULL) { return JSONFailure; } - if (json_array_append_value(array, value) == JSONFailure) { + if (json_array_append_value(array, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1669,7 +2034,7 @@ JSON_Status json_array_append_null(JSON_Array *array) { if (value == NULL) { return JSONFailure; } - if (json_array_append_value(array, value) == JSONFailure) { + if (json_array_append_value(array, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1677,72 +2042,142 @@ JSON_Status json_array_append_null(JSON_Array *array) { } JSON_Status json_object_set_value(JSON_Object *object, const char *name, JSON_Value *value) { - size_t i = 0; - JSON_Value *old_value; - if (object == NULL || name == NULL || value == NULL || value->parent != NULL) { + unsigned long hash = 0; + parson_bool_t found = PARSON_FALSE; + size_t cell_ix = 0; + size_t item_ix = 0; + JSON_Value *old_value = NULL; + char *key_copy = NULL; + + if (!object || !name || !value || value->parent) { return JSONFailure; } - old_value = json_object_get_value(object, name); - if (old_value != NULL) { /* free and overwrite old value */ + hash = hash_string(name, strlen(name)); + found = PARSON_FALSE; + cell_ix = json_object_get_cell_ix(object, name, strlen(name), hash, &found); + if (found) { + item_ix = object->cells[cell_ix]; + old_value = object->values[item_ix]; json_value_free(old_value); - for (i = 0; i < json_object_get_count(object); i++) { - if (strcmp(object->names[i], name) == 0) { - value->parent = json_object_get_wrapping_value(object); - object->values[i] = value; - return JSONSuccess; - } + object->values[item_ix] = value; + value->parent = json_object_get_wrapping_value(object); + return JSONSuccess; + } + if (object->count >= object->item_capacity) { + JSON_Status res = json_object_grow_and_rehash(object); + if (res != JSONSuccess) { + return JSONFailure; } + cell_ix = json_object_get_cell_ix(object, name, strlen(name), hash, &found); + } + key_copy = parson_strdup(name); + if (!key_copy) { + return JSONFailure; } - /* add new key value pair */ - return json_object_add(object, name, value); + object->names[object->count] = key_copy; + object->cells[cell_ix] = object->count; + object->values[object->count] = value; + object->cell_ixs[object->count] = cell_ix; + object->hashes[object->count] = hash; + object->count++; + value->parent = json_object_get_wrapping_value(object); + return JSONSuccess; } JSON_Status json_object_set_string(JSON_Object *object, const char *name, const char *string) { - return json_object_set_value(object, name, json_value_init_string(string)); + JSON_Value *value = json_value_init_string(string); + JSON_Status status = json_object_set_value(object, name, value); + if (status != JSONSuccess) { + json_value_free(value); + } + return status; +} + +JSON_Status json_object_set_string_with_len(JSON_Object *object, const char *name, const char *string, size_t len) { + JSON_Value *value = json_value_init_string_with_len(string, len); + JSON_Status status = json_object_set_value(object, name, value); + if (status != JSONSuccess) { + json_value_free(value); + } + return status; } JSON_Status json_object_set_number(JSON_Object *object, const char *name, double number) { - return json_object_set_value(object, name, json_value_init_number(number)); + JSON_Value *value = json_value_init_number(number); + JSON_Status status = json_object_set_value(object, name, value); + if (status != JSONSuccess) { + json_value_free(value); + } + return status; } JSON_Status json_object_set_boolean(JSON_Object *object, const char *name, int boolean) { - return json_object_set_value(object, name, json_value_init_boolean(boolean)); + JSON_Value *value = json_value_init_boolean(boolean); + JSON_Status status = json_object_set_value(object, name, value); + if (status != JSONSuccess) { + json_value_free(value); + } + return status; } JSON_Status json_object_set_null(JSON_Object *object, const char *name) { - return json_object_set_value(object, name, json_value_init_null()); + JSON_Value *value = json_value_init_null(); + JSON_Status status = json_object_set_value(object, name, value); + if (status != JSONSuccess) { + json_value_free(value); + } + return status; } JSON_Status json_object_dotset_value(JSON_Object *object, const char *name, JSON_Value *value) { const char *dot_pos = NULL; - char *current_name = NULL; - JSON_Object *temp_obj = NULL; - JSON_Value *new_value = NULL; - if (value == NULL || name == NULL || value == NULL) { + JSON_Value *temp_value = NULL, *new_value = NULL; + JSON_Object *temp_object = NULL, *new_object = NULL; + JSON_Status status = JSONFailure; + size_t name_len = 0; + char *name_copy = NULL; + + if (object == NULL || name == NULL || value == NULL) { return JSONFailure; } dot_pos = strchr(name, '.'); if (dot_pos == NULL) { return json_object_set_value(object, name, value); - } else { - current_name = parson_strndup(name, dot_pos - name); - temp_obj = json_object_get_object(object, current_name); - if (temp_obj == NULL) { - new_value = json_value_init_object(); - if (new_value == NULL) { - parson_free(current_name); - return JSONFailure; - } - if (json_object_add(object, current_name, new_value) == JSONFailure) { - json_value_free(new_value); - parson_free(current_name); - return JSONFailure; - } - temp_obj = json_object_get_object(object, current_name); + } + name_len = dot_pos - name; + temp_value = json_object_getn_value(object, name, name_len); + if (temp_value) { + /* Don't overwrite existing non-object (unlike json_object_set_value, but it shouldn't be changed at this point) */ + if (json_value_get_type(temp_value) != JSONObject) { + return JSONFailure; } - parson_free(current_name); - return json_object_dotset_value(temp_obj, dot_pos + 1, value); + temp_object = json_value_get_object(temp_value); + return json_object_dotset_value(temp_object, dot_pos + 1, value); + } + new_value = json_value_init_object(); + if (new_value == NULL) { + return JSONFailure; + } + new_object = json_value_get_object(new_value); + status = json_object_dotset_value(new_object, dot_pos + 1, value); + if (status != JSONSuccess) { + json_value_free(new_value); + return JSONFailure; } + name_copy = parson_strndup(name, name_len); + if (!name_copy) { + json_object_dotremove_internal(new_object, dot_pos + 1, 0); + json_value_free(new_value); + return JSONFailure; + } + status = json_object_add(object, name_copy, new_value); + if (status != JSONSuccess) { + parson_free(name_copy); + json_object_dotremove_internal(new_object, dot_pos + 1, 0); + json_value_free(new_value); + return JSONFailure; + } + return JSONSuccess; } JSON_Status json_object_dotset_string(JSON_Object *object, const char *name, const char *string) { @@ -1750,7 +2185,19 @@ JSON_Status json_object_dotset_string(JSON_Object *object, const char *name, con if (value == NULL) { return JSONFailure; } - if (json_object_dotset_value(object, name, value) == JSONFailure) { + if (json_object_dotset_value(object, name, value) != JSONSuccess) { + json_value_free(value); + return JSONFailure; + } + return JSONSuccess; +} + +JSON_Status json_object_dotset_string_with_len(JSON_Object *object, const char *name, const char *string, size_t len) { + JSON_Value *value = json_value_init_string_with_len(string, len); + if (value == NULL) { + return JSONFailure; + } + if (json_object_dotset_value(object, name, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1762,7 +2209,7 @@ JSON_Status json_object_dotset_number(JSON_Object *object, const char *name, dou if (value == NULL) { return JSONFailure; } - if (json_object_dotset_value(object, name, value) == JSONFailure) { + if (json_object_dotset_value(object, name, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1774,7 +2221,7 @@ JSON_Status json_object_dotset_boolean(JSON_Object *object, const char *name, in if (value == NULL) { return JSONFailure; } - if (json_object_dotset_value(object, name, value) == JSONFailure) { + if (json_object_dotset_value(object, name, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1786,7 +2233,7 @@ JSON_Status json_object_dotset_null(JSON_Object *object, const char *name) { if (value == NULL) { return JSONFailure; } - if (json_object_dotset_value(object, name, value) == JSONFailure) { + if (json_object_dotset_value(object, name, value) != JSONSuccess) { json_value_free(value); return JSONFailure; } @@ -1794,41 +2241,11 @@ JSON_Status json_object_dotset_null(JSON_Object *object, const char *name) { } JSON_Status json_object_remove(JSON_Object *object, const char *name) { - size_t i = 0, last_item_index = 0; - if (object == NULL || json_object_get_value(object, name) == NULL) { - return JSONFailure; - } - last_item_index = json_object_get_count(object) - 1; - for (i = 0; i < json_object_get_count(object); i++) { - if (strcmp(object->names[i], name) == 0) { - parson_free(object->names[i]); - json_value_free(object->values[i]); - if (i != last_item_index) { /* Replace key value pair with one from the end */ - object->names[i] = object->names[last_item_index]; - object->values[i] = object->values[last_item_index]; - } - object->count -= 1; - return JSONSuccess; - } - } - return JSONFailure; /* No execution path should end here */ + return json_object_remove_internal(object, name, PARSON_TRUE); } JSON_Status json_object_dotremove(JSON_Object *object, const char *name) { - const char *dot_pos = strchr(name, '.'); - char *current_name = NULL; - JSON_Object *temp_obj = NULL; - if (dot_pos == NULL) { - return json_object_remove(object, name); - } else { - current_name = parson_strndup(name, dot_pos - name); - temp_obj = json_object_get_object(object, current_name); - parson_free(current_name); - if (temp_obj == NULL) { - return JSONFailure; - } - return json_object_dotremove(temp_obj, dot_pos + 1); - } + return json_object_dotremove_internal(object, name, PARSON_TRUE); } JSON_Status json_object_clear(JSON_Object *object) { @@ -1871,7 +2288,7 @@ JSON_Status json_validate(const JSON_Value *schema, const JSON_Value *value) { temp_schema_value = json_array_get_value(schema_array, 0); for (i = 0; i < json_array_get_count(value_array); i++) { temp_value = json_array_get_value(value_array, i); - if (json_validate(temp_schema_value, temp_value) == JSONFailure) { + if (json_validate(temp_schema_value, temp_value) != JSONSuccess) { return JSONFailure; } } @@ -1892,7 +2309,7 @@ JSON_Status json_validate(const JSON_Value *schema, const JSON_Value *value) { if (temp_value == NULL) { return JSONFailure; } - if (json_validate(temp_schema_value, temp_value) == JSONFailure) { + if (json_validate(temp_schema_value, temp_value) != JSONSuccess) { return JSONFailure; } } @@ -1907,14 +2324,14 @@ JSON_Status json_validate(const JSON_Value *schema, const JSON_Value *value) { int json_value_equals(const JSON_Value *a, const JSON_Value *b) { JSON_Object *a_object = NULL, *b_object = NULL; JSON_Array *a_array = NULL, *b_array = NULL; - const char *a_string = NULL, *b_string = NULL; + const JSON_String *a_string = NULL, *b_string = NULL; const char *key = NULL; size_t a_count = 0, b_count = 0, i = 0; JSON_Value_Type a_type, b_type; a_type = json_value_get_type(a); b_type = json_value_get_type(b); if (a_type != b_type) { - return 0; + return PARSON_FALSE; } switch (a_type) { case JSONArray: @@ -1923,48 +2340,49 @@ int json_value_equals(const JSON_Value *a, const JSON_Value *b) { a_count = json_array_get_count(a_array); b_count = json_array_get_count(b_array); if (a_count != b_count) { - return 0; + return PARSON_FALSE; } for (i = 0; i < a_count; i++) { if (!json_value_equals(json_array_get_value(a_array, i), json_array_get_value(b_array, i))) { - return 0; + return PARSON_FALSE; } } - return 1; + return PARSON_TRUE; case JSONObject: a_object = json_value_get_object(a); b_object = json_value_get_object(b); a_count = json_object_get_count(a_object); b_count = json_object_get_count(b_object); if (a_count != b_count) { - return 0; + return PARSON_FALSE; } for (i = 0; i < a_count; i++) { key = json_object_get_name(a_object, i); if (!json_value_equals(json_object_get_value(a_object, key), json_object_get_value(b_object, key))) { - return 0; + return PARSON_FALSE; } } - return 1; + return PARSON_TRUE; case JSONString: - a_string = json_value_get_string(a); - b_string = json_value_get_string(b); + a_string = json_value_get_string_desc(a); + b_string = json_value_get_string_desc(b); if (a_string == NULL || b_string == NULL) { - return 0; /* shouldn't happen */ + return PARSON_FALSE; /* shouldn't happen */ } - return strcmp(a_string, b_string) == 0; + return a_string->length == b_string->length && + memcmp(a_string->chars, b_string->chars, a_string->length) == 0; case JSONBoolean: return json_value_get_boolean(a) == json_value_get_boolean(b); case JSONNumber: return fabs(json_value_get_number(a) - json_value_get_number(b)) < 0.000001; /* EPSILON */ case JSONError: - return 1; + return PARSON_TRUE; case JSONNull: - return 1; + return PARSON_TRUE; default: - return 1; + return PARSON_TRUE; } } @@ -1976,15 +2394,19 @@ JSON_Object * json_object (const JSON_Value *value) { return json_value_get_object(value); } -JSON_Array * json_array (const JSON_Value *value) { +JSON_Array * json_array(const JSON_Value *value) { return json_value_get_array(value); } -const char * json_string (const JSON_Value *value) { +const char * json_string(const JSON_Value *value) { return json_value_get_string(value); } -double json_number (const JSON_Value *value) { +size_t json_string_len(const JSON_Value *value) { + return json_value_get_string_len(value); +} + +double json_number(const JSON_Value *value) { return json_value_get_number(value); } @@ -1996,3 +2418,7 @@ void json_set_allocation_functions(JSON_Malloc_Function malloc_fun, JSON_Free_Fu parson_malloc = malloc_fun; parson_free = free_fun; } + +void json_set_escape_slashes(int escape_slashes) { + parson_escape_slashes = escape_slashes; +} diff --git a/third_party/parson/parson.h b/third_party/parson/parson.h index 6438c9367a..beeca4cb49 100644 --- a/third_party/parson/parson.h +++ b/third_party/parson/parson.h @@ -1,6 +1,8 @@ /* - Parson ( http://kgabis.github.com/parson/ ) - Copyright (c) 2012 - 2017 Krzysztof Gabis + SPDX-License-Identifier: MIT + + Parson 1.2.1 ( http://kgabis.github.com/parson/ ) + Copyright (c) 2012 - 2021 Krzysztof Gabis Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,6 +31,12 @@ extern "C" { #endif +#define PARSON_VERSION_MAJOR 1 +#define PARSON_VERSION_MINOR 2 +#define PARSON_VERSION_PATCH 1 + +#define PARSON_VERSION_STRING "1.2.1" + #include <stddef.h> /* size_t */ /* Types and enums */ @@ -60,6 +68,10 @@ typedef void (*JSON_Free_Function)(void *); from stdlib will be used for all allocations */ void json_set_allocation_functions(JSON_Malloc_Function malloc_fun, JSON_Free_Function free_fun); +/* Sets if slashes should be escaped or not when serializing JSON. By default slashes are escaped. + This function sets a global setting and is not thread safe. */ +void json_set_escape_slashes(int escape_slashes); + /* Parses first JSON value in a file, returns NULL in case of error */ JSON_Value * json_parse_file(const char *filename); @@ -108,6 +120,7 @@ JSON_Status json_validate(const JSON_Value *schema, const JSON_Value *value); */ JSON_Value * json_object_get_value (const JSON_Object *object, const char *name); const char * json_object_get_string (const JSON_Object *object, const char *name); +size_t json_object_get_string_len(const JSON_Object *object, const char *name); /* doesn't account for last null character */ JSON_Object * json_object_get_object (const JSON_Object *object, const char *name); JSON_Array * json_object_get_array (const JSON_Object *object, const char *name); double json_object_get_number (const JSON_Object *object, const char *name); /* returns 0 on fail */ @@ -119,6 +132,7 @@ int json_object_get_boolean(const JSON_Object *object, const char *nam this way. */ JSON_Value * json_object_dotget_value (const JSON_Object *object, const char *name); const char * json_object_dotget_string (const JSON_Object *object, const char *name); +size_t json_object_dotget_string_len(const JSON_Object *object, const char *name); /* doesn't account for last null character */ JSON_Object * json_object_dotget_object (const JSON_Object *object, const char *name); JSON_Array * json_object_dotget_array (const JSON_Object *object, const char *name); double json_object_dotget_number (const JSON_Object *object, const char *name); /* returns 0 on fail */ @@ -142,6 +156,7 @@ int json_object_dothas_value_of_type(const JSON_Object *object, const char *name * json_object_set_value does not copy passed value so it shouldn't be freed afterwards. */ JSON_Status json_object_set_value(JSON_Object *object, const char *name, JSON_Value *value); JSON_Status json_object_set_string(JSON_Object *object, const char *name, const char *string); +JSON_Status json_object_set_string_with_len(JSON_Object *object, const char *name, const char *string, size_t len); /* length shouldn't include last null character */ JSON_Status json_object_set_number(JSON_Object *object, const char *name, double number); JSON_Status json_object_set_boolean(JSON_Object *object, const char *name, int boolean); JSON_Status json_object_set_null(JSON_Object *object, const char *name); @@ -150,6 +165,7 @@ JSON_Status json_object_set_null(JSON_Object *object, const char *name); * json_object_dotset_value does not copy passed value so it shouldn't be freed afterwards. */ JSON_Status json_object_dotset_value(JSON_Object *object, const char *name, JSON_Value *value); JSON_Status json_object_dotset_string(JSON_Object *object, const char *name, const char *string); +JSON_Status json_object_dotset_string_with_len(JSON_Object *object, const char *name, const char *string, size_t len); /* length shouldn't include last null character */ JSON_Status json_object_dotset_number(JSON_Object *object, const char *name, double number); JSON_Status json_object_dotset_boolean(JSON_Object *object, const char *name, int boolean); JSON_Status json_object_dotset_null(JSON_Object *object, const char *name); @@ -168,13 +184,14 @@ JSON_Status json_object_clear(JSON_Object *object); */ JSON_Value * json_array_get_value (const JSON_Array *array, size_t index); const char * json_array_get_string (const JSON_Array *array, size_t index); +size_t json_array_get_string_len(const JSON_Array *array, size_t index); /* doesn't account for last null character */ JSON_Object * json_array_get_object (const JSON_Array *array, size_t index); JSON_Array * json_array_get_array (const JSON_Array *array, size_t index); double json_array_get_number (const JSON_Array *array, size_t index); /* returns 0 on fail */ int json_array_get_boolean(const JSON_Array *array, size_t index); /* returns -1 on fail */ size_t json_array_get_count (const JSON_Array *array); JSON_Value * json_array_get_wrapping_value(const JSON_Array *array); - + /* Frees and removes value at given index, does nothing and returns JSONFailure if index doesn't exist. * Order of values in array may change during execution. */ JSON_Status json_array_remove(JSON_Array *array, size_t i); @@ -184,6 +201,7 @@ JSON_Status json_array_remove(JSON_Array *array, size_t i); * json_array_replace_value does not copy passed value so it shouldn't be freed afterwards. */ JSON_Status json_array_replace_value(JSON_Array *array, size_t i, JSON_Value *value); JSON_Status json_array_replace_string(JSON_Array *array, size_t i, const char* string); +JSON_Status json_array_replace_string_with_len(JSON_Array *array, size_t i, const char *string, size_t len); /* length shouldn't include last null character */ JSON_Status json_array_replace_number(JSON_Array *array, size_t i, double number); JSON_Status json_array_replace_boolean(JSON_Array *array, size_t i, int boolean); JSON_Status json_array_replace_null(JSON_Array *array, size_t i); @@ -195,6 +213,7 @@ JSON_Status json_array_clear(JSON_Array *array); * json_array_append_value does not copy passed value so it shouldn't be freed afterwards. */ JSON_Status json_array_append_value(JSON_Array *array, JSON_Value *value); JSON_Status json_array_append_string(JSON_Array *array, const char *string); +JSON_Status json_array_append_string_with_len(JSON_Array *array, const char *string, size_t len); /* length shouldn't include last null character */ JSON_Status json_array_append_number(JSON_Array *array, double number); JSON_Status json_array_append_boolean(JSON_Array *array, int boolean); JSON_Status json_array_append_null(JSON_Array *array); @@ -205,6 +224,7 @@ JSON_Status json_array_append_null(JSON_Array *array); JSON_Value * json_value_init_object (void); JSON_Value * json_value_init_array (void); JSON_Value * json_value_init_string (const char *string); /* copies passed string */ +JSON_Value * json_value_init_string_with_len(const char *string, size_t length); /* copies passed string, length shouldn't include last null character */ JSON_Value * json_value_init_number (double number); JSON_Value * json_value_init_boolean(int boolean); JSON_Value * json_value_init_null (void); @@ -215,6 +235,7 @@ JSON_Value_Type json_value_get_type (const JSON_Value *value); JSON_Object * json_value_get_object (const JSON_Value *value); JSON_Array * json_value_get_array (const JSON_Value *value); const char * json_value_get_string (const JSON_Value *value); +size_t json_value_get_string_len(const JSON_Value *value); /* doesn't account for last null character */ double json_value_get_number (const JSON_Value *value); int json_value_get_boolean(const JSON_Value *value); JSON_Value * json_value_get_parent (const JSON_Value *value); @@ -224,6 +245,7 @@ JSON_Value_Type json_type (const JSON_Value *value); JSON_Object * json_object (const JSON_Value *value); JSON_Array * json_array (const JSON_Value *value); const char * json_string (const JSON_Value *value); +size_t json_string_len(const JSON_Value *value); /* doesn't account for last null character */ double json_number (const JSON_Value *value); int json_boolean(const JSON_Value *value); diff --git a/third_party/sqlite/sqlite3.c b/third_party/sqlite/sqlite3.c index ce4f343fdc..251d005555 100644 --- a/third_party/sqlite/sqlite3.c +++ b/third_party/sqlite/sqlite3.c @@ -110245,9 +110245,9 @@ static void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ ** handle the rounding directly, ** otherwise use printf. */ - if( n==0 && r>=0 && r<LARGEST_INT64-1 ){ + if( n==0 && r>=0 && r< (double)(LARGEST_INT64) -1 ){ r = (double)((sqlite_int64)(r+0.5)); - }else if( n==0 && r<0 && (-r)<LARGEST_INT64-1 ){ + }else if( n==0 && r<0 && (-r)< (double)(LARGEST_INT64) -1 ){ r = -(double)((sqlite_int64)((-r)+0.5)); }else{ zBuf = sqlite3_mprintf("%.*f",n,r); diff --git a/third_party/zlib/AMBuilder b/third_party/zlib/AMBuilder index 02a9175bc5..df1856cf92 100644 --- a/third_party/zlib/AMBuilder +++ b/third_party/zlib/AMBuilder @@ -3,7 +3,7 @@ import os, platform lib = builder.compiler.StaticLibrary('zlib') -if builder.target_platform is 'linux' or builder.target_platform is 'mac': +if builder.target_platform == 'linux' or builder.target_platform == 'mac': lib.compiler.defines += [ 'HAVE_UNISTD_H' ]