PDA

View Full Version : Mine limit.



Rocky
25th December 2013, 16:28
mine()
{
self endon("disconnected");
self endon("minaDown");
self endon("spawned");


level.minaMP++;

name = self.name;

trace = bulletTrace(self.origin + (0,0,40), self.origin + (0,0,-3000), false, undefined);self.mine["mine"] = spawn("script_model", self.origin + (0,0,1));
self.mine["mine"] setModel( "xmodel/bx_zombie_mine" );
self.mine["cankill"] = true;
self.mine["trig"] = false;
dist = distance(self.mine["mine"].origin, trace["position"] );time = (dist / level.zom["mine_speed"]);

if(dist <= 128)
{
self.mine["mine"].origin = trace["position"];
}
angle = self.mine["mine"] maps\mp\_utility::getPlant();
self.mine["mine"].angles = angle.angles;
self.mine["mine"] playSound("stickybomb_plant");
wait 0.1;
while(self.mine["cankill"])
{
if(!isalive(self))
{
self.mina--;
level.minaMP--;
if(isdefined(self.mine["mine"]))self.mine["mine"] delete();
self notify("minaDown");
}
players = getentarray("player", "classname");
for(i=0;i<players.size;i++)
{
if(isDefined(players[i].pers["team"]) && players[i].pers["team"] == "axis" && players[i].sessionstate == "playing" && !players[i].spawnprotected && !players[i].trigmine && players[i] != self)
{
if(isDefined(self.mine["mine"]) && distance(players[i].origin, self.mine["mine"].origin) < 32 && !players[i].spawnprotected && !self.mine["trig"] )
{
players[i] playsound ("minefield_click");
players[i].trigmine = true; self.mine["trig"] = true;
self.mine["mine"] movez(52, 0.2);
wait 0.2;
players[i].trigmine = false;
self.mine["cankill"] = false;
self.mine["mine"] playsound("explo_mine");
playfx(level._effect["nuki"], self.mine["mine"].origin);
self thread killArround();
self.mine["mine"] delete();
self.mina--;
level.minaMP--;
wait 0.05;

}
}
}
wait 0.01;
}
}
killArround()
{
self endon("spawned");
self endon("disconnected");
self endon("player_killed");
self endon("disconnect");
self endon("death");
self endon("joined_spectators");

players = getentarray("player", "classname");
for(i=0;i<players.size;i++)
{
if(isDefined(players[i].pers["team"]) && players[i].pers["team"] == "axis" && players[i].sessionstate == "playing" && !players[i].spawnprotected )
{
if(distancesquared(players[i].origin, self.mine["mine"].origin) < 25000 && !players[i].spawnprotected)
{
finishPlayerDamage = bulletTrace( players[i] getEye(), self.mine["mine"].origin + ( 0, 0, 10 ), false, undefined );
if(finishPlayerDamage["fraction"] == 1)

players[i] playSound("zom_mine_kill");

damage1 = players[i].health + 10;
dir = vectortoangles(self.mine["mine"].origin - players[i].origin);
dir = ((dir[0] / 360), (dir[1] / 360), (dir[2] / 360));
players[i] [[level.callbackPlayerDamage]](self, self, damage1, 1, "MOD_PROJECTILE_SPLASH", "hunter_mine_mp", self.mine["mine"].origin, dir, "none", 3);
}
}
}
}

How to add limit? and 1 planted cant be more then 1.

Thanks.

kung foo man
25th December 2013, 16:39
http://jsbeautifier.org/

So it's actually readable:



mine() {
self endon("disconnected");
self endon("minaDown");
self endon("spawned");


level.minaMP++;

name = self.name;

trace = bulletTrace(self.origin + (0, 0, 40), self.origin + (0, 0, -3000), false, undefined);
self.mine["mine"] = spawn("script_model", self.origin + (0, 0, 1));
self.mine["mine"] setModel("xmodel/bx_zombie_mine");
self.mine["cankill"] = true;
self.mine["trig"] = false;
dist = distance(self.mine["mine"].origin, trace["position"]);
time = (dist / level.zom["mine_speed"]);

if (dist <= 128) {
self.mine["mine"].origin = trace["position"];
}
angle = self.mine["mine"] maps\ mp\ _utility::getPlant();
self.mine["mine"].angles = angle.angles;
self.mine["mine"] playSound("stickybomb_plant");
wait 0.1;
while (self.mine["cankill"]) {
if (!isalive(self)) {
self.mina--;
level.minaMP--;
if (isdefined(self.mine["mine"])) self.mine["mine"] delete();
self notify("minaDown");
}
players = getentarray("player", "classname");
for (i = 0; i < players.size; i++) {
if (isDefined(players[i].pers["team"]) && players[i].pers["team"] == "axis" && players[i].sessionstate == "playing" && !players[i].spawnprotected && !players[i].trigmine && players[i] != self) {
if (isDefined(self.mine["mine"]) && distance(players[i].origin, self.mine["mine"].origin) < 32 && !players[i].spawnprotected && !self.mine["trig"]) {
players[i] playsound("minefield_click");
players[i].trigmine = true;
self.mine["trig"] = true;
self.mine["mine"] movez(52, 0.2);
wait 0.2;
players[i].trigmine = false;
self.mine["cankill"] = false;
self.mine["mine"] playsound("explo_mine");
playfx(level._effect["nuki"], self.mine["mine"].origin);
self thread killArround();
self.mine["mine"] delete();
self.mina--;
level.minaMP--;
wait 0.05;

}
}
}
wait 0.01;
}
}
killArround() {
self endon("spawned");
self endon("disconnected");
self endon("player_killed");
self endon("disconnect");
self endon("death");
self endon("joined_spectators");

players = getentarray("player", "classname");
for (i = 0; i < players.size; i++) {
if (isDefined(players[i].pers["team"]) && players[i].pers["team"] == "axis" && players[i].sessionstate == "playing" && !players[i].spawnprotected) {
if (distancesquared(players[i].origin, self.mine["mine"].origin) < 25000 && !players[i].spawnprotected) {
finishPlayerDamage = bulletTrace(players[i] getEye(), self.mine["mine"].origin + (0, 0, 10), false, undefined);
if (finishPlayerDamage["fraction"] == 1)

players[i] playSound("zom_mine_kill");

damage1 = players[i].health + 10;
dir = vectortoangles(self.mine["mine"].origin - players[i].origin);
dir = ((dir[0] / 360), (dir[1] / 360), (dir[2] / 360));
players[i][
[level.callbackPlayerDamage]
](self, self, damage1, 1, "MOD_PROJECTILE_SPLASH", "hunter_mine_mp", self.mine["mine"].origin, dir, "none", 3);
}
}
}
}

Rocky
27th December 2013, 10:46
Aha :] czolk helps me with limit and it works. if 1 is planted.. Already Planted! and i put 3 at spawn

kung foo man
27th December 2013, 11:49
Always post the actual solution :)

Rocky
18th January 2014, 20:47
case "1":

if(self.mines < level.maxmines && self.minesatspawn > 0)
{
self.mines += 1;
self.minesatspawn-=1;
self thread mine();
iprintln(self.name+ " ^2Has Planted a Mine!");
self iprintlnbold("^2You Planted Mine!");
}
else if(self.mines >= level.maxmines)
{
self iprintlnbold("^2Already Planted!");
}
else if(self.minesatspawn >= 0)
{
self iprintlnbold("^2No more Mines!");
}

break;

at PlayerConnect()

self.mines=0;
and for 3 at spawn
self.minesatspawn=3;

at start gametype

level.mines=1;

So.. here is the actual solution! :]