mirror of
https://github.com/roflmuffin/CounterStrikeSharp.git
synced 2025-12-06 08:03:12 -08:00
Compare commits
76 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8451c2818 | ||
|
|
a87bd25b48 | ||
|
|
9c5468e5ba | ||
|
|
f826be664f | ||
|
|
7f5103d9ee | ||
|
|
877b7c5a4a | ||
|
|
24363d6352 | ||
|
|
2eaf7c2d8c | ||
|
|
8b486ecf7e | ||
|
|
54cc93e0f8 | ||
|
|
a695eec4fa | ||
|
|
e207be2fbf | ||
|
|
eea64519a6 | ||
|
|
13ec19e412 | ||
|
|
3240a5e582 | ||
|
|
cafc4e237f | ||
|
|
02d5191e74 | ||
|
|
aec696abc0 | ||
|
|
c01aeec14b | ||
|
|
41e7bee85a | ||
|
|
9834271956 | ||
|
|
fb5967d102 | ||
|
|
928bc3f74d | ||
|
|
6a7d7dba4f | ||
|
|
11e5e9972d | ||
|
|
9a221b4ebb | ||
|
|
e270bdfd44 | ||
|
|
f591fe58d0 | ||
|
|
052cb4e14e | ||
|
|
bc3bec4aa8 | ||
|
|
20bab7f4a8 | ||
|
|
c7eac71109 | ||
|
|
e3d2370e2e | ||
|
|
142242744c | ||
|
|
0eebffd860 | ||
|
|
25ca5dbe0c | ||
|
|
7cae4be96d | ||
|
|
83bc1a95fb | ||
|
|
71c694b52e | ||
|
|
a452d79ba3 | ||
|
|
dfc9859806 | ||
|
|
f99f58402a | ||
|
|
6317559bd2 | ||
|
|
ad6e1ca2e2 | ||
|
|
2564ef9f39 | ||
|
|
83a341d3cf | ||
|
|
534fc42444 | ||
|
|
41355d05fa | ||
|
|
d9da15be83 | ||
|
|
75e2f6e8aa | ||
|
|
37b34e1d41 | ||
|
|
5ce04649fd | ||
|
|
7b7202fe8a | ||
|
|
cadb817ed2 | ||
|
|
211516cce5 | ||
|
|
ab211a42e6 | ||
|
|
696ecadee4 | ||
|
|
e4d598dba8 | ||
|
|
5c67d88844 | ||
|
|
9d8b6beae6 | ||
|
|
39604b7ad7 | ||
|
|
1b1f1d04dd | ||
|
|
dbc348c1bf | ||
|
|
d295589c44 | ||
|
|
16767fd494 | ||
|
|
36a97bfffd | ||
|
|
178f7472c6 | ||
|
|
cba5144bbf | ||
|
|
0de951cb6f | ||
|
|
c3d44a87bc | ||
|
|
bd3c0c76e3 | ||
|
|
656c0e3a84 | ||
|
|
40c842149c | ||
|
|
64d1c0a9f4 | ||
|
|
a6de51c444 | ||
|
|
2535ac0575 |
@@ -1,21 +1,72 @@
|
||||
BasedOnStyle: LLVM
|
||||
|
||||
# Spacing
|
||||
IndentWidth: 4
|
||||
ColumnLimit: 100
|
||||
UseTab: Never
|
||||
ColumnLimit: 140
|
||||
|
||||
# Line Endings
|
||||
LineEnding: LF
|
||||
InsertNewlineAtEOF: true
|
||||
DerivePointerAlignment: false
|
||||
PointerAlignment: Left
|
||||
|
||||
AlignAfterOpenBracket: Align
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
SortIncludes: false
|
||||
SpaceBeforeParens: ControlStatements
|
||||
AllowAllArgumentsOnNextLine: true
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
IndentCaseLabels: false
|
||||
IndentCaseLabels: true
|
||||
|
||||
# Line Breaks
|
||||
BreakBeforeBraces: Custom
|
||||
BraceWrapping:
|
||||
AfterCaseLabel: true
|
||||
AfterClass: true
|
||||
AfterStruct: true
|
||||
AfterControlStatement: Always
|
||||
AfterEnum: true
|
||||
AfterUnion: true
|
||||
AfterNamespace: false
|
||||
AfterFunction: true
|
||||
AfterNamespace: false
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
AfterExternBlock: true
|
||||
BeforeCatch: true
|
||||
BeforeElse: true
|
||||
BeforeLambdaBody: false
|
||||
BeforeWhile: false
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: true
|
||||
SplitEmptyRecord: true
|
||||
SplitEmptyNamespace: true
|
||||
|
||||
PointerAlignment: Left
|
||||
SortIncludes: CaseSensitive
|
||||
IncludeBlocks: Regroup
|
||||
IncludeCategories:
|
||||
# External headers in <> with extension or /
|
||||
- Regex: '<[-\w\/-_]+[\.\/][-\w\/-_]+>'
|
||||
Priority: 2
|
||||
# Standard headers in <>
|
||||
- Regex: '<[-\w\/-_]+>'
|
||||
Priority: 3
|
||||
# Local headers in ""
|
||||
- Regex: '"[-\w\/-_]*"'
|
||||
Priority: 4
|
||||
|
||||
ReflowComments: true
|
||||
CompactNamespaces: false
|
||||
Cpp11BracedListStyle: false
|
||||
|
||||
AlignConsecutiveMacros:
|
||||
Enabled: true
|
||||
AcrossEmptyLines: false
|
||||
AcrossComments: false
|
||||
|
||||
AlignEscapedNewlines: Left
|
||||
AlignTrailingComments: Never
|
||||
|
||||
AllowShortBlocksOnASingleLine: Empty
|
||||
AllowShortIfStatementsOnASingleLine: OnlyFirstIf
|
||||
AllowShortLambdasOnASingleLine: Empty
|
||||
BinPackArguments: true
|
||||
BinPackParameters: false
|
||||
|
||||
LambdaBodyIndentation: OuterScope
|
||||
|
||||
11
.devcontainer/linux/devcontainer.json
Normal file
11
.devcontainer/linux/devcontainer.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "SteamRT Sniper SDK",
|
||||
"image": "registry.gitlab.steamos.cloud/steamrt/sniper/sdk:latest",
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"ms-vscode.cpptools"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
14
.editorconfig
Normal file
14
.editorconfig
Normal file
@@ -0,0 +1,14 @@
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
max_line_length = 140
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[{*.json,*.yaml,*.yml}]
|
||||
indent_size = 2
|
||||
12
.github/dependabot.yaml
vendored
Normal file
12
.github/dependabot.yaml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
version: 2
|
||||
updates:
|
||||
# Update the submodule in libraries/hl2sdk-cs2 every day
|
||||
- package-ecosystem: "gitsubmodule"
|
||||
directory: "/"
|
||||
allow:
|
||||
- dependency-name: "libraries/hl2sdk-cs2"
|
||||
- dependency-name: "libraries/metamod-source"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
commit-message:
|
||||
prefix: "chore(deps)"
|
||||
99
.github/workflows/cmake-single-platform.yml
vendored
99
.github/workflows/cmake-single-platform.yml
vendored
@@ -3,22 +3,46 @@ name: Build & Publish
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- 'docfx/**'
|
||||
branches: [ "main", "dev" ]
|
||||
- "docfx/**"
|
||||
branches: ["main", "dev"]
|
||||
pull_request:
|
||||
branches: [ "main", "dev" ]
|
||||
branches: ["main", "dev"]
|
||||
|
||||
env:
|
||||
BUILD_TYPE: Release
|
||||
|
||||
jobs:
|
||||
setup:
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
buildnumber: ${{ steps.buildnumber.outputs.build_number }}
|
||||
steps:
|
||||
- name: Generate build number
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
||||
id: buildnumber
|
||||
uses: onyxmueller/build-tag-number@v1
|
||||
with:
|
||||
token: ${{secrets.github_token}}
|
||||
|
||||
build_windows:
|
||||
needs: setup
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Prepare env
|
||||
shell: bash
|
||||
run: echo "GITHUB_SHA_SHORT=${GITHUB_SHA::7}" >> $GITHUB_ENV
|
||||
|
||||
- name: Fallback build number
|
||||
if: ${{ github.event_name == 'pull_request' || github.ref != 'refs/heads/main' }}
|
||||
shell: bash
|
||||
run: echo "BUILD_NUMBER=0" >> $GITHUB_ENV
|
||||
|
||||
- name: Main build number
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
||||
run: echo "BUILD_NUMBER=${{ needs.setup.outputs.buildnumber }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Visual Studio environment
|
||||
shell: cmd
|
||||
run: |
|
||||
@@ -34,7 +58,7 @@ jobs:
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
submodules: "recursive"
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
@@ -56,6 +80,7 @@ jobs:
|
||||
path: build/output/
|
||||
|
||||
build_linux:
|
||||
needs: setup
|
||||
runs-on: ubuntu-latest
|
||||
# Could not figure out how to run in a container only on some matrix paths, so I've split it out into its own build.
|
||||
container:
|
||||
@@ -65,9 +90,18 @@ jobs:
|
||||
shell: bash
|
||||
run: echo "GITHUB_SHA_SHORT=${GITHUB_SHA::7}" >> $GITHUB_ENV
|
||||
|
||||
- name: Fallback build number
|
||||
if: ${{ github.event_name == 'pull_request' || github.ref != 'refs/heads/main' }}
|
||||
shell: bash
|
||||
run: echo "BUILD_NUMBER=0" >> $GITHUB_ENV
|
||||
|
||||
- name: Main build number
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
||||
run: echo "BUILD_NUMBER=${{ needs.setup.outputs.buildnumber }}" >> $GITHUB_ENV
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
submodules: "recursive"
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
@@ -87,11 +121,10 @@ jobs:
|
||||
path: build/output/
|
||||
|
||||
build_managed:
|
||||
needs: setup
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
buildnumber: ${{ steps.buildnumber.outputs.build_number }}
|
||||
steps:
|
||||
- name: Prepare env
|
||||
shell: bash
|
||||
@@ -102,20 +135,17 @@ jobs:
|
||||
shell: bash
|
||||
run: echo "BUILD_NUMBER=0" >> $GITHUB_ENV
|
||||
|
||||
- name: Main build number
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
||||
run: echo "BUILD_NUMBER=${{ needs.setup.outputs.buildnumber }}" >> $GITHUB_ENV
|
||||
|
||||
# We don't need expensive submodules for the managed side.
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Generate build number
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
||||
id: buildnumber
|
||||
uses: onyxmueller/build-tag-number@v1
|
||||
with:
|
||||
token: ${{secrets.github_token}}
|
||||
|
||||
- name: Build runtime v${{ env.BUILD_NUMBER }}
|
||||
uses: actions/setup-dotnet@v3
|
||||
with:
|
||||
dotnet-version: '7.0.x'
|
||||
dotnet-version: "8.0.x"
|
||||
|
||||
- name: Install dependencies
|
||||
run: dotnet restore managed/CounterStrikeSharp.sln
|
||||
@@ -133,7 +163,7 @@ jobs:
|
||||
- name: Publish artifacts
|
||||
run: |
|
||||
dotnet publish -c Release /p:Version=1.0.${{ env.BUILD_NUMBER }} managed/CounterStrikeSharp.API
|
||||
dotnet pack -c Release /p:Version=1.0.${{ env.BUILD_NUMBER }} managed/CounterStrikeSharp.API
|
||||
dotnet pack -c Release /p:Version=1.0.${{ env.BUILD_NUMBER }} managed/CounterStrikeSharp.API
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
@@ -144,7 +174,7 @@ jobs:
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
|
||||
permissions:
|
||||
contents: write
|
||||
needs: [ "build_linux", "build_windows", "build_managed" ]
|
||||
needs: ["setup", "build_linux", "build_windows", "build_managed"]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Prepare env
|
||||
@@ -171,49 +201,48 @@ jobs:
|
||||
run: |
|
||||
mkdir -p build/linux/addons/counterstrikesharp/api
|
||||
mkdir -p build/windows/addons/counterstrikesharp/api
|
||||
cp -r build/api/net7.0/publish/* build/linux/addons/counterstrikesharp/api
|
||||
cp -r build/api/net7.0/publish/* build/windows/addons/counterstrikesharp/api
|
||||
cp -r build/api/net8.0/publish/* build/linux/addons/counterstrikesharp/api
|
||||
cp -r build/api/net8.0/publish/* build/windows/addons/counterstrikesharp/api
|
||||
|
||||
- name: Zip Builds
|
||||
run: |
|
||||
(cd build/linux && zip -qq -r ../../counterstrikesharp-build-${{ needs.build_managed.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip *)
|
||||
(cd build/windows && zip -qq -r ../../counterstrikesharp-build-${{ needs.build_managed.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip *)
|
||||
(cd build/linux && zip -qq -r ../../counterstrikesharp-build-${{ needs.setup.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip *)
|
||||
(cd build/windows && zip -qq -r ../../counterstrikesharp-build-${{ needs.setup.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip *)
|
||||
|
||||
- name: Add dotnet runtime
|
||||
run: |
|
||||
mkdir -p build/linux/addons/counterstrikesharp/dotnet
|
||||
curl -s -L https://download.visualstudio.microsoft.com/download/pr/dc2c0a53-85a8-4fda-a283-fa28adb5fbe2/8ccade5bc400a5bb40cd9240f003b45c/aspnetcore-runtime-7.0.11-linux-x64.tar.gz \
|
||||
curl -s -L https://download.visualstudio.microsoft.com/download/pr/c1371dc2-eed2-47be-9af3-ae060dbe3c7d/bd509e0a87629764ed47608466d183e6/aspnetcore-runtime-8.0.3-linux-x64.tar.gz \
|
||||
| tar xvz -C build/linux/addons/counterstrikesharp/dotnet
|
||||
mv build/linux/addons/counterstrikesharp/dotnet/shared/Microsoft.NETCore.App/7.0.11/* build/linux/addons/counterstrikesharp/dotnet/shared/Microsoft.NETCore.App/
|
||||
|
||||
|
||||
mkdir -p build/windows/addons/counterstrikesharp/dotnet
|
||||
curl -s -L https://download.visualstudio.microsoft.com/download/pr/a99861c8-2e00-4587-aaef-60366ca77307/a44ceec2c5d34165ae881600f52edc43/aspnetcore-runtime-7.0.11-win-x64.zip -o dotnet.zip
|
||||
curl -s -L https://download.visualstudio.microsoft.com/download/pr/086d1dd6-57a5-437a-a1ef-549cf702fb48/dd4a8fe6c53a1016a414d6f2925c1323/aspnetcore-runtime-8.0.3-win-x64.zip -o dotnet.zip
|
||||
unzip -qq dotnet.zip -d build/windows/addons/counterstrikesharp/dotnet
|
||||
|
||||
- name: Zip Builds
|
||||
run: |
|
||||
(cd build/linux && zip -qq -r ../../counterstrikesharp-with-runtime-build-${{ needs.build_managed.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip *)
|
||||
(cd build/windows && zip -qq -r ../../counterstrikesharp-with-runtime-build-${{ needs.build_managed.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip *)
|
||||
(cd build/linux && zip -qq -r ../../counterstrikesharp-with-runtime-build-${{ needs.setup.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip *)
|
||||
(cd build/windows && zip -qq -r ../../counterstrikesharp-with-runtime-build-${{ needs.setup.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip *)
|
||||
|
||||
- name: Release
|
||||
id: release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
tag_name: v${{ needs.build_managed.outputs.buildnumber }}
|
||||
tag_name: v${{ needs.setup.outputs.buildnumber }}
|
||||
files: |
|
||||
counterstrikesharp-build-${{ needs.build_managed.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip
|
||||
counterstrikesharp-with-runtime-build-${{ needs.build_managed.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip
|
||||
counterstrikesharp-build-${{ needs.build_managed.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip
|
||||
counterstrikesharp-with-runtime-build-${{ needs.build_managed.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip
|
||||
counterstrikesharp-build-${{ needs.setup.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip
|
||||
counterstrikesharp-with-runtime-build-${{ needs.setup.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip
|
||||
counterstrikesharp-build-${{ needs.setup.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip
|
||||
counterstrikesharp-with-runtime-build-${{ needs.setup.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip
|
||||
|
||||
- name: Publish NuGet package
|
||||
run: |
|
||||
dotnet nuget push build/api/CounterStrikeSharp.API.1.0.${{ needs.build_managed.outputs.buildnumber }}.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
|
||||
dotnet nuget push build/api/CounterStrikeSharp.API.1.0.${{ needs.build_managed.outputs.buildnumber }}.snupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
|
||||
dotnet nuget push build/api/CounterStrikeSharp.API.1.0.${{ needs.setup.outputs.buildnumber }}.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
|
||||
dotnet nuget push build/api/CounterStrikeSharp.API.1.0.${{ needs.setup.outputs.buildnumber }}.snupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
|
||||
|
||||
- name: Send Notification to Discord
|
||||
env:
|
||||
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
uses: Ilshidur/action-discord@0.3.2
|
||||
with:
|
||||
args: "A new release of CS# has been tagged (v${{ needs.build_managed.outputs.buildnumber }}) at ${{ steps.release.outputs.url }}"
|
||||
args: "A new release of CS# has been tagged (v${{ needs.setup.outputs.buildnumber }}) at ${{ steps.release.outputs.url }}"
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,8 +1,7 @@
|
||||
.ccls-cache/
|
||||
.cmake/
|
||||
cmake-build-debug*/
|
||||
cmake-build-*/
|
||||
.kdev4/
|
||||
.vscode/
|
||||
generated/
|
||||
|
||||
# configure_file auto generated.
|
||||
|
||||
4
.vscode/settings.json
vendored
Normal file
4
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"editor.defaultFormatter": null,
|
||||
"editor.formatOnSave": true
|
||||
}
|
||||
@@ -5,6 +5,8 @@ project(counterstrikesharp C CXX ASM)
|
||||
|
||||
include("makefiles/shared.cmake")
|
||||
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
|
||||
add_subdirectory(libraries/spdlog)
|
||||
add_subdirectory(libraries/dyncall)
|
||||
add_subdirectory(libraries/funchook)
|
||||
@@ -13,7 +15,8 @@ add_subdirectory(libraries/DynoHook)
|
||||
set_property(TARGET dynohook PROPERTY DYNO_ARCH_X86 64)
|
||||
set_property(TARGET funchook-static PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
SET(SOURCE_FILES
|
||||
set(SOURCE_FILES
|
||||
libraries/hl2sdk-cs2/public/tier0/memoverride.cpp
|
||||
src/mm_plugin.cpp
|
||||
src/mm_plugin.h
|
||||
libraries/hl2sdk-cs2/tier1/convar.cpp
|
||||
@@ -49,10 +52,10 @@ SET(SOURCE_FILES
|
||||
src/core/managers/event_manager.cpp
|
||||
src/core/timer_system.h
|
||||
src/core/timer_system.cpp
|
||||
src/core/tick_scheduler.h
|
||||
src/core/tick_scheduler.cpp
|
||||
src/scripting/autonative.h
|
||||
src/scripting/natives/natives_engine.cpp
|
||||
src/core/engine_trace.h
|
||||
src/core/engine_trace.cpp
|
||||
src/scripting/natives/natives_callbacks.cpp
|
||||
src/core/managers/player_manager.h
|
||||
src/core/managers/player_manager.cpp
|
||||
@@ -68,7 +71,6 @@ SET(SOURCE_FILES
|
||||
src/core/memory_module.h
|
||||
src/core/memory_module.cpp
|
||||
src/core/cs2_sdk/interfaces/cgameresourceserviceserver.h
|
||||
src/core/cs2_sdk/interfaces/cschemasystem.h
|
||||
src/core/cs2_sdk/interfaces/cs2_interfaces.h
|
||||
src/core/cs2_sdk/interfaces/cs2_interfaces.cpp
|
||||
src/core/cs2_sdk/schema.h
|
||||
@@ -94,66 +96,55 @@ SET(SOURCE_FILES
|
||||
src/core/game_system.cpp
|
||||
)
|
||||
|
||||
|
||||
if (LINUX)
|
||||
# memoverride.cpp is not usable on CMake Windows, cuz CMake default link libraries (seems) always link ucrt.lib
|
||||
set(SOURCE_FILES
|
||||
${SOURCE_FILES}
|
||||
libraries/hl2sdk-cs2/public/tier0/memoverride.cpp
|
||||
)
|
||||
endif()
|
||||
|
||||
set(PROTO_DIRS -I${CMAKE_CURRENT_SOURCE_DIR}/libraries/Protobufs/csgo)
|
||||
file(GLOB PROTOS "${CMAKE_CURRENT_SOURCE_DIR}/libraries/Protobufs/csgo/*.proto")
|
||||
|
||||
## Generate protobuf source & headers
|
||||
if (LINUX)
|
||||
if(LINUX)
|
||||
set(PROTOC_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/libraries/hl2sdk-cs2/devtools/bin/linux/protoc)
|
||||
elseif(WIN32)
|
||||
set(PROTOC_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/libraries/hl2sdk-cs2/devtools/bin/protoc.exe)
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT protobuf_output_stamp
|
||||
COMMAND ${PROTOC_EXECUTABLE} --proto_path=thirdparty/protobuf-3.21.8/src --proto_path=common --cpp_out=common common/network_connection.proto
|
||||
COMMENT "Generating protobuf file"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libraries/hl2sdk-cs2
|
||||
VERBATIM
|
||||
OUTPUT protobuf_output_stamp
|
||||
COMMAND ${PROTOC_EXECUTABLE} --proto_path=thirdparty/protobuf-3.21.8/src --proto_path=common --cpp_out=common common/network_connection.proto
|
||||
COMMENT "Generating protobuf file"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libraries/hl2sdk-cs2
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
SET(SOURCE_FILES ${SOURCE_FILES} protobuf_output_stamp)
|
||||
set(SOURCE_FILES ${SOURCE_FILES} protobuf_output_stamp)
|
||||
|
||||
# Sources
|
||||
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${NATIVES_SOURCES} ${CONVERSIONS_SOURCES} ${CONVERSIONS_HEADERS})
|
||||
|
||||
target_include_directories(
|
||||
${PROJECT_NAME}
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/core/cs2_sdk
|
||||
${PROJECT_NAME}
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/core/cs2_sdk
|
||||
)
|
||||
|
||||
if (LINUX)
|
||||
if(LINUX)
|
||||
include("makefiles/linux.base.cmake")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
PREFIX ""
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/addons/counterstrikesharp/bin/linuxsteamrt64"
|
||||
PREFIX ""
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/addons/counterstrikesharp/bin/linuxsteamrt64"
|
||||
)
|
||||
elseif(WIN32)
|
||||
include("makefiles/windows.base.cmake")
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
PREFIX ""
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/addons/counterstrikesharp/bin/win64"
|
||||
PREFIX ""
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/addons/counterstrikesharp/bin/win64"
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# Libraries
|
||||
target_link_libraries(${PROJECT_NAME} ${COUNTER_STRIKE_SHARP_LINK_LIBRARIES})
|
||||
|
||||
add_custom_command(
|
||||
TARGET ${PROJECT_NAME} PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${CMAKE_SOURCE_DIR}/configs ${CMAKE_BINARY_DIR}
|
||||
)
|
||||
TARGET ${PROJECT_NAME} PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${CMAKE_SOURCE_DIR}/configs ${CMAKE_BINARY_DIR}
|
||||
)
|
||||
|
||||
103
CONTRIBUTING.md
Normal file
103
CONTRIBUTING.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# Contributing to CounterStrikeSharp
|
||||
|
||||
We'd love for you to contribute to CS# to make it better than it is today!
|
||||
|
||||
Here are the guidelines we'd like you to follow:
|
||||
|
||||
- [Question or Problem?](#question)
|
||||
- [Issues and Bugs](#issue)
|
||||
- [Submission Guidelines](#submit)
|
||||
- [Coding Format](#format)
|
||||
|
||||
## <a name="question"></a> Got a Question or Problem?
|
||||
|
||||
If you have questions about how to contribute to CounterStrikeSharp, please join our [Discord][discord] server.
|
||||
|
||||
## <a name="issue"></a> Found an Issue?
|
||||
|
||||
If you find a bug in the source code or a mistake in the documentation, you can help us by
|
||||
submitting an issue to our [GitHub Repository][github]. Even better you can submit a Pull Request
|
||||
with a fix.
|
||||
|
||||
**Please see the [Submission Guidelines](#submit) below.**
|
||||
|
||||
## <a name="submit"></a> Submission Guidelines
|
||||
|
||||
### Submitting an Issue
|
||||
Before you submit your issue please search the archive, maybe your question was already answered.
|
||||
|
||||
If your issue appears to be a bug and hasn't been reported, open a new issue. Help us to maximize
|
||||
the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
|
||||
Providing the following information will increase the chances of your issue being dealt with
|
||||
quickly:
|
||||
|
||||
* **Overview of the Issue** - if an error is being thrown a stack trace helps
|
||||
* **Operating System** - is this a problem with a specific OS (Windows or Linux)?
|
||||
* **Reproduce the Error** - provide details, if possible, on how to reproduce the error
|
||||
* **Related Issues** - has a similar issue been reported before?
|
||||
* **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point to what might be causing the problem (line of code or commit)
|
||||
|
||||
### Submitting a Pull Request
|
||||
Before you submit your pull request consider the following guidelines:
|
||||
|
||||
* Search [GitHub](https://github.com/roflmuffin/CounterStrikeSharp/pulls) for an open or closed Pull Request
|
||||
that relates to your submission. You don't want to duplicate effort.
|
||||
* If adding a feature or enhancement, we recommend you first [start a discussion for
|
||||
it](https://github.com/roflmuffin/CounterStrikeSharp/discussions) before submitting a Pull Request.
|
||||
* [Fork](https://help.github.com/articles/fork-a-repo/) this repo.
|
||||
* [Clone](https://help.github.com/articles/cloning-a-repository/) your copy.
|
||||
```shell
|
||||
git clone https://github.com/YOUR_USERNAME/CounterStrikeSharp.git
|
||||
cd CounterStrikeSharp/
|
||||
```
|
||||
* After cloning, set a new remote [upstream](https://help.github.com/articles/configuring-a-remote-for-a-fork/) (this helps to keep your fork up to date)
|
||||
|
||||
```shell
|
||||
git remote add upstream https://github.com/roflmuffin/CounterStrikeSharp.git
|
||||
```
|
||||
|
||||
* Make your changes in a new git branch:
|
||||
|
||||
```shell
|
||||
git checkout -b my-fix-branch master
|
||||
```
|
||||
|
||||
* Create your patch and run appropriate tests.
|
||||
* Commit your changes using a descriptive commit message that uses the imperative, present tense: "change" not "changed" nor "changes".
|
||||
|
||||
```shell
|
||||
git commit -a
|
||||
```
|
||||
Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files.
|
||||
|
||||
* Push your branch to GitHub:
|
||||
|
||||
```shell
|
||||
git push origin my-fix-branch
|
||||
```
|
||||
|
||||
In GitHub, send a pull request to `CounterStrikeSharp:master`.
|
||||
If we suggest changes, then:
|
||||
|
||||
* Make the required updates.
|
||||
* Re-run CounterStrikeSharp to ensure everything is still working & tests are passing.
|
||||
* Commit your changes to your branch (e.g. `my-fix-branch`).
|
||||
* Push the changes to your GitHub repository (this will update your Pull Request).
|
||||
|
||||
If the PR gets too outdated we may ask you to rebase and force push to update the PR:
|
||||
|
||||
```shell
|
||||
git fetch upstream
|
||||
git rebase upstream/master
|
||||
git push origin my-fix-branch -f
|
||||
```
|
||||
|
||||
That's it! Thank you for your contribution!
|
||||
|
||||
#### After your pull request is merged
|
||||
|
||||
After your pull request is merged, you can safely delete your branch and pull the changes
|
||||
from the main (upstream) repository.
|
||||
|
||||
[github]: https://github.com/roflmuffin/CounterStrikeSharp
|
||||
[discord]: https://discord.gg/eAZU3guKWU
|
||||
12
README.md
12
README.md
@@ -1,6 +1,6 @@
|
||||
# CounterStrikeSharp
|
||||
|
||||
CounterStrikeSharp is a server side modding framework for Counter-Strike: Global Offensive. This project attempts to implement a .NET Core scripting layer on top of a Metamod Source Plugin, allowing developers to create plugins that interact with the game server in a modern language (C#) to facilitate the creation of maintainable and testable code.
|
||||
CounterStrikeSharp is a server side modding framework for Counter-Strike 2. This project implements a .NET 8 scripting layer on top of a Metamod Source Plugin, allowing developers to create plugins that interact with the game server in a modern language (C#) to facilitate the creation of maintainable and testable code.
|
||||
|
||||
[Come and join our Discord](https://discord.gg/eAZU3guKWU)
|
||||
|
||||
@@ -18,14 +18,12 @@ Detailed installation instructions can be found in the [docs](https://docs.cssha
|
||||
|
||||
## What works?
|
||||
|
||||
_(Note, these were features in the previous VSP.NET project, but have not been implemented yet in this project)_
|
||||
|
||||
These features are the core of the platform and work pretty well/have a low risk of causing issues.
|
||||
|
||||
- [x] Console Commands, Server Commands (e.g. css_mycommand)
|
||||
- [x] Chat Commands with `!` and `/` prefixes (e.g. !mycommand)
|
||||
- [ ] **(In Progress)** Console Variables
|
||||
- [x] Game Event Handlers & Custom Events (e.g. player_death)
|
||||
- [x] Fake Console Variables (commands which mimic ConVar behaviour as these have not been fully reverse engineered)
|
||||
- [x] Game Event Handlers & Firing of Events (e.g. player_death)
|
||||
- [x] Basic event value get/set (string, bool, int32, float)
|
||||
- [x] Complex event values get/set (ehandle, pawn, player controller)
|
||||
- [x] Game Tick Based Timers (e.g. repeating map timers)
|
||||
@@ -34,7 +32,7 @@ These features are the core of the platform and work pretty well/have a low risk
|
||||
- [x] Client Listeners (e.g. connect, disconnect, put in server)
|
||||
- [x] OnMapStart
|
||||
- [x] OnTick
|
||||
- [x] Server Information (current map, game time, tick rate, model precaching)
|
||||
- [x] Server Information (current map, game time)
|
||||
- [x] Schema System Access (access player values like current weapon, money, location etc.)
|
||||
|
||||
## Links
|
||||
@@ -81,7 +79,7 @@ public class HelloWorldPlugin : BasePlugin
|
||||
return HookResult.Continue;
|
||||
}
|
||||
|
||||
[ConsoleCommand("issue_warning", "Issue warning to player")]
|
||||
[ConsoleCommand("css_issue_warning", "Issue warning to player")]
|
||||
public void OnCommand(CCSPlayerController? player, CommandInfo command)
|
||||
{
|
||||
Logger.LogWarning("Player shouldn't be doing that");
|
||||
|
||||
@@ -3,5 +3,8 @@
|
||||
"SilentChatTrigger": [ "/" ],
|
||||
"FollowCS2ServerGuidelines": true,
|
||||
"PluginHotReloadEnabled": true,
|
||||
"ServerLanguage": "en"
|
||||
"PluginAutoLoadEnabled": true,
|
||||
"ServerLanguage": "en",
|
||||
"UnlockConCommands": true,
|
||||
"UnlockConVars": true
|
||||
}
|
||||
@@ -2,190 +2,210 @@
|
||||
"UTIL_ClientPrintAll": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x89\\x5C\\x24\\x08\\x48\\x89\\x6C\\x24\\x10\\x48\\x89\\x74\\x24\\x18\\x57\\x48\\x81\\xEC\\x70\\x01\\x2A\\x2A\\x8B\\xE9",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x49\\x89\\xD7\\x41\\x56\\x49\\x89\\xF6\\x41\\x55\\x41\\x89\\xFD"
|
||||
"windows": "48 89 5C 24 08 48 89 6C 24 10 48 89 74 24 18 57 48 81 EC 70 01 ? ? 8B E9",
|
||||
"linux": "55 48 89 E5 41 57 49 89 D7 41 56 49 89 F6 41 55 41 89 FD"
|
||||
}
|
||||
},
|
||||
"ClientPrint": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x85\\xC9\\x0F\\x84\\x2A\\x2A\\x2A\\x2A\\x48\\x8B\\xC4\\x48\\x89\\x58\\x18",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x49\\x89\\xCF\\x41\\x56\\x49\\x89\\xD6\\x41\\x55\\x41\\x89\\xF5\\x41\\x54\\x4C\\x8D\\xA5\\xA0\\xFE\\xFF\\xFF"
|
||||
"windows": "48 85 C9 0F 84 ? ? ? ? 48 8B C4 48 89 58 18",
|
||||
"linux": "55 48 89 E5 41 57 49 89 CF 41 56 49 89 D6 41 55 41 89 F5 41 54 4C 8D A5 A0 FE FF FF"
|
||||
}
|
||||
},
|
||||
"CCSPlayerController_SwitchTeam": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x40\\x56\\x57\\x48\\x81\\xEC\\x2A\\x2A\\x2A\\x2A\\x48\\x8B\\xF9\\x8B\\xF2\\x8B\\xCA",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x55\\x49\\x89\\xFD\\x89\\xF7"
|
||||
"windows": "40 56 57 48 81 EC ? ? ? ? 48 8B F9 8B F2 8B CA",
|
||||
"linux": "55 48 89 E5 41 55 49 89 FD 89 F7"
|
||||
}
|
||||
},
|
||||
"CCSPlayerController_ChangeTeam": {
|
||||
"offsets": {
|
||||
"windows": 93,
|
||||
"linux": 92
|
||||
"windows": 98,
|
||||
"linux": 97
|
||||
}
|
||||
},
|
||||
"CCSPlayerController_Respawn": {
|
||||
"offsets": {
|
||||
"windows": 244,
|
||||
"linux": 246
|
||||
"windows": 254,
|
||||
"linux": 256
|
||||
}
|
||||
},
|
||||
"CBasePlayerController_SetPawn": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x44\\x88\\x4C\\x24\\x20\\x55\\x57\\x41\\x54\\x41\\x56\\x41\\x57\\x48\\x8D\\x6C\\x24\\x2A\\x48\\x81\\xEC\\x2A",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x41\\x56\\x41\\x55\\x41\\x54\\x49\\x89\\xFC\\x53\\x48\\x89\\xF3\\x48\\x81\\xEC\\xC8\\x00\\x00\\x00"
|
||||
"windows": "44 88 4C 24 ? 55 56 57 41 54 41 56 48 8D 6C 24 ?",
|
||||
"linux": "55 48 89 E5 41 57 41 56 41 89 D6 41 55 49 89 FD 41 54 45 89 C4"
|
||||
}
|
||||
},
|
||||
"CCSPlayerPawnBase_PostThink": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x8B\\xC4\\x48\\x89\\x48\\x08\\x55\\x53\\x56\\x57\\x41\\x56\\x48\\x8D\\xA8\\xD8\\xFE\\xFF\\xFF",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x41\\x56\\x41\\x55\\x41\\x54\\x53\\x48\\x89\\xFB\\x48\\x81\\xEC\\x2A\\x2A\\x2A\\x2A\\xE8\\x2A\\x2A\\x2A\\x2A\\x48\\x89\\xDF"
|
||||
"windows": "48 ? ? 55 53 56 57 41 ? 48 ? ? ? 48 ? ? ? ? ? ? 4C 89 68",
|
||||
"linux": "55 48 89 E5 41 56 41 55 41 54 53 48 89 FB 48 83 EC 30 E8 ? ? ? ?"
|
||||
}
|
||||
},
|
||||
"CGameEventManager_Init": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "40 53 48 83 EC 20 48 8B 01 48 8B D9 FF 50 10",
|
||||
"linux": "55 48 89 E5 41 54 49 89 FC 48 83 EC 08 48 8B 07 FF 50 18"
|
||||
}
|
||||
},
|
||||
"GiveNamedItem": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x89\\x5C\\x24\\x18\\x48\\x89\\x74\\x24\\x20\\x55\\x57\\x41\\x54\\x41\\x56\\x41\\x57\\x48\\x8D\\x6C\\x24\\xD9",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x41\\x56\\x49\\x89\\xCE\\x41\\x55\\x49\\x89\\xF5\\x41\\x54\\x49\\x89\\xD4"
|
||||
"windows": "48 89 5C 24 ? 48 89 74 24 ? 55 57 41 ? 41 ? 41 ? 48 ? ? ? ? 48 ? ? ? ? ? ? 4D ? ? 48",
|
||||
"linux": "55 48 89 E5 41 57 41 56 49 89 D6 41 55 49 89 CD 41 54 49 89 F4 53 48 89 FB 48 8D 3D"
|
||||
}
|
||||
},
|
||||
"UTIL_Remove": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x85\\xC9\\x74\\x2A\\x48\\x8B\\xD1\\x48\\x8B\\x0D\\x2A\\x2A\\x2A\\x2A",
|
||||
"linux": "\\x48\\x89\\xFE\\x48\\x85\\xFF\\x74\\x2A\\x48\\x8D\\x05\\x2A\\x2A\\x2A\\x2A\\x48"
|
||||
"windows": "48 85 C9 74 ? 48 8B D1 48 8B 0D ? ? ? ?",
|
||||
"linux": "48 89 FE 48 85 FF 74 ? 48 8D 05 ? ? ? ? 48"
|
||||
}
|
||||
},
|
||||
"Host_Say": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x44\\x89\\x4C\\x24\\x20\\x44\\x88\\x44\\x24\\x18",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x49\\x89\\xFF\\x41\\x56\\x41\\x55\\x41\\x54\\x4D\\x89\\xC4"
|
||||
"windows": "44 89 4C 24 20 44 88 44 24 18",
|
||||
"linux": "55 48 89 E5 41 57 41 56 41 89 D6 41 55 4D 89 C5"
|
||||
}
|
||||
},
|
||||
"CBaseModelEntity_SetModel": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x89\\x5C\\x24\\x2A\\x48\\x89\\x7C\\x24\\x2A\\x55\\x48\\x8B\\xEC\\x48\\x83\\xEC\\x50\\x48\\x8B\\xF9\\x4C\\x8B\\xC2",
|
||||
"linux": "\\x55\\x48\\x89\\xF2\\x48\\x89\\xE5\\x41\\x54\\x49\\x89\\xFC\\x48\\x8D\\x7D\\xE0\\x48\\x83\\xEC\\x2A\\x48\\x8D\\x05\\x2A\\x2A\\x2A\\x2A\\x48\\x8B\\x30\\x48\\x8B\\x06"
|
||||
"library": "server",
|
||||
"windows": "48 89 5C 24 ? 48 89 7C 24 ? 55 48 8B EC 48 83 EC 50 48 8B F9 4C 8B C2",
|
||||
"linux": "55 48 89 F2 48 89 E5 41 54 49 89 FC 48 8D 7D E0 48 83 EC ? 48 8D 05 ? ? ? ? 48 8B 30 48 8B 06"
|
||||
}
|
||||
},
|
||||
"CCSPlayer_WeaponServices_CanUse": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x89\\x5C\\x24\\x10\\x48\\x89\\x6C\\x24\\x18\\x56\\x57\\x41\\x56\\x48\\x83\\xEC\\x30\\x80\\xB9\\xA0\\x00\\x00\\x00\\x00",
|
||||
"linux": "\\x48\\x85\\xF6\\x0F\\x84\\x2A\\x2A\\x2A\\x2A\\x55\\x31\\xC9\\x48\\x89\\xE5\\x41\\x55\\x49\\x89\\xFD"
|
||||
"windows": "48 89 5C 24 10 48 89 6C 24 18 56 57 41 56 48 83 EC 30 80 B9 A0 00 00 00 00",
|
||||
"linux": "48 85 F6 0F 84 ? ? ? ? 55 31 C9 48 89 E5 41 55 49 89 FD"
|
||||
}
|
||||
},
|
||||
"CCSPlayer_ItemServices_GiveNamedItem": {
|
||||
"offsets": {
|
||||
"windows": 17,
|
||||
"linux": 18
|
||||
}
|
||||
},
|
||||
"CCSPlayer_ItemServices_DropActivePlayerWeapon": {
|
||||
"offsets": {
|
||||
"windows": 18,
|
||||
"linux": 19
|
||||
"windows": 18,
|
||||
"linux": 19
|
||||
}
|
||||
},
|
||||
"CCSPlayer_ItemServices_RemoveWeapons": {
|
||||
"offsets": {
|
||||
"windows": 19,
|
||||
"linux": 20
|
||||
}
|
||||
"offsets": {
|
||||
"windows": 19,
|
||||
"linux": 20
|
||||
}
|
||||
},
|
||||
"CGameSceneNode_GetSkeletonInstance": {
|
||||
"offsets": {
|
||||
"windows": 8,
|
||||
"linux": 8
|
||||
"windows": 8,
|
||||
"linux": 8
|
||||
}
|
||||
},
|
||||
"CCSGameRules_TerminateRound": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x8B\\xC4\\x4C\\x89\\x48\\x20\\x55\\x57",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x41\\x56\\x41\\x55\\x41\\x54\\x49\\x89\\xFC\\x53\\x48\\x81\\xEC\\xE8\\x01\\x00\\x00\\x48\\x8D\\x05\\x2A\\x2A\\x2A\\x2A"
|
||||
}
|
||||
"library": "server",
|
||||
"windows": "48 8B C4 4C 89 48 ? 48 89 48 ? 55 56",
|
||||
"linux": "55 48 89 E5 41 57 41 56 41 55 41 54 49 89 FC 53 48 81 EC 88 00 00 00 48 8D 05 ? ? ? ?"
|
||||
}
|
||||
},
|
||||
"UTIL_CreateEntityByName": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x83\\xEC\\x48\\xC6\\x44\\x24\\x30\\x00",
|
||||
"linux": "\\x48\\x8D\\x05\\x2A\\x2A\\x2A\\x2A\\x55\\x48\\x89\\xFA"
|
||||
}
|
||||
"library": "server",
|
||||
"windows": "48 83 EC 48 C6 44 24 30 00",
|
||||
"linux": "48 8D 05 ? ? ? ? 55 48 89 FA"
|
||||
}
|
||||
},
|
||||
"CBaseEntity_DispatchSpawn": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x89\\x5C\\x24\\x10\\x57\\x48\\x83\\xEC\\x30\\x48\\x8B\\xDA\\x48\\x8B\\xF9\\x48\\x85\\xC9",
|
||||
"linux": "\\x48\\x85\\xFF\\x74\\x2A\\x55\\x48\\x89\\xE5\\x41\\x56"
|
||||
}
|
||||
"library": "server",
|
||||
"windows": "48 89 5C 24 10 57 48 83 EC 30 48 8B DA 48 8B F9 48 85 C9",
|
||||
"linux": "48 85 FF 74 ? 55 48 89 E5 41 56"
|
||||
}
|
||||
},
|
||||
"CEntityInstance_AcceptInput": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x89\\x5C\\x24\\x10\\x48\\x89\\x74\\x24\\x18\\x57\\x48\\x83\\xEC\\x40\\x49\\x8B\\xF0",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x49\\x89\\xFF\\x41\\x56\\x48\\x8D\\x7D\\xC0"
|
||||
"windows": "48 89 5C 24 10 48 89 74 24 18 57 48 83 EC 40 49 8B F0",
|
||||
"linux": "55 48 89 E5 41 57 49 89 FF 41 56 48 8D 7D C0"
|
||||
}
|
||||
},
|
||||
"CEntitySystem_AddEntityIOEvent": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "48 89 5C 24 ? 48 89 74 24 ? 57 48 ? ? ? 49 ? ? 48 ? ? 48 ? ? 74",
|
||||
"linux": "55 41 BA FF FF FF FF"
|
||||
}
|
||||
},
|
||||
"LegacyGameEventListener": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x8B\\x15\\x2A\\x2A\\x2A\\x2A\\x48\\x85\\xD2\\x74\\x2A\\x85\\xC9\\x74",
|
||||
"linux": "\\x48\\x8B\\x05\\x2A\\x2A\\x2A\\x2A\\x48\\x85\\xC0\\x74\\x2A\\x83\\xFF\\x3F\\x76\\x2A\\x31\\xC0"
|
||||
"windows": "48 8B 15 ? ? ? ? 48 85 D2 74 ? 85 C9 74",
|
||||
"linux": "48 8B 05 ? ? ? ? 48 85 C0 74 ? 85 FF"
|
||||
}
|
||||
},
|
||||
"CBasePlayerPawn_CommitSuicide": {
|
||||
"offsets": {
|
||||
"windows": 360,
|
||||
"linux": 360
|
||||
"windows": 372,
|
||||
"linux": 372
|
||||
}
|
||||
},
|
||||
"CBasePlayerPawn_RemovePlayerItem": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"linux": "\\x55\\x48\\x89\\x2A\\x41\\x2A\\x49\\x89\\x2A\\x41\\x2A\\x49\\x89\\x2A\\xE8\\x2A\\x2A\\x2A\\x2A\\x49\\x39",
|
||||
"windows": "\\x48\\x85\\xD2\\x0F\\x84\\x2A\\x2A\\x2A\\x2A\\x48\\x89\\x5C\\x24\\x08\\x57\\x48\\x83\\xEC\\x30\\x48\\x8B\\xDA"
|
||||
"windows": "48 ? ? 0F 84 ? ? ? ? 48 89 5C 24 ? 57 48 ? ? ? 48 ? ? 48 ? ? E8",
|
||||
"linux": "55 48 89 ? 41 ? 49 89 ? 41 ? 49 89 ? E8 ? ? ? ? 49 39"
|
||||
}
|
||||
},
|
||||
"CBaseEntity_Teleport": {
|
||||
"offsets": {
|
||||
"windows": 149,
|
||||
"linux": 148
|
||||
"windows": 155,
|
||||
"linux": 154
|
||||
}
|
||||
},
|
||||
"CBaseEntity_TakeDamageOld": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x40\\x56\\x57\\x48\\x83\\xEC\\x58\\x48\\x8B\\x41\\x10",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x41\\x56\\x41\\x55\\x41\\x54\\x49\\x89\\xFC\\x53\\x48\\x83\\xEC\\x38\\x4C\\x8D\\x2D\\x2A\\x2A\\x2A\\x2A\\x49\\x8B\\x7D\\x00\\x48\\x85\\xFF\\x0F\\x84\\x2A\\x2A\\x2A\\x2A"
|
||||
"windows": "48 89 74 24 20 57 48 83 EC 60 48 8B 41 10",
|
||||
"linux": "55 48 89 E5 41 57 41 56 41 55 41 54 49 89 FC 53 48 83 EC 48 4C 8D 2D ? ? ? ? 49 8B 7D 00 48 85 FF 0F 84 ? ? ? ?"
|
||||
}
|
||||
},
|
||||
"CBaseTrigger_StartTouch": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x41\\x56\\x41\\x57\\x48\\x83\\xEC\\x58\\x48\\x8B\\x01",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x56\\x49\\x89\\xF6\\x41\\x55\\x49\\x89\\xFD\\x41\\x54\\x53\\xBB"
|
||||
"windows": "41 56 41 57 48 83 EC 58 48 8B 01",
|
||||
"linux": "55 48 89 E5 41 56 49 89 F6 41 55 49 89 FD 41 54 53 BB"
|
||||
}
|
||||
},
|
||||
"CBaseTrigger_EndTouch": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x40\\x53\\x57\\x41\\x55\\x48\\x83\\xEC\\x40",
|
||||
"linux": "\\x55\\xBA\\xFF\\xFF\\xFF\\xFF\\x48\\x89\\xE5\\x41\\x57\\x41\\x56\\x41\\x55\\x49\\x89\\xF5\\x41"
|
||||
"windows": "40 53 57 41 55 48 83 EC 40",
|
||||
"linux": "55 BA FF FF FF FF 48 89 E5 41 57 41 56 41 55 49 89 F5 41"
|
||||
}
|
||||
},
|
||||
"StateChanged": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x40\\x55\\x53\\x56\\x41\\x55\\x41\\x57\\x48\\x8D\\x6C\\x24\\xB0",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x41\\x56\\x41\\x55\\x41\\x54\\x53\\x89\\xD3"
|
||||
"windows": "40 55 53 56 41 55 41 57 48 8D 6C 24 B0",
|
||||
"linux": "55 48 89 E5 41 57 41 56 41 55 41 54 53 89 D3"
|
||||
}
|
||||
},
|
||||
"NetworkStateChanged": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x4C\\x8B\\xC9\\x48\\x8B\\x09\\x48\\x85\\xC9\\x74\\x2A\\x48\\x8B\\x41\\x10",
|
||||
"linux": "\\x4C\\x8B\\x07\\x4D\\x85\\xC0\\x74\\x2A\\x49\\x8B\\x40\\x10"
|
||||
"windows": "4C 8B C9 48 8B 09 48 85 C9 74 ? 48 8B 41 10",
|
||||
"linux": "4C 8B 07 4D 85 C0 74 ? 49 8B 40 10"
|
||||
}
|
||||
},
|
||||
"GameEntitySystem": {
|
||||
@@ -203,21 +223,21 @@
|
||||
"CEntityIOOutput_FireOutputInternal": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x4C\\x89\\x4C\\x24\\x20\\x53\\x55\\x57\\x41\\x54\\x41\\x56\\x48\\x81\\xEC",
|
||||
"linux": "\\x55\\x48\\x89\\xE5\\x41\\x57\\x41\\x56\\x41\\x55\\x41\\x54\\x49\\x89\\xD4\\x53\\x48\\x89\\xF3\\x48\\x83\\xEC\\x58"
|
||||
"windows": "4C 89 4C 24 20 53 55 57 41 54 41 56 48 81 EC",
|
||||
"linux": "55 48 89 E5 41 57 41 56 41 55 41 54 49 89 D4 53 48 89 F3 48 83 EC 58"
|
||||
}
|
||||
},
|
||||
"IGameSystem_InitAllSystems_pFirst": {
|
||||
"signatures": {
|
||||
"library": "server",
|
||||
"windows": "\\x48\\x8B\\x1D\\x2A\\x2A\\x2A\\x2A\\x48\\x85\\xDB\\x0F\\x84\\x2A\\x2A\\x2A\\x2A\\xBE\\x2A\\x2A\\x2A\\x2A\\x0F\\x1F\\x00\\x48\\x8B\\x7B\\x10",
|
||||
"linux": "\\x4C\\x8B\\x35\\x2A\\x2A\\x2A\\x2A\\x4D\\x85\\xF6\\x75\\x2D\\xE9\\x2A\\x2A\\x2A\\x2A\\x0F\\x1F\\x40\\x00\\x48\\x8B\\x05"
|
||||
"windows": "48 8B 1D ? ? ? ? 48 85 DB 0F 84 ? ? ? ? BE ? ? ? ? 0F 1F 00 48 8B 7B 10",
|
||||
"linux": "4C 8B 35 ? ? ? ? 4D 85 F6 75 2D E9 ? ? ? ? 0F 1F 40 00 48 8B 05"
|
||||
}
|
||||
},
|
||||
"CEntityResourceManifest_AddResource": {
|
||||
"offsets": {
|
||||
"windows": 2,
|
||||
"linux": 2
|
||||
"linux": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ How to write your first plugin for CounterStrikeSharp
|
||||
|
||||
## Creating a New Project
|
||||
|
||||
First, ensure you have the relevant .NET 7.0 SDK for your platform installed on your machine. You can find the links to the latest downloads on the <a href="https://dotnet.microsoft.com/en-us/download/dotnet/7.0" target="_blank"> official Microsoft download page</a>.
|
||||
First, ensure you have the relevant .NET 8.0 SDK for your platform installed on your machine. You can find the links to the latest downloads on the <a href="https://dotnet.microsoft.com/en-us/download/dotnet/8.0" target="_blank"> official Microsoft download page</a>.
|
||||
|
||||
### Creating a Class Library
|
||||
|
||||
@@ -25,7 +25,7 @@ Use your IDE (Visual Studio/Rider) to add a reference to the `CounterStrikeSharp
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
@@ -65,7 +65,7 @@ public class HelloWorldPlugin : BasePlugin
|
||||
}
|
||||
```
|
||||
|
||||
Now build your project using your ide or the `dotnet build` command. You should now have a built binary file in your `bin/Debug/net7.0` subdirectory in the project.
|
||||
Now build your project using your ide or the `dotnet build` command. You should now have a built binary file in your `bin/Debug/net8.0` subdirectory in the project.
|
||||
|
||||
### Installing your Plugin
|
||||
|
||||
|
||||
@@ -28,11 +28,22 @@ receive a ban.
|
||||
> [!NOTE]
|
||||
> Disable this option at your own risk.
|
||||
|
||||
|
||||
## PluginHotReloadEnabled
|
||||
|
||||
When enabled, plugins are automatically reloaded when their .dll file is updated.
|
||||
|
||||
## PluginAutoLoadEnabled
|
||||
|
||||
When enabled, plugins are automatically loaded from the plugins directory on server start.
|
||||
|
||||
## ServerLanguage
|
||||
|
||||
Configures the default language to use for server commands & messages. The format for the culture name based on RFC 4646 is `languagecode2-country`/`regioncode2`, where `languagecode2` is the two-letter language code and `country/regioncode2` is the two-letter subculture code. Examples include `ja-JP` for Japanese (Japan) and `en-US` for English (United States). Defaults to "en".
|
||||
Configures the default language to use for server commands & messages. The format for the culture name based on RFC 4646 is `languagecode2-country`/`regioncode2`, where `languagecode2` is the two-letter language code and `country/regioncode2` is the two-letter subculture code. Examples include `ja-JP` for Japanese (Japan) and `en-US` for English (United States). Defaults to "en".
|
||||
|
||||
## UnlockConCommands
|
||||
|
||||
When enabled, will remove the `FCVAR_HIDDEN`,`FCVAR_DEVELOPMENTONLY`, `FCVAR_MISSING0`, `FCVAR_MISSING1`, `FCVAR_MISSING2`, `FCVAR_MISSING3` flags from all console commands.
|
||||
|
||||
## UnlockConVars
|
||||
|
||||
When enabled, will remove the `FCVAR_HIDDEN`,`FCVAR_DEVELOPMENTONLY`, `FCVAR_MISSING0`, `FCVAR_MISSING1`, `FCVAR_MISSING2`, `FCVAR_MISSING3` flags from all console variables.
|
||||
|
||||
37
eng/formatting/download-tools.ps1
Normal file
37
eng/formatting/download-tools.ps1
Normal file
@@ -0,0 +1,37 @@
|
||||
# Tool taken from dotnet/runtime
|
||||
# https://github.com/dotnet/runtime/blob/a8158c170b694f8c1dbae114c63c346b38244901/eng/formatting/download-tools.ps1
|
||||
|
||||
function DownloadClangTool {
|
||||
param (
|
||||
[string]
|
||||
$toolName,
|
||||
[string]
|
||||
$downloadOutputPath
|
||||
)
|
||||
|
||||
$clangVersion = "17.0.6"
|
||||
$clangToolsRootUrl = "https://clrjit2.blob.core.windows.net/clang-tools"
|
||||
$clangPlatform = "windows-x64"
|
||||
|
||||
$toolUrl = "$clangToolsRootUrl/$clangVersion/$clangPlatform/$toolName.exe"
|
||||
$targetPath = "$downloadOutputPath\$toolName.exe"
|
||||
|
||||
if (-not $(ls $downloadOutputPath | Where-Object { $_.Name -eq "$toolName.exe" })) {
|
||||
Write-Output "Downloading '$toolUrl' to '$targetPath'"
|
||||
# Pass -PassThru as otherwise Invoke-WebRequest leaves a corrupted file if the download fails. With -PassThru the download is buffered first.
|
||||
# -UseBasicParsing is necessary for older PowerShells when Internet Explorer might not be installed/configured
|
||||
$null = Invoke-WebRequest -Uri "$toolUrl" -OutFile $(Join-Path $downloadOutputPath -ChildPath "$toolName.exe") -PassThru -UseBasicParsing
|
||||
}
|
||||
else {
|
||||
Write-Output "Found '$targetPath'"
|
||||
}
|
||||
}
|
||||
|
||||
$downloadPathFolder = Split-Path $PSScriptRoot -Parent | Split-Path -Parent | Join-Path -ChildPath "artifacts" | Join-Path -ChildPath "tools"
|
||||
|
||||
mkdir $downloadPathFolder -ErrorAction SilentlyContinue
|
||||
|
||||
DownloadClangTool "clang-format" "$downloadPathFolder"
|
||||
|
||||
# Add to path to enable scripts to skip additional downloading steps since the tools will already be on the path.
|
||||
$env:PATH = "$downloadPathFolder;$env:PATH"
|
||||
60
eng/formatting/download-tools.sh
Normal file
60
eng/formatting/download-tools.sh
Normal file
@@ -0,0 +1,60 @@
|
||||
# Tool taken from dotnet/runtime
|
||||
# https://github.com/dotnet/runtime/blob/a8158c170b694f8c1dbae114c63c346b38244901/eng/formatting/download-tools.sh
|
||||
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ue
|
||||
|
||||
source="${BASH_SOURCE[0]}"
|
||||
|
||||
# resolve $source until the file is no longer a symlink
|
||||
while [[ -h "$source" ]]; do
|
||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
source="$(readlink "$source")"
|
||||
# if $source was a relative symlink, we need to resolve it relative to the path where the
|
||||
# symlink file was located
|
||||
[[ $source != /* ]] && source="$scriptroot/$source"
|
||||
done
|
||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
|
||||
function DownloadClangTool {
|
||||
|
||||
clangVersion="17.0.6"
|
||||
clangToolsRootUrl="https://clrjit2.blob.core.windows.net/clang-tools"
|
||||
|
||||
clangPlatform="$(dotnet --info | grep 'RID:')"
|
||||
clangPlatform="${clangPlatform##*RID:* }"
|
||||
echo "dotnet RID: ${clangPlatform}"
|
||||
|
||||
# override common RIDs with compatible version so we don't need to upload binaries for each RID
|
||||
case $clangPlatform in
|
||||
ubuntu.*-x64)
|
||||
clangPlatform=linux-x64
|
||||
;;
|
||||
esac
|
||||
|
||||
toolUrl="${clangToolsRootUrl}/${clangVersion}/${clangPlatform}/$1"
|
||||
toolOutput=$2/$1
|
||||
|
||||
echo "Downloading $1 from ${toolUrl} to ${toolOutput}"
|
||||
|
||||
if [[ ! -x "$toolOutput" ]]; then
|
||||
curl --silent --retry 5 --fail -o "${toolOutput}" "$toolUrl"
|
||||
chmod 751 $toolOutput
|
||||
fi
|
||||
|
||||
if [[ ! -x "$toolOutput" ]]; then
|
||||
echo "Failed to download $1"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
engFolder="$(cd -P "$( dirname "$scriptroot" )" && pwd )"
|
||||
downloadPathFolder="$(cd -P "$( dirname "$engFolder" )" && pwd )/artifacts/tools"
|
||||
|
||||
mkdir -p "$downloadPathFolder"
|
||||
|
||||
DownloadClangTool "clang-format" "$downloadPathFolder"
|
||||
|
||||
export PATH=$downloadPathFolder:$PATH
|
||||
29
eng/formatting/format.sh
Normal file
29
eng/formatting/format.sh
Normal file
@@ -0,0 +1,29 @@
|
||||
# Tool taken from dotnet/runtime
|
||||
# https://github.com/dotnet/runtime/blob/a8158c170b694f8c1dbae114c63c346b38244901/eng/formatting/format.sh
|
||||
|
||||
#!/bin/sh
|
||||
|
||||
LC_ALL=C
|
||||
# Select files to format
|
||||
NATIVE_FILES=$(git diff --cached --name-only --diff-filter=ACM "*.h" "*.hpp" "*.c" "*.cpp" "*.inl" | sed 's| |\\ |g')
|
||||
MANAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM "*.cs" "*.vb" | sed 's| |\\ |g')
|
||||
|
||||
exec 1>&2
|
||||
|
||||
if [ -n "$NATIVE_FILES" ]; then
|
||||
# Format all selected files
|
||||
echo "$NATIVE_FILES" | cat | xargs | sed -e 's/ /,/g' | xargs "./artifacts/tools/clang-format" -style=file -i
|
||||
|
||||
# Add back the modified files to staging
|
||||
echo "$NATIVE_FILES" | xargs git add
|
||||
fi
|
||||
|
||||
if [ -n "$MANAGED_FILES" ]; then
|
||||
# Format all selected files
|
||||
echo "$MANAGED_FILES" | cat | xargs | sed -e 's/ /,/g' | dotnet format whitespace --include - --folder
|
||||
|
||||
# Add back the modified files to staging
|
||||
echo "$MANAGED_FILES" | xargs git add
|
||||
fi
|
||||
|
||||
exit 0
|
||||
71
eng/install/install.ps1
Normal file
71
eng/install/install.ps1
Normal file
@@ -0,0 +1,71 @@
|
||||
# Install script that downloads Metamod:Source and Counter-Strike Sharp (with runtime)
|
||||
|
||||
$MM_DOWNLOAD_URL = "https://mms.alliedmods.net/mmsdrop/2.0/mmsource-2.0.0-git1286-windows.zip"
|
||||
$TARGET_DIR = "./game/csgo"
|
||||
$GAMEINFO_FILE = Join-Path $TARGET_DIR "gameinfo.gi"
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
|
||||
# Verification
|
||||
if (-not (Test-Path $GAMEINFO_FILE)) {
|
||||
Write-Error "Error: $GAMEINFO_FILE does not exist in the specified directory."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# GitHub API for Counter-Strike Sharp Releases
|
||||
$RELEASE_INFO = (Invoke-WebRequest -Uri "https://api.github.com/repos/roflmuffin/CounterStrikeSharp/releases/latest").Content | ConvertFrom-Json
|
||||
|
||||
# Filtering download URLs
|
||||
$CSSHARP_DOWNLOAD_URL = $RELEASE_INFO.assets |
|
||||
Where-Object { $_.browser_download_url -like '*windows*.zip*' -and $_.browser_download_url -notlike '*with-runtime*' } |
|
||||
Select-Object -First 1 -ExpandProperty browser_download_url
|
||||
|
||||
$CSSHARP_RUNTIME_DOWNLOAD_URL = $RELEASE_INFO.assets |
|
||||
Where-Object { $_.browser_download_url -like '*windows*.zip*' -and $_.browser_download_url -like '*with-runtime*' } |
|
||||
Select-Object -First 1 -ExpandProperty browser_download_url
|
||||
|
||||
### METAMOD:SOURCE ###
|
||||
Write-Output "Downloading Metamod:Source..."
|
||||
|
||||
Invoke-WebRequest -Uri $MM_DOWNLOAD_URL -OutFile metamod.zip
|
||||
Write-Output "Extracting Metamod:Source to $TARGET_DIR..."
|
||||
Expand-Archive -Force -Path metamod.zip -DestinationPath $TARGET_DIR
|
||||
Remove-Item metamod.zip
|
||||
|
||||
### GAMEINFO.GI UPDATE ###
|
||||
$NEW_ENTRY = " Game csgo/addons/metamod"
|
||||
$FILE_CONTENT = Get-Content $GAMEINFO_FILE
|
||||
|
||||
Write-Output "Updating $GAMEINFO_FILE..."
|
||||
if ($FILE_CONTENT -contains $NEW_ENTRY) {
|
||||
Write-Output "The entry '$NEW_ENTRY' already exists in $GAMEINFO_FILE. No changes were made."
|
||||
} else {
|
||||
$Pattern = "Game_LowViolence"
|
||||
$Modified = $false
|
||||
$NewContent = @()
|
||||
|
||||
foreach ($line in $FILE_CONTENT) {
|
||||
if ($line -match $Pattern -and -not $Modified) {
|
||||
$NewContent += $line
|
||||
$NewContent += $NEW_ENTRY
|
||||
$Modified = $true
|
||||
} else {
|
||||
$NewContent += $line
|
||||
}
|
||||
}
|
||||
|
||||
$NewContent | Set-Content $GAMEINFO_FILE
|
||||
Write-Host "The file $GAMEINFO_FILE has been modified successfully. '$NEW_ENTRY' has been added."
|
||||
}
|
||||
|
||||
### COUNTER-STRIKE SHARP ###
|
||||
Write-Output "Downloading Counter-Strike Sharp (with runtime)..."
|
||||
|
||||
# Determine if runtime needs to be downloaded
|
||||
if (-not (Test-Path "./game/csgo/addons/CounterStrikeSharp/dotnet/dotnet.exe")) {
|
||||
$CSSHARP_DOWNLOAD_URL = $CSSHARP_RUNTIME_DOWNLOAD_URL
|
||||
}
|
||||
|
||||
Invoke-WebRequest -Uri $CSSHARP_DOWNLOAD_URL -OutFile cssharp.zip
|
||||
Write-Output "Extracting Counter-Strike Sharp to $TARGET_DIR..."
|
||||
Expand-Archive -Force -Path cssharp.zip -DestinationPath $TARGET_DIR
|
||||
Remove-Item cssharp.zip
|
||||
72
eng/install/install.sh
Executable file
72
eng/install/install.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install script that downloads Metamod:Source and Counter-Strike Sharp (with runtime)
|
||||
|
||||
MM_DOWNLOAD_URL="https://mms.alliedmods.net/mmsdrop/2.0/mmsource-2.0.0-git1286-linux.tar.gz"
|
||||
TARGET_DIR="./game/csgo"
|
||||
GAMEINFO_FILE="${TARGET_DIR}/gameinfo.gi"
|
||||
|
||||
if [ ! -f "${GAMEINFO_FILE}" ]; then
|
||||
printf "Error: %s does not exist in the specified directory.\n" "$GAMEINFO_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RELEASE_INFO=$(curl -s https://api.github.com/repos/roflmuffin/CounterStrikeSharp/releases/latest)
|
||||
|
||||
# Filter and store download URLs
|
||||
CSSHARP_DOWNLOAD_URL=$(echo "$RELEASE_INFO" | grep -o "browser_download_url.*linux.*\.zip" | cut -d '"' -f 3 | grep -v "with-runtime")
|
||||
CSSHARP_RUNTIME_DOWNLOAD_URL=$(echo "$RELEASE_INFO" | grep -o "browser_download_url.*linux.*\.zip" | cut -d '"' -f 3 | grep "with-runtime")
|
||||
|
||||
### METAMOD:SOURCE ###
|
||||
printf "Downloading Metamod:Source...\n"
|
||||
|
||||
curl -s -L -o metamod.tar.gz "$MM_DOWNLOAD_URL"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
printf "Extracting Metamod:Source to %s...\n" "$TARGET_DIR"
|
||||
tar -xzf metamod.tar.gz -C "$TARGET_DIR"
|
||||
|
||||
rm metamod.tar.gz
|
||||
else
|
||||
echo "Download failed. Please check the URL and your connection."
|
||||
fi
|
||||
|
||||
### GAMEINFO.GI UPDATE ###
|
||||
NEW_ENTRY=" Game csgo/addons/metamod"
|
||||
|
||||
printf "Updating %s...\n" "$GAMEINFO_FILE"
|
||||
if grep -Fxq "$NEW_ENTRY" "$GAMEINFO_FILE"; then
|
||||
echo "The entry '$(echo $NEW_ENTRY | xargs)' already exists in ${GAMEINFO_FILE}. No changes were made."
|
||||
else
|
||||
awk -v new_entry="$NEW_ENTRY" '
|
||||
BEGIN { found=0; }
|
||||
// {
|
||||
if (found) {
|
||||
print new_entry;
|
||||
found=0;
|
||||
}
|
||||
print;
|
||||
}
|
||||
/Game_LowViolence/ { found=1; }
|
||||
' "$GAMEINFO_FILE" > "$GAMEINFO_FILE.tmp" && mv "$GAMEINFO_FILE.tmp" "$GAMEINFO_FILE"
|
||||
|
||||
printf "The file %s has been modified successfully. '%s' has been added.\n" "$GAMEINFO_FILE" "$(echo $NEW_ENTRY | xargs)"
|
||||
fi
|
||||
|
||||
printf "Downloading Counter-Strike Sharp (with runtime)...\n"
|
||||
|
||||
# If ./game/csgo/addons/CounterStrikeSharp/dotnet/dotnet does not exist, use the runtime download url
|
||||
if [ ! -f "./game/csgo/addons/CounterStrikeSharp/dotnet/dotnet" ]; then
|
||||
CSSHARP_DOWNLOAD_URL="$CSSHARP_RUNTIME_DOWNLOAD_URL"
|
||||
fi
|
||||
|
||||
curl -s -L -o cssharp.zip "$CSSHARP_DOWNLOAD_URL"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
printf "Extracting Counter-Strike Sharp to %s...\n" "$TARGET_DIR"
|
||||
unzip -q -o cssharp.zip -d "$TARGET_DIR"
|
||||
|
||||
rm cssharp.zip
|
||||
else
|
||||
echo "Download failed. Please check the URL and your connection."
|
||||
fi
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<OutputType>Library</OutputType>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -5,7 +5,7 @@ using MySharedTypes.Contracts;
|
||||
|
||||
namespace WithSharedTypes;
|
||||
|
||||
[MinimumApiVersion(143)]
|
||||
[MinimumApiVersion(184)]
|
||||
public class WithSharedTypesPlugin : BasePlugin
|
||||
{
|
||||
public override string ModuleName => "Example: Shared Types";
|
||||
@@ -54,4 +54,4 @@ public class WithSharedTypesPlugin : BasePlugin
|
||||
public override void Unload(bool hotReload)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -6,7 +6,7 @@ using MySharedTypes.Contracts;
|
||||
|
||||
namespace WithSharedTypesConsumer;
|
||||
|
||||
[MinimumApiVersion(142)]
|
||||
[MinimumApiVersion(184)]
|
||||
public class WithSharedTypesConsumerPlugin : BasePlugin
|
||||
{
|
||||
public override string ModuleName => "Example: Shared Types (Consumer)";
|
||||
@@ -53,4 +53,4 @@ public class WithSharedTypesConsumerPlugin : BasePlugin
|
||||
public override void Unload(bool hotReload)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
|
||||
Submodule libraries/hl2sdk-cs2 updated: 43bfe744a1...4b31db7505
Submodule libraries/metamod-source updated: e857fbe90c...607301adc3
3747
libraries/moodycamel/concurrentqueue.h
Normal file
3747
libraries/moodycamel/concurrentqueue.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,5 @@
|
||||
#set(_ITERATOR_DEBUG_LEVEL 2)
|
||||
add_definitions(-D_LINUX -DPOSIX -DLINUX -DGNUC -DCOMPILER_GCC -DPLATFORM_64BITS)
|
||||
|
||||
add_definitions(-D_LINUX -DPOSIX -DLINUX -DGNUC -DCOMPILER_GCC -DPLATFORM_64BITS -D_FILE_OFFSET_BITS=64)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dstrnicmp=strncasecmp -D_snprintf=snprintf")
|
||||
@@ -16,16 +15,18 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof -Wno-reorder")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse -msse -fno-strict-aliasing")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-threadsafe-statics -v -fvisibility=default")
|
||||
|
||||
SET(
|
||||
COUNTER_STRIKE_SHARP_LINK_LIBRARIES
|
||||
${SOURCESDK_LIB}/linux64/libtier0.so
|
||||
${SOURCESDK_LIB}/linux64/tier1.a
|
||||
${SOURCESDK_LIB}/linux64/interfaces.a
|
||||
${SOURCESDK_LIB}/linux64/mathlib.a
|
||||
spdlog
|
||||
dynload_s
|
||||
dyncall_s
|
||||
distorm
|
||||
funchook-static
|
||||
dynohook
|
||||
)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static-libgcc -static-libstdc++")
|
||||
|
||||
set(
|
||||
COUNTER_STRIKE_SHARP_LINK_LIBRARIES
|
||||
${SOURCESDK_LIB}/linux64/libtier0.so
|
||||
${SOURCESDK_LIB}/linux64/tier1.a
|
||||
${SOURCESDK_LIB}/linux64/interfaces.a
|
||||
${SOURCESDK_LIB}/linux64/mathlib.a
|
||||
spdlog
|
||||
dynload_s
|
||||
dyncall_s
|
||||
distorm
|
||||
funchook-static
|
||||
dynohook
|
||||
)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
if (UNIX AND NOT APPLE)
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(LINUX TRUE)
|
||||
endif()
|
||||
|
||||
if (WIN32 AND NOT MSVC)
|
||||
if(WIN32 AND NOT MSVC)
|
||||
message(FATAL "MSVC restricted.")
|
||||
endif()
|
||||
|
||||
@@ -11,10 +11,9 @@ set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING
|
||||
FORCE
|
||||
)
|
||||
|
||||
# TODO: Use C++20 instead.
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
if (LINUX)
|
||||
if(LINUX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||
endif()
|
||||
@@ -29,6 +28,18 @@ set(SOURCESDK_LIB ${SOURCESDK}/lib)
|
||||
|
||||
add_definitions(-DMETA_IS_SOURCE2)
|
||||
|
||||
if(DEFINED ENV{GITHUB_SHA_SHORT})
|
||||
add_definitions(-DGITHUB_SHA="$ENV{GITHUB_SHA_SHORT}")
|
||||
else()
|
||||
add_definitions(-DGITHUB_SHA="Local")
|
||||
endif()
|
||||
|
||||
if(DEFINED ENV{BUILD_NUMBER})
|
||||
add_definitions(-DBUILD_NUMBER="$ENV{BUILD_NUMBER}")
|
||||
else()
|
||||
add_definitions(-DBUILD_NUMBER="0")
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
${SOURCESDK}
|
||||
${SOURCESDK}/thirdparty/protobuf-3.21.8/src
|
||||
@@ -43,6 +54,7 @@ include_directories(
|
||||
${SOURCESDK}/public/entity2
|
||||
${SOURCESDK}/public/game/server
|
||||
${SOURCESDK}/public/entity2
|
||||
${SOURCESDK}/public/schemasystem
|
||||
${METAMOD_DIR}/core
|
||||
${METAMOD_DIR}/core/sourcehook
|
||||
libraries/dyncall/dynload
|
||||
@@ -51,7 +63,8 @@ include_directories(
|
||||
libraries/tl
|
||||
libraries/funchook/include
|
||||
libraries/DynoHook/src
|
||||
libraries/moodycamel
|
||||
libraries
|
||||
)
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/metamod/configure_metamod.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/metamod/configure_metamod.cmake)
|
||||
|
||||
@@ -6,6 +6,7 @@ add_definitions(
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4819 /wd4828 /wd5033 /permissive- /utf-8 /wd4005 /MP")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /OPT:REF /OPT:ICF")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:libcmt")
|
||||
|
||||
set(COUNTER_STRIKE_SHARP_LINK_LIBRARIES
|
||||
${SOURCESDK_LIB}/public/win64/tier0.lib
|
||||
@@ -18,4 +19,4 @@ set(COUNTER_STRIKE_SHARP_LINK_LIBRARIES
|
||||
distorm
|
||||
funchook-static
|
||||
dynohook
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
|
||||
@@ -13,4 +13,14 @@ public class Api
|
||||
{
|
||||
return Assembly.GetAssembly(typeof(BasePlugin))!.GetName().Version!.Build;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the assembly version of CounterStrikeSharp running on the server as a string including git commit hash
|
||||
/// </summary>
|
||||
/// <example>1.0.0+9d8b6be</example>
|
||||
public static string GetVersionString()
|
||||
{
|
||||
return Assembly.GetAssembly(typeof(BasePlugin))!.GetCustomAttribute<AssemblyInformationalVersionAttribute>()!
|
||||
.InformationalVersion;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
BIN
managed/CounterStrikeSharp.API/ApiCompat/v202.dll
Normal file
BIN
managed/CounterStrikeSharp.API/ApiCompat/v202.dll
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -315,16 +315,6 @@ namespace CounterStrikeSharp.API.Core
|
||||
}
|
||||
}
|
||||
|
||||
public static float GetGameFrameTime(){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
ScriptContext.GlobalScriptContext.SetIdentifier(0x97E331CA);
|
||||
ScriptContext.GlobalScriptContext.Invoke();
|
||||
ScriptContext.GlobalScriptContext.CheckErrors();
|
||||
return (float)ScriptContext.GlobalScriptContext.GetResult(typeof(float));
|
||||
}
|
||||
}
|
||||
|
||||
public static double GetEngineTime(){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
@@ -512,6 +502,17 @@ namespace CounterStrikeSharp.API.Core
|
||||
}
|
||||
}
|
||||
|
||||
public static void QueueTaskForFrame(int tick, InputArgument callback){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
ScriptContext.GlobalScriptContext.Push(tick);
|
||||
ScriptContext.GlobalScriptContext.Push((InputArgument)callback);
|
||||
ScriptContext.GlobalScriptContext.SetIdentifier(0x2F92C340);
|
||||
ScriptContext.GlobalScriptContext.Invoke();
|
||||
ScriptContext.GlobalScriptContext.CheckErrors();
|
||||
}
|
||||
}
|
||||
|
||||
public static void QueueTaskForNextWorldUpdate(InputArgument callback){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
@@ -713,6 +714,37 @@ namespace CounterStrikeSharp.API.Core
|
||||
}
|
||||
}
|
||||
|
||||
public static void AcceptInput(IntPtr pthis, string inputname, IntPtr activator, IntPtr caller, string value, int outputid){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
ScriptContext.GlobalScriptContext.Push(pthis);
|
||||
ScriptContext.GlobalScriptContext.Push(inputname);
|
||||
ScriptContext.GlobalScriptContext.Push(activator);
|
||||
ScriptContext.GlobalScriptContext.Push(caller);
|
||||
ScriptContext.GlobalScriptContext.Push(value);
|
||||
ScriptContext.GlobalScriptContext.Push(outputid);
|
||||
ScriptContext.GlobalScriptContext.SetIdentifier(0x259E084C);
|
||||
ScriptContext.GlobalScriptContext.Invoke();
|
||||
ScriptContext.GlobalScriptContext.CheckErrors();
|
||||
}
|
||||
}
|
||||
|
||||
public static void AddEntityIoEvent(IntPtr ptarget, string inputname, IntPtr activator, IntPtr caller, string value, float delay, int outputid){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
ScriptContext.GlobalScriptContext.Push(ptarget);
|
||||
ScriptContext.GlobalScriptContext.Push(inputname);
|
||||
ScriptContext.GlobalScriptContext.Push(activator);
|
||||
ScriptContext.GlobalScriptContext.Push(caller);
|
||||
ScriptContext.GlobalScriptContext.Push(value);
|
||||
ScriptContext.GlobalScriptContext.Push(delay);
|
||||
ScriptContext.GlobalScriptContext.Push(outputid);
|
||||
ScriptContext.GlobalScriptContext.SetIdentifier(0x4CFDE98A);
|
||||
ScriptContext.GlobalScriptContext.Invoke();
|
||||
ScriptContext.GlobalScriptContext.CheckErrors();
|
||||
}
|
||||
}
|
||||
|
||||
public static void HookEvent(string name, InputArgument callback, bool ispost){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
@@ -749,6 +781,16 @@ namespace CounterStrikeSharp.API.Core
|
||||
}
|
||||
}
|
||||
|
||||
public static void FreeEvent(IntPtr gameevent){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
ScriptContext.GlobalScriptContext.Push(gameevent);
|
||||
ScriptContext.GlobalScriptContext.SetIdentifier(0x7E8B60C2);
|
||||
ScriptContext.GlobalScriptContext.Invoke();
|
||||
ScriptContext.GlobalScriptContext.CheckErrors();
|
||||
}
|
||||
}
|
||||
|
||||
public static void FireEvent(IntPtr gameevent, bool dontbroadcast){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
@@ -1085,6 +1127,16 @@ namespace CounterStrikeSharp.API.Core
|
||||
}
|
||||
}
|
||||
|
||||
public static void RemoveAllNetworkVectorElements(IntPtr vec){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
ScriptContext.GlobalScriptContext.Push(vec);
|
||||
ScriptContext.GlobalScriptContext.SetIdentifier(0x67206C08);
|
||||
ScriptContext.GlobalScriptContext.Invoke();
|
||||
ScriptContext.GlobalScriptContext.CheckErrors();
|
||||
}
|
||||
}
|
||||
|
||||
public static short GetSchemaOffset(string classname, string propname){
|
||||
lock (ScriptContext.GlobalScriptContext.Lock) {
|
||||
ScriptContext.GlobalScriptContext.Reset();
|
||||
|
||||
@@ -106,13 +106,13 @@ namespace CounterStrikeSharp.API.Core
|
||||
[RequiresPermissions("@css/generic")]
|
||||
private void OnCSSCommand(CCSPlayerController? caller, CommandInfo info)
|
||||
{
|
||||
var currentVersion = Api.GetVersion();
|
||||
var versionString = $"v{Api.GetVersion()} ({Api.GetVersionString()})";
|
||||
|
||||
info.ReplyToCommand(
|
||||
" CounterStrikeSharp was created and is maintained by Michael \"roflmuffin\" Wilson.\n" +
|
||||
" Counter-Strike Sharp uses code borrowed from SourceMod, Source.Python, FiveM, Saul Rennison, source2gen and CS2Fixes.\n" +
|
||||
" See ACKNOWLEDGEMENTS.md for more information.\n" +
|
||||
" Current API Version: " + currentVersion);
|
||||
" Current API Version: " + versionString);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -130,11 +130,11 @@ namespace CounterStrikeSharp.API.Core
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
sb.AppendFormat(" [#{0}:{1}]: \"{2}\" ({3})", plugin.PluginId,
|
||||
plugin.State.ToString().ToUpper(), plugin.Plugin.ModuleName,
|
||||
plugin.Plugin.ModuleVersion);
|
||||
if (!string.IsNullOrEmpty(plugin.Plugin.ModuleAuthor))
|
||||
plugin.State.ToString().ToUpper(), plugin.Plugin?.ModuleName ?? "Unknown",
|
||||
plugin.Plugin?.ModuleVersion ?? "Unknown");
|
||||
if (!string.IsNullOrEmpty(plugin.Plugin?.ModuleAuthor))
|
||||
sb.AppendFormat(" by {0}", plugin.Plugin.ModuleAuthor);
|
||||
if (!string.IsNullOrEmpty(plugin.Plugin.ModuleDescription))
|
||||
if (!string.IsNullOrEmpty(plugin.Plugin?.ModuleDescription))
|
||||
{
|
||||
sb.Append("\n");
|
||||
sb.Append(" ");
|
||||
|
||||
@@ -122,9 +122,6 @@ namespace CounterStrikeSharp.API.Core
|
||||
public readonly Dictionary<Delegate, CallbackSubscriber> CommandListeners =
|
||||
new Dictionary<Delegate, CallbackSubscriber>();
|
||||
|
||||
public readonly Dictionary<Delegate, CallbackSubscriber> ConvarChangeHandlers =
|
||||
new Dictionary<Delegate, CallbackSubscriber>();
|
||||
|
||||
public readonly Dictionary<Delegate, CallbackSubscriber> Listeners =
|
||||
new Dictionary<Delegate, CallbackSubscriber>();
|
||||
|
||||
@@ -159,7 +156,23 @@ namespace CounterStrikeSharp.API.Core
|
||||
var name = typeof(T).GetCustomAttribute<EventNameAttribute>()?.Name;
|
||||
RegisterEventHandlerInternal(name, handler, hookMode == HookMode.Post);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// De-registers a game event handler.
|
||||
/// </summary>
|
||||
/// <inheritdoc cref="RegisterEventHandler{T}"/>
|
||||
public void DeregisterEventHandler<T>(GameEventHandler<T> handler, HookMode hookMode = HookMode.Post) where T : GameEvent
|
||||
{
|
||||
var name = typeof(T).GetCustomAttribute<EventNameAttribute>()!.Name;
|
||||
|
||||
if (!Handlers.TryGetValue(handler, out var subscriber)) return;
|
||||
|
||||
NativeAPI.UnhookEvent(name, subscriber.GetInputArgument(), hookMode == HookMode.Post);
|
||||
FunctionReference.Remove(subscriber.GetReferenceIdentifier());
|
||||
Handlers.Remove(handler);
|
||||
}
|
||||
|
||||
[Obsolete("Use the generic version of this method")]
|
||||
public void DeregisterEventHandler(string name, Delegate handler, bool post)
|
||||
{
|
||||
if (!Handlers.TryGetValue(handler, out var subscriber)) return;
|
||||
@@ -187,6 +200,12 @@ namespace CounterStrikeSharp.API.Core
|
||||
CommandManager.RegisterCommand(definition);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a command listener which will be called before or after the command is executed on the server by a player.
|
||||
/// </summary>
|
||||
/// <param name="name">Name of the command, e.g. `jointeam`</param>
|
||||
/// <param name="handler">Code to run when command is executed. Return <see cref="HookResult.Handled"/> or higher to prevent command execution.</param>
|
||||
/// <param name="mode">Whether to hook before or after the command is executed.</param>
|
||||
public void AddCommandListener(string? name, CommandInfo.CommandListenerCallback handler, HookMode mode = HookMode.Pre)
|
||||
{
|
||||
var wrappedHandler = new Func<int, IntPtr, HookResult>((i, ptr) =>
|
||||
@@ -202,6 +221,11 @@ namespace CounterStrikeSharp.API.Core
|
||||
CommandListeners[handler] = subscriber;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes a server command.
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the command.</param>
|
||||
/// <param name="handler">The callback function to be invoked when the command is executed.</param>
|
||||
public void RemoveCommand(string name, CommandInfo.CommandCallback handler)
|
||||
{
|
||||
if (CommandHandlers.ContainsKey(handler))
|
||||
@@ -215,6 +239,10 @@ namespace CounterStrikeSharp.API.Core
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove a command listener.
|
||||
/// </summary>
|
||||
/// <inheritdoc cref="AddCommandListener"/>
|
||||
public void RemoveCommandListener(string name, CommandInfo.CommandListenerCallback handler, HookMode mode)
|
||||
{
|
||||
if (CommandListeners.ContainsKey(handler))
|
||||
@@ -228,39 +256,24 @@ namespace CounterStrikeSharp.API.Core
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
public void HookConVarChange(ConVar convar, ConVar.ConVarChangedCallback handler)
|
||||
{
|
||||
var wrappedHandler = new Action<IntPtr, string, string>((ptr, oldVal, newVal) =>
|
||||
{
|
||||
handler?.Invoke(new ConVar(ptr), oldVal, newVal);
|
||||
});
|
||||
|
||||
var subscriber = new CallbackSubscriber(convar, handler, wrappedHandler);
|
||||
NativeAPI.HookConvarChange(convar.Handle, subscriber.GetInputArgument());
|
||||
ConvarChangeHandlers[handler] = subscriber;
|
||||
}
|
||||
|
||||
public void UnhookConVarChange(ConVar convar, ConVar.ConVarChangedCallback handler)
|
||||
{
|
||||
if (ConvarChangeHandlers.ContainsKey(handler))
|
||||
{
|
||||
var subscriber = ConvarChangeHandlers[handler];
|
||||
|
||||
NativeAPI.UnhookConvarChange(convar.Handle, subscriber.GetInputArgument());
|
||||
FunctionReference.Remove(subscriber.GetReferenceIdentifier());
|
||||
CommandHandlers.Remove(handler);
|
||||
}
|
||||
}*/
|
||||
|
||||
// Adds global listener, e.g. OnTick, OnClientConnect
|
||||
/// <summary>
|
||||
/// Registers a global listener, e.g. <see cref="Listeners.OnTick"/>, <see cref="Listeners.OnClientConnect"/>.
|
||||
/// </summary>
|
||||
/// <param name="handler"></param>
|
||||
/// <typeparam name="T">Listener delegate type</typeparam>
|
||||
/// <exception cref="ArgumentException">Invalid listener <see cref="T"/> provided</exception>
|
||||
/// <example>
|
||||
/// <code lang="C#">
|
||||
/// RegisterListener<Listeners.OnTick>(OnTick);
|
||||
/// </code>
|
||||
/// </example>
|
||||
public void RegisterListener<T>(T handler) where T : Delegate
|
||||
{
|
||||
var listenerName = typeof(T).GetCustomAttribute<ListenerNameAttribute>()?.Name;
|
||||
if (string.IsNullOrEmpty(listenerName))
|
||||
{
|
||||
throw new Exception("Listener of type T is invalid and does not have a name attribute");
|
||||
throw new ArgumentException("Listener of type T is invalid and does not have a name attribute",
|
||||
nameof(T));
|
||||
}
|
||||
|
||||
var parameterTypes = typeof(T).GetMethod("Invoke").GetParameters().Select(p => p.ParameterType).ToArray();
|
||||
@@ -291,6 +304,34 @@ namespace CounterStrikeSharp.API.Core
|
||||
Listeners[handler] = subscriber;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes a global listener.
|
||||
/// </summary>
|
||||
/// <param name="handler"></param>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <exception cref="ArgumentException">Invalid listener <see cref="T"/> provided</exception>
|
||||
public void RemoveListener<T>(T handler) where T : Delegate
|
||||
{
|
||||
var listenerName = typeof(T).GetCustomAttribute<ListenerNameAttribute>()?.Name;
|
||||
if (string.IsNullOrEmpty(listenerName))
|
||||
{
|
||||
throw new ArgumentException("Listener of type T is invalid and does not have a name attribute",
|
||||
nameof(T));
|
||||
}
|
||||
|
||||
if (!Listeners.TryGetValue(handler, out var subscriber)) return;
|
||||
|
||||
NativeAPI.RemoveListener(listenerName, subscriber.GetInputArgument());
|
||||
FunctionReference.Remove(subscriber.GetReferenceIdentifier());
|
||||
Listeners.Remove(handler);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes a global listener.
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="handler"></param>
|
||||
[Obsolete("Use the generic version of this method")]
|
||||
public void RemoveListener(string name, Delegate handler)
|
||||
{
|
||||
if (!Listeners.TryGetValue(handler, out var subscriber)) return;
|
||||
@@ -300,6 +341,14 @@ namespace CounterStrikeSharp.API.Core
|
||||
Listeners.Remove(handler);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a timer that will call the given callback after the specified amount of seconds.
|
||||
/// By default will only run once unless the <see cref="TimerFlags.REPEAT"/> flag is set.
|
||||
/// </summary>
|
||||
/// <param name="interval">Interval/Delay in seconds</param>
|
||||
/// <param name="callback">Code to run when timer elapses</param>
|
||||
/// <param name="flags">Controls if the timer is a one-off, repeat or stops on map change etc.</param>
|
||||
/// <returns>An instance of the <see cref="Timer"/></returns>
|
||||
public Timer AddTimer(float interval, Action callback, TimerFlags? flags = null)
|
||||
{
|
||||
var timer = new Timer(interval, callback, flags ?? 0);
|
||||
@@ -307,7 +356,11 @@ namespace CounterStrikeSharp.API.Core
|
||||
return timer;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Registers all attribute handlers on the given instance.
|
||||
/// Can be used to register event handlers, console commands, entity outputs etc. from classes that are not derived from `BasePlugin`.
|
||||
/// </summary>
|
||||
/// <param name="instance"></param>
|
||||
public void RegisterAllAttributes(object instance)
|
||||
{
|
||||
this.RegisterAttributeHandlers(instance);
|
||||
@@ -342,7 +395,7 @@ namespace CounterStrikeSharp.API.Core
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Registers all game event handlers that are decorated with the `[GameEventHandler]` attribute.
|
||||
/// Registers all game event handlers that are decorated with the <see cref="GameEventHandlerAttribute"/> attribute.
|
||||
/// </summary>
|
||||
/// <param name="instance">The instance of the object where the event handlers are defined.</param>
|
||||
public void RegisterAttributeHandlers(object instance)
|
||||
@@ -372,6 +425,10 @@ namespace CounterStrikeSharp.API.Core
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Registers all console command handlers that are decorated with the <see cref="ConsoleCommandAttribute"/> attribute.
|
||||
/// </summary>
|
||||
/// <param name="instance">The instance of the object where the console command handlers are defined.</param>
|
||||
public void RegisterConsoleCommandAttributeHandlers(object instance)
|
||||
{
|
||||
var eventHandlers = instance.GetType()
|
||||
@@ -399,6 +456,10 @@ namespace CounterStrikeSharp.API.Core
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Registers all entity output handlers that are decorated with the <see cref="EntityOutputHookAttribute"/> attribute.
|
||||
/// </summary>
|
||||
/// <param name="instance">The instance of the object where entity output hook handlers are defined.</param>
|
||||
public void RegisterEntityOutputAttributeHandlers(object instance)
|
||||
{
|
||||
var handlers = instance.GetType()
|
||||
@@ -453,6 +514,12 @@ namespace CounterStrikeSharp.API.Core
|
||||
RegisterFakeConVars(instance.GetType(), instance);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hooks an <a href="https://developer.valvesoftware.com/wiki/Inputs_and_Outputs">entity output</a>.
|
||||
/// </summary>
|
||||
/// <param name="classname">Classname to hook, or `*` for wildcard</param>
|
||||
/// <param name="outputName">Output name to hook, or `*` for wildcard</param>
|
||||
/// <param name="handler">Handler to call</param>
|
||||
public void HookEntityOutput(string classname, string outputName, EntityIO.EntityOutputHandler handler, HookMode mode = HookMode.Pre)
|
||||
{
|
||||
var subscriber = new CallbackSubscriber(handler, handler,
|
||||
@@ -462,6 +529,10 @@ namespace CounterStrikeSharp.API.Core
|
||||
EntityOutputHooks[handler] = subscriber;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Unhooks an entity output.
|
||||
/// </summary>
|
||||
/// <inheritdoc cref="HookEntityOutput"/>
|
||||
public void UnhookEntityOutput(string classname, string outputName, EntityIO.EntityOutputHandler handler, HookMode mode = HookMode.Pre)
|
||||
{
|
||||
if (!EntityOutputHooks.TryGetValue(handler, out var subscriber)) return;
|
||||
@@ -471,6 +542,12 @@ namespace CounterStrikeSharp.API.Core
|
||||
EntityOutputHooks.Remove(handler);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hooks an entity output for a single entity instance.
|
||||
/// </summary>
|
||||
/// <param name="entityInstance">Entity instance to hook</param>
|
||||
/// <param name="outputName">Output name to hook, or `*` for wildcard</param>
|
||||
/// <param name="handler">Handler to call</param>
|
||||
public void HookSingleEntityOutput(CEntityInstance entityInstance, string outputName, EntityIO.EntityOutputHandler handler)
|
||||
{
|
||||
// since we wrap around the plugin handler we need to do this to ensure that the plugin callback is only called
|
||||
@@ -494,6 +571,10 @@ namespace CounterStrikeSharp.API.Core
|
||||
EntitySingleOutputHooks[handler] = new EntityIO.EntityOutputCallback(entityInstance.DesignerName, outputName, internalHandler);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Unhooks an entity output for a single entity instance.
|
||||
/// </summary>
|
||||
/// <inheritdoc cref="HookSingleEntityOutput"/>
|
||||
public void UnhookSingleEntityOutput(CEntityInstance entityInstance, string outputName, EntityIO.EntityOutputHandler handler)
|
||||
{
|
||||
UnhookSingleEntityOutputInternal(entityInstance.DesignerName, outputName, handler);
|
||||
@@ -532,10 +613,6 @@ namespace CounterStrikeSharp.API.Core
|
||||
subscriber.Dispose();
|
||||
}
|
||||
|
||||
foreach (var kv in ConvarChangeHandlers)
|
||||
{
|
||||
}
|
||||
|
||||
foreach (var subscriber in Listeners.Values)
|
||||
{
|
||||
subscriber.Dispose();
|
||||
|
||||
@@ -46,12 +46,21 @@ namespace CounterStrikeSharp.API.Core
|
||||
|
||||
[JsonPropertyName("FollowCS2ServerGuidelines")]
|
||||
public bool FollowCS2ServerGuidelines { get; set; } = true;
|
||||
|
||||
|
||||
[JsonPropertyName("PluginHotReloadEnabled")]
|
||||
public bool PluginHotReloadEnabled { get; set; } = true;
|
||||
|
||||
|
||||
[JsonPropertyName("PluginAutoLoadEnabled")]
|
||||
public bool PluginAutoLoadEnabled { get; set; } = true;
|
||||
|
||||
[JsonPropertyName("ServerLanguage")]
|
||||
public string ServerLanguage { get; set; } = "en";
|
||||
|
||||
[JsonPropertyName("UnlockConCommands")]
|
||||
public bool UnlockConCommands { get; set; } = true;
|
||||
|
||||
[JsonPropertyName("UnlockConVars")]
|
||||
public bool UnlockConVars { get; set; } = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -94,8 +103,18 @@ namespace CounterStrikeSharp.API.Core
|
||||
/// When enabled, plugins are automatically reloaded when their .dll file is updated.
|
||||
/// </summary>
|
||||
public static bool PluginHotReloadEnabled => _coreConfig.PluginHotReloadEnabled;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// When enabled, plugins are automatically loaded from the plugins directory on server start.
|
||||
/// </summary>
|
||||
public static bool PluginAutoLoadEnabled => _coreConfig.PluginAutoLoadEnabled;
|
||||
|
||||
public static string ServerLanguage => _coreConfig.ServerLanguage;
|
||||
|
||||
public static bool UnlockConCommands => _coreConfig.UnlockConCommands;
|
||||
|
||||
public static bool UnlockConVars => _coreConfig.UnlockConVars;
|
||||
|
||||
}
|
||||
|
||||
public partial class CoreConfig : IStartupService
|
||||
@@ -131,7 +150,7 @@ namespace CounterStrikeSharp.API.Core
|
||||
ReloadCoreConfigCommand));
|
||||
_commandsRegistered = true;
|
||||
}
|
||||
|
||||
|
||||
if (!File.Exists(_coreConfigPath))
|
||||
{
|
||||
_logger.LogWarning(
|
||||
@@ -172,13 +191,13 @@ namespace CounterStrikeSharp.API.Core
|
||||
serverCulture = CultureInfo.InvariantCulture;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
CultureInfo.DefaultThreadCurrentUICulture = serverCulture;
|
||||
CultureInfo.DefaultThreadCurrentCulture = serverCulture;
|
||||
CultureInfo.CurrentUICulture = serverCulture;
|
||||
CultureInfo.CurrentCulture = serverCulture;
|
||||
|
||||
|
||||
_logger.LogInformation("Successfully loaded core configuration");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,10 +14,9 @@
|
||||
* along with CounterStrikeSharp. If not, see <https://www.gnu.org/licenses/>. *
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace CounterStrikeSharp.API.Core
|
||||
@@ -29,140 +28,149 @@ namespace CounterStrikeSharp.API.Core
|
||||
{
|
||||
/// <summary>Delegate will be removed after the first invocation.</summary>
|
||||
SingleUse,
|
||||
/// <summary>Delegate will remain in memory for the lifetime of the application.</summary>
|
||||
|
||||
/// <summary>Delegate will remain in memory for the lifetime of the application (or until <see cref="FunctionReference.Remove"/> is called).</summary>
|
||||
Permanent
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Represents a reference to a function that can be called from native code.
|
||||
/// </summary>
|
||||
public class FunctionReference
|
||||
{
|
||||
private readonly Delegate m_method;
|
||||
|
||||
public FunctionLifetime Lifetime { get; set; } = FunctionLifetime.Permanent;
|
||||
|
||||
public unsafe delegate void CallbackDelegate(fxScriptContext* context);
|
||||
private CallbackDelegate s_callback;
|
||||
|
||||
private FunctionReference(Delegate method)
|
||||
private static readonly ConcurrentDictionary<int, FunctionReference> IdToFunctionReferencesMap = new();
|
||||
private static readonly ConcurrentDictionary<Delegate, FunctionReference> TargetMethodToFunctionReferencesMap = new();
|
||||
|
||||
private static readonly object ReferenceCounterLock = new();
|
||||
private static int _referenceCounter;
|
||||
|
||||
private readonly Delegate _targetMethod;
|
||||
private readonly CallbackDelegate _nativeCallback;
|
||||
|
||||
private readonly TaskCompletionSource _taskCompletionSource = new();
|
||||
|
||||
private FunctionReference(Delegate method, FunctionLifetime lifetime)
|
||||
{
|
||||
m_method = method;
|
||||
|
||||
unsafe
|
||||
{
|
||||
var dg = new CallbackDelegate((fxScriptContext* context) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
var scriptContext = new ScriptContext(context);
|
||||
|
||||
if (method.Method.GetParameters().FirstOrDefault()?.ParameterType == typeof(ScriptContext))
|
||||
{
|
||||
var returnO = m_method.DynamicInvoke(scriptContext);
|
||||
if (returnO != null)
|
||||
{
|
||||
scriptContext.SetResult(returnO, context);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var paramsList = method.Method.GetParameters().Select((x, i) =>
|
||||
{
|
||||
var param = method.Method.GetParameters()[i];
|
||||
object obj = null;
|
||||
if (typeof(NativeObject).IsAssignableFrom(param.ParameterType))
|
||||
{
|
||||
obj = Activator.CreateInstance(param.ParameterType,
|
||||
new[] { scriptContext.GetArgument(typeof(IntPtr), i) });
|
||||
}
|
||||
else
|
||||
{
|
||||
obj = scriptContext.GetArgument(param.ParameterType, i);
|
||||
}
|
||||
|
||||
return obj;
|
||||
}).ToArray();
|
||||
|
||||
var returnObj = m_method.DynamicInvoke(paramsList);
|
||||
|
||||
if (returnObj != null)
|
||||
{
|
||||
scriptContext.SetResult(returnObj, context);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Application.Instance.Logger.LogError(e, "Error invoking callback");
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (Lifetime == FunctionLifetime.SingleUse)
|
||||
{
|
||||
Remove(Identifier);
|
||||
if (references.ContainsKey(m_method))
|
||||
references.Remove(m_method);
|
||||
}
|
||||
}
|
||||
});
|
||||
s_callback = dg;
|
||||
}
|
||||
|
||||
Lifetime = lifetime;
|
||||
_targetMethod = method;
|
||||
_nativeCallback = CreateWrappedCallback();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <inheritdoc cref="FunctionLifetime"/>
|
||||
/// </summary>
|
||||
public FunctionLifetime Lifetime { get; }
|
||||
|
||||
/// <summary>
|
||||
/// For <see cref="FunctionLifetime.SingleUse"/> function references, this task will complete when
|
||||
/// the function has finished invoking.
|
||||
/// </summary>
|
||||
public Task CompletionTask => _taskCompletionSource.Task;
|
||||
|
||||
public int Identifier { get; private set; }
|
||||
|
||||
public static FunctionReference Create(Delegate method)
|
||||
private unsafe CallbackDelegate CreateWrappedCallback()
|
||||
{
|
||||
if (references.ContainsKey(method))
|
||||
return context =>
|
||||
{
|
||||
return references[method];
|
||||
try
|
||||
{
|
||||
var scriptContext = new ScriptContext(context);
|
||||
|
||||
// Allow for manual handling of the script context
|
||||
if (_targetMethod.Method.GetParameters().FirstOrDefault()?.ParameterType == typeof(ScriptContext))
|
||||
{
|
||||
var returnValue = _targetMethod.DynamicInvoke(scriptContext);
|
||||
if (returnValue != null)
|
||||
{
|
||||
scriptContext.SetResult(returnValue, context);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var parameterList = _targetMethod.Method.GetParameters().Select((_, i) =>
|
||||
{
|
||||
var parameter = _targetMethod.Method.GetParameters()[i];
|
||||
return scriptContext.GetArgument(parameter.ParameterType, i);
|
||||
}).ToArray();
|
||||
|
||||
var returnObj = _targetMethod.DynamicInvoke(parameterList);
|
||||
|
||||
if (returnObj != null)
|
||||
{
|
||||
scriptContext.SetResult(returnObj, context);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Application.Instance.Logger.LogError(e, "Error invoking callback");
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (Lifetime == FunctionLifetime.SingleUse)
|
||||
{
|
||||
RemoveSelf();
|
||||
}
|
||||
|
||||
_taskCompletionSource.TrySetResult();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static FunctionReference Create(Delegate method, FunctionLifetime lifetime = FunctionLifetime.Permanent)
|
||||
{
|
||||
// We always want to create a new reference if the lifetime is single use.
|
||||
if (lifetime == FunctionLifetime.Permanent && TargetMethodToFunctionReferencesMap.TryGetValue(method, out var existingReference))
|
||||
{
|
||||
return existingReference;
|
||||
}
|
||||
|
||||
var reference = new FunctionReference(method);
|
||||
var reference = new FunctionReference(method, lifetime);
|
||||
var referenceId = Register(reference);
|
||||
|
||||
reference.Identifier = referenceId;
|
||||
|
||||
|
||||
return reference;
|
||||
}
|
||||
|
||||
private static Dictionary<int, FunctionReference> ms_references = new Dictionary<int, FunctionReference>();
|
||||
private static int ms_referenceId;
|
||||
|
||||
private static Dictionary<Delegate, FunctionReference> references =
|
||||
new Dictionary<Delegate, FunctionReference>();
|
||||
|
||||
private static int Register(FunctionReference reference)
|
||||
{
|
||||
var thisRefId = ms_referenceId;
|
||||
ms_references[thisRefId] = reference;
|
||||
references[reference.m_method] = reference;
|
||||
|
||||
unchecked { ms_referenceId++; }
|
||||
|
||||
return thisRefId;
|
||||
}
|
||||
|
||||
public static FunctionReference Get(int reference)
|
||||
{
|
||||
if (ms_references.ContainsKey(reference))
|
||||
lock (ReferenceCounterLock)
|
||||
{
|
||||
return ms_references[reference];
|
||||
}
|
||||
var thisRefId = _referenceCounter;
|
||||
IdToFunctionReferencesMap[thisRefId] = reference;
|
||||
TargetMethodToFunctionReferencesMap[reference._targetMethod] = reference;
|
||||
|
||||
return null;
|
||||
unchecked
|
||||
{
|
||||
_referenceCounter++;
|
||||
}
|
||||
|
||||
return thisRefId;
|
||||
}
|
||||
}
|
||||
|
||||
public IntPtr GetFunctionPointer()
|
||||
|
||||
public IntPtr GetFunctionPointer() => Marshal.GetFunctionPointerForDelegate(_nativeCallback);
|
||||
|
||||
private void RemoveSelf()
|
||||
{
|
||||
IntPtr cb = Marshal.GetFunctionPointerForDelegate(s_callback);
|
||||
return cb;
|
||||
Remove(Identifier);
|
||||
}
|
||||
|
||||
public static void Remove(int reference)
|
||||
{
|
||||
if (ms_references.TryGetValue(reference, out var funcRef))
|
||||
if (IdToFunctionReferencesMap.TryGetValue(reference, out var functionReference))
|
||||
{
|
||||
ms_references.Remove(reference);
|
||||
if (TargetMethodToFunctionReferencesMap.ContainsKey(functionReference._targetMethod))
|
||||
{
|
||||
TargetMethodToFunctionReferencesMap.Remove(functionReference._targetMethod, out _);
|
||||
}
|
||||
|
||||
IdToFunctionReferencesMap.Remove(reference, out _);
|
||||
|
||||
Application.Instance.Logger.LogDebug("Removing function/callback reference: {Reference}", reference);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -28,17 +28,23 @@ namespace CounterStrikeSharp.API.Core
|
||||
public interface IPlugin : IDisposable
|
||||
{
|
||||
/// <summary>
|
||||
/// Name of the plugin.
|
||||
/// Name of the plugin as it will appear in the plugin list.
|
||||
/// </summary>
|
||||
string ModuleName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Module version.
|
||||
/// Module version as it will appear in the plugin list.
|
||||
/// </summary>
|
||||
string ModuleVersion { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Author of the plugin as it will appear in the plugin list.
|
||||
/// </summary>
|
||||
string ModuleAuthor { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Brief description of the plugin as it will appear in the plugin list.
|
||||
/// </summary>
|
||||
string ModuleDescription { get; }
|
||||
|
||||
/// <summary>
|
||||
@@ -61,12 +67,15 @@ namespace CounterStrikeSharp.API.Core
|
||||
/// <param name="hotReload"></param>
|
||||
void OnAllPluginsLoaded(bool hotReload);
|
||||
|
||||
/// <summary>
|
||||
/// The path to the plugin's DLL file.
|
||||
/// </summary>
|
||||
string ModulePath { get; internal set; }
|
||||
|
||||
ILogger Logger { get; set; }
|
||||
|
||||
|
||||
IStringLocalizer Localizer { get; set; }
|
||||
|
||||
|
||||
ICommandManager CommandManager { get; set; }
|
||||
|
||||
void RegisterAllAttributes(object instance);
|
||||
|
||||
@@ -8,12 +8,19 @@ namespace CounterStrikeSharp.API.Core;
|
||||
public partial class CBaseEntity
|
||||
{
|
||||
/// <exception cref="InvalidOperationException">Entity is not valid</exception>
|
||||
public void Teleport(Vector position, QAngle angles, Vector velocity)
|
||||
/// <exception cref="ArgumentNullException">No valid argument</exception>
|
||||
public void Teleport(Vector? position = null, QAngle? angles = null, Vector? velocity = null)
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
|
||||
VirtualFunction.CreateVoid<IntPtr, IntPtr, IntPtr, IntPtr>(Handle, GameData.GetOffset("CBaseEntity_Teleport"))(
|
||||
Handle, position.Handle, angles.Handle, velocity.Handle);
|
||||
|
||||
if (position == null && angles == null && velocity == null)
|
||||
throw new ArgumentNullException("No valid argument");
|
||||
|
||||
nint _position = position?.Handle ?? 0;
|
||||
nint _angles = angles?.Handle ?? 0;
|
||||
nint _velocity = velocity?.Handle ?? 0;
|
||||
|
||||
VirtualFunction.CreateVoid<IntPtr, IntPtr, IntPtr, IntPtr>(Handle, GameData.GetOffset("CBaseEntity_Teleport"))(Handle, _position, _angles, _velocity);
|
||||
}
|
||||
|
||||
/// <exception cref="InvalidOperationException">Entity is not valid</exception>
|
||||
@@ -39,6 +46,6 @@ public partial class CBaseEntity
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
|
||||
return (T) Activator.CreateInstance(typeof(T), Marshal.ReadIntPtr(SubclassID.Handle + 4));
|
||||
return (T)Activator.CreateInstance(typeof(T), Marshal.ReadIntPtr(SubclassID.Handle + 4));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,6 @@ public partial class CCSGameRules
|
||||
/// </summary>
|
||||
public void TerminateRound(float delay, RoundEndReason roundEndReason)
|
||||
{
|
||||
VirtualFunctions.TerminateRound(Handle, roundEndReason, delay);
|
||||
VirtualFunctions.TerminateRound(Handle, roundEndReason, delay, 0, 0);
|
||||
}
|
||||
}
|
||||
@@ -16,17 +16,17 @@ public partial class CCSPlayerController
|
||||
/// <exception cref="InvalidOperationException">Entity is not valid</exception>
|
||||
public IntPtr GiveNamedItem(string item)
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
|
||||
if (!PlayerPawn.IsValid) return 0;
|
||||
if (PlayerPawn.Value == null) return 0;
|
||||
if (!PlayerPawn.Value.IsValid) return 0;
|
||||
if (PlayerPawn.Value.ItemServices == null) return 0;
|
||||
|
||||
return VirtualFunctions.GiveNamedItem(PlayerPawn.Value.ItemServices.Handle, item, 0, 0, 0, 0);
|
||||
return GiveNamedItem<CEntityInstance>(item)?.Handle ?? IntPtr.Zero;
|
||||
}
|
||||
|
||||
public IntPtr GiveNamedItem(CsItem item)
|
||||
public T? GiveNamedItem<T>(string item) where T : CEntityInstance
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
|
||||
return PlayerPawn.Value?.ItemServices?.As<CCSPlayer_ItemServices>().GiveNamedItem<T>(item);
|
||||
}
|
||||
|
||||
public IntPtr GiveNamedItem(CsItem item)
|
||||
{
|
||||
string? itemString = EnumUtils.GetEnumMemberAttributeValue(item);
|
||||
if (string.IsNullOrWhiteSpace(itemString))
|
||||
@@ -61,6 +61,14 @@ public partial class CCSPlayerController
|
||||
VirtualFunctions.ClientPrint(Handle, HudDestination.Center, message, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
/// <exception cref="InvalidOperationException">Entity is not valid</exception>
|
||||
public void PrintToCenterAlert(string message)
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
|
||||
VirtualFunctions.ClientPrint(Handle, HudDestination.Alert, message, 0, 0, 0, 0);
|
||||
}
|
||||
|
||||
public void PrintToCenterHtml(string message) => PrintToCenterHtml(message, 5);
|
||||
|
||||
/// <exception cref="InvalidOperationException">Entity is not valid</exception>
|
||||
@@ -75,6 +83,7 @@ public partial class CCSPlayerController
|
||||
Userid = this
|
||||
};
|
||||
@event.FireEventToClient(this);
|
||||
@event.Free();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -84,17 +93,13 @@ public partial class CCSPlayerController
|
||||
public void DropActiveWeapon()
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
if (!PlayerPawn.IsValid) return;
|
||||
if (PlayerPawn.Value == null) return;
|
||||
if (!PlayerPawn.Value.IsValid) return;
|
||||
if (PlayerPawn.Value.ItemServices == null) return;
|
||||
if (PlayerPawn.Value.WeaponServices == null) return;
|
||||
if (!PlayerPawn.Value.WeaponServices.ActiveWeapon.IsValid) return;
|
||||
|
||||
CCSPlayer_ItemServices itemServices = new CCSPlayer_ItemServices(PlayerPawn.Value.ItemServices.Handle);
|
||||
CCSPlayer_WeaponServices weaponServices = new CCSPlayer_WeaponServices(PlayerPawn.Value.WeaponServices.Handle);
|
||||
|
||||
itemServices.DropActivePlayerWeapon(weaponServices.ActiveWeapon.Value);
|
||||
var itemServices = PlayerPawn.Value?.ItemServices?.As<CCSPlayer_ItemServices>();
|
||||
var activeWeapon = PlayerPawn.Value?.WeaponServices?.ActiveWeapon.Value;
|
||||
|
||||
if (activeWeapon == null || itemServices == null) return;
|
||||
|
||||
itemServices.DropActivePlayerWeapon(activeWeapon);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -104,13 +109,8 @@ public partial class CCSPlayerController
|
||||
public void RemoveWeapons()
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
if (!PlayerPawn.IsValid) return;
|
||||
if (PlayerPawn.Value == null) return;
|
||||
if (!PlayerPawn.Value.IsValid) return;
|
||||
if (PlayerPawn.Value.ItemServices == null) return;
|
||||
|
||||
CCSPlayer_ItemServices itemServices = new CCSPlayer_ItemServices(PlayerPawn.Value.ItemServices.Handle);
|
||||
itemServices.RemoveWeapons();
|
||||
PlayerPawn.Value?.ItemServices?.As<CCSPlayer_ItemServices>().RemoveWeapons();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -122,11 +122,8 @@ public partial class CCSPlayerController
|
||||
public void CommitSuicide(bool explode, bool force)
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
if (!PlayerPawn.IsValid) return;
|
||||
if (PlayerPawn.Value == null) return;
|
||||
if (!PlayerPawn.Value.IsValid) return;
|
||||
|
||||
PlayerPawn.Value.CommitSuicide(explode, force);
|
||||
PlayerPawn.Value?.CommitSuicide(explode, force);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -136,9 +133,7 @@ public partial class CCSPlayerController
|
||||
public void Respawn()
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
if (!PlayerPawn.IsValid) return;
|
||||
if (PlayerPawn.Value == null) return;
|
||||
if (!PlayerPawn.Value.IsValid) return;
|
||||
|
||||
// The Call To Arms update appears to have invalidated the need for CCSPlayerPawn_Respawn.
|
||||
SetPawn(PlayerPawn.Value);
|
||||
|
||||
@@ -45,4 +45,13 @@ public partial class CCSPlayer_ItemServices
|
||||
|
||||
VirtualFunction.CreateVoid<nint>(Handle, GameData.GetOffset("CCSPlayer_ItemServices_RemoveWeapons"))(Handle);
|
||||
}
|
||||
}
|
||||
|
||||
public T? GiveNamedItem<T>(string item) where T : CEntityInstance
|
||||
{
|
||||
var pointer = VirtualFunction.Create<nint, string, nint>(Handle, GameData.GetOffset("CCSPlayer_ItemServices_GiveNamedItem"))(Handle, item);
|
||||
if (pointer == IntPtr.Zero)
|
||||
return null;
|
||||
|
||||
return (T)Activator.CreateInstance(typeof(T), pointer)!;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ public partial class CEntityInstance : IEquatable<CEntityInstance>
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Calls a named input method on an entity.
|
||||
/// Calls a named input method on an entity, this will bypass the map IO event queue system.
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// entity.AcceptInput("Break");
|
||||
@@ -82,7 +82,30 @@ public partial class CEntityInstance : IEquatable<CEntityInstance>
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
|
||||
VirtualFunctions.AcceptInput(Handle, inputName, activator?.Handle ?? IntPtr.Zero, caller?.Handle ?? IntPtr.Zero, value, 0);
|
||||
NativeAPI.AcceptInput(Handle, inputName, activator?.Handle ?? IntPtr.Zero, caller?.Handle ?? IntPtr.Zero, value, outputId);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Calls a named input method on an entity, conforming to the map IO event queue system.
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// entity.AddEntityIOEvent("Break");
|
||||
/// </code>
|
||||
/// </example>
|
||||
/// </summary>
|
||||
/// <param name="inputName">Input action name</param>
|
||||
/// <param name="activator">Entity which initiated the action, <see langword="null"/> for no entity</param>
|
||||
/// <param name="caller">Entity that is sending the event, <see langword="null"/> for no entity</param>
|
||||
/// <param name="value">String variant value to send with the event</param>
|
||||
/// <param name="delay">Delay in seconds before calling the input</param>
|
||||
/// <param name="outputId">Unknown, defaults to 0</param>
|
||||
/// <exception cref="InvalidOperationException">Entity is not valid</exception>
|
||||
public void AddEntityIOEvent(string inputName, CEntityInstance? activator = null, CEntityInstance? caller = null, string value = "", float delay = 0, int outputId = 0)
|
||||
{
|
||||
Guard.IsValidEntity(this);
|
||||
|
||||
NativeAPI.AddEntityIoEvent(Handle, inputName, activator?.Handle ?? IntPtr.Zero, caller?.Handle ?? IntPtr.Zero, value, delay, outputId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,4 +113,4 @@ public partial class CEntityIdentity
|
||||
{
|
||||
public unsafe CEntityInstance EntityInstance => new(Unsafe.Read<IntPtr>((void*)Handle));
|
||||
public unsafe CHandle<CEntityInstance> EntityHandle => new(this.Handle + 0x10);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,11 @@ public partial class NetworkedVector<T> : NativeObject, IReadOnlyCollection<T>
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveAll()
|
||||
{
|
||||
NativeAPI.RemoveAllNetworkVectorElements(Handle);
|
||||
}
|
||||
|
||||
public IEnumerator<T> GetEnumerator()
|
||||
{
|
||||
for (int i = 0; i < Count; i++)
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.Loader;
|
||||
using CounterStrikeSharp.API.Core.Capabilities;
|
||||
using CounterStrikeSharp.API.Core.Commands;
|
||||
using CounterStrikeSharp.API.Core.Hosting;
|
||||
using McMaster.NETCore.Plugins;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
@@ -15,8 +18,11 @@ public class PluginManager : IPluginManager
|
||||
private readonly ICommandManager _commandManager;
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private readonly ILogger<PluginManager> _logger;
|
||||
private readonly Dictionary<string, Assembly> _sharedAssemblies = new();
|
||||
private bool _loadedSharedLibs = false;
|
||||
|
||||
public PluginManager(IScriptHostConfiguration scriptHostConfiguration, ICommandManager commandManager, ILogger<PluginManager> logger, IServiceProvider serviceProvider, IServiceScopeFactory serviceScopeFactory)
|
||||
public PluginManager(IScriptHostConfiguration scriptHostConfiguration, ICommandManager commandManager,
|
||||
ILogger<PluginManager> logger, IServiceProvider serviceProvider, IServiceScopeFactory serviceScopeFactory)
|
||||
{
|
||||
_scriptHostConfiguration = scriptHostConfiguration;
|
||||
_commandManager = commandManager;
|
||||
@@ -24,6 +30,36 @@ public class PluginManager : IPluginManager
|
||||
_serviceProvider = serviceProvider;
|
||||
}
|
||||
|
||||
private void LoadLibrary(string path)
|
||||
{
|
||||
var loader = PluginLoader.CreateFromAssemblyFile(path, new[] { typeof(IPlugin), typeof(PluginCapability<>), typeof(PlayerCapability<>) },
|
||||
config => { config.PreferSharedTypes = true; });
|
||||
var assembly = loader.LoadDefaultAssembly();
|
||||
|
||||
_sharedAssemblies[assembly.GetName().Name] = assembly;
|
||||
}
|
||||
|
||||
private void LoadSharedLibraries()
|
||||
{
|
||||
var sharedDirectory = Directory.GetDirectories(_scriptHostConfiguration.SharedPath);
|
||||
var sharedAssemblyPaths = sharedDirectory
|
||||
.Select(dir => Path.Combine(dir, Path.GetFileName(dir) + ".dll"))
|
||||
.Where(File.Exists)
|
||||
.ToArray();
|
||||
|
||||
foreach (var sharedAssemblyPath in sharedAssemblyPaths)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadLibrary(sharedAssemblyPath);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Failed to load shared assembly from {Path}", sharedAssemblyPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Load()
|
||||
{
|
||||
var pluginDirectories = Directory.GetDirectories(_scriptHostConfiguration.PluginPath);
|
||||
@@ -31,39 +67,48 @@ public class PluginManager : IPluginManager
|
||||
.Select(dir => Path.Combine(dir, Path.GetFileName(dir) + ".dll"))
|
||||
.Where(File.Exists)
|
||||
.ToArray();
|
||||
|
||||
var sharedDirectory = Directory.GetDirectories(_scriptHostConfiguration.SharedPath);
|
||||
var sharedAssemblyPaths = sharedDirectory
|
||||
.Select(dir => Path.Combine(dir, Path.GetFileName(dir) + ".dll"))
|
||||
.Where(File.Exists)
|
||||
.ToArray();
|
||||
|
||||
foreach (var sharedAssemblyPath in sharedAssemblyPaths)
|
||||
AssemblyLoadContext.Default.Resolving += (context, name) =>
|
||||
{
|
||||
try
|
||||
if (!_loadedSharedLibs)
|
||||
{
|
||||
AssemblyLoadContext.Default.LoadFromAssemblyPath(sharedAssemblyPath);
|
||||
} catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Failed to load shared assembly from {Path}", sharedAssemblyPath);
|
||||
LoadSharedLibraries();
|
||||
_loadedSharedLibs = true;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var path in pluginAssemblyPaths)
|
||||
{
|
||||
try
|
||||
if (!_sharedAssemblies.TryGetValue(name.Name, out var assembly))
|
||||
{
|
||||
LoadPlugin(path);
|
||||
return null;
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
return assembly;
|
||||
};
|
||||
|
||||
if (CoreConfig.PluginAutoLoadEnabled)
|
||||
{
|
||||
foreach (var path in pluginAssemblyPaths)
|
||||
{
|
||||
_logger.LogError(e, "Failed to load plugin from {Path}", path);
|
||||
try
|
||||
{
|
||||
LoadPlugin(path);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Failed to load plugin from {Path}", path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var plugin in _loadedPluginContexts)
|
||||
{
|
||||
plugin.Plugin.OnAllPluginsLoaded(false);
|
||||
try
|
||||
{
|
||||
plugin.Plugin?.OnAllPluginsLoaded(false);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "OnAllPluginsLoaded failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,8 +119,9 @@ public class PluginManager : IPluginManager
|
||||
|
||||
public void LoadPlugin(string path)
|
||||
{
|
||||
var plugin = new PluginContext(_serviceProvider, _commandManager, _scriptHostConfiguration, path, _loadedPluginContexts.Select(x => x.PluginId).DefaultIfEmpty(0).Max() + 1);
|
||||
var plugin = new PluginContext(_serviceProvider, _commandManager, _scriptHostConfiguration, path,
|
||||
_loadedPluginContexts.Select(x => x.PluginId).DefaultIfEmpty(0).Max() + 1);
|
||||
_loadedPluginContexts.Add(plugin);
|
||||
plugin.Load();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using CounterStrikeSharp.API.Core.Attributes;
|
||||
using CounterStrikeSharp.API.Core.Capabilities;
|
||||
using CounterStrikeSharp.API.Core.Commands;
|
||||
using CounterStrikeSharp.API.Core.Hosting;
|
||||
using CounterStrikeSharp.API.Core.Logging;
|
||||
@@ -76,7 +77,7 @@ namespace CounterStrikeSharp.API.Core.Plugin
|
||||
config.IsUnloadable = true;
|
||||
config.PreferSharedTypes = true;
|
||||
});
|
||||
|
||||
|
||||
if (CoreConfig.PluginHotReloadEnabled)
|
||||
{
|
||||
_fileWatcher = new FileSystemWatcher
|
||||
@@ -119,12 +120,12 @@ namespace CounterStrikeSharp.API.Core.Plugin
|
||||
public void Load(bool hotReload = false)
|
||||
{
|
||||
if (State == PluginState.Loaded) return;
|
||||
|
||||
|
||||
using (Loader.EnterContextualReflection())
|
||||
{
|
||||
var defaultAssembly = Loader.LoadDefaultAssembly();
|
||||
|
||||
Type pluginType = defaultAssembly.GetTypes()
|
||||
Type pluginType = defaultAssembly.GetExportedTypes()
|
||||
.FirstOrDefault(t => typeof(IPlugin).IsAssignableFrom(t));
|
||||
|
||||
if (pluginType == null) throw new Exception("Unable to find plugin in assembly");
|
||||
|
||||
@@ -20,11 +20,11 @@ public partial class CAISound : CPointEntity
|
||||
|
||||
// m_iSoundType
|
||||
[SchemaMember("CAISound", "m_iSoundType")]
|
||||
public ref Int32 SoundType => ref Schema.GetRef<Int32>(this.Handle, "CAISound", "m_iSoundType");
|
||||
public ref SoundTypes_t SoundType => ref Schema.GetRef<SoundTypes_t>(this.Handle, "CAISound", "m_iSoundType");
|
||||
|
||||
// m_iSoundContext
|
||||
[SchemaMember("CAISound", "m_iSoundContext")]
|
||||
public ref Int32 SoundContext => ref Schema.GetRef<Int32>(this.Handle, "CAISound", "m_iSoundContext");
|
||||
// m_iSoundFlags
|
||||
[SchemaMember("CAISound", "m_iSoundFlags")]
|
||||
public ref SoundFlags_t SoundFlags => ref Schema.GetRef<SoundFlags_t>(this.Handle, "CAISound", "m_iSoundFlags");
|
||||
|
||||
// m_iVolume
|
||||
[SchemaMember("CAISound", "m_iVolume")]
|
||||
|
||||
@@ -46,6 +46,10 @@ public partial class CAI_Expresser : NativeObject
|
||||
[SchemaMember("CAI_Expresser", "m_bConsiderSceneInvolvementAsSpeech")]
|
||||
public ref bool ConsiderSceneInvolvementAsSpeech => ref Schema.GetRef<bool>(this.Handle, "CAI_Expresser", "m_bConsiderSceneInvolvementAsSpeech");
|
||||
|
||||
// m_bSceneEntityDisabled
|
||||
[SchemaMember("CAI_Expresser", "m_bSceneEntityDisabled")]
|
||||
public ref bool SceneEntityDisabled => ref Schema.GetRef<bool>(this.Handle, "CAI_Expresser", "m_bSceneEntityDisabled");
|
||||
|
||||
// m_nLastSpokenPriority
|
||||
[SchemaMember("CAI_Expresser", "m_nLastSpokenPriority")]
|
||||
public ref Int32 LastSpokenPriority => ref Schema.GetRef<Int32>(this.Handle, "CAI_Expresser", "m_nLastSpokenPriority");
|
||||
|
||||
@@ -54,8 +54,8 @@ public partial class CBaseAnimGraph : CBaseModelEntity
|
||||
[SchemaMember("CBaseAnimGraph", "m_pRagdollPose")]
|
||||
public PhysicsRagdollPose_t? RagdollPose => Schema.GetPointer<PhysicsRagdollPose_t>(this.Handle, "CBaseAnimGraph", "m_pRagdollPose");
|
||||
|
||||
// m_bClientRagdoll
|
||||
[SchemaMember("CBaseAnimGraph", "m_bClientRagdoll")]
|
||||
public ref bool ClientRagdoll => ref Schema.GetRef<bool>(this.Handle, "CBaseAnimGraph", "m_bClientRagdoll");
|
||||
// m_bRagdollClientSide
|
||||
[SchemaMember("CBaseAnimGraph", "m_bRagdollClientSide")]
|
||||
public ref bool RagdollClientSide => ref Schema.GetRef<bool>(this.Handle, "CBaseAnimGraph", "m_bRagdollClientSide");
|
||||
|
||||
}
|
||||
|
||||
@@ -30,6 +30,10 @@ public partial class CBaseAnimGraphController : CSkeletonAnimationController
|
||||
[SchemaMember("CBaseAnimGraphController", "m_flSoundSyncTime")]
|
||||
public ref float SoundSyncTime => ref Schema.GetRef<float>(this.Handle, "CBaseAnimGraphController", "m_flSoundSyncTime");
|
||||
|
||||
// m_nActiveIKChainMask
|
||||
[SchemaMember("CBaseAnimGraphController", "m_nActiveIKChainMask")]
|
||||
public ref UInt32 ActiveIKChainMask => ref Schema.GetRef<UInt32>(this.Handle, "CBaseAnimGraphController", "m_nActiveIKChainMask");
|
||||
|
||||
// m_hSequence
|
||||
[SchemaMember("CBaseAnimGraphController", "m_hSequence")]
|
||||
public ref Int32 Sequence => ref Schema.GetRef<Int32>(this.Handle, "CBaseAnimGraphController", "m_hSequence");
|
||||
|
||||
@@ -58,6 +58,14 @@ public partial class CBaseButton : CBaseToggle
|
||||
set { Schema.SetString(this.Handle, "CBaseButton", "m_sUnlockedSound", value); }
|
||||
}
|
||||
|
||||
// m_sOverrideAnticipationName
|
||||
[SchemaMember("CBaseButton", "m_sOverrideAnticipationName")]
|
||||
public string OverrideAnticipationName
|
||||
{
|
||||
get { return Schema.GetUtf8String(this.Handle, "CBaseButton", "m_sOverrideAnticipationName"); }
|
||||
set { Schema.SetString(this.Handle, "CBaseButton", "m_sOverrideAnticipationName", value); }
|
||||
}
|
||||
|
||||
// m_bLocked
|
||||
[SchemaMember("CBaseButton", "m_bLocked")]
|
||||
public ref bool Locked => ref Schema.GetRef<bool>(this.Handle, "CBaseButton", "m_bLocked");
|
||||
|
||||
@@ -54,6 +54,10 @@ public partial class CBaseCSGrenade : CCSWeaponBase
|
||||
[SchemaMember("CBaseCSGrenade", "m_fDropTime")]
|
||||
public ref float DropTime => ref Schema.GetRef<float>(this.Handle, "CBaseCSGrenade", "m_fDropTime");
|
||||
|
||||
// m_fPinPullTime
|
||||
[SchemaMember("CBaseCSGrenade", "m_fPinPullTime")]
|
||||
public ref float PinPullTime => ref Schema.GetRef<float>(this.Handle, "CBaseCSGrenade", "m_fPinPullTime");
|
||||
|
||||
// m_bJustPulledPin
|
||||
[SchemaMember("CBaseCSGrenade", "m_bJustPulledPin")]
|
||||
public ref bool JustPulledPin => ref Schema.GetRef<bool>(this.Handle, "CBaseCSGrenade", "m_bJustPulledPin");
|
||||
|
||||
@@ -54,10 +54,6 @@ public partial class CBaseCSGrenadeProjectile : CBaseGrenade
|
||||
[SchemaMember("CBaseCSGrenadeProjectile", "m_bDetonationRecorded")]
|
||||
public ref bool DetonationRecorded => ref Schema.GetRef<bool>(this.Handle, "CBaseCSGrenadeProjectile", "m_bDetonationRecorded");
|
||||
|
||||
// m_flDetonateTime
|
||||
[SchemaMember("CBaseCSGrenadeProjectile", "m_flDetonateTime")]
|
||||
public ref float DetonateTime => ref Schema.GetRef<float>(this.Handle, "CBaseCSGrenadeProjectile", "m_flDetonateTime");
|
||||
|
||||
// m_nItemIndex
|
||||
[SchemaMember("CBaseCSGrenadeProjectile", "m_nItemIndex")]
|
||||
public ref UInt16 ItemIndex => ref Schema.GetRef<UInt16>(this.Handle, "CBaseCSGrenadeProjectile", "m_nItemIndex");
|
||||
|
||||
@@ -42,10 +42,6 @@ public partial class CBaseCombatCharacter : CBaseFlex
|
||||
[SchemaMember("CBaseCombatCharacter", "m_bApplyStressDamage")]
|
||||
public ref bool ApplyStressDamage => ref Schema.GetRef<bool>(this.Handle, "CBaseCombatCharacter", "m_bApplyStressDamage");
|
||||
|
||||
// m_bloodColor
|
||||
[SchemaMember("CBaseCombatCharacter", "m_bloodColor")]
|
||||
public ref Int32 BloodColor => ref Schema.GetRef<Int32>(this.Handle, "CBaseCombatCharacter", "m_bloodColor");
|
||||
|
||||
// m_iDamageCount
|
||||
[SchemaMember("CBaseCombatCharacter", "m_iDamageCount")]
|
||||
public ref Int32 DamageCount => ref Schema.GetRef<Int32>(this.Handle, "CBaseCombatCharacter", "m_iDamageCount");
|
||||
|
||||
@@ -38,9 +38,9 @@ public partial class CBaseEntity : CEntityInstance
|
||||
[SchemaMember("CBaseEntity", "m_nLastThinkTick")]
|
||||
public ref Int32 LastThinkTick => ref Schema.GetRef<Int32>(this.Handle, "CBaseEntity", "m_nLastThinkTick");
|
||||
|
||||
// m_nDisableContextThinkStartTick
|
||||
[SchemaMember("CBaseEntity", "m_nDisableContextThinkStartTick")]
|
||||
public ref Int32 DisableContextThinkStartTick => ref Schema.GetRef<Int32>(this.Handle, "CBaseEntity", "m_nDisableContextThinkStartTick");
|
||||
// m_bDisabledContextThinks
|
||||
[SchemaMember("CBaseEntity", "m_bDisabledContextThinks")]
|
||||
public ref bool DisabledContextThinks => ref Schema.GetRef<bool>(this.Handle, "CBaseEntity", "m_bDisabledContextThinks");
|
||||
|
||||
// m_isSteadyState
|
||||
[SchemaMember("CBaseEntity", "m_isSteadyState")]
|
||||
@@ -250,6 +250,10 @@ public partial class CBaseEntity : CEntityInstance
|
||||
[SchemaMember("CBaseEntity", "m_hGroundEntity")]
|
||||
public CHandle<CBaseEntity> GroundEntity => Schema.GetDeclaredClass<CHandle<CBaseEntity>>(this.Handle, "CBaseEntity", "m_hGroundEntity");
|
||||
|
||||
// m_nGroundBodyIndex
|
||||
[SchemaMember("CBaseEntity", "m_nGroundBodyIndex")]
|
||||
public ref Int32 GroundBodyIndex => ref Schema.GetRef<Int32>(this.Handle, "CBaseEntity", "m_nGroundBodyIndex");
|
||||
|
||||
// m_flFriction
|
||||
[SchemaMember("CBaseEntity", "m_flFriction")]
|
||||
public ref float Friction => ref Schema.GetRef<float>(this.Handle, "CBaseEntity", "m_flFriction");
|
||||
@@ -338,4 +342,8 @@ public partial class CBaseEntity : CEntityInstance
|
||||
[SchemaMember("CBaseEntity", "m_flVPhysicsUpdateLocalTime")]
|
||||
public ref float VPhysicsUpdateLocalTime => ref Schema.GetRef<float>(this.Handle, "CBaseEntity", "m_flVPhysicsUpdateLocalTime");
|
||||
|
||||
// m_nBloodType
|
||||
[SchemaMember("CBaseEntity", "m_nBloodType")]
|
||||
public ref BloodType BloodType => ref Schema.GetRef<BloodType>(this.Handle, "CBaseEntity", "m_nBloodType");
|
||||
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public partial class CBaseFlex : CBaseAnimGraph
|
||||
|
||||
// m_nNextSceneEventId
|
||||
[SchemaMember("CBaseFlex", "m_nNextSceneEventId")]
|
||||
public ref UInt32 NextSceneEventId => ref Schema.GetRef<UInt32>(this.Handle, "CBaseFlex", "m_nNextSceneEventId");
|
||||
public SceneEventId_t NextSceneEventId => Schema.GetDeclaredClass<SceneEventId_t>(this.Handle, "CBaseFlex", "m_nNextSceneEventId");
|
||||
|
||||
// m_bUpdateLayerPriorities
|
||||
[SchemaMember("CBaseFlex", "m_bUpdateLayerPriorities")]
|
||||
|
||||
@@ -31,7 +31,7 @@ public partial class CBaseIssue : NativeObject
|
||||
public string DetailsString
|
||||
{
|
||||
get { return Schema.GetString(this.Handle, "CBaseIssue", "m_szDetailsString"); }
|
||||
set { Schema.SetStringBytes(this.Handle, "CBaseIssue", "m_szDetailsString", value, 260); }
|
||||
set { Schema.SetStringBytes(this.Handle, "CBaseIssue", "m_szDetailsString", value, 4096); }
|
||||
}
|
||||
|
||||
// m_iNumYesVotes
|
||||
|
||||
@@ -30,6 +30,10 @@ public partial class CBasePlayerController : CBaseEntity
|
||||
[SchemaMember("CBasePlayerController", "m_hPawn")]
|
||||
public CHandle<CBasePlayerPawn> Pawn => Schema.GetDeclaredClass<CHandle<CBasePlayerPawn>>(this.Handle, "CBasePlayerController", "m_hPawn");
|
||||
|
||||
// m_bKnownTeamMismatch
|
||||
[SchemaMember("CBasePlayerController", "m_bKnownTeamMismatch")]
|
||||
public ref bool KnownTeamMismatch => ref Schema.GetRef<bool>(this.Handle, "CBasePlayerController", "m_bKnownTeamMismatch");
|
||||
|
||||
// m_nSplitScreenSlot
|
||||
[SchemaMember("CBasePlayerController", "m_nSplitScreenSlot")]
|
||||
public ref Int32 SplitScreenSlot => ref Schema.GetRef<Int32>(this.Handle, "CBasePlayerController", "m_nSplitScreenSlot");
|
||||
|
||||
@@ -54,6 +54,10 @@ public partial class CBaseTrigger : CBaseToggle
|
||||
[SchemaMember("CBaseTrigger", "m_OnTouching")]
|
||||
public CEntityIOOutput OnTouching => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CBaseTrigger", "m_OnTouching");
|
||||
|
||||
// m_OnTouchingEachEntity
|
||||
[SchemaMember("CBaseTrigger", "m_OnTouchingEachEntity")]
|
||||
public CEntityIOOutput OnTouchingEachEntity => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CBaseTrigger", "m_OnTouchingEachEntity");
|
||||
|
||||
// m_OnNotTouching
|
||||
[SchemaMember("CBaseTrigger", "m_OnNotTouching")]
|
||||
public CEntityIOOutput OnNotTouching => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CBaseTrigger", "m_OnNotTouching");
|
||||
|
||||
@@ -32,6 +32,6 @@ public partial class CBlood : CPointEntity
|
||||
|
||||
// m_Color
|
||||
[SchemaMember("CBlood", "m_Color")]
|
||||
public ref Int32 Color => ref Schema.GetRef<Int32>(this.Handle, "CBlood", "m_Color");
|
||||
public ref BloodType Color => ref Schema.GetRef<BloodType>(this.Handle, "CBlood", "m_Color");
|
||||
|
||||
}
|
||||
|
||||
@@ -22,8 +22,4 @@ public partial class CBodyComponentBaseAnimGraph : CBodyComponentSkeletonInstanc
|
||||
[SchemaMember("CBodyComponentBaseAnimGraph", "m_animationController")]
|
||||
public CBaseAnimGraphController AnimationController => Schema.GetDeclaredClass<CBaseAnimGraphController>(this.Handle, "CBodyComponentBaseAnimGraph", "m_animationController");
|
||||
|
||||
// __m_pChainEntity
|
||||
[SchemaMember("CBodyComponentBaseAnimGraph", "__m_pChainEntity")]
|
||||
public CNetworkVarChainer __m_pChainEntity => Schema.GetDeclaredClass<CNetworkVarChainer>(this.Handle, "CBodyComponentBaseAnimGraph", "__m_pChainEntity");
|
||||
|
||||
}
|
||||
|
||||
@@ -18,8 +18,4 @@ public partial class CBodyComponentBaseModelEntity : CBodyComponentSkeletonInsta
|
||||
{
|
||||
public CBodyComponentBaseModelEntity (IntPtr pointer) : base(pointer) {}
|
||||
|
||||
// __m_pChainEntity
|
||||
[SchemaMember("CBodyComponentBaseModelEntity", "__m_pChainEntity")]
|
||||
public CNetworkVarChainer __m_pChainEntity => Schema.GetDeclaredClass<CNetworkVarChainer>(this.Handle, "CBodyComponentBaseModelEntity", "__m_pChainEntity");
|
||||
|
||||
}
|
||||
|
||||
@@ -22,8 +22,4 @@ public partial class CBodyComponentPoint : CBodyComponent
|
||||
[SchemaMember("CBodyComponentPoint", "m_sceneNode")]
|
||||
public CGameSceneNode SceneNode => Schema.GetDeclaredClass<CGameSceneNode>(this.Handle, "CBodyComponentPoint", "m_sceneNode");
|
||||
|
||||
// __m_pChainEntity
|
||||
[SchemaMember("CBodyComponentPoint", "__m_pChainEntity")]
|
||||
public CNetworkVarChainer __m_pChainEntity => Schema.GetDeclaredClass<CNetworkVarChainer>(this.Handle, "CBodyComponentPoint", "__m_pChainEntity");
|
||||
|
||||
}
|
||||
|
||||
@@ -22,8 +22,4 @@ public partial class CBodyComponentSkeletonInstance : CBodyComponent
|
||||
[SchemaMember("CBodyComponentSkeletonInstance", "m_skeletonInstance")]
|
||||
public CSkeletonInstance SkeletonInstance => Schema.GetDeclaredClass<CSkeletonInstance>(this.Handle, "CBodyComponentSkeletonInstance", "m_skeletonInstance");
|
||||
|
||||
// __m_pChainEntity
|
||||
[SchemaMember("CBodyComponentSkeletonInstance", "__m_pChainEntity")]
|
||||
public CNetworkVarChainer __m_pChainEntity => Schema.GetDeclaredClass<CNetworkVarChainer>(this.Handle, "CBodyComponentSkeletonInstance", "__m_pChainEntity");
|
||||
|
||||
}
|
||||
|
||||
@@ -18,6 +18,10 @@ public partial class CBreakable : CBaseModelEntity
|
||||
{
|
||||
public CBreakable (IntPtr pointer) : base(pointer) {}
|
||||
|
||||
// m_CPropDataComponent
|
||||
[SchemaMember("CBreakable", "m_CPropDataComponent")]
|
||||
public CPropDataComponent CPropDataComponent => Schema.GetDeclaredClass<CPropDataComponent>(this.Handle, "CBreakable", "m_CPropDataComponent");
|
||||
|
||||
// m_Material
|
||||
[SchemaMember("CBreakable", "m_Material")]
|
||||
public ref Materials Material => ref Schema.GetRef<Materials>(this.Handle, "CBreakable", "m_Material");
|
||||
@@ -66,42 +70,6 @@ public partial class CBreakable : CBaseModelEntity
|
||||
[SchemaMember("CBreakable", "m_OnBreak")]
|
||||
public CEntityIOOutput OnBreak => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CBreakable", "m_OnBreak");
|
||||
|
||||
// m_flDmgModBullet
|
||||
[SchemaMember("CBreakable", "m_flDmgModBullet")]
|
||||
public ref float DmgModBullet => ref Schema.GetRef<float>(this.Handle, "CBreakable", "m_flDmgModBullet");
|
||||
|
||||
// m_flDmgModClub
|
||||
[SchemaMember("CBreakable", "m_flDmgModClub")]
|
||||
public ref float DmgModClub => ref Schema.GetRef<float>(this.Handle, "CBreakable", "m_flDmgModClub");
|
||||
|
||||
// m_flDmgModExplosive
|
||||
[SchemaMember("CBreakable", "m_flDmgModExplosive")]
|
||||
public ref float DmgModExplosive => ref Schema.GetRef<float>(this.Handle, "CBreakable", "m_flDmgModExplosive");
|
||||
|
||||
// m_flDmgModFire
|
||||
[SchemaMember("CBreakable", "m_flDmgModFire")]
|
||||
public ref float DmgModFire => ref Schema.GetRef<float>(this.Handle, "CBreakable", "m_flDmgModFire");
|
||||
|
||||
// m_iszPhysicsDamageTableName
|
||||
[SchemaMember("CBreakable", "m_iszPhysicsDamageTableName")]
|
||||
public string PhysicsDamageTableName
|
||||
{
|
||||
get { return Schema.GetUtf8String(this.Handle, "CBreakable", "m_iszPhysicsDamageTableName"); }
|
||||
set { Schema.SetString(this.Handle, "CBreakable", "m_iszPhysicsDamageTableName", value); }
|
||||
}
|
||||
|
||||
// m_iszBasePropData
|
||||
[SchemaMember("CBreakable", "m_iszBasePropData")]
|
||||
public string BasePropData
|
||||
{
|
||||
get { return Schema.GetUtf8String(this.Handle, "CBreakable", "m_iszBasePropData"); }
|
||||
set { Schema.SetString(this.Handle, "CBreakable", "m_iszBasePropData", value); }
|
||||
}
|
||||
|
||||
// m_iInteractions
|
||||
[SchemaMember("CBreakable", "m_iInteractions")]
|
||||
public ref Int32 Interactions => ref Schema.GetRef<Int32>(this.Handle, "CBreakable", "m_iInteractions");
|
||||
|
||||
// m_PerformanceMode
|
||||
[SchemaMember("CBreakable", "m_PerformanceMode")]
|
||||
public ref PerformanceMode_t PerformanceMode => ref Schema.GetRef<PerformanceMode_t>(this.Handle, "CBreakable", "m_PerformanceMode");
|
||||
|
||||
@@ -18,6 +18,10 @@ public partial class CBreakableProp : CBaseProp
|
||||
{
|
||||
public CBreakableProp (IntPtr pointer) : base(pointer) {}
|
||||
|
||||
// m_CPropDataComponent
|
||||
[SchemaMember("CBreakableProp", "m_CPropDataComponent")]
|
||||
public CPropDataComponent CPropDataComponent => Schema.GetDeclaredClass<CPropDataComponent>(this.Handle, "CBreakableProp", "m_CPropDataComponent");
|
||||
|
||||
// m_OnBreak
|
||||
[SchemaMember("CBreakableProp", "m_OnBreak")]
|
||||
public CEntityIOOutput OnBreak => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CBreakableProp", "m_OnBreak");
|
||||
@@ -42,6 +46,14 @@ public partial class CBreakableProp : CBaseProp
|
||||
[SchemaMember("CBreakableProp", "m_flPressureDelay")]
|
||||
public ref float PressureDelay => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flPressureDelay");
|
||||
|
||||
// m_flDefBurstScale
|
||||
[SchemaMember("CBreakableProp", "m_flDefBurstScale")]
|
||||
public ref float DefBurstScale => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flDefBurstScale");
|
||||
|
||||
// m_vDefBurstOffset
|
||||
[SchemaMember("CBreakableProp", "m_vDefBurstOffset")]
|
||||
public Vector DefBurstOffset => Schema.GetDeclaredClass<Vector>(this.Handle, "CBreakableProp", "m_vDefBurstOffset");
|
||||
|
||||
// m_hBreaker
|
||||
[SchemaMember("CBreakableProp", "m_hBreaker")]
|
||||
public CHandle<CBaseEntity> Breaker => Schema.GetDeclaredClass<CHandle<CBaseEntity>>(this.Handle, "CBreakableProp", "m_hBreaker");
|
||||
@@ -50,42 +62,6 @@ public partial class CBreakableProp : CBaseProp
|
||||
[SchemaMember("CBreakableProp", "m_PerformanceMode")]
|
||||
public ref PerformanceMode_t PerformanceMode => ref Schema.GetRef<PerformanceMode_t>(this.Handle, "CBreakableProp", "m_PerformanceMode");
|
||||
|
||||
// m_flDmgModBullet
|
||||
[SchemaMember("CBreakableProp", "m_flDmgModBullet")]
|
||||
public ref float DmgModBullet => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flDmgModBullet");
|
||||
|
||||
// m_flDmgModClub
|
||||
[SchemaMember("CBreakableProp", "m_flDmgModClub")]
|
||||
public ref float DmgModClub => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flDmgModClub");
|
||||
|
||||
// m_flDmgModExplosive
|
||||
[SchemaMember("CBreakableProp", "m_flDmgModExplosive")]
|
||||
public ref float DmgModExplosive => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flDmgModExplosive");
|
||||
|
||||
// m_flDmgModFire
|
||||
[SchemaMember("CBreakableProp", "m_flDmgModFire")]
|
||||
public ref float DmgModFire => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flDmgModFire");
|
||||
|
||||
// m_iszPhysicsDamageTableName
|
||||
[SchemaMember("CBreakableProp", "m_iszPhysicsDamageTableName")]
|
||||
public string PhysicsDamageTableName
|
||||
{
|
||||
get { return Schema.GetUtf8String(this.Handle, "CBreakableProp", "m_iszPhysicsDamageTableName"); }
|
||||
set { Schema.SetString(this.Handle, "CBreakableProp", "m_iszPhysicsDamageTableName", value); }
|
||||
}
|
||||
|
||||
// m_iszBasePropData
|
||||
[SchemaMember("CBreakableProp", "m_iszBasePropData")]
|
||||
public string BasePropData
|
||||
{
|
||||
get { return Schema.GetUtf8String(this.Handle, "CBreakableProp", "m_iszBasePropData"); }
|
||||
set { Schema.SetString(this.Handle, "CBreakableProp", "m_iszBasePropData", value); }
|
||||
}
|
||||
|
||||
// m_iInteractions
|
||||
[SchemaMember("CBreakableProp", "m_iInteractions")]
|
||||
public ref Int32 Interactions => ref Schema.GetRef<Int32>(this.Handle, "CBreakableProp", "m_iInteractions");
|
||||
|
||||
// m_flPreventDamageBeforeTime
|
||||
[SchemaMember("CBreakableProp", "m_flPreventDamageBeforeTime")]
|
||||
public ref float PreventDamageBeforeTime => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flPreventDamageBeforeTime");
|
||||
|
||||
@@ -62,8 +62,4 @@ public partial class CC4 : CCSWeaponBase
|
||||
[SchemaMember("CC4", "m_bBombPlanted")]
|
||||
public ref bool BombPlanted => ref Schema.GetRef<bool>(this.Handle, "CC4", "m_bBombPlanted");
|
||||
|
||||
// m_bDroppedFromDeath
|
||||
[SchemaMember("CC4", "m_bDroppedFromDeath")]
|
||||
public ref bool DroppedFromDeath => ref Schema.GetRef<bool>(this.Handle, "CC4", "m_bDroppedFromDeath");
|
||||
|
||||
}
|
||||
|
||||
@@ -18,10 +18,6 @@ public partial class CCSBot : CBot
|
||||
{
|
||||
public CCSBot (IntPtr pointer) : base(pointer) {}
|
||||
|
||||
// m_lastCoopSpawnPoint
|
||||
[SchemaMember("CCSBot", "m_lastCoopSpawnPoint")]
|
||||
public CHandle<SpawnPointCoopEnemy> LastCoopSpawnPoint => Schema.GetDeclaredClass<CHandle<SpawnPointCoopEnemy>>(this.Handle, "CCSBot", "m_lastCoopSpawnPoint");
|
||||
|
||||
// m_eyePosition
|
||||
[SchemaMember("CCSBot", "m_eyePosition")]
|
||||
public Vector EyePosition => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSBot", "m_eyePosition");
|
||||
|
||||
@@ -26,8 +26,12 @@ public partial class CCSGameModeRules_Deathmatch : CCSGameModeRules
|
||||
[SchemaMember("CCSGameModeRules_Deathmatch", "m_flDMBonusTimeLength")]
|
||||
public ref float DMBonusTimeLength => ref Schema.GetRef<float>(this.Handle, "CCSGameModeRules_Deathmatch", "m_flDMBonusTimeLength");
|
||||
|
||||
// m_nDMBonusWeaponLoadoutSlot
|
||||
[SchemaMember("CCSGameModeRules_Deathmatch", "m_nDMBonusWeaponLoadoutSlot")]
|
||||
public ref Int16 DMBonusWeaponLoadoutSlot => ref Schema.GetRef<Int16>(this.Handle, "CCSGameModeRules_Deathmatch", "m_nDMBonusWeaponLoadoutSlot");
|
||||
// m_sDMBonusWeapon
|
||||
[SchemaMember("CCSGameModeRules_Deathmatch", "m_sDMBonusWeapon")]
|
||||
public string DMBonusWeapon
|
||||
{
|
||||
get { return Schema.GetUtf8String(this.Handle, "CCSGameModeRules_Deathmatch", "m_sDMBonusWeapon"); }
|
||||
set { Schema.SetString(this.Handle, "CCSGameModeRules_Deathmatch", "m_sDMBonusWeapon", value); }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,14 +18,6 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
{
|
||||
public CCSGameRules (IntPtr pointer) : base(pointer) {}
|
||||
|
||||
// __m_pChainEntity
|
||||
[SchemaMember("CCSGameRules", "__m_pChainEntity")]
|
||||
public CNetworkVarChainer __m_pChainEntity => Schema.GetDeclaredClass<CNetworkVarChainer>(this.Handle, "CCSGameRules", "__m_pChainEntity");
|
||||
|
||||
// m_coopMissionManager
|
||||
[SchemaMember("CCSGameRules", "m_coopMissionManager")]
|
||||
public CHandle<CBaseEntity> CoopMissionManager => Schema.GetDeclaredClass<CHandle<CBaseEntity>>(this.Handle, "CCSGameRules", "m_coopMissionManager");
|
||||
|
||||
// m_bFreezePeriod
|
||||
[SchemaMember("CCSGameRules", "m_bFreezePeriod")]
|
||||
public ref bool FreezePeriod => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bFreezePeriod");
|
||||
@@ -42,22 +34,10 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_fWarmupPeriodStart")]
|
||||
public ref float WarmupPeriodStart => ref Schema.GetRef<float>(this.Handle, "CCSGameRules", "m_fWarmupPeriodStart");
|
||||
|
||||
// m_nTotalPausedTicks
|
||||
[SchemaMember("CCSGameRules", "m_nTotalPausedTicks")]
|
||||
public ref Int32 TotalPausedTicks => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_nTotalPausedTicks");
|
||||
|
||||
// m_nPauseStartTick
|
||||
[SchemaMember("CCSGameRules", "m_nPauseStartTick")]
|
||||
public ref Int32 PauseStartTick => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_nPauseStartTick");
|
||||
|
||||
// m_bServerPaused
|
||||
[SchemaMember("CCSGameRules", "m_bServerPaused")]
|
||||
public ref bool ServerPaused => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bServerPaused");
|
||||
|
||||
// m_bGamePaused
|
||||
[SchemaMember("CCSGameRules", "m_bGamePaused")]
|
||||
public ref bool GamePaused => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bGamePaused");
|
||||
|
||||
// m_bTerroristTimeOutActive
|
||||
[SchemaMember("CCSGameRules", "m_bTerroristTimeOutActive")]
|
||||
public ref bool TerroristTimeOutActive => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bTerroristTimeOutActive");
|
||||
@@ -246,46 +226,6 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_bIsHltvActive")]
|
||||
public ref bool IsHltvActive => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bIsHltvActive");
|
||||
|
||||
// m_nGuardianModeWaveNumber
|
||||
[SchemaMember("CCSGameRules", "m_nGuardianModeWaveNumber")]
|
||||
public ref Int32 GuardianModeWaveNumber => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_nGuardianModeWaveNumber");
|
||||
|
||||
// m_nGuardianModeSpecialKillsRemaining
|
||||
[SchemaMember("CCSGameRules", "m_nGuardianModeSpecialKillsRemaining")]
|
||||
public ref Int32 GuardianModeSpecialKillsRemaining => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_nGuardianModeSpecialKillsRemaining");
|
||||
|
||||
// m_nGuardianModeSpecialWeaponNeeded
|
||||
[SchemaMember("CCSGameRules", "m_nGuardianModeSpecialWeaponNeeded")]
|
||||
public ref Int32 GuardianModeSpecialWeaponNeeded => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_nGuardianModeSpecialWeaponNeeded");
|
||||
|
||||
// m_nGuardianGrenadesToGiveBots
|
||||
[SchemaMember("CCSGameRules", "m_nGuardianGrenadesToGiveBots")]
|
||||
public ref Int32 GuardianGrenadesToGiveBots => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_nGuardianGrenadesToGiveBots");
|
||||
|
||||
// m_nNumHeaviesToSpawn
|
||||
[SchemaMember("CCSGameRules", "m_nNumHeaviesToSpawn")]
|
||||
public ref Int32 NumHeaviesToSpawn => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_nNumHeaviesToSpawn");
|
||||
|
||||
// m_numGlobalGiftsGiven
|
||||
[SchemaMember("CCSGameRules", "m_numGlobalGiftsGiven")]
|
||||
public ref UInt32 NumGlobalGiftsGiven => ref Schema.GetRef<UInt32>(this.Handle, "CCSGameRules", "m_numGlobalGiftsGiven");
|
||||
|
||||
// m_numGlobalGifters
|
||||
[SchemaMember("CCSGameRules", "m_numGlobalGifters")]
|
||||
public ref UInt32 NumGlobalGifters => ref Schema.GetRef<UInt32>(this.Handle, "CCSGameRules", "m_numGlobalGifters");
|
||||
|
||||
// m_numGlobalGiftsPeriodSeconds
|
||||
[SchemaMember("CCSGameRules", "m_numGlobalGiftsPeriodSeconds")]
|
||||
public ref UInt32 NumGlobalGiftsPeriodSeconds => ref Schema.GetRef<UInt32>(this.Handle, "CCSGameRules", "m_numGlobalGiftsPeriodSeconds");
|
||||
|
||||
// m_arrFeaturedGiftersAccounts
|
||||
[SchemaMember("CCSGameRules", "m_arrFeaturedGiftersAccounts")]
|
||||
public Span<UInt32> FeaturedGiftersAccounts => Schema.GetFixedArray<UInt32>(this.Handle, "CCSGameRules", "m_arrFeaturedGiftersAccounts", 4);
|
||||
|
||||
// m_arrFeaturedGiftersGifts
|
||||
[SchemaMember("CCSGameRules", "m_arrFeaturedGiftersGifts")]
|
||||
public Span<UInt32> FeaturedGiftersGifts => Schema.GetFixedArray<UInt32>(this.Handle, "CCSGameRules", "m_arrFeaturedGiftersGifts", 4);
|
||||
|
||||
// m_arrProhibitedItemIndices
|
||||
[SchemaMember("CCSGameRules", "m_arrProhibitedItemIndices")]
|
||||
public Span<UInt16> ProhibitedItemIndices => Schema.GetFixedArray<UInt16>(this.Handle, "CCSGameRules", "m_arrProhibitedItemIndices", 100);
|
||||
@@ -326,10 +266,6 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_bCTCantBuy")]
|
||||
public ref bool CTCantBuy => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bCTCantBuy");
|
||||
|
||||
// m_flGuardianBuyUntilTime
|
||||
[SchemaMember("CCSGameRules", "m_flGuardianBuyUntilTime")]
|
||||
public ref float GuardianBuyUntilTime => ref Schema.GetRef<float>(this.Handle, "CCSGameRules", "m_flGuardianBuyUntilTime");
|
||||
|
||||
// m_iMatchStats_RoundResults
|
||||
[SchemaMember("CCSGameRules", "m_iMatchStats_RoundResults")]
|
||||
public Span<Int32> MatchStats_RoundResults => Schema.GetFixedArray<Int32>(this.Handle, "CCSGameRules", "m_iMatchStats_RoundResults", 30);
|
||||
@@ -366,10 +302,6 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_MinimapVerticalSectionHeights")]
|
||||
public Span<float> MinimapVerticalSectionHeights => Schema.GetFixedArray<float>(this.Handle, "CCSGameRules", "m_MinimapVerticalSectionHeights", 8);
|
||||
|
||||
// m_bDontIncrementCoopWave
|
||||
[SchemaMember("CCSGameRules", "m_bDontIncrementCoopWave")]
|
||||
public ref bool DontIncrementCoopWave => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bDontIncrementCoopWave");
|
||||
|
||||
// m_bSpawnedTerrorHuntHeavy
|
||||
[SchemaMember("CCSGameRules", "m_bSpawnedTerrorHuntHeavy")]
|
||||
public ref bool SpawnedTerrorHuntHeavy => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bSpawnedTerrorHuntHeavy");
|
||||
@@ -450,6 +382,10 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_arrSelectedHostageSpawnIndices")]
|
||||
public NetworkedVector<Int32> SelectedHostageSpawnIndices => Schema.GetDeclaredClass<NetworkedVector<Int32>>(this.Handle, "CCSGameRules", "m_arrSelectedHostageSpawnIndices");
|
||||
|
||||
// m_nSpawnPointsRandomSeed
|
||||
[SchemaMember("CCSGameRules", "m_nSpawnPointsRandomSeed")]
|
||||
public ref Int32 SpawnPointsRandomSeed => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_nSpawnPointsRandomSeed");
|
||||
|
||||
// m_bFirstConnected
|
||||
[SchemaMember("CCSGameRules", "m_bFirstConnected")]
|
||||
public ref bool FirstConnected => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bFirstConnected");
|
||||
@@ -482,6 +418,10 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_numQueuedMatchmakingAccounts")]
|
||||
public ref UInt32 NumQueuedMatchmakingAccounts => ref Schema.GetRef<UInt32>(this.Handle, "CCSGameRules", "m_numQueuedMatchmakingAccounts");
|
||||
|
||||
// m_fAvgPlayerRank
|
||||
[SchemaMember("CCSGameRules", "m_fAvgPlayerRank")]
|
||||
public ref float AvgPlayerRank => ref Schema.GetRef<float>(this.Handle, "CCSGameRules", "m_fAvgPlayerRank");
|
||||
|
||||
// m_pQueuedMatchmakingReservationString
|
||||
[SchemaMember("CCSGameRules", "m_pQueuedMatchmakingReservationString")]
|
||||
public string QueuedMatchmakingReservationString
|
||||
@@ -522,26 +462,6 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_flMatchInfoDecidedTime")]
|
||||
public ref float MatchInfoDecidedTime => ref Schema.GetRef<float>(this.Handle, "CCSGameRules", "m_flMatchInfoDecidedTime");
|
||||
|
||||
// m_flCoopRespawnAndHealTime
|
||||
[SchemaMember("CCSGameRules", "m_flCoopRespawnAndHealTime")]
|
||||
public ref float CoopRespawnAndHealTime => ref Schema.GetRef<float>(this.Handle, "CCSGameRules", "m_flCoopRespawnAndHealTime");
|
||||
|
||||
// m_coopBonusCoinsFound
|
||||
[SchemaMember("CCSGameRules", "m_coopBonusCoinsFound")]
|
||||
public ref Int32 CoopBonusCoinsFound => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_coopBonusCoinsFound");
|
||||
|
||||
// m_coopBonusPistolsOnly
|
||||
[SchemaMember("CCSGameRules", "m_coopBonusPistolsOnly")]
|
||||
public ref bool CoopBonusPistolsOnly => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_coopBonusPistolsOnly");
|
||||
|
||||
// m_coopPlayersInDeploymentZone
|
||||
[SchemaMember("CCSGameRules", "m_coopPlayersInDeploymentZone")]
|
||||
public ref bool CoopPlayersInDeploymentZone => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_coopPlayersInDeploymentZone");
|
||||
|
||||
// m_coopMissionDeadPlayerRespawnEnabled
|
||||
[SchemaMember("CCSGameRules", "m_coopMissionDeadPlayerRespawnEnabled")]
|
||||
public ref bool CoopMissionDeadPlayerRespawnEnabled => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_coopMissionDeadPlayerRespawnEnabled");
|
||||
|
||||
// mTeamDMLastWinningTeamNumber
|
||||
[SchemaMember("CCSGameRules", "mTeamDMLastWinningTeamNumber")]
|
||||
public ref Int32 MTeamDMLastWinningTeamNumber => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "mTeamDMLastWinningTeamNumber");
|
||||
@@ -578,10 +498,6 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_iMaxNumCTs")]
|
||||
public ref Int32 MaxNumCTs => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_iMaxNumCTs");
|
||||
|
||||
// m_iLoserBonus
|
||||
[SchemaMember("CCSGameRules", "m_iLoserBonus")]
|
||||
public ref Int32 LoserBonus => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_iLoserBonus");
|
||||
|
||||
// m_iLoserBonusMostRecentTeam
|
||||
[SchemaMember("CCSGameRules", "m_iLoserBonusMostRecentTeam")]
|
||||
public ref Int32 LoserBonusMostRecentTeam => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_iLoserBonusMostRecentTeam");
|
||||
@@ -686,14 +602,26 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_TerroristSpawnPointsMasterList")]
|
||||
public NetworkedVector<SpawnPoint?> TerroristSpawnPointsMasterList => Schema.GetDeclaredClass<NetworkedVector<SpawnPoint?>>(this.Handle, "CCSGameRules", "m_TerroristSpawnPointsMasterList");
|
||||
|
||||
// m_bRespawningAllRespawnablePlayers
|
||||
[SchemaMember("CCSGameRules", "m_bRespawningAllRespawnablePlayers")]
|
||||
public ref bool RespawningAllRespawnablePlayers => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bRespawningAllRespawnablePlayers");
|
||||
|
||||
// m_iNextCTSpawnPoint
|
||||
[SchemaMember("CCSGameRules", "m_iNextCTSpawnPoint")]
|
||||
public ref Int32 NextCTSpawnPoint => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_iNextCTSpawnPoint");
|
||||
|
||||
// m_flCTSpawnPointUsedTime
|
||||
[SchemaMember("CCSGameRules", "m_flCTSpawnPointUsedTime")]
|
||||
public ref float CTSpawnPointUsedTime => ref Schema.GetRef<float>(this.Handle, "CCSGameRules", "m_flCTSpawnPointUsedTime");
|
||||
|
||||
// m_iNextTerroristSpawnPoint
|
||||
[SchemaMember("CCSGameRules", "m_iNextTerroristSpawnPoint")]
|
||||
public ref Int32 NextTerroristSpawnPoint => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_iNextTerroristSpawnPoint");
|
||||
|
||||
// m_flTerroristSpawnPointUsedTime
|
||||
[SchemaMember("CCSGameRules", "m_flTerroristSpawnPointUsedTime")]
|
||||
public ref float TerroristSpawnPointUsedTime => ref Schema.GetRef<float>(this.Handle, "CCSGameRules", "m_flTerroristSpawnPointUsedTime");
|
||||
|
||||
// m_CTSpawnPoints
|
||||
[SchemaMember("CCSGameRules", "m_CTSpawnPoints")]
|
||||
public NetworkedVector<SpawnPoint?> CTSpawnPoints => Schema.GetDeclaredClass<NetworkedVector<SpawnPoint?>>(this.Handle, "CCSGameRules", "m_CTSpawnPoints");
|
||||
@@ -746,10 +674,6 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_bHasTriggeredRoundStartMusic")]
|
||||
public ref bool HasTriggeredRoundStartMusic => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bHasTriggeredRoundStartMusic");
|
||||
|
||||
// m_bHasTriggeredCoopSpawnReset
|
||||
[SchemaMember("CCSGameRules", "m_bHasTriggeredCoopSpawnReset")]
|
||||
public ref bool HasTriggeredCoopSpawnReset => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bHasTriggeredCoopSpawnReset");
|
||||
|
||||
// m_bSwitchingTeamsAtRoundReset
|
||||
[SchemaMember("CCSGameRules", "m_bSwitchingTeamsAtRoundReset")]
|
||||
public ref bool SwitchingTeamsAtRoundReset => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bSwitchingTeamsAtRoundReset");
|
||||
@@ -766,14 +690,6 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_RetakeRules")]
|
||||
public CRetakeGameRules RetakeRules => Schema.GetDeclaredClass<CRetakeGameRules>(this.Handle, "CCSGameRules", "m_RetakeRules");
|
||||
|
||||
// m_GuardianBotSkillLevelMax
|
||||
[SchemaMember("CCSGameRules", "m_GuardianBotSkillLevelMax")]
|
||||
public ref Int32 GuardianBotSkillLevelMax => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_GuardianBotSkillLevelMax");
|
||||
|
||||
// m_GuardianBotSkillLevelMin
|
||||
[SchemaMember("CCSGameRules", "m_GuardianBotSkillLevelMin")]
|
||||
public ref Int32 GuardianBotSkillLevelMin => ref Schema.GetRef<Int32>(this.Handle, "CCSGameRules", "m_GuardianBotSkillLevelMin");
|
||||
|
||||
// m_arrTeamUniqueKillWeaponsMatch
|
||||
[SchemaMember("CCSGameRules", "m_arrTeamUniqueKillWeaponsMatch")]
|
||||
public Span<NetworkedVector<Int32>> TeamUniqueKillWeaponsMatch => Schema.GetFixedArray<NetworkedVector<Int32>>(this.Handle, "CCSGameRules", "m_arrTeamUniqueKillWeaponsMatch", 4);
|
||||
@@ -878,16 +794,8 @@ public partial class CCSGameRules : CTeamplayRules
|
||||
[SchemaMember("CCSGameRules", "m_nRoundStartCount")]
|
||||
public ref byte RoundStartCount => ref Schema.GetRef<byte>(this.Handle, "CCSGameRules", "m_nRoundStartCount");
|
||||
|
||||
// m_nRoundStartTicks
|
||||
[SchemaMember("CCSGameRules", "m_nRoundStartTicks")]
|
||||
public NetworkedVector<Int32> RoundStartTicks => Schema.GetDeclaredClass<NetworkedVector<Int32>>(this.Handle, "CCSGameRules", "m_nRoundStartTicks");
|
||||
|
||||
// m_flLastPerfSampleTime
|
||||
[SchemaMember("CCSGameRules", "m_flLastPerfSampleTime")]
|
||||
public ref double LastPerfSampleTime => ref Schema.GetRef<double>(this.Handle, "CCSGameRules", "m_flLastPerfSampleTime");
|
||||
|
||||
// m_bSkipNextServerPerfSample
|
||||
[SchemaMember("CCSGameRules", "m_bSkipNextServerPerfSample")]
|
||||
public ref bool SkipNextServerPerfSample => ref Schema.GetRef<bool>(this.Handle, "CCSGameRules", "m_bSkipNextServerPerfSample");
|
||||
|
||||
}
|
||||
|
||||
@@ -294,6 +294,22 @@ public partial class CCSPlayerController : CBasePlayerController
|
||||
[SchemaMember("CCSPlayerController", "m_vecKills")]
|
||||
public NetworkedVector<EKillTypes_t> Kills => Schema.GetDeclaredClass<NetworkedVector<EKillTypes_t>>(this.Handle, "CCSPlayerController", "m_vecKills");
|
||||
|
||||
// m_bMvpNoMusic
|
||||
[SchemaMember("CCSPlayerController", "m_bMvpNoMusic")]
|
||||
public ref bool MvpNoMusic => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerController", "m_bMvpNoMusic");
|
||||
|
||||
// m_eMvpReason
|
||||
[SchemaMember("CCSPlayerController", "m_eMvpReason")]
|
||||
public ref Int32 MvpReason => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerController", "m_eMvpReason");
|
||||
|
||||
// m_iMusicKitID
|
||||
[SchemaMember("CCSPlayerController", "m_iMusicKitID")]
|
||||
public ref Int32 MusicKitID => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerController", "m_iMusicKitID");
|
||||
|
||||
// m_iMusicKitMVPs
|
||||
[SchemaMember("CCSPlayerController", "m_iMusicKitMVPs")]
|
||||
public ref Int32 MusicKitMVPs => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerController", "m_iMusicKitMVPs");
|
||||
|
||||
// m_iMVPs
|
||||
[SchemaMember("CCSPlayerController", "m_iMVPs")]
|
||||
public ref Int32 MVPs => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerController", "m_iMVPs");
|
||||
|
||||
@@ -22,9 +22,9 @@ public partial class CCSPlayerController_InGameMoneyServices : CPlayerController
|
||||
[SchemaMember("CCSPlayerController_InGameMoneyServices", "m_bReceivesMoneyNextRound")]
|
||||
public ref bool ReceivesMoneyNextRound => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerController_InGameMoneyServices", "m_bReceivesMoneyNextRound");
|
||||
|
||||
// m_iAccountMoneyEarnedForNextRound
|
||||
[SchemaMember("CCSPlayerController_InGameMoneyServices", "m_iAccountMoneyEarnedForNextRound")]
|
||||
public ref Int32 AccountMoneyEarnedForNextRound => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerController_InGameMoneyServices", "m_iAccountMoneyEarnedForNextRound");
|
||||
// m_iMoneyEarnedForNextRound
|
||||
[SchemaMember("CCSPlayerController_InGameMoneyServices", "m_iMoneyEarnedForNextRound")]
|
||||
public ref Int32 MoneyEarnedForNextRound => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerController_InGameMoneyServices", "m_iMoneyEarnedForNextRound");
|
||||
|
||||
// m_iAccount
|
||||
[SchemaMember("CCSPlayerController_InGameMoneyServices", "m_iAccount")]
|
||||
|
||||
@@ -46,10 +46,6 @@ public partial class CCSPlayerPawn : CCSPlayerPawnBase
|
||||
[SchemaMember("CCSPlayerPawn", "m_nCharacterDefIndex")]
|
||||
public ref UInt16 CharacterDefIndex => ref Schema.GetRef<UInt16>(this.Handle, "CCSPlayerPawn", "m_nCharacterDefIndex");
|
||||
|
||||
// m_hPreviousModel
|
||||
[SchemaMember("CCSPlayerPawn", "m_hPreviousModel")]
|
||||
public CStrongHandle<InfoForResourceTypeCModel> PreviousModel => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCModel>>(this.Handle, "CCSPlayerPawn", "m_hPreviousModel");
|
||||
|
||||
// m_bHasFemaleVoice
|
||||
[SchemaMember("CCSPlayerPawn", "m_bHasFemaleVoice")]
|
||||
public ref bool HasFemaleVoice => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bHasFemaleVoice");
|
||||
@@ -78,6 +74,10 @@ public partial class CCSPlayerPawn : CCSPlayerPawnBase
|
||||
[SchemaMember("CCSPlayerPawn", "m_bInBuyZone")]
|
||||
public ref bool InBuyZone => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bInBuyZone");
|
||||
|
||||
// m_TouchingBuyZones
|
||||
[SchemaMember("CCSPlayerPawn", "m_TouchingBuyZones")]
|
||||
public NetworkedVector<CHandle<CBaseEntity>> TouchingBuyZones => Schema.GetDeclaredClass<NetworkedVector<CHandle<CBaseEntity>>>(this.Handle, "CCSPlayerPawn", "m_TouchingBuyZones");
|
||||
|
||||
// m_bWasInBuyZone
|
||||
[SchemaMember("CCSPlayerPawn", "m_bWasInBuyZone")]
|
||||
public ref bool WasInBuyZone => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bWasInBuyZone");
|
||||
@@ -122,9 +122,9 @@ public partial class CCSPlayerPawn : CCSPlayerPawnBase
|
||||
[SchemaMember("CCSPlayerPawn", "m_flHealthShotBoostExpirationTime")]
|
||||
public ref float HealthShotBoostExpirationTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flHealthShotBoostExpirationTime");
|
||||
|
||||
// m_flLandseconds
|
||||
[SchemaMember("CCSPlayerPawn", "m_flLandseconds")]
|
||||
public ref float Landseconds => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flLandseconds");
|
||||
// m_flLandingTimeSeconds
|
||||
[SchemaMember("CCSPlayerPawn", "m_flLandingTimeSeconds")]
|
||||
public ref float LandingTimeSeconds => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flLandingTimeSeconds");
|
||||
|
||||
// m_aimPunchAngle
|
||||
[SchemaMember("CCSPlayerPawn", "m_aimPunchAngle")]
|
||||
@@ -226,4 +226,284 @@ public partial class CCSPlayerPawn : CCSPlayerPawnBase
|
||||
[SchemaMember("CCSPlayerPawn", "m_bSkipOneHeadConstraintUpdate")]
|
||||
public ref bool SkipOneHeadConstraintUpdate => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bSkipOneHeadConstraintUpdate");
|
||||
|
||||
// m_bLeftHanded
|
||||
[SchemaMember("CCSPlayerPawn", "m_bLeftHanded")]
|
||||
public ref bool LeftHanded => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bLeftHanded");
|
||||
|
||||
// m_fSwitchedHandednessTime
|
||||
[SchemaMember("CCSPlayerPawn", "m_fSwitchedHandednessTime")]
|
||||
public ref float SwitchedHandednessTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_fSwitchedHandednessTime");
|
||||
|
||||
// m_flViewmodelOffsetX
|
||||
[SchemaMember("CCSPlayerPawn", "m_flViewmodelOffsetX")]
|
||||
public ref float ViewmodelOffsetX => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flViewmodelOffsetX");
|
||||
|
||||
// m_flViewmodelOffsetY
|
||||
[SchemaMember("CCSPlayerPawn", "m_flViewmodelOffsetY")]
|
||||
public ref float ViewmodelOffsetY => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flViewmodelOffsetY");
|
||||
|
||||
// m_flViewmodelOffsetZ
|
||||
[SchemaMember("CCSPlayerPawn", "m_flViewmodelOffsetZ")]
|
||||
public ref float ViewmodelOffsetZ => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flViewmodelOffsetZ");
|
||||
|
||||
// m_flViewmodelFOV
|
||||
[SchemaMember("CCSPlayerPawn", "m_flViewmodelFOV")]
|
||||
public ref float ViewmodelFOV => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flViewmodelFOV");
|
||||
|
||||
// m_bIsWalking
|
||||
[SchemaMember("CCSPlayerPawn", "m_bIsWalking")]
|
||||
public ref bool IsWalking => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bIsWalking");
|
||||
|
||||
// m_fLastGivenDefuserTime
|
||||
[SchemaMember("CCSPlayerPawn", "m_fLastGivenDefuserTime")]
|
||||
public ref float LastGivenDefuserTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_fLastGivenDefuserTime");
|
||||
|
||||
// m_fLastGivenBombTime
|
||||
[SchemaMember("CCSPlayerPawn", "m_fLastGivenBombTime")]
|
||||
public ref float LastGivenBombTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_fLastGivenBombTime");
|
||||
|
||||
// m_flDealtDamageToEnemyMostRecentTimestamp
|
||||
[SchemaMember("CCSPlayerPawn", "m_flDealtDamageToEnemyMostRecentTimestamp")]
|
||||
public ref float DealtDamageToEnemyMostRecentTimestamp => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flDealtDamageToEnemyMostRecentTimestamp");
|
||||
|
||||
// m_iDisplayHistoryBits
|
||||
[SchemaMember("CCSPlayerPawn", "m_iDisplayHistoryBits")]
|
||||
public ref UInt32 DisplayHistoryBits => ref Schema.GetRef<UInt32>(this.Handle, "CCSPlayerPawn", "m_iDisplayHistoryBits");
|
||||
|
||||
// m_flLastAttackedTeammate
|
||||
[SchemaMember("CCSPlayerPawn", "m_flLastAttackedTeammate")]
|
||||
public ref float LastAttackedTeammate => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flLastAttackedTeammate");
|
||||
|
||||
// m_allowAutoFollowTime
|
||||
[SchemaMember("CCSPlayerPawn", "m_allowAutoFollowTime")]
|
||||
public ref float AllowAutoFollowTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_allowAutoFollowTime");
|
||||
|
||||
// m_bResetArmorNextSpawn
|
||||
[SchemaMember("CCSPlayerPawn", "m_bResetArmorNextSpawn")]
|
||||
public ref bool ResetArmorNextSpawn => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bResetArmorNextSpawn");
|
||||
|
||||
// m_nLastKillerIndex
|
||||
[SchemaMember("CCSPlayerPawn", "m_nLastKillerIndex")]
|
||||
public CEntityIndex LastKillerIndex => Schema.GetDeclaredClass<CEntityIndex>(this.Handle, "CCSPlayerPawn", "m_nLastKillerIndex");
|
||||
|
||||
// m_entitySpottedState
|
||||
[SchemaMember("CCSPlayerPawn", "m_entitySpottedState")]
|
||||
public EntitySpottedState_t EntitySpottedState => Schema.GetDeclaredClass<EntitySpottedState_t>(this.Handle, "CCSPlayerPawn", "m_entitySpottedState");
|
||||
|
||||
// m_nSpotRules
|
||||
[SchemaMember("CCSPlayerPawn", "m_nSpotRules")]
|
||||
public ref Int32 SpotRules => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_nSpotRules");
|
||||
|
||||
// m_bIsScoped
|
||||
[SchemaMember("CCSPlayerPawn", "m_bIsScoped")]
|
||||
public ref bool IsScoped => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bIsScoped");
|
||||
|
||||
// m_bResumeZoom
|
||||
[SchemaMember("CCSPlayerPawn", "m_bResumeZoom")]
|
||||
public ref bool ResumeZoom => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bResumeZoom");
|
||||
|
||||
// m_bIsDefusing
|
||||
[SchemaMember("CCSPlayerPawn", "m_bIsDefusing")]
|
||||
public ref bool IsDefusing => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bIsDefusing");
|
||||
|
||||
// m_bIsGrabbingHostage
|
||||
[SchemaMember("CCSPlayerPawn", "m_bIsGrabbingHostage")]
|
||||
public ref bool IsGrabbingHostage => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bIsGrabbingHostage");
|
||||
|
||||
// m_iBlockingUseActionInProgress
|
||||
[SchemaMember("CCSPlayerPawn", "m_iBlockingUseActionInProgress")]
|
||||
public ref CSPlayerBlockingUseAction_t BlockingUseActionInProgress => ref Schema.GetRef<CSPlayerBlockingUseAction_t>(this.Handle, "CCSPlayerPawn", "m_iBlockingUseActionInProgress");
|
||||
|
||||
// m_flEmitSoundTime
|
||||
[SchemaMember("CCSPlayerPawn", "m_flEmitSoundTime")]
|
||||
public ref float EmitSoundTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flEmitSoundTime");
|
||||
|
||||
// m_bInNoDefuseArea
|
||||
[SchemaMember("CCSPlayerPawn", "m_bInNoDefuseArea")]
|
||||
public ref bool InNoDefuseArea => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bInNoDefuseArea");
|
||||
|
||||
// m_iBombSiteIndex
|
||||
[SchemaMember("CCSPlayerPawn", "m_iBombSiteIndex")]
|
||||
public CEntityIndex BombSiteIndex => Schema.GetDeclaredClass<CEntityIndex>(this.Handle, "CCSPlayerPawn", "m_iBombSiteIndex");
|
||||
|
||||
// m_nWhichBombZone
|
||||
[SchemaMember("CCSPlayerPawn", "m_nWhichBombZone")]
|
||||
public ref Int32 WhichBombZone => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_nWhichBombZone");
|
||||
|
||||
// m_bInBombZoneTrigger
|
||||
[SchemaMember("CCSPlayerPawn", "m_bInBombZoneTrigger")]
|
||||
public ref bool InBombZoneTrigger => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bInBombZoneTrigger");
|
||||
|
||||
// m_bWasInBombZoneTrigger
|
||||
[SchemaMember("CCSPlayerPawn", "m_bWasInBombZoneTrigger")]
|
||||
public ref bool WasInBombZoneTrigger => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bWasInBombZoneTrigger");
|
||||
|
||||
// m_iShotsFired
|
||||
[SchemaMember("CCSPlayerPawn", "m_iShotsFired")]
|
||||
public ref Int32 ShotsFired => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_iShotsFired");
|
||||
|
||||
// m_flFlinchStack
|
||||
[SchemaMember("CCSPlayerPawn", "m_flFlinchStack")]
|
||||
public ref float FlinchStack => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flFlinchStack");
|
||||
|
||||
// m_flVelocityModifier
|
||||
[SchemaMember("CCSPlayerPawn", "m_flVelocityModifier")]
|
||||
public ref float VelocityModifier => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flVelocityModifier");
|
||||
|
||||
// m_flHitHeading
|
||||
[SchemaMember("CCSPlayerPawn", "m_flHitHeading")]
|
||||
public ref float HitHeading => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flHitHeading");
|
||||
|
||||
// m_nHitBodyPart
|
||||
[SchemaMember("CCSPlayerPawn", "m_nHitBodyPart")]
|
||||
public ref Int32 HitBodyPart => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_nHitBodyPart");
|
||||
|
||||
// m_vecTotalBulletForce
|
||||
[SchemaMember("CCSPlayerPawn", "m_vecTotalBulletForce")]
|
||||
public Vector TotalBulletForce => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawn", "m_vecTotalBulletForce");
|
||||
|
||||
// m_bWaitForNoAttack
|
||||
[SchemaMember("CCSPlayerPawn", "m_bWaitForNoAttack")]
|
||||
public ref bool WaitForNoAttack => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bWaitForNoAttack");
|
||||
|
||||
// m_ignoreLadderJumpTime
|
||||
[SchemaMember("CCSPlayerPawn", "m_ignoreLadderJumpTime")]
|
||||
public ref float IgnoreLadderJumpTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_ignoreLadderJumpTime");
|
||||
|
||||
// m_NumEnemiesKilledThisRound
|
||||
[SchemaMember("CCSPlayerPawn", "m_NumEnemiesKilledThisRound")]
|
||||
public ref Int32 NumEnemiesKilledThisRound => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_NumEnemiesKilledThisRound");
|
||||
|
||||
// m_bKilledByHeadshot
|
||||
[SchemaMember("CCSPlayerPawn", "m_bKilledByHeadshot")]
|
||||
public ref bool KilledByHeadshot => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bKilledByHeadshot");
|
||||
|
||||
// m_LastHitBox
|
||||
[SchemaMember("CCSPlayerPawn", "m_LastHitBox")]
|
||||
public ref Int32 LastHitBox => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_LastHitBox");
|
||||
|
||||
// m_LastHealth
|
||||
[SchemaMember("CCSPlayerPawn", "m_LastHealth")]
|
||||
public ref Int32 LastHealth => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_LastHealth");
|
||||
|
||||
// m_pBot
|
||||
[SchemaMember("CCSPlayerPawn", "m_pBot")]
|
||||
public CCSBot? Bot => Schema.GetPointer<CCSBot>(this.Handle, "CCSPlayerPawn", "m_pBot");
|
||||
|
||||
// m_bBotAllowActive
|
||||
[SchemaMember("CCSPlayerPawn", "m_bBotAllowActive")]
|
||||
public ref bool BotAllowActive => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bBotAllowActive");
|
||||
|
||||
// m_thirdPersonHeading
|
||||
[SchemaMember("CCSPlayerPawn", "m_thirdPersonHeading")]
|
||||
public QAngle ThirdPersonHeading => Schema.GetDeclaredClass<QAngle>(this.Handle, "CCSPlayerPawn", "m_thirdPersonHeading");
|
||||
|
||||
// m_flSlopeDropOffset
|
||||
[SchemaMember("CCSPlayerPawn", "m_flSlopeDropOffset")]
|
||||
public ref float SlopeDropOffset => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flSlopeDropOffset");
|
||||
|
||||
// m_flSlopeDropHeight
|
||||
[SchemaMember("CCSPlayerPawn", "m_flSlopeDropHeight")]
|
||||
public ref float SlopeDropHeight => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flSlopeDropHeight");
|
||||
|
||||
// m_vHeadConstraintOffset
|
||||
[SchemaMember("CCSPlayerPawn", "m_vHeadConstraintOffset")]
|
||||
public Vector HeadConstraintOffset => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawn", "m_vHeadConstraintOffset");
|
||||
|
||||
// m_nLastPickupPriority
|
||||
[SchemaMember("CCSPlayerPawn", "m_nLastPickupPriority")]
|
||||
public ref Int32 LastPickupPriority => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_nLastPickupPriority");
|
||||
|
||||
// m_flLastPickupPriorityTime
|
||||
[SchemaMember("CCSPlayerPawn", "m_flLastPickupPriorityTime")]
|
||||
public ref float LastPickupPriorityTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flLastPickupPriorityTime");
|
||||
|
||||
// m_ArmorValue
|
||||
[SchemaMember("CCSPlayerPawn", "m_ArmorValue")]
|
||||
public ref Int32 ArmorValue => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_ArmorValue");
|
||||
|
||||
// m_unCurrentEquipmentValue
|
||||
[SchemaMember("CCSPlayerPawn", "m_unCurrentEquipmentValue")]
|
||||
public ref UInt16 CurrentEquipmentValue => ref Schema.GetRef<UInt16>(this.Handle, "CCSPlayerPawn", "m_unCurrentEquipmentValue");
|
||||
|
||||
// m_unRoundStartEquipmentValue
|
||||
[SchemaMember("CCSPlayerPawn", "m_unRoundStartEquipmentValue")]
|
||||
public ref UInt16 RoundStartEquipmentValue => ref Schema.GetRef<UInt16>(this.Handle, "CCSPlayerPawn", "m_unRoundStartEquipmentValue");
|
||||
|
||||
// m_unFreezetimeEndEquipmentValue
|
||||
[SchemaMember("CCSPlayerPawn", "m_unFreezetimeEndEquipmentValue")]
|
||||
public ref UInt16 FreezetimeEndEquipmentValue => ref Schema.GetRef<UInt16>(this.Handle, "CCSPlayerPawn", "m_unFreezetimeEndEquipmentValue");
|
||||
|
||||
// m_iLastWeaponFireUsercmd
|
||||
[SchemaMember("CCSPlayerPawn", "m_iLastWeaponFireUsercmd")]
|
||||
public ref Int32 LastWeaponFireUsercmd => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_iLastWeaponFireUsercmd");
|
||||
|
||||
// m_flLastFriendlyFireDamageReductionRatio
|
||||
[SchemaMember("CCSPlayerPawn", "m_flLastFriendlyFireDamageReductionRatio")]
|
||||
public ref float LastFriendlyFireDamageReductionRatio => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flLastFriendlyFireDamageReductionRatio");
|
||||
|
||||
// m_bIsSpawning
|
||||
[SchemaMember("CCSPlayerPawn", "m_bIsSpawning")]
|
||||
public ref bool IsSpawning => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bIsSpawning");
|
||||
|
||||
// m_iDeathFlags
|
||||
[SchemaMember("CCSPlayerPawn", "m_iDeathFlags")]
|
||||
public ref Int32 DeathFlags => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawn", "m_iDeathFlags");
|
||||
|
||||
// m_bHasDeathInfo
|
||||
[SchemaMember("CCSPlayerPawn", "m_bHasDeathInfo")]
|
||||
public ref bool HasDeathInfo => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bHasDeathInfo");
|
||||
|
||||
// m_flDeathInfoTime
|
||||
[SchemaMember("CCSPlayerPawn", "m_flDeathInfoTime")]
|
||||
public ref float DeathInfoTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_flDeathInfoTime");
|
||||
|
||||
// m_vecDeathInfoOrigin
|
||||
[SchemaMember("CCSPlayerPawn", "m_vecDeathInfoOrigin")]
|
||||
public Vector DeathInfoOrigin => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawn", "m_vecDeathInfoOrigin");
|
||||
|
||||
// m_vecPlayerPatchEconIndices
|
||||
[SchemaMember("CCSPlayerPawn", "m_vecPlayerPatchEconIndices")]
|
||||
public Span<UInt32> PlayerPatchEconIndices => Schema.GetFixedArray<UInt32>(this.Handle, "CCSPlayerPawn", "m_vecPlayerPatchEconIndices", 5);
|
||||
|
||||
// m_GunGameImmunityColor
|
||||
[SchemaMember("CCSPlayerPawn", "m_GunGameImmunityColor")]
|
||||
public Color GunGameImmunityColor
|
||||
{
|
||||
get { return Schema.GetCustomMarshalledType<Color>(this.Handle, "CCSPlayerPawn", "m_GunGameImmunityColor"); }
|
||||
set { Schema.SetCustomMarshalledType<Color>(this.Handle, "CCSPlayerPawn", "m_GunGameImmunityColor", value); }
|
||||
}
|
||||
|
||||
// m_grenadeParameterStashTime
|
||||
[SchemaMember("CCSPlayerPawn", "m_grenadeParameterStashTime")]
|
||||
public ref float GrenadeParameterStashTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawn", "m_grenadeParameterStashTime");
|
||||
|
||||
// m_bGrenadeParametersStashed
|
||||
[SchemaMember("CCSPlayerPawn", "m_bGrenadeParametersStashed")]
|
||||
public ref bool GrenadeParametersStashed => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawn", "m_bGrenadeParametersStashed");
|
||||
|
||||
// m_angStashedShootAngles
|
||||
[SchemaMember("CCSPlayerPawn", "m_angStashedShootAngles")]
|
||||
public QAngle StashedShootAngles => Schema.GetDeclaredClass<QAngle>(this.Handle, "CCSPlayerPawn", "m_angStashedShootAngles");
|
||||
|
||||
// m_vecStashedGrenadeThrowPosition
|
||||
[SchemaMember("CCSPlayerPawn", "m_vecStashedGrenadeThrowPosition")]
|
||||
public Vector StashedGrenadeThrowPosition => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawn", "m_vecStashedGrenadeThrowPosition");
|
||||
|
||||
// m_vecStashedVelocity
|
||||
[SchemaMember("CCSPlayerPawn", "m_vecStashedVelocity")]
|
||||
public Vector StashedVelocity => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawn", "m_vecStashedVelocity");
|
||||
|
||||
// m_angShootAngleHistory
|
||||
[SchemaMember("CCSPlayerPawn", "m_angShootAngleHistory")]
|
||||
public Span<QAngle> ShootAngleHistory => Schema.GetFixedArray<QAngle>(this.Handle, "CCSPlayerPawn", "m_angShootAngleHistory", 2);
|
||||
|
||||
// m_vecThrowPositionHistory
|
||||
[SchemaMember("CCSPlayerPawn", "m_vecThrowPositionHistory")]
|
||||
public Span<Vector> ThrowPositionHistory => Schema.GetFixedArray<Vector>(this.Handle, "CCSPlayerPawn", "m_vecThrowPositionHistory", 2);
|
||||
|
||||
// m_vecVelocityHistory
|
||||
[SchemaMember("CCSPlayerPawn", "m_vecVelocityHistory")]
|
||||
public Span<Vector> VelocityHistory => Schema.GetFixedArray<Vector>(this.Handle, "CCSPlayerPawn", "m_vecVelocityHistory", 2);
|
||||
|
||||
}
|
||||
|
||||
@@ -30,18 +30,6 @@ public partial class CCSPlayerPawnBase : CBasePlayerPawn
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_pViewModelServices")]
|
||||
public CPlayer_ViewModelServices? ViewModelServices => Schema.GetPointer<CPlayer_ViewModelServices>(this.Handle, "CCSPlayerPawnBase", "m_pViewModelServices");
|
||||
|
||||
// m_iDisplayHistoryBits
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iDisplayHistoryBits")]
|
||||
public ref UInt32 DisplayHistoryBits => ref Schema.GetRef<UInt32>(this.Handle, "CCSPlayerPawnBase", "m_iDisplayHistoryBits");
|
||||
|
||||
// m_flLastAttackedTeammate
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastAttackedTeammate")]
|
||||
public ref float LastAttackedTeammate => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastAttackedTeammate");
|
||||
|
||||
// m_hOriginalController
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_hOriginalController")]
|
||||
public CHandle<CCSPlayerController> OriginalController => Schema.GetDeclaredClass<CHandle<CCSPlayerController>>(this.Handle, "CCSPlayerPawnBase", "m_hOriginalController");
|
||||
|
||||
// m_blindUntilTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_blindUntilTime")]
|
||||
public ref float BlindUntilTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_blindUntilTime");
|
||||
@@ -50,82 +38,14 @@ public partial class CCSPlayerPawnBase : CBasePlayerPawn
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_blindStartTime")]
|
||||
public ref float BlindStartTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_blindStartTime");
|
||||
|
||||
// m_allowAutoFollowTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_allowAutoFollowTime")]
|
||||
public ref float AllowAutoFollowTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_allowAutoFollowTime");
|
||||
|
||||
// m_entitySpottedState
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_entitySpottedState")]
|
||||
public EntitySpottedState_t EntitySpottedState => Schema.GetDeclaredClass<EntitySpottedState_t>(this.Handle, "CCSPlayerPawnBase", "m_entitySpottedState");
|
||||
|
||||
// m_nSpotRules
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nSpotRules")]
|
||||
public ref Int32 SpotRules => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_nSpotRules");
|
||||
|
||||
// m_iPlayerState
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iPlayerState")]
|
||||
public ref CSPlayerState PlayerState => ref Schema.GetRef<CSPlayerState>(this.Handle, "CCSPlayerPawnBase", "m_iPlayerState");
|
||||
|
||||
// m_chickenIdleSoundTimer
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_chickenIdleSoundTimer")]
|
||||
public CountdownTimer ChickenIdleSoundTimer => Schema.GetDeclaredClass<CountdownTimer>(this.Handle, "CCSPlayerPawnBase", "m_chickenIdleSoundTimer");
|
||||
|
||||
// m_chickenJumpSoundTimer
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_chickenJumpSoundTimer")]
|
||||
public CountdownTimer ChickenJumpSoundTimer => Schema.GetDeclaredClass<CountdownTimer>(this.Handle, "CCSPlayerPawnBase", "m_chickenJumpSoundTimer");
|
||||
|
||||
// m_vecLastBookmarkedPosition
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_vecLastBookmarkedPosition")]
|
||||
public Vector LastBookmarkedPosition => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawnBase", "m_vecLastBookmarkedPosition");
|
||||
|
||||
// m_flLastDistanceTraveledNotice
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastDistanceTraveledNotice")]
|
||||
public ref float LastDistanceTraveledNotice => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastDistanceTraveledNotice");
|
||||
|
||||
// m_flAccumulatedDistanceTraveled
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flAccumulatedDistanceTraveled")]
|
||||
public ref float AccumulatedDistanceTraveled => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flAccumulatedDistanceTraveled");
|
||||
|
||||
// m_flLastFriendlyFireDamageReductionRatio
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastFriendlyFireDamageReductionRatio")]
|
||||
public ref float LastFriendlyFireDamageReductionRatio => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastFriendlyFireDamageReductionRatio");
|
||||
|
||||
// m_bRespawning
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bRespawning")]
|
||||
public ref bool Respawning => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bRespawning");
|
||||
|
||||
// m_nLastPickupPriority
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nLastPickupPriority")]
|
||||
public ref Int32 LastPickupPriority => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_nLastPickupPriority");
|
||||
|
||||
// m_flLastPickupPriorityTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastPickupPriorityTime")]
|
||||
public ref float LastPickupPriorityTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastPickupPriorityTime");
|
||||
|
||||
// m_bIsScoped
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bIsScoped")]
|
||||
public ref bool IsScoped => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bIsScoped");
|
||||
|
||||
// m_bIsWalking
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bIsWalking")]
|
||||
public ref bool IsWalking => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bIsWalking");
|
||||
|
||||
// m_bResumeZoom
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bResumeZoom")]
|
||||
public ref bool ResumeZoom => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bResumeZoom");
|
||||
|
||||
// m_bIsDefusing
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bIsDefusing")]
|
||||
public ref bool IsDefusing => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bIsDefusing");
|
||||
|
||||
// m_bIsGrabbingHostage
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bIsGrabbingHostage")]
|
||||
public ref bool IsGrabbingHostage => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bIsGrabbingHostage");
|
||||
|
||||
// m_iBlockingUseActionInProgress
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iBlockingUseActionInProgress")]
|
||||
public ref CSPlayerBlockingUseAction_t BlockingUseActionInProgress => ref Schema.GetRef<CSPlayerBlockingUseAction_t>(this.Handle, "CCSPlayerPawnBase", "m_iBlockingUseActionInProgress");
|
||||
|
||||
// m_fImmuneToGunGameDamageTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_fImmuneToGunGameDamageTime")]
|
||||
public ref float ImmuneToGunGameDamageTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_fImmuneToGunGameDamageTime");
|
||||
@@ -134,14 +54,6 @@ public partial class CCSPlayerPawnBase : CBasePlayerPawn
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bGunGameImmunity")]
|
||||
public ref bool GunGameImmunity => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bGunGameImmunity");
|
||||
|
||||
// m_GunGameImmunityColor
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_GunGameImmunityColor")]
|
||||
public Color GunGameImmunityColor
|
||||
{
|
||||
get { return Schema.GetCustomMarshalledType<Color>(this.Handle, "CCSPlayerPawnBase", "m_GunGameImmunityColor"); }
|
||||
set { Schema.SetCustomMarshalledType<Color>(this.Handle, "CCSPlayerPawnBase", "m_GunGameImmunityColor", value); }
|
||||
}
|
||||
|
||||
// m_fMolotovDamageTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_fMolotovDamageTime")]
|
||||
public ref float MolotovDamageTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_fMolotovDamageTime");
|
||||
@@ -150,210 +62,18 @@ public partial class CCSPlayerPawnBase : CBasePlayerPawn
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bHasMovedSinceSpawn")]
|
||||
public ref bool HasMovedSinceSpawn => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bHasMovedSinceSpawn");
|
||||
|
||||
// m_bCanMoveDuringFreezePeriod
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bCanMoveDuringFreezePeriod")]
|
||||
public ref bool CanMoveDuringFreezePeriod => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bCanMoveDuringFreezePeriod");
|
||||
|
||||
// m_flGuardianTooFarDistFrac
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flGuardianTooFarDistFrac")]
|
||||
public ref float GuardianTooFarDistFrac => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flGuardianTooFarDistFrac");
|
||||
|
||||
// m_flNextGuardianTooFarHurtTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flNextGuardianTooFarHurtTime")]
|
||||
public ref float NextGuardianTooFarHurtTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flNextGuardianTooFarHurtTime");
|
||||
|
||||
// m_flDetectedByEnemySensorTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flDetectedByEnemySensorTime")]
|
||||
public ref float DetectedByEnemySensorTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flDetectedByEnemySensorTime");
|
||||
|
||||
// m_flDealtDamageToEnemyMostRecentTimestamp
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flDealtDamageToEnemyMostRecentTimestamp")]
|
||||
public ref float DealtDamageToEnemyMostRecentTimestamp => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flDealtDamageToEnemyMostRecentTimestamp");
|
||||
|
||||
// m_flLastEquippedHelmetTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastEquippedHelmetTime")]
|
||||
public ref float LastEquippedHelmetTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastEquippedHelmetTime");
|
||||
|
||||
// m_flLastEquippedArmorTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastEquippedArmorTime")]
|
||||
public ref float LastEquippedArmorTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastEquippedArmorTime");
|
||||
|
||||
// m_nHeavyAssaultSuitCooldownRemaining
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nHeavyAssaultSuitCooldownRemaining")]
|
||||
public ref Int32 HeavyAssaultSuitCooldownRemaining => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_nHeavyAssaultSuitCooldownRemaining");
|
||||
|
||||
// m_bResetArmorNextSpawn
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bResetArmorNextSpawn")]
|
||||
public ref bool ResetArmorNextSpawn => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bResetArmorNextSpawn");
|
||||
|
||||
// m_flLastBumpMineBumpTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastBumpMineBumpTime")]
|
||||
public ref float LastBumpMineBumpTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastBumpMineBumpTime");
|
||||
|
||||
// m_flEmitSoundTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flEmitSoundTime")]
|
||||
public ref float EmitSoundTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flEmitSoundTime");
|
||||
|
||||
// m_iNumSpawns
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iNumSpawns")]
|
||||
public ref Int32 NumSpawns => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iNumSpawns");
|
||||
|
||||
// m_iShouldHaveCash
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iShouldHaveCash")]
|
||||
public ref Int32 ShouldHaveCash => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iShouldHaveCash");
|
||||
|
||||
// m_bInvalidSteamLogonDelayed
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bInvalidSteamLogonDelayed")]
|
||||
public ref bool InvalidSteamLogonDelayed => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bInvalidSteamLogonDelayed");
|
||||
|
||||
// m_flLastAction
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastAction")]
|
||||
public ref float LastAction => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastAction");
|
||||
|
||||
// m_flNameChangeHistory
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flNameChangeHistory")]
|
||||
public Span<float> NameChangeHistory => Schema.GetFixedArray<float>(this.Handle, "CCSPlayerPawnBase", "m_flNameChangeHistory", 5);
|
||||
|
||||
// m_fLastGivenDefuserTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_fLastGivenDefuserTime")]
|
||||
public ref float LastGivenDefuserTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_fLastGivenDefuserTime");
|
||||
|
||||
// m_fLastGivenBombTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_fLastGivenBombTime")]
|
||||
public ref float LastGivenBombTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_fLastGivenBombTime");
|
||||
|
||||
// m_bHasNightVision
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bHasNightVision")]
|
||||
public ref bool HasNightVision => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bHasNightVision");
|
||||
|
||||
// m_bNightVisionOn
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bNightVisionOn")]
|
||||
public ref bool NightVisionOn => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bNightVisionOn");
|
||||
// m_flIdleTimeSinceLastAction
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flIdleTimeSinceLastAction")]
|
||||
public ref float IdleTimeSinceLastAction => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flIdleTimeSinceLastAction");
|
||||
|
||||
// m_fNextRadarUpdateTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_fNextRadarUpdateTime")]
|
||||
public ref float NextRadarUpdateTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_fNextRadarUpdateTime");
|
||||
|
||||
// m_flLastMoneyUpdateTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastMoneyUpdateTime")]
|
||||
public ref float LastMoneyUpdateTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastMoneyUpdateTime");
|
||||
|
||||
// m_MenuStringBuffer
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_MenuStringBuffer")]
|
||||
public string MenuStringBuffer
|
||||
{
|
||||
get { return Schema.GetString(this.Handle, "CCSPlayerPawnBase", "m_MenuStringBuffer"); }
|
||||
set { Schema.SetStringBytes(this.Handle, "CCSPlayerPawnBase", "m_MenuStringBuffer", value, 1024); }
|
||||
}
|
||||
|
||||
// m_fIntroCamTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_fIntroCamTime")]
|
||||
public ref float IntroCamTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_fIntroCamTime");
|
||||
|
||||
// m_nMyCollisionGroup
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nMyCollisionGroup")]
|
||||
public ref Int32 MyCollisionGroup => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_nMyCollisionGroup");
|
||||
|
||||
// m_bInNoDefuseArea
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bInNoDefuseArea")]
|
||||
public ref bool InNoDefuseArea => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bInNoDefuseArea");
|
||||
|
||||
// m_bKilledByTaser
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bKilledByTaser")]
|
||||
public ref bool KilledByTaser => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bKilledByTaser");
|
||||
|
||||
// m_iMoveState
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iMoveState")]
|
||||
public ref Int32 MoveState => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iMoveState");
|
||||
|
||||
// m_grenadeParameterStashTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_grenadeParameterStashTime")]
|
||||
public ref float GrenadeParameterStashTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_grenadeParameterStashTime");
|
||||
|
||||
// m_bGrenadeParametersStashed
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bGrenadeParametersStashed")]
|
||||
public ref bool GrenadeParametersStashed => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bGrenadeParametersStashed");
|
||||
|
||||
// m_angStashedShootAngles
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_angStashedShootAngles")]
|
||||
public QAngle StashedShootAngles => Schema.GetDeclaredClass<QAngle>(this.Handle, "CCSPlayerPawnBase", "m_angStashedShootAngles");
|
||||
|
||||
// m_vecStashedGrenadeThrowPosition
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_vecStashedGrenadeThrowPosition")]
|
||||
public Vector StashedGrenadeThrowPosition => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawnBase", "m_vecStashedGrenadeThrowPosition");
|
||||
|
||||
// m_vecStashedVelocity
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_vecStashedVelocity")]
|
||||
public Vector StashedVelocity => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawnBase", "m_vecStashedVelocity");
|
||||
|
||||
// m_angShootAngleHistory
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_angShootAngleHistory")]
|
||||
public Span<QAngle> ShootAngleHistory => Schema.GetFixedArray<QAngle>(this.Handle, "CCSPlayerPawnBase", "m_angShootAngleHistory", 2);
|
||||
|
||||
// m_vecThrowPositionHistory
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_vecThrowPositionHistory")]
|
||||
public Span<Vector> ThrowPositionHistory => Schema.GetFixedArray<Vector>(this.Handle, "CCSPlayerPawnBase", "m_vecThrowPositionHistory", 2);
|
||||
|
||||
// m_vecVelocityHistory
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_vecVelocityHistory")]
|
||||
public Span<Vector> VelocityHistory => Schema.GetFixedArray<Vector>(this.Handle, "CCSPlayerPawnBase", "m_vecVelocityHistory", 2);
|
||||
|
||||
// m_bDiedAirborne
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bDiedAirborne")]
|
||||
public ref bool DiedAirborne => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bDiedAirborne");
|
||||
|
||||
// m_iBombSiteIndex
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iBombSiteIndex")]
|
||||
public CEntityIndex BombSiteIndex => Schema.GetDeclaredClass<CEntityIndex>(this.Handle, "CCSPlayerPawnBase", "m_iBombSiteIndex");
|
||||
|
||||
// m_nWhichBombZone
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nWhichBombZone")]
|
||||
public ref Int32 WhichBombZone => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_nWhichBombZone");
|
||||
|
||||
// m_bInBombZoneTrigger
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bInBombZoneTrigger")]
|
||||
public ref bool InBombZoneTrigger => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bInBombZoneTrigger");
|
||||
|
||||
// m_bWasInBombZoneTrigger
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bWasInBombZoneTrigger")]
|
||||
public ref bool WasInBombZoneTrigger => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bWasInBombZoneTrigger");
|
||||
|
||||
// m_iDirection
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iDirection")]
|
||||
public ref Int32 Direction => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iDirection");
|
||||
|
||||
// m_iShotsFired
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iShotsFired")]
|
||||
public ref Int32 ShotsFired => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iShotsFired");
|
||||
|
||||
// m_ArmorValue
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_ArmorValue")]
|
||||
public ref Int32 ArmorValue => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_ArmorValue");
|
||||
|
||||
// m_flFlinchStack
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flFlinchStack")]
|
||||
public ref float FlinchStack => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flFlinchStack");
|
||||
|
||||
// m_flVelocityModifier
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flVelocityModifier")]
|
||||
public ref float VelocityModifier => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flVelocityModifier");
|
||||
|
||||
// m_flHitHeading
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flHitHeading")]
|
||||
public ref float HitHeading => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flHitHeading");
|
||||
|
||||
// m_nHitBodyPart
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nHitBodyPart")]
|
||||
public ref Int32 HitBodyPart => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_nHitBodyPart");
|
||||
|
||||
// m_iHostagesKilled
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iHostagesKilled")]
|
||||
public ref Int32 HostagesKilled => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iHostagesKilled");
|
||||
|
||||
// m_vecTotalBulletForce
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_vecTotalBulletForce")]
|
||||
public Vector TotalBulletForce => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawnBase", "m_vecTotalBulletForce");
|
||||
|
||||
// m_flFlashDuration
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flFlashDuration")]
|
||||
public ref float FlashDuration => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flFlashDuration");
|
||||
@@ -370,130 +90,10 @@ public partial class CCSPlayerPawnBase : CBasePlayerPawn
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iProgressBarDuration")]
|
||||
public ref Int32 ProgressBarDuration => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iProgressBarDuration");
|
||||
|
||||
// m_bWaitForNoAttack
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bWaitForNoAttack")]
|
||||
public ref bool WaitForNoAttack => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bWaitForNoAttack");
|
||||
|
||||
// m_flLowerBodyYawTarget
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLowerBodyYawTarget")]
|
||||
public ref float LowerBodyYawTarget => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLowerBodyYawTarget");
|
||||
|
||||
// m_bStrafing
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bStrafing")]
|
||||
public ref bool Strafing => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bStrafing");
|
||||
|
||||
// m_lastStandingPos
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_lastStandingPos")]
|
||||
public Vector LastStandingPos => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawnBase", "m_lastStandingPos");
|
||||
|
||||
// m_ignoreLadderJumpTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_ignoreLadderJumpTime")]
|
||||
public ref float IgnoreLadderJumpTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_ignoreLadderJumpTime");
|
||||
|
||||
// m_ladderSurpressionTimer
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_ladderSurpressionTimer")]
|
||||
public CountdownTimer LadderSurpressionTimer => Schema.GetDeclaredClass<CountdownTimer>(this.Handle, "CCSPlayerPawnBase", "m_ladderSurpressionTimer");
|
||||
|
||||
// m_lastLadderNormal
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_lastLadderNormal")]
|
||||
public Vector LastLadderNormal => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawnBase", "m_lastLadderNormal");
|
||||
|
||||
// m_lastLadderPos
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_lastLadderPos")]
|
||||
public Vector LastLadderPos => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawnBase", "m_lastLadderPos");
|
||||
|
||||
// m_thirdPersonHeading
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_thirdPersonHeading")]
|
||||
public QAngle ThirdPersonHeading => Schema.GetDeclaredClass<QAngle>(this.Handle, "CCSPlayerPawnBase", "m_thirdPersonHeading");
|
||||
|
||||
// m_flSlopeDropOffset
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flSlopeDropOffset")]
|
||||
public ref float SlopeDropOffset => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flSlopeDropOffset");
|
||||
|
||||
// m_flSlopeDropHeight
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flSlopeDropHeight")]
|
||||
public ref float SlopeDropHeight => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flSlopeDropHeight");
|
||||
|
||||
// m_vHeadConstraintOffset
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_vHeadConstraintOffset")]
|
||||
public Vector HeadConstraintOffset => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawnBase", "m_vHeadConstraintOffset");
|
||||
|
||||
// m_iLastWeaponFireUsercmd
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iLastWeaponFireUsercmd")]
|
||||
public ref Int32 LastWeaponFireUsercmd => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iLastWeaponFireUsercmd");
|
||||
|
||||
// m_angEyeAngles
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_angEyeAngles")]
|
||||
public QAngle EyeAngles => Schema.GetDeclaredClass<QAngle>(this.Handle, "CCSPlayerPawnBase", "m_angEyeAngles");
|
||||
|
||||
// m_bVCollisionInitted
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bVCollisionInitted")]
|
||||
public ref bool VCollisionInitted => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bVCollisionInitted");
|
||||
|
||||
// m_storedSpawnPosition
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_storedSpawnPosition")]
|
||||
public Vector StoredSpawnPosition => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawnBase", "m_storedSpawnPosition");
|
||||
|
||||
// m_storedSpawnAngle
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_storedSpawnAngle")]
|
||||
public QAngle StoredSpawnAngle => Schema.GetDeclaredClass<QAngle>(this.Handle, "CCSPlayerPawnBase", "m_storedSpawnAngle");
|
||||
|
||||
// m_bIsSpawning
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bIsSpawning")]
|
||||
public ref bool IsSpawning => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bIsSpawning");
|
||||
|
||||
// m_bHideTargetID
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bHideTargetID")]
|
||||
public ref bool HideTargetID => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bHideTargetID");
|
||||
|
||||
// m_nNumDangerZoneDamageHits
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nNumDangerZoneDamageHits")]
|
||||
public ref Int32 NumDangerZoneDamageHits => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_nNumDangerZoneDamageHits");
|
||||
|
||||
// m_bHud_MiniScoreHidden
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bHud_MiniScoreHidden")]
|
||||
public ref bool Hud_MiniScoreHidden => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bHud_MiniScoreHidden");
|
||||
|
||||
// m_bHud_RadarHidden
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bHud_RadarHidden")]
|
||||
public ref bool Hud_RadarHidden => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bHud_RadarHidden");
|
||||
|
||||
// m_nLastKillerIndex
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nLastKillerIndex")]
|
||||
public CEntityIndex LastKillerIndex => Schema.GetDeclaredClass<CEntityIndex>(this.Handle, "CCSPlayerPawnBase", "m_nLastKillerIndex");
|
||||
|
||||
// m_nLastConcurrentKilled
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nLastConcurrentKilled")]
|
||||
public ref Int32 LastConcurrentKilled => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_nLastConcurrentKilled");
|
||||
|
||||
// m_nDeathCamMusic
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nDeathCamMusic")]
|
||||
public ref Int32 DeathCamMusic => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_nDeathCamMusic");
|
||||
|
||||
// m_iAddonBits
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iAddonBits")]
|
||||
public ref Int32 AddonBits => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iAddonBits");
|
||||
|
||||
// m_iPrimaryAddon
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iPrimaryAddon")]
|
||||
public ref Int32 PrimaryAddon => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iPrimaryAddon");
|
||||
|
||||
// m_iSecondaryAddon
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iSecondaryAddon")]
|
||||
public ref Int32 SecondaryAddon => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iSecondaryAddon");
|
||||
|
||||
// m_currentDeafnessFilter
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_currentDeafnessFilter")]
|
||||
public CUtlStringToken CurrentDeafnessFilter => Schema.GetDeclaredClass<CUtlStringToken>(this.Handle, "CCSPlayerPawnBase", "m_currentDeafnessFilter");
|
||||
|
||||
// m_NumEnemiesKilledThisSpawn
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_NumEnemiesKilledThisSpawn")]
|
||||
public ref Int32 NumEnemiesKilledThisSpawn => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_NumEnemiesKilledThisSpawn");
|
||||
|
||||
// m_NumEnemiesKilledThisRound
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_NumEnemiesKilledThisRound")]
|
||||
public ref Int32 NumEnemiesKilledThisRound => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_NumEnemiesKilledThisRound");
|
||||
|
||||
// m_NumEnemiesAtRoundStart
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_NumEnemiesAtRoundStart")]
|
||||
public ref Int32 NumEnemiesAtRoundStart => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_NumEnemiesAtRoundStart");
|
||||
@@ -502,76 +102,12 @@ public partial class CCSPlayerPawnBase : CBasePlayerPawn
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_wasNotKilledNaturally")]
|
||||
public ref bool WasNotKilledNaturally => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_wasNotKilledNaturally");
|
||||
|
||||
// m_vecPlayerPatchEconIndices
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_vecPlayerPatchEconIndices")]
|
||||
public Span<UInt32> PlayerPatchEconIndices => Schema.GetFixedArray<UInt32>(this.Handle, "CCSPlayerPawnBase", "m_vecPlayerPatchEconIndices", 5);
|
||||
|
||||
// m_iDeathFlags
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_iDeathFlags")]
|
||||
public ref Int32 DeathFlags => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_iDeathFlags");
|
||||
|
||||
// m_hPet
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_hPet")]
|
||||
public CHandle<CChicken> Pet => Schema.GetDeclaredClass<CHandle<CChicken>>(this.Handle, "CCSPlayerPawnBase", "m_hPet");
|
||||
|
||||
// m_unCurrentEquipmentValue
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_unCurrentEquipmentValue")]
|
||||
public ref UInt16 CurrentEquipmentValue => ref Schema.GetRef<UInt16>(this.Handle, "CCSPlayerPawnBase", "m_unCurrentEquipmentValue");
|
||||
|
||||
// m_unRoundStartEquipmentValue
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_unRoundStartEquipmentValue")]
|
||||
public ref UInt16 RoundStartEquipmentValue => ref Schema.GetRef<UInt16>(this.Handle, "CCSPlayerPawnBase", "m_unRoundStartEquipmentValue");
|
||||
|
||||
// m_unFreezetimeEndEquipmentValue
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_unFreezetimeEndEquipmentValue")]
|
||||
public ref UInt16 FreezetimeEndEquipmentValue => ref Schema.GetRef<UInt16>(this.Handle, "CCSPlayerPawnBase", "m_unFreezetimeEndEquipmentValue");
|
||||
|
||||
// m_nSurvivalTeamNumber
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_nSurvivalTeamNumber")]
|
||||
public ref Int32 SurvivalTeamNumber => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_nSurvivalTeamNumber");
|
||||
|
||||
// m_bHasDeathInfo
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bHasDeathInfo")]
|
||||
public ref bool HasDeathInfo => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bHasDeathInfo");
|
||||
|
||||
// m_flDeathInfoTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flDeathInfoTime")]
|
||||
public ref float DeathInfoTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flDeathInfoTime");
|
||||
|
||||
// m_vecDeathInfoOrigin
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_vecDeathInfoOrigin")]
|
||||
public Vector DeathInfoOrigin => Schema.GetDeclaredClass<Vector>(this.Handle, "CCSPlayerPawnBase", "m_vecDeathInfoOrigin");
|
||||
|
||||
// m_bKilledByHeadshot
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bKilledByHeadshot")]
|
||||
public ref bool KilledByHeadshot => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bKilledByHeadshot");
|
||||
|
||||
// m_LastHitBox
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_LastHitBox")]
|
||||
public ref Int32 LastHitBox => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_LastHitBox");
|
||||
|
||||
// m_LastHealth
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_LastHealth")]
|
||||
public ref Int32 LastHealth => ref Schema.GetRef<Int32>(this.Handle, "CCSPlayerPawnBase", "m_LastHealth");
|
||||
|
||||
// m_flLastCollisionCeiling
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastCollisionCeiling")]
|
||||
public ref float LastCollisionCeiling => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastCollisionCeiling");
|
||||
|
||||
// m_flLastCollisionCeilingChangeTime
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_flLastCollisionCeilingChangeTime")]
|
||||
public ref float LastCollisionCeilingChangeTime => ref Schema.GetRef<float>(this.Handle, "CCSPlayerPawnBase", "m_flLastCollisionCeilingChangeTime");
|
||||
|
||||
// m_pBot
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_pBot")]
|
||||
public CCSBot? Bot => Schema.GetPointer<CCSBot>(this.Handle, "CCSPlayerPawnBase", "m_pBot");
|
||||
|
||||
// m_bBotAllowActive
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bBotAllowActive")]
|
||||
public ref bool BotAllowActive => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bBotAllowActive");
|
||||
|
||||
// m_bCommittingSuicideOnTeamChange
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_bCommittingSuicideOnTeamChange")]
|
||||
public ref bool CommittingSuicideOnTeamChange => ref Schema.GetRef<bool>(this.Handle, "CCSPlayerPawnBase", "m_bCommittingSuicideOnTeamChange");
|
||||
|
||||
// m_hOriginalController
|
||||
[SchemaMember("CCSPlayerPawnBase", "m_hOriginalController")]
|
||||
public CHandle<CCSPlayerController> OriginalController => Schema.GetDeclaredClass<CHandle<CCSPlayerController>>(this.Handle, "CCSPlayerPawnBase", "m_hOriginalController");
|
||||
|
||||
}
|
||||
|
||||
@@ -26,10 +26,6 @@ public partial class CCSPlayer_UseServices : CPlayer_UseServices
|
||||
[SchemaMember("CCSPlayer_UseServices", "m_flLastUseTimeStamp")]
|
||||
public ref float LastUseTimeStamp => ref Schema.GetRef<float>(this.Handle, "CCSPlayer_UseServices", "m_flLastUseTimeStamp");
|
||||
|
||||
// m_flTimeStartedHoldingUse
|
||||
[SchemaMember("CCSPlayer_UseServices", "m_flTimeStartedHoldingUse")]
|
||||
public ref float TimeStartedHoldingUse => ref Schema.GetRef<float>(this.Handle, "CCSPlayer_UseServices", "m_flTimeStartedHoldingUse");
|
||||
|
||||
// m_flTimeLastUsedWindow
|
||||
[SchemaMember("CCSPlayer_UseServices", "m_flTimeLastUsedWindow")]
|
||||
public ref float TimeLastUsedWindow => ref Schema.GetRef<float>(this.Handle, "CCSPlayer_UseServices", "m_flTimeLastUsedWindow");
|
||||
|
||||
@@ -66,6 +66,10 @@ public partial class CCSPlayer_WeaponServices : CPlayer_WeaponServices
|
||||
[SchemaMember("CCSPlayer_WeaponServices", "m_bDisableAutoDeploy")]
|
||||
public ref bool DisableAutoDeploy => ref Schema.GetRef<bool>(this.Handle, "CCSPlayer_WeaponServices", "m_bDisableAutoDeploy");
|
||||
|
||||
// m_bIsPickingUpGroundWeapon
|
||||
[SchemaMember("CCSPlayer_WeaponServices", "m_bIsPickingUpGroundWeapon")]
|
||||
public ref bool IsPickingUpGroundWeapon => ref Schema.GetRef<bool>(this.Handle, "CCSPlayer_WeaponServices", "m_bIsPickingUpGroundWeapon");
|
||||
|
||||
// m_nOldShootPositionHistoryCount
|
||||
[SchemaMember("CCSPlayer_WeaponServices", "m_nOldShootPositionHistoryCount")]
|
||||
public ref UInt32 OldShootPositionHistoryCount => ref Schema.GetRef<UInt32>(this.Handle, "CCSPlayer_WeaponServices", "m_nOldShootPositionHistoryCount");
|
||||
|
||||
@@ -194,6 +194,14 @@ public partial class CCSWeaponBase : CBasePlayerWeapon
|
||||
[SchemaMember("CCSWeaponBase", "m_iOriginalTeamNumber")]
|
||||
public ref Int32 OriginalTeamNumber => ref Schema.GetRef<Int32>(this.Handle, "CCSWeaponBase", "m_iOriginalTeamNumber");
|
||||
|
||||
// m_iMostRecentTeamNumber
|
||||
[SchemaMember("CCSWeaponBase", "m_iMostRecentTeamNumber")]
|
||||
public ref Int32 MostRecentTeamNumber => ref Schema.GetRef<Int32>(this.Handle, "CCSWeaponBase", "m_iMostRecentTeamNumber");
|
||||
|
||||
// m_bDroppedNearBuyZone
|
||||
[SchemaMember("CCSWeaponBase", "m_bDroppedNearBuyZone")]
|
||||
public ref bool DroppedNearBuyZone => ref Schema.GetRef<bool>(this.Handle, "CCSWeaponBase", "m_bDroppedNearBuyZone");
|
||||
|
||||
// m_flNextAttackRenderTimeOffset
|
||||
[SchemaMember("CCSWeaponBase", "m_flNextAttackRenderTimeOffset")]
|
||||
public ref float NextAttackRenderTimeOffset => ref Schema.GetRef<float>(this.Handle, "CCSWeaponBase", "m_flNextAttackRenderTimeOffset");
|
||||
|
||||
@@ -22,13 +22,9 @@ public partial class CChicken : CDynamicProp
|
||||
[SchemaMember("CChicken", "m_AttributeManager")]
|
||||
public CAttributeContainer AttributeManager => Schema.GetDeclaredClass<CAttributeContainer>(this.Handle, "CChicken", "m_AttributeManager");
|
||||
|
||||
// m_OriginalOwnerXuidLow
|
||||
[SchemaMember("CChicken", "m_OriginalOwnerXuidLow")]
|
||||
public ref UInt32 OriginalOwnerXuidLow => ref Schema.GetRef<UInt32>(this.Handle, "CChicken", "m_OriginalOwnerXuidLow");
|
||||
|
||||
// m_OriginalOwnerXuidHigh
|
||||
[SchemaMember("CChicken", "m_OriginalOwnerXuidHigh")]
|
||||
public ref UInt32 OriginalOwnerXuidHigh => ref Schema.GetRef<UInt32>(this.Handle, "CChicken", "m_OriginalOwnerXuidHigh");
|
||||
// m_sActivityFinishedTag
|
||||
[SchemaMember("CChicken", "m_sActivityFinishedTag")]
|
||||
public CUtlStringToken ActivityFinishedTag => Schema.GetDeclaredClass<CUtlStringToken>(this.Handle, "CChicken", "m_sActivityFinishedTag");
|
||||
|
||||
// m_updateTimer
|
||||
[SchemaMember("CChicken", "m_updateTimer")]
|
||||
@@ -54,9 +50,13 @@ public partial class CChicken : CDynamicProp
|
||||
[SchemaMember("CChicken", "m_vFallVelocity")]
|
||||
public Vector FallVelocity => Schema.GetDeclaredClass<Vector>(this.Handle, "CChicken", "m_vFallVelocity");
|
||||
|
||||
// m_activity
|
||||
[SchemaMember("CChicken", "m_activity")]
|
||||
public ref ChickenActivity Activity => ref Schema.GetRef<ChickenActivity>(this.Handle, "CChicken", "m_activity");
|
||||
// m_desiredActivity
|
||||
[SchemaMember("CChicken", "m_desiredActivity")]
|
||||
public ref ChickenActivity DesiredActivity => ref Schema.GetRef<ChickenActivity>(this.Handle, "CChicken", "m_desiredActivity");
|
||||
|
||||
// m_currentActivity
|
||||
[SchemaMember("CChicken", "m_currentActivity")]
|
||||
public ref ChickenActivity CurrentActivity => ref Schema.GetRef<ChickenActivity>(this.Handle, "CChicken", "m_currentActivity");
|
||||
|
||||
// m_activityTimer
|
||||
[SchemaMember("CChicken", "m_activityTimer")]
|
||||
|
||||
@@ -20,11 +20,11 @@ public partial class CDamageRecord : NativeObject
|
||||
|
||||
// m_PlayerDamager
|
||||
[SchemaMember("CDamageRecord", "m_PlayerDamager")]
|
||||
public CHandle<CCSPlayerPawnBase> PlayerDamager => Schema.GetDeclaredClass<CHandle<CCSPlayerPawnBase>>(this.Handle, "CDamageRecord", "m_PlayerDamager");
|
||||
public CHandle<CCSPlayerPawn> PlayerDamager => Schema.GetDeclaredClass<CHandle<CCSPlayerPawn>>(this.Handle, "CDamageRecord", "m_PlayerDamager");
|
||||
|
||||
// m_PlayerRecipient
|
||||
[SchemaMember("CDamageRecord", "m_PlayerRecipient")]
|
||||
public CHandle<CCSPlayerPawnBase> PlayerRecipient => Schema.GetDeclaredClass<CHandle<CCSPlayerPawnBase>>(this.Handle, "CDamageRecord", "m_PlayerRecipient");
|
||||
public CHandle<CCSPlayerPawn> PlayerRecipient => Schema.GetDeclaredClass<CHandle<CCSPlayerPawn>>(this.Handle, "CDamageRecord", "m_PlayerRecipient");
|
||||
|
||||
// m_hPlayerControllerDamager
|
||||
[SchemaMember("CDamageRecord", "m_hPlayerControllerDamager")]
|
||||
|
||||
@@ -18,104 +18,104 @@ public partial class CEnvCombinedLightProbeVolume : CBaseEntity
|
||||
{
|
||||
public CEnvCombinedLightProbeVolume (IntPtr pointer) : base(pointer) {}
|
||||
|
||||
// m_Color
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Color")]
|
||||
public Color Color
|
||||
// m_Entity_Color
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_Color")]
|
||||
public Color Entity_Color
|
||||
{
|
||||
get { return Schema.GetCustomMarshalledType<Color>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Color"); }
|
||||
set { Schema.SetCustomMarshalledType<Color>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Color", value); }
|
||||
get { return Schema.GetCustomMarshalledType<Color>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_Color"); }
|
||||
set { Schema.SetCustomMarshalledType<Color>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_Color", value); }
|
||||
}
|
||||
|
||||
// m_flBrightness
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_flBrightness")]
|
||||
public ref float Brightness => ref Schema.GetRef<float>(this.Handle, "CEnvCombinedLightProbeVolume", "m_flBrightness");
|
||||
// m_Entity_flBrightness
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_flBrightness")]
|
||||
public ref float Entity_flBrightness => ref Schema.GetRef<float>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_flBrightness");
|
||||
|
||||
// m_hCubemapTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_hCubemapTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> CubemapTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCombinedLightProbeVolume", "m_hCubemapTexture");
|
||||
// m_Entity_hCubemapTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_hCubemapTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> Entity_hCubemapTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_hCubemapTexture");
|
||||
|
||||
// m_bCustomCubemapTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_bCustomCubemapTexture")]
|
||||
public ref bool CustomCubemapTexture => ref Schema.GetRef<bool>(this.Handle, "CEnvCombinedLightProbeVolume", "m_bCustomCubemapTexture");
|
||||
// m_Entity_bCustomCubemapTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_bCustomCubemapTexture")]
|
||||
public ref bool Entity_bCustomCubemapTexture => ref Schema.GetRef<bool>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_bCustomCubemapTexture");
|
||||
|
||||
// m_hLightProbeTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_hLightProbeTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> LightProbeTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCombinedLightProbeVolume", "m_hLightProbeTexture");
|
||||
// m_Entity_hLightProbeTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_hLightProbeTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> Entity_hLightProbeTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_hLightProbeTexture");
|
||||
|
||||
// m_hLightProbeDirectLightIndicesTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_hLightProbeDirectLightIndicesTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> LightProbeDirectLightIndicesTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCombinedLightProbeVolume", "m_hLightProbeDirectLightIndicesTexture");
|
||||
// m_Entity_hLightProbeDirectLightIndicesTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_hLightProbeDirectLightIndicesTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> Entity_hLightProbeDirectLightIndicesTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_hLightProbeDirectLightIndicesTexture");
|
||||
|
||||
// m_hLightProbeDirectLightScalarsTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_hLightProbeDirectLightScalarsTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> LightProbeDirectLightScalarsTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCombinedLightProbeVolume", "m_hLightProbeDirectLightScalarsTexture");
|
||||
// m_Entity_hLightProbeDirectLightScalarsTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_hLightProbeDirectLightScalarsTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> Entity_hLightProbeDirectLightScalarsTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_hLightProbeDirectLightScalarsTexture");
|
||||
|
||||
// m_hLightProbeDirectLightShadowsTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_hLightProbeDirectLightShadowsTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> LightProbeDirectLightShadowsTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCombinedLightProbeVolume", "m_hLightProbeDirectLightShadowsTexture");
|
||||
// m_Entity_hLightProbeDirectLightShadowsTexture
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_hLightProbeDirectLightShadowsTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> Entity_hLightProbeDirectLightShadowsTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_hLightProbeDirectLightShadowsTexture");
|
||||
|
||||
// m_vBoxMins
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_vBoxMins")]
|
||||
public Vector BoxMins => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCombinedLightProbeVolume", "m_vBoxMins");
|
||||
// m_Entity_vBoxMins
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_vBoxMins")]
|
||||
public Vector Entity_vBoxMins => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_vBoxMins");
|
||||
|
||||
// m_vBoxMaxs
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_vBoxMaxs")]
|
||||
public Vector BoxMaxs => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCombinedLightProbeVolume", "m_vBoxMaxs");
|
||||
// m_Entity_vBoxMaxs
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_vBoxMaxs")]
|
||||
public Vector Entity_vBoxMaxs => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_vBoxMaxs");
|
||||
|
||||
// m_bMoveable
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_bMoveable")]
|
||||
public ref bool Moveable => ref Schema.GetRef<bool>(this.Handle, "CEnvCombinedLightProbeVolume", "m_bMoveable");
|
||||
// m_Entity_bMoveable
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_bMoveable")]
|
||||
public ref bool Entity_bMoveable => ref Schema.GetRef<bool>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_bMoveable");
|
||||
|
||||
// m_nHandshake
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_nHandshake")]
|
||||
public ref Int32 Handshake => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_nHandshake");
|
||||
// m_Entity_nHandshake
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_nHandshake")]
|
||||
public ref Int32 Entity_nHandshake => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_nHandshake");
|
||||
|
||||
// m_nEnvCubeMapArrayIndex
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_nEnvCubeMapArrayIndex")]
|
||||
public ref Int32 EnvCubeMapArrayIndex => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_nEnvCubeMapArrayIndex");
|
||||
// m_Entity_nEnvCubeMapArrayIndex
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_nEnvCubeMapArrayIndex")]
|
||||
public ref Int32 Entity_nEnvCubeMapArrayIndex => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_nEnvCubeMapArrayIndex");
|
||||
|
||||
// m_nPriority
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_nPriority")]
|
||||
public ref Int32 Priority => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_nPriority");
|
||||
// m_Entity_nPriority
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_nPriority")]
|
||||
public ref Int32 Entity_nPriority => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_nPriority");
|
||||
|
||||
// m_bStartDisabled
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_bStartDisabled")]
|
||||
public ref bool StartDisabled => ref Schema.GetRef<bool>(this.Handle, "CEnvCombinedLightProbeVolume", "m_bStartDisabled");
|
||||
// m_Entity_bStartDisabled
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_bStartDisabled")]
|
||||
public ref bool Entity_bStartDisabled => ref Schema.GetRef<bool>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_bStartDisabled");
|
||||
|
||||
// m_flEdgeFadeDist
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_flEdgeFadeDist")]
|
||||
public ref float EdgeFadeDist => ref Schema.GetRef<float>(this.Handle, "CEnvCombinedLightProbeVolume", "m_flEdgeFadeDist");
|
||||
// m_Entity_flEdgeFadeDist
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_flEdgeFadeDist")]
|
||||
public ref float Entity_flEdgeFadeDist => ref Schema.GetRef<float>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_flEdgeFadeDist");
|
||||
|
||||
// m_vEdgeFadeDists
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_vEdgeFadeDists")]
|
||||
public Vector EdgeFadeDists => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCombinedLightProbeVolume", "m_vEdgeFadeDists");
|
||||
// m_Entity_vEdgeFadeDists
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_vEdgeFadeDists")]
|
||||
public Vector Entity_vEdgeFadeDists => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_vEdgeFadeDists");
|
||||
|
||||
// m_nLightProbeSizeX
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_nLightProbeSizeX")]
|
||||
public ref Int32 LightProbeSizeX => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_nLightProbeSizeX");
|
||||
// m_Entity_nLightProbeSizeX
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeSizeX")]
|
||||
public ref Int32 Entity_nLightProbeSizeX => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeSizeX");
|
||||
|
||||
// m_nLightProbeSizeY
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_nLightProbeSizeY")]
|
||||
public ref Int32 LightProbeSizeY => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_nLightProbeSizeY");
|
||||
// m_Entity_nLightProbeSizeY
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeSizeY")]
|
||||
public ref Int32 Entity_nLightProbeSizeY => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeSizeY");
|
||||
|
||||
// m_nLightProbeSizeZ
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_nLightProbeSizeZ")]
|
||||
public ref Int32 LightProbeSizeZ => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_nLightProbeSizeZ");
|
||||
// m_Entity_nLightProbeSizeZ
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeSizeZ")]
|
||||
public ref Int32 Entity_nLightProbeSizeZ => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeSizeZ");
|
||||
|
||||
// m_nLightProbeAtlasX
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_nLightProbeAtlasX")]
|
||||
public ref Int32 LightProbeAtlasX => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_nLightProbeAtlasX");
|
||||
// m_Entity_nLightProbeAtlasX
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeAtlasX")]
|
||||
public ref Int32 Entity_nLightProbeAtlasX => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeAtlasX");
|
||||
|
||||
// m_nLightProbeAtlasY
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_nLightProbeAtlasY")]
|
||||
public ref Int32 LightProbeAtlasY => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_nLightProbeAtlasY");
|
||||
// m_Entity_nLightProbeAtlasY
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeAtlasY")]
|
||||
public ref Int32 Entity_nLightProbeAtlasY => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeAtlasY");
|
||||
|
||||
// m_nLightProbeAtlasZ
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_nLightProbeAtlasZ")]
|
||||
public ref Int32 LightProbeAtlasZ => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_nLightProbeAtlasZ");
|
||||
// m_Entity_nLightProbeAtlasZ
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeAtlasZ")]
|
||||
public ref Int32 Entity_nLightProbeAtlasZ => ref Schema.GetRef<Int32>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_nLightProbeAtlasZ");
|
||||
|
||||
// m_bEnabled
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_bEnabled")]
|
||||
public ref bool Enabled => ref Schema.GetRef<bool>(this.Handle, "CEnvCombinedLightProbeVolume", "m_bEnabled");
|
||||
// m_Entity_bEnabled
|
||||
[SchemaMember("CEnvCombinedLightProbeVolume", "m_Entity_bEnabled")]
|
||||
public ref bool Entity_bEnabled => ref Schema.GetRef<bool>(this.Handle, "CEnvCombinedLightProbeVolume", "m_Entity_bEnabled");
|
||||
|
||||
}
|
||||
|
||||
@@ -18,76 +18,76 @@ public partial class CEnvCubemap : CBaseEntity
|
||||
{
|
||||
public CEnvCubemap (IntPtr pointer) : base(pointer) {}
|
||||
|
||||
// m_hCubemapTexture
|
||||
[SchemaMember("CEnvCubemap", "m_hCubemapTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> CubemapTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCubemap", "m_hCubemapTexture");
|
||||
// m_Entity_hCubemapTexture
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_hCubemapTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> Entity_hCubemapTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvCubemap", "m_Entity_hCubemapTexture");
|
||||
|
||||
// m_bCustomCubemapTexture
|
||||
[SchemaMember("CEnvCubemap", "m_bCustomCubemapTexture")]
|
||||
public ref bool CustomCubemapTexture => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_bCustomCubemapTexture");
|
||||
// m_Entity_bCustomCubemapTexture
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_bCustomCubemapTexture")]
|
||||
public ref bool Entity_bCustomCubemapTexture => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_Entity_bCustomCubemapTexture");
|
||||
|
||||
// m_flInfluenceRadius
|
||||
[SchemaMember("CEnvCubemap", "m_flInfluenceRadius")]
|
||||
public ref float InfluenceRadius => ref Schema.GetRef<float>(this.Handle, "CEnvCubemap", "m_flInfluenceRadius");
|
||||
// m_Entity_flInfluenceRadius
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_flInfluenceRadius")]
|
||||
public ref float Entity_flInfluenceRadius => ref Schema.GetRef<float>(this.Handle, "CEnvCubemap", "m_Entity_flInfluenceRadius");
|
||||
|
||||
// m_vBoxProjectMins
|
||||
[SchemaMember("CEnvCubemap", "m_vBoxProjectMins")]
|
||||
public Vector BoxProjectMins => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCubemap", "m_vBoxProjectMins");
|
||||
// m_Entity_vBoxProjectMins
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_vBoxProjectMins")]
|
||||
public Vector Entity_vBoxProjectMins => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCubemap", "m_Entity_vBoxProjectMins");
|
||||
|
||||
// m_vBoxProjectMaxs
|
||||
[SchemaMember("CEnvCubemap", "m_vBoxProjectMaxs")]
|
||||
public Vector BoxProjectMaxs => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCubemap", "m_vBoxProjectMaxs");
|
||||
// m_Entity_vBoxProjectMaxs
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_vBoxProjectMaxs")]
|
||||
public Vector Entity_vBoxProjectMaxs => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCubemap", "m_Entity_vBoxProjectMaxs");
|
||||
|
||||
// m_bMoveable
|
||||
[SchemaMember("CEnvCubemap", "m_bMoveable")]
|
||||
public ref bool Moveable => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_bMoveable");
|
||||
// m_Entity_bMoveable
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_bMoveable")]
|
||||
public ref bool Entity_bMoveable => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_Entity_bMoveable");
|
||||
|
||||
// m_nHandshake
|
||||
[SchemaMember("CEnvCubemap", "m_nHandshake")]
|
||||
public ref Int32 Handshake => ref Schema.GetRef<Int32>(this.Handle, "CEnvCubemap", "m_nHandshake");
|
||||
// m_Entity_nHandshake
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_nHandshake")]
|
||||
public ref Int32 Entity_nHandshake => ref Schema.GetRef<Int32>(this.Handle, "CEnvCubemap", "m_Entity_nHandshake");
|
||||
|
||||
// m_nEnvCubeMapArrayIndex
|
||||
[SchemaMember("CEnvCubemap", "m_nEnvCubeMapArrayIndex")]
|
||||
public ref Int32 EnvCubeMapArrayIndex => ref Schema.GetRef<Int32>(this.Handle, "CEnvCubemap", "m_nEnvCubeMapArrayIndex");
|
||||
// m_Entity_nEnvCubeMapArrayIndex
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_nEnvCubeMapArrayIndex")]
|
||||
public ref Int32 Entity_nEnvCubeMapArrayIndex => ref Schema.GetRef<Int32>(this.Handle, "CEnvCubemap", "m_Entity_nEnvCubeMapArrayIndex");
|
||||
|
||||
// m_nPriority
|
||||
[SchemaMember("CEnvCubemap", "m_nPriority")]
|
||||
public ref Int32 Priority => ref Schema.GetRef<Int32>(this.Handle, "CEnvCubemap", "m_nPriority");
|
||||
// m_Entity_nPriority
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_nPriority")]
|
||||
public ref Int32 Entity_nPriority => ref Schema.GetRef<Int32>(this.Handle, "CEnvCubemap", "m_Entity_nPriority");
|
||||
|
||||
// m_flEdgeFadeDist
|
||||
[SchemaMember("CEnvCubemap", "m_flEdgeFadeDist")]
|
||||
public ref float EdgeFadeDist => ref Schema.GetRef<float>(this.Handle, "CEnvCubemap", "m_flEdgeFadeDist");
|
||||
// m_Entity_flEdgeFadeDist
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_flEdgeFadeDist")]
|
||||
public ref float Entity_flEdgeFadeDist => ref Schema.GetRef<float>(this.Handle, "CEnvCubemap", "m_Entity_flEdgeFadeDist");
|
||||
|
||||
// m_vEdgeFadeDists
|
||||
[SchemaMember("CEnvCubemap", "m_vEdgeFadeDists")]
|
||||
public Vector EdgeFadeDists => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCubemap", "m_vEdgeFadeDists");
|
||||
// m_Entity_vEdgeFadeDists
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_vEdgeFadeDists")]
|
||||
public Vector Entity_vEdgeFadeDists => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvCubemap", "m_Entity_vEdgeFadeDists");
|
||||
|
||||
// m_flDiffuseScale
|
||||
[SchemaMember("CEnvCubemap", "m_flDiffuseScale")]
|
||||
public ref float DiffuseScale => ref Schema.GetRef<float>(this.Handle, "CEnvCubemap", "m_flDiffuseScale");
|
||||
// m_Entity_flDiffuseScale
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_flDiffuseScale")]
|
||||
public ref float Entity_flDiffuseScale => ref Schema.GetRef<float>(this.Handle, "CEnvCubemap", "m_Entity_flDiffuseScale");
|
||||
|
||||
// m_bStartDisabled
|
||||
[SchemaMember("CEnvCubemap", "m_bStartDisabled")]
|
||||
public ref bool StartDisabled => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_bStartDisabled");
|
||||
// m_Entity_bStartDisabled
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_bStartDisabled")]
|
||||
public ref bool Entity_bStartDisabled => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_Entity_bStartDisabled");
|
||||
|
||||
// m_bDefaultEnvMap
|
||||
[SchemaMember("CEnvCubemap", "m_bDefaultEnvMap")]
|
||||
public ref bool DefaultEnvMap => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_bDefaultEnvMap");
|
||||
// m_Entity_bDefaultEnvMap
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_bDefaultEnvMap")]
|
||||
public ref bool Entity_bDefaultEnvMap => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_Entity_bDefaultEnvMap");
|
||||
|
||||
// m_bDefaultSpecEnvMap
|
||||
[SchemaMember("CEnvCubemap", "m_bDefaultSpecEnvMap")]
|
||||
public ref bool DefaultSpecEnvMap => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_bDefaultSpecEnvMap");
|
||||
// m_Entity_bDefaultSpecEnvMap
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_bDefaultSpecEnvMap")]
|
||||
public ref bool Entity_bDefaultSpecEnvMap => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_Entity_bDefaultSpecEnvMap");
|
||||
|
||||
// m_bIndoorCubeMap
|
||||
[SchemaMember("CEnvCubemap", "m_bIndoorCubeMap")]
|
||||
public ref bool IndoorCubeMap => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_bIndoorCubeMap");
|
||||
// m_Entity_bIndoorCubeMap
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_bIndoorCubeMap")]
|
||||
public ref bool Entity_bIndoorCubeMap => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_Entity_bIndoorCubeMap");
|
||||
|
||||
// m_bCopyDiffuseFromDefaultCubemap
|
||||
[SchemaMember("CEnvCubemap", "m_bCopyDiffuseFromDefaultCubemap")]
|
||||
public ref bool CopyDiffuseFromDefaultCubemap => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_bCopyDiffuseFromDefaultCubemap");
|
||||
// m_Entity_bCopyDiffuseFromDefaultCubemap
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_bCopyDiffuseFromDefaultCubemap")]
|
||||
public ref bool Entity_bCopyDiffuseFromDefaultCubemap => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_Entity_bCopyDiffuseFromDefaultCubemap");
|
||||
|
||||
// m_bEnabled
|
||||
[SchemaMember("CEnvCubemap", "m_bEnabled")]
|
||||
public ref bool Enabled => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_bEnabled");
|
||||
// m_Entity_bEnabled
|
||||
[SchemaMember("CEnvCubemap", "m_Entity_bEnabled")]
|
||||
public ref bool Entity_bEnabled => ref Schema.GetRef<bool>(this.Handle, "CEnvCubemap", "m_Entity_bEnabled");
|
||||
|
||||
}
|
||||
|
||||
@@ -18,72 +18,72 @@ public partial class CEnvLightProbeVolume : CBaseEntity
|
||||
{
|
||||
public CEnvLightProbeVolume (IntPtr pointer) : base(pointer) {}
|
||||
|
||||
// m_hLightProbeTexture
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_hLightProbeTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> LightProbeTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvLightProbeVolume", "m_hLightProbeTexture");
|
||||
// m_Entity_hLightProbeTexture
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_hLightProbeTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> Entity_hLightProbeTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvLightProbeVolume", "m_Entity_hLightProbeTexture");
|
||||
|
||||
// m_hLightProbeDirectLightIndicesTexture
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_hLightProbeDirectLightIndicesTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> LightProbeDirectLightIndicesTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvLightProbeVolume", "m_hLightProbeDirectLightIndicesTexture");
|
||||
// m_Entity_hLightProbeDirectLightIndicesTexture
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_hLightProbeDirectLightIndicesTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> Entity_hLightProbeDirectLightIndicesTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvLightProbeVolume", "m_Entity_hLightProbeDirectLightIndicesTexture");
|
||||
|
||||
// m_hLightProbeDirectLightScalarsTexture
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_hLightProbeDirectLightScalarsTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> LightProbeDirectLightScalarsTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvLightProbeVolume", "m_hLightProbeDirectLightScalarsTexture");
|
||||
// m_Entity_hLightProbeDirectLightScalarsTexture
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_hLightProbeDirectLightScalarsTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> Entity_hLightProbeDirectLightScalarsTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvLightProbeVolume", "m_Entity_hLightProbeDirectLightScalarsTexture");
|
||||
|
||||
// m_hLightProbeDirectLightShadowsTexture
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_hLightProbeDirectLightShadowsTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> LightProbeDirectLightShadowsTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvLightProbeVolume", "m_hLightProbeDirectLightShadowsTexture");
|
||||
// m_Entity_hLightProbeDirectLightShadowsTexture
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_hLightProbeDirectLightShadowsTexture")]
|
||||
public CStrongHandle<InfoForResourceTypeCTextureBase> Entity_hLightProbeDirectLightShadowsTexture => Schema.GetDeclaredClass<CStrongHandle<InfoForResourceTypeCTextureBase>>(this.Handle, "CEnvLightProbeVolume", "m_Entity_hLightProbeDirectLightShadowsTexture");
|
||||
|
||||
// m_vBoxMins
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_vBoxMins")]
|
||||
public Vector BoxMins => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvLightProbeVolume", "m_vBoxMins");
|
||||
// m_Entity_vBoxMins
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_vBoxMins")]
|
||||
public Vector Entity_vBoxMins => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvLightProbeVolume", "m_Entity_vBoxMins");
|
||||
|
||||
// m_vBoxMaxs
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_vBoxMaxs")]
|
||||
public Vector BoxMaxs => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvLightProbeVolume", "m_vBoxMaxs");
|
||||
// m_Entity_vBoxMaxs
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_vBoxMaxs")]
|
||||
public Vector Entity_vBoxMaxs => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvLightProbeVolume", "m_Entity_vBoxMaxs");
|
||||
|
||||
// m_bMoveable
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_bMoveable")]
|
||||
public ref bool Moveable => ref Schema.GetRef<bool>(this.Handle, "CEnvLightProbeVolume", "m_bMoveable");
|
||||
// m_Entity_bMoveable
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_bMoveable")]
|
||||
public ref bool Entity_bMoveable => ref Schema.GetRef<bool>(this.Handle, "CEnvLightProbeVolume", "m_Entity_bMoveable");
|
||||
|
||||
// m_nHandshake
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_nHandshake")]
|
||||
public ref Int32 Handshake => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_nHandshake");
|
||||
// m_Entity_nHandshake
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_nHandshake")]
|
||||
public ref Int32 Entity_nHandshake => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_Entity_nHandshake");
|
||||
|
||||
// m_nPriority
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_nPriority")]
|
||||
public ref Int32 Priority => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_nPriority");
|
||||
// m_Entity_nPriority
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_nPriority")]
|
||||
public ref Int32 Entity_nPriority => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_Entity_nPriority");
|
||||
|
||||
// m_bStartDisabled
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_bStartDisabled")]
|
||||
public ref bool StartDisabled => ref Schema.GetRef<bool>(this.Handle, "CEnvLightProbeVolume", "m_bStartDisabled");
|
||||
// m_Entity_bStartDisabled
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_bStartDisabled")]
|
||||
public ref bool Entity_bStartDisabled => ref Schema.GetRef<bool>(this.Handle, "CEnvLightProbeVolume", "m_Entity_bStartDisabled");
|
||||
|
||||
// m_nLightProbeSizeX
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_nLightProbeSizeX")]
|
||||
public ref Int32 LightProbeSizeX => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_nLightProbeSizeX");
|
||||
// m_Entity_nLightProbeSizeX
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_nLightProbeSizeX")]
|
||||
public ref Int32 Entity_nLightProbeSizeX => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_Entity_nLightProbeSizeX");
|
||||
|
||||
// m_nLightProbeSizeY
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_nLightProbeSizeY")]
|
||||
public ref Int32 LightProbeSizeY => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_nLightProbeSizeY");
|
||||
// m_Entity_nLightProbeSizeY
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_nLightProbeSizeY")]
|
||||
public ref Int32 Entity_nLightProbeSizeY => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_Entity_nLightProbeSizeY");
|
||||
|
||||
// m_nLightProbeSizeZ
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_nLightProbeSizeZ")]
|
||||
public ref Int32 LightProbeSizeZ => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_nLightProbeSizeZ");
|
||||
// m_Entity_nLightProbeSizeZ
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_nLightProbeSizeZ")]
|
||||
public ref Int32 Entity_nLightProbeSizeZ => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_Entity_nLightProbeSizeZ");
|
||||
|
||||
// m_nLightProbeAtlasX
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_nLightProbeAtlasX")]
|
||||
public ref Int32 LightProbeAtlasX => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_nLightProbeAtlasX");
|
||||
// m_Entity_nLightProbeAtlasX
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_nLightProbeAtlasX")]
|
||||
public ref Int32 Entity_nLightProbeAtlasX => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_Entity_nLightProbeAtlasX");
|
||||
|
||||
// m_nLightProbeAtlasY
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_nLightProbeAtlasY")]
|
||||
public ref Int32 LightProbeAtlasY => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_nLightProbeAtlasY");
|
||||
// m_Entity_nLightProbeAtlasY
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_nLightProbeAtlasY")]
|
||||
public ref Int32 Entity_nLightProbeAtlasY => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_Entity_nLightProbeAtlasY");
|
||||
|
||||
// m_nLightProbeAtlasZ
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_nLightProbeAtlasZ")]
|
||||
public ref Int32 LightProbeAtlasZ => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_nLightProbeAtlasZ");
|
||||
// m_Entity_nLightProbeAtlasZ
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_nLightProbeAtlasZ")]
|
||||
public ref Int32 Entity_nLightProbeAtlasZ => ref Schema.GetRef<Int32>(this.Handle, "CEnvLightProbeVolume", "m_Entity_nLightProbeAtlasZ");
|
||||
|
||||
// m_bEnabled
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_bEnabled")]
|
||||
public ref bool Enabled => ref Schema.GetRef<bool>(this.Handle, "CEnvLightProbeVolume", "m_bEnabled");
|
||||
// m_Entity_bEnabled
|
||||
[SchemaMember("CEnvLightProbeVolume", "m_Entity_bEnabled")]
|
||||
public ref bool Entity_bEnabled => ref Schema.GetRef<bool>(this.Handle, "CEnvLightProbeVolume", "m_Entity_bEnabled");
|
||||
|
||||
}
|
||||
|
||||
@@ -26,9 +26,13 @@ public partial class CEnvMicrophone : CPointEntity
|
||||
[SchemaMember("CEnvMicrophone", "m_hMeasureTarget")]
|
||||
public CHandle<CBaseEntity> MeasureTarget => Schema.GetDeclaredClass<CHandle<CBaseEntity>>(this.Handle, "CEnvMicrophone", "m_hMeasureTarget");
|
||||
|
||||
// m_nSoundMask
|
||||
[SchemaMember("CEnvMicrophone", "m_nSoundMask")]
|
||||
public ref Int32 SoundMask => ref Schema.GetRef<Int32>(this.Handle, "CEnvMicrophone", "m_nSoundMask");
|
||||
// m_nSoundType
|
||||
[SchemaMember("CEnvMicrophone", "m_nSoundType")]
|
||||
public ref SoundTypes_t SoundType => ref Schema.GetRef<SoundTypes_t>(this.Handle, "CEnvMicrophone", "m_nSoundType");
|
||||
|
||||
// m_nSoundFlags
|
||||
[SchemaMember("CEnvMicrophone", "m_nSoundFlags")]
|
||||
public ref SoundFlags_t SoundFlags => ref Schema.GetRef<SoundFlags_t>(this.Handle, "CEnvMicrophone", "m_nSoundFlags");
|
||||
|
||||
// m_flSensitivity
|
||||
[SchemaMember("CEnvMicrophone", "m_flSensitivity")]
|
||||
|
||||
@@ -114,6 +114,10 @@ public partial class CEnvVolumetricFogController : CBaseEntity
|
||||
[SchemaMember("CEnvVolumetricFogController", "m_bEnableIndirect")]
|
||||
public ref bool EnableIndirect => ref Schema.GetRef<bool>(this.Handle, "CEnvVolumetricFogController", "m_bEnableIndirect");
|
||||
|
||||
// m_bIndirectUseLPVs
|
||||
[SchemaMember("CEnvVolumetricFogController", "m_bIndirectUseLPVs")]
|
||||
public ref bool IndirectUseLPVs => ref Schema.GetRef<bool>(this.Handle, "CEnvVolumetricFogController", "m_bIndirectUseLPVs");
|
||||
|
||||
// m_bIsMaster
|
||||
[SchemaMember("CEnvVolumetricFogController", "m_bIsMaster")]
|
||||
public ref bool IsMaster => ref Schema.GetRef<bool>(this.Handle, "CEnvVolumetricFogController", "m_bIsMaster");
|
||||
@@ -126,6 +130,18 @@ public partial class CEnvVolumetricFogController : CBaseEntity
|
||||
[SchemaMember("CEnvVolumetricFogController", "m_nForceRefreshCount")]
|
||||
public ref Int32 ForceRefreshCount => ref Schema.GetRef<Int32>(this.Handle, "CEnvVolumetricFogController", "m_nForceRefreshCount");
|
||||
|
||||
// m_fNoiseSpeed
|
||||
[SchemaMember("CEnvVolumetricFogController", "m_fNoiseSpeed")]
|
||||
public ref float NoiseSpeed => ref Schema.GetRef<float>(this.Handle, "CEnvVolumetricFogController", "m_fNoiseSpeed");
|
||||
|
||||
// m_fNoiseStrength
|
||||
[SchemaMember("CEnvVolumetricFogController", "m_fNoiseStrength")]
|
||||
public ref float NoiseStrength => ref Schema.GetRef<float>(this.Handle, "CEnvVolumetricFogController", "m_fNoiseStrength");
|
||||
|
||||
// m_vNoiseScale
|
||||
[SchemaMember("CEnvVolumetricFogController", "m_vNoiseScale")]
|
||||
public Vector NoiseScale => Schema.GetDeclaredClass<Vector>(this.Handle, "CEnvVolumetricFogController", "m_vNoiseScale");
|
||||
|
||||
// m_bFirstTime
|
||||
[SchemaMember("CEnvVolumetricFogController", "m_bFirstTime")]
|
||||
public ref bool FirstTime => ref Schema.GetRef<bool>(this.Handle, "CEnvVolumetricFogController", "m_bFirstTime");
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user