100 Рублей Человеку Который Сотворит Чудо!

panov

New Member
Нужно сделать голосование к плагину, если оно успешно плагин включался если нет то нет.

Вот голосование

Убрать Jail клетку?
Да
Нет

Код:
#include <amxmodx>
#include <engine>
#include <fakemeta>

new gForwardSpawn;

new const gRemoveEntitys[][] = {
	"func_wall",
	"func_door_rotating",
	"func_button"
};

new const gRemoveSkins[][] = {
	"*16",
	"*19",
	"*20"
};

public plugin_init() {
	register_plugin( "surf_ski_2 Jail remover", "1.0", "xPaw" );
	
	register_cvar( "nojail_ss2", "1.0", FCVAR_SERVER | FCVAR_SPONLY );
	
	if( gForwardSpawn != 0 )
		unregister_forward( FM_Spawn, gForwardSpawn );
}

public plugin_precache() {
	new szMapName[ 11 ];
	get_mapname( szMapName, 10 );
	
	if( equal( szMapName, "surf_ski_2" ) )
		gForwardSpawn = register_forward( FM_Spawn, "fwdSpawn" );
}

public fwdSpawn( iEntity ) {
	if( pev_valid( iEntity ) ) {
		static szClassname[32], szModel[32];
		pev( iEntity, pev_classname, szClassname, 31 );
		pev( iEntity, pev_model, szModel, 31 );
		
		for( new i = 0; i < sizeof( gRemoveEntitys ); i++ )
			if( equal( szClassname, gRemoveEntitys[ i ] ) )
				for( new i = 0; i < sizeof( gRemoveSkins ); i++ )
					if( equal( szModel, gRemoveSkins[ i ] ) )
						engfunc( EngFunc_RemoveEntity, iEntity );
		
		if( equal( szClassname, "trigger_teleport" ) ) {
			new szTarget[ 7 ];
			pev( iEntity, pev_target, szTarget, 6 );
			
			if( equal( szTarget, "jailed" ) )
				set_pev( iEntity, pev_target, "jail" );
		}
		
		if( equal( szClassname, "info_target" ) ) {
			new szTargetname[ 7 ];
			pev( iEntity, pev_targetname, szTargetname, 6 );
			
			if( equal( szTargetname, "jail" ) ) {
				set_pev( iEntity, pev_classname, "info_teleport_destination" );
				DispatchKeyValue( iEntity, "angles", "0 270 0" );
			}
			else if( equal( szTargetname, "jailed" ) )
				engfunc( EngFunc_RemoveEntity, iEntity );
			else if( equal( szTargetname, "outs" ) ) {
				set_pev( iEntity, pev_classname, "info_teleport_destination" );
				DispatchKeyValue( iEntity, "angles", "0 270 0" );
			}
			else if( equal( szTargetname, "top1" ) ) {
				set_pev( iEntity, pev_classname, "info_teleport_destination" );
				DispatchKeyValue( iEntity, "angles", "0 270 0" );
			}
			else if( equal( szTargetname, "top2" ) ) {
				set_pev( iEntity, pev_classname, "info_teleport_destination" );
				DispatchKeyValue( iEntity, "angles", "0 180 0" );
			}
			else if( equal( szTargetname, "ctspawn" ) ) {
				set_pev( iEntity, pev_classname, "info_teleport_destination" );
				DispatchKeyValue( iEntity, "angles", "0 270 0" );
			}
			else if( equal( szTargetname, "tspawn" ) ) {
				set_pev( iEntity, pev_classname, "info_teleport_destination" );
				DispatchKeyValue( iEntity, "angles", "0 270 0" );
			}
		}
	}
	
	return FMRES_IGNORED;
}

За работу 100 рублей на WebMoney
 

Gho_OsT

New Member
Вместо pluginname введи название плагина.
При смене карты по умолчанию тот плагин выключен.
Голосование запускается командой /vote в чат.

Код:
#include <amxmodx>

new g_VoteMenu
new g_Votes[2]
new g_Voting

public plugin_init()
{
    register_clcmd("say /vote", "StartVote")
}

public plugin_cfg()
{
	server_cmd("amxx pause pluginname")
}
 
public StartVote(id)
{
    if (g_Voting)
    {
        client_print(id, print_chat, "Голосование началось")
        return PLUGIN_HANDLED
    }

    g_VoteMenu = menu_create("\rУбрать Jail клетку?:", "menu_handler")

    menu_additem(g_VoteMenu, "Да", "0", 0)
    menu_additem(g_VoteMenu, "Нет", "1", 0)
    
    new s_Players[32], i_Num, i_Player
    get_players(s_Players, i_Num)

    for (new i; i < i_Num; i++)
    {
        i_Player = s_Players[i]

        menu_display(i_Player, g_VoteMenu, 0)

        g_Voting++
    }

    set_task(10.0, "EndVote")

    return PLUGIN_HANDLED
}
 
public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
        return PLUGIN_HANDLED

    new s_Data[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    new i_Vote = str_to_num(s_Data)

    g_Votes[i_Vote]++

    return PLUGIN_HANDLED
}
 
public EndVote()
{
    if (g_Votes[0] > g_Votes[1])
    {
        client_print(0, print_chat, "Большинство проголосовало за первый вариант! (%d) голосов", g_Votes[0])
	server_cmd("amxx unpause pluginname")
    }
    else if (g_Votes[1] > g_Votes[0])
    {
    	server_cmd("amxx pause pluginname")
        client_print(0, print_chat, "Большинство проголосовало за второй вариант! (%d) голосов", g_Votes[1])
    }
    else{
        client_print(0, print_chat, "Одинаковое количество голосов! (%d)", g_Votes[0])
    }

    menu_destroy(g_VoteMenu)

    g_Voting = 0
}
 

panov

New Member
Вместо pluginname введи название плагина.
При смене карты по умолчанию тот плагин выключен.
Голосование запускается командой /vote в чат.

Код:
#include <amxmodx>

new g_VoteMenu
new g_Votes[2]
new g_Voting

public plugin_init()
{
    register_clcmd("say /vote", "StartVote")
}

public plugin_cfg()
{
	server_cmd("amxx pause pluginname")
}
 
public StartVote(id)
{
    if (g_Voting)
    {
        client_print(id, print_chat, "Голосование началось")
        return PLUGIN_HANDLED
    }

    g_VoteMenu = menu_create("\rУбрать Jail клетку?:", "menu_handler")

    menu_additem(g_VoteMenu, "Да", "0", 0)
    menu_additem(g_VoteMenu, "Нет", "1", 0)
    
    new s_Players[32], i_Num, i_Player
    get_players(s_Players, i_Num)

    for (new i; i < i_Num; i++)
    {
        i_Player = s_Players[i]

        menu_display(i_Player, g_VoteMenu, 0)

        g_Voting++
    }

    set_task(10.0, "EndVote")

    return PLUGIN_HANDLED
}
 
public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
        return PLUGIN_HANDLED

    new s_Data[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    new i_Vote = str_to_num(s_Data)

    g_Votes[i_Vote]++

    return PLUGIN_HANDLED
}
 
public EndVote()
{
    if (g_Votes[0] > g_Votes[1])
    {
        client_print(0, print_chat, "Большинство проголосовало за первый вариант! (%d) голосов", g_Votes[0])
	server_cmd("amxx unpause pluginname")
    }
    else if (g_Votes[1] > g_Votes[0])
    {
    	server_cmd("amxx pause pluginname")
        client_print(0, print_chat, "Большинство проголосовало за второй вариант! (%d) голосов", g_Votes[1])
    }
    else{
        client_print(0, print_chat, "Одинаковое количество голосов! (%d)", g_Votes[0])
    }

    menu_destroy(g_VoteMenu)

    g_Voting = 0
}
Надо чтобы он автоматом открывался когда стоит карта surf_ski_2
 

Gho_OsT

New Member
Код:
#include <amxmodx>

new g_VoteMenu
new g_Votes[2]
new g_Voting

public plugin_init()
{
    register_clcmd("say /vote", "StartVote")
}

public plugin_cfg()
{
new mapname[32]
get_mapname(mapname,31)
        if(equali(mapname, "surf_ski_2l"))
       {
                   set_task(10.0, "StartVote")
}
}
 
public StartVote(id)
{
    if (g_Voting)
    {
        client_print(id, print_chat, "Голосование началось")
        return PLUGIN_HANDLED
    }

    g_VoteMenu = menu_create("\rУбрать Jail клетку?:", "menu_handler")

    menu_additem(g_VoteMenu, "Да", "0", 0)
    menu_additem(g_VoteMenu, "Нет", "1", 0)
    
    new s_Players[32], i_Num, i_Player
    get_players(s_Players, i_Num)

    for (new i; i < i_Num; i++)
    {
        i_Player = s_Players[i]

        menu_display(i_Player, g_VoteMenu, 0)

        g_Voting++
    }

    set_task(10.0, "EndVote")

    return PLUGIN_HANDLED
}
 
public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
        return PLUGIN_HANDLED

    new s_Data[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    new i_Vote = str_to_num(s_Data)

    g_Votes[i_Vote]++

    return PLUGIN_HANDLED
}
 
public EndVote()
{
    if (g_Votes[0] > g_Votes[1])
    {
        client_print(0, print_chat, "Большинство проголосовало за первый вариант! (%d) голосов", g_Votes[0])
        server_cmd("amxx unpause pluginname")
    }
    else if (g_Votes[1] > g_Votes[0])
    {
        server_cmd("amxx pause pluginname")
        client_print(0, print_chat, "Большинство проголосовало за второй вариант! (%d) голосов", g_Votes[1])
    }
    else{
        client_print(0, print_chat, "Одинаковое количество голосов! (%d)", g_Votes[0])
    }

    menu_destroy(g_VoteMenu)

    g_Voting = 0
}
 

panov

New Member
Голосование создается! но не работает!!!!
Если вариант 1 отвечают клетка исчезает если 2 то тоже!
 
Сверху