А можешь написать именно как будет выглядеть?)@Rezder, это потому чтоЛибо убивай через delete, либо приравенивай после убийства к null.PHP:if(timer != INVALID_HANDLE) KillTimer(timer);
И в таймере перед return Plugin_Stop; тоже приравнивай хэндл таймера к null.
#pragma semicolon 1
#pragma newdecls required
#include <sdktools_functions>
#include <sdktools_gamerules>
#include <sdktools_tempents>
#include <sdktools_tempents_stocks>
static const int RED[] = {255, 0, 0, 200};
static const char MODEL_CHICKEN[] = "models/chicken/chicken.mdl";
Handle timer;
bool bombCanBounce, bHooked;
int g_iBeamSprite;
float fMin, fMax, fCD;
public Plugin myinfo =
{
name = "[CS:GO] Bouncing Bombs",
author = "Arkarr (rewritten by Grey83)",
description = "Make the C4 bounce everywhere !",
version = "1.0.1",
url = "https://steamcommunity.com/groups/grey83ds"
};
public void OnPluginStart()
{
EngineVersion g_Game = GetEngineVersion();
if(g_Game != Engine_CSGO && g_Game != Engine_CSS)
SetFailState("This plugin is for CSGO/CSS only.");
ConVar CVar;
(CVar = CreateConVar("sm_c4bounce_mini_power", "300.0", "Set the minimal power that the bomb can bounce.", _, true)).AddChangeHook(CVarChanged_Min);
fMin = CVar.FloatValue;
(CVar = CreateConVar("sm_c4bounce_maxi_power", "360.0", "Set the maximal power that the bomb can bounce.", _, true)).AddChangeHook(CVarChanged_Max);
fMax = CVar.FloatValue;
(CVar = CreateConVar("sm_c4bounce_sec_between_bounces", "0.9", "Ammount of seconds before each bounce. 0 = disable bounces", _, true)).AddChangeHook(CVarChanged_CD);
fCD = CVar.FloatValue;
}
public void CVarChanged_Min(ConVar CVar, const char[] oldValue, const char[] newValue)
{
fMin = CVar.FloatValue;
}
public void CVarChanged_Max(ConVar CVar, const char[] oldValue, const char[] newValue)
{
fMax = CVar.FloatValue;
}
public void CVarChanged_CD(ConVar CVar, const char[] oldValue, const char[] newValue)
{
fCD = CVar.FloatValue;
}
public void OnMapStart()
{
if(GameRules_GetProp("m_bMapHasBombTarget"))
{
g_iBeamSprite = PrecacheModel("materials/sprites/laserbeam.vmt");
PrecacheModel(MODEL_CHICKEN);
if(bHooked) return;
HookEvent("bomb_dropped", EVENT_BombDropped, EventHookMode_PostNoCopy);
HookEvent("bomb_pickup", EVENT_BombPickUp, EventHookMode_PostNoCopy);
HookEvent("round_end", EVENT_BombPickUp, EventHookMode_PostNoCopy);
bHooked = true;
}
else if(bHooked)
{
UnhookEvent("bomb_dropped", EVENT_BombDropped, EventHookMode_PostNoCopy);
UnhookEvent("bomb_pickup", EVENT_BombPickUp, EventHookMode_PostNoCopy);
UnhookEvent("round_end", EVENT_BombPickUp, EventHookMode_PostNoCopy);
bHooked = false;
}
}
public void OnClientDisconnect(int client)
{
for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && !IsFakeClient(i))
{
bombCanBounce = true;
return;
}
bombCanBounce = false;
}
public void EVENT_BombPickUp(Handle event, const char[] name, bool dontBroadcast)
{
bombCanBounce = false;
}
public void EVENT_BombDropped(Handle event, const char[] name, bool dontBroadcast)
{
if(!FloatCompare(fCD, 0.0)) return;
int iC4 = -1;
while((iC4 = FindEntityByClassname(iC4, "weapon_c4")) != INVALID_ENT_REFERENCE)
if(IsValidEntity(iC4))
{
bombCanBounce = true;
SetEntityModel(iC4, MODEL_CHICKEN);
BounceC4(iC4);
break;
}
}
stock void BounceC4(int iC4, int iClient = 0)
{
if(timer) delete timer;
if(bombCanBounce)
timer = CreateTimer(fCD, TMR_Bounce, iC4, TIMER_REPEAT);
}
public Action TMR_Bounce(Handle tmr, any iC4)
{
if(!IsValidEntity(iC4) || !bombCanBounce)
{
timer = null;
return Plugin_Stop;
}
static float angles[3];
angles[0] = GetRandomFloat(-180.0, 180.0);
angles[1] = GetRandomFloat(-180.0, 180.0);
angles[2] = GetRandomFloat(fMin, fMax);
TeleportEntity(iC4, NULL_VECTOR, NULL_VECTOR, angles);
TE_SetupBeamFollow(iC4, g_iBeamSprite, 0, 0.8, 1.0, 1.0, 1, RED);
TE_SendToAll();
return Plugin_Continue;
}
Увы и так не считает.=( Отладку всю выводит кроме PrintToServer("The player is not a fake\nActivatedPlayers = %i\n", newMapActivatedPlayers);эта запись эквивалентна вот этой: newMapActivatedPlayers++;
--- Добавлено позже ---
:blink:
--- Добавлено позже ---
а почему не используешь его userid?
--- Добавлено позже ---
@alexmy, для дебага попробуй вот так:PHP:public Action Event_PlayerActivate(Event event, const char [] name, bool dontBroadcast) { int client = GetEventInt(event, "userid"); PrintToServer("\nPlayerActivate:\nUId: %i", client); client = GetClientOfUserId(client); PrintToServer("Client: %N (%i)", client, client); if(client && !IsFakeClient(client)) { newMapActivatedPlayers++; //Так нет PrintToServer("The player is not a fake\nActivatedPlayers = %i\n", newMapActivatedPlayers); if(GetHumanInGamePlayerCount() > 4 && newMapActivatedPlayers > 4 && GetClientTeam(client) != TEAM_SURVIVORS) { SpawnFakeClient(); CreateTimer(10.0, Timer_PutClientToSurvivorTeam, GetClientSerial(client), TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); } } else PrintToServer("The player is a fake\n"); return Plugin_Continue; }
Client "Grey83" connected (192.168.1.101:27014).
Server waking up from hibernation
PlayerActivate:
UId: 2
Client: Grey83 (1)
The player is not a fake
ActivatedPlayers = 1
Game will not start until both teams have players.
Dropped Grey83 from server (Disconnect by user.)
Server is hibernating
Client "Grey83" connected (192.168.1.101:27014).
Server waking up from hibernation
PlayerActivate:
UId: 3
Client: Grey83 (1)
The player is not a fake
ActivatedPlayers = 2
Game will not start until both teams have players.
Dropped Grey83 from server (Disconnect by user.)
Server is hibernating
Client "Grey83" connected (192.168.1.101:27014).
Server waking up from hibernation
PlayerActivate:
UId: 4
Client: Grey83 (1)
The player is not a fake
ActivatedPlayers = 3
С телефона не могу, дома буду попробую твой код с отладкай.@alexmy, хз, что у тебя не так
У меня на КСС выдаёт это:
C-подобный:Client "Grey83" connected (192.168.1.101:27014). Server waking up from hibernation PlayerActivate: UId: 2 Client: Grey83 (1) The player is not a fake ActivatedPlayers = 1 Game will not start until both teams have players. Dropped Grey83 from server (Disconnect by user.) Server is hibernating Client "Grey83" connected (192.168.1.101:27014). Server waking up from hibernation PlayerActivate: UId: 3 Client: Grey83 (1) The player is not a fake ActivatedPlayers = 2 Game will not start until both teams have players. Dropped Grey83 from server (Disconnect by user.) Server is hibernating Client "Grey83" connected (192.168.1.101:27014). Server waking up from hibernation PlayerActivate: UId: 4 Client: Grey83 (1) The player is not a fake ActivatedPlayers = 3
#pragma semicolon 1
#include <emitsoundany>
#include <csgo_colors>
#pragma newdecls required // let's go new syntax!
public Plugin myinfo =
{
name = "[CS:GO] NoScope sound Reload",
author = "Hejter & Murenich",
version = "0.4",
url = "HLmod.ru"
};
public void OnPluginStart()
{
HookEvent("player_death", Event_PlayerDeath);
}
public void OnMapStart()
{
AddFileToDownloadsTable("sound/misc/kruto.mp3");
PrecacheSoundAny("misc/kruto.mp3");
}
public void Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("userid"));
int attacker = GetClientOfUserId(event.GetInt("attacker"));
if (client && IsClientInGame(client))
{
if (attacker != 0 && IsClientInGame(attacker))
{
if (attacker != client)
{
char weapon[32];
GetEventString(event, "weapon", weapon, sizeof(weapon));
if (!GetEntProp(attacker, Prop_Send, "m_bIsScoped") && (strcmp(weapon, "awp", false) == 0 || strcmp(weapon, "ssg08", false) == 0))
{
CGOPrintToChatAll("{RED}[Arbigon] {GREEN}%N {DEFAULT}убил без прицела {LIME}%N", attacker, client);
EmitSoundToClientAny(attacker, "misc/kruto.mp3"); // Проигрывает звук убившему.
EmitSoundToClientAny(client, "misc/kruto.mp3"); // Проигрывает звук убившему.
}
}
}
}
}
Вот в теме плагин есть: оповещает что убил в чате - nozoom, но тема rip и плагин не сделали для v34@Mensi1337, понятия не имею: у меня нет клиента и сервера cs:s v34 (но думаю, что это вполне возможно)
Попробуй плагины которые оповещают об убийствах с no zoom: они обычно проверяют угол обзора (FOV) у убийцы в момент убийства.
Поставил его - в консоль пишет что игра не подходит "Native "SetFailState" reported: Plugin supports CSS and CS:GO only.", убрал проверку на игру - заработал, но показывает сообщение при любом убийстве, то есть с дигла убью - показывает
ты точно только строку 22 убрал там?но показывает сообщение при любом убийстве, то есть с дигла убью - показывает
sm_help можешь отключить убрав плагин adminhelp.smx .Всем привет! Ребят, необходимы два плагина, один где-то был на просторах интернета, но никак не могу найти (selfmute вроде) только как на скрине. Другой блокирует такие команды как: sm plugins, ping, sm_help, с выводом твоего сообщения типа: Команда запрещена и т.п. Не знаю может они приват. Буду очень признателен! css v34, sm-1.6.3
Скинул исходник который ставил (выше пост)ты точно только строку 22 убрал там?
Спасибо за помощь! Вот selfmute я находил обычный, этот вроде переделанный. Там одна команда всего !vm, надо где-то ещё поискатьsm_help можешь отключить убрав плагин adminhelp.smx .
ping и status - AntiSpam [Status and Ping] CS:S v.34 (Status_Protect)
sm plugins - слышал, что @Danyas продавал блокировку этой команды под 34ку, попробуй с ним связаться.
SelfMute - возможно то, что нужно AlliedModders - View Single Post - [ANY] SelfMute [v1.0, 2013-05-11]