I'm currently into mapping and my friend wanted me to make a map specific to B_rush.
So i did, and its pretty good however there are a few bugs that hammer cannot fix =[
If you dont know what b_rush is, check this out:
Quote:
B-rush needs 8 players, 5T and 3 CT.
Normally it would be 4on4 and a knife round would be played to decide the teams.
The Ts need to rush bomb site B and CTs need to defend it.
If Ts win the round, the 3 who got kills go CT and the CTs who died go T.
If CTs win the round, the teams stay the same and the game continues.
If CTs win 8 or 10 rounds in a row, a new map is chosen and the CTs get to put "[DREAMTEAM]" in their name cos they r pro
There are a few rules:
NO flashbangs
NO sheilds
NO nade spamming from spawn (only an issue on certain maps, E.g. the 1 i made)
Ts must NOT run mid or any other route to get to B (They must use the shortest route) (E.g. de_inferno - rush banana, de_dust2 - rush tunnels)
Server side settings need to be:
mp_friendlyfire 0
mp_startmoney 801
mp_roundtime 1
mp_freezetime 0
sv_gravity 800
|
My code is as follows:
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <cstrike>
#include <hamsandwich>
#pragma semicolon 1
new PLUG[] = "Stewie's B Rush";
new VERS[] = "1.0";
new AUTH[] = "Stewie!";
new gGame = 0;
new gNewCtIds[3];
new gCtsDied = 0;
new gReason[20];
new bool:gbGameInProgress = false;
/*---------------------------------------------------------------------------------------------------------------------*/
/* plugin_init */
/*-------------------------------------------------------------------------------------------------------=[ Stewie! ]=-*/
public plugin_init()
{
register_plugin(PLUG, VERS, AUTH);
register_cvar(PLUG, VERS, FCVAR_SERVER);
register_clcmd("say /start", "start_game", -1);
register_clcmd("flash", "block");
register_clcmd("shield", "block");
RegisterHam(Ham_DeathNotice, "player", "player_death");
}
/*---------------------------------------------------------------------------------------------------------------------*/
/* House keeping */
/*-------------------------------------------------------------------------------------------------------=[ Stewie! ]=-*/
public client_connect(id)
{
if(get_playersnum() >= 9)
{
formatex(gReason, 32, "too many clients");
stop_brush();
}
}
public client_disconnect(id)
{
if(get_playersnum() <= 7)
{
formatex(gReason, 32, "not enough clients");
stop_brush();
}
}
/*---------------------------------------------------------------------------------------------------------------------*/
/* Start Game */
/*-------------------------------------------------------------------------------------------------------=[ Stewie! ]=-*/
public start_game()
{
if(gbGameInProgress)
{
client_print(0, print_chat, "There is allready a game in progress!");
}
else
{
gbGameInProgress = true;
restart_round();
}
}
/*---------------------------------------------------------------------------------------------------------------------*/
/* Player death */
/*-------------------------------------------------------------------------------------------------------=[ Stewie! ]=-*/
public player_death(victim)
{
switch(gGame)
{
case 0: // No Game
{
return HAM_SUPERCEDE;
}
case 1: // Knife round
{
if(cs_get_user_team(victim) == CS_TEAM_CT)
{
gNewCtIds[gCtsDied] = victim;
gCtsDied++;
}
if(gCtsDied == 4)
{
for(new i = 0; i < 8; i++)
{
cs_set_user_team(i, CS_TEAM_T);
make_cts();
}
}
}
case 2: // B Rush
{
if(cs_get_user_team(victim) == CS_TEAM_CT)
{
gNewCtIds[gCtsDied] = victim;
gCtsDied++;
}
if(gCtsDied == 4)
{
for(new i = 0; i < 8; i++)
{
cs_set_user_team(i, CS_TEAM_T);
make_cts();
}
}
}
}
return HAM_SUPERCEDE;
}
/*---------------------------------------------------------------------------------------------------------------------*/
/* Stocks n Stuff */
/*-------------------------------------------------------------------------------------------------------=[ Stewie! ]=-*/
public make_cts()
{
switch(gGame)
{
case 0:
{
return PLUGIN_CONTINUE;
}
default:
{
cs_set_user_team(gNewCtIds[0], CS_TEAM_CT);
cs_set_user_team(gNewCtIds[1], CS_TEAM_CT);
cs_set_user_team(gNewCtIds[2], CS_TEAM_CT);
gGame = 2;
}
}
restart_round();
return PLUGIN_CONTINUE;
}
public restart_round()
{
server_cmd("sv_restartround 1");
}
public stop_brush()
{
client_print(0, print_chat, "B rush has stopped due to %s", gReason);
set_task(1.1, "restart_round");
set_task(2.1, "restart_round");
set_task(3.1, "restart_round");
}
public block()
{
return PLUGIN_HANDLED;
}
Seeing as though i dont often have 7 other ppl willing to help test, i looked to using podbots, but they dont seem to follow the rules =[
So ive given up and im now asking for help
Any1 wanna give it a go?
Or maybe we could arrange 7 ppl to come help meh test at some point
__________________