kf bitir diyince restart atsın yeter hocam
Printable View
kf bitir diyince restart atsın yeter hocam
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 /kfbitir", "CmdKnifeRoundEnd", ADMIN_BAN, "Stop Knife Round" );
register_clcmd( "say_team /kfbitir", "CmdKnifeRoundEnd", ADMIN_BAN, "Stop 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("Event_CTWin", 6, "3=CTs_Win", "3=All_Hostages_Rescued")
register_logevent("Event_TWin" , 6, "3=Terrorists_Win", "3=Target_Bombed")
register_logevent("Event_Draw" , 4, "1=Round_Draw")
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( 3.0, "KnifeRoundStart", id );
chat_color(0, "!g[SG] !yKnife Round Basladi.");
return PLUGIN_CONTINUE;
}
public CmdKnifeRoundEnd( id, level, cid ) {
if( !cmd_access( id, level, cid, 1 ) ) return PLUGIN_HANDLED;
g_bKnifeRound = false;
CmdRestartRound( id, level, cid );
chat_color(0, "!g[SG] !yKnife Round Durduruldu !");
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 Event_CTWin( ) {
if( g_bKnifeRound && get_pcvar_num( g_pSwapVote ) ) {
chat_color(0, "!g[SG] !yKnife Roundu Counter-Teroristler Kazandi.");
set_task( 6.0, "vote_ct" );
}
g_bKnifeRound = false;
return PLUGIN_CONTINUE;
}
public Event_TWin( ) {
if( g_bKnifeRound && get_pcvar_num( g_pSwapVote ) ) {
chat_color(0, "!g[SG] !yKnife Roundu Teroristler Kazandi.");
set_task( 6.0, "vote_t" );
}
g_bKnifeRound = false;
return PLUGIN_CONTINUE;
}
public Event_Draw( ) {
if( g_bKnifeRound && get_pcvar_num( g_pSwapVote ) ) {
chat_color(0, "!g[SG] !yKnife Round Berabere Bitti !");
}
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[SG] !yTakimlar Degistiriliyor ve Mac Basliyor.");
SwapTeams( );
}
else
{
chat_color(0, "!g[SG] !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();
}
}
}
}
/*--------------------------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)
}
Sorununu çözdüm kfbitir deyince normal olarak rr atıp normal oyun devam ediyor
Kod:#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 /kfbitir", "CmdKnifeRoundEnd", ADMIN_BAN, "Stop Knife Round" );
register_clcmd( "say_team /kfbitir", "CmdKnifeRoundEnd", ADMIN_BAN, "Stop 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("Event_CTWin", 6, "3=CTs_Win", "3=All_Hostages_Rescued")
register_logevent("Event_TWin" , 6, "3=Terrorists_Win", "3=Target_Bombed")
register_logevent("Event_Draw" , 4, "1=Round_Draw")
register_menucmd( register_menuid( "\rTakimlar 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 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 CmdRestartRound( id, level, cid ) {
if ( !cmd_access( id, level, cid, 1 ) ) return PLUGIN_HANDLED;
g_bKnifeRound = false;
server_cmd( "sv_restartround 1" );
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");
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( 3.0, "KnifeRoundStart", id );
chat_color(0, "!g[SG] !yKnife Round Basladi.");
return PLUGIN_CONTINUE;
}
public CmdKnifeRoundEnd( id, level, cid ) {
if( !cmd_access( id, level, cid, 1 ) ) return PLUGIN_HANDLED;
g_bKnifeRound = false;
server_cmd( "sv_restartround 1" );
chat_color(0, "!g[SG] !yKnife Round Durduruldu !");
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 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 Event_CTWin( ) {
if( g_bKnifeRound && get_pcvar_num( g_pSwapVote ) ) {
chat_color(0, "!g[SG] !yKnife Roundu Counter-Teroristler Kazandi.");
set_task( 6.0, "vote_ct" );
}
g_bKnifeRound = false;
return PLUGIN_CONTINUE;
}
public Event_TWin( ) {
if( g_bKnifeRound && get_pcvar_num( g_pSwapVote ) ) {
chat_color(0, "!g[SG] !yKnife Roundu Teroristler Kazandi.");
set_task( 6.0, "vote_t" );
}
g_bKnifeRound = false;
return PLUGIN_CONTINUE;
}
public Event_Draw( ) {
if( g_bKnifeRound && get_pcvar_num( g_pSwapVote ) ) {
chat_color(0, "!g[SG] !yKnife Round Berabere Bitti !");
}
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, "\rTakimlar 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[SG] !yTakimlar Degistiriliyor.");
SwapTeams( );
}
else
{
chat_color(0, "!g[SG] !yTakimlar Ayni Kaliyor.");
}
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();
}
}
}
}
/*--------------------------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)
}
ama ışınlanma sorununu çözemedim sorun şurda kf round başlarken rr atılıyor oyuncular teleport edildikten sonra rr atıldığı için oyuncular normal yerlerinde doğuyor bunun çözümü içinde rr komutundan sonra belli bir süre bekleyip ondan sonra teleport komutlarını çalıştırması lazım benim bununla ilgili hiçbir bilgim yok yukardaki sorunuda mantık kurarak çözdüm anlattığım şekilde yapabilecek bir arkadaş çıkarsa sorunun çözülmüş olur :)
biraz daha uğraşarak sorunu çözdüm şuanda hiçbir sıkıntı yok kullanabilirsin. :)
Kod:#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 /kfbitir", "CmdKnifeRoundEnd", ADMIN_BAN, "Stop Knife Round" );
register_clcmd( "say_team /kfbitir", "CmdKnifeRoundEnd", ADMIN_BAN, "Stop 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("Event_CTWin", 6, "3=CTs_Win", "3=All_Hostages_Rescued")
register_logevent("Event_TWin" , 6, "3=Terrorists_Win", "3=Target_Bombed")
register_logevent("Event_Draw" , 4, "1=Round_Draw")
register_menucmd( register_menuid( "\rTakimlar 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 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 );
}
set_task(1.0,"OtoTeleport")
return PLUGIN_CONTINUE;
}
public CmdRestartRound( id, level, cid ) {
if ( !cmd_access( id, level, cid, 1 ) ) return PLUGIN_HANDLED;
g_bKnifeRound = false;
server_cmd( "sv_restartround 1" );
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");
return PLUGIN_CONTINUE;
}
public CmdKnifeRound( id, level, cid ) {
if( !cmd_access( id, level, cid, 1 ) ) return PLUGIN_HANDLED;
CmdRestartRound( id, level, cid );
set_task( 1.2, "KnifeRoundStart", id );
chat_color(0, "!g[SG] !yKnife Round Basladi.");
return PLUGIN_CONTINUE;
}
public CmdKnifeRoundEnd( id, level, cid ) {
if( !cmd_access( id, level, cid, 1 ) ) return PLUGIN_HANDLED;
g_bKnifeRound = false;
server_cmd( "sv_restartround 1" );
chat_color(0, "!g[SG] !yKnife Round Durduruldu !");
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 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 Event_CTWin( ) {
if( g_bKnifeRound && get_pcvar_num( g_pSwapVote ) ) {
chat_color(0, "!g[SG] !yKnife Roundu Counter-Teroristler Kazandi.");
set_task( 6.0, "vote_ct" );
}
g_bKnifeRound = false;
return PLUGIN_CONTINUE;
}
public Event_TWin( ) {
if( g_bKnifeRound && get_pcvar_num( g_pSwapVote ) ) {
chat_color(0, "!g[SG] !yKnife Roundu Teroristler Kazandi.");
set_task( 6.0, "vote_t" );
}
g_bKnifeRound = false;
return PLUGIN_CONTINUE;
}
public Event_Draw( ) {
if( g_bKnifeRound && get_pcvar_num( g_pSwapVote ) ) {
chat_color(0, "!g[SG] !yKnife Round Berabere Bitti !");
}
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, "\rTakimlar 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[SG] !yTakimlar Degistiriliyor.");
SwapTeams( );
}
else
{
chat_color(0, "!g[SG] !yTakimlar Ayni Kaliyor.");
}
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();
}
}
}
}
/*--------------------------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)
}
Çözülmüş İsteklere taşındı.