awww ;x
Wasn't organized like a party 
More images: http://killtube.org/downloads/php/
	PHP Code:
	
		
// algo by IzNoGod
// needs CoDExtended: https://github.com/riicchhaarrd/CoDExtended
monitor() {
    setcvar("sp_radius", 68); //68
    setcvar("sp_height_per_unit", 17); //17
    setcvar("sp_units_per_turn", 8); //8
    self.crates = [];
    while(self.sessionstate == "playing") {
        if(self useButtonPressed()) {
                start = self.origin;
                units_per_omwenteling = getcvarint("sp_units_per_turn");//8;
                hoogte_per_unit = getcvarint("sp_height_per_unit");//20;
                radius = getcvarint("sp_radius");//50;
                max_units = 100;
                for(i = 0; i < max_units; i++) {
                    h = i * hoogte_per_unit + start[2];
                    hoe_ver = i%units_per_omwenteling;
                    graden = 360 * hoe_ver/units_per_omwenteling;
                    x = start[0] + radius * cos(graden);
                    y = start[1] + radius * sin(graden);
                    //spawnjeunit((x,y,h));
                    
                    e = spawn("script_model", (x,y,h));
                    e setModel("xmodel/crate_misc1");
                    e setbounds(30,30);
                    e.angles = vectortoangles((e.origin[0] - start[0], e.origin[1] - start[1], 0));
                    //e.angles = vectortoangles(self.origin - pos);
                    e setContents(33554432); //CONTENTS_BODY
                    self.crates[self.crates.size] = e;
                    iprintln(self.crates.size + " crates.");
                }
            wait 1;
        } else if(self meleeButtonPressed() || self.crates.size > 950) {
            for(i = 0; i < self.crates.size; i++)
                self.crates[i] delete();
            self.crates = [];
            wait 1;
        }
        wait .05;
    }
}