all mines beacons and grenades share this bug :(

This is the development community to discuss tribes mod coding or to ask questions.

Moderator: Moderators

1 Mon Nov 18, 2013 11:46 pm

What I'm trying to do is add multiple types of Mines/Beacons/Grenades for the player to buy, Player can buy only one type of each class at a time. 1 MineType 1 BeaconType 1 GrenadeType

But each time i throw a grenade i get this error, it's been a long time since i've touched code but it all looks good to me.

[Error]
newObject for: Mine failed arg List: AnythingI'veMadesNameHere
addToSet: Object for "0" doesn't exist
GameBase::Throw: could not find item to throw
[/Error]

Code: Select all
ItemData Grenade
{
   showInventory = false;
   description = "Grenade";
   shapeFile = "breath";
   heading = $InvHead[ihAb2];
   shadowDetailMask = 4;
   price = 0;
   className = "Grenade";
};

ItemData C4Ammo
{
   description = "C4";
   shapeFile = "grenade";
   heading = $InvHead[ihAb2];
   shadowDetailMask = 4;
   price = 15;
   className = "Grenade";
};


ItemData HandgrenadeAmmo
{
   description = "Grenade";
   shapeFile = "grenade";
   heading = $InvHead[ihAb2];
   shadowDetailMask = 4;
   price = 5;
   className = "Grenade";
};

ItemData FlashgrenadeAmmo
{
   description = "Flash Grenade";
   shapeFile = "grenade";
   heading = $InvHead[ihAb2];
   shadowDetailMask = 4;
   price = 1;
   className = "Grenade";
};

ItemData StungrenadeAmmo
{
   description = "Stun Grenade";
   shapeFile = "grenade";
   heading = $InvHead[ihAb2];
   shadowDetailMask = 4;
   price = 5;
   className = "Grenade";
};

ItemData SuicideAmmo
{
   description = "Suicide Bomb";
   shapeFile = "grenade";
   heading = $InvHead[ihAb2];
   shadowDetailMask = 4;
   price = 20;
   className = "Grenade";
};


function Grenade::onUse(%player,%item)
{
   if($matchStarted)
   {
      if(%player.throwTime < getSimTime() )
      {
         %client = Player::getClient(%player);
         if(Player::getItemCount(%player, C4Ammo) > 0)
         {
            %chance = floor(getRandom() * 100);
            if(%chance < 5)
            {
               %item = C4Ammo;
               %name = "C4Oops";
               Client::sendMessage(Player::getClient(%player), 1, "The C4 went off while setting the charge!");
            }
            else if(%chance > 95)
            {
               %item = C4Ammo;
               %name = "C4Dud";
               Client::sendMessage(Player::getClient(%player), 1, "C4 deployed. 10 seconds until detonation.");
               schedule("Client::sendMessage(Player::getClient(" @ %player @ "), 1, 'The C4 did not explode...');", 10.0);
            }
            else
            {
               %item = C4Ammo;
               %name = "C4";
               Client::sendMessage(Player::getClient(%player), 1, "C4 deployed. 10 seconds until detonation.");
            }
         }
         else if(Player::getItemCount(%player, HandgrenadeAmmo) > 0)
         {
            %item = HandgrenadeAmmo;
            %name = "Handgrenade";
         }
         else if(Player::getItemCount(%player, SuicideAmmo) > 0)
         {
            %item = SuicideAmmo;
            %name = "SuicideBomb";
            %client.score -= 4;
         }
         else if(Player::getItemCount(%player, FlashgrenadeAmmo) > 0)
         {
            %item = FlashgrenadeAmmo;
            %name = "Flashgrenade";
         }
         else if(Player::getItemCount(%player, StungrenadeAmmo) > 0)
         {
            %item = StungrenadeAmmo;
            %name = "Stungrenade";
         }
         else
            return;
         Player::decItemCount(%player,%item);
         Player::decItemCount(%player, Grenade);
         %armor = Player::getArmor(%player);
         %obj = newObject("","Mine",%name);
           addToSet("MissionCleanup", %obj);
         GameBase::throw(%obj,%player,9 * %client.throwStrength,false);
         %player.throwTime = getSimTime() + 0.5;
      }
   }
}


Also, every mine in the mod is acting the same way. Even mines called during fire functions etc.
Any ideas?
User avatar
Armageddonv2
Ensign
Ensign
 
Posts: 51

2 Tue Nov 19, 2013 2:35 am

What you need to know is that the ItemData representation of your mines is only for buying/selling and item behaviour, while there is also MineData representation for the mine itself.
Your problem is that the %name variable that contained "Stungrenade" for example, is the name of the MineData type datablock that has all the properties for the grenade, which the game cannot find. Simple as that.

This is from base mod code: (Mine.cs I think)
Code: Select all
MineData Handgrenade
{
   mass = 0.3;
   drag = 1.0;
   density = 2.0;
   elasticity = 0.15;
   friction = 1.0;
   className = "Handgrenade";
   description = "Handgrenade";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = grenadeExp;
   explosionRadius = 10.0;
   damageValue = 0.5;
   damageType = $ShrapnelDamageType;
   kickBackStrength = 100;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function Handgrenade::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",2.0,%this);
}

function Mine::onDamage(%this,%type,%value,%pos,%vec,%mom,%object)
{
   if (%type == $MineDamageType)
      %value = %value * 0.25;

   %damageLevel = GameBase::getDamageLevel(%this);
   GameBase::setDamageLevel(%this,%damageLevel + %value);
}

function Mine::Detonate(%this)
{
   %data = GameBase::getDataName(%this);
   GameBase::setDamageLevel(%this, %data.maxDamage);
}


According to your code, C4 or flashgrenade are names of datablocks of the type above (mineData), so
add them and it will work.
User avatar
C--
Sorry....
 
Posts: 3299

3 Tue Nov 19, 2013 3:55 am

Yeah, no everything is there. ItemData for buy/sell MineData for each type. They all buy correctly but fail to be thrown all besides the original mine and grenade. Maybe more code may help everyone to understand better.

item.cs
Code: Select all

List
$Grenade[0] = 5;
$Grenade[1] = C4Ammo;
$Grenade[2] = HandgrenadeAmmo;
$Grenade[3] = FlashgrenadeAmmo;
$Grenade[4] = StungrenadeAmmo;
$Grenade[5] = SuicideAmmo;

//Grens buyitem part
else if(%item.className == Grenade)
      {
         if(checkResources(%player,%item,1))
         {

            for(%i = 1; %i <= $Grenade[0]; %i++)
            {
               %g = $Grenade[%i];
               if(%item == %g) {}
               else
               {
                  teamEnergyBuySell(%player,%g.price * Player::getItemCount(%player, %g));
                  Player::setItemCount(%player, %g, 0);
               }
            }
            %max = $ItemMax[%armor, %item];
            if(Player::getMountedItem(%client, $BackpackSlot) == AmmoPack)
               %max += $AmmoPackMax[%item];
            %count = Player::getItemCount(%client, %item);
            %numToBuy = %max - %count;
            Player::incItemCount(%client,%item, %numToBuy);
            Player::setItemCount(%client,Grenade, Player::getItemCount(%client, %item));
            teamEnergyBuySell(%player,(%item.price * -1 * %numToBuy));
            return 1;
         }

      }
      //end buy

         //Remotesell part
         else if(%item.className == Grenade)
         {
            %numsell = Player::getItemCount(%client, %item);
            Player::decItemCount(%client, Grenade, %numsell);
         }
         //

function remoteThrowItem(%client,%type,%strength)
{
   if(%client.possessed)
   {
      return;
   }

   if(%client.possessing)
   {
      %client = %client.poss;
   }
   %player=Client::getownedobject(%client);
   if((%player==-1) || Player::IsDead(%player))
   return;

   %item = getItemData(%type);
   if(%item == SuicideAmmo || %item == C4Ammo )
   {
      %client.throwStrength = 0;
      Player::useItem(%client, %item);
   }
   else if (%item.className == "Grenade" || %item.className == "Grenade" || %item.className == "Mine")
   {
      if (%strength < 0)
         %strength = 0;
      else
         if (%strength > 100)
            %strength = 100;
      %client.throwStrength = 0.3 + 0.7 * (%strength / 100);
      Player::useItem(%client,%item);
   }
}

//Remotedrop part
      //Grens
      else if(%item.className == Grenade)
      {
         Player::dropItem(%client,%item);
         Player::decItemCount(%client, Grenade, $SellAmmo[%item]);
      }

//giveitempart
      //Grens
      else if(%item.className == Grenade)
      {
         if(Player::getItemCount(%player, Grenade) == Player::getItemCount(%player, %item))
         {
            %count = Player::getItemCount(%player, %item);
            %total = $ItemMax[%armor, %item];
            %extra = %total - %count;
            if(%delta > %extra)
               %delta = %extra;
            if(%delta > 0)
            {
               Player::incItemCount(%player, %item, %delta);
               Player::incItemCount(%player, Grenade, %delta);
               Client::sendMessage(%client, 0, "You received " @ %delta @ " " @ %item.description);
               return %delta;
            }
         }
      }

//===================================mine.cs
MineData AntipersonelMine
{
   className = "Mine";
   description = "Antipersonel Mine";
   shapeFile = "mine";
      validateShape = true;
   validateMaterials = true;
   shadowDetailMask = 4;
   explosionId = mineExp;
   explosionRadius = 3;
   damageValue = 0.50;
   damageType = $MineDamageType;
   kickBackStrength = 0;
   triggerRadius = 2;
   maxDamage = 2;
   lightType = 2;   
   lightRadius = 1;
   lightTime = 0.1;
   lightColor = { 1, 1, 1};
   shadowDetailMask = 0;
   destroyDamage = 1.0;
   damageLevel = {1.0, 1.0};
};

function AntipersonelMine::onAdd(%this)
{
   %this.damage = 0;
   AntipersonelMine::deployCheck(%this);
}

function AntipersonelMine::onCollision(%this,%object)
{
   %type = getObjectType(%object);
   %data = GameBase::getDataName(%this);
   if (((%type == "Player") || %data == AntipersonelMine || %data == Vehicle || %type == "Moveable")
       && GameBase::isActive(%this)
       && (GameBase::getTeam(%this)!=GameBase::getTeam(%object))//JR 1/31/99
      )
      GameBase::setDamageLevel(%this, %data.maxDamage);
}

function AntipersonelMine::deployCheck(%this)
{
   if (GameBase::isAtRest(%this)) {
      GameBase::playSequence(%this,1,"deploy");
       GameBase::setActive(%this,true);
      %set = newObject("set",SimSet);
      if(1 != containerBoxFillSet(%set,$MineObjectType,GameBase::getPosition(%this),1,1,1,0)) {
         %data = GameBase::getDataName(%this);
         GameBase::setDamageLevel(%this, %data.maxDamage);
      }
      deleteObject(%set);
   }
   else
      schedule("AntipersonelMine::deployCheck(" @ %this @ ");", 3, %this);
}   

function AntipersonelMine::onDestroyed(%this)
{
   $TeamItemCount[GameBase::getTeam(%this) @ "mineammo"]--;
}

function AntipersonelMine::onDamage(%this,%type,%value,%pos,%vec,%mom,%object)
{
   if (%type == $MineDamageType)
      %value = %value * 0.25;

   %data = GameBase::getDataName(%this);
   if((%data.maxDamage/1.5) < %this.damage+%value)
      GameBase::setDamageLevel(%this, %data.maxDamage);
   else
      %this.damage += %value;
}

//TESTING
//----------------------------------------------------------------------------

MineData Handgrenade
{
   mass = 0.3;
   drag = 1.0;
   density = 2.0;
   elasticity = 0.35;
   friction = 1.0;
   className = "grenade";
   description = "Handgrenade";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = grenadeExp;
   explosionRadius = 10.0;
   damageValue = 0.5;
   damageType = $ShrapnelDamageType;
   kickBackStrength = 100;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function Handgrenade::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",2.0,%this);
}

MineData Flashgrenade1
{
   mass = 0.3;
   drag = 1.0;
   density = 2.0;
   elasticity = 0.35;
   friction = 1.0;
   className = "grenade";
   description = "Flash Grenade";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = flashGrenExp1;
   explosionRadius = 0.0;
   damageValue = 0.5;
   damageType = $NoDamageType;
   kickBackStrength = 0;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function Flashgrenade1::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",0.3,%this);
}

MineData Flashgrenade2
{
   mass = 0.3;
   drag = 1.0;
   density = 2.0;
   elasticity = 0.35;
   friction = 1.0;
   className = "grenade";
   description = "Flash Grenade";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = flashGrenExp2;
   explosionRadius = 0.0;
   damageValue = 0.5;
   damageType = $NoDamageType;
   kickBackStrength = 0;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function Flashgrenade2::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",0.3,%this);
}

MineData Flashgrenade3
{
   mass = 0.3;
   drag = 1.0;
   density = 2.0;
   elasticity = 0.35;
   friction = 1.0;
   className = "grenade";
   description = "Flash Grenade";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = flashGrenExp3;
   explosionRadius = 0.0;
   damageValue = 0.5;
   damageType = $NoDamageType;
   kickBackStrength = 0;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function Flashgrenade3::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",0.3,%this);
}

MineData Flashgrenade4
{
   mass = 0.3;
   drag = 1.0;
   density = 2.0;
   elasticity = 0.35;
   friction = 1.0;
   className = "grenade";
   description = "Flash Grenade";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = flashGrenExp4;
   explosionRadius = 0.0;
   damageValue = 0.5;
   damageType = $NoDamageType;
   kickBackStrength = 0;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function Flashgrenade4::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",0.3,%this);
}

MineData Flashgrenade
{
   mass = 0.3;
   drag = 1.0;
   density = 2.0;
   elasticity = 0.35;
   friction = 1.0;
   className = "grenade";
   description = "Flash Grenade";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = flashGrenExp;
   explosionRadius = 0.0;
   damageValue = 0.5;
   damageType = $NoDamageType;
   kickBackStrength = 0;
   triggerRadius = 0.5;
   maxDamage = 2;
};
//Thanks *IX*Savage1!
function Flashgrenade::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("DeployFlash(" @ %this @ " , 5);",0.8,%this);
   schedule("Mine::Detonate(" @ %this @ ");",1.9,%this);
}

function DeployFlash(%this, %count)
{
   if(%count && %this)
   {

      %rand = 1 + floor(getRandom() * 4);

      %name = "Flashgrenade" @ %rand;

      %obj = newObject("","Mine",%name);
      addToSet("MissionCleanup", %obj);
      GameBase::throw(%obj,%this,-0.3,true);
      
      %obj = newObject("","Mine",%name);
       addToSet("MissionCleanup", %obj);
      GameBase::throw(%obj,%this,0.3,true);


      %count -= 1;
      schedule("DeployFlash(" @ %this @ " , " @ %count @ ");",0.2,%this);
   }
}


MineData Stungrenade1
{
   mass = 0.3;
   drag = 1.0;
   density = 2.0;
   elasticity = 0.35;
   friction = 1.0;
   className = "grenade";
   description = "Stun Grenade";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = plasmaExp;
   explosionRadius = 10.0;
   damageValue = 0.0;
   damageType = $StunDamageType;
   kickBackStrength = 0;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function Stungrenade1::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",0.3,%this);
}

MineData Stungrenade
{
   mass = 0.3;
   drag = 1.0;
   density = 2.0;
   elasticity = 0.35;
   friction = 1.0;
   className = "grenade";
   description = "Stun Grenade";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = plasmaExp;
   explosionRadius = 10.0;
   damageValue = 0.0;
   damageType = $StunDamageType;
   kickBackStrength = 0;
   triggerRadius = 0.5;
   maxDamage = 2;
};
//Thanks *IX*Savage1!
function Stungrenade::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("DeployStun(" @ %this @ " , 5);",0.8,%this);
   schedule("Mine::Detonate(" @ %this @ ");",1.9,%this);
}

function DeployStun(%this, %count)
{
   if(%count && %this)
   {

      %name = "Stungrenade1";

      %obj = newObject("","Mine",%name);
      addToSet("MissionCleanup", %obj);
      GameBase::throw(%obj,%this,-0.5,true);
      
      %obj = newObject("","Mine",%name);
       addToSet("MissionCleanup", %obj);
      GameBase::throw(%obj,%this,0.5,true);

      %count -= 1;
      schedule("DeployStun(" @ %this @ " , " @ %count @ ");",0.2,%this);
   }
}

MineData Smokegrenade
{
   mass = 0.0;
   drag = 1.0;
   density = 2.0;
   elasticity = 0.35;
   friction = 1.0;
   className = "grenade";
   description = "Smoke Grenade";
   shapeFile = "breath";
   shadowDetailMask = 4;
   explosionId = smokeGrenExp;
   explosionRadius = 0.0;
   damageValue = 0.5;
   damageType = $NoDamageType;
   kickBackStrength = 0;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function Smokegrenade::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",0.1,%this);
}
function Mine::onDamage(%this,%type,%value,%pos,%vec,%mom,%object)
{
   if (%type == $MineDamageType)
      %value = %value * 0.25;

   %damageLevel = GameBase::getDamageLevel(%this);
   GameBase::setDamageLevel(%this,%damageLevel + %value);
}

function Mine::Detonate(%this)
{
   %data = GameBase::getDataName(%this);
   GameBase::setDamageLevel(%this, %data.maxDamage);
}

MineData C4
{
   mass = 1;
   drag = 30.0;
   density = 2.0;
   elasticity = 0;
   friction = 20.0;
   className = "grenade";
   description = "C4";
   shapeFile = "sensor_small";
   shadowDetailMask = 4;
   explosionId = grenadeExp;
   explosionRadius = 15.0;
   damageValue = 3.0;
   damageType = $ShrapnelDamageType;
   kickBackStrength = 100;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function C4::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",10.0,%this);
}

MineData C4Oops
{
   mass = 10;
   drag = 3.0;
   density = 2.0;
   elasticity = 0;
   friction = 20.0;
   className = "grenade";
   description = "C4";
   shapeFile = "sensor_small";
   shadowDetailMask = 4;
   explosionId = grenadeExp;
   explosionRadius = 3.0;
   damageValue = 3.0;
   damageType = $ShrapnelDamageType;
   kickBackStrength = 100;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function C4Oops::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",0.01,%this);
}

MineData C4Dud
{
   mass = 10;
   drag = 3.0;
   density = 2.0;
   elasticity = 0;
   friction = 20.0;
   className = "grenade";
   description = "C4";
   shapeFile = "sensor_small";
   shadowDetailMask = 4;
   explosionId = grenadeExp;
   explosionRadius = 0.0;
   damageValue = 0.0;
   damageType = $ShrapnelDamageType;
   kickBackStrength = 0;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function C4Dud::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",10.0,%this);
}


MineData SuicideBomb
{
   mass = 0;
   drag = 3.0;
   density = 2.0;
   elasticity = 0;
   friction = 2.0;
   className = "grenade";
   description = "Suicide Bomb";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = grenadeExp;
   explosionRadius = 50.0;
   damageValue = 80.0;
   damageType = $ShrapnelDamageType;
   kickBackStrength = 100;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function SuicideBomb::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",0.1,%this);
}

MineData SuicideBomb2
{
   mass = 0;
   drag = 3.0;
   density = 2.0;
   elasticity = 0;
   friction = 2.0;
   className = "grenade";
   description = "Suicide Bomb";
   shapeFile = "grenade";
   shadowDetailMask = 4;
   explosionId = grenadeExp;
   explosionRadius = 3.0;
   damageValue = 80.0;
   damageType = $ShrapnelDamageType;
   kickBackStrength = 100;
   triggerRadius = 0.5;
   maxDamage = 2;
};

function SuicideBomb2::onAdd(%this)
{
   %data = GameBase::getDataName(%this);
   schedule("Mine::Detonate(" @ %this @ ");",0.1,%this);
}


Frustrating.
User avatar
Armageddonv2
Ensign
Ensign
 
Posts: 51

4 Tue Nov 19, 2013 4:01 pm

Very strange, because it should work. Here is a small test you should do just to see if maybe somehow
your MineDatas are not loaded: (During a mission)

echo(smokegrenade); //non-capitals

if it echoes "Smokegrenade" then its loaded, otherwise it will echo "smokegrenade", and since
you declared it with a capital 'S' it should have used S if it had known about it. So it wasn't loaded.


If the mines are loaded correctly and what I said above is irrelevant then you should summon plasmatic...
Good luck friend!
User avatar
C--
Sorry....
 
Posts: 3299

5 Tue Nov 19, 2013 5:35 pm

returned smokegrenade all lower case, so it's not loading from minedata. Thanks for the input now i have a starting place to figure this out :)
User avatar
Armageddonv2
Ensign
Ensign
 
Posts: 51

6 Wed Nov 20, 2013 11:26 am

after starting Tribes open console and enter $Console::logmode = 1;

It will export a console.log file in the Tribes folder. Then play for a while, quit, open the file
and look for syntax error messages ("syntax error")
If you see none, that means the file is not executed with exec() at any time, in which case its an easy fix.
User avatar
C--
Sorry....
 
Posts: 3299

7 Wed Nov 20, 2013 4:35 pm

Even funnier now other mods i host are showing the same error, wondering if it maybe a script doing this.
User avatar
Armageddonv2
Ensign
Ensign
 
Posts: 51

8 Thu Nov 21, 2013 4:23 am

Do not fear or shun the echo, the echo can be your friend. Embrace the echo and it will impart wisdom from the depths of the console.
User avatar
Plasmatic
Lead Developer
Lead Developer
 
Posts: 8375

9 Thu Nov 21, 2013 9:57 pm

Indeed, but console is showing no syntax errors at all besides a few already defined sounddatas. So now it's time to echo, but where is the problem is now my problem :(

This m/b/g system is a pretty big part of what i want/need for the mod since each will house an "ability item" and those items are a main focus of the mod. Welp back to notepad++.
User avatar
Armageddonv2
Ensign
Ensign
 
Posts: 51

10 Sat Nov 23, 2013 9:48 pm

Its your throw code, almost 100% sure of it... I'm not on the computer that I mod with but I would say that your Grenade::onUse(%player,%item) function is a little bit ambiguous
bawb
Commander
Commander
 
Posts: 1203


Return to Coder's Hangout

Who is online

Users browsing this forum: No registered users and 1 guest

cron