Jump to content

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


Райан

Recommended Posts

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

Таких плагинов много, но я решил переделать рандомный таймер у 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);
}

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

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

Ненавижу загружать новые файлы, но обожаю обновлять версии.

Link to comment
Share on other sites

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

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

#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);
}

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

Ненавижу загружать новые файлы, но обожаю обновлять версии.

Link to comment
Share on other sites

  • 4 weeks later...
  • 1 year later...
  • Администратор
В 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

Ненавижу загружать новые файлы, но обожаю обновлять версии.

Link to comment
Share on other sites

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

Tank Random HP.smx Tank Random HP.sp

Ненавижу загружать новые файлы, но обожаю обновлять версии.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...