Author Topic: Why is it not echoing %pl.rads  (Read 1513 times)

its not echoing %pl.rads

Code: [Select]
datablock fxDTSBrickData(RadiationBrickBrickData : brick2x4FData)
{
category = "FalloutRP";
subCategory = "Wasteland Brick";

uiName = "Radiation Zone Minor";

triggerDatablock = RADZoneInputTriggerData;
triggerSize = "32 32 15";
trigger = 0;
};

//trigger!

datablock TriggerData(RadiationBrickTriggerData)
{
tickPeriodMS = 1000;
};

function RadiationBrickData::onPlant(%this, %obj)
{
%obj.createTrigger(RadiationBrickTriggerData);
}

function RadiationBrickTriggerData::onTickTrigger(%this, %trigger, %pl)
{
parent::onTickTrigger(%this, %trigger, %pl);
%pl.rads++;
echo(%pl.rads SPC "hi wow im mr aifrf");
}

function FxDTSBrick::createTrigger(%this, %data)
{
%t = new Trigger()
{
datablock = %data;
polyhedron = "0 0 0 1 0 0 0 -1 0 0 0 1"; //this determines the shape of the trigger
};
missionCleanup.add(%t);
%boxMax = getWords(%this.getWorldBox(), 3, 5);
%boxMin = getWords(%this.getWorldBox(), 0, 2);
%boxDiff = vectorSub(%boxMax,%boxMin);
%boxDiff = vectorAdd(%boxDiff, "0 0 0.2");
%t.setScale(%boxDiff);
%posA = %this.getWorldBoxCenter();
%posB = %t.getWorldBoxCenter();
%posDiff = vectorSub(%posA, %posB);
%posDiff = vectorAdd(%posDiff, "0 0 0.1");
%t.setTransform(%posDiff);
%this.trigger = %t;
%t.brick = %this;
return %t;
}

Your brick's datablock name is wrong, so the onPlant is never being called.
RadiationBrickBrickData

Your brick's datablock name is wrong, so the onPlant is never being called.
RadiationBrickBrickData
*facepalm i need to start going to bed early

how about this one?

Code: [Select]
datablock fxDTSBrickData(ScrapElectronicsBrickData : brick2x4FData)
{
category = "FalloutRP";
subCategory = "Wasteland Brick";

uiName = "ScrapElectronics";
};


function serverCmdLight(%client)
{
%player = %client.player;

%start = %player.getEyePoint();
%stretch = vectorScale(%player.getEyeVector,7);
%end = vectorAdd(%start, %stretch);
%raycast = containerRaycast(%start, %end, $Typemask::FxBrickObjectType);

if (isObject(%object))
{

%object = getWord(%raycast,0);
%datablock = %datablock.getName();
}
if(%datablock.name $= "ScrapElectronicsBrickData")
{
%client.backPack["ScrapElectronics"]++;
%client.backPack["Weight"] += 2;
%client.backPack["ScrapElecPrice"] = 15;
}
}

function serverCmdLol(%client)
{
echo(%client.backPack["Weight"]);
}
this one wont echo either

how about this one?

Code: [Select]
datablock fxDTSBrickData(ScrapElectronicsBrickData : brick2x4FData)
{
category = "FalloutRP";
subCategory = "Wasteland Brick";

uiName = "ScrapElectronics";
};


function serverCmdLight(%client)
{
%player = %client.player;

%start = %player.getEyePoint();
%stretch = vectorScale(%player.getEyeVector,7);
%end = vectorAdd(%start, %stretch);
%raycast = containerRaycast(%start, %end, $Typemask::FxBrickObjectType);

if (isObject(%object))
{

%object = getWord(%raycast,0);
%datablock = %datablock.getName();
}
if(%datablock.name $= "ScrapElectronicsBrickData")
{
%client.backPack["ScrapElectronics"]++;
%client.backPack["Weight"] += 2;
%client.backPack["ScrapElecPrice"] = 15;
}
}

function serverCmdLol(%client)
{
echo(%client.backPack["Weight"]);
}
this one wont echo either
The raycast never works because
Code: [Select]
%stretch = vectorScale(%player.getEyeVector,7);
Should be
Code: [Select]
%stretch = vectorScale(%player.getEyeVector(),7);

And you're defining %datablock wrong.
Just erase the variable and replace
Code: [Select]
if(%datablock.name $= "ScrapElectronicsBrickData")
with
Code: [Select]
if(%object.getDataBlock().getName() $= "ScrapElectronicsBrickData")

The raycast never works because
Code: [Select]
%stretch = vectorScale(%player.getEyeVector,7);
Should be
Code: [Select]
%stretch = vectorScale(%player.getEyeVector(),7);

And you're defining %datablock wrong.
Just erase the variable and replace
Code: [Select]
if(%datablock.name $= "ScrapElectronicsBrickData")
with
Code: [Select]
if(%object.getDataBlock().getName() $= "ScrapElectronicsBrickData")
It is returning this
Code: [Select]
Add-Ons/System_FalloutRPG/Pickup.cs (17): Unable to find object: '' attempting to call function 'getDataBlock'
BackTrace: ->serverCmdLight


Add-Ons/System_FalloutRPG/Pickup.cs (17): Unable to find object: '' attempting to call function 'getName'
BackTrace: ->serverCmdLight
and i am aiming at the brick

It is returning this
Code: [Select]
Add-Ons/System_FalloutRPG/Pickup.cs (17): Unable to find object: '' attempting to call function 'getDataBlock'
BackTrace: ->serverCmdLight


Add-Ons/System_FalloutRPG/Pickup.cs (17): Unable to find object: '' attempting to call function 'getName'
BackTrace: ->serverCmdLight
and i am aiming at the brick
Replace
Code: [Select]
if (isObject(%object))
{

%object = getWord(%raycast,0);
%datablock = %datablock.getName();
}
With
Code: [Select]
if(!isObject(%object = firstWord(%raycast))
{
      return;
}

Code: [Select]
%stretch = vectorScale(%player.getEyeVector,7);

%stretch = vectorAdd(%start, vectorScale(%player.getEyeVector(), 7));

Replace
Code: [Select]
if (isObject(%object))
{

%object = getWord(%raycast,0);
%datablock = %datablock.getName();
}
With
Code: [Select]
if(!isObject(%object = firstWord(%raycast))
{
      return;
}
what do you mean by firstWord?
Edit NVM my friend told me that it wasnt a function

« Last Edit: July 09, 2015, 08:00:22 PM by SuperFlaminninja³ »

what do you mean by firstWord?
Edit NVM my friend told me that it wasnt a function

Huh? firstWord(%x) does the same thing as getWord(%x, 0). It's just easier to understand (I guess).

some one tell me if this it correct
Code: [Select]

function serverCmdLight(%client)
{
%player = %client.player;

%start = %player.getEyePoint();
%stretch = vectorAdd(%start, vectorScale(%player.getEyeVector(), 7));
%end = vectorAdd(%start, %stretch);
%raycast = containerRaycast(%start, %end, $Typemask::FxBrickObjectType);

if(!isObject(%object = firstWord(%raycast)))
{


if(%object.getDataBlock().getName() $= "ScrapElectronicsBrickData")
{
%client.backPack["ScrapElectronics"]++;
%client.backPack["Weight"] += 2;
%client.backPack["ScrapElecPrice"] = 15;
echo(%client.backPack["ScrapElectronics"] SPC "This is annoying");
}

return;
}


}
Because it is still returning

Code: [Select]
Add-Ons/System_FalloutRPG/Pickup.cs (16): Unable to find object: '0' attempting to call function 'getDataBlock'
BackTrace: ->serverCmdLight


Add-Ons/System_FalloutRPG/Pickup.cs (16): Unable to find object: '' attempting to call function 'getName'
BackTrace: ->serverCmdLight
in the console

if(!isObject(%object = firstWord(%raycast)))
{
   if(%object.getDataBlock().getName() $= "ScrapElectronicsBrickData")

it looks a lot like you check to make sure the object doesn't exist, then you try to use the object

Code: [Select]
function serverCmdLight(%client)
{
%player = %client.player;

%start = %player.getEyePoint();
%stretch = vectorAdd(%start, vectorScale(%player.getEyeVector(), 7));
%end = vectorAdd(%start, %stretch);
%raycast = containerRaycast(%start, %end, $Typemask::FxBrickObjectType);

if(!isObject(%object = firstWord(%raycast)))
{
return;
}


if(%object.getDataBlock().getName() $= "ScrapElectronicsBrickData")
{
%client.backPack["ScrapElectronics"]++;
%client.backPack["Weight"] += 2;
%client.backPack["ScrapElecPrice"] = 15;
echo(%client.backPack["ScrapElectronics"] SPC "This is annoying");
}



}
Well i changed it and now it returns nothing what so ever

Code: [Select]
function serverCmdLight(%client) {
    %player = %client.player;

    if(!isObject(%object = getWord(containerRaycast(%player.getEyePoint(), vectorAdd(%player.getEyePoint(), vectorScale(%player.getEyeVector(), 7)), $TypeMasks::FxBrickObjectType),0)))
        return;

    if(%object.getDatablock() == ScrapElectronicsBrickData.getID()) {
        //your code
    }
}
« Last Edit: July 09, 2015, 09:47:28 PM by $trinick »

Code: [Select]
function serverCmdLight(%client) {
    %player = %client.player;

    if(!isObject(%object = getWord(containerRaycast(%player.getEyePoint(), vectorAdd(%player.getEyePoint(), vectorScale(%player.getEyeVector(), 7)), $TypeMasks::FxBrickObjectType),0)))
        return;

    if(%object.getDatablock() == ScrapElectronicsBrickData) {
        //your code
    }
}
Well thanks for spoon feeding and sorry i was so much trouble '-'