[Изработка на плъгин] Free Extras

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
1Life1Dead
Извън линия
Потребител
Потребител
Мнения: 145
Регистриран на: 30 Май 2018, 21:38
Се отблагодари: 4 пъти
Получена благодарност: 11 пъти

[Изработка на плъгин] Free Extras

Мнение от 1Life1Dead » 01 Авг 2018, 15:43

Добър ден уважаеми потребители на AMXX-BG. Днес искам да Ви представя моя идея за направа на плъгин и ако може някой да я изпълни много ще се радвам! :) Идеята ми е да дава безплатни екстри в определени дни от седмицата. Пример:
-=-
Петък от (00 до 00 часа): Double Jump
Събота (00 до 00 часа): FREE VIP
Неделя (00 до 00 часа): Triple Jump + FREE VIP
-=-
Да прави проверка на всеки рунд + HUD във центъра, горе на екрана изписващ (Пример):
-=-
Когато е Петък: Free Double Jump for everyone!
Когато е Събота: Free VIP for everyone!
Когато е Неделя: Free Trple Jump and Free VIP for everyone!
-=-
Когато е ден, който включва екстрата "FREE VIP", всеки обикновен играч (играч, който няма зададени флагове във "users.ini") да получава флаг "s", който съответно аз съм настроил да има префикс [FREE VIP] и вип меню, а играч който има зададени права в "users.ini да не бъде рефлектиран, разбира се, всеки трябва да има "Double Jump" или "Triple Jump" когато е ден, който го включва, независимо дали е във "users.ini".
-=-
След като стане Понеделник всички екстри изчезват и се чака до другият Петък, Събота и Неделя.
-=-

Тааа, ако има кой да се навие да направи този плъгин ще съм му доста благодарен + че едвали ще съм единственият, който ще го използва! :o :o :o

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

[Изработка на плъгин] Free Extras

Мнение от OciXCrom » 01 Авг 2018, 17:20

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

#include <amxmodx>
#include <engine>

#define HUD_COLOR 0, 255, 0
#define HUD_POSITION -1.0, 0.3
#define HUD_DURATION 5.0
#define HUD_REPEAT 1.0
#define HUD_TASK 555666

new bool:g_bDoJump[33], g_iJumps[33]
new g_iMaxJumps = 0, g_iFreeVIP = ADMIN_ALL
new g_szMessage[128]

public plugin_init()
{
	register_plugin("Free Extras", "1.0", "OciXCrom")
	register_logevent("OnRoundStart", 2, "0=World triggered", "1=Round_Start")
	OnRoundStart()
}

public OnRoundStart()
{
	new szTime[5]
	get_time("%w", szTime, charsmax(szTime))
	
	switch(str_to_num(szTime))
	{
		case 5: // Петък
		{
			g_iMaxJumps = 2
			g_szMessage = "Free Double Jump for everyone!"
		}
		case 6: // Събота
		{
			g_iFreeVIP = ADMIN_LEVEL_G
			g_szMessage = "Free VIP for everyone!"
		}
		case 0: // Неделя
		{
			g_iMaxJumps = 3
			g_iFreeVIP = ADMIN_LEVEL_G
			g_szMessage = "Free Triple Jump and Free VIP for everyone!"
		}
		default: // Друг ден
		{
			g_iMaxJumps = 0
			g_iFreeVIP = ADMIN_ALL
			g_szMessage[0] = EOS
			remove_task(HUD_TASK)
		}
	}

	if(g_szMessage[0])
		set_task(HUD_REPEAT, "ShowMessage", HUD_TASK, .flags = "b")
}

public ShowMessage()
{
	set_hudmessage(HUD_COLOR, HUD_POSITION, .holdtime = HUD_DURATION)
	show_hudmessage(0, g_szMessage)
}

public client_putinserver(id)
{
	g_iJumps[id] = 0
	g_bDoJump[id] = false

	if(g_iFreeVIP != ADMIN_ALL)
		set_user_flags(id, g_iFreeVIP)
}

public client_PreThink(id)
{
	if(!g_iMaxJumps || !is_user_alive(id))
		return PLUGIN_CONTINUE
	
	new iNewButton = get_user_button(id)
	new iOldButton = get_user_oldbutton(id)
	
	if((iNewButton & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(iOldButton & IN_JUMP))
	{
		if(g_iJumps[id] < g_iMaxJumps)
		{
			g_bDoJump[id] = true
			g_iJumps[id]++
			return PLUGIN_CONTINUE
		}
	}
	
	if((iNewButton & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		g_iJumps[id] = 0
		return PLUGIN_CONTINUE
	}
	
	return PLUGIN_CONTINUE
}

public client_PostThink(id)
{
	if(!g_iMaxJumps || !is_user_alive(id))
		return PLUGIN_CONTINUE
		
	if(g_bDoJump[id])
	{
		new Float:flVelocity[3]	
		entity_get_vector(id, EV_VEC_velocity, flVelocity)
		flVelocity[2] = random_float(265.0, 285.0)
		entity_set_vector(id, EV_VEC_velocity, flVelocity)
		g_bDoJump[id] = false
	}
	
	return PLUGIN_CONTINUE
}

Аватар
1Life1Dead
Извън линия
Потребител
Потребител
Мнения: 145
Регистриран на: 30 Май 2018, 21:38
Се отблагодари: 4 пъти
Получена благодарност: 11 пъти

[Изработка на плъгин] Free Extras

Мнение от 1Life1Dead » 01 Авг 2018, 17:42

OciXCrom™ написа: 01 Авг 2018, 17:20

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

#include <amxmodx>
#include <engine>

#define HUD_COLOR 0, 255, 0
#define HUD_POSITION -1.0, 0.3
#define HUD_DURATION 5.0
#define HUD_REPEAT 1.0
#define HUD_TASK 555666

new bool:g_bDoJump[33], g_iJumps[33]
new g_iMaxJumps = 0, g_iFreeVIP = ADMIN_ALL
new g_szMessage[128]

public plugin_init()
{
	register_plugin("Free Extras", "1.0", "OciXCrom")
	register_logevent("OnRoundStart", 2, "0=World triggered", "1=Round_Start")
	OnRoundStart()
}

public OnRoundStart()
{
	new szTime[5]
	get_time("%w", szTime, charsmax(szTime))
	
	switch(str_to_num(szTime))
	{
		case 5: // Петък
		{
			g_iMaxJumps = 2
			g_szMessage = "Free Double Jump for everyone!"
		}
		case 6: // Събота
		{
			g_iFreeVIP = ADMIN_LEVEL_G
			g_szMessage = "Free VIP for everyone!"
		}
		case 0: // Неделя
		{
			g_iMaxJumps = 3
			g_iFreeVIP = ADMIN_LEVEL_G
			g_szMessage = "Free Triple Jump and Free VIP for everyone!"
		}
		default: // Друг ден
		{
			g_iMaxJumps = 0
			g_iFreeVIP = ADMIN_ALL
			g_szMessage[0] = EOS
			remove_task(HUD_TASK)
		}
	}

	if(g_szMessage[0])
		set_task(HUD_REPEAT, "ShowMessage", HUD_TASK, .flags = "b")
}

public ShowMessage()
{
	set_hudmessage(HUD_COLOR, HUD_POSITION, .holdtime = HUD_DURATION)
	show_hudmessage(0, g_szMessage)
}

public client_putinserver(id)
{
	g_iJumps[id] = 0
	g_bDoJump[id] = false

	if(g_iFreeVIP != ADMIN_ALL)
		set_user_flags(id, g_iFreeVIP)
}

public client_PreThink(id)
{
	if(!g_iMaxJumps || !is_user_alive(id))
		return PLUGIN_CONTINUE
	
	new iNewButton = get_user_button(id)
	new iOldButton = get_user_oldbutton(id)
	
	if((iNewButton & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(iOldButton & IN_JUMP))
	{
		if(g_iJumps[id] < g_iMaxJumps)
		{
			g_bDoJump[id] = true
			g_iJumps[id]++
			return PLUGIN_CONTINUE
		}
	}
	
	if((iNewButton & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		g_iJumps[id] = 0
		return PLUGIN_CONTINUE
	}
	
	return PLUGIN_CONTINUE
}

public client_PostThink(id)
{
	if(!g_iMaxJumps || !is_user_alive(id))
		return PLUGIN_CONTINUE
		
	if(g_bDoJump[id])
	{
		new Float:flVelocity[3]	
		entity_get_vector(id, EV_VEC_velocity, flVelocity)
		flVelocity[2] = random_float(265.0, 285.0)
		entity_set_vector(id, EV_VEC_velocity, flVelocity)
		g_bDoJump[id] = false
	}
	
	return PLUGIN_CONTINUE
}
Merci Beaucoup! :nicecode: :cool: :drunk: :clap: :beer: :o :worthy: :lock: :lock: :lock:

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

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

Кой е на линия

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