Frictional Games Forum (read-only)
[SCRIPT] AddUseItem Callback Not Working - Printable Version

+- Frictional Games Forum (read-only) (https://www.frictionalgames.com/forum)
+-- Forum: Amnesia: The Dark Descent (https://www.frictionalgames.com/forum/forum-6.html)
+--- Forum: Custom Stories, TCs & Mods - Development (https://www.frictionalgames.com/forum/forum-38.html)
+---- Forum: Development Support (https://www.frictionalgames.com/forum/forum-39.html)
+---- Thread: [SCRIPT] AddUseItem Callback Not Working (/thread-29801.html)



AddUseItem Callback Not Working - dailycreepypasta - 04-06-2015

To my luck, something else didn't work. I have a crowbar item in one of my maps named "Crowbar". I have a script that requires the item to function properly. So, while testing the mod I got the crowbar and went to the level with the script. The script isn't working for me! Here's the script I'm using:

PHP Code:
void OnStart()
{
        
AddUseItemCallback("""Crowbar""Door""UseCrowbarOnDoor"true);
}

void UseCrowbarOnDoor(string &in asItemstring &in asEntity)
{
        
RemoveItem(asItem);
        
PlaySoundAtEntity("""player_crouch.snt""Player"0.05false);
        
AddTimer(asEntity0.2"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.70.110false);
 
        
AddTimer(""0.1"TimerPushDoor");
}
 
void TimerPushDoor(string &in asTimer)
{
        
AddPropImpulse("Door", -421"world");
        
AddTimer(""1.1"TimerDoorCanClose");
}
 
void TimerDoorCanClose(string &in asTimer)
{
        
SetSwingDoorDisableAutoClose("Door"false);


I made sure that the names match and that the casing is the same, and I don't use the crowbar in any script except for one to set an entity inactive. What could be the problem?


RE: AddUseItem Callback Not Working - DnALANGE - 04-06-2015

Are you 100% sure the names are right and you use the Crowbar in the RIGHT door?
Is this the entre script?
This script looks quite standard to me, so i guess that should work fine.
Let us know if the door and Crowbar or good.


RE: AddUseItem Callback Not Working - Neelke - 04-06-2015

You're missing the collide callback for the crowbar and the area.

Code:
AddEntityCollideCallback("Crowbar", "NAME_OF_AREA", "BreakDoor", true, 1);



RE: AddUseItem Callback Not Working - FlawlessHappiness - 04-07-2015

(04-06-2015, 12:29 PM)Neelke Wrote: You're missing the collide callback for the crowbar and the area.

Code:
AddEntityCollideCallback("Crowbar", "NAME_OF_AREA", "BreakDoor", true, 1);

It's an AddUseItemCallback, not an AddEntityCollideCallback.

OT:
I can't see any problems. As Lange said, check your names again. For capitals and numbers.


RE: AddUseItem Callback Not Working - Neelke - 04-07-2015

(04-07-2015, 07:14 AM)FlawlessHappiness Wrote:
(04-06-2015, 12:29 PM)Neelke Wrote: You're missing the collide callback for the crowbar and the area.

Code:
AddEntityCollideCallback("Crowbar", "NAME_OF_AREA", "BreakDoor", true, 1);

It's an AddUseItemCallback, not an AddEntityCollideCallback.

OT:
I can't see any problems. As Lange said, check your names again. For capitals and numbers.

Then what's this for?

Code:
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");
}

If you check the Guest Room in the main game, they use a collide function for being able to determine where the crowbar is located. If this script does not require collide function, then why is this function even here? This script require both an AddUseItemCallback and an AddEntityCollideCallback.


RE: AddUseItem Callback Not Working - FlawlessHappiness - 04-07-2015

It's true it does, but perhaps he hasn't gotten that far yet, and just wants to check whether his AddUseItemCallback is working.

He says it isn't, so before causing too much confusion can we solve 1 problem at a time, please?


RE: AddUseItem Callback Not Working - Neelke - 04-07-2015

Oh, sorry didn't see that. Then I say the same as Flawless and DnALANGE.


RE: AddUseItem Callback Not Working - Mudbill - 04-07-2015

I guess we'll have to hear what OP means by "script not working" because that might just mean that the whole thing isn't working as expected, in which case the collide callback should do it.


RE: AddUseItem Callback Not Working - FlawlessHappiness - 04-07-2015

(04-07-2015, 09:30 AM)Mudbill Wrote: I guess we'll have to hear what OP means by "script not working" because that might just mean that the whole thing isn't working as expected, in which case the collide callback should do it.

I was thinking the same... Error? Nothing?