Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
db1eae6
Moved url substring "/records" to kreedz.cfg
Psycrow101 May 25, 2022
b6a0ac9
Added ML for rec command
Psycrow101 May 25, 2022
a67ba22
Merge branch 'Theggv:master' into master
Psycrow101 May 26, 2022
ce64077
Merge branch 'Theggv:master' into master
Psycrow101 Jun 2, 2022
9c3182c
Add kz_end_timer native
Xelson Jun 19, 2022
4778b93
Add kz_in_hook and kz_in_noclip natives
Xelson Jun 20, 2022
f04121d
Fix player's death from func_doors with deadly dmg
Xelson Aug 21, 2022
f3eaeee
Merge branch 'Theggv:master' into master
Psycrow101 Sep 14, 2022
791c8f7
Turn on ENABLE_NUB_BOT
Xelson Nov 4, 2022
015bb95
Merge branch 'master' of github.com:Psycrow101/Kreedz
Xelson Nov 4, 2022
663b60d
Merge branch 'Theggv:master' into master
Psycrow101 Dec 5, 2022
a02cd2e
Merge branch 'Theggv:master' into master
Psycrow101 Dec 15, 2022
f1c3830
Merge branch 'Theggv:master' into master
Psycrow101 Jan 8, 2023
28e03b1
Reset noclip after timer start
Xelson Mar 1, 2023
b962f60
Merge branch 'Theggv:master' into master
Psycrow101 Mar 15, 2023
6ab3709
Renamed mpbhop to kz_mpbhop
Psycrow101 Mar 18, 2023
d6732da
Remove kreedz_api dep from mpbhop
Xelson Mar 18, 2023
f5a6327
Merge branch 'master' of github.com:Psycrow101/Kreedz
Xelson Mar 18, 2023
bc853aa
Fix mpbhop with disabled kzapi
Xelson Mar 18, 2023
40e5507
Merge branch 'master' of https://github.com/Psycrow101/Kreedz
Psycrow101 Apr 6, 2023
6b79691
Resolved conflicts
Psycrow101 Apr 6, 2023
459afa7
Removed extra check
Psycrow101 Apr 6, 2023
56be915
Added kz_enable_nub_bot cvar
Psycrow101 Apr 6, 2023
a1f5ba0
Moved kz_mpbhop to kreedz dir
Psycrow101 Apr 6, 2023
68d907d
Merge branch 'Theggv:master' into master
Psycrow101 Apr 6, 2023
67d3cf2
Merge branch 'master' of github.com:Psycrow101/Kreedz
Xelson Apr 10, 2023
4f4a9fa
Revert "Merge branch 'master' of github.com:Psycrow101/Kreedz"
Xelson Apr 10, 2023
1550c53
Merge branch 'Theggv:master' into master
Psycrow101 Jun 11, 2023
740e38f
Merge branch 'Theggv:master' into master
Psycrow101 Oct 24, 2023
389e2d6
Merge branch 'Theggv:master' into master
Psycrow101 Dec 31, 2023
5a53329
Merge branch 'Theggv:master' into master
Psycrow101 Aug 10, 2024
e76f01d
Fixed runtime errors with menus
Psycrow101 Aug 13, 2024
f83125c
Merge branch 'Theggv:master' into master
Psycrow101 Jan 22, 2025
1121371
Fixed invalid UQSTATS_JTYPE_MSCJ lang key
Psycrow101 Jul 8, 2025
c54c5b3
Merge branch 'Theggv:master' into master
Psycrow101 Sep 16, 2025
481fa92
Block weapon change while timer enabled
Psycrow101 May 7, 2026
fc047aa
Added block weapon change option
Theggv May 8, 2026
983d36b
Merge branch 'master' into block-weapon-change
Theggv May 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions assets/addons/amxmodx/data/lang/kreedz_lang.txt
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ SETTINGSMENU_OPT_GOTO = Allow teleport to you
SETTINGSMENU_OPT_RADIO = Radio commands
SETTINGSMENU_OPT_MKEY_OPEN_MENU = M key behavior: \ropen menu
SETTINGSMENU_OPT_MKEY_SPEC_CT = M key behavior: \ygo to spec/ct
SETTINGSMENU_OPT_BLOCKCHANGE = Block weapon change during run
SETTINGSMENU_ENABLE = enabled
SETTINGSMENU_DISABLE = disabled

Expand Down Expand Up @@ -142,6 +143,7 @@ SETTINGSMENU_OPT_GOTO = Разрешить телепорты к Вам
SETTINGSMENU_OPT_RADIO = Радио команды
SETTINGSMENU_OPT_MKEY_OPEN_MENU = Кнопка М: \rоткрыть главное меню
SETTINGSMENU_OPT_MKEY_SPEC_CT = Кнопка М: \yперейти в наблюдение
SETTINGSMENU_OPT_BLOCKCHANGE = Блокировать смену оружия
SETTINGSMENU_ENABLE = вкл
SETTINGSMENU_DISABLE = выкл

Expand Down Expand Up @@ -219,6 +221,7 @@ SETTINGSMENU_OPT_GOTO = 允许他人传送到你
SETTINGSMENU_OPT_RADIO = 无线电命令
SETTINGSMENU_OPT_MKEY_OPEN_MENU = M 键操作: \r开启菜单
SETTINGSMENU_OPT_MKEY_SPEC_CT = M 键操作: \y spec/ct
SETTINGSMENU_OPT_BLOCKCHANGE = 防止武器切換
SETTINGSMENU_ENABLE = 启用
SETTINGSMENU_DISABLE = 禁用

Expand Down
25 changes: 21 additions & 4 deletions src/scripts/kreedz/kz_settings.sma
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ enum OptionsEnum {
optIntMkeyBehavior,
optIntJumpStats,
optBoolSpecList,
optBoolBlockWeaponChange,
optBoolHideWeapon,
};

Expand All @@ -46,6 +47,7 @@ enum UserDataStruct {
bool:ud_showMenu,
bool:ud_allowGoto,
bool:ud_specList,
bool:ud_blockWeaponChange,
bool:ud_hideWeapon,

ud_mkeyBehavior,
Expand Down Expand Up @@ -151,6 +153,11 @@ public plugin_precache() {
// default: true
g_Options[optBoolSpecList] = register_players_option_cell("spec_list", FIELD_TYPE_BOOL, true);

// Block weapon change when timer is enabled:
//
// default: false
g_Options[optBoolBlockWeaponChange] = register_players_option_cell("block_weapon_change", FIELD_TYPE_BOOL, false);

// hide weapon model:
//
// default: false
Expand All @@ -170,6 +177,7 @@ public client_putinserver(id) {
g_UserData[id][ud_showMenu] = false;
g_UserData[id][ud_allowGoto] = true;
g_UserData[id][ud_specList] = true;
g_UserData[id][ud_blockWeaponChange] = false;
g_UserData[id][ud_hideWeapon] = false;

g_UserData[id][ud_mkeyBehavior] = 0;
Expand Down Expand Up @@ -230,6 +238,9 @@ public OnCellValueChanged(id, optionId, newValue) {
else if (optionId == g_Options[optBoolSpecList]) {
g_UserData[id][ud_specList] = !!newValue;
}
else if (optionId == g_Options[optBoolBlockWeaponChange]) {
g_UserData[id][ud_blockWeaponChange] = !!newValue;
}
else if (optionId == g_Options[optBoolHideWeapon]) {
g_UserData[id][ud_hideWeapon] = !!newValue;
if (newValue) {
Expand Down Expand Up @@ -286,7 +297,6 @@ stock settingsMenu(id, page = 0) {
addBoolOption(id, iMenu, szMsg, charsmax(szMsg), "SETTINGSMENU_OPT_FOG", g_UserData[id][ud_fog]);
addBoolOption(id, iMenu, szMsg, charsmax(szMsg), "SETTINGSMENU_OPT_GOTO", g_UserData[id][ud_allowGoto]);
addBoolOption(id, iMenu, szMsg, charsmax(szMsg), "SETTINGSMENU_OPT_RADIO", !g_UserData[id][ud_blockRadio]);
addBoolOption(id, iMenu, szMsg, charsmax(szMsg), "SETTINGSMENU_OPT_HIDEWEAPON", g_UserData[id][ud_hideWeapon]);

switch (g_UserData[id][ud_mkeyBehavior]) {
case 0: formatex(szMsg, charsmax(szMsg), "%L", id, "SETTINGSMENU_OPT_MKEY_OPEN_MENU");
Expand All @@ -295,6 +305,9 @@ stock settingsMenu(id, page = 0) {

menu_additem(iMenu, szMsg);

addBoolOption(id, iMenu, szMsg, charsmax(szMsg), "SETTINGSMENU_OPT_HIDEWEAPON", g_UserData[id][ud_hideWeapon]);
addBoolOption(id, iMenu, szMsg, charsmax(szMsg), "SETTINGSMENU_OPT_BLOCKCHANGE", g_UserData[id][ud_blockWeaponChange]);

formatex(szMsg, charsmax(szMsg), "%L", id, "BACK");
menu_setprop(iMenu, MPROP_BACKNAME, szMsg);

Expand Down Expand Up @@ -360,12 +373,16 @@ stock settingsMenu(id, page = 0) {
set_option_cell(id, g_Options[optBoolBlockRadio], g_UserData[id][ud_blockRadio]);
}
case 10: {
g_UserData[id][ud_mkeyBehavior] = (g_UserData[id][ud_mkeyBehavior] + 1) % 2;
set_option_cell(id, g_Options[optIntMkeyBehavior], g_UserData[id][ud_mkeyBehavior]);
}
case 11: {
g_UserData[id][ud_hideWeapon] = !g_UserData[id][ud_hideWeapon];
set_option_cell(id, g_Options[optBoolHideWeapon], g_UserData[id][ud_hideWeapon]);
}
case 11: {
g_UserData[id][ud_mkeyBehavior] = (g_UserData[id][ud_mkeyBehavior] + 1) % 2;
set_option_cell(id, g_Options[optIntMkeyBehavior], g_UserData[id][ud_mkeyBehavior]);
case 12: {
g_UserData[id][ud_blockWeaponChange] = !g_UserData[id][ud_blockWeaponChange];
set_option_cell(id, g_Options[optBoolBlockWeaponChange], g_UserData[id][ud_blockWeaponChange]);
}
}

Expand Down
23 changes: 23 additions & 0 deletions src/scripts/kreedz/kz_weapons.sma
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

#include <kreedz_api>
#include <kreedz_util>
#include <settings_api>

#define PLUGIN "[Kreedz] Weapons"
#define VERSION __DATE__
Expand All @@ -24,10 +25,17 @@
enum _:UserData {
ud_MinRank,
bool:ud_ResetMaxSpeedHookDisabled,
bool:ud_blockWeaponChange,
};

new g_UserData[MAX_PLAYERS + 1][UserData];

enum OptionsEnum {
optBoolBlockWeaponChange,
};

new g_Options[OptionsEnum];


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
Expand Down Expand Up @@ -60,6 +68,8 @@ public plugin_init() {
RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "HookResetMaxSpeed", 1);

RegisterHam(Ham_Spawn, "player", "ham_Spawn_Post", 1);

bindOptions();
}

public plugin_precache() {
Expand All @@ -68,6 +78,16 @@ public plugin_precache() {
}
}

bindOptions() {
g_Options[optBoolBlockWeaponChange] = find_option_by_name("block_weapon_change");
}

public OnCellValueChanged(id, optionId, newValue) {
if (optionId == g_Options[optBoolBlockWeaponChange]) {
g_UserData[id][ud_blockWeaponChange] = !!newValue;
}
}

/**
* ------------------------------------------------------------------
* Natives section
Expand Down Expand Up @@ -253,6 +273,9 @@ public ham_Other_CanHolster(iEnt) {
if (id < 1 || id > MaxClients || !is_user_alive(id))
return HAM_IGNORED;

if (!g_UserData[id][ud_blockWeaponChange])
return HAM_IGNORED;

if (kz_get_timer_state(id) == TIMER_ENABLED) {
SetHamReturnInteger(0);
return HAM_SUPERCEDE;
Expand Down
Loading