PHP- Kodu:
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include <fun>
#include <engine>
#define PLUGIN "Knife Round"
#define VERSION "2.0"
#define AUTHOR "shake"
new bool:g_bKnifeRound;
new bool:g_bVotingProcess;
new g_iMaxPlayers;
new g_Votes[ 2 ];
new g_pSwapVote;
new g_pNoslash;
new iMaxPlayers;
public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR );
g_pSwapVote = register_cvar( "kr_swapvote", "1" );
g_pNoslash = register_cvar( "kr_noslash", "1" );
register_clcmd( "say /kf", "CmdKnifeRound", ADMIN_BAN, "Start Knife Round" );
register_clcmd( "say_team /kf", "CmdKnifeRound", ADMIN_BAN, "Start Knife Round" );
register_clcmd( "say /kr", "CmdKnifeRound", ADMIN_BAN, "Start Knife Round" );
register_clcmd( "say /kniferound", "CmdKnifeRound", ADMIN_BAN, "Start Knife Round" );
register_clcmd( "shield", "BlockCmds" );
register_clcmd( "cl_rebuy", "BlockCmds" );
register_event( "CurWeapon", "EventCurWeapon", "be", "2!29" );
register_logevent( "EventRoundEnd", 2, "0=World triggered", "1=Round_Draw", "1=Round_End" );
register_menucmd( register_menuid( "\r* \yTakimlar Degistirilsin mi?" ), 1023, "MenuCommand" );
RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_knife", "HamKnifePrimAttack" );
g_iMaxPlayers = get_maxplayers( );
register_srvcmd("kfteleport","OtoTeleport")
iMaxPlayers = get_maxplayers();
}
public EventCurWeapon( id ) {
if( g_bKnifeRound ) engclient_cmd( id, "weapon_knife" );
return PLUGIN_CONTINUE;
}
public CmdRestartRound( id, level, cid ) {
if ( !cmd_access( id, level, cid, 1 ) ) return PLUGIN_HANDLED;
g_bKnifeRound = false;
set_cvar_string("mp_autokick", "0");
set_cvar_string("mp_freezetime", "5");
set_cvar_string("mp_autoteambalance", "0");
set_cvar_string("mp_limitteams", "0");
set_cvar_string("mp_friendlyfire", "1");
set_cvar_string("sv_alltalk", "0");
set_cvar_string("mp_startmoney", "800");
set_cvar_string("mp_timelimit", "0");
set_cvar_string("mp_forcecamera", "2");
set_cvar_string("mp_forcechasecam", "2");
set_cvar_string("mp_flashlight", "1");
set_cvar_string("mp_tkpunish", "0");
set_cvar_string("mp_c4timer", "35");
set_cvar_string("mp_roundtime", "1.75");
set_cvar_string("mp_footsteps", "1");
set_cvar_string("mp_buytime", "0.25");
set_cvar_string("mp_maxrounds", "0");
set_cvar_string("allow_spectators", "1");
set_cvar_string("mp_logmessages", "1");
server_cmd( "sv_restartround 1" );
set_task(1.6,"OtoTeleport");
return PLUGIN_CONTINUE;
}
public CmdKnifeRound( id, level, cid ) {
if( !cmd_access( id, level, cid, 1 ) ) return PLUGIN_HANDLED;
CmdRestartRound( id, level, cid );
set_task( 2.0, "KnifeRoundStart", id );
chat_color(0, "!g[COOLCLAN] !yKnife Round Basladi.");
return PLUGIN_CONTINUE;
}
public CmdSwapTeams( id,level,cid ) {
if( !cmd_access( id, level, cid, 1 ) ) return PLUGIN_HANDLED;
SwapTeams( );
CmdRestartRound( id, level, cid );
return PLUGIN_CONTINUE;
}
public KnifeRoundStart( ) {
g_bKnifeRound = true;
g_bVotingProcess = false;
new players[ 32 ], num;
get_players( players, num );
for( new i = 0; i < num ; i++ )
{
new item = players[ i ];
EventCurWeapon( item );
}
return PLUGIN_CONTINUE;
}
public SwapTeams( ) {
for( new i = 1; i <= g_iMaxPlayers; i++ ) {
if( is_user_connected( i ) )
{
switch( cs_get_user_team( i ) )
{
case CS_TEAM_T: cs_set_user_team( i, CS_TEAM_CT );
case CS_TEAM_CT: cs_set_user_team( i, CS_TEAM_T );
}
}
}
}
public EventRoundEnd( ) {
if( g_bKnifeRound && get_pcvar_num( g_pSwapVote ) ) {
if(!is_only_terrorist())
{
chat_color(0, "!g[COOLCLAN] !yKnife Roundu Counter-Teroristler Kazandi.");
set_task( 6.0, "vote_ct" );
}
else
{
chat_color(0, "!g[COOLCLAN] !yKnife Roundu Teroristler Kazandi.");
set_task( 6.0, "vote_t" );
}
}
g_bKnifeRound = false;
return PLUGIN_CONTINUE;
}
public vote_t( ) {
for( new i = 1; i <= g_iMaxPlayers; i++ ) {
if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_T )
{
ShowMenu( i );
}
}
set_task( 8.0, "finishvote" );
}
public vote_ct( ) {
for( new i = 1; i <= g_iMaxPlayers; i++ ) {
if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_CT )
{
ShowMenu( i );
}
}
set_task( 8.0, "finishvote" );
}
public ShowMenu( id ) {
g_bVotingProcess = true;
if( g_bVotingProcess ) {
new szMenuBody[ 256 ], keys;
new nLen = format( szMenuBody, 255, "\r* \yTakimlar Degistirilsin mi?^n" );
nLen += format( szMenuBody[nLen], 255-nLen, "^n\r1. \wEvet" );
nLen += format( szMenuBody[nLen], 255-nLen, "^n\r2. \wHayir" );
nLen += format( szMenuBody[nLen], 255-nLen, "^n^n\r0. \wCikis" );
keys = ( 1<<0 | 1<<1 | 1<<9 );
show_menu( id, keys, szMenuBody, -1 );
}
return PLUGIN_CONTINUE;
}
public MenuCommand( id, key ) {
if( !g_bVotingProcess ) return PLUGIN_HANDLED;
new szName[ 32 ];
get_user_name( id, szName, charsmax( szName ) );
switch( key )
{
case 0:
{
g_Votes[ 0 ]++;
}
case 1:
{
g_Votes[ 1 ]++;
}
case 9: show_menu( id, 0, "" );
}
return PLUGIN_HANDLED;
}
public finishvote( ) {
if( !g_bVotingProcess ) return PLUGIN_HANDLED;
server_cmd( "sv_restartround 1" );
if ( g_Votes[ 0 ] > g_Votes[ 1 ] )
{
chat_color(0, "!g[COOLCLAN] !yTakimlar Degistiriliyor ve Mac Basliyor.");
SwapTeams( );
}
else
{
chat_color(0, "!g[COOLCLAN] !yTakimlar Ayni Kaliyor ve Mac Basliyor.");
}
g_Votes[ 0 ] = 0;
g_Votes[ 1 ] = 0;
g_bVotingProcess = false;
return PLUGIN_HANDLED;
}
public HamKnifePrimAttack( iEnt ) {
if( g_bKnifeRound && get_pcvar_num( g_pNoslash ) )
{
ExecuteHamB( Ham_Weapon_SecondaryAttack, iEnt );
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public BlockCmds( ) {
if( g_bKnifeRound ) {
return PLUGIN_HANDLED_MAIN;
}
return PLUGIN_CONTINUE;
}
/*------------------------OTOMATİK TELEPORT------------------------------*/
public OtoTeleport() {
new map[32];
get_mapname(map,31)
new originct[3];
new origint[3];
if(equali(map,"de_dust2")) {
//Ct Koordinatlari
originct[0] = 1373; // X
originct[1] = 1988; // Y
originct[2] = 45; // Z
//T Koordinatlari
origint[0] = 1550; // X
origint[1] = 1147; // Y
origint[2] = 45; // Z
}
else if(equali(map,"de_inferno")) {
//Ct Koordinatlari
originct[0] = 1366; // X
originct[1] = 955; // Y
originct[2] = 196; // Z
//T Koordinatlari
origint[0] = 1514; // X
origint[1] = 457; // Y
origint[2] = 196; // Z
}
else if(equali(map,"de_nuke")) {
originct[0] = 1035; // X
originct[1] = -1761; // Y
originct[2] = -379; // Z
//T Koordinatlari
origint[0] = 1179; // X
origint[1] = -2183; // Y
origint[2] = -379; // Z
}
else if(equali(map,"de_train")) {
originct[0] = -768; // X
originct[1] = 1196; // Y
originct[2] = -187; // Z
//T Koordinatlari
origint[0] = -615; // X
origint[1] = 777; // Y
origint[2] = -187; // Z
}
for(new i = 0;i<iMaxPlayers;i++) {
if(get_user_team(i) == 1) {
set_user_origin(i,origint)
origint[0]-= 40;
}
else if(get_user_team(i) == 2) {
set_user_origin(i,originct)
originct[0]+= 40;
}
}
for(new i = 0;i<iMaxPlayers;i++) {
check_user_angles(i)
}
return PLUGIN_HANDLED
}
/*------------------------YAZI RENKLENDİRME------------------------------*/
stock chat_color(const id, const input[], any:...) {
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
replace_all(msg, 190, "!team2", "^0")
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();
}
}
}
}
/*--------------------------CT KONTROLU---------------------------------*/
stock is_only_terrorist() {
for(new i = 0;i<iMaxPlayers;i++) {
if(get_user_team(i) == 2 && is_user_alive(i)) {
// Canlı CT Tespit Edildi !
return 0;
}
}
return 1;
}
/*--------------------------AÇI DÜZELTİCİ------------------------------*/
stock check_user_angles(id) {
new Float:Angle[3];
entity_get_vector(id,EV_VEC_angles,Angle)
if(get_user_team(id) == 2) {
Angle[1] = 270.0;
}
else if(get_user_team(id) == 1) {
Angle[1] = 90.0
}
entity_set_vector(id,EV_VEC_angles,Angle)
entity_set_int(id,EV_INT_fixangle,1)
}
engine kullandım. pev yok yani.