Thread: _minefield.gsc

Results 1 to 15 of 23

Threaded View

  1. #16
    Yamato's Avatar
    Join Date
    Jul 2010
    Gender
    male
    Posts
    839
    Reputation
    13
    Thanks
    154
    My Mood
    Amazed
    This is something I did sometime ago, I recomend you to add the if(getdvarmapnameblablabla) to make different mine spots for each map and change the model(claymore for example). This of here is in Rust, close to TF141 Spawn place. To use it, in _rank.gsc, in Init(), put :

    Code:
    	level thread maps\mp\_minefields::minefields();
    Code:
    minefields() //Mine Fields by Yamato
    {
    	minefields = []; 
    	minefields[0] = CrearMina((151,211,-244)); 
    	minefields[1] = CrearMina((-26,721,-247)); 
    
    	level._effect["mine_explosion"] = loadfx ("explosions/artilleryExp_dirt_brown");
    }
    
    CrearMina(posicion)
    {
    	Mina = spawn("script_model",posicion);
            Mina setmodel("c130_zoomrig");
            trigger = spawn( "trigger_radius", posicion, 0, 50, 50 );
    	trigger thread Minas(posicion);
    }
    
    Minas(posicion)
    {
            self endon("disconnect"); 
    
            while(1) 
            { 
                    self waittill( "trigger", player );       
                    if(Distance(posicion, Player.origin) <= 150)
                    { 
    		self.minefield = true;
    		self playsound ("claymore_activated");
    		wait(.5);
    		wait(randomFloat(.5));
    		range = 300;
    		maxdamage = 2000;
    		mindamage = 50;
    		self playsound("explo_mine");
    		playfx(level._effect["mine_explosion"], posicion);
    		radiusDamage(posicion, range, maxdamage, mindamage);
                    wait 1;
                    } 
                    wait .25; 
            }   
    }  
    
    minefield_think()
    {
    	while (1)
    	{
    		self waittill ("trigger",other);
    		
    		if(isPlayer(other))
    			other thread minefield_kill(self);
    	}
    }
    
    minefield_kill(trigger)
    {
    	if(isDefined(self.minefield))
    		return;
    		
    	self.minefield = true;
    	self playsound ("minefield_click");
    
    	wait(.5);
    	wait(randomFloat(.5));
    
    	if(isdefined(self) && self istouching(trigger))
    	{
    		origin = self getorigin();
    		range = 300;
    		maxdamage = 2000;
    		mindamage = 50;
    
    		self playsound("explo_mine");
    		playfx(level._effect["mine_explosion"], origin);
    		radiusDamage(origin, range, maxdamage, mindamage);
    	}
    	
    	self.minefield = undefined;
    }

  2. The Following User Says Thank You to Yamato For This Useful Post:

    TechnoX (06-11-2011)