/_Parlament_\
Участник
- Сообщения
- 134
- Реакции
- 9
Спавн ботов + повтор (хп скорость и тд)
Есть. И переименовать можно, и новые папки/файлы создать.команды , в SM типа переместить файл
люди добрые, напишите пожалуйста простой плагин, игрок(террорист) пишет команду например !s, у него пропадает нож и все оружие и взять он его уже не может, ну и скин становится черного цвета, когда т пишет !s для него в чат инфа: вы сдались, для кт: игрок (ник) сдался, заранее спс)
#pragma semicolon 1
#include <sdktools>
#include <sdkhooks>
new bool:b_s[MAXPLAYERS + 1];
// Список блокируемого оружия.
new const String:block_weapons_list[][] =
{
"ak47", "aug", "mp7", "mp9", "scar20", "deagle", "revolver",
"usp_silencer", "ump-45", "sawedoff", "nova", "negev",
"m249", "m4a1", "m4a1-silencer", "awp", "g3sg1", "ssg08",
"glock", "fiveseven", "cz75a", "elite", "decoy", "flashbang",
"galilar", "galil", "hkp2000", "incgrenade", "molotov", "hegrenade",
"c4", "smokegrenade", "sg556", "taser", "tec9", "p90", "tmp", "ump45",
"knife"
};
#define Weapon_Count sizeof(block_weapons_list)
public OnPluginStart()
{
RegConsoleCmd("sm_s", Cmd_S);
HookEvent("player_spawn", Player_Spawn);
}
public Action:Cmd_S(client, args)
{
if (client != 0)
{
if (IsClientInGame(client) && IsPlayerAlive(client) && GetClientTeam(client) == 2)
{
b_s[client] = true;
RemoveAllPlayersWeapons(client);
SetEntityRenderColor(client, 0, 0, 0, 255);
PrintToChatAll("%N сдался!");
}
}
}
// Запрещает использовать и поднимать запрещенное оружие.
public Action:WeaponEquip(client, weapon)
{
if(GetClientTeam(client) == 2 && b_s[client] == true)
{
decl String:blockWeapon[32];
GetEntityClassname(weapon, blockWeapon, sizeof(blockWeapon));
for(new i = 0; i < Weapon_Count; ++i)
{
if(strcmp(blockWeapon[7], block_weapons_list[i]) == 0)
{
return Plugin_Handled;
}
}
}
return Plugin_Continue;
}
public Player_Spawn(Handle:event, const String:name[], bool:dontBroadcast){
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if(IsClientInGame(client) && !IsFakeClient(client) && IsPlayerAlive(client) && GetClientTeam(client) == 2)
{
b_s[client] = false;
}
}
public OnClientPostAdminCheck(client)
{
SDKHook(client, SDKHook_WeaponEquip, WeaponEquip);
}
public OnClientDisconnect(client){
b_s[client] = false;
SDKUnhook(client, SDKHook_WeaponEquip, WeaponEquip);
}
/* Stocks */
stock RemoveAllPlayersWeapons(client)
{
new weaponindex;
for (new weaponslot = 0; weaponslot < 5; weaponslot++)
{
weaponindex = GetPlayerWeaponSlot(client, weaponslot);
if (weaponindex != -1)
{
Util_RemovePlayerItem(client, weaponindex);
}
}
WepLib_GrenadeStripAll(client);
}
stock Util_RemovePlayerItem(client, weaponindex)
{
RemovePlayerItem(client, weaponindex);
RemoveEdict(weaponindex);
}
stock WepLib_GrenadeStripAll(client)
{
new grenade = GetPlayerWeaponSlot(client, 3);
while (grenade != -1)
{
Util_RemovePlayerItem(client, grenade);
grenade = GetPlayerWeaponSlot(client, 3);
}
}
Вообщем проверь
!= 0 быстрее.
Может наоброт?
все работает, но оружие может брать повторно, в принципе можно и так оставить, потому что я слегка тупанул, во время lr им же тоже оружие не дадут, либо надо как-нито исключение на lr ставить