Raised This Month: $51 Target: $400
 12% 

Vote menu for kill


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
wicho
Veteran Member
Join Date: Feb 2012
Location: GuateAmala
Old 12-12-2020 , 20:31   Vote menu for kill
Reply With Quote #1

Hello everyone, I found this code that makes when a player writes /votekill he gets a menu with all the players and when he selects a name all the players get that if they want to kill that player if the majority vote yes he kills him and if it is the opposite, it does not kill him, what I want to do is that when one writes /votekill, all the living players will get a menu with all the names of the live players on the server and that they vote for who wants to kill the player who receives the most votes it kills it, could someone help me please? ... Thanks in advance

PHP Code:
#include <amxmodx>

#define SetPlayerBit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) )
#define ClearPlayerBit(%1,%2) ( %1 &= ~( 1 << ( %2 & 31 ) ) )
#define GetPlayerBit(%1,%2) ( ( 1 <= %2 <= 32 ) && ( %1 & ( 1 << ( %2 & 31 ) ) ) )

enum _:Vote_Type {
    
VT_Accept,
    
VT_Reject
}

const 
MENU_KEYS MENU_KEY_1|MENU_KEY_2;

new const 
g_szCountdown[ ][ ] = { "one","two","three","four","five","six","seven","eight","nine","ten" };

new 
g_iVoted,
    
g_iJudged,
    
g_iSayText,
    
g_iConnected,
    
g_iCountDown,
    
g_iSyncObject,
    
g_iMaxPlayers,
    
g_szVoted32 ],
    
Float:g_fLastKill,
    
g_iPlayerVotesVote_Type ];

public 
plugin_init( )
{
    
register_plugin"Votekill""1.0""Manu" );
    
    
register_clcmd"say /votekill""CommandVotekill" );
    
    
register_menucmdregister_menuid"Votekill Menu" ), MENU_KEYS"VoteHandler" );
    
    
g_iSyncObject CreateHudSyncObj( );
    
g_iMaxPlayers get_maxplayers( );
    
g_iSayText get_user_msgid"SayText" );
}

/* ===================================================
*                 [ Tasks ]
* ==================================================== */

public DoCountdown( )
{
    
set_hudmessage85212255, -1.00.812.01.0 );
    
ShowSyncHudMsg0g_iSyncObject"[ Votekill ] Voting will end in %d second(s)"g_iCountDown );
    
    
ShowVotekillMenu);
    
    
client_cmd0"spk %s"g_szCountdown[ --g_iCountDown ] );
}

public 
EndVotekill( )
{    
    
set_hudmessage85212255, -1.00.812.03.0 );
    
    if( 
g_iPlayerVotesVT_Reject ] < g_iPlayerVotesVT_Accept ] )
    {
        new 
iId GetUserIndexg_iJudged );
        
        if( 
GetPlayerBitg_iConnectediId ) )
        {
            
user_killiId );
            
            
ShowSyncHudMsg0g_iSyncObject"Enough votes were obtained^nPlayer %s has been killed!"g_szVoted );
        }
        else
            
ShowSyncHudMsg0g_iSyncObject"Player %s disconnected before punishment."g_szVoted );
    }
    else
        
ShowSyncHudMsg0g_iSyncObject"Not enough votes were obtained." );
}

/* ===================================================
*                 [ Client-related ]
* ==================================================== */

public client_putinserveriId SetPlayerBitg_iConnectediId );
public 
client_disconnectiId ClearPlayerBitg_iConnectediId );

public 
CommandVotekilliId )
{
    if( 
g_fLastKill get_gametime( ) )
    {
        if( 
get_playersnum( ) >= )
        {
            static 
iMenuiPlayerszData], szName16 ]; iMenu menu_create"\wPlayers list""VotekillHandler" );
            
            for( 
iPlayer 1iPlayer <= g_iMaxPlayersiPlayer++ )
            {
                if( !
GetPlayerBitg_iConnectediPlayer ) || ( get_user_flagsiPlayer ) & ADMIN_IMMUNITY ) )
                    continue;
                
                
get_user_nameiPlayerszNamecharsmaxszName ) );
                
formatexszDatacharsmaxszData ), "%d %d"iPlayerget_user_useridiPlayer ) );
                
                
menu_additemiMenuszNameszData );
            }
            
            
menu_setpropiMenuMPROP_NEXTNAME"Next" );
            
menu_setpropiMenuMPROP_BACKNAME"Back" );
            
menu_setpropiMenuMPROP_EXITNAME"Cancel" );
            
            
menu_displayiIdiMenu );
        }
        else
            
PrintColoriId,"^x04[Votekill]^x01 There must be at least three players to start a vote." );
    }
    else
        
PrintColoriId,"^x04[Votekill]^x01 Remain^x04 %d^x01 seconds remaining before another votekill can be started.",floatroundg_fLastKill get_gametime( ) ) );
    
    return 
PLUGIN_HANDLED;
}

public 
VotekillHandleriIdiMenuiItem )
{
    if( 
iItem != MENU_EXIT )
    {
        static 
szData], szPlayer], iNumiPlayerszName32 ];
        
        
menu_item_getinfoiMenuiItemiNumszDatacharsmaxszData ), __iNum );
        
        
strtokszDataszPlayercharsmaxszPlayer ), szDatacharsmaxszData ), ' 'true );
        
        if( 
GetPlayerBitg_iConnected, ( iPlayer str_to_numszPlayer ) ) ) && ( get_user_useridiPlayer ) == str_to_numszData ) ) )
        {
            
g_iJudged get_user_useridiPlayer );
            
get_user_nameiIdszNamecharsmaxszName ) );
            
get_user_nameiPlayerg_szVotedcharsmaxg_szVoted ) );
            
            
PrintColor0"^x04[Votekill]^x01 The player^x04 %s^x01 has started a^x04 votekill^x01 against^x04 %s^x01."szNameg_szVoted );
            
            
StartVotekill( );
        }
    }
}

public 
VoteHandleriIdiKey )
{
    if( !
GetPlayerBitg_iConnectediId ) || GetPlayerBitg_iVotediId ) )
        return 
PLUGIN_HANDLED;
    
    
g_iPlayerVotesiKey ]++;
    
SetPlayerBitg_iVotediId );
    
client_cmdiId,"spk buttons/lightswitch2.wav" );
    
    
ShowVotekillMenuiId );
    
    return 
PLUGIN_HANDLED;
}

/* ===================================================
*                 [ Other functions ]
* ==================================================== */

GetUserIndex( const iUserId )
{
    for( new 
iPlayer 1iPlayer <= g_iMaxPlayersiPlayer++ )
    {
        if( !
GetPlayerBitg_iConnectediPlayer ) || ( get_user_useridiPlayer ) != iUserId ) )
            continue;
        
        return 
iPlayer;
    }
    
    return 
0;
}

StartVotekill( )
{
    
g_iCountDown 10;
    
    
g_iPlayerVotesVT_Accept ] = 0;
    
g_iPlayerVotesVT_Reject ] = 0;
    
    
g_fLastKill get_gametime( ) + 120.0;
    
    for( new 
iPlayer 1iPlayer <= g_iMaxPlayersiPlayer++ )
        
ClearPlayerBitg_iVotediPlayer );
    
    
set_task1.0"DoCountdown", .flags "a", .repeat 10 );
    
set_task12.0"EndVotekill" );
}

ShowVotekillMenuiId )
{
    static 
szBuffer256 ], iLen;
    
    
iLen formatexszBuffercharsmaxszBuffer ), "Vote to assassinate\y%s\w^n^n"g_szVoted );
    
iLen += formatexszBufferiLen ], charsmaxszBuffer ) - iLen"\r[1] \yAccept \w[ Votes: \y%d \w]^n"g_iPlayerVotesVT_Accept ] );
    
iLen += formatexszBufferiLen ], charsmaxszBuffer ) - iLen"\r[2] \yRefuse \w[ Votes: \y%d \w]^n^n"g_iPlayerVotesVT_Reject ] );
    
iLen += formatexszBufferiLen ], charsmaxszBuffer ) - iLen"\r[!] \wVoting ends in \y%d segcond(s)"g_iCountDown );
    
    
show_menuiIdMENU_KEYSszBuffer1"Votekill Menu" );
    
    return 
PLUGIN_HANDLED;
}

PrintColoriIdszText[ ], any:... )
{
    static 
szBuffer192 ]; vformatszBuffercharsmaxszBuffer ), szText);
    
    if( !
iId 
    {
        
message_beginMSG_ALLg_iSayText_iId );
        
write_byte);
        
write_stringszBuffer );
        
message_end( );
    }
    else 
    {
        
message_beginMSG_ONEg_iSayText_iId );
        
write_byteiId );
        
write_stringszBuffer );
        
message_end( );
    }


Last edited by wicho; 12-12-2020 at 20:41.
wicho is offline
Natsheh
Veteran Member
Join Date: Sep 2012
Old 12-28-2020 , 11:57   Re: Vote menu for kill
Reply With Quote #2

so you want to remove the voting timer ?
__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !

Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 12:39.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode