Server Commands v1.2

В този раздел можете да публикувате нови плъгини, като същите ще бъдат одобрени или неодобрени от страна на екипа.
Правила на форума
ИНФОРМАЦИЯ: В този раздел най-вероятно няма да намерите много теми (възможно е и да е напълно празен), тъй като новите теми се местят в https://amxx-bg.info/viewforum.php?f=21 или https://amxx-bg.info/viewforum.php?f=22, зависимо от качеството им.
Потребителски аватар

Автор на темата
summertime vibes
Модератор
Модератор
Мнения: 1102
Регистриран: 27 ное 2016, 17:47
Местоположение: In the Heaven
Се отблагодари: 44 пъти
Получена благодарност: 92 пъти
Контакти:

Server Commands v1.2

Мнение от summertime vibes » 17 сеп 2018, 16:57


Име на плъгина: Server Commands [v1.2]

Автор: summertime vibes. // Аз

Описание:
- Прост плъгин, с който може с дадена команда, която сте написали в чата да изкарва информация за нея. Има cvar, от който може да направите да изкарва информацията по 3 начина (чат, hud и dhud съобщение). Вкарани са възможно повече дефиниции и константи с цел плъгинът да е максимално олекотен за използване.
Cvars:
amx_message 0/1/2 (0 - Chat ; 1 - HUD ; 2 - DHUD) - как да излиза първото съобщение
amx_message2 0/1/2 (0 - Chat ; 1 - HUD ; 2 - DHUD) - как да излиза второто съобщение
amx_sc_advert_time (Default: 300.0) - през колко секунди да се показва рекламното съобщение.

Команди:
/scadvert - включва / изключва advert съобщенията в чата. По подразбиране е включено.

КОД:

Код: Избери всички

#include <amxmodx>
#include <formatin>
#include <cromchat>
#if AMXX_VERSION_NUM < 183
	#include <dhudmessage>
#endif

// Defines
#define AUTHOR "summertime vibes"
#define VERSION "1.2"

#define HudPrefix "[HUD Prefix]"
#define DHUDPrefix "[DHUD PREFIX]"

#define firstcommand "/command1"
#define secondcommand "/command2"

// New
new pCvar, pCvar2, cvar_time
new bool:g_AdvertMessage = true

// New Const
new const g_iCommand[] = { "/command1" }
new const g_iCommandTwo[] = { "/command2" }
new const g_iCommandAdvert[] = { "/scadvert" }

public plugin_init()
{
	register_plugin("Server Commands", VERSION, AUTHOR)

	for(new i; i<sizeof(g_iCommand); i++)
	{
		register_clcmd(formatin("say %s", g_iCommand[i]), "cmd1")
		register_clcmd(formatin("say_team %s", g_iCommand[i]), "cmd1")
	}

	for(new i; i<sizeof(g_iCommandTwo); i++)
	{
		register_clcmd(formatin("say %s", g_iCommandTwo[i]), "cmd2")
		register_clcmd(formatin("say_team %s", g_iCommandTwo[i]), "cmd2")
	}

	for(new i; i<sizeof(g_iCommandAdvert); i++)
	{
		register_clcmd(formatin("say %s", g_iCommandAdvert[i]), "advertcmd")
		register_clcmd(formatin("say_team %s", g_iCommandAdvert[i]), "advertcmd")
	}

	pCvar = register_cvar("amx_sc_message", "0") // 0 - chat ; 1 - hud ; 2 - dhud
	pCvar2 = register_cvar("amx_sc_message2", "0") // 0 - chat ; 1 - hud ; 2 - dhud
	cvar_time = register_cvar("amx_sc_advert_time", "300.0")

	set_task(get_pcvar_float(cvar_time), "Advert", _,_,_, "b");

	CC_SetPrefix("&x04[Server Commands]")
}

public Advert()
    if(g_AdvertMessage)
    {
	    CC_SendMessage(0, "^x03Write in the  chat &x01%s &x03or &x01%s &x03to view the commands information&x01.",firstcommand, secondcommand);
	    return
    }

public advertcmd(id)
{
	g_AdvertMessage = !g_AdvertMessage
	CC_SendMessage(id, "&x01Advert Messages have been &x03%s&x01.", g_AdvertMessage ? "enabled" : "disabled" );
}	    

public cmd(id)
{
		switch(get_pcvar_num(pCvar))
		{
			case 0: CC_SendMessage(id, "^x04The text when you write the command.")
			case 1:
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.26, 2, 6.0, 12.0)
	    	                show_hudmessage(id, "%s The text when you write the command.",HudPrefix)
    		}
			case 2:
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.26, 2, 6.0, 12.0)
	    		        show_dhudmessage(id, "%s The text when you write the command.",DHUDPrefix)
			}
		}
}

public cmd2(id)
{
		switch(get_pcvar_num(pCvar2))
		{
			case 0: CC_SendMessage(id, "^x04The text when you write the command.")
			case 1:
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.26, 2, 6.0, 12.0)
	    		        show_hudmessage(id, "%s The text when you write the command.",HudPrefix)
    		   }
			case 2:
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.26, 2, 6.0, 12.0)
	    		        show_dhudmessage(id, "%s The text when you write the command.",DHUDPrefix)
			    }
		}
}
Знам, че плъгина е елементарен, но колкото мога - толкова.

Ако има интерес към плъгина бих му правил ъпдейти с радост.

Formatin библиотеката:
Прикачени файлове
formatin.rar
(562 Байта) Свален 12 пъти
formatin.rar
(562 Байта) Свален 12 пъти
Последна промяна от summertime vibes на 06 окт 2018, 11:32, променено общо 8 пъти.
Изображение

Потребителски аватар

Huehue БРАТМЕЕ
Модератор
Модератор
Мнения: 228
Регистриран: 16 яну 2017, 23:42
Местоположение: София
Се отблагодари: 4 пъти
Получена благодарност: 53 пъти
Години: 22
Контакти:

Server Commands v1.0

Мнение от Huehue БРАТМЕЕ » 17 сеп 2018, 18:55

Оправи кода да не е центриран.
Таск-а който си сложил е глобален, демек няма index за играч.
Оправи проверката за кваровете.
LOYAL TO THE OATH OF OMERTА̀

Зад монитора мъжкари, това не го разбирам..
На живо сте мишкари, това го гарантирам!
Седиш на 30 метра от мен като препариран!
Ако има нещо брат, номерът ми е блокиран..

Потребителски аватар

Автор на темата
summertime vibes
Модератор
Модератор
Мнения: 1102
Регистриран: 27 ное 2016, 17:47
Местоположение: In the Heaven
Се отблагодари: 44 пъти
Получена благодарност: 92 пъти
Контакти:

Server Commands v1.0

Мнение от summertime vibes » 06 окт 2018, 11:29

Оправено.
Update!

V1.1 Changelog:

Код: Избери всички

- Добавени 2 нови константи за командите, които да се пишат в чата.
- Променен е else на switch.
- Добавен е нов define за времето, в което да се показва съобщението за командите в чата (ADVERT_TIME).
- Добавен е prefix в чата (CC_SetPrefix).
- Добавена проверка дали се компилира плъгина под 1.8.3 версия или по-малка (служи за dhudmessage библиотеката).
Благодарности на JackEyedJones.

Скоро ще го оптимизирам още плъгина, за сега е това.
Изображение

Потребителски аватар

Автор на темата
summertime vibes
Модератор
Модератор
Мнения: 1102
Регистриран: 27 ное 2016, 17:47
Местоположение: In the Heaven
Се отблагодари: 44 пъти
Получена благодарност: 92 пъти
Контакти:

Server Commands v1.2

Мнение от summertime vibes » 25 мар 2019, 23:27

Update!

V1.2 Changelog:
- Добавена нова команда - /scadvert. С нея може да включвате/изключвате рекламните съобщения в чата. - Добавен е нов cvar за времето (в секунди) през което да се показват рекламните съобщения ( amx_sc_advert_time ).
Изображение

Потребителски аватар

hackera457 СОТА
Модератор
Модератор
Мнения: 632
Регистриран: 01 ное 2016, 09:46
Местоположение: София
Получена благодарност: 65 пъти
Години: 24
Контакти:

Server Commands v1.2

Мнение от hackera457 СОТА » 25 мар 2019, 23:31

Код: Избери всички

set_task(get_pcvar_float(cvar_time), "Advert", _,_,_, "b")

public Advert(id)
    if(g_AdvertMessage)
    {
	    CC_SendMessage(0, "^x03Write in the  chat &x01%s &x03or &x01%s &x03to view the commands information&x01.",firstcommand, secondcommand);
    }
Таска за реклама ти е глобален, а ти залагаш като параметър id. От сега ти казвам няма да работи, като е глобален таск, обходи всички играчи и токава задавай съобщението

Код: Избери всички

if(is_user_connected(id))
Напълно излишно в cmd1 и cmd2
Моите плъгини

Код: Избери всички

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


Потребителски аватар

Автор на темата
summertime vibes
Модератор
Модератор
Мнения: 1102
Регистриран: 27 ное 2016, 17:47
Местоположение: In the Heaven
Се отблагодари: 44 пъти
Получена благодарност: 92 пъти
Контакти:

Server Commands v1.2

Мнение от summertime vibes » 25 мар 2019, 23:41

Така?

Код: Избери всички

#include <amxmodx>
#include <formatin>
#include <cromchat>
#if AMXX_VERSION_NUM < 183
	#include <dhudmessage>
#endif

// Defines
#define AUTHOR "summertime vibes"
#define VERSION "1.2"

#define HudPrefix "[HUD Prefix]"
#define DHUDPrefix "[DHUD PREFIX]"

#define firstcommand "/command1"
#define secondcommand "/command2"

// New
new pCvar, pCvar2, cvar_time
new bool:g_AdvertMessage = true

// New Const
new const g_iCommand[] = { "/command1" }
new const g_iCommandTwo[] = { "/command2" }
new const g_iCommandAdvert[] = { "/scadvert" }

public plugin_init()
{
	register_plugin("Server Commands", VERSION, AUTHOR)

	for(new i; i<sizeof(g_iCommand); i++)
	{
		register_clcmd(formatin("say %s", g_iCommand[i]), "cmd1")
		register_clcmd(formatin("say_team %s", g_iCommand[i]), "cmd1")
	}

	for(new i; i<sizeof(g_iCommandTwo); i++)
	{
		register_clcmd(formatin("say %s", g_iCommandTwo[i]), "cmd2")
		register_clcmd(formatin("say_team %s", g_iCommandTwo[i]), "cmd2")
	}

	for(new i; i<sizeof(g_iCommandAdvert); i++)
	{
		register_clcmd(formatin("say %s", g_iCommandAdvert[i]), "advertcmd")
		register_clcmd(formatin("say_team %s", g_iCommandAdvert[i]), "advertcmd")
	}

	pCvar = register_cvar("amx_sc_message", "0") // 0 - chat ; 1 - hud ; 2 - dhud
	pCvar2 = register_cvar("amx_sc_message2", "0") // 0 - chat ; 1 - hud ; 2 - dhud
	cvar_time = register_cvar("amx_sc_advert_time", "300.0")

	set_task(get_pcvar_float(cvar_time), "Advert", _,_,_, "b");

	CC_SetPrefix("&x04[Server Commands]")
}

public Advert()
    if(g_AdvertMessage)
    {
	    CC_SendMessage(0, "^x03Write in the  chat &x01%s &x03or &x01%s &x03to view the commands information&x01.",firstcommand, secondcommand);
	    return
    }

public advertcmd(id)
{
	g_AdvertMessage = !g_AdvertMessage
	CC_SendMessage(id, "&x01Advert Messages have been &x03%s&x01.", g_AdvertMessage ? "enabled" : "disabled" );
}	    

public cmd(id)
{
		switch(get_pcvar_num(pCvar))
		{
			case 0: CC_SendMessage(id, "^x04The text when you write the command.")
			case 1:
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.26, 2, 6.0, 12.0)
	    	                show_hudmessage(id, "%s The text when you write the command.",HudPrefix)
    		}
			case 2:
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.26, 2, 6.0, 12.0)
	    		        show_dhudmessage(id, "%s The text when you write the command.",DHUDPrefix)
			}
		}
}

public cmd2(id)
{
		switch(get_pcvar_num(pCvar2))
		{
			case 0: CC_SendMessage(id, "^x04The text when you write the command.")
			case 1:
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.26, 2, 6.0, 12.0)
	    		        show_hudmessage(id, "%s The text when you write the command.",HudPrefix)
    		   }
			case 2:
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.26, 2, 6.0, 12.0)
	    		        show_dhudmessage(id, "%s The text when you write the command.",DHUDPrefix)
			    }
		}
}
Изображение

Потребителски аватар

<VeCo>
AMXX Скриптър
AMXX Скриптър
Мнения: 128
Регистриран: 28 яну 2019, 19:01
Се отблагодари: 5 пъти
Получена благодарност: 45 пъти
Години: 24
Контакти:

Server Commands v1.2

Мнение от <VeCo> » 25 мар 2019, 23:44

Кромчата приема индекс 0 за всички играчи, не е съществен проблем, въпреки, че наистина няма смисъл от id параметър горе, ако не го използваш (и в случая ще е 0 винаги така или иначе).

bool:g_AdvertMessage трябва да ти е масив, защото така който напише командата ще спира съобщенията за всички играчи (но като цяло май няма много смисъл от такава команда).

Също е добре да стартираш таска от plugin_cfg, след като amxx.cfg се е заредил, защото иначе времето няма да се промени на първия мап след стартиране на сървъра.

Код: Избери всички

#define firstcommand "/command1"
#define secondcommand "/command2"
Тия директиви май са останали от стара версия.

Дай линк към formatin библиотеката в първия пост.
:pepo_think3:

Потребителски аватар

Автор на темата
summertime vibes
Модератор
Модератор
Мнения: 1102
Регистриран: 27 ное 2016, 17:47
Местоположение: In the Heaven
Се отблагодари: 44 пъти
Получена благодарност: 92 пъти
Контакти:

Server Commands v1.2

Мнение от summertime vibes » 25 мар 2019, 23:47

Да, това с индекса го оправих. Беше с id параметър, защото преди това пробвах едно нещо да направя с плъгина и забравих да махна id.

Ако bool-a трябва да е с масив не трябва ли и advert съобщението да е с id параметър или ?

Това с plugin_cfg ще го оправя.
Изображение

Потребителски аватар

<VeCo>
AMXX Скриптър
AMXX Скриптър
Мнения: 128
Регистриран: 28 яну 2019, 19:01
Се отблагодари: 5 пъти
Получена благодарност: 45 пъти
Години: 24
Контакти:

Server Commands v1.2

Мнение от <VeCo> » 25 мар 2019, 23:49

summertime vibes написа:
25 мар 2019, 23:47
Ако bool-a трябва да е с масив не трябва ли и advert съобщението да е с id параметър или ?
Е да, в такъв случай ще ти трябва цикъл да обходиш всички играчи и да им го покажеш през техния индекс.
:pepo_think3:

Потребителски аватар

Автор на темата
summertime vibes
Модератор
Модератор
Мнения: 1102
Регистриран: 27 ное 2016, 17:47
Местоположение: In the Heaven
Се отблагодари: 44 пъти
Получена благодарност: 92 пъти
Контакти:

Server Commands v1.2

Мнение от summertime vibes » 25 мар 2019, 23:54

Сега малко безсмислен въпрос..

Код: Избери всички

public plugin_cfg()
{
	set_task(get_pcvar_float(cvar_time), "Advert", _,_,_, "b");
}
Тук има грешка, но не виждам как да я оправя. Plugin_cfg си е без параметър, а advert е с ID.. смисъл така правилно ли е, след като advert ще е с ID или?
Изображение

Отговори

Върни се в “Нови попълнения”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 1 гост