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

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

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

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

Это моя подпись.

Ссылка на комментарий
https://ip-gamers.net/topic/450-randomnoe-hp-u-tanka/
Поделиться на другие сайты

Решено Ryancoolround

Перейти к решению

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

Опубликовано
  • Автор
  • Администраторы
  • Решение
comment_1744

Скомпилировано на версии SourceMod 1.10.0.6497.

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

Изменения:

1. Переменная FCVAR_PLUGIN была изменена на FCVAR_NONE
2. Изменено мета описание
  • Версия плагина Random HP Tank скомпилированная на версии SourceMod 1.11.0.6905.
  • Я плагин не проверял, поэтому буду надеятся на обратную связь.

Попытался я адаптировать код под актуальную сборку, но ХП почему то не выставляется рандомное. Кто то может оправить?

#include <sourcemod>
#include <sdktools>
#include <sdktools_functions>

#define PLUGIN_VERSION "0.3"

Handle TankHealth = INVALID_HANDLE;


public Plugin myinfo =
{
	name = "Рандомное ХП у Танка",
	author = "Райан",
	description = "Плагин выставляет рандомное здоровье у Танка.",
	version = PLUGIN_VERSION,
	url = "https://ip-gamers.net/topic/450-randomnoe-hp-u-tanka/"
};

public void OnPluginStart()
{

	CreateConVar("sm_version", PLUGIN_VERSION, "the plugin's version", FCVAR_NOTIFY);
	
	TankHealth = FindConVar("z_tank_health");
}

public Action TankHealthTimerT(Handle htimer)
{
	int RandomHealth;
	RandomHealth = GetRandomInt(1, 10000);
	SetConVarInt(TankHealth, RandomHealth)
	return Plugin_Handled;
}

Это моя подпись.

Ссылка на комментарий
https://ip-gamers.net/topic/450-randomnoe-hp-u-tanka/?&do=findComment&comment=1744
Поделиться на другие сайты
  • 5 недель спустя...

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

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

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

Плагин выставляет рандомное здоровье у Танка. По умолчанию от 6000 до 50000. В cfg/sourcemod создается cfg файл Random_HP_Tank.cfg в котором можно выставить минимальное и максимальное значение здоровья.

// This file was auto-generated by SourceMod (v1.10.0.6492)
// ConVars for plugin "random_hp_tank.smx"


// Максимальное количество ХП Танка
// -
// Default: "9999999"
// Minimum: "1.000000"
sm_random_hpt_maxtime "9999999"

// Минимальное количество ХП Танка
// -
// Default: "1000"
// Minimum: "0.000000"
sm_random_hpt_mintime "1000"

Подробнее о создании плагина:

Это моя подпись.

Ссылка на комментарий
https://ip-gamers.net/topic/450-randomnoe-hp-u-tanka/?&do=findComment&comment=1400
Поделиться на другие сайты
  • 4 недели спустя...

это офигенный плагин. Только танк вот чаще всего становится неубиваемым

Ссылка на комментарий
https://ip-gamers.net/topic/450-randomnoe-hp-u-tanka/?&do=findComment&comment=1672
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

Похожий контент

Последние посетители 0

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