Posted: September 18th, 2007, 8:25 am
				
				aha, ok. I'll check it out when I get home from work today.
I'll get back to ya, thx.
=EDIT=
Tried it but it doesn't work.
			I'll get back to ya, thx.
=EDIT=
Tried it but it doesn't work.
CoDJumper.com - For all your CoDJumping needs!
https://www.codjumper.com/forums/
Code: Select all
main()
{
maps\mp\_load::main();
thread spin();
thread spin2();
thread spin3();
thread spin4();
thread spin5();
thread spin6();
thread spin7();
thread spin8();
WeaponRespawner("weapons", 50);
ambientPlay("ambient_mp_FEI");
game["allies"] = "british"; 
game["axis"] = "german"; 
game["british_soldiertype"] = "airborne"; 
game["british_soldiervariation"] = "normal"; 
game["german_soldiertype"] = "fallschirmjagergrey"; 
game["german_soldiervariation"] = "normal"; 
game["attackers"] = "allies"; 
game["defenders"] = "axis"; 
} 
spin() 
{ 
door = getent("door","targetname");
door1 = getent("door1","targetname");
trigger = getent("door_trig","targetname");
while(1) 
{
trigger waittill ("trigger");
door rotateyaw(90,2);
door1 rotateyaw(-90,2);
door playsound ("doorsound");
door1 waittill("rotatedone");
wait 2;
door rotateto((0, 0, 0), 2);
door1 rotateto((0, 0, 0), 2);
door playsound ("doorsound");
door1 waittill("rotatedone");
}
}
spin2() 
{ 
door = getent("door","targetname");
door1 = getent("door1","targetname");
trigger = getent("doorinside_trig","targetname");
while(1) 
{
trigger waittill ("trigger");
door rotateyaw(-90,2);
door1 rotateyaw(90,2);
door playsound ("doorsound");
door1 waittill("rotatedone");
wait 2;
door rotateto((0, 0, 0), 2);
door1 rotateto((0, 0, 0), 2);
door playsound ("doorsound");
door1 waittill("rotatedone");
}
}
spin3() 
{ 
door2 = getent("door2","targetname");
trigger = getent("door2_trig","targetname");
while(1) 
{
trigger waittill ("trigger");
door2 rotateyaw(-90,2);
door2 playsound ("doorsound");
door2 waittill("rotatedone");
wait 2;
door2 rotateto((0, 0, 0), 2);
door2 playsound ("doorsound");
door2 waittill("rotatedone");
}
}
spin4() 
{ 
door2 = getent("door2","targetname");
trigger = getent("door2inside_trig","targetname");
while(1) 
{
trigger waittill ("trigger");
door2 rotateyaw(90,2);
door2 playsound ("doorsound");
door2 waittill("rotatedone");
wait 2;
door2 rotateto((0, 0, 0), 2);
door2 playsound ("doorsound");
door2 waittill("rotatedone");
}
}
spin5() 
{ 
door3roof = getent("door3roof","targetname");
trigger = getent("door3roof_trig","targetname");
while(1) 
{
trigger waittill ("trigger");
door3roof rotateyaw(-90,2);
door3roof playsound ("doorsound");
door3roof waittill("rotatedone");
wait 2;
door3roof rotateto((0, 0, 0), 2);
door3roof playsound ("doorsound");
door3roof waittill("rotatedone");
}
}
spin6() 
{ 
door3roof = getent("door3roof","targetname");
trigger = getent("door3roofinside_trig","targetname");
while(1) 
{
trigger waittill ("trigger");
door3roof rotateyaw(90,2);
door3roof playsound ("doorsound");
door3roof waittill("rotatedone");
wait 2;
door3roof rotateto((0, 0, 0), 2);
door3roof playsound ("doorsound");
door3roof waittill("rotatedone");
}
}
spin7() 
{ 
door4 = getent("door4","targetname");
door5 = getent("door5","targetname");
trigger = getent("door45_trig","targetname");
while(1) 
{
trigger waittill ("trigger");
door4 rotateyaw(90,2);
door5 rotateyaw(-90,2);
door4 playsound ("doorsound");
door5 waittill("rotatedone");
wait 2;
door4 rotateto((0, 0, 0), 2);
door5 rotateto((0, 0, 0), 2);
door4 playsound ("doorsound");
door5 waittill("rotatedone");
}
}
spin8() 
{ 
door4 = getent("door4","targetname");
door5 = getent("door5","targetname");
trigger = getent("door45inside_trig","targetname");
while(1) 
{
trigger waittill ("trigger");
door4 rotateyaw(-90,2);
door5 rotateyaw(90,2);
door4 playsound ("doorsound");
door5 waittill("rotatedone");
wait 2;
door4 rotateto((0, 0, 0), 2);
door5 rotateto((0, 0, 0), 2);
door4 playsound ("doorsound");
door5 waittill("rotatedone");
}
}
WeaponRespawner(targetname, defaultrespawndelay)
{
weapons = getentarray(targetname, "targetname");
if(weapons.size > 0)
{
for(i=0; i < weapons.size; i++) 
{
if(!isdefined(weapons[i].script_timescale))
weapons[i].script_timescale = defaultrespawndelay;
// kick off a thread to listen for when the item gets picked up
weapons[i] thread weapon_think(weapons[i].script_timescale);
}
}
}
// self = weapon reference
weapon_think(delaytime)
{
// capture important weapon data first to allow us to respawn them
classname = self.classname;
model = self.model;
count = self.count;
org = self.origin;
angles = self.angles;
targetname = self.targetname;
// Wait till the weapon gets picked up
self waittill("trigger");
// Wait the delay before respawn
wait delaytime;
entity delete();
// respawn the weapon
weapon = spawn(classname, org);
weapon.angles = angles;
weapon.count = count;
weapon setmodel(model); 
weapon.script_timescale = delaytime;
weapon.targetname = targetname;
// Kick off a new thread with the new weapon and kill the old one
weapon thread weapon_think(delaytime);
}
Code: Select all
WeaponRespawner("weapons", 50);Code: Select all
entity delete();That seems to be the problem, it has to refer to the weapon dropped by the player who picks up the spawnable weapon.entity must refer to a entity, not literally be called entity. At the moment, the game will not understand what entity is. Entity must be directly related to something.
Code: Select all
WeaponRespawner("weapons", 50);
Code: Select all
main() 
{
	setExpFog(.00015, 0.03, .03, .03, 0);
	maps\mp\mp_fargo_fx::main(); 
	maps\mp\_load::main();
//Set background ambient noise
	ambientPlay("ambient_mp_fargo"); 
//Soldier Settings 
	game["allies"] = "american"; 
	game["axis"] = "german"; 
	game["attackers"] = "allies"; 
	game["defenders"] = "axis"; 
	game["american_soldiertype"] = "africa"; 
	game["german_soldiertype"] = "africa";
//Initialize the weapon respawner.
	WeaponRespawner("weapons", 60);
	WeaponRespawner("weapons_gunroom", 60);
	thread theDOORS(2);
}
	
theDOORS(howoften)
{
// set howoften to 2 for a 50/50 display or higher number for less often. 
   while(1)
   {
   for(d=0; d < 2; d++)
      {
      if(d == 0){
         doors = getentarray("door_move_x", "targetname");
         dir = "movex";
      }else{
         doors = getentarray("door_move_y", "targetname");
         dir = "movey";
      }
         if(doors.size > 0)
         {
            for(i=0; i < doors.size; i++)
            {
               this_num = randomint(howoften);
               if(this_num == 0)
               {
                  if(!isdefined(doors[i].isopen))
                  {
                     doors[i].isopen = "true";
                  }
                  if(doors[i].isopen == "true")
                  {
                     closedoor(doors[i], dir, 44);
                  }
                  else
                  {
                     opendoor(doors[i], dir, 44);
                  }
               }
            }
         }
      }
//   this_wait = randomint(4);
//   this_wait = (this_wait + 1) * 30;
//   iprintlnbold(this_wait);
//   wait (this_wait);
//   causes a random delay of 30, 60, 90, or 120 seconds
     wait (30);
   }
}
closedoor(door, dir, wid){
   if(dir == "movex")
	{
		door movex(wid, 2, .5, .5);
	}else{
		door movey(wid, 2, .5, .5);
	}
	door.isopen = "false";
}
opendoor(door, dir, wid){
	if(dir == "movex")
	{
		door movex(0-wid, 2, .5, .5);
	}else{
		door movey(0-wid, 2, .5, .5);
	}
	door.isopen = "true";
}
	
// Create multiplayer weapons in Radiant as follows:
// Create weapons in the 2d window with right click "weapons" and select a weapon with _mp at the end which is available in mp
// Set the targetname to a value of your choice, e.g. "weapons" and use the same value to kick off your respawners
// Optional: Set count to the number of weapons that spawn at a time, e.g. 3 for three grenades at once
// Optional: set script_timescale to the time in seconds between respawns
// In your main script include the below functions and place an initial call to the WeaponRespawner in the main routine of your map
// A typically call would be: "WeaponRespawner("weapons", 5);" that will manage all entities with targetname weapons and a default respawn delay of 5 seconds
WeaponRespawner(targetname, defaultrespawndelay)
{
// by sentchy
  weapons = getentarray(targetname, "targetname");
  if(weapons.size > 0)
  {
    for(i=0; i < weapons.size; i++)
    {
    if(!isdefined(weapons[i].script_timescale))
    weapons[i].script_timescale = defaultrespawndelay;
    // kick off a thread to listen for when the item gets picked up
    weapons[i] thread weapon_think(weapons[i].script_timescale);
    }
  }
}
// self = weapon reference
weapon_think(delaytime)
{
  // capture important weapon data first to allow us to respawn them
  classname = self.classname;
  model = self.model;
  count = self.count;
  org = self.origin;
  angles = self.angles;
  targetname = self.targetname;
  // Wait till the weapon gets picked up
  self waittill("trigger");
  // Wait the delay before respawn
  wait delaytime;
  // respawn the weapon
  weapon = spawn(classname, org);
  weapon.angles = angles;
  weapon.count = count;
  weapon setmodel(model);
  weapon.script_timescale = delaytime;
  weapon.targetname = targetname;
  // Kick off a new thread with the new weapon and kill the old one
  weapon thread weapon_think(delaytime);
}