Senior Member
Join Date: Nov 2013
Location: Vilnius, Lithuania
|
09-07-2016
, 10:14
Re: [HELP] CM manager errors
|
#3
|
Quote:
Originally Posted by Napoleon_be
PHP Code:
/////Created:
////||||\\\\\\ \ / #define AUTHOR "Drakeris"
////|||| \\ \ / #define AUTHOR "Drakeris"
////|||| \\ \ / #define AUTHOR "Drakeris"
////|||| \\ \ / #define AUTHOR "Drakeris"
////||||\\\\\\ \/ #define AUTHOR "Drakeris"
////|||| \\ | #define AUTHOR "Drakeris"
////|||| \\ | #define AUTHOR "Drakeris"
////|||| \\ | #define AUTHOR "Drakeris"
////||||\\\\\\ | #define AUTHOR "Drakeris"
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#define PLUGIN "CGM"
#define VERSION "1.0"
#define AUTHOR "Drakeris"
#define TASK_CAMBIO 004
//////new functions....
new g_SAY, g_pPasswordPointer
new g_enable, knife_fight, g_maxplayers, g_IsBot[33],
g_msgsync, g_PlayerWeapons[33], g_playername[33][32],
g_msgCurWeapon, cvar_showhud, cvar_offnoadm
const OFFSET_CSTEAMS = 114
const OFFSET_LINUX = 5 // offsets 5 higher in Linux builds
///////blocking Buy
new gBuyCommands[][] =
{
"usp", "glock", "deagle", "p228", "elites", "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", "12gauge",
"autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550",
"buyammo1", "buyammo2"
}
//This will hold the VoteMenu
new gVoteMenu;
//This will hold the votes for each option
new gVotes[2];
//This determines if a vote is already happening
new gVoting;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
///ML
register_dictionary("CGM.txt")
//////Main
register_concmd("amx_record", "recordplayer", ADMIN_BAN, "<player> <demo name>");
register_concmd("amx_record_stop", "stoprecord", ADMIN_BAN, "<player>");
register_concmd("say /live","live", ADMIN_BAN)
register_concmd("say /warmup","warmup", ADMIN_BAN)
register_concmd("say /rr","rr", ADMIN_BAN)
register_concmd("say /chatoff", "cmdSayNosay", ADMIN_BAN)
register_concmd("say /nopw","cmdNopass", ADMIN_BAN)
register_clcmd("say /knf", "cmdkf", ADMIN_BAN)
register_clcmd("say /ready?", "voteready", ADMIN_BAN)
register_concmd("amx_swapteams","swap_teams_console",ADMIN_BAN," - Swap teams")
register_clcmd("say /swap", "swap_teams_console", ADMIN_BAN)
register_concmd("amx_randomizeteams","randomize_teams",ADMIN_BAN," - Randomize teams")
register_clcmd("say /randomize", "randomize_teams", ADMIN_BAN)
///events
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("CurWeapon", "event_cur_weapon", "b", "1=1")
g_msgCurWeapon = get_user_msgid("CurWeapon")
// register_logevent("round_end", 2, "1=Round_End")
/////ham
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1);
RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")
g_msgsync = CreateHudSyncObj()
g_maxplayers = get_maxplayers()
for (new i; i < sizeof gBuyCommands; i++)
register_clcmd(gBuyCommands[i], "BlockBuyCommands")
/////cvars
g_SAY = register_cvar("mm_nosay","0")
g_pPasswordPointer = get_cvar_pointer("sv_password")
g_enable = register_cvar("kf_enable", "1")
cvar_showhud = register_cvar("kf_showhud", "1")
cvar_offnoadm = register_cvar("kf_offnoadm", "1")
}
//////for starting recording player amx_record nick dem name
public recordplayer(id,level,cid)
{
if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED;
new arg[32],demoname[32]
read_argv(1, arg, 31);
read_argv(2,demoname,31)
new target = cmd_target(id,arg,1)
if (!target) return PLUGIN_HANDLED
new nameadmin[32],nametarg[32]
get_user_name(id, nameadmin, 31);
get_user_name(target,nametarg,31)
client_cmd(target, "record %s",demoname);
log_amx("ADMIN %s Filmoja %s", nameadmin, nametarg);
log_amx("Pradejo Filmoti %s.dem %s",demoname,nametarg );
return PLUGIN_HANDLED;
}
/////for stoping recording....
public stoprecord(id,level,cid)
{
if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED;
new arg[32],demoname[32]
read_argv(1, arg, 31);
read_argv(2,demoname,31)
new target = cmd_target(id,arg,1)
if (!target) return PLUGIN_HANDLED
new nameadmin[32],nametarg[32]
get_user_name(id, nameadmin, 31);
get_user_name(target,nametarg,31)
client_cmd(target, "stop")
log_amx("ADMINAS %s Filmavo %s", nameadmin, nametarg);
log_amx("Baige Filmot %s.dem",demoname );
return PLUGIN_HANDLED;
}
//////// playing live game - code
public live(id, level, cid)
{
set_task( 1.0 , "live2" , 2356 , _ , _ , "a" , 10 );
server_cmd("sv_restart 5")
server_cmd("mp_timelimit 50")
server_cmd("mp_forcechasecam 2")
server_cmd("mp_roundtime 1.75")
server_cmd("mp_startmoney 800")
server_cmd("mp_friendlyfire 0")
server_cmd("sv_alltalk 0")
server_cmd("mp_c4timer 35")
server_cmd("mp_buytime 0.25")
server_cmd("sv_voicequality 5")
server_cmd("sv_voicecodec voice_speex")
server_cmd("sv_lan 0")
}
///////hud message of live
public live2()
{
set_hudmessage(255, 255, 255, -1.0, 0.1, 0, 6.0, 10.0)
show_hudmessage(0, "%L", LANG_PLAYER, "HUD_START");
}
//////// warmup - code
public warmup(id, level, cid)
{
set_task( 1.0 , "wup" , 2356 , _ , _ , "a" , 10 );
server_cmd("sv_restart 5")
server_cmd("mp_timelimit 9999");
server_cmd("mp_forcechasecam 2");
server_cmd("mp_roundtime 9");
server_cmd("mp_startmoney 16000");
server_cmd("mp_friendlyfire 0")
server_cmd("sv_alltalk 1")
server_cmd("mp_c4timer 75")
server_cmd("mp_buytime 2.00")
server_cmd("sv_voicequality 5")
server_cmd("sv_voicecodec voice_speex")
server_cmd("sv_lan 0")
}
///////hud message of warmup
public wup()
{
set_hudmessage(0, 0, 255, -1.0, 0.04, 0, 6.0, 10.0)
show_hudmessage(0,"%L",LANG_PLAYER,"HUD_WARMUP")
}
//// /rr command
public rr(id, level, cid)
{
server_cmd("sv_restart 1")
new admin_name[32]
get_user_name(id , admin_name , 31 )
show_hudmessage(0,"%L",LANG_PLAYER,"CGM_CHAT_ADMINRR",admin_name)
}
//// /chatoff comand
public cmdSayNosay(id,level,cid)
{
if( !cmd_access( id, level, cid, 1 ) )
return PLUGIN_HANDLED
new adminname[32]
get_user_name(id, adminname, 31)
server_cmd("amx_on")
if(get_pcvar_num(g_SAY) == 0 && set_pcvar_num(g_SAY,1)) {
client_print(0, print_chat,"%L",LANG_PLAYER,"CGM_CHAT_ADMINSAYNOSAY",adminname)
}
else if(get_pcvar_num(g_SAY) == 1 && set_pcvar_num(g_SAY,0))
client_print(0, print_chat,"%L",LANG_PLAYER,"CGM_CHAT_ADMINSAYSAY",adminname)
server_cmd("amx_off")
return PLUGIN_HANDLED
}
////// for making no password
public cmdNopass (id, level, cid)
{
if( !cmd_access( id, level, cid, 1 ) )
return PLUGIN_HANDLED;
set_pcvar_string(g_pPasswordPointer, "");
return PLUGIN_HANDLED;
}
///// making a knife round!
public cmdkf(id, level, cid)
{
if(get_pcvar_num(g_enable))
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
if(knife_fight)
{
if(get_pcvar_num(cvar_showhud))
{
set_hudmessage(255, 0, 0, 0.3, 0.0, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_msgsync, "%L", LANG_PLAYER, "HUD_DISABLE_ADM", g_playername[id])
}
knife_fight = false
for(new id = 1;id <= g_maxplayers;id++)
{
if(is_user_alive(id))
restore_weapons(id)
}
}
else
{
if(get_pcvar_num(cvar_showhud))
{
set_hudmessage(255, 0, 0, 0.3, 0.0, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_msgsync, "%L", LANG_PLAYER, "HUD_ENABLE", g_playername[id])
}
knife_fight = true
for(new id = 1;id <= g_maxplayers;id++)
{
if(is_user_alive(id))
{
g_PlayerWeapons[id] = pev(id , pev_weapons) &~ ( 1 << 31 )
strip_user_weapons(id)
give_item(id, "weapon_knife")
}
}
}
}
else
client_print(id, print_chat, "%L", id, "KF_DISABLE")
return PLUGIN_HANDLED
}
///// knf round code!
public event_round_start()
{
if(get_pcvar_num(cvar_offnoadm) && !fnGetAdms() && knife_fight)
{
knife_fight = false
if(get_pcvar_num(cvar_showhud))
{
set_hudmessage(255, 0, 0, 0.4, 0.0, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_msgsync, "%L", LANG_PLAYER, "HUD_DISABLE")
}
return PLUGIN_HANDLED
}
if(knife_fight)
{
if(get_pcvar_num(cvar_showhud))
{
set_hudmessage(255, 0, 0, 0.4, 0.0, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_msgsync, "%L", LANG_PLAYER, "HUD_KF")
}
}
return PLUGIN_CONTINUE
}
////// take all guns!
public fw_PlayerSpawn_Post(id)
{
if (!is_user_alive(id))
return
if(get_pcvar_num(g_enable) && knife_fight)
{
strip_user_weapons(id)
give_item(id, "weapon_knife")
}
}
//////do not let pick up weapons.
public fw_TouchWeapon(weapon, id)
{
if (knife_fight && (1 <= id <= g_maxplayers) && !g_IsBot[id])
return HAM_SUPERCEDE
return HAM_IGNORED
}
//////cheacks if palyers isn`t a bot
public client_putinserver(id)
{
g_IsBot[id] = is_user_bot(id)
get_user_name(id, g_playername[id], charsmax(g_playername[]))
}
//////cheacks if this palyer doesn`t got gun...
public client_infochanged(id)
get_user_name(id, g_playername[id], charsmax(g_playername[]))
////// gives back weapons...
public restore_weapons(id)
{
new iValue = g_PlayerWeapons[id]
for(new j = 1 ; j <= 30 ; j++)
{
if ((1 & (iValue >> j)) && (j != 2) && (j != CSW_C4) && (j != CSW_KNIFE))
{
static szWeapon[32]
get_weaponname(j, szWeapon, 31)
give_item(id, szWeapon)
}
}
}
///////Cheacks is admin on...
fnGetAdms()
{
new adms, id
adms = 0
for(id = 1;id <= g_maxplayers;id++)
{
if(get_user_flags(id) & ADMIN_KICK)
adms++
}
return adms
}
///Blocks buying
public BlockBuyCommands(id)
return knife_fight ? PLUGIN_HANDLED : PLUGIN_CONTINUE
//////Blocks guns again...
public event_cur_weapon(id)
{
if (!is_user_alive(id))
return;
if (knife_fight && !((1<<read_data(2)) & (1<<CSW_KNIFE)))
{
engclient_cmd(id, "weapon_knife")
emessage_begin(MSG_ONE, g_msgCurWeapon, _, id)
ewrite_byte(1)
ewrite_byte(CSW_KNIFE)
ewrite_byte(-1)
emessage_end()
}
}
////// vote /ready?
public voteready(id)
{
if( gVoting )
{
client_print(id, print_chat, "%L", LANG_PLAYER, "VT_ALR");
return PLUGIN_HANDLED;
}
gVoteMenu = menu_create("\rPasiruose?", "menu_handler");
//Add some vote options
menu_additem(gVoteMenu, "Taip", "0", 0);
menu_additem(gVoteMenu, "Ne", "1", 0);
new players[32], pnum, tempid;
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
menu_display(tempid, gVoteMenu, 0);
gVoting++;
}
set_task(10.0, "EndVote");
return PLUGIN_HANDLED;
}
//////vote lentele
public menu_handler(id, menu, item)
{
if( item == MENU_EXIT || !gVoting )
{
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new voteid = str_to_num(data);
gVotes[voteid]++;
return PLUGIN_HANDLED;
}
/////vote end...
public EndVote()
{
if( gVotes[0] > gVotes[1] )
{
///client_print(0, print_chat, "First option recieved most votes (%d)", gVotes[0] );
chat_color(0,"%L",LANG_PLAYER,"YES",gVotes[0] )
set_task( 1.0 , "live" , 2356 , _ , _ , "a" , 10 );
}
else
{
chat_color(0,"%L",LANG_PLAYER,"FAIL", gVotes[0] );
}
}
//////colourfull chat!
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, "!team", "^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();
}
}
}
}
////changing teams
public swap_teams_console(id, level)
{
if (!access(id,level))
{
console_print(id,"* %L", id, "COMMAND_NO_AUTH")
console_print(id,"* %L", id, "COMMAND_NO_AUTH")
return PLUGIN_HANDLED
}
new name[32]
get_user_name(id,name,31)
switch(get_cvar_num("amx_show_activity"))
{
case 2: client_print(0,print_chat,"%L %s: %L",LANG_PLAYER, "ADMIN",name, LANG_PLAYER, "SWITCHED_TEAM")
case 1: client_print(0,print_chat,"%L %L",LANG_PLAYER, "ADMIN", LANG_PLAYER, "SWITCHED_TEAM")
}
// Make sure that server won't stop the swap
set_cvar_num("mp_limitteams",0)
set_cvar_num("mp_autoteambalance",0)
server_cmd("sv_restart 5")
cambio_teams()
return PLUGIN_CONTINUE
}
/////swaping teams...
public cambio_teams(){
new players[32], num
get_players(players, num)
new player
for(new i = 0; i < num; i++)
{
player = players[i]
if(cs_get_user_team(player) == CS_TEAM_T)
{
cs_set_user_team(player, CS_TEAM_CT)
}
else if(cs_get_user_team(player) == CS_TEAM_CT)
{
cs_set_user_team(player, CS_TEAM_T)
}
}
remove_task(TASK_CAMBIO)
}
////randomizing teams...
public randomize_teams(id, level)
{
// Declare variables
new num
new players[32]
new playersT_pos
new playersCT_pos
new playersT[32]
new playersCT[32]
new random_team
new difference
new player
if (!access(id,level))
{
console_print(id,"* %L", id, "COMMAND_NO_AUTH")
console_print(id,"* %L", id, "COMMAND_NO_AUTH")
return PLUGIN_HANDLED
}
client_print(0,print_chat,"* %L", LANG_PLAYER, "RANDOMIZING_TEAMS")
// Set the arrays
get_players(players, num)
for(new i = 0; i < num; i++)
{
player = players[i]
if(is_user_connected(player) && (cs_get_user_team(player) != CS_TEAM_SPECTATOR ))
{
random_team = random_num(1,2)
if(random_team == 1)
{
playersT[playersT_pos++] = player
}
else
{
playersCT[playersCT_pos++] = player
}
}
}
difference = abs(playersCT_pos - playersT_pos)
if(difference > 1)
{
if(playersCT_pos > playersT_pos)
{
for(new i = playersCT_pos; (i >= 0) && (playersCT_pos > playersT_pos); i--)
{
playersT[playersT_pos++] = playersCT[--playersCT_pos]
}
}
else
{
for(new i = playersT_pos; (i >= 0) && (playersT_pos > playersCT_pos); i--)
{
playersCT[playersCT_pos++] = playersT[--playersT_pos]
}
}
}
// Set T team
for(new i = 0; i < playersT_pos; i++)
{
cs_set_user_team(playersT[i], CS_TEAM_T)
client_print(playersT[i],print_chat,"* %L", playersT[i], "NOW_ON_T")
}
// Set CT team
for(new i = 0; i < playersCT_pos; i++)
{
cs_set_user_team(playersCT[i], CS_TEAM_CT)
client_print(playersCT[i],print_chat,"* %L", playersCT[i], "NOW_ON_CT")
}
server_cmd("sv_restart 5")
return PLUGIN_CONTINUE
}
|
Thank you! There's no errors. But there are two problems
1. When I start knife round with command /knf, it never ends.. Even after round.
2. Second problem is the commands may be used each player, but I established that admin commands can be used only administrators (ADMIN_BAN flag)
PHP Code:
register_concmd("amx_record", "recordplayer", ADMIN_BAN, "<player> <demo name>");
register_concmd("amx_record_stop", "stoprecord", ADMIN_BAN, "<player>");
register_concmd("say /live","live", ADMIN_BAN)
register_concmd("say /warmup","warmup", ADMIN_BAN)
register_concmd("say /rr","rr", ADMIN_BAN)
register_concmd("say /chatoff", "cmdSayNosay", ADMIN_BAN)
register_concmd("say /nopw","cmdNopass", ADMIN_BAN)
register_clcmd("say /knf", "cmdkf", ADMIN_BAN)
register_clcmd("say /ready?", "voteready", ADMIN_BAN)
register_concmd("amx_swapteams","swap_teams_console",ADMIN_BAN," - Swap teams")
register_clcmd("say /swap", "swap_teams_console", ADMIN_BAN)
register_concmd("amx_randomizeteams","randomize_teams",ADMIN_BAN," - Randomize teams")
register_clcmd("say /randomize", "randomize_teams", ADMIN_BAN)
I will be grateful if you fix these problems
|
|