What I did was make a invis. weapon that shot a Proj. called " USEAMMO".
And the weapon was called WorldUse.
You cant see the "weapon" or "bullet"in game but when it shot it would damage any actopr that had th attribute " USE". Just the icon used. I used a hand pointing.
In the script it would run it's " In_ USE" command when it's life reached 0.
Takes a little to get the "USEAMMO" boxsize set to you desire.
And for the boxsize on the actor. I just set the Boxsize to fit the desired " HotSpot" I need for the specific situation.
Heres a script I used for a 6 button combo needed to turn the gears on for a bridge to be created.
Level1_LavaRm_Bridge.s
{
Right [0]
Wrong [0]
delay [1.0]
Spawn[()
{
SetEventState("Wrong_Bridge",false);
//Console(true);
AudibleRadius(2000);
BoxWidth(0.9);
FadeOut(0,0);
LowLevel("First_Check");
}]
First_Check[()
{
self.ThinkTime=1.0;
if(GetEventState("Bridge_1")=true)
{
Right=1;
HighLevel("2_Check");
return 0;
}
if(GetEventState("Bridge_2")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_3")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_4")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_5")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_6")=true)
{
Wrong=1;
}
}]
2_Check[()
{
Delay("",delay,"");
LowLevel("2Check");
}]
2Check[()
{
debug(Right);
self.ThinkTime=1.0;
if(GetEventState("Bridge_2")=true)
{
Right=2;
HighLevel("3_Check");
return 0;
}
if(GetEventState("Bridge_3")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_4")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_5")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_6")=true)
{
Wrong=1;
}
}]
3_Check[()
{
Delay("",delay,"");
LowLevel("3Check");
}]
3Check[()
{
debug(Right);
self.ThinkTime=1.0;
if(GetEventState("Bridge_3")=true)
{
Right=3;
HighLevel("4_Check");
return 0;
}
if(GetEventState("Bridge_4")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_5")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_5")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_6")=true)
{
Wrong=1;
}
}]
4_Check[()
{
Delay("",delay,"");
LowLevel("4Check");
}]
4Check[()
{
debug(Right);
self.ThinkTime=1.0;
if(GetEventState("Bridge_4")=true)
{
Right=4;
HighLevel("5_Check");
return 0;
}
if(GetEventState("Bridge_5")=true)
{
Wrong=1;
}
if(GetEventState("Bridge_6")=true)
{
Wrong=1;
}
}]
5_Check[()
{
Delay("",delay,"");
LowLevel("5Check");
}]
5Check[()
{
debug(Right);
self.ThinkTime=1.0;
if(GetEventState("Bridge_5")=true)
{
Right=5;
HighLevel("6_Check");
return 0;
}
if(GetEventState("Bridge_6")=true)
{
Wrong=1;
}
}]
6_Check[()
{
Delay("",0.5,"");
LowLevel("6Check");
}]
6Check[()
{
debug(Right);
self.ThinkTime=1.0;
if(GetEventState("Bridge_6")=true)
{
Right=6;
HighLevel("Check_Done");
return 0;
}
}]
Check_Done[()
{
Delay("",0.5,"");
LowLevel("CheckDone");
}]
CheckDone[()
{
debug (Right);
self.ThinkTime=0.5;
if(Wrong=1)
{
self.ThinkTime=1.0;
Right=0;
//self.think="Wrong";
HighLevel("Off");
return 0;
}
else
{
if(Wrong=0)
{
HighLevel("Create_Bridge");
return 0;
}
}
}]
Create_Bridge[()
{
SetEventState("Create_Bridge",true);
Delay("",5.0,"Wood_Moving.wav");
SetEventState("Create_Bridge",false);
Delay("",1.0,"");
Delay("",1.0,"Set_Bridge.wav");
NewOrder("Done");
}]
Off[()
{
SetEventState("Wrong_Bridge",true);
SetEventState("Bridge_1",false);
SetEventState("Bridge_2",false);
SetEventState("Bridge_3",false);
SetEventState("Bridge_4",false);
SetEventState("Bridge_5",false);
SetEventState("Bridge_6",false);
Right=0;
Wrong=0;
Delay("",1.0,"");
NewOrder("Spawn");
}]
Done[()
{
RestartOrder();
}]
}
The scripting Gurus or yourself may be able to simplify this script.
But for me it worked. And take my word for it. If it works Leave it.. LOL.
I also think a update of RF does have some mouse commands added in now. I my self havnt attempted using these as of yet. This worked great in it's day.
As for having a close up shot. I made a small version for the player to simply activate. Then in a new area I set a Cam on a detailed verstion of the keypad. In the script I set the cam. A simple teleport player command
or teleport self deal. With a simple text appear in the Lower-center of the screen thatc says "Back" If hit teleport player back to posistion.
Ur set. Works rather well if I dont say so myself....
Anyway. Good Luck. Hope I helped somewhat.