Anti camp gsc script.
Member
Some script to force people to keep moving in your mod
//to be threaded by a player on spawn.
main()
{
if(getdvarint("scr_anticamp" == 0)
return;
wait 5; //spawn wait
self thread AntiCamp();
}
AntiCamp()
{
level endon( "game_ended" );
self endon( "disconnect" );
self endon( "joined_spectators" );
self endon ( "death" );
DefaultCampTime = getdvarint("scr_maxcamptime" //10
MaxCampTime = DefaultCampTime;
MinCampTime = getdvarint("scr_mincamptime" //6
CampDistance = getdvarint("scr_campdistance" //50
CampPunishTime = getdvarint("scr_camppunishtime" //5
CampResetTime = (getdvarint("scr_campresettime" - 1) * 1000; //16
LastCampTime = 0;
if(!isdefined(self.pers["camppunishment"]))
self.pers["camppunishment"] = 0;
L = 0;
s = 0;
for(c=0;;c++)
{
old = self.origin;
wait 1;
new = self.origin;
L = (distance(new,old));
if (L > CampDistance)
c = 0;
else if(s > (CampPunishTime - 1))
{
self.pers["camppunishment"]++;
//some punishment based on how much times already got punished?
self punish();
s = 0;
c = 0;
}
if(c > (MaxCampTime - 1))
{
if(s < CampPunishTime)
{
iprintln(self, " is Camping!"
//ping him on radar?
self iprintlnbold( "^1Stop Camping!" );
self iprintlnbold( "^1" + (CampPunishTime - s) + "^7 seconds remaining before punishment" );
}
LastCampTime = gettime();
s++;
}
else
s = 0;
if(s == 1 && MaxCampTime > MinCampTime)
MaxCampTime--;
if( MaxCampTime != DefaultCampTime && ( getTime() - LastCampTime ) > CampResetTime )
{
//reset
MaxCampTime = DefaultCampTime;
}
}
}
isInSpace(front, right, left, rear, bottom, ceiling)
{
if( isdefined( bottom ) && isdefined( ceiling ))
if(self.origin[1] < front && self.origin[1] > rear && self.origin[0] > right && self.origin[0] < left && self.origin[2] < ceiling && self.origin[2] > bottom )
return true;
if(self.origin[1] < front && self.origin[1] > rear && self.origin[0] > right && self.origin[0] < left )
return true;
return false;
}
punish()
{
level endon( "game_ended" );
self endon( "disconnect" );
self endon( "joined_spectators" );
self endon ( "death" );
originX = self.origin[0];
originY = self.origin[1];
camparea = getdvarint( "scr_camparea" ); //120
up = originY + camparea;
right = originX - camparea;
left = originX + camparea;
down = originY - camparea;
self iprintlnbold( " " );
self iprintlnbold( " " );
self iprintlnbold( " " );
self iprintlnbold( "Move out of your camp area!" );
self iprintlnbold( "^1Your weapons are disabled while inside." );
self disableweapons();
while( self isInSpace(up, right, left, down) )
wait .05;
self enableweapons();
self iprintlnbold( " " );
self iprintlnbold( " " );
self iprintlnbold( " " );
}
Posted on 21.08.2011 / 10:49 - Edited by Justin on 21.08.2011 / 11:32
REPLIES
Member
Justin - you should Disable Smileys
Posted on 21.08.2011 / 11:18
Member
Just a shame the tabs got deleted. Will be fixed soon.
Posted on 21.08.2011 / 14:08
Member
BETTER,SMALLER,WITH HUD
watch_anti_camp()
{
self endon("disconnect"
self endon("death"
self endon("joined_spectators"
level endon("game_ended"
if(getintdvar("scr_anticamp"!=1)
return;
self.camping = 0;
if(!isDefined(self.bar))
{
self.bar = self maps\mp\gametypes\_hud_util::createBar((1,1,1), 64, 8);
self.bar maps\mp\gametypes\_hud_util::setPoint("CENTER", undefined, 0, 230);
}
while(isAlive(self))
{
oldorg = self.origin;
wait .03;
if(distance(oldorg, self.origin) < 3.5)
self.camping += 0.005;
else
self.camping -= 0.0055;
if(self.camping > 1)
self.camping = 1;
else if(self.camping < 0)
self.camping = 0;
self.bar maps\mp\gametypes\_hud_util::updateBar(self.camping);
if(self.camping == 1)
{
self iprintlnbold("^9Move or you will be killed!"
oldorg = self.origin;
wait 2;
if(distance(oldorg, self.origin) < 150)
{
self suicide();
}
}
}
}
Posted on 05.07.2012 / 18:20 - Edited by zolikoko on 05.07.2012 / 18:21
Member
How to run this script in promodlive cod4?
Sorry for being noob.
Posted on 24.06.2013 / 11:44
Post reply
ONLY USERS CAN POST REPLIES.