Обнуление оружия в начале каждого раунда

D1ones

Участник
Сообщения
1
Реакции
0
Приветствую c:
Прошу помощи, так как ещё новичок, как можно реализовать обнуление оружия в начале каждого раунда (у всех игроков)?
Заранее благодарю за любую помощь :ab:
 

teran

Участник
Сообщения
207
Реакции
44
Нашел это:
В конфиге:
wpn_enabled 1|0 вкл/выкл плагин
sm_cleanwpn_knives 1 - оставить ножи, 0 - убрать
 

Вложения

  • cleanwpn.sp
    2.1 КБ · Просмотры: 55

Yooki

Добрая душа
Сообщения
473
Реакции
169
Нашел это:
В конфиге:
wpn_enabled 1|0 вкл/выкл плагин
sm_cleanwpn_knives 1 - оставить ножи, 0 - убрать
дай пожалуйста скомпилированную версию ,выдает ошибку ( при компиляции ) и не работает сам плагин
--- Добавлено позже ---
а все понял, спасибо!
--- Добавлено позже ---
Нашел это:
В конфиге:
wpn_enabled 1|0 вкл/выкл плагин
sm_cleanwpn_knives 1 - оставить ножи, 0 - убрать
Извини, а ты не можешь изменить так, чтобы гранаты тоже оставались?
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
2 предупреждениями в компиляторе
PHP:
#include <sourcemod>
#include <sdktools>
#include <cstrike>

// Force 1.7 syntax
#pragma newdecls required

ConVar g_CvarEnabled, g_CvarKnives;

int g_iGrenadeOffsets[] = {15, 17, 16, 14, 18, 17};

public Plugin myinfo = 
{
	name = "Player Cleaner",
	description = "Clear player weapons on round start",
	author = "White Wolf (HLModders LLC)",
	version = "1.0.1",
	url = "http://steamcommunity.com/id/doctor_white http://tibari.ru http://hlmod.ru"
};

public void OnPluginStart()
{
	g_CvarEnabled = CreateConVar("sm_cleanwpn_enabled", "0", "Enable or disable plugin", 0, true, 0.0, true, 1.0);
	g_CvarKnives = CreateConVar("sm_cleanwpn_knives", "0", "Cleanup all wepaons but knives", 0, true, 0.0, true, 1.0);

	g_CvarEnabled.AddChangeHook(OnCvarChange);
	g_CvarKnives.AddChangeHook(OnCvarChange);

	HookEvent("player_spawn", Event_OnPlayerSpawn);

	AutoExecConfig(true, "cleanwpn");
}

public void OnCvarChange(ConVar cvar, const char[] oldValue, const char[] newValue)
{
	if (cvar == g_CvarEnabled) g_CvarEnabled.SetInt(StringToInt(newValue));
	else if (cvar == g_CvarKnives) g_CvarKnives.SetInt(StringToInt(newValue));
}

public void Event_OnPlayerSpawn(Event event, const char[] name, bool dontBroadcast)
{
	if (g_CvarEnabled.BoolValue)
	{
		int client = GetClientOfUserId(event.GetInt("userid"));

		for (int i = 0; i < 5; ++i)
		{
			if (i != 3)
				RemoveWeaponBySlot(client, i);
		}
		RemoveNades(client);
		if (g_CvarKnives.BoolValue)
			GivePlayerItem(client, "weapon_knife");
	}
}

stock void RemoveNades(int client)
{
	while (RemoveWeaponBySlot(client, 3))
	{
		for (int i = 0; i < 6; ++i)
			SetEntProp(client, Prop_Send, "m_iAmmo", 0, _, g_iGrenadeOffsets[i]);
	}
}

stock bool RemoveWeaponBySlot(int client, int slot)
{
	int entity = GetPlayerWeaponSlot(client, slot);
	if (entity != -1)
	{
		RemovePlayerItem(client, entity);
		AcceptEntityInput(entity, "Kill");
		return true;
	}

	return false;
}
 

yand3xmail

Участник
Сообщения
16
Реакции
1
@AlmazON, еще проще нельзя?
C-подобный:
#pragma semicolon 1
#pragma newdecls required

public void OnPluginStart() {
    HookEventEx("player_spawn", Event_PlayerSpawn, EventHookMode_Pre);
}

public void Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast){
    int client = GetClientOfUserId(event.GetInt("userid"));
    DisarmPlayer(client);
}

stock bool DisarmPlayer(int client){
    if (IsClientInGame(client) && IsPlayerAlive(client)){
        int entity = CreateEntityByName("player_weaponstrip");
        if (AcceptEntityInput(entity, "strip", client) && AcceptEntityInput(entity, "kill")){
            return true;
        }
        return false;
    }
    return false;
}
 
Сверху Снизу