Server Commands v1.2

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

Server Commands v1.2

Мнение от illusion » 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 Байта) Свалено 215 пъти
formatin.rar
(562 Байта) Свалено 215 пъти
Последно промяна от illusion на 06 Окт 2018, 11:32, променено общо 8 пъти.

Аватар
Huehue
Извън линия
Модератор
Модератор
Мнения: 352
Регистриран на: 16 Яну 2017, 23:42
Местоположение: София
Се отблагодари: 7 пъти
Получена благодарност: 171 пъти
Обратна връзка:

Server Commands v1.0

Мнение от Huehue » 17 Сеп 2018, 18:55

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

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

My GitHub Profile
GitHub

My AMXX Includes Collection
AMXX Include Libraries

My Steam Profile (from SteamDB)
  • Value: 4179€
  • Games owned: 1855
  • Games played: 754 (40%)
  • Hours on record: 4,994.9h

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1796
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 358 пъти
Обратна връзка:

Server Commands v1.0

Мнение от illusion » 06 Окт 2018, 11:29

Оправено.
Update!

V1.1 Changelog:

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

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

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

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1796
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 358 пъти
Обратна връзка:

Server Commands v1.2

Мнение от illusion » 25 Мар 2019, 23:27

Update!

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

Аватар
hackera457
Извън линия
Модератор
Модератор
Мнения: 768
Регистриран на: 01 Ное 2016, 09:46
Местоположение: София
Се отблагодари: 1 път
Получена благодарност: 124 пъти
Обратна връзка:

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"){
}  


Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1796
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 358 пъти
Обратна връзка:

Server Commands v1.2

Мнение от illusion » 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 Скриптър
Мнения: 145
Регистриран на: 28 Яну 2019, 19:01
Се отблагодари: 11 пъти
Получена благодарност: 80 пъти
Обратна връзка:

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:

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1796
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 358 пъти
Обратна връзка:

Server Commands v1.2

Мнение от illusion » 25 Мар 2019, 23:47

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

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

Това с plugin_cfg ще го оправя.

Аватар
<VeCo>
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 145
Регистриран на: 28 Яну 2019, 19:01
Се отблагодари: 11 пъти
Получена благодарност: 80 пъти
Обратна връзка:

Server Commands v1.2

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

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

Аватар
illusion
Извън линия
Developer
Developer
Мнения: 1796
Регистриран на: 27 Ное 2016, 17:47
Местоположение: CraftVision
Се отблагодари: 151 пъти
Получена благодарност: 358 пъти
Обратна връзка:

Server Commands v1.2

Мнение от illusion » 25 Мар 2019, 23:54

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

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

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

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

Обратно към “Нови попълнения”

Кой е на линия

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