Facebook Twitter YouTube Frictional Games | Forum | Privacy Policy | Dev Blog | Dev Wiki | Support | Gametee


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
MY CAPS LOCK BUTTON BROKE
PutraenusAlivius Offline
Posting Freak

Posts: 4,713
Threads: 75
Joined: Dec 2012
Reputation: 119
#11
RE: CUSTOM STORY ERROR MESSAGES!

(12-23-2013, 01:11 AM)Romulator Wrote: I went through the OP code and corrected most of your errors. Some of them you will have to fix on your own because I do not know exactly where they have to go, or why they are there. I commented any changes and notes you need to take care of. I also did some aligning so I could understand your coding a little better.

I also noticed DnALANGE beat me to it Tongue Though either of ours should suffice, unspoiler mine if you need to Smile
Spoiler below!

PHP Code: (Select All)
void OnStart()                                                                        //The AddCallbacks were not within a void. Placed within OnStart().
    

    
AddUseItemCallback("""Crowbar""Door""UseCrowbarOnDoor"true);
    
AddEntityCollideCallback("Joint""AreaBreak""BreakDoor"true1);
    }

void PickupKey(string &in asEntitystring &in asItem)
    { 
    
AddQuest("quest1""TestQuest");
    
AddUseItemCallback("""MasterBedroomKey""bedroomdoor","UseMasterBedroomKey"true);
    
AddEntityCollideCallback("Player""AreaMemento""EventQuest"true1);
    }                                                                            
//Missing closing brace


void UseMasterBedroomKey(string &in asItemstring &in asEntity)
    {
    
SetMessage("message""message1"3.0f);            //Changed from integer to float. Does not affect the way it is run however.
    
}


AddTimer(""1.1"TimerDoorCanClose");                    //AddTimer() can only be used within a routine (void). Collide with a scriptarea if necessary. Move it or give it a void as necessary.
                                                        //Moved brace to under the below void.

void TimerDoorCanClose(string &in asTimer)
    {
    
SetSwingDoorDisableAutoClose("Door"false);
    }


void UseCrowbarOnDoor(string &in asItemstring &in asEntity)
    {
    
RemoveItem(asItem);
    
PlaySoundAtEntity("""player_crouch.snt""Player"0.05ffalse);
    
AddTimer(asEntity0.2f"TimerPlaceCrowbar");
    }

void TimerPlaceCrowbar(string &in asTimer)
    {
    
SetEntityActive("Joint"true);
    
PlaySoundAtEntity("""puzzle_place_jar.snt"asTimer0false);
    }

void BreakDoor(string &in asParentstring &in asChildint alState)
    {
    
SetEntityActive("Joint"false);
    
SetEntityActive("Broken"true);
    
SetSwingDoorLocked("Door"falsefalse);
    
SetSwingDoorClosed("Door"falsefalse);
    
SetSwingDoorDisableAutoClose("Door"true);
    
AddPropImpulse("Door"003"world");
    
CreateParticleSystemAtEntity("""ps_hit_wood.ps""Areaeffect"false);
    
PlaySoundAtEntity("""break_wood_metal""Areaeffect"0false);
    
GiveSanityBoostSmall();
    
PlayMusic("10_puzzle01.ogg"false0.7f0.1f10false);
    
AddTimer(""0.1f"TimerPushDoor");
    }

void TimerPushDoor(string &in asTimer)
    {
    
AddPropImpulse("Door", -421"world");
    
AddTimer(""1.1f"TimerDoorCanClose");
    }

//void TimerDoorCanClose(string &in asTimer)                    //This code has been used before. May cause errors when called again in code.
//{                                                                //It is easier to call a new timer and use that instead.
//SetSwingDoorDisableAutoClose("Door", false);                    //And it is missing a closing brace :P
//}

void touchdoor(string &in asEntitystring &in type)
    {
    
AddQuest("door""touchdoor");
    }


void EventQuest(string &in asParentstring &in asChildint alState)
    {
    
AddQuest("area""enterarea");
    }

void touchdoor(string &in asEntity)                                //You cannot name two routines after the same void. Change this to touchdoor_2 or something.
    
{                                                            //You will need to change any codes/messages as well which point to here.
    
AddQuest("door""touchdoor");
    } 


If you find you cannot read it well because of browser limitations, download it from here

Modified Rom's script here. You forgot to put in some f's to some of the numbers BECAUSE they're floats, not integers.

"Veni, vidi, vici."
"I came, I saw, I conquered."
12-23-2013, 01:20 AM
Find
DnALANGE Offline
Banned

Posts: 1,549
Threads: 73
Joined: Jan 2012
#12
RE: CUSTOM STORY ERROR MESSAGES!

Muperdebump..
Looks like the REAL prof's taking over..
Sorry i haven't got a LOT of time here.. Wink
Didn't want to add a WRONG script offc.
Next time ill try to take a little more time or wait for other people here.
Thanks ROm and JAP
(This post was last modified: 12-23-2013, 01:24 AM by DnALANGE.)
12-23-2013, 01:24 AM
Find
Romulator Offline
Not Tech Support ;-)

Posts: 3,628
Threads: 63
Joined: Jan 2013
Reputation: 195
#13
RE: MY CAPS LOCK BUTTON BROKE

Whether they are floats or integers, they would still pass correctly in most cases, unless it is a decimal value.

And in response, yes. There are one or two things you need to check:
1. Your AddTimer in the middle of the code. Place it somewhere in the code within a void. I don't know what is supposed to happen, so if you need to, make the player collide with a ScriptArea and make some appropriate code for that:
PHP Code: (Select All)
OnStart()
{
AddEntityCollideCallback("Player""ScriptArea_Name""StartTimer""true"1);
}

void StartTimer(string &in asParentstring &in asChildint alState)
{
AddTimer(""1.1"TimerDoorCanClose");

Just change the ScriptArea_Name to whatever in your Level Editor, and make it big enough for the player to walk through, similar to this:
[Image: 5tz860.jpg]

And the second thing is right down the bottom, you have two touchdoor voids, which you cannot Tongue I said what to do about that though.


Dont worry DNaLANGE. It's all about assistance. You managed to get him from 4 errors to 1, so it's all about progress Smile

Discord: Romulator#0001
[Image: 3f6f01a904.png]
(This post was last modified: 12-23-2013, 01:45 AM by Romulator.)
12-23-2013, 01:41 AM
Find
Radical Batz Offline
Posting Freak

Posts: 953
Threads: 145
Joined: Dec 2013
Reputation: 25
#14
RE: MY CAPS LOCK BUTTON BROKE

(12-23-2013, 01:41 AM)Romulator Wrote: Whether they are floats or integers, they would still pass correctly in most cases, unless it is a decimal value.

And in response, yes. There are one or two things you need to check:
1. Your AddTimer in the middle of the code. Place it somewhere in the code within a void. I don't know what is supposed to happen, so if you need to, make the player collide with a ScriptArea and make some appropriate code for that:
PHP Code: (Select All)
OnStart()
{
AddEntityCollideCallback("Player""ScriptArea_Name""StartTimer""true"1);
}

void StartTimer(string &in asParentstring &in asChildint alState)
{
AddTimer(""1.1"TimerDoorCanClose");

Just change the ScriptArea_Name to whatever in your Level Editor, and make it big enough for the player to walk through, similar to this:
[Image: 5tz860.jpg]

And the second thing is right down the bottom, you have two touchdoor voids, which you cannot Tongue I said what to do about that though.


Dont worry DNaLANGE. It's all about assistance. You managed to get him from 4 errors to 1, so it's all about progress Smile
OK, it's still getting me the same 1 error now! that is this
"main (63,2):ERR: A Function with the same name and parameters already exist"
I don't understand exactly of what i'm supposed to do, and I haven't seen a repeated code!
here is the updated code, do you see a repeated one, cause I don't!

void PickupKey(string &in asEntity, string &in asItem)
{
AddQuest("quest1", "TestQuest");
AddUseItemCallback("", "MasterBedroomKey", "bedroomdoor","UseMasterBedroomKey", true);
AddEntityCollideCallback("Player", "AreaMemento", "EventQuest", true, 1);
}

void UseMasterBedroomKey(string &in asItem, string &in asEntity)
{
SetMessage("message", "message1", 3);
}

void NAMETHISYOURTIMER(string &in asTimer)
{
AddTimer("", 1.1, "TimerDoorCanClose");
}

void TimerDoorCanClose(string &in asTimer)
{
SetSwingDoorDisableAutoClose("Door", false);
}

void WHATYOUWANTTOHAPPNHERE(string &in asTimer)
{
AddUseItemCallback("", "Crowbar", "Door", "UseCrowbarOnDoor", true);
AddEntityCollideCallback("Joint", "AreaBreak", "BreakDoor", true, 1);
}

void UseCrowbarOnDoor(string &in asItem, string &in asEntity)
{
RemoveItem(asItem);
PlaySoundAtEntity("", "player_crouch.snt", "Player", 0.05, false);
AddTimer(asEntity, 0.2, "TimerPlaceCrowbar");
}

void TimerPlaceCrowbar(string &in asTimer)
{
SetEntityActive("Joint", true);
PlaySoundAtEntity("", "puzzle_place_jar.snt", asTimer, 0, false);
}

void BreakDoor(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("Joint", false);
SetEntityActive("Broken", true);
SetSwingDoorLocked("Door", false, false);
SetSwingDoorClosed("Door", false, false);
SetSwingDoorDisableAutoClose("Door", true);
AddPropImpulse("Door", 0, 0,3, "world");
CreateParticleSystemAtEntity("", "ps_hit_wood.ps", "Areaeffect", false);
PlaySoundAtEntity("", "break_wood_metal", "Areaeffect", 0, false);
GiveSanityBoostSmall();
PlayMusic("10_puzzle01.ogg", false, 0.7, 0.1, 10, false);
AddTimer("", 0.1, "TimerPushDoor");
}

void TimerPushDoor(string &in asTimer)
{
AddPropImpulse("Door", -4, 2, 1, "world");
AddTimer("", 1.1, "TimerDoorCanClose");
}

void TimerDoorCanClose(string &in asTimer)
{
SetSwingDoorDisableAutoClose("Door", false);
}

void touchdoor(string &in asEntity, string &in type)
{
AddQuest("door", "touchdoor");
}
void EventQuest(string &in asParent, string &in asChild, int alState)
{
AddQuest("area", "enterarea");
}

void touchdoor(string &in asEntity)
{
AddQuest("door", "touchdoor");
}
(This post was last modified: 12-23-2013, 01:57 AM by Radical Batz.)
12-23-2013, 01:52 AM
Find
DnALANGE Offline
Banned

Posts: 1,549
Threads: 73
Joined: Jan 2012
#15
RE: MY CAPS LOCK BUTTON BROKE

Meaning you have a COPY of the same name somewhere
in YOUR case it´s THIS :
touchdoor
-
You can NOT use the same name twice in a script.
Just make it toutchdoor1 or whatever will work.
-
USE Notepad++, THEN you cans ee what is good and NOT good, It's free o use.
Try google it up.
(This post was last modified: 12-23-2013, 01:57 AM by DnALANGE.)
12-23-2013, 01:56 AM
Find
Romulator Offline
Not Tech Support ;-)

Posts: 3,628
Threads: 63
Joined: Jan 2013
Reputation: 195
#16
RE: MY CAPS LOCK BUTTON BROKE

(12-23-2013, 01:56 AM)DnALANGE Wrote: Meaning you have a COPY of the same name somewhere
in YOUR case it´s THIS :
touchdoor

I pointed this out a few times Blush

PHP Code: (Select All)
void touchdoor(string &in asEntitystring &in type)
{
AddQuest("door""touchdoor");
}
void EventQuest(string &in asParentstring &in asChildint alState)
{
AddQuest("area""enterarea");


void touchdoor(string &in asEntity)
{
AddQuest("door""touchdoor");


Last few lines of your code. You have two touchdoor voids.

Discord: Romulator#0001
[Image: 3f6f01a904.png]
12-23-2013, 02:00 AM
Find
Radical Batz Offline
Posting Freak

Posts: 953
Threads: 145
Joined: Dec 2013
Reputation: 25
#17
RE: MY CAPS LOCK BUTTON BROKE

(12-23-2013, 01:56 AM)DnALANGE Wrote: Meaning you have a COPY of the same name somewhere
in YOUR case it´s THIS :
touchdoor
-
You can NOT use the same name twice in a script.
Just make it toutchdoor1 or whatever will work.
-
USE Notepad++, THEN you cans ee what is good and NOT good, It's free o use.
Try google it up.
actally that touchdoor is supposed to be there twice!
12-23-2013, 02:01 AM
Find
Romulator Offline
Not Tech Support ;-)

Posts: 3,628
Threads: 63
Joined: Jan 2013
Reputation: 195
#18
RE: MY CAPS LOCK BUTTON BROKE

Could you perhaps explain why it needs to be there twice? I don't see anything to assume it must...

Discord: Romulator#0001
[Image: 3f6f01a904.png]
12-23-2013, 02:04 AM
Find
Radical Batz Offline
Posting Freak

Posts: 953
Threads: 145
Joined: Dec 2013
Reputation: 25
#19
RE: MY CAPS LOCK BUTTON BROKE

(12-23-2013, 02:04 AM)Romulator Wrote: Could you perhaps explain why it needs to be there twice? I don't see anything to assume it must...
my mistake, there isn't supposed to be touch door twice, well now I deleted that but it still gets me the same error message!Huh

(12-23-2013, 01:56 AM)DnALANGE Wrote: Meaning you have a COPY of the same name somewhere
in YOUR case it´s THIS :
touchdoor
-
You can NOT use the same name twice in a script.
Just make it toutchdoor1 or whatever will work.
-
USE Notepad++, THEN you cans ee what is good and NOT good, It's free o use.
Try google it up.
I did touchdoor1 but it still gets me the same error message! I'm literally confused
(This post was last modified: 12-23-2013, 02:09 AM by Radical Batz.)
12-23-2013, 02:06 AM
Find
Romulator Offline
Not Tech Support ;-)

Posts: 3,628
Threads: 63
Joined: Jan 2013
Reputation: 195
#20
RE: MY CAPS LOCK BUTTON BROKE

TimerDoorCanClose() also appears twice, both seemingly do the same thing.

Discord: Romulator#0001
[Image: 3f6f01a904.png]
12-23-2013, 02:11 AM
Find




Users browsing this thread: 2 Guest(s)