Author Topic: Weapon screwing up direct damage.  (Read 706 times)

Code: [Select]
datablock ShapeBaseImageData(WoodenSwordImage : swordImage){
item = WoodenSwordItem;
projectile = WoodenSwordProjectile;
doColorShift = true;
colorShiftColor = "0.392 0.196 0.000 1.000";
};

datablock ItemData(WoodenSwordItem : swordItem){
   iconName = "./ItemIcons/sword";
   doColorShift = true;
   colorShiftColor = WoodenSwordImage.colorShift;
   image = WoodenSwordImage;
};

datablock ProjectileData(WoodenSwordProjectile : swordProjectile){
   directDamage        = 10;
};

function WoodenSwordImage::onPreFire(%this, %obj, %slot)
{
   %obj.playthread(2, armattack);
}

function WoodenSwordImage::onStopFire(%this, %obj, %slot)
{   
   %obj.playthread(2, root);
}

It screws up Melle damage and says bad stuff in the console.

Quote
base/server/scripts/allgamescripts.cs (7842): Register Object failed for object (null) of class Projectile.

Set::Add: Object "0" doesn't exist.

However, if i exec the file again it gets rid of the console error.
« Last Edit: November 07, 2007, 01:54:31 PM by MrPickle »

It's because you're referencing the woodenSwordProjectile before it's created.  Just reorder your datablocks:

Code: [Select]
datablock ProjectileData(WoodenSwordProjectile : swordProjectile)
{
     directDamage = 10;
};

datablock ShapeBaseImageData(WoodenSwordImage : swordImage)
{
     item = WoodenSwordItem;
     projectile = WoodenSwordProjectile;
     doColorShift = true;
     colorShiftColor = "0.392 0.196 0.000 1.000";
};

datablock ItemData(WoodenSwordItem : swordItem)
{
     iconName = "./ItemIcons/sword";
     doColorShift = true;
     colorShiftColor = WoodenSwordImage.colorShift;
     image = WoodenSwordImage;
};

function WoodenSwordImage::onPreFire(%this, %obj, %slot)
{
     %obj.playthread(2, armattack);
}

function WoodenSwordImage::onStopFire(%this, %obj, %slot)
{   
     %obj.playthread(2, root);
}