[H5] Patch 3.1 new functions and parameters (the list)

Maps and the art of mapmaking.
Franzy
War Dancer
War Dancer
Posts: 362
Joined: 07 Sep 2007
Location: Moscow, Russia
Contact:

[H5] Patch 3.1 new functions and parameters (the list)

Unread postby Franzy » 20 Jan 2009, 14:08

Don't remember if I posted it here. Anyway, the subj:
-----------------------------------------------------------------------
Changed scripting functions:

+ Added another parameter to SetObjectPosition() function, works for heroes only, defines type of teleportation effect (-1 = default, 0 - no effect, 1 - warp, 2 - teleport, 3 - dimension door, 4 - town portal)

+ Added another parameter to AddHeroCreatures(), RemoveHeroCreatures(), AddObjectCreatures(), RemoveObjectCreatures() functions, defines slot number to which the creatures should be placed (if possible). This way you can add several stacks of the same creatures.

+ New triggers: HERO_ADD_SKILL_TRIGGER, HERO_REMOVE_SKILL_TRIGGER, parameters for event handlers: heroName, skill, mastery

+ New trigger: HERO_TOUCH_TRIGGER (works as OBJECT_TOUCH_HERO, applies to heroes only, and hero must be disabled with SetObjectEnabled() function)

New functions:

+ floor(n) - round towards 0: floor(1.75)=1, floor(-3.7)=-3
+ ceil(n) - round away from 0: ceil(2.25) = 3, ceil(-7.1) = 8
+ intg(n) - round to nearest integer
+ frac(n) - returns fractional part of a number: frac(1.23)= 0.23
+ round(n) - returns integer part of a number round(1.23)=1

+ GetPlayerRace( playerId ) - Get player race
+ IsAIPlayer( playerId ) - returns 1 if plaer is AI, 0 otherwise.
+ GetPlayerTeam( playerId ) - Returns team number
+ GetPlayerNecroEnergy( playerId ) - returns amount of dark energy player has (for necros)

+ GetObjectArmySlotCreature( objName, slotIndex ) - returns type and number of creatures in the given slot slotIndex of object objName
+ GetTownRace( townName ) - self-explanatory
+ GiveHeroBattleBonus( heroName, bonusType, amount ) - Gives a hero battle bonus for the next bttle (bonus types are defined in advmap-startup.lua)

+ WarpToMap( mapdbid, playerId = -1 ) - loads map mapdbid where the player will play for playerId (single player only). You can create non-linear campaigns this way.

+ WarpHeroExp( heroName, exp ) - sets hero's experience to given amount. Doesn't affect skills, parameters, etc.

+ TalkBoxForPlayers( playersFilter, iconRef, iconTooltipRef, textRef, addTextRef, callback, mode, titleTextRef, selectTextRef, defaultOption, optionTextRef [, optionTextRef, ...] )
- Message box with up to 5 answers. Example:
s = 'Text/Chest/Choose.txt'
TalkBoxForPlayers( PLAYERFLT_1, nil,s, s,s, 'test1', 0, s,s, 0, s,s,s )

-----------------------------------------------------------------
Corrections to documentation:

GetHeroCount( playerID )

SetPlayerResource( playerID, resourceKindID, quantity, hero="" ) - added another parameter, shows flying icon with resource delta (as if this hero picked up resource pile)

DeployReserveHero( hero, x, y, floor=0, rot=0 ) - now you can set rotation of deployed hero (in degrees)

HasHeroArtefact & GetHeroArtifactsCount - comment to onlyEquipped incorrect. Should read: 0 - count all (default), 1 - equipped only.

GiveArtifact/GiveArtefacy, bindToHero - comment incorrect. Should read: 0 - do not bind (default), 1 - bind to hero.

CreateMonster( monsterName, creatureID, creatureCount, x,y,floorID, moodID=1, courageID=2, rotation=0, doesNotGrow=0)
-Now you can set whether the monster should grow.

SetMonsterCourageAndMood( monsterName, playerID, courageID, moodID ) <-- correct parameters order: first courage then mood

GetObjectCreaturesTypes <-- returns not an array but 7 values (so-called tuple)
E.G.: t1,t2,t3,t4,t5,t6,t7 = GetObjectCreaturesTypes( "mine1" )
The same true for GetHeroCreaturesTypes

CreateStatic( scriptName, dataFile, x,y,floorID, rot=0, terrainAligned=-1, scalePercent=100 )
terrainAligned: -1=auto (as pre-patch), 0=disable, 1=force terrain align
scalePercent: 100=normal size

Win( playerID=-1 )
In multiplayer games (all kinds) can define the player who wins.
The same applies to:
WinTeam( teamID )
Loose( playerID=-1)

GetCurrentPlayer() - DO NOT USE this function in maps with support for Simultaneous Turns, use IsPlayerCurrent( playerID ) instead.

IsPlayerCurrent( playerID )
IsPlayerInGhostMode( playerID )
IsPlayerWaitingForTurn( playerID )
IsTeamCurrent( teamID )
- self-explanatory

SetAmbientLightForPlayers( playersFilter, floorID, lightName, fade=false, time=1 )
- For MP

MessageBoxForPlayers( playersFilter, msg, callback )
QuestionBoxForPlayers( playersFilter, msg, callbackYes, callbackNo )
- For MP

Play2DSound( soundName, asVoiceover=0 )

Play2DSoundForPlayers( playersFilter, soundName, asVoiceover=0 )
Play3DSoundForPlayers( playersFilter, soundName, x,y,floorID )

StartDialogSceneForPlayers( playersFilter, dialogDBID, callback="", save="" )
StartCutSceneForPlayers( playersFilter, cutSceneDBID, callback="", save="" )

-All self-explanatory

GetGameVar( name )
SetGameVar( name, value )

- Use this to get/set game variables. Values are written to a file assossiated with player profile. ALL MAPS AND CAMPAIGNS SHARE THE SAME FILE. Use long and descriptive names with prefixes to avoid accidental mess-up. Game vars can be used to transfer ANY info between campaign maps, for example.

BlockGame( playersFilter=0 )
UnblockGame( playersFilter=0 )
- parameter is only used in MP.

MoveCamera( x,y,floorID, zoom=50, pitch=1.57, yaw=0, noZoom=0, noRotate=0, noMotion=0 )
MoveCameraForPlayers( playersFilter, x,y,floorID, zoom=50, pitch=1.57, yaw=0, noZoom=0, noRotate=0, noMotion=0 )
-self-explanatory

DisableCameraFollowHeroesForPlayers( playersFilter, disableOwn, disableAlly, disableEnemy )
-self-explanatory

ExitGame()
Instantly exits game.

PlayVisualEffect( effectName, objectName="", tag="", x=0,y=0,z=0, rot=0, floorID=0, playersFilter=0 )
- for MP, can now define whom to show

SetAIHeroFleeControl( hero, uniqueControl )
if uniqueControl=1, this hero is unaffected by global flee control rules (has its own)

GetLastSavedCombatIndex()
GetSavedCombatResult( index )
GetSavedCombatArmyPlayer( index, winner )
GetSavedCombatArmyHero( index, winner )
GetSavedCombatArmyCreaturesCount( index, winner )
GetSavedCombatArmyCreatureInfo( index, winner, creatureIndex ) => returns creatureID, countTotal, countDied

IsPlayerLost( playerID ) -self-explanatory

CanShowToPlayer( playerID ) - is it possible to show a message box ( msgbox/qbox/talkbox) to a player (if he will see it). Important for MP. Use in cycles with sleep, like this:

while not CanShowToPlayer( PLAYER_1 ) do
sleep(10)
end;
MessageBox(....)

GetTurnTimeLeft( playerID ) - how much time is left for player (remember time in combats is partially compensated for players in MP games)

GetSoundTimeInSleeps( soundName ) - returns sound's length in sleeps, not in seconds.

New combat functions:
GetRagePoints( unitName )
GetRageLevel( unitName )
-self-explanatory

Return to “Mapmaking Guild”

Who is online

Users browsing this forum: No registered users and 7 guests