Плъгин "Steam_Bonus".

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Плъгин "Steam_Bonus".

Мнение от iv69 » 02 Авг 2018, 20:21

Може ли да бъде изработен "авторски" плъгин, който да "засича" само легалните Steam-играчи в сървъра(с наистина платен ЦС - а не с хакнати или кракнати ЦС-и... не разбирам много ама май така се казва...), и да ги прави VIP-играчи в сървъра, като просто им дава някакъв флаг, в слуачая за мене е флаг "m", t.e." m - custom level A" ?
Има обаче три важни подробности:
- 1. плъгина ми трябва за DeathMatch-сървър;
- 2. сървъра е с ботове, podbot_mm_i386.so - ако това нещо ви говори на вас скриптърите(споменавам ботовете , но тъй като по руските сайтове тамошните скриптъри май имат подобен плъгин,но пък когато има ботове, а сървъра е на платен хостинг или на специална платформа не разбирам много - но знам точно, че брои и ботовете за STEAM-играчи...:) което е доста неприятно... )
- 3. "m"-флага, който STEAM-играчите ще имат , да е "временен и валиден" само докато са в сървъра. Като идея прилагам по-долу подобен плъгин , който може да дава тези неща но не прави "разлика" между играчи и ботове... И май не засича много вярно кой е steam и кой не...
Накрая , ако може , на всеки стийм-играч, на когото му се дава описания флаг - да му изписва и някакво цветно съобщение на английски в чата след минута игра, за това , че е стийм-играчи и затова получава привилегии , ...
Благодаря, и се надявам , че и на други от вас е хрумвала подобна идея , някак си да бъдат стимулирани честните играчи, с платен ЦС!

Прилагам някакъв подобен код, като идея, който обаче не ми допадна много и не прави нещата точно:

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

#include <amxmodx>
#include <amxmisc>

#define PLUGIN	"Auto VIP [STEAM]"
#define VERSION	"1.1"
#define AUTHOR	"ArtHa"

new bool:steam[33];
new vipaccess[32];
new defaccess[32];

new check_time, amx_vip_access, amx_default_access, steam_check;

new const PREFIX[] = "^1[^4.::VIP::.^1]";

public plugin_init() 
{
	register_plugin( PLUGIN, VERSION, AUTHOR )
	register_dictionary( "auto_steam_vip.txt" )
	
	check_time = register_cvar( "amx_check_after", "10.0" )
	amx_vip_access = register_cvar( "amx_vip_access", "bit" )
	amx_default_access = register_cvar( "amx_default_access", "z" )
	steam_check = register_cvar( "amx_steam_check", "1" )
	
	register_clcmd("say", "handle_say")
}

public plugin_cfg( )
{
	new cfgdir[ 32 ]
	get_configsdir( cfgdir, charsmax( cfgdir ) )
	
	server_cmd( "exec %s/auto_steam_vip.cfg", cfgdir )
}

public client_putinserver( id )
{
	set_task( get_pcvar_float( check_time ), "check_access", id )
}

public check_access( id )
{
	steam[ id ] = ( is_user_steam( id ) )
	
	get_pcvar_string( amx_vip_access, vipaccess, 31 )
	get_pcvar_string( amx_default_access, defaccess, 31 )
	
	new defaccess2 = read_flags( defaccess )
	new vipaccess2 = read_flags( vipaccess )
	
	if( is_user_connected( id ) )
	{
		if( steam[ id ] )
		{
			if ( defaccess2 )
			{
				remove_user_flags( id, defaccess2 )
				set_user_flags( id, vipaccess2 )
				
				ChatColor( id, "%L", id, "GIVE_VIP", PREFIX )
				ChatColor( id, "%L", id, "GOOD_LUCK", PREFIX )
			}
		}
	}
}

public handle_say( id )
{
	new said[192]
	read_args( said,192 )

	if( get_pcvar_num( steam_check ) == 1 )
	{
		if( containi(said, "/steam") != -1 )
			show_users( id )
	}

	return PLUGIN_CONTINUE
}

public show_users( user ) 
{
	new steamnames[32][33]
	new message[256]
	new id, count, x, len
	
	new players[32], playersnum
	get_players( players, playersnum, "ch" )
	for( --playersnum; playersnum >= 0; playersnum-- )
	{
		id = players[playersnum]

		if( steam[ id ] )
		{
			get_user_name( id, steamnames[count++], charsmax(steamnames[]) )
		}
	}

	len = formatex(message, charsmax(message), "%L", user, "STEAM_ONLINE" )
	if( count > 0 ) 
	{
		for( x = 0 ; x < count ; x++ ) 
		{
			len += formatex(message[len], charsmax(message)-len, "^3 %s%s", steamnames[x], x < (count-1) ? ", ":"." )
			if( len > 96 ) 
			{
				ChatColor( user, message )
				len = format( message, 255, "^4" )
			}
		}
		ChatColor( user, message )
	}
	else
	{
		len += format( message[len], 255-len, " %L", user, "STEAM_OFFLINE" )
		ChatColor( user, message )
	}
}

stock bool:is_user_steam( id )
{
	static dp_pointer;

	if (dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
	{
		server_cmd("dp_clientinfo %d", id);
		server_exec();
		return (get_pcvar_num(dp_pointer) == 2) ? true : false;
	}

	return false;
}

stock ChatColor(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[192]
    vformat(msg, 191, input, 3)
   
    replace_all(msg, 191, "!g", "^4") // Green Color
    replace_all(msg, 191, "!y", "^1") // Default Color
    replace_all(msg, 191, "!t", "^3") // Team Color
   
    if (id) players[0] = id; else get_players(players, count, "ch")
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
}

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

Плъгин "Steam_Bonus".

Мнение от OciXCrom » 03 Авг 2018, 01:00

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

#include <amxmodx>
#include <cromchat>

#define VIP_FLAG ADMIN_LEVEL_A
#define DELAY_ON_CONNECT 5.0
#define DELAY_FOR_MESSAGE 60.0

public plugin_init()
{
	register_plugin("VIP for Steam Players", "1.0", "OciXCrom")
	CC_SetPrefix("&x04[Steam VIP]")
}

public client_authorized(id)
	set_task(DELAY_ON_CONNECT, "GiveVIP", id)

public GiveVIP(id)
{
	if(is_user_connected(id) && !is_user_bot(id) && is_user_steam(id))
	{
		set_user_flags(id, VIP_FLAG)
		set_task(DELAY_FOR_MESSAGE, "ShowMessage", id)
	}
}

public ShowMessage(id)
{
	if(is_user_connected(id))
		CC_SendMessage(id, "You get free &x03VIP extras &x01for having purchased the game from &x04Steam&x01.")
}

bool:is_user_steam(id)
{
	static iPointer

	if(iPointer || (iPointer = get_cvar_pointer("dp_r_id_provider")))
	{
		server_cmd("dp_clientinfo %d", id)
		server_exec()
		return (get_pcvar_num(iPointer) == 2)
	}

	return false
}

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Плъгин "Steam_Bonus".

Мнение от iv69 » 03 Авг 2018, 09:29

OciXCrom™ написа: 03 Авг 2018, 01:00

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

#include <amxmodx>
#include <cromchat>

#define VIP_FLAG ADMIN_LEVEL_A
#define DELAY_ON_CONNECT 5.0
#define DELAY_FOR_MESSAGE 60.0

public plugin_init()
{
	register_plugin("VIP for Steam Players", "1.0", "OciXCrom")
	CC_SetPrefix("&x04[Steam VIP]")
}

public client_authorized(id)
	set_task(DELAY_ON_CONNECT, "GiveVIP", id)

public GiveVIP(id)
{
	if(is_user_connected(id) && !is_user_bot(id) && is_user_steam(id))
	{
		set_user_flags(id, VIP_FLAG)
		set_task(DELAY_FOR_MESSAGE, "ShowMessage", id)
	}
}

public ShowMessage(id)
{
	if(is_user_connected(id))
		CC_SendMessage(id, "You get free &x03VIP extras &x01for having purchased the game from &x04Steam&x01.")
}

bool:is_user_steam(id)
{
	static iPointer

	if(iPointer || (iPointer = get_cvar_pointer("dp_r_id_provider")))
	{
		server_cmd("dp_clientinfo %d", id)
		server_exec()
		return (get_pcvar_num(iPointer) == 2)
	}

	return false
}
Оцикс , не знам как го правиш , но го правиш ПЕРФЕКТНО !!!
Спокойно мога да кажа, че за тебе тайни в тази сфера май няма... Навярно сте малко толкова способните като тебе.
Заключете.

Аватар
CVI
Извън линия
Потребител
Потребител
Мнения: 23
Регистриран на: 30 Юли 2018, 15:55
Се отблагодари: 1 път

Плъгин "Steam_Bonus".

Мнение от CVI » 03 Авг 2018, 11:00

А може ли плъгина да се върже към твоят плъгин ChatManager и чрез него да показва префикса Стеам вип във чата? Благодаря предварително! :)

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

Плъгин "Steam_Bonus".

Мнение от 1Life1Dead » 03 Авг 2018, 12:07

CVI написа: 03 Авг 2018, 11:00 А може ли плъгина да се върже към твоят плъгин ChatManager и чрез него да показва префикса Стеам вип във чата? Благодаря предварително! :)
Направи даденият флаг, който дава да е с префикс [VIP] щом ползваш ChatManager.

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

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

Кой е на линия

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