Author Topic: Goliath PowerUp not working  (Read 680 times)

Code: [Select]
datablock itemData(Goliath_PowerUp : printGun)
{
image = "";
uiName = "PowerUp - Goliath";
shapeFile = "./BigBlocko.dts";
BoostFunction = "Goliath";
PowerUp = true;
};
function Player::PowerUp_Goliath(%this,%player,%obj)
{
%megaHealth = %player.getDatablock().maxDamage * 1.00;
%player.addHealth(%megaHealth);
%player.setplayerscale("4 4 4");
}
package Goliath
{
   function Armor::damage(%this, %obj, %sourceObject, %position, %damage, %damageType)
{
         %damage/= 1.50; //Change Damage Taken
Parent::damage(%this, %obj, %sourceObject, %position, %damage, %damageType);
}
};
activatePackage(Goliath);

These parts are particually annoying me
Code: [Select]
%player.setplayerscale("4 4 4");
%megaHealth = %player.getDatablock().maxDamage * 1.00;
%player.addHealth(%megaHealth);

THIS PART
Code: [Select]
%player.setplayerscale("4 4 4");
Ive also tried
Code: [Select]
%obj.setplayerscale("4 4 4");

from the console log:
Code: [Select]
Add-Ons/PowerUp_Goliath/Goliath.cs (11): Unable to find object: '' attempting to call function 'getDataBlock'
BackTrace: ->[ZombieOverwritePackage]armor::OnCollision->[holeZombiePackage]armor::OnCollision->[BotHolePackage]armor::OnCollision->[PillPackage]armor::OnCollision->[PorkPackage]armor::OnCollision->[RedPotionPackage]armor::OnCollision->[SodaCanPackage]armor::OnCollision->[SodaCanBPackage]armor::OnCollision->[SodaCanGPackage]armor::OnCollision->[sportBallsPackage]armor::OnCollision->[BlackholePackage]armor::OnCollision->[MagicFire]armor::OnCollision->[fragGrenadePackage]armor::OnCollision->[HEGrenadePackage]armor::OnCollision->armor::OnCollision->[ItemPickup]Player::pickup->[Shield]Player::pickup->ShapeBase::pickup->Weapon::onPickup->[PowerUps]ItemData::onPickup->Player::PowerUp_Goliath


Add-Ons/PowerUp_Goliath/Goliath.cs (12): Unable to find object: '' attempting to call function 'addhealth'
BackTrace: ->[ZombieOverwritePackage]armor::OnCollision->[holeZombiePackage]armor::OnCollision->[BotHolePackage]armor::OnCollision->[PillPackage]armor::OnCollision->[PorkPackage]armor::OnCollision->[RedPotionPackage]armor::OnCollision->[SodaCanPackage]armor::OnCollision->[SodaCanBPackage]armor::OnCollision->[SodaCanGPackage]armor::OnCollision->[sportBallsPackage]armor::OnCollision->[BlackholePackage]armor::OnCollision->[MagicFire]armor::OnCollision->[fragGrenadePackage]armor::OnCollision->[HEGrenadePackage]armor::OnCollision->armor::OnCollision->[ItemPickup]Player::pickup->[Shield]Player::pickup->ShapeBase::pickup->Weapon::onPickup->[PowerUps]ItemData::onPickup->Player::PowerUp_Goliath


Add-Ons/PowerUp_Goliath/Goliath.cs (13): Unable to find object: '' attempting to call function 'SetPlayerScale'
BackTrace: ->[ZombieOverwritePackage]armor::OnCollision->[holeZombiePackage]armor::OnCollision->[BotHolePackage]armor::OnCollision->[PillPackage]armor::OnCollision->[PorkPackage]armor::OnCollision->[RedPotionPackage]armor::OnCollision->[SodaCanPackage]armor::OnCollision->[SodaCanBPackage]armor::OnCollision->[SodaCanGPackage]armor::OnCollision->[sportBallsPackage]armor::OnCollision->[BlackholePackage]armor::OnCollision->[MagicFire]armor::OnCollision->[fragGrenadePackage]armor::OnCollision->[HEGrenadePackage]armor::OnCollision->armor::OnCollision->[ItemPickup]Player::pickup->[Shield]Player::pickup->ShapeBase::pickup->Weapon::onPickup->[PowerUps]ItemData::onPickup->Player::PowerUp_Goliath

Help?

there is only one parameter for PowerUp_Goliath.
Get rid of %player, and %obj.
use %this

Would it be this:
Code: [Select]
function Player::PowerUp_Goliath(%this)
{
%megaHealth = %this.getDatablock().maxDamage * 1.00;
%this.addHealth(%megaHealth);
%this.setplayerscale("4 4 4");
}

or this:
Code: [Select]
function Player::PowerUp_Goliath(%this)
{
%megaHealth = %player.getDatablock().maxDamage * 1.00;
%player.addHealth(%megaHealth);
%obj.setplayerscale("4 4 4");
}

I'm leaning towards the top but I'm not sure.

Nevermind, I made it work.

... with the top one, for future reference

Would it be this:
Code: [Select]
function Player::PowerUp_Goliath(%this)
{
%megaHealth = %this.getDatablock().maxDamage * 1.00;
%this.addHealth(%megaHealth);
%this.setplayerscale("4 4 4");
}

or this:
Code: [Select]
function Player::PowerUp_Goliath(%this)
{
%megaHealth = %player.getDatablock().maxDamage * 1.00;
%player.addHealth(%megaHealth);
%obj.setplayerscale("4 4 4");
}

I'm leaning towards the top but I'm not sure.


It cannot be number 2 because in the args, %player and %obj does not exist. %this is in the args, so it would replace anything that will deal with the player. Unless it is something different than Player::YouHere(%args)

Try to look at my resource and see if it helps you.
« Last Edit: May 30, 2013, 09:27:56 PM by Advanced Bot »