plantbarrel()
{
// ik veronderstel dat 'self' een speler is, die tonnen kan plaatsen
barrel = spawn("script_model", self.origin);
barrel setmodel("xmodel/hill400_barrel_black");;
barrel playsound("MP_bomb_plant");
wait 5;
playfx(level.effect["mine_exp"], barrel.origin);
barrel playsound("grenade_explode_default");
barrel hide();
// hide de ton, zodat het voor spelers lijkt dat ze weg is
players = getentarray("player", "classname"); // maak array van alle spelers
for(i=0;i<players.size;i++)
{
// "de speler" verwijst naar de huidige speler van de for loop, dus voor iedere speler apart, en niet voor degene die de ton plaatst
// zorg dat je geen spelers van hetzelfde team killed, en dat de spelers wel aan het spelen zijn.
// Als de speler wel van hetzelfde team is, of de speler is niet aan het spelen, dan moet de for loop gewoon verder gaan met de volgende speler
if(players[i].pers["team"] == self.pers["team"] || players[i].sessionstate != "playing")
continue;
// Variabelen van je radiusdamage, zodat je die makkelijk kan aanpassen
radius = 400;
max_dmg = 300;
min_dmg = 25;
// neem de afstand van de speler naar de ton
dist = (int)distance(players[i].origin, barrel.origin);
// doe een trace naar de speler, om te checke of hij niet achter een muur zit
trace = bulletTrace(barrel.origin + (0,0,20), players[i].origin + (0,0,20), false, barrel);
// check of de speler wel dicht genoeg bij de ton zit, en of hij niet achter een muur zit
if(dist <= radius && trace["fraction"])
{
// als de afstand kleiner is dan de minimum damage * de radius, gedeeld door de max_dmg, dan zal de damage het maximum ingestelde overschrijden, dat mag niet
if(dist < (int)((min_dmg * radius) / max_dmg))
dist = (int)((min_dmg * radius) / max_dmg);
damage = (min_dmg * radius) / dist;
// dingen voor de callback_playerdamage
dir = vectortoangles(barrel.origin - players[i].origin);
dir = ((dir[0] / 360), (dir[1] / 360), (dir[2] / 360));
// doe de damage op de speler
players[i] finishPlayerDamage(players[i], players[i], damage, 1, "MOD_PROJECTILE", "binoculars_mp", barrel.origin, dir, "none");
}
}
wait 5; // wacht tot het geluid van de explosie klaar is met spelen
barrel delete();
}