Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
[virtual_function]
[[set_name]]
offset_linux = 57
offset_windows = 17
offset_windows = 18
arguments = STRING
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[virtual_function]

# _ZN20CBaseCombatCharacter18OnTakeDamage_AliveERK15CTakeDamageInfo
[[on_take_damage_alive]]
offset_linux = 279
offset_windows = 278
arguments = POINTER
return_type = INT

# _ZN20CBaseCombatCharacter13Weapon_SwitchEP17CBaseCombatWeaponi
[[weapon_switch]]
offset_linux = 271
offset_windows = 270
arguments = POINTER, INT
return_type = BOOL
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

# _ZN17CBaseCombatWeapon13PrimaryAttackEv
[[primary_attack]]
offset_linux = 274
offset_windows = 273
offset_linux = 280
offset_windows = 279

# _ZN17CBaseCombatWeapon13SecondaryAttackEv
[[secondary_attack]]
offset_linux = 275
offset_windows = 274
offset_linux = 281
offset_windows = 280
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
[virtual_function]

# _ZN11CBaseEntity8SetModelEPKc
[[set_model]]
offset_linux = 27
offset_windows = 26
arguments = STRING

# _ZN11CBaseEntity9SetParentEPS_i
[[set_parent]]
offset_linux = 37
offset_windows = 36
arguments = POINTER, INT

# _ZN11CBaseEntity12OnTakeDamageERK15CTakeDamageInfo
[[on_take_damage]]
offset_linux = 65
offset_windows = 64
arguments = POINTER
return_type = INT

# _ZN11CBaseEntity8TeleportEPK6VectorPK6QAngleS2_
[[teleport]]
offset_linux = 111
offset_windows = 110
arguments = POINTER, POINTER, POINTER

# _ZN11CBaseEntity11SetTransmitEP18CCheckTransmitInfob
[[set_transmit]]
offset_linux = 23
offset_windows = 22
arguments = POINTER, BOOL

# _ZN11CBaseEntity10StartTouchEPS_
[[start_touch]]
offset_linux = 101
offset_windows = 100
arguments = POINTER

# _ZN11CBaseEntity5TouchEPS_
[[touch]]
offset_linux = 102
offset_windows = 101
arguments = POINTER

# _ZN11CBaseEntity8EndTouchEPS_
[[end_touch]]
offset_linux = 103
offset_windows = 102
arguments = POINTER

# _ZNK11CBasePlayer25PhysicsSolidMaskForEntityEv
[[get_solid_mask]]
offset_linux = 171
offset_windows = 170
return_type = UINT


[input]

dispatch_effect = DispatchEffect
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

# _ZN12CBaseGrenade8DetonateEv
[[detonate]]
offset_linux = 226
offset_windows = 225
offset_linux = 233
offset_windows = 232
Original file line number Diff line number Diff line change
@@ -1,25 +1,53 @@
[function]

[[increment_frag_count]]
identifier_windows = 55 8B EC 8B 45 08 01 81 F8 0C 00 00
identifier_linux = _ZN11CBasePlayer18IncrementFragCountEi
arguments = INT

[[increment_death_count]]
identifier_windows = 55 8B EC 8B 45 08 01 81 FC 0C 00 00
identifier_linux = _ZN11CBasePlayer19IncrementDeathCountEi
arguments = INT

[virtual_function]

# _ZN11CBasePlayer10BumpWeaponEP17CBaseCombatWeapon
[[bump_weapon]]
offset_linux = 398
offset_windows = 397
offset_linux = 405
offset_windows = 404
arguments = POINTER
return_type = BOOL

# _ZN11CBasePlayer13GiveNamedItemEPKci
[[give_named_item]]
offset_linux = 402
offset_windows = 401
offset_linux = 409
offset_windows = 408
arguments = STRING, INT
return_type = POINTER

# _ZN11CBasePlayer16PlayerRunCommandEP8CUserCmdP11IMoveHelper
[[run_command]]
offset_linux = 420
offset_windows = 419
offset_linux = 427
offset_windows = 426
arguments = POINTER, POINTER

# _ZN11CBasePlayer11Weapon_DropEP17CBaseCombatWeaponPK6VectorS4_
[[drop_weapon]]
offset_linux = 270
offset_windows = 269
arguments = POINTER, POINTER, POINTER

# _ZN11CBasePlayer8PreThinkEv
[[pre_think]]
offset_linux = 339
offset_windows = 338

# _ZN11CBasePlayer9PostThinkEv
[[post_think]]
offset_linux = 340
offset_windows = 339


[property]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
identifier_linux = _ZN9CCSPlayer7AutoBuyEv

[[buy_internal]]
identifier_windows = 55 8B EC 83 EC 28 89 4D F8
identifier_windows = 55 8B EC 83 EC 28 89 4D F8 6A 00
identifier_linux = _ZN9CCSPlayer26HandleCommand_Buy_InternalEPKc
arguments = STRING
return_type = INT
Expand All @@ -25,7 +25,7 @@
arguments = FLOAT

[[switch_team]]
identifier_windows = 55 8B EC 83 EC 7C 89 4D FC
identifier_windows = 55 8B EC 83 EC 5C 89 4D FC
identifier_linux = _ZN9CCSPlayer10SwitchTeamEi
arguments = INT

Expand All @@ -34,14 +34,14 @@

# _ZN9CCSPlayer12Weapon_EquipEP17CBaseCombatWeapon
[[equip_weapon]]
offset_linux = 262
offset_windows = 261
offset_linux = 268
offset_windows = 267
arguments = POINTER

# _ZN9CCSPlayer5BlindEfff
[[blind]]
offset_linux = 469
offset_windows = 466
offset_linux = 479
offset_windows = 476
arguments = FLOAT, FLOAT, FLOAT


Expand All @@ -50,20 +50,6 @@
on_rescue_zone_touch = OnRescueZoneTouch


# TODO: Remove when outdated.
[instance_attribute]

[[mvps]]
offset_windows = 6384
offset_linux = 6404
type = INT

[[clan_tag]]
offset_windows = 5628
offset_linux = 5648
type = STRING_ARRAY


[based_attribute]

[[mvps]]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# ../data/source-python/entity_output/orangebox/CBaseEntityOutput.ini

binary = server

[function]
[[fire_output]]
identifier_windows = 55 8B EC 81 EC 2A 2A 2A 2A 53 8B C1
arguments_linux = POINTER, POINTER, POINTER, FLOAT
arguments_windows = INT, INT, INT, INT, POINTER, POINTER, POINTER, FLOAT
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
menus
======

This page contains tutorials about the :mod:`menus` package.


Creating PagedMenu
--------------------------

This is a simple example to create paged menu

.. code-block:: python

import random

from commands.say import SayCommand

from menus import PagedMenu
from menus import PagedOption

from players.entity import Player


# Register menu command
@SayCommand(['menu', '/menu', '!menu'])
def say_command(command, index, teamonly):
# Send the menu
menu.send(index)
return False

def my_select_callback(menu, index, option):
'''
Called whenever a selection was made.
'''

# Shuffle the menu : D
random.shuffle(menu)

# Make it sticky
return menu

menu = PagedMenu(
title='Welcome menu',
description='Choose an option:',
select_callback=my_select_callback
)

# Add options from 1 to 20
for i in range(1, 20):
menu.append(PagedOption(f'{i}', i))

# Register close button to send back the menu
@menu.register_close_callback
def _on_close_menu(menu, index):
menu.send(index)


Creating SimpleMenu
--------------------------

This is a simple example to create simple menu

.. code-block:: python

import time

from commands.say import SayCommand

from menus import SimpleMenu
from menus import SimpleOption
from menus import Text

from messages import SayText2

from players.entity import Player

# Register menu command
@SayCommand(['menus', '/menus', '!menus'])
def say_menus_command(command, index, teamonly):
# Send the menu
menu.send(index)
return False

def my_menu_select_callback(menu, index, option):
'''
Called whenever a selection was made.
'''

if option.value == 'yes':
SayText2('Thank you for accepting the rules!').send(index)

# player have selected no option
else:
# Kick player for selecting no option
Player(index).kick('You have to accept the rules!')

menu = SimpleMenu()

# Tell the current time
menu.append(Text(f"Current Time: {time.strftime('%H:%M:%S')}"))

# Add empty line
menu.append(Text(' '))
menu.append(Text('Do you accept the rules?'))
menu.append(Text(' '))

# Add in menu options
menu.append(SimpleOption(1, 'Yes', 'yes'))
menu.append(SimpleOption(2, 'No', 'no'))

menu.select_callback=my_menu_select_callback


Creating ListMenu
--------------------------

This is a simple example to create list menu

.. code-block:: python

from commands.say import SayCommand

from menus import ListMenu
from menus import Text

# Register menu command
@SayCommand(['menus', '/menus', '!menus'])
def say_menus_command(command, index, teamonly):
# Send the menu
menu.send(index)
return False

menu = ListMenu()
# Add in menu text
menu.append(Text('This is a example text'))