AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Edit Plugin (https://forums.alliedmods.net/showthread.php?t=133741)

SiBER 07-28-2010 11:12

Edit Plugin
 
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);



mottzi 07-28-2010 16:04

Re: Edit Plugin
 
:arrow: Request Forum


All times are GMT -4. The time now is 00:15.

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