Перейти к содержанию

Рандомное ХП у Танка - Скрипт


ryancoolround

Рекомендуемые сообщения

  • Администратор

Таких плагинов много, но я решил переделать рандомный таймер у C4 из Counter-Strike: Source. И у меня почти получилось, плагин реально устанавливает рандомное здоровье Танку.

#include <sourcemod>
#pragma semicolon 1

#define Version	"0.0.2"

new Handle:CvarMode;
new Handle:CvarMin;
new Handle:CvarMax;
new Handle:z_tank_health;
new Random;
new bool:IsHooked;

public Plugin:myinfo = 
{
	name = "Random HP Tank",
	author = "L4D2Noob.RU",
	description = "Этот плагин устанавливает случайное количество здоровья Танку",
	version = Version,
	url = "http://L4D2Noob.RU"
};

public OnPluginStart()
{
	CvarMode = CreateConVar("sm_random_hpt_mode", "1", "1 - Per Round / 0 - Per Map", FCVAR_PLUGIN, true, 0.0, true, 1.0);
	CvarMin = CreateConVar("sm_random_hpt_mintime", "1000", "Минимальное количество ХП Танка", FCVAR_PLUGIN, true, 0.0);
	CvarMax = CreateConVar("sm_random_hpt_maxtime", "9999999", "Максимальное количество ХП Танка", FCVAR_PLUGIN, true, 1.0);
	AutoExecConfig(true, "Random_HP_Tank");
	
	z_tank_health = FindConVar("z_tank_health");
	
	if(GetConVarInt(CvarMode) == 0)
	{
		Functions();
		
		PrintToServer("[RHT] Берегись, Здоровье Танка: %i ХП", Random, (Random > 1) ? "s." : ".");
		
		return;
	}
	
	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("[РХТ] Берегись, Здоровье Танка: %i ХП", Random, (Random > 1) ? "s." : ".");
}

Functions()
{
	Random = GetRandomInt(GetConVarInt(CvarMin), GetConVarInt(CvarMax));
	SetConVarInt(z_tank_health, Random);
}

Но вот беда, я здесь что то неправильно сделал, ведь Танка с этим плагином убить невозможно. Как только ситуация подводит к смерти Танка, его здоровье перезагружается. Кто то может помочь?

Сделал новую версию, пойду протестирую

«Успех – это приятно, но он не должен быть единственной причиной, по которой вы – музыкант». - Честер Беннингтон

Ссылка на комментарий
Поделиться на другие сайты

  • Администратор

Починил, работает. Вырезал все лишнее.

#include <sourcemod>
#pragma semicolon 1

#define Version	"0.0.4"

new Handle:CvarMin;
new Handle:CvarMax;
new Handle:z_tank_health;
new Random;

public Plugin:myinfo = 
{
	name = "Random HP Tank", 
	author = "L4D2Noob.RU", 
	description = "Этот плагин устанавливает случайное количество здоровья Танку", 
	version = Version, 
	url = "http://L4D2Noob.RU"
};

public OnPluginStart()
{
	CvarMin = CreateConVar("sm_random_hpt_mintime", "6000", "Минимальное количество ХП Танка", FCVAR_PLUGIN, true, 0.0);
	CvarMax = CreateConVar("sm_random_hpt_maxtime", "30000", "Максимальное количество ХП Танка", FCVAR_PLUGIN, true, 1.0);
	AutoExecConfig(true, "Random_HP_Tank");
	
	z_tank_health = FindConVar("z_tank_health");
	Random = GetRandomInt(GetConVarInt(CvarMin), GetConVarInt(CvarMax));
	SetConVarInt(z_tank_health, Random);
}

Кстати, @Емир Садыков хотел помочь протестировать, но не успел, он позвонил под конец теста.

«Успех – это приятно, но он не должен быть единственной причиной, по которой вы – музыкант». - Честер Беннингтон

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...
  • 1 год спустя...
  • Администратор
В 27.08.2020 в 04:55, Райан сказал:

Починил, работает. Вырезал все лишнее.

#include <sourcemod>
#pragma semicolon 1

#define Version	"0.0.4"

new Handle:CvarMin;
new Handle:CvarMax;
new Handle:z_tank_health;
new Random;

public Plugin:myinfo = 
{
	name = "Random HP Tank", 
	author = "L4D2Noob.RU", 
	description = "Этот плагин устанавливает случайное количество здоровья Танку", 
	version = Version, 
	url = "http://L4D2Noob.RU"
};

public OnPluginStart()
{
	CvarMin = CreateConVar("sm_random_hpt_mintime", "6000", "Минимальное количество ХП Танка", FCVAR_PLUGIN, true, 0.0);
	CvarMax = CreateConVar("sm_random_hpt_maxtime", "30000", "Максимальное количество ХП Танка", FCVAR_PLUGIN, true, 1.0);
	AutoExecConfig(true, "Random_HP_Tank");
	
	z_tank_health = FindConVar("z_tank_health");
	Random = GetRandomInt(GetConVarInt(CvarMin), GetConVarInt(CvarMax));
	SetConVarInt(z_tank_health, Random);
}

Кстати, @Емир Садыков хотел помочь протестировать, но не успел, он позвонил под конец теста.

Версия плагина Random HP Tank скомпилированная на версии SourceMod 1.10.0.6528.

Изменения:

1. Переменная FCVAR_PLUGIN была изменена на FCVAR_NONE
2. Изменено мета описание

 

Tank Random HP.sp Tank Random HP.smx

«Успех – это приятно, но он не должен быть единственной причиной, по которой вы – музыкант». - Честер Беннингтон

Ссылка на комментарий
Поделиться на другие сайты

  • 7 месяцев спустя...
  • Администратор
  • Версия плагина Random HP Tank скомпилированная на версии SourceMod 1.11.0.6905.
  • Я плагин не проверял, поэтому буду надеятся на обратную связь.

Tank Random HP.smx Tank Random HP.sp

«Успех – это приятно, но он не должен быть единственной причиной, по которой вы – музыкант». - Честер Беннингтон

Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...