This DOES NOT work
Code: Select all
Class Level1Ammo : Actor
{
States
{
Spawn:
TNT1 A 0 NODELAY
{
ThinkerIterator WeaponFinder = ThinkerIterator.Create("DoomWeapon");
Actor mo;
Actor ClosestWeapon;
Array <actor> MapWeapons;
while (mo = DoomWeapon(WeaponFinder.Next()))
{
if(mo.GetClass().Weapon.Ammotype)
{
MapWeapons.Push(mo);
}
}
if(MapWeapons.size()>0)
{
For (int i=0; i < MapWeapons.size(); i++)
{
let CurrentWeapon = MapWeapons[i];
if (ClosestWeapon && Distance2D(CurrentWeapon)<Distance2D(ClosestWeapon))
{
ClosestWeapon=CurrentWeapon;
}
else if (!ClosestWeapon)
{
ClosestWeapon=CurrentWeapon;
}
}
}
if(ClosestWeapon)
{
A_SpawnItemEX(ClosestWeapon.GetClass().Weapon.AmmoType.GetClass(),0,0,0,0,0,0,0,SXF_NOCHECKPOSITION);
}
else
{
A_SpawnItemEX("Clip",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION);
}
}
Stop;
}
}
Code: Select all
Class Level1Ammo : Actor
{
States
{
Spawn:
TNT1 A 0 NODELAY
{
ThinkerIterator WeaponFinder = ThinkerIterator.Create("DoomWeapon");
Actor mo;
Actor ClosestWeapon;
Array <actor> MapWeapons;
while (mo = DoomWeapon(WeaponFinder.Next()))
{
MapWeapons.Push(mo);
}
if(MapWeapons.size()>0)
{
For (int i=0; i < MapWeapons.size(); i++)
{
let CurrentWeapon = MapWeapons[i];
if (ClosestWeapon && Distance2D(CurrentWeapon)<Distance2D(ClosestWeapon))
{
ClosestWeapon=CurrentWeapon;
}
else if (!ClosestWeapon)
{
ClosestWeapon=CurrentWeapon;
}
}
}
if(ClosestWeapon)
{
A_SpawnItemEX(ClosestWeapon.GetClass(),0,0,0,0,0,0,0,SXF_NOCHECKPOSITION);
}
else
{
A_SpawnItemEX("Clip",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION);
}
}
Stop;
}
}