Raised This Month: $ Target: $400
 0% 

Edit Plugin


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
SiBER
Junior Member
Join Date: Jul 2010
Location: PT
Old 07-28-2010 , 11:12   Edit Plugin
Reply With Quote #1

Good afternoon, I wonder if anyone can help edit this plugin amx_awapteams wanted to add the plugin.
I wish the teams exchanged automatically for 15 round.
I hope you can help

Thank you for understanding.
Cump.

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#pragma semicolon 1
#define PLUGIN    "Gather Plugin"
#define VERSION    "1.3.1"
#define AUTHOR    "R3X"
#define CHANGE        0        // if 1 -> change nicks when tags not defined by .tag
#define FIRSTTEAM    "Team A"    // Tag #1 If .tag not set
#define SECONDTEAM    "Team B"    // Tag #2 If .tag not set
new bool:g_started;
new 
bool:g_exec;
new 
g_score_ct[2];
new 
g_score_t[2];
new 
g_half;
new 
bool:g_changetags[2]= {
    
true,
    
true
};
new 
g_tags[2][65]= {
    
"",
    
""
};
new const 
g_cmds[][]= {
    
"kick",
    
"ban",
    
"banip",
    
"ff",
    
"demo",
    
"start",
    
"restart",
    
"stop",
    
"map",
    
"tag",
    
"cancel",
    
"warmup"
};
public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR);
 
    
register_concmd("amx_tagt",    "tagChange"ADMIN_BAN"<T tagname>");
    
register_concmd("amx_tagct",    "tagChange"ADMIN_BAN"<CT tagname>");
    
register_clcmd("chooseteam","changeTeam");
    
register_clcmd("say""chatFilter"ADMIN_BAN);
    
register_clcmd("say .score","showScore");
    
register_event("TeamScore""teamScore""a");
}
public 
changeTeam(id)
{
    if(
g_started)
    {
        
client_print(idprint_chat,"[Match] Do not change team during match!");
        return 
PLUGIN_HANDLED;
    }
    return 
PLUGIN_CONTINUE;
}
public 
chatFilter(id) {
    if(!(
get_user_flags(id) & ADMIN_BAN))
        return 
PLUGIN_HANDLED;
    new 
message[128];
    
read_argv(1message127);
    for(new 
i=0;i<sizeof(g_cmds);i++) {
        new 
cmd[33];
        
formatex(cmd,32,".%s",g_cmds[i]);
        if(
containi(message,cmd) == 0) {
                
callBack(id,i);
                return 
PLUGIN_HANDLED;
        }
    }
    return 
PLUGIN_CONTINUE;
}
public 
showMatchEnd() {
    switch( 
g_half ) {
        case 
1: {
            
server_cmd("say Half finished!");
            
server_cmd("say Please switch your team now!");
        }
        case 
2: {
            
server_cmd("say The match is over.");
            
server_cmd("say Thanks for playing!");
            
prepareMatch();
        }
    }
    
g_exec=false;
}
prepareMatch() {
    
//game not started
    
g_started false;
    
g_half    0;
 
    
//reset score
    
g_score_ct[0]    = 0;
    
g_score_ct[1]    = 0;
    
g_score_t[0]    = 0;
    
g_score_t[1]    = 0;
 
    
//clear tags
    
g_changetags[0]    = true;
    
g_changetags[1]    = true;
    
g_tags[0]    = "";
    
g_tags[1]    = "";
}
public 
restartRound(arg[]) {
    new 
id arg[0];
    new 
args[1];
    
args[0]    = id+1;
    
g_exec    true;
 
    switch( 
id ) {
        case 
0: {
            
server_cmd("say Match start in:");
            
server_cmd("say 5");
        }
        case 
1,2: {
            
server_cmd("say %d",5-id);
            
server_cmd("sv_restartround 1");
        }
        case 
3server_cmd("say 2");
        case 
4: {
            
server_cmd("say 1");
            
server_cmd("sv_restartround 1");
            
set_task(2.0"restartRound"0args,1);
        }
        case 
5: {
            
server_cmd("say Game is ON !");
            
server_cmd("say LIVE ! LIVE ! LIVE !");
            
server_cmd("say Good Luck and Have Fun!");
            
set_hudmessage(255255255, -1.00.206.03.0);
            
show_hudmessage(0"Game is LIVE^n^nStart of half: %d",g_half); 
            
g_exec=false;
        }
    }
    if(
id 4)
        
set_task(1.0"restartRound"0args,1);
}
public 
callBack(idcID) {
    new 
message[128], cmd[33], arg[65], arg2[65];
    
read_argv (1message128);
    
parse(message,cmd,32,arg,64,arg2,64);
    
replace(cmd,32,".","");
 
    switch(
cID) {
        case 
0: { // Kick Player
            
console_cmd(id,"amx_kick %s"arg);
        }
        case 
1: { // Ban Player
            
new bantime=str_to_num(arg2);
            if(
bantime==0)
                
bantime=1;
            
console_cmd(id,"amx_ban %s %d"argbantime);
        }
        case 
2: { // BanIP Player
            
new bantime=str_to_num(arg2);
            if(
bantime==0)
                
bantime=1;
            
console_cmd(id,"amx_banip %s %d"argbantime);
        }
        case 
3: { // Set FriendlyFire
            
if(equali(arg,"on")) {
                
console_cmd(id,"amx_cvar mp_friendlyfire 1");
            }
            else if(
equali(arg,"off")) {
                
console_cmd(id,"amx_cvar mp_friendlyfire 0");
            }
        }
        case 
4: { // Record Demo
            
new demoname[71];
            new 
datetime[31],mapname[21];
            
get_time("%d-%m-%Y-%H-%M-%S"datetime30);
            
get_mapname(mapname,20);
            
formatex(demoname,70,"demo-%s-%s.dem",mapname,datetime);
            new 
player cmd_target(idarg0);
            if(
player==0)
                
client_print(id,print_chat,"[Record Demo] '%s' Not found!",arg);
            else {
                
console_cmd(player,"record %s",demoname);
                new 
name[36];
                
get_user_name(player,name,35);
                
client_print(id,print_chat,"[Record Demo] Player found: '%s'",name);
            }
        }
        case 
5: { // Start Match
            
if(g_half==&& !g_started) {
                
client_print(idprint_chat,"[Match] You can`t start 3rd period");
                return 
PLUGIN_HANDLED;
            }
            if(
g_exec) {
                
client_print(idprint_chat,"[Match] During executing...");
                return 
PLUGIN_HANDLED;
            }
            if(
g_started) {
                
client_print(idprint_chat,"[Match] Started -- type .stop before");
                return 
PLUGIN_HANDLED;
            }
            if(
equal(g_tags[0],"")) {
                
copy(g_tags[0], 20 ,FIRSTTEAM);
                
g_changetags[0]=false;
            }
            if(
equal(g_tags[1],"")) {
                
copy(g_tags[1], 20 ,SECONDTEAM);
                
g_changetags[1]=false;
            }
 
            
// Exec configs & set bools.
            
server_cmd("exec war.cfg");
            
checkAll();
            new 
args[1];
            
args[0]=0;
            
restartRound(args);
            if(
g_half==0)
                
g_half=1;
            else if(
g_half==1)
                
g_half=2;
 
            
g_started=true;
        }
        case 
6: { // Restart
            
if(g_exec) {
                
client_print(idprint_chat,"[Match] During executing...");
                return 
PLUGIN_HANDLED;
            }
            if(!
g_started) {
                
client_print(idprint_chat,"[Match] Not started -- type .start before");
                return 
PLUGIN_HANDLED;
            }
 
            new 
args[1];
            
args[0] = 0;
            
restartRound(args);
            
g_score_ct[g_half-1]    = 0;
            
g_score_t[g_half-1]    = 0;
            
g_started        true;
        }    
        case 
7: { // Stop match.
            
if(g_exec)
            {
                
client_print(idprint_chat,"[Match] During executing...");
                return 
PLUGIN_HANDLED;
            }
            if(!
g_started)
            {
                
client_print(idprint_chat,"[Match] Not started -- type .start before");
                return 
PLUGIN_HANDLED;
            }
 
            
g_exec true;
            
server_cmd("exec warmup.cfg");
            
server_cmd("sv_restartround 3");
            
set_task(4.0,"showMatchEnd");
            
g_started false;
        }
        case 
8: { // Changelevel
            
console_cmd(id,"amx_map %s"arg);
        }
        case 
9: { // Tag System
            
if(!(g_half==|| (g_half==&& !g_started))) {
                
client_print(idprint_chat,"[Remove Tags] You can`t do this now");
                return 
PLUGIN_HANDLED;
            }
 
            if(
equali(arg"OFF")) {
                new 
ct[21],t[21];
                if(
g_half == || g_half == 1) {
                    
copy(ct ,20g_tags[0]);
                    
copy(,20g_tags[1]);
                }
                else if(
g_half == 2) {
                    
copy(ct ,20g_tags[1]);
                    
copy(,20g_tags[0]);
                }
                
untagThem(CS_TEAM_CTct);
                
untagThem(CS_TEAM_Tt);
                
g_tags[0]="";
                
g_tags[1]="";
            }
            else if(
equal(arg,"") || equal(arg2,"")) {
                
client_print(id,print_chat,"Current tags:");
                
client_print(id,print_chat,"^tCT: %s",g_tags[0]);
                
client_print(id,print_chat,"^tT : %s",g_tags[1]);
                
client_print(id,print_chat,"Using: .tag CT|T <tag> or .tag OFF");
            }
            else if(
equali(arg,"CT")) {
                
client_cmd(id,"amx_tagct %s"arg2);
            }
            else if(
equali(arg,"T")) {
                
client_cmd(id,"amx_tagt %s"arg2);
            }
            else {
                
client_print(id,print_chat,"Using: .tag CT|T <tag> or .tag OFF");
            }
 
        }
        case 
10: { // Cancel Game.
            
if(g_half == 0) {
                
client_print(idprint_chat,"Match not started");
                return 
PLUGIN_HANDLED;
            }
 
            
prepareMatch();
            
server_cmd("sv_restartround 3");
            
server_cmd("say !! Game cancelled !!");
            
server_cmd("say !! Game cancelled !!");
        }
        case 
11: {//Warmup
            
server_cmd("exec warmup.cfg");
            
server_cmd("say !! Warmup !!");    
        }
    }
    return 
PLUGIN_HANDLED;
}
public 
showScore(id) {
    if(
g_half == 0)
        
client_print(idprint_chat,"Wait for start of match");
    else
        
client_print(idprint_chat,"[%s] %d:%d [%s]",g_tags[0],g_score_ct[0]+g_score_ct[1], g_score_t[0]+g_score_t[1],g_tags[1]);
 
    return 
PLUGIN_HANDLED;
}
public 
teamScore() {
    if(!
g_started)
        return 
PLUGIN_CONTINUE;
    new 
team[32];
    
read_data(1team31);
    if (
g_half == 1) { // first half
        
if (team[0] == 'C')
            
g_score_ct[0] = read_data(2);
        else if (
team[0] == 'T')
            
g_score_t[0] = read_data(2);    
    }
    else if (
g_half == 2) { // second half
        
if (team[0] == 'C')
            
g_score_t[1] = read_data(2);
        else if (
team[0] == 'T')
            
g_score_ct[1] = read_data(2);
    }
    return 
PLUGIN_CONTINUE;
}
public 
tagChange(id,level,cid) {
    if (!
cmd_access(id,level,cid,1))
        return 
PLUGIN_HANDLED;
 
    new 
cmd[11], tag[21];
    
read_argv (0cmd10);
    
read_argv (1tag20);
    if(
equali("amx_tagt",cmd)) {
        
setGTags(1,tag);
        
tagThem(CS_TEAM_T);
    }
    else if(
equali("amx_tagct",cmd)) {
        
setGTags(2tag);
        
tagThem(CS_TEAM_CT);
    }
    return 
PLUGIN_HANDLED;
}
public 
tagPlayer(id) {
    new 
CsTeams:p_team=cs_get_user_team(id);
    new 
name[36];
    
get_user_name(id,name,35);
    new 
tag[21];
    new 
0;
    if(
g_half==|| (g_half==&& g_started)) {
        if(
p_team==CS_TEAM_CT)
            
a=0;
        else if(
p_team==CS_TEAM_T)
            
a=1;
    }
    else if(
g_half==|| (g_half==&& !g_started)) {
        if(
p_team==CS_TEAM_CT)
            
a=1;
        else if(
p_team==CS_TEAM_T)
            
a=0;
    }
    if(!
g_changetags[a] && CHANGE==0)
        return;
    
copy(tag ,20g_tags[a]);
    if(
contain(name,tag)!=0)
        
client_cmd(id"name ^"%s%s^"",tag,name);
}
tagThem(CsTeams:team) {
    new 
Players[32], playerCountplayer;
    
get_players(PlayersplayerCount);
    for (new 
i=0i<playerCounti++) {
        
player Players[i]; 
        new 
CsTeams:p_team=cs_get_user_team(player);
        if(
p_team == team) {
            
tagPlayer(player);
        }
    }
}
untagThem(CsTeams:teamtag[21]) {
    new 
Players[32], playerCountiplayer;
    
get_players(PlayersplayerCount);
    for (
i=0i<playerCounti++) {
        
player Players[i]; 
        new 
CsTeams:p_team=cs_get_user_team(player);
        new 
name[36];
        
get_user_name(player,name,35);
        if(
p_team == team) {
            if(
contain(name,tag)==0) {
                
replace(name35tag,"");
                
client_cmd(player,"name ^"%s^"",name);
            }
        }
    }
    new 
type=0;
    if(
team==CS_TEAM_T)
        
type=1;
    else if(
team==CS_TEAM_CT)
        
type=2;
    
setGTags(type"");
}
setGTags(typetag[21]) {
    if(
g_half==|| g_half==1) {
        switch( 
type ) {
            case 
1copy(g_tags[1],64,tag);
            case 
2copy(g_tags[0],64,tag);
        }
    }
    if(
g_half==2) {
        switch( 
type ) {
            case 
1copy(g_tags[0],64,tag);
            case 
2copy(g_tags[1],64,tag);
        }
    }
}
public 
client_infochanged(id) {
    if(
equal(g_tags[0],"") || equal(g_tags[1],""))
        return;
    
set_task(1.0"tagPlayer",id);
}
public 
checkAll() {
    
tagThem(CS_TEAM_CT);
    
tagThem(CS_TEAM_T);

SiBER is offline
 


Thread Tools
Display Modes

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 00:15.


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