Danyas
Участник
- Сообщения
- 2,174
- Реакции
- 1,072
Переделал плагины, оцените)
Пойдет на OB и на v34
Оффтоп
P.S. не орите за авторство, делал для себя)
1) Random C4Time
1) Разукрасил
2) Сделал ТОЛЬКО рандомное время на раунд
3) Фиксонул error при анлоаде плагина (закоментил)
Исходник:
2) Last Man
1) Разукрасил
* цвет комманды у которой остался последний выживший
2) Убрал всё кроме квара звука (анонсы, менюшка и т.д.)
P.S. Тему буду дополнять, если это не запрещено :-D
Пойдет на OB и на v34
Оффтоп
посмотрите заодно насколько можеты быть кривой код
P.S. не орите за авторство, делал для себя)
1) Random C4Time
1) Разукрасил
2) Сделал ТОЛЬКО рандомное время на раунд
3) Фиксонул error при анлоаде плагина (закоментил)
Исходник:
C-подобный:
#include <sourcemod>
#pragma semicolon 1
new Handle:CvarMin;
new Handle:CvarMax;
new Handle:mp_c4timer;
new Random;
//new bool:IsHooked;
public Plugin:myinfo =
{
name = "Random C4 Time",
author = "Dark Style + Danyas",
description = "This plugin set a random time for c4 explode by map/round"
};
public OnPluginStart()
{
CvarMin = CreateConVar("sm_random_c4t_mintime", "25", "Min. time for bomb count", FCVAR_PLUGIN, true, 0.0);
CvarMax = CreateConVar("sm_random_c4t_maxtime", "55", "Max. time for bomb count", FCVAR_PLUGIN, true, 1.0);
mp_c4timer = FindConVar("mp_c4timer");
HookEvent("round_start", Event_RoundStart);
// IsHooked = true;
}
//public OnPluginEnd()
//{
// if(IsHooked == true) UnhookEvent("round_start", Event_RoundStart);
//}
public Action:Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
Functions();
PrintToChatAll("\x01Время взрыва \x03бомбы: \x04%i сек.", Random, (Random > 1) ? "s." : ".");
}
Functions()
{
Random = GetRandomInt(GetConVarInt(CvarMin), GetConVarInt(CvarMax));
SetConVarInt(mp_c4timer, Random);
}
2) Last Man
1) Разукрасил
* цвет комманды у которой остался последний выживший
2) Убрал всё кроме квара звука (анонсы, менюшка и т.д.)
C-подобный:
#include <sourcemod>
#include <sdktools>
#pragma semicolon 1
#include colors
#define MAX_FILE_LEN 80
public Plugin:myinfo =
{
name = "LastMan [by Danyas]",
author = "dalto+Danyas[Rus]"
};
new g_soundPreference[MAXPLAYERS + 1];
new Handle:g_CvarSoundName = INVALID_HANDLE;
new String:g_soundName[MAX_FILE_LEN];
public OnPluginStart()
{
g_CvarSoundName = CreateConVar("sm_lmd_sound", "lastman/oneandonly.wav", "Звук для проигрывания");
HookConVarChange(g_CvarSoundName, OnSoundChanged);
AutoExecConfig(true, "lmd");
HookEvent("player_death", EventPlayerDeath);
}
public OnConfigsExecuted()
{
GetConVarString(g_CvarSoundName, g_soundName, MAX_FILE_LEN);
decl String:buffer[MAX_FILE_LEN];
PrecacheSound(g_soundName, true);
Format(buffer, sizeof(buffer), "sound/%s", g_soundName);
AddFileToDownloadsTable(buffer);
}
public OnSoundChanged(Handle:convar, const String:oldValue[], const String:newValue[])
{
decl String:buffer[MAX_FILE_LEN];
strcopy(g_soundName, sizeof(g_soundName), newValue);
PrecacheSound(g_soundName, true);
Format(buffer, sizeof(buffer), "sound/%s", g_soundName);
AddFileToDownloadsTable(buffer);
}
public EventPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
new victimId = GetEventInt(event, "userid");
new victimClient = GetClientOfUserId(victimId);
new killedTeam = GetClientTeam(victimClient);
new playersConnected = GetMaxClients();
new lastManId = 0;
for (new i = 1; i < playersConnected; i++)
{
if(IsClientInGame(i))
{
if(killedTeam==GetClientTeam(i) && IsPlayerAlive(i))
{
if(lastManId)
{
lastManId = -1;
} else {
lastManId = i;
}
}
}
}
if(lastManId > 0)
{
new String:clientname[64];
GetClientName(lastManId, clientname, sizeof(clientname));
if (GetClientTeam(lastManId) == 2)
CPrintToChatAll("{red}%s {default}последний, кто выжил.", clientname);
else
CPrintToChatAll("{blue}%s {default}последний, кто выжил.", clientname);
if(g_soundPreference[lastManId] && !IsFakeClient(lastManId))
{
EmitSoundToClient(lastManId, g_soundName);
}
}
}