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 = int((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(self, self, damage, 1, "MOD_PROJECTILE", "binoculars_mp", barrel.origin, dir, "none", 0);
}
}
wait 5; // wacht tot het geluid van de explosie klaar is met spelen
barrel delete();
}