heat465 Posted October 14, 2016 Share Posted October 14, 2016 I'm making an apartment mod where the user can rent an apartment but will have to pay x amount of caps each week in order to keep living there. I'm not sure how I would set up a system to check which day is the day they should pay, how to check if they actually paid for their rent (I plan on having a box outside of the door where they can put their caps in), and how to set up the consequences that will happen if they don't pay on time (i.e. getting kicked out of the apartment, having someone come to "collect" your caps, etc.) Can anyone give me a basic idea on how I can make this system work? Link to comment Share on other sites More sharing options...
Mktavish Posted October 14, 2016 Share Posted October 14, 2016 (edited) That sounds pretty interesting ... and to implement it I think your going to need a quest ... and utilize its stages / objectives something like this.... ? Player talks to LandLord and it initiates a quest. This quest then starts keeping track of the "rent is paid" variable. If that variable becomes unpaid status ... the quest initiates other scripts to send leg breakers after you ... ? Is that what you are looking for ? Edited October 14, 2016 by Mktavish Link to comment Share on other sites More sharing options...
heat465 Posted October 14, 2016 Author Share Posted October 14, 2016 That sounds pretty interesting ... and to implement it I think your going to need a quest ... and utilize its stages / objectives something like this.... ? Player talks to LandLord and it initiates a quest. This quest then starts keeping track of the "rent is paid" variable. If that variable becomes unpaid status ... the quest initiates other scripts to send leg breakers after you ... ? Is that what you are looking for ?I could try to do it this way, but I still wouldn't know how to track which day that the player starts to rent the apartment, not to mention how to check when a week passes to check whether they have paid or not. Link to comment Share on other sites More sharing options...
PushTheWinButton Posted October 14, 2016 Share Posted October 14, 2016 (edited) You're going to need some scripting.The game has a global variable called GameDaysPassed which tracks the number of in-game days the player has been playing for. You can check a week has passed by saving the initial state of the global to a script variable when the player gets the house, then check whether GameDaysPassed >= [yourLocalVar] + 7. float fGameDays if (GameDaysPassed >= fGameDays + 7) let fGameDays := GameDaysPassed ;rent time! endifIf the player doesn't pay their rent in time then just lock the house and enable a note on the door or something. Edited October 14, 2016 by PushTheWinButton Link to comment Share on other sites More sharing options...
heat465 Posted October 15, 2016 Author Share Posted October 15, 2016 You're going to need some scripting.The game has a global variable called GameDaysPassed which tracks the number of in-game days the player has been playing for. You can check a week has passed by saving the initial state of the global to a script variable when the player gets the house, then check whether GameDaysPassed >= [yourLocalVar] + 7. float fGameDays if (GameDaysPassed >= fGameDays + 7) let fGameDays := GameDaysPassed ;rent time! endifIf the player doesn't pay their rent in time then just lock the house and enable a note on the door or something.Just curious, does that require NVSE to work? I'm not too sure since I looked up what that operator meant and it was listed with other NVSE expressions. Link to comment Share on other sites More sharing options...
uhmattbravo Posted October 15, 2016 Share Posted October 15, 2016 You're going to need some scripting. The game has a global variable called GameDaysPassed which tracks the number of in-game days the player has been playing for. You can check a week has passed by saving the initial state of the global to a script variable when the player gets the house, then check whether GameDaysPassed >= [yourLocalVar] + 7. float fGameDays if (GameDaysPassed >= fGameDays + 7) let fGameDays := GameDaysPassed ;rent time! endifIf the player doesn't pay their rent in time then just lock the house and enable a note on the door or something.Just curious, does that require NVSE to work? Â I'm not too sure since I looked up what that operator meant and it was listed with other NVSE expressions.No. GameDaysPassed is vanilla. Link to comment Share on other sites More sharing options...
heat465 Posted October 15, 2016 Author Share Posted October 15, 2016 You're going to need some scripting. The game has a global variable called GameDaysPassed which tracks the number of in-game days the player has been playing for. You can check a week has passed by saving the initial state of the global to a script variable when the player gets the house, then check whether GameDaysPassed >= [yourLocalVar] + 7. float fGameDays if (GameDaysPassed >= fGameDays + 7) let fGameDays := GameDaysPassed ;rent time! endifIf the player doesn't pay their rent in time then just lock the house and enable a note on the door or something.Just curious, does that require NVSE to work? Â I'm not too sure since I looked up what that operator meant and it was listed with other NVSE expressions.No. GameDaysPassed is vanilla. I meant the := expression and "let", if I try saving my script it returns an error with it not know what it is. Link to comment Share on other sites More sharing options...
PushTheWinButton Posted October 15, 2016 Share Posted October 15, 2016 Sorry, it's just force of habit that I always write using NVSE operators. Just replace "let" with the vanilla "set" and ":=" with "to". Link to comment Share on other sites More sharing options...
Recommended Posts