Frictional Games Forum (read-only)

Full Version: Crowbar script
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hey, I'm trying to make a crowbar/destroying door script, but i keep getting error,


Whats wrong with this code? Big Grin




void OnStart()

{
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
}
{
AddUseItemCallback("1", "crowbar_1", "Mansion_1", UseCrowbarOnDoor, true);
}
void MonsterFunc1(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("ghostgrunt", true);
ShowEnemyPlayerPosition("ghostgrunt");
AddTimer("", 1, "TimerGruntEnd");
StartPlayerLookAt("AreaLookAt", 30, 50, "");
AddTimer("", 1, "TimerStopPlayerLook");
}


Void UseCrowbarOnDoor(string &in asItem, string &in asEntity)
{
SetEntityActive("crowbar_joint_1", true);
RemoveItem(asItem);
}
void TimerStopPlayerLook (string &in asTimer)
{
SetEntityActive("ghostgrunt", false);
StopPlayerLookAt();
SetEntityActive("servant_grunt_1", true);
}






This is my code without the crowbar script and it works fine:



void OnStart()

{
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
}
void MonsterFunc1(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("ghostgrunt", true);
ShowEnemyPlayerPosition("ghostgrunt");
AddTimer("", 1, "TimerGruntEnd");
StartPlayerLookAt("AreaLookAt", 30, 50, "");
AddTimer("", 1, "TimerStopPlayerLook");
}

void TimerStopPlayerLook (string &in asTimer)
{
SetEntityActive("ghostgrunt", false);
StopPlayerLookAt();
SetEntityActive("servant_grunt_1", true);
}


Big Grin
You have two void OnStarts? Anyway, use this:


Quote:void OnStart()

{
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
AddUseItemCallback("1", "crowbar_1", "Mansion_1", UseCrowbarOnDoor, true);
}


void MonsterFunc1(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("ghostgrunt", true);
ShowEnemyPlayerPosition("ghostgrunt");
AddTimer("", 1, "TimerGruntEnd");
StartPlayerLookAt("AreaLookAt", 30, 50, "");
AddTimer("", 1, "TimerStopPlayerLook");
}


void UseCrowbarOnDoor(string &in asItem, string &in asEntity)
{
SetEntityActive("crowbar_joint_1", true);
RemoveItem(asItem);
}

void TimerStopPlayerLook (string &in asTimer)
{
SetEntityActive("ghostgrunt", false);
StopPlayerLookAt();
SetEntityActive("servant_grunt_1", true);
}

void MonsterFunc1(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("ghostgrunt", true);
ShowEnemyPlayerPosition("ghostgrunt");
AddTimer("", 1, "TimerGruntEnd");
StartPlayerLookAt("AreaLookAt", 30, 50, "");
AddTimer("", 1, "TimerStopPlayerLook");
}

void TimerStopPlayerLook (string &in asTimer)
{
SetEntityActive("ghostgrunt", false);
StopPlayerLookAt();
SetEntityActive("servant_grunt_1", true);
}
You are putting the callbacks in the wrong places. They go in void OnStart. And don't make another void OnStart for a different even. Look at the way I set it up and go from there.
All callbacks must be within the squiggly brackets of the onstart void.

void OnStart()
{
They go here
here
here
}

etc.

(01-17-2012, 02:24 AM)flamez3 Wrote: [ -> ]You have two void OnStarts? Anyway, use this:


Quote:void OnStart()

{
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
AddUseItemCallback("1", "crowbar_1", "Mansion_1", UseCrowbarOnDoor, true);
}


void MonsterFunc1(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("ghostgrunt", true);
ShowEnemyPlayerPosition("ghostgrunt");
AddTimer("", 1, "TimerGruntEnd");
StartPlayerLookAt("AreaLookAt", 30, 50, "");
AddTimer("", 1, "TimerStopPlayerLook");
}


void UseCrowbarOnDoor(string &in asItem, string &in asEntity)
{
SetEntityActive("crowbar_joint_1", true);
RemoveItem(asItem);
}

void TimerStopPlayerLook (string &in asTimer)
{
SetEntityActive("ghostgrunt", false);
StopPlayerLookAt();
SetEntityActive("servant_grunt_1", true);
}

void MonsterFunc1(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("ghostgrunt", true);
ShowEnemyPlayerPosition("ghostgrunt");
AddTimer("", 1, "TimerGruntEnd");
StartPlayerLookAt("AreaLookAt", 30, 50, "");
AddTimer("", 1, "TimerStopPlayerLook");
}

void TimerStopPlayerLook (string &in asTimer)
{
SetEntityActive("ghostgrunt", false);
StopPlayerLookAt();
SetEntityActive("servant_grunt_1", true);
}
You are putting the callbacks in the wrong places. They go in void OnStart. And don't make another void OnStart for a different even. Look at the way I set it up and go from there.
He does not have two OnStart's, if you read, he said that the other part was the script without the crowbar.

Thanks for the help, didnt know the Callbacks should be there Big Grin
Gah, i get errors with this code, anyone knows why? The problem is with the Crowbar/breaking the door script.



void OnStart()

{
AddEntityCollideCallback("Player" , "ScriptArea_1" , "MonsterFunc1" , true , 1);
AddUseItemCallback("1", "crowbar_1", "mansion_1", "UseCrowbarOnDoor" , true);
AddEntityCollideCallback("", "crowbar_joint_1", "ScriptArea_2", "BlowTheShit" , true);
}

Void BlowTheShit(string &in asEntity)
{
SetPropHealth("mansion_1", 0);
}
void MonsterFunc1(string &in asParent, string &in asChild, int alState)
{
SetEntityActive("ghostgrunt", true);
ShowEnemyPlayerPosition("ghostgrunt");
AddTimer("", 1, "TimerGruntEnd");
StartPlayerLookAt("AreaLookAt", 30, 50, "");
AddTimer("", 1, "TimerStopPlayerLook");
}


void UseCrowbarOnDoor(string &in asItem, string &in asEntity)
{
SetEntityActive("crowbar_joint_1", true);
RemoveItem(asItem);
}

void TimerStopPlayerLook (string &in asTimer)
{
SetEntityActive("ghostgrunt", false);
StopPlayerLookAt();
SetEntityActive("servant_grunt_1", true);
}
Can you tell me what error you get?
Main(9,1):ERR: Identifier 'Void' is not a data type
Main/6,1):ERR: No matching Signatures to 'AddEntityCollideCallback(string@&,string@&,string@&,string@&, const cool)'
Main(10,1): ERR : Not all paths return a value
Main(9,1) problem: You have written void with a big V on void blowtheshit

Main(6,1) problem: ("", "crowbar_joint_1", "ScriptArea_2", "BlowTheShit" , true); is written wrong it should be:

AddEntityCollideCallback("crowbar_joint_1", "ScriptArea_2", "BlowTheShit" , true, 1); (I think)



Thanks! Big Grin It doesnt show an error message now but i nothing happens with the door when i bend the crowbar :S
Your syntax is wrong.

Replace (string &in asEntity)

With

(string &in asParent, string &in asChild, int alState)
Pages: 1 2