User Tools

Site Tools


hpl2:machine_for_pigs:new_scripts

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
hpl2:machine_for_pigs:new_scripts [2020/04/04 14:04]
mudbill Deprecated page. Replaced by /hpl2/machine_for_pigs/notes
— (current)
Line 1: Line 1:
-====== New Scripts ====== 
- 
-Many scripts from TDD work in MFP, but some of them have been removed (e.g. SetInventoryDisabled).\\ 
-However, MFP has a set of its own new scripts, which are listed below. 
- 
-<font inherit/​inherit;;#​FF0000;;​inherit>//​ This list might be incomplete. You can contribute by going through original MFP .hps files and listing any new scripts ("​new"​ meaning: not a TDD script and not a function which is declared in the same file). ​ //</​font>​ 
- 
-<font inherit/​inherit;;#​FF0000;;​inherit>//​ You can also contribute by testing the untested functions or function arguments with uncertain usage. ​ //</​font>​ 
- 
-===== Player ===== 
- 
-<​code>​ 
-void SetLanternFlickerActive(bool abActive); 
-</​code>​ 
- 
-Enables the lantern flicker effect. 
- 
-//abActive //- set to true to enable the effect 
-<​code>​ 
-void SetPlayerInfection(float afAmount); 
-void AddPlayerInfection(float afAmount); 
-float GetPlayerInfection();​ 
-</​code>​ 
- 
-Infection related scripts. 
- 
-===== Screen effects ===== 
- 
-<​code>​ 
-void ShowScreenImage(string asImage, int alPosX, int alPosY, float afUnknown, bool abUnknown2, float afTime, float afFadeIn, float afFadeOut); 
-</​code>​ 
- 
-Displays an image on the screen. Originally used to show the MFP logo in-game. 
- 
-//asImage //- the image to display. E.g. ''​startup_aamfp_logo.jpg''​ \\ 
-alPosX - horizontal position of the image. 0 is right screen border, smaller values are left. -400 was used for the middle of the screen.\\ 
-//alPosY //- vertical position of the image. 0 is bottom, smaller values are up. -350 was used for the middle of the screen.\\ 
-//afUnknown //- Unless set to below 0, the image won't appear. Might have more functionality to it.\\ 
-//​abUnknown2 //- setting this to true makes the image not appear. Might have more functionality to it.\\ 
-//afTime //- image display time.\\ 
-//afFadeIn //- fade in time. It's added to the base display time.\\ 
-//afFadeOut //- fade out time. It's added to the base display time. 
-===== Enemies ===== 
- 
-<​code>​ 
-void SetEnemyMoveType(string &in asEnemy, string asMoveType);​ 
-</​code>​ 
- 
-**{{http://​wiki.frictionalgames.com/​lib/​images/​smileys/​icon_question.gif?​nolink&​15x15}}This script has been tested, but yielded no results.** 
- 
-Sets the enemy move type. This applies to ???; Patrol move type is set in the LevelEditor.\\ 
-Doesn'​t seem to apply to player chasing animation either. 
- 
-//asEnemy //- the in-game enemy entity\\ 
-//​asMoveType //- options include: WalkBiped, RunBiped, ChargeBiped,​ and probably Quadruped variations as well. 
-<​code>​ 
-void AddEnemyPatrolNode(string&​ asName, string& asNodeName, float afWaitTime, string& asAnimation,​ bool abContinue);​ 
-</​code>​ 
- 
-Adds a patrol node to the enemy'​s path. It has an additional argument when compared to TDD. 
- 
-//asName //- internal name of the enemy\\ 
-//​asNodeName //- path node\\ 
-//​afWaitTime //- time in seconds that the enemy waits at the path node before continuing\\ 
-//​asAnimation //- the animation the enemy uses when reaching the path node\\ 
-abContinue - if false, the enemy will stop at the last patrolnode indefinitely(?​) 
- 
-<​code>​ 
-void SetManPigType(string &in asEntity, string &in asType); 
-</​code>​ 
- 
-**{{http://​wiki.frictionalgames.com/​lib/​images/​smileys/​icon_question.gif?​nolink&​15x15}}This script has been tested and yielded no results.** 
- 
-Seems to alter the enemy AI. It was mostly used in conjunction with Child enemies (but also with Wretches). 
- 
-In testing it doesn'​t seem to have any effects. 
- 
-//asEntity //- the enemy in question. Can be Enemy_ManPig or Enemy_Child type.\\ 
-//asType //- only "​Freddy"​ has been used in the entire game. It is unknown whether other options work. 
- 
-From Peter Howell'​s PhD paper(("​Disruptive Game Design: A Commercial Design and Development Methodology for Supporting Player Cognitive Engagement in Digital Games",​ Peter Howell, 2015)) : 
- 
-//"The initial design of the game’s enemy artificial intelligence system contained three unique sets of behavioural controls. […] every enemy agent in the game would be assigned one of three possible ‘personalities’,​ referred to in the game’s code as the ‘Rod’, ‘Jane’ and ‘Freddy’ personality types."//​ 
- 
-//Overview of proposed enemy agent personality types and key behavioural traits (Pre-Development,​ December 2011):// 
- 
-**‘Rod’:​** 
- 
-• Will maintain a ‘safe’ distance from the player-character.\\ 
-• If unable to do so, will approach player character, investigate them (by getting close and smelling them), before continuing its patrol. 
- 
-**‘Jane’:​** 
- 
-• Will maintain a ‘safe’ distance from player-character,​ whilst observing the player-character’s movements.\\ 
-• If unable to maintain ‘safe’ distance, will panic and flee.\\ 
-• If cornered and unable to flee, will attack and knock player-character to floor, then flee.\\ 
-• Will only attack and kill player-character as a last resort. 
- 
-**‘Freddy’** 
- 
-• Will actively hunt the player-character.\\ 
-• Will attack and kill them if given the opportunity. 
- 
-[[https://​researchportal.port.ac.uk/​portal/​files/​3364888/​PeterHowell_PhD.pdf|Source]] 
- 
-===== Other ===== 
- 
-<​code>​ 
-StartPhoneRinging(string &in asPhonebox);​ 
-StopPhoneRinging(string &in asPhonebox);​ 
-</​code>​ 
- 
-Enables/​Disables the phonecall interactions. See the [[:​hpl2:​machine_for_pigs:​new_entity_types#​phonebox|New entity types ]]artice for more detail about using phones. 
- 
-//​asPhonebox //- the phone box entity to use 
-<​code>​ 
-void SetParticleSystemActive(string &in asParticle, bool abX); 
-</​code>​ 
- 
-"​Freezes"​ a particle (meaning, the last texture will linger). 
- 
-Manual particle optimising might have been the intended usage. It was seen used next to //​SetPhysicsAutoDisable//​.\\ 
-Another apparent usage is to place an inactive particle in the map and activate it when convenient (which might be a simpler way than //​CreateParticleSystemAtEntity//​) 
- 
-//​asParticle //- the particle in question\\ 
-//abX //- whether to freeze or unfreeze the particle 
-<​code>​ 
-void AddHint(string &in asEntryName,​ string asUnknown); 
-</​code>​ 
- 
-Adds a journal entry in the "My Journal"​ category. 
- 
-ui_add_quest.snt is played, but MFP has only silence in those sounds. 
- 
-//​asEntryName -// entries the lang file.\\ 
-Like Notes, it must consist of two actual entries: //​Hint_EntryName_Name // and //​Hint_EntryName_Text//​. Both must be in the "​Journal"​ category.\\ 
-See english.lang for examples.\\ 
-//asUnknown - // this argument was never used. It always contained an empty string. Writing in it doesn'​t yield any error messages or log entries. 
-<code c++> 
-SetLightVisible(string&​ asLightName,​ bool abVisible); 
-</​code>​ 
- 
-Enables/​disables lights. Works with all 3 light types. 
- 
-//​asLightName //- internal light name\\ 
-//abVisible //- determines the state of the light 
-<​code>​ 
-void SetPhysicsAutoDisable(string &in asEntity, bool abX); 
-</​code>​ 
- 
-**{{http://​wiki.frictionalgames.com/​lib/​images/​smileys/​icon_question.gif?​nolink&​15x15}}This script has been tested, but yielded no results.** 
- 
-Unknown usage. Using it doesn'​t seem to have an effect on movement or collission. 
- 
-It seems to be used for optimising, so it might be something that only happens when the player is far from the object (not looking at it still makes it behave normally). 
- 
-//asEntity //- entity in question. It was used only with chandelier_nice.\\ 
-//abX //- whether to disable the object physics (//​when?//​).