## ETPub PCR alpha hacks (etpub_pcr_ah) ## (C) 2006-2007 PatheticCockroach.com ## This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ## Derivative works may only be done if they are distributed with their source code. ## ## The original etpub_pcr_ah source and binaries can be found around http://www.patheticcockroach.com/etserver/etpub_pcr.php ## ## Note : ETPub PCR alpha hacks are just small modifications for ETPub (http://www.etpub.org) Here we applied g_legacyShrub to !burn ------------------------- MODIFICATION STARTS HERE (line 33) **** REPLACE {"burn", G_shrubbot_burn, 'U', SCMDF_TYRANNY, "burns a player taking some of his health", "[^3name|slot#^7] (^hreason^7)"}, **** WITH {"burn", G_shrubbot_burn, 'U', SCMDF_TYRANNY, "burns a player taking some of his health", SHRUB_PCR_ARGR}, (line 3609) **** REPLACE qboolean G_shrubbot_burn(gentity_t *ent, int skiparg) { int pids[MAX_CLIENTS]; char name[MAX_NAME_LENGTH], err[MAX_STRING_CHARS]; char *reason; gentity_t *vic; if(Q_SayArgc() < 2+skiparg) { SPC("^/burn usage: ^7!burn [name|slot#] [reason]"); return qfalse; } Q_SayArgv(1+skiparg, name, sizeof(name)); reason = Q_SayConcatArgs(2+skiparg); if(ClientNumbersFromString(name, pids) != 1) { G_MatchOnePlayer(pids, err, sizeof(err)); SPC(va("^/burn: ^7%s", err)); return qfalse; } vic = &g_entities[pids[0]]; if(!_shrubbot_admin_higher(ent, vic)) { SPC("^/burn: ^7sorry, but your intended victim has a higher admin" " level than you do"); return qfalse; } if(_shrubbot_immutable(ent, vic)) { SPC("^/burn: ^7sorry, but your intended victim is immune to shrubbot commands"); return qfalse; } if(!(vic->client->sess.sessionTeam == TEAM_AXIS || vic->client->sess.sessionTeam == TEAM_ALLIES)) { SPC("^/burn: ^7player must be on a team"); return qfalse; } G_BurnMeGood(vic, vic, NULL); AP(va("chat \"^/burn: ^7%s ^7was set ablaze\" -1", vic->client->pers.netname)); CPx(pids[0], va("cp \"%s ^7burned you%s%s\"", (ent?ent->client->pers.netname:"^3SERVER CONSOLE"), (*reason) ? " because:\n" : "", (*reason) ? reason : "")); return qtrue; } **** WITH qboolean G_shrubbot_burn(gentity_t *ent, int skiparg) { int pids[MAX_CLIENTS]; char name[MAX_NAME_LENGTH], err[MAX_STRING_CHARS]; char *reason; gentity_t *vic; int count = 0; reason = Q_SayConcatArgs(2+skiparg); if((Q_SayArgc() < 2+skiparg)) { if(g_legacyShrub.integer==1) { SPC("^/burn usage: ^7!burn [name|slot#] [reason]"); return qfalse; } else { if(!ent) { SPC("burn: you are on the console"); return qfalse; } vic=ent; } } else { Q_SayArgv(1+skiparg, name, sizeof(name)); if( !Q_stricmp( name, "all" ) && (g_legacyShrub.integer==0) ) { int it; for( it = 0; it < level.numConnectedClients; it++ ) { vic = g_entities + level.sortedClients[it]; if( !_shrubbot_admin_higher(ent, vic) || _shrubbot_immutable(ent, vic) || !(vic->client->sess.sessionTeam == TEAM_AXIS || vic->client->sess.sessionTeam == TEAM_ALLIES)) continue; G_BurnMeGood(vic, vic, NULL); count++; } AP(va("chat \"^/burn: ^7%d players burned\" -1", count)); return qtrue; } if(ClientNumbersFromString(name, pids) != 1) { G_MatchOnePlayer(pids, err, sizeof(err)); SPC(va("^/burn: ^7%s", err)); return qfalse; } vic = &g_entities[pids[0]]; } if(!_shrubbot_admin_higher(ent, vic)) { SPC("^/burn: ^7sorry, but your intended victim has a higher admin" " level than you do"); return qfalse; } if(_shrubbot_immutable(ent, vic)) { SPC("^/burn: ^7sorry, but your intended victim is immune to shrubbot commands"); return qfalse; } if(!(vic->client->sess.sessionTeam == TEAM_AXIS || vic->client->sess.sessionTeam == TEAM_ALLIES)) { SPC("^/burn: ^7player must be on a team"); return qfalse; } G_BurnMeGood(vic, vic, NULL); AP(va("chat \"^/burn: ^7%s ^7was set ablaze\" -1", vic->client->pers.netname)); CPx(pids[0], va("cp \"%s ^7burned you%s%s\"", (ent?ent->client->pers.netname:"^3SERVER CONSOLE"), (*reason) ? " because:\n" : "", (*reason) ? reason : "")); return qtrue; }