#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>
#define IsPlayer(%1) ( 1 <= %1 <= g_maxplayers )
// ColorChat
enum Color
{
NORMAL = 1,
GREEN, // zold
TEAM_COLOR, // Piros, Kek, Szurke
GREY, // Szurke
RED, // Piros
BLUE, // Kek
}
new TeamName[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
new sPrefix[] = "[.:Deagle Kor:.]" ;
new g_maxplayers;
new SysTime;
new bool:deagleround = false;
new Trie:g_tBuyCommands;
public plugin_init( )
{
register_plugin( "Deagle Fordulo", "1.0", "Yousef" );
register_clcmd( "deagle_round", "DRound", ADMIN_BAN, "Deagle kör indítása." ); // active deagle round
register_cvar( "deagle_wait", "20" );
register_cvar( "deagle_ammo", "10" );
new const szBuyCommands[ ][ ] =
{
"usp", "glock", "deagle", "p228", "elites", //letiltja ezeket a fegyokat nem lehet felvenni., meg a parancsokat is letiltja.
"fn57", "m3", "xm1014", "mp5", "tmp", "p90",
"mac10", "ump45", "ak47", "galil", "famas",
"sg552", "m4a1", "aug", "scout", "awp", "g3sg1",
"sg550", "m249", "vest", "vesthelm", "flash",
"hegren", "sgren", "defuser", "nvgs", "shield",
"primammo", "secammo", "km45", "9x19mm", "nighthawk",
"228compact", "fiveseven", "12gauge", "autoshotgun",
"mp", "c90", "cv47", "defender", "clarion", "krieg552",
"bullpup", "magnum", "d3au1", "krieg550",
"buy", "buyammo1", "buyammo2", "buyequip", "cl_autobuy",
"cl_rebuy", "cl_setautobuy", "cl_setrebuy", "jointeam", "drop"
}
g_tBuyCommands = TrieCreate( );
for( new i = 0; i < sizeof( szBuyCommands ); i++ )
{
TrieSetCell( g_tBuyCommands, szBuyCommands[ i ], i );
}
register_logevent( "RoundStart", 2, "1=Round_Start" );
register_logevent( "RoundEnd", 2, "1=Round_End" );
register_touch("weaponbox", "player", "fw_BlockWeaponPickUp");
register_touch("armoury_entity", "player", "fw_BlockWeaponPickUp");
register_touch("weapon_shield", "player", "fw_BlockWeaponPickUp");
g_maxplayers = get_maxplayers();
}
public RoundStart( )
{
SysTime = get_systime();
}
public plugin_end( )
{
TrieDestroy( g_tBuyCommands );
}
public DRound( id, level, cid )
{
if( !cmd_access( id, level, cid, 1 ) )
return PLUGIN_HANDLED;
if( deagleround == true )
{
console_print( id, "Deagle fordulóban már aktiválva ebben a körben" );
return PLUGIN_HANDLED;
}
new deaglewait = get_cvar_num( "deagle_wait" );
if( get_systime() - SysTime > deaglewait )
{
console_print( id, "Nem tudja aktiválni a Deagle fordulóban, mert már játszott ebben a körben %d másodpercet", deaglewait );
return PLUGIN_HANDLED;
}
deagleround = true;
new iPlayers[32], iNum, Players;
get_players( iPlayers, iNum, "ach" );
for( new i = 0 ; i < iNum ; i++ )
{
Players = iPlayers[i];
strip_user_weapons( Players );
give_item( Players, "weapon_knife" );
give_item( Players, "weapon_deagle" );
new deagleammo = get_cvar_num( "deagle_ammo" )
if( deagleammo <= 0 )
{
cs_set_weapon_ammo( find_ent_by_owner( 1, "weapon_deagle", Players ), 0 );
}
else
{
cs_set_weapon_ammo( find_ent_by_owner( 1, "weapon_deagle", Players ), deagleammo );
}
}
new AdminName[32];
get_user_name( id, AdminName, charsmax( AdminName ) );
ColorChat( 0, RED, "^4%s ^3 Az Admin ^4%s ^3Indított egy Deagle fordulót!!.", sPrefix, AdminName );
ColorChat( 0, RED, "^4%s ^3 Az Admin ^4%s ^3Indított egy Deagle fordulót!!.", sPrefix, AdminName );
ColorChat( 0, RED, "^4%s ^3 Az Admin ^4%s ^3Indított egy Deagle fordulót!!.", sPrefix, AdminName );
return PLUGIN_HANDLED;
}
public fw_BlockWeaponPickUp(iTouched, iToucher)
{
if( deagleround )
{
if( IsPlayer( iToucher ) )
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE
}
public RoundEnd( )
{
deagleround = false;
}
public client_kill( id )
{
if( deagleround == true )
{
console_print( id, "Ön Nem tudja használni a kill parancsot deagle forduló-ban!!!" );
console_print( id, "Ön Nem tudja használni a kill parancsot deagle forduló-ban!!!" );
console_print( id, "Ön Nem tudja használni a kill parancsot deagle forduló-ban!!!" );
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public client_command( client )
{
if( deagleround )
{
if( !is_user_alive( client ) )
{
return PLUGIN_CONTINUE;
}
static szArg[ 15 ];
if( read_argv( 0, szArg, 14 ) > 13 )
{
return PLUGIN_CONTINUE;
}
strtolower( szArg );
if( TrieKeyExists( g_tBuyCommands, szArg ) )
{
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE;
}
// ColorChat
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
if( !get_playersnum() ) return;
new message[256];
switch(type)
{
case NORMAL:
{
message[0] = 0x01;
}
case GREEN: // zold
{
message[0] = 0x04;
}
default: // feher, piros, kek
{
message[0] = 0x03;
}
}
vformat(message[1], 251, msg, 4);
message[192] = '^0';
new team, ColorChange, index, MSG_Type;
if(id)
{
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}
team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);
ShowColorMessage(index, MSG_Type, message);
if(ColorChange)
{
Team_Info(index, MSG_Type, TeamName[team]);
}
}
ShowColorMessage(id, type, message[])
{
static bool:saytext_used;
static get_user_msgid_saytext;
if(!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = true;
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id)
write_string(message);
message_end();
}
Team_Info(id, type, team[])
{
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();
return 1;
}
ColorSelection(index, type, Color:Type)
{
switch(Type)
{
case RED:
{
return Team_Info(index, type, TeamName[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamName[2]);
}
case GREY:
{
return Team_Info(index, type, TeamName[0]);
}
}
return 0;
}
FindPlayer()
{
new i = -1;
while(i <= get_maxplayers())
{
if(is_user_connected(++i))
return i;
}
return -1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/