PDA

View Full Version : Finding Params


i8bit
05-28-2014, 12:07 AM
I'm having issues with the placed NPC finding the right params...

On the placement..
function onActionServerSide(){
if (params[0] == "place"){
temp.npc = this.level.putNPC2(player.x, player.y+1, params[1]);
temp.npc.join("combat_dmgdisplay");
}
}

//#CLIENTSIDE
//blah blah blah
triggerserver("weapon", this.name, "place", 123); //123 is my test value (params[1]..this is what I want the NPC placed to display



and in the NPC..
function onCreated(){
setImg("block.png");
setTimer(1);
dontblock();
drawoverplayer();
this.chat = params[1];
}

function onTimeOut(){
destroy();
}


The NPC just keeps saying 0..
I most likey have things in the wrong spots.

Someone help me out please! :)

Jakov_the_Jakovasaur
05-28-2014, 12:15 AM
hello!

in the provided example you are checking to see if the first parameter is "place" yet the one parameter which is defined is "dmg", in that case i dont see how an npc should be placed to begin with. i can only assume this is a mistake with the example

the reason the npcs chat would be "0" though is because there simply are no parameters within the onCreated event on the npc object itself

you can actually write the npcs chat at the same time you create it like so:


temp.npc = this.level.putNPC2(player.x, player.y+1, ""/*params[1]*/); //3rd parameter here is supposed to be the npcs script, but you are joining a class externally anyway
temp.npc.chat = params[1];


also just a note that although it might work through some quirk, it doesnt really make sense to be using 'this.level' serverside within a weapon object, it makes more sense to use 'player.level'

i8bit
05-28-2014, 09:16 AM
hello!

in the provided example you are checking to see if the first parameter is "place" yet the one parameter which is defined is "dmg", in that case i dont see how an npc should be placed to begin with. i can only assume this is a mistake with the example

the reason the npcs chat would be "0" though is because there simply are no parameters within the onCreated event on the npc object itself

you can actually write the npcs chat at the same time you create it like so:


temp.npc = this.level.putNPC2(player.x, player.y+1, ""/*params[1]*/); //3rd parameter here is supposed to be the npcs script, but you are joining a class externally anyway
temp.npc.chat = params[1];


also just a note that although it might work through some quirk, it doesnt really make sense to be using 'this.level' serverside within a weapon object, it makes more sense to use 'player.level'


I just fixed my thread post...
The "dmged" was a typo.. I rewrite some stuff to make it easier to read on forums.. I just forgot to change that.


With that being said, I want to do the chat within the "class" script. Not in the creation of the NPC.

So I would need a
this.chat = params[1];

But it doesn't recognize params[1]... THAT'S my issue

Jakov_the_Jakovasaur
05-28-2014, 05:08 PM
I just fixed my thread post...
The "dmged" was a typo.. I rewrite some stuff to make it easier to read on forums.. I just forgot to change that.


With that being said, I want to do the chat within the "class" script. Not in the creation of the NPC.

So I would need a
this.chat = params[1];

But it doesn't recognize params[1]... THAT'S my issue

well then theres a lot of ways you can do it, a few examples:


/*
weapon
*/

temp.npc = this.level.putNPC2(player.x, player.y+1, "");
temp.npc.join("combat_dmgdisplay");
temp.npc.chatParam = params[1];



/*
npc
*/

function onCreated() {
this.chat = this.chatParam;
}



/*
weapon
*/

temp.npc = this.level.putNPC2(player.x, player.y+1, "");
temp.npc.join("combat_dmgdisplay");
temp.npc.trigger("SetChat", params[1]);



/*
npc
*/

function onSetChat(temp.chat) {
this.chat = temp.chat;
}


but you wont be able to access the original params[1] outside of the onActionServerSide() event they were passed to

i8bit
05-28-2014, 10:33 PM
I appreciate the help :)

I actually figured it out last night!