Christmas Hat. Добавяне на опция чрез, която плъгина да работи в определени месеци през годината

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.

Модератори: Extreme, Extreme, Extreme, Extreme, Extreme, Extreme, Extreme

Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

Christmas Hat. Добавяне на опция чрез, която плъгина да работи в определени месеци през годината

Мнение от LoShIaA » 02 Фев 2018, 16:46

Здравейте.
Може ли на този плъгин:

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <reapi>

#pragma semicolon 1

enum {
	hat,
	deer
}

enum {
	random_all,
	c4_owner
}

new const MDL_FILE[] = "models/stz/hats/hats.mdl";

const DEER_HAT_FOR = c4_owner; // modify like you need

new g_MdlIndex, g_Ent[MAX_CLIENTS + 1];

public plugin_precache() {
	g_MdlIndex = precache_model(MDL_FILE);
}

public plugin_init() {
	register_plugin("Christmas hat", "0.3", "AMXX.Shop");
	RegisterHookChain(RG_CBasePlayer_Spawn, "FwdSpawnPost", true);
	#if DEER_HAT_FOR == c4_owner
	if(rg_find_ent_by_class(INVALID_HANDLE, "func_bomb_target", true) || rg_find_ent_by_class(INVALID_HANDLE, "info_bomb_target", true)) {
		RegisterHookChain(RG_CBasePlayer_AddPlayerItem, "FwdAddPlayerItemPost", true);
		RegisterHookChain(RG_CBasePlayer_RemovePlayerItem, "FwdRemovePlayerItemPost", true);
	}
	#endif
}

public client_putinserver(id) {
	if(is_user_bot(id) || is_user_hltv(id)) {
		return;
	}
	CheckEnt(id);
	if((g_Ent[id] = rg_create_entity("info_target"))) {
		set_entvar(g_Ent[id], var_classname, "_christmas_hat_ent");
		set_entvar(g_Ent[id], var_model, MDL_FILE);
		set_entvar(g_Ent[id], var_modelindex, g_MdlIndex);
		set_entvar(g_Ent[id], var_movetype, MOVETYPE_FOLLOW);
		set_entvar(g_Ent[id], var_aiment, id);
	}
}

public client_disconnected(id) {
	CheckEnt(id);
}

public FwdSpawnPost(const id) {
	if(is_entity(g_Ent[id]) && is_user_alive(id)) {
		#if DEER_HAT_FOR == c4_owner
		SetEntModel(id, hat, get_member(id, m_iTeam));
		#else
		SetEntModel(id, random(10) % 2 ? hat : deer, get_member(id, m_iTeam));
		#endif
	}
}

public FwdAddPlayerItemPost(const id, const Ent) {
	if(get_member(Ent, m_iId) == CSW_C4) {
		SetEntModel(id, deer);
	}
}

public FwdRemovePlayerItemPost(const id, const Ent) {
	if(get_member(Ent, m_iId) == CSW_C4) {
		SetEntModel(id, hat, get_member(id, m_iTeam));
	}
}

CheckEnt(const id) {
	if(g_Ent[id] && is_entity(g_Ent[id])) {
		set_entvar(g_Ent[id], var_flags, FL_KILLME);
		set_entvar(g_Ent[id], var_nextthink, get_gametime());
		g_Ent[id] = 0;
	}
}

SetEntModel(const id, const Body, const Skin = 0) {
	set_entvar(g_Ent[id], var_body, Body);
	if(Body == hat) {
		set_entvar(g_Ent[id], var_skin, Skin - 1);
	}
}
да се добави опция чрез, която да въвеждам месеците от година през, които плъгина да работи.
Давам пример: Ето тук съм сложил 1, 12 и плъгина ще работи само Декември и Януари.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <engine>

#define PLUGIN_VERSION "1.0"

new const g_iSnowyMonths[] = { 1, 12 }
new g_szMonth[3], g_iMonth

public plugin_init()
{
	register_plugin("Let it Snow!", PLUGIN_VERSION, "OciXCrom")
	register_cvar("LetitSnow", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
}

public plugin_precache()
{
	get_time("%m", g_szMonth, charsmax(g_szMonth))
	g_iMonth = str_to_num(g_szMonth)
		
	for(new i = 0; i < sizeof(g_iSnowyMonths); i++)
	{
		if(g_iSnowyMonths[i] == g_iMonth)
			create_entity("env_snow")
	}
}

Аватар
WaLkZ
Извън линия
Администратор
Администратор
Мнения: 799
Регистриран на: 05 Окт 2016, 21:13
Местоположение: Варна
Се отблагодари: 75 пъти
Получена благодарност: 227 пъти
Обратна връзка:

Christmas Hat. Добавяне на опция чрез, която плъгина да работи в определени месеци през годината

Мнение от WaLkZ » 02 Фев 2018, 18:53

Теоретично би трябвало да работи. Практически не е тествано.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <reapi>

#pragma semicolon 1

enum {
	hat,
	deer
}

enum {
	random_all,
	c4_owner
}

new const g_iSnowyMonths[] = { 1, 12 };

new const MDL_FILE[] = "models/stz/hats/hats.mdl";

const DEER_HAT_FOR = c4_owner; // modify like you need

new g_MdlIndex, g_Ent[MAX_CLIENTS + 1];

public plugin_precache() {
	g_MdlIndex = precache_model(MDL_FILE);
}

public plugin_init()
{
	if (!isSnowyMonth())
	{
		pause("ad");
	}

	register_plugin("Christmas hat", "0.3", "AMXX.Shop");
	RegisterHookChain(RG_CBasePlayer_Spawn, "FwdSpawnPost", true);
	#if DEER_HAT_FOR == c4_owner
	if(rg_find_ent_by_class(INVALID_HANDLE, "func_bomb_target", true) || rg_find_ent_by_class(INVALID_HANDLE, "info_bomb_target", true)) {
		RegisterHookChain(RG_CBasePlayer_AddPlayerItem, "FwdAddPlayerItemPost", true);
		RegisterHookChain(RG_CBasePlayer_RemovePlayerItem, "FwdRemovePlayerItemPost", true);
	}
	#endif
}

isSnowyMonth()
{
	new g_szMonth[3], g_iMonth;
	get_time("%m", g_szMonth, charsmax(g_szMonth));
	g_iMonth = str_to_num(g_szMonth);
		
	for (new i = 0; i < sizeof(g_iSnowyMonths); i++)
	{
		if (g_iSnowyMonths[i] == g_iMonth)
		{
			return true;
		}
	}
	
	return false;
}

public client_putinserver(id) {
	if(is_user_bot(id) || is_user_hltv(id)) {
		return;
	}
	CheckEnt(id);
	if((g_Ent[id] = rg_create_entity("info_target"))) {
		set_entvar(g_Ent[id], var_classname, "_christmas_hat_ent");
		set_entvar(g_Ent[id], var_model, MDL_FILE);
		set_entvar(g_Ent[id], var_modelindex, g_MdlIndex);
		set_entvar(g_Ent[id], var_movetype, MOVETYPE_FOLLOW);
		set_entvar(g_Ent[id], var_aiment, id);
	}
}

public client_disconnected(id) {
	CheckEnt(id);
}

public FwdSpawnPost(const id) {
	if(is_entity(g_Ent[id]) && is_user_alive(id)) {
		#if DEER_HAT_FOR == c4_owner
		SetEntModel(id, hat, get_member(id, m_iTeam));
		#else
		SetEntModel(id, random(10) % 2 ? hat : deer, get_member(id, m_iTeam));
		#endif
	}
}

public FwdAddPlayerItemPost(const id, const Ent) {
	if(get_member(Ent, m_iId) == CSW_C4) {
		SetEntModel(id, deer);
	}
}

public FwdRemovePlayerItemPost(const id, const Ent) {
	if(get_member(Ent, m_iId) == CSW_C4) {
		SetEntModel(id, hat, get_member(id, m_iTeam));
	}
}

CheckEnt(const id) {
	if(g_Ent[id] && is_entity(g_Ent[id])) {
		set_entvar(g_Ent[id], var_flags, FL_KILLME);
		set_entvar(g_Ent[id], var_nextthink, get_gametime());
		g_Ent[id] = 0;
	}
}

SetEntModel(const id, const Body, const Skin = 0) {
	set_entvar(g_Ent[id], var_body, Body);
	if(Body == hat) {
		set_entvar(g_Ent[id], var_skin, Skin - 1);
	}
}

Аватар
wrath
Извън линия
Потребител
Потребител
Мнения: 167
Регистриран на: 21 Яну 2018, 10:30
Местоположение: /changerace
Обратна връзка:

Christmas Hat. Добавяне на опция чрез, която плъгина да работи в определени месеци през годината

Мнение от wrath » 02 Фев 2018, 18:57

Няма ли пък да е добре ако просто pause-ваш плъгина от amxmodmenu през месеците които искаш? :bl:
I am not big on sermons ,broken bones teach better lessons. Изображение Изображение

Аватар
WaLkZ
Извън линия
Администратор
Администратор
Мнения: 799
Регистриран на: 05 Окт 2016, 21:13
Местоположение: Варна
Се отблагодари: 75 пъти
Получена благодарност: 227 пъти
Обратна връзка:

Christmas Hat. Добавяне на опция чрез, която плъгина да работи в определени месеци през годината

Мнение от WaLkZ » 02 Фев 2018, 18:59

Защо да прави нещо ръчно, при положение, че може автоматично?

Аватар
wrath
Извън линия
Потребител
Потребител
Мнения: 167
Регистриран на: 21 Яну 2018, 10:30
Местоположение: /changerace
Обратна връзка:

Christmas Hat. Добавяне на опция чрез, която плъгина да работи в определени месеци през годината

Мнение от wrath » 02 Фев 2018, 19:10

WaLkZ написа: 02 Фев 2018, 18:59 Защо да прави нещо ръчно, при положение, че може автоматично?
Не мисля ,че ще стане ,но ако стане - ще се наложи и аз да го ползвам.. x)
I am not big on sermons ,broken bones teach better lessons. Изображение Изображение

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Christmas Hat. Добавяне на опция чрез, която плъгина да работи в определени месеци през годината

Мнение от OciXCrom » 02 Фев 2018, 21:26

Защо пък да не стане?

Аватар
wrath
Извън линия
Потребител
Потребител
Мнения: 167
Регистриран на: 21 Яну 2018, 10:30
Местоположение: /changerace
Обратна връзка:

Christmas Hat. Добавяне на опция чрез, която плъгина да работи в определени месеци през годината

Мнение от wrath » 02 Фев 2018, 21:31

Изглежда ми малко странно. Ако успеете иначе сте богове. :beer: @OciXCrom ,виж си лс-то. ;-(
I am not big on sermons ,broken bones teach better lessons. Изображение Изображение

Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

Christmas Hat. Добавяне на опция чрез, която плъгина да работи в определени месеци през годината

Мнение от LoShIaA » 02 Фев 2018, 22:03

Освен теоретично работи и практически. wrath защо изобщо реши, че няма как да стане предположение, че този, който съм дал работи точно на този принцип, а щом има един работещ такъв значи може да стане всеки един. Даже при този стана още по-добре, изключва се напълно като напишеш amx_plugins пише stopped, докато snow плъгина пише running (въпреки, че не работи, защото е нагласен само за 12 и 1 месец). Само ще сменя имената на променливите и всичко е тип топ. Благодаря :).

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 42 госта