SilentStriker
Posting Freak
Posts: 950
Threads: 26
Joined: Jul 2011
Reputation:
43
|
RE: SetLanternLitCallback
(08-03-2013, 07:16 PM)hunchbackproduction Wrote: Ok! tried to get this to work, I thought I understood this, But boy was I wrong xD
I need a little more clarification on how this whole thing works.
When you explained the I and K parameter thing I got it, But why is I and K needed ? Can't you just code: "addnumber(3,1)" ?
Also what is up with "public" I saw you put that there before your voids
I still do not get the whole lanternlit, and how it links to parameters ? Are the parameters "true" or "false" and do I have to define these somewhere ?
void LanternLit(bool lanternLit)
{
if(lanternLit)
{
SetMessage("test", "test", 1);
}
else
{
}
}
I have this piece of test code, please explain to me why it does not work! As when I light my lantern the test message does not appear.
PS: I have given you a reputation for the help so far ^ Thanks!
it should not be bool LanternLit it has to be bool abLit since it's a programmed parameter.
so it should look more like this
SetLanternLitCallback("LanternLit");
void LanternLit(bool abLit)
{
if(true)
{
AddDebugMessage("It's working!", true);
}
else
{
AddDebugMessage("It's NOT working", true);
}
}
Here's your fixed code:
void LanternTinderCheck(bool abLit)
{
if (GetGlobalVarInt("Tinderboxes") == 0)
{
SetMessage("Chemical", "notinderboxes", 1);
SetLanternActive(false, true);
SetLanternDisabled(true);
AddTimer("", 1, "ReAllowLighting");
}
if (GetGlobalVarInt("Tinderboxes") > 0)
{
AddGlobalVarInt("Tinderboxes", -1);
SetMessage("Chemical", "lanternlit", 1);
SetLanternLitCallback("LanternTinderCheck");
}
}
void ReAllowLighting(string &in asTimer)
{
SetLanternDisabled(false);
SetLanternLitCallback("LanternTinderCheck");
}
void OnStart()
{
SetLanternLitCallback("LanternTinderCheck");
SetGlobalVarInt("Tinderboxes", 0);
}
void OnEnter()
{
AddEntityCollideCallback("Player", "ScriptArea_1", "ArthurCheck", true, 1);
PlayMusic("RopeFootstep.ogg", true, 1, 1, 1, false);
}
void OnLeave()
{
SetupLoadScreen("LoadingText", "Loading", 7, "HNBKChapterOne.jpg");
}
(This post was last modified: 08-03-2013, 09:33 PM by SilentStriker.)
|
|
08-03-2013, 09:31 PM |
|
Tomato Cat
Senior Member
Posts: 287
Threads: 2
Joined: Sep 2012
Reputation:
20
|
RE: SetLanternLitCallback
(08-03-2013, 07:16 PM)hunchbackproduction Wrote: Ok! tried to get this to work, I thought I understood this, But boy was I wrong xD
I need a little more clarification on how this whole thing works.
When you explained the I and K parameter thing I got it, But why is I and K needed ? Can't you just code: "addnumber(3,1)" ?
Also what is up with "public" I saw you put that there before your voids
I still do not get the whole lanternlit, and how it links to parameters ? Are the parameters "true" or "false" and do I have to define these somewhere ?
void LanternLit(bool lanternLit)
{
if(lanternLit)
{
SetMessage("test", "test", 1);
}
else
{
}
}
I have this piece of test code, please explain to me why it does not work! As when I light my lantern the test message does not appear.
PS: I have given you a reputation for the help so far ^ Thanks! Don't worry. It will all make sense. =p
You could put addNumber(1, 3) somewhere, but the parser/compiler will give you an error unless you define that function somewhere.
I and K, as in my previous example, represent the values that you pass to that function.
"public" is what's known as an access specifier. It's more of an advanced topic. It was force of habit, but I don't think the HPL scripting requires it. You can ignore it if you like.
The boolean is passed through the internal workings of the engine. You define parameters when you define the function. Also, try using "AddDebugMessage" rather than setmessage.
|
|
08-04-2013, 01:33 AM |
|
PutraenusAlivius
Posting Freak
Posts: 4,713
Threads: 75
Joined: Dec 2012
Reputation:
119
|
RE: SetLanternLitCallback
(08-04-2013, 01:33 AM)Tomato Cat Wrote: (08-03-2013, 07:16 PM)hunchbackproduction Wrote: Ok! tried to get this to work, I thought I understood this, But boy was I wrong xD
I need a little more clarification on how this whole thing works.
When you explained the I and K parameter thing I got it, But why is I and K needed ? Can't you just code: "addnumber(3,1)" ?
Also what is up with "public" I saw you put that there before your voids
I still do not get the whole lanternlit, and how it links to parameters ? Are the parameters "true" or "false" and do I have to define these somewhere ?
void LanternLit(bool lanternLit)
{
if(lanternLit)
{
SetMessage("test", "test", 1);
}
else
{
}
}
I have this piece of test code, please explain to me why it does not work! As when I light my lantern the test message does not appear.
PS: I have given you a reputation for the help so far ^ Thanks! Don't worry. It will all make sense. =p
You could put addNumber(1, 3) somewhere, but the parser/compiler will give you an error unless you define that function somewhere.
I and K, as in my previous example, represent the values that you pass to that function.
"public" is what's known as an access specifier. It's more of an advanced topic. It was force of habit, but I don't think the HPL scripting requires it. You can ignore it if you like.
The boolean is passed through the internal workings of the engine. You define parameters when you define the function. Also, try using "AddDebugMessage" rather than setmessage.
Oh. I really thought it's a returnType.
"Veni, vidi, vici."
"I came, I saw, I conquered."
|
|
08-04-2013, 02:12 AM |
|
Tomato Cat
Senior Member
Posts: 287
Threads: 2
Joined: Sep 2012
Reputation:
20
|
RE: SetLanternLitCallback
(08-04-2013, 02:12 AM)JustAnotherPlayer Wrote: Oh. I really thought it's a returnType.
No, in this case "void" is the return type (or lack thereof).
|
|
08-04-2013, 03:06 AM |
|
PutraenusAlivius
Posting Freak
Posts: 4,713
Threads: 75
Joined: Dec 2012
Reputation:
119
|
RE: SetLanternLitCallback
(08-04-2013, 03:06 AM)Tomato Cat Wrote: (08-04-2013, 02:12 AM)JustAnotherPlayer Wrote: Oh. I really thought it's a returnType.
No, in this case "void" is the return type (or lack thereof).
Oh ok. If returnType is int/float, I have to return a value through return; right?
"Veni, vidi, vici."
"I came, I saw, I conquered."
|
|
08-04-2013, 03:28 AM |
|
Tomato Cat
Senior Member
Posts: 287
Threads: 2
Joined: Sep 2012
Reputation:
20
|
RE: SetLanternLitCallback
Yep. It's the same with all the primitive types and any objects etc.
(This post was last modified: 08-04-2013, 03:35 AM by Tomato Cat.)
|
|
08-04-2013, 03:34 AM |
|
Your Computer
SCAN ME!
Posts: 3,456
Threads: 32
Joined: Jul 2011
Reputation:
235
|
RE: SetLanternLitCallback
(08-03-2013, 09:31 PM)SilentStriker Wrote: it should not be bool LanternLit it has to be bool abLit since it's a programmed parameter.
In computer programming, parameter variable names are irrelevant insofar as the signature of the function is concerned. All that really matters is the data type of the parameter. In other words, either "LanternLit" or "abLit" or whatever, or nothing at all, can be used. For example, this would still work:
void LanternCallback(bool) { // Do something... }
(This post was last modified: 08-04-2013, 09:42 AM by Your Computer.)
|
|
08-04-2013, 09:42 AM |
|
SilentStriker
Posting Freak
Posts: 950
Threads: 26
Joined: Jul 2011
Reputation:
43
|
RE: SetLanternLitCallback
(08-04-2013, 09:42 AM)Your Computer Wrote: (08-03-2013, 09:31 PM)SilentStriker Wrote: it should not be bool LanternLit it has to be bool abLit since it's a programmed parameter.
In computer programming, parameter variable names are irrelevant insofar as the signature of the function is concerned. All that really matters is the data type of the parameter. In other words, either "LanternLit" or "abLit" or whatever, or nothing at all, can be used. For example, this would still work:
void LanternCallback(bool) { // Do something... }
True, god I'm rusty with my programming...
(This post was last modified: 08-04-2013, 10:45 AM by SilentStriker.)
|
|
08-04-2013, 10:44 AM |
|
hunchbackproduction
Junior Member
Posts: 36
Threads: 13
Joined: Jul 2013
Reputation:
0
|
RE: SetLanternLitCallback
Haha ^ Thanks to all of you :3 The CODE IT WORKS ! Real thanks to you guys, reputation for everyone. May even put you guys in the credits if I ever finish this thing!
Scripting level is over 9000!
|
|
08-04-2013, 02:17 PM |
|
|