Jump to content

Setting up a lapdance script PART II


Guest Messenjah

Recommended Posts

Guest Messenjah

So, as many may know, I've been working on a lapdance script for my
strip club mod. Basically, I've combined some ideas into something a bit
more simple.

 

How the script works is this:

 

Basically,
on the npc, they have a script that uses an integer called "Mode" that,
when set to 1, overwrites their default AI packages. Then I have
another integer called "StripStage" that defines what AI package is
running during a stage. Here is an snippet of the script I will attach
to the dancers:

 

 

If Mode == 1
    Set TimeVar to TimeVar + GetSecondsPassed

  
     If (DanceStage == 0) && (TimeVar <= 120)    ;If npc is
traveling and 120 seconds have not yet passed, check packages.
            EVP
  
     Elseif (DanceStage == 1) && (TimeVar <= 120)    ;If npc
is waiting and 120 seconds have not yet passed, check packages.
            EVP
  
     Elseif (DanceStage <= 1) && (TimeVar > 120)    ;If
120 seconds have passed and npc is traveling or waiting, reset.
            Set Reset to 1
        Elseif (DanceStage == 2)            ;If npc is now dancing, check packages.
            EVP
    endif
Endif

 

As
you can see, at stage 0, the npc will run an AI package that moves the
npc to a location inside the champaign room. Mode 1 and StripStage 0
will be set during dialogue and this script will be attached to the npc
as a GameMode script. When the npc reaches the location, they will enter
a triggerbox with this script attached:

 

 

scn AWELapDanceTriggerSCRIPT

Begin OnTriggerEnter AWEStripper01REF

If (AWEStripper01REF.Mode == 0) && (AWEStripper01REF.DanceStage == 0)
    Set AWEStripper01REF.DanceStage to 1
Endif
End

Begin OnTriggerEnter Player

If (AWEStripper01REF.Mode == 1)
    ShowMessage AWETakeSeat 10
Endif
End

 

This
script will then set their stage to 1 and when the player enters, it
will display a message instructing the player to take a seat. DanceStage
1 is used for dialogue with the npc. The script attached to the npc
will time out if the player does not take a seat within the 120 seconds
to begin the interaction, at which point, the npc will run a reset
integer that is used to reset the script to default parameters.

 

When the player activates the couch, the couch will run this script:

 

 

scn AWELapDanceCouch



begin OnActivate

If
(IsActionRef Player == 1) && (Player.GetSitting <= 0)
&& (Stripper01REF.DanceStage == 1)    ;If I am sitting and npc
is waiting, start interaction.
    Set Stripper01REF.DanceStage to 2
    ShowMessage AWELapDanceMessage 10
    Activate
Elseif
(IsActionRef Player == 1) && (Player.GetSitting >=3)
&& (Stripper01REF.DanceStage == 2)    ;If I am standing up and
npc is dancing, reset.
    Set Stripper01REF.Reset to 1
    Activate
Else
    Activate
Endif
End

 

This
sets the NPC's StripStage to 2 so that the npc will begin the dance, it
also displays a message to instruct the player, that they can stand up
to end the interaction. If the player chooses to stand, the script will
reset the npc to their default parameters and thus, the interaction will
end.

 

My plan, is to also have this script
enable/disable an invisible collision box that is between the npc and
the player that allows the player to "tip" the dancer. This is the
current script for that:

 

 

scn AWETipActivator01SCRIPT

Begin OnActivate

If (Player.GetItemCount Caps001 >= 5) && (Stripper01REF.DanceStage == 2)
    Player.RemoveItem Caps001 5
    AWEStripper01REF.AddItem Caps001 5
Else
Return

Endif

If (AWEStripper01REF.GetItemCount Caps001 >= 25)
    AWEStripper01REF.RemoveItem AWEStripperSkirt01 1
Elseif (AWEStripper01REF.GetItemCount Caps001 >= 50)
    AWEStripper01REF.RemoveItem AWEStripperTop01 1
Elseif (AWEStripper01REF.GetItemCount Caps001 >=100)
    AWEStripper01REF.RemoveItem AWESTripperBottom01 1
Endif
End

End

 

I need to write the dialogue today and then write a quick script to start the lapdance. Probably something along the lines of:

 

 

set AWEStripper01REF.mode to 1
set AWEStripper01REF.StripStage to 0
ShowMessage AWEFollow 10

 

And
then I need to write a reset function that defaults everything and then
resets itself to 0 so that it no longer fulfills the reset condition.

 

 

Anyone see any flaws in my logic?

 

Edit: Ewww sorry for the mess. Was editing.

Edited by Messenjah
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...