Modding Rundown: PY Scripts

Started by Teancum, April 19, 2007, 06:04PM

Previous topic - Next topic
Added the following entry in Teancum's list in page 2:

setCombatNode -- Makes a character use an ability from his powerstyle or fightstyle. Example: setCombatNode("penance", "power6" )->Penance will use power6, as defined in his powerstyle.

I don't think this is documented:

act("name of entity to use", "name of the character" )

March 01, 2013, 09:03AM #47 Last Edit: March 15, 2015, 06:58AM by Teancum
GREEN functions work (in MUA, may work in XML2 as well)
BLUE functions are confirmed as broken in MUA
ORANGE functions don"t seem to work in XML2/MUA

Definition of specific static global calls
"_HERO1_" --First hero slot
"_HERO2_" --Second hero slot
"_HERO3_" --Third hero slot
"_HERO4_" --Fourth hero slot
"_OWNER_" --Performs verb on whoever called it
"_ACTIVATOR_" --Similar to _OWNER_, but used when you activate something.  (A good example is picking up a focus upgrade)
"_ACTIVE_HERO_" -- Name explains itself, it's the character the player currently uses.



SIMULATOR/DANGER ROOM RELATED:
addSimulatorScore(integer) -- adds a score to the current sim mission
addSimulatorScore(200000 )
closeDangerRoom --unused in MUA, may be used in XML2
dangerRoomEndMission --unused in MUA, may be used in XML2
endComicMissionAfterAsync --unused in MUA
endDRScenario --unused in MUA, may be used in XML2
getComicMissionHero -- gets the current hero, returns their name (not ID) from herostat
hero = getComicMissionHero( )
getComicMissionVillain --gets the villain, returns their name (not ID) from npcstat
villain = getComicMissionVillain( )
getDangerRoomActive --unused in MUA, may be used in XML2
incrementSimulatorObjectivesScore(integer) --used for the fights against Winter Soldier and Warstar. Seems to be used when there are multiple pieces to a simulator objective (like destroying several beams in the Warstar fight).
incrementSimulatorObjectivesScore(500 )
loadComicMissionNow --unused in MUA. See loadSimulatorComicMission() below as this verb may relate to that, starting the mission immediately instead of bringing up the "start mission now?" prompt
loadMapOpenMenu
loadSim --unused in MUA
loadSimulatorComicMission("mission name") --Loads a sim mission. Usually during pickup of a sim disc. Brings up a "start mission now?" prompt to allow the player to choose to play the mission now or later.
loadSimulatorComicMission('CMBLACKWIDOWVV')
setComicMissionHeroPlayer --perhaps useful to set the hero AFTER going into a mission (allowing us to give that hero rewards), but it may set the player (person actually playing) and not the character
setDangerRoomFailed() --fails the Danger Room/Simulator scenario.
setDangerRoomFailed( )
setDangerRoomSuccess --wins the Danger Room/Simulator scenario.
setDangerRoomSuccess( )
setSimulatorEntDestroyedset --not used in MUA
SimulatorSpawnSlotEnabled(integer, "TRUE/FALSE", "TRUE/FALSE") --enables/disables a spawn slot. More research needed, but is used in a few simulator missions.
setSimulatorSpawnSlotEnabled(5, "FALSE", "TRUE" )


SAVE/LOAD:
saveloadAbort
saveloadBootDeleteCorrupt
saveloadChooseCorrupt
saveloadChooseFile
saveloadCleanUp
saveloadCompleteLoad
saveloadDefaultCheck
saveloadDefaultCheck2
saveloadDeleteCorrupt
saveloadDeleteFile
saveloadDeleteSuccess
saveloadFormat
saveloadImageCheck
saveloadLoadOptions
saveloadLoseGameState
saveloadNoSpaceWarning
saveloadOverwrite
saveloadOvrWriteOpts
saveloadOvrWriteOptsAsk
saveloadProcess
saveloadSaveConfirmed
saveloadSelectDevice



CHARACTER/TEAM RELATED:
act("name of entity to use", "name of the character" )
act("name of entity to use", "name of the character" )
actSilent("name of entity to use", "name of the character" )
act("name of entity to use", "name of the character" )
addBolton --Adds a bolton programatically to a character.
hero1 = getID("_HERO1_" )
addBolton(hero1, "models/boss_loki/sword_bloki_w", "Bip01 R Hand", "grab1", 1 )

addXtremePip(integer) --Either fills the Xtreme meter, or gives you a certain amount of momentum. Unknown usage
allowConversation("TRUE/FALSE") --allow conversation. Useful if you want certain things to be completed before the convo can be had.
allowConversation("TRUE")
alive("entity") --Checks to see if someone is alive. 
alive("spiderman") --would see if Spidey's alive
allowConvIfName("_ACTIVATOR_", "name") --If "character" started the conversation, allow a special convo
allowConvIfName("_ACTIVATOR_", "blackpanther") --only black panther can have this conversation
allowResponseOnGameVarCount --Allows conversations based on how many game vars are completed.  Might allow for custom variables.  For instance, create a variable that says you have to talk to Black Widow and Vision before allowing a specific response to Nick Fury's conversations.
attackEntityWithType
beATeamPlayer("NPC", "TRUE/FALSE") --sets whether a NPC will fight along with the player team
beATeamPlayer("corsair", "TRUE") --Corsair with fight with the player heroes
beATeamPlayer("nicfury_npc", True)
controlNPC("heroID", "NPCname", "TRUE/FALSE") -- Cool, maybe like Havok in XML1 during the Weapon X mission?
controlNPC(who, "silversurfer", "FALSE" )
controlPlayerHeroWithAI(float) --lets the Active Hero be moved on a waypoint path for a specified time, then returns it to the player. -1.000 will give control infinitely, while 0.100 lets the AI control for 1/10 of a second, then returns it to the player.
controlPlayerHeroWithAI(-1.000 )
copyOAndANonActivators("location1", "location2", "location3") --moves the non-activating heroes elsewhere. Used often in conversations to ensure the three other characters aren't in the camera view.
copyOAndANonActivators("fury_spot01", "fury_spot02", "fury_spot03" )
copyOriginAndAngles("object to move", "place to move it") --Moves something to something's else's exact location
copyOriginAndAngles("final_left_bead", "orb_left_null" )
disallowResponse --Turns of a response in a conversation?
disallowResponseOnObjective
disallowResponseOnVar --See allowResponseOnGameVarCount
dropWeapon --Forces a character to drop a weapon (used in sim missions before you enter the boss room)
dropWeapon("[entity]", "TRUE/FALSE" )
enableTargets("entitiy")
enableTargets("_OWNER_" )
faceEntity
fadeIn --Fade the hero in/out, or the camera?  (needs research)
fadeOut --Fade the hero in/out, or the camera?  (needs research)
getAIControlled --checks to see if the hero that did something is currently being controlled by AI and not the player
AI = getAIControlled("_ACTIVATOR_" )
getConversationActive --Checks to see if a conversation is running.  Returns 1 for yes, 0 for no. May require a conversation name, or may just be a check to see if the player is talking to someone
getHealth('entity') --gets the current health of an entity
getHealth('radioactiveman')
getHealthMax('entity')
getHealthMax('radioactiveman')
getHeldWeapon("entity") --Gets the name of the held weapon from weapons.engb
weapon_name = getHeldWeapon("_ACTIVATOR_" )
getHeroID("hero")--Gets the hero's unique ID. The ID can be stored in a game flag. For example, whoever sacrifices themself to free Ghost Rider get's their ID stored in a game flag (saved), later on that ID is retrieved when they can be used again.
activator_name = getName("_ACTIVATOR_" )
locked_char_id_num = getHeroID(activator_name )
setGameVar("sacd_hero", locked_char_id_num )

getHeroName --Gets the hero's name
GetHeroName("_HERO1_") --gets the name of the hero in the first playable slot
getName("global" ) --Gets the NPC or hero's name
getName("_ACTIVATOR_" ) --gets who activated a conversation
getParentID --Get's the parent of something
isActorInList --you pass in a character name (I.E. "ironman"), and pass in a delimited string of name, and it will tell you if the character name is within that list of names, so say you got an event where Ironman, cap, and spidey will do certain things, you can check to see if the hero the player is playing is one of those guys.
run_default = isActorInList("_ACTIVATOR_", "iceman storm wolverine" )
isActorOnTeam('name') --Checks to see if an actor is on your team. Refers to active team and not all playables.
isActorOnTeam('ironman')
killEntity("name") --Kills an entity. *MIGHT* remove the entity as well?
killEntity('scorpion")
killEntitySilent("name") --Kills an entity.  Not sure what the silent part is about, but it works
levelUp
lockCharacter('name', 'skin name') --locks a playable character until unlocked with unlockCharacter(). Skin name is optional, and does not work in MUA
lockCharacter('deadpool', 'aoa') --locks Deadpool and/or his AoA costume
loopCombatNode --Takes the Entity Name, The Combat Node Name and the LoopTypeName. And it will loop the node.
moveHeroesToEnt("entity") --move the heroes to a specific entity (an object, invisible object, enemy, etc)
moveToEntity("actor", "place to move to") --moves an actor to a specified entity
moveToEntity("_HERO1_", "hero1here" )
myteamConfirm
permanentStatBoost("name", 'stat") --Raises a hero stat (skill, body, focus...). permanentStatBoost("_HERO1_",'skill")
playanim --Works, don"t have an example of usage on hand
playCombatNodeTrigger
removeBolton --Add/Remove boltons via script.  Might be useful for per-skin boltons. Example: hero1 = getID("_HERO1_" )
removeBolton("_HERO1_", 1 )

resurrect("actor") --Resurrects a dead member of the team
resurrect("ironman" )
reviveHeroes --Revives all heroes?
reviveTeam --Revives all heroes currently in play?
setActorScaleTimed
setAggression
setAIActive("name", "TRUE/FALSE") --turns an AI on or off
setAIActive("scorpionNPC", "FALSE")
setAIActive2 --unknown. Usage is probably the same as above, but maybe it allows you to differentiate between two characters?
setAllAIActive("TRUE/FALSE") --turns ALL AI in a level on or off
setAllAIActive(, "FALSE")
setAlpha
setBossUndying
setCanMove("entity", "TRUE/FALSE") --sets whether an actor can move
setCanMove("scorpion", "FALSE")
setCombatNode -- Makes a character use an ability from his powerstyle or fightstyle. setCombatNode("penance", "power6" ) --Penance will use power6, as defined in his powerstyle.
setDefaultTarget
setDestroyObjects
setFlee
setFollowingHero("character", "TRUE/FALSE" ) --Sets a character to follow the player.  A good example is Dr Strange in Mandarin's palace (before you unlock him)
setFollowingHero("drstrangeNPC", "TRUE" )
setHealth("entity", integer) --Changes the entity's health to the number specified
setHealth("_ACTIVATOR_", 1 )
setHealthMax("entity", integer) --Sets the max health an entity can have
setHealthMax("_ACTIVATOR_", 100 )
setEnergy("entity", integer) --Changes the entity's energy to the number specified
setEnergy("_ACTIVATOR_", 1 )
setEnergyMax("entity", integer) --Sets the max energy an entity can have
setEnergyMax("_ACTIVATOR_", 100 )
setHomingID
setInvisible
setInvulnerable("name", "TRUE/FALSE") --makes a given character invincible
setInvulnerable("LukeCage", "FALSE" )
setMyteamType
setName --used in some /scripts/act4/skrull/skrull5 scripts
setNoTarget
setParent
setPathIgnore
setPatternSequence --Sets the button pattern sequence from some other file, used in some /scripts/act4/skrull/skrull5 scripts
setSegmentVisible("actor", "skin segement", 0/1) --Turns a skin segment on or off. 1 for on, 0 for off.
setSegmentVisible("nick_fury", "gun_left_segment", "0" )
setSkin("actor", "skin number" --Sets a character to have a specific model.  Looking in the IGB list we know that Luke Cage is 157.  His first skin is 01, so we"d use:
setSkin("LukeCage", "15701")
setTeam --Sets the AI to a defined team.
SetTeam("BEHAVED_TEAM_HERO", "havok") --will make Havok fight alongside the heroes
setTeamFollow
setTeamInvisible --Makes the whole team invisible (YES/NO or 0/1)
setUndying("actor", "TRUE/FALSE") --Sets an actor to undying or not (can't be killed). Not sure how this differs from invincibility
setUndying("corsair", "TRUE" )
setVictim("victim actor", "damaging actor") --Sets who should take damage from whom. Seems to be mostly related to button challenge minigames.
setVictim("ymir", "_ACTIVATOR_" )
setWaypointPath
showHealthBar --(0/1) on/off
spawnEffect("[entity]", "[effect]", " [x/y/z] ", " [p/y/r] " ) --Spawns an effect on an entity. 
spawnEffect("cyclops_scripted", "powers/mystique_morph", " 0.000 0.000 0.000 ", " 0.000 0.000 0.000 " )
spawnEffectBone --Spawns an effect based on a character's bone
startCharConversation
startConversation
stopHoldAI
swapInStump("entity") --replaces an entity with the 'stump" (broken) version defined in the engb
unlockCharacter("name","costume")**Note, in XML1, the verb is charUnlock()
We"ll use XML2 Deadpool as an example.
unlockCharacter("deadpool", " aoa")
Here's how it works.  If you want to unlock a character for playing, you would enter unlockCharacter("deadpool", " ").  This will unlock him and his Age Of Apocalypse costume. If you want to unlock a specific costume (XML2 only) for a character, you specify it.  You can figure out what they are by looking in the herostat.  Look for skin_[name].  The [name] part is what we need.  So in this case we can use unlockCharacter("deadpool","astonishing").  You can also unlock specific costume sets only by using unlockCharacter("","costume").  So for Age Of Apocalypse costumes it would be unlockCharacter("name","aoa")

This also works on characters you haven"t unlocked yet.  They will stay locked until you unlock them, but these skins will be unlocked when you unlock the character.  And all you"d need to do is stick this in any script that runs before the first extraction point.  Technically you can put it anywhere, but it makes sense to put it before the first point so all skins are unlocked the first time you can change teams.

NOTE: We haven"t figured out how to unlock costumes with this command in MUA yet

March 01, 2013, 09:54AM #48 Last Edit: March 04, 2013, 08:37AM by Teancum
(continued)...

MISSION/ZONE/LEVEL RELATED:
checkpointRecover --Unused in MUA
checkpointSave() --Saves a checkpoint. Has no parameters.
checkpointSave( )
extractionPoint() --activates the extraction point
extractionPoint("_OWNER_" )
extractionPointChange --Unused in MUA
extractionPointLite --Unused in MUA
extractionUnlock() --unlocks the extraction point
extractionUnlock("" )
getObjective
getZoneFlag
getZoneReset
getZoneVar
immediateObjective
isBlinkPortalActive -- Is the teleport portal open?
isExtractionPointUnlocked() --Checks to see if the extraction point is unlocked. Returns 1 if true.
unlocked = isExtractionPointUnlocked( )
if unlocked == 1
     # do stuff
endif

loadMap
loadMapAddTeam --Loads the map but lets you choose your team, resetting everything in a level
loadMapKeepTeam --Loads the map with the same team you had, resetting everything in a level
loadMapStartGame --Loads the starting map (first level)
loadZone --loads a level, keeping any changes you had before persistent (broken boxes, dead enemies, etc)
loadZoneAddTeam --Loads the map but lets you choose your team, keeping any changes you had before persistent (broken boxes, dead enemies, etc)
recallZone -- Teleport back to current zone? (from Headquarters?)
restartZone
restorelastzone
setAmbientLightColor
setBossPartyLightColor
setBossPartyLightColorNG
setBossPartyLightEntity
setPartyLightColor
setPartyLightColorNG
setPartyLightRadiusScale
setPartyLightRadiusScaleNG
setZoneFlag
setZoneVar
startFirstMission
zoneLink

***Any verbs that have "Map" in them will reset the level back to default.  Any with "Zone" in them will load the level just as you left it, with enemies killed, boxes broken, etc.


MENUS/DIALOGS:
blackbirdMenu -- Interesting...
codexMenu --DEBUG MENU??
createPopupDialogXml -- Stuff like "Enter the X-Jet?"
createPopupDialogXmlFilter -- Stuff like "Enter the X-Jet?" w/unknown filter
dangerRoomMenu
codexMenu -- Opens the character bio menu.  Files must be copied from XML2 (see next page)
imageViewer -- review menu?
personalItem
reviewCinematics -- a review tab
reviewComics -- a review tab
reviewConcept -- a review tab
reviewLoadScreens -- a review tab
reviewMenu
shopMenu -- Opens shop, but you need to copy the files over from XML2 (see next page)
triviaMenu



CAMERA RELATED:
cameraFade(time?, fade value?) --fades camera in and out. Exact usage unknown.
cameraFocusToEntity
cameraFocusToEntityYaw
cameraFocusToEntityYawAndOffset
cameraFollowMotionPath
cameraFollowMotionPathRelative
cameraFOV -- sets FOV
cameraFreeFOV -- clears custom FOV set by cameraFOV?
cameraMove
cameraMoveRelative
cameraPan
cameraReset
cameraResetOldSchool
cameraSetClipPlane
cameraShake(shake size (float), shake duration (float)) --Vibrates the screen.  The two numbers represent how big and long the vibration is.
cameraShake(4.000, 3.000 )
cameraToEntityAngles
cameraToLocationAngles
overrideFocusToEntity



MISC:
actionFigureReward --Unused in MUA
addObjectiveCategory --Main or side objective?
awardAchievement -- (Xbox 360 only, thus no example)
awardReputation("", "integer") --awards reputation. Usage typically has first parameter empty. The first parameter is likely when you only want to award rep for a specific character, but it is never used
awardReputation("", 50 )
awardXPToPlayable(integer) --Awards XP to all playable characters (untested on NPCs with playable=true added)
awardXPToPlayable(25000 )
beginMission("name")
beginMissionHack -- DEBUG?
bootToDash (likely console-only)
causeTroubleForAutotest -- DEBUG? -Tested and could not get to work
setActivator() --Manually sets the activator
SetActivator("_HERO1_") --Now the hero in slot 1 is the 'activator'
ChangeActivatingHero("punisher") --Now the Punisher takes the place of whoever was in slot 1.

This is useful because you can force four specific characters to be played.  Seems to be tied to conversations (in other words, it would change whoever talked to this NPC)
changeActivatingHero('name') --Swaps the hero specified with whomever activated the convo
cinematicEnd
cinematicStart
closemenu
command
confirmMenuCancel
dataDiscReward
display
endCutScene("TRUE/FALSE", "TRUE/FALSE" ) --ends a cutscene. See startCutScene above for usage
enemiesNoTarget
fadeLightsWithSounds
forceWin
gameover("[something from strings.engb]") --Brings up the Game Over menu, with text that says why from strings.engb.  For instance: GAME OVER - Innocents were killed
gameOverLoadGameDialog --same as above, but with an option to load a game
getDifficultyLevel --If difficulty is easy, set it to hard  :D
getDistance
getEnable
getEntityIDFromSpawnSlot
getEpilogue
getGameFlag("zone name", desired flag number) --gets a flag for this zone from the player's save file
first_visit = getGameFlag("Heli1", 1 ) --checks to see if this is the first playthrough
getGameVar
getGameVarBitCount
getHeldHero
getID
getIDString
getNearestMonsterSpawner
getOpened
getPosX
getPosY
getPosZ
getTimeRemaining
heroNoTarget
hudMessage
initHud
LaunchFeedbackMenu --LIKELY DEBUG
loadNetworkConfig
lockCombat
lockControls(float) --Locks the controls for a specified amount of time. 
lockControls(0.100 ) --locks the controls for 1/10 of a second
lockConversationControls --presumably works the same as lockControls(), but locks them in a conversation. Might be useful if you want to force the player to read soemthing
mainMenuExit
mainMenuExitDialog
missionComplete --Finished a mission
missionComplete2 --Possibly finished a mission through a different way (I.E. destroying a console instead of disabling it)
multiplayerCancelPlayer
multiplayerCommitPlayer
newMissionBriefing
NoTickle -- a real function, no joke
objective("objective name", "command") --does something with an objective. Known commands are below
objective ( "Heli_Obj0",  "EOBJCMD_SHOW" ) --displays the Heli_Obj0 objective on screen
objective ( "Heli_Obj0", "EOBJCMD_COMPLETE" ) --sets Heli_Obj0 objective as complete
objective ( "sentinel2",  "EOBJCMD_INCREMENT" ) --increments sentinel2 objective (for things like "Destroy 5 sentinels" this increments the number destroyed

openmenu
playBossSound
randomInt(num1 , num2) --Returns a random integer between (and including) the values of num1 and num2.
randomInt(1, 5) --returns a random number from 1 to 5
restoreEnergy --returns energy to whatever the max value is set to?
restoreHealth --returns health to whatever the max value is set to?
saveEpilogue --saves a variable for the dynamic epilogue ending
secretFound
SendFeedbackToggleMute
setAngles
setAnimSpeed
setAutoEquip -- Auto Equip items YES/NO
setAutoSpend -- Auto Spend points YES/NO
setCameraMagnetTarget
setCharSwitchingOn
setCompetitiveCoop
setCoopMode -- Competitive or not
setCurrentAct
setDangerLevel
setDifficultyLevel
setEnable
setEpilogue
setGameFlag("zone", flagID, value) --sets a flag in this zone for the save game
setGameFlag("Heli1", 1, 1 ) --sets the first "heli1" flag to a value of 1
setGameSpeed --Hyperspeed, baby! -Might be what slowed you down during Avalanche fights in XML1
setGameVar
setGoal
setHintType
setHudVisible("TRUE/FALSE") --Turn on/off the HUD.  Useful for 'pretty' screenies.
setHudVisible("FALSE") --turns HUD off
setLaserTarget
setMusicOverride
setNoClip
setNoCollide("entity", "TRUE/FALSE") --sets whether something has collision. Same as setNoClip?
setNoCollide("barrel02", FALSE")
setNoGravity
setNoShadow
setOrigin
setPosX
setPosY
setPosZ
setRecallActive("TRUE/FALSE") --Can you teleport back to headquaters?
setRecallActive("FALSE") --disabled
setRotZ
setScale("name", float ) --Sets the scale of a character, model or effect to whatever value float is.  (Float values can have decimals for those who don"t know)
setScale("hulk", 2.9) --he's HUGE!
setSpecialMode
setStructure
setUnderWater("TRUE/FALSE") --if true, characters will use swimming animations
setUnderwater(1)
setVelocity
spawnInventoryItem("item", "_OWNER_") --spawns an inventory item
startButtonComboChallenge --Shows up in quite a few button challenge sections, but seems to call the combo itself from somewhere else. More research needed
startCutScene("TRUE/FALSE", "TRUE/FALSE" ) --starts a cutscene. All AI and player control is locked during this time, the only things that move are scripted. This may be different if either value is set to true. Testing is needed. Likely the second value allows players to move.
startCutScene("FALSE", "FALSE" )
startGameDiffDialog
startMotionPath
startMovie
startVideoRecord
stopVideoRecord
timerAdd(int) --adds time to a timer.  Can be negative to remove time.
timerStart(number, number, "script")
timerStart(300, 10, "act1/NYC/NYCTimesSquare/timeUp")
titleUpdate() --forces a title update (patch). Xbox 360 only.
unlockHardDifficulty --self explanatory. Usage unknown, but an example is probably in the script for when you defeat Doom
useDefaultStats
useSavedStats
vibrate("ENTITY", vibration type?, min?, max?) --Vibrates the screen controller (if enabled)
vibrate("ENTITY", "RUMBLE", 0.200, 2.200 )
wanderNextZoneLink -- DEBUG?
strcatint('string", integer) --concatenates a string and an int together.
strcatint("blue", 1) --would produce "blue1"
strcatsrt('string", 'string") --concatenates two strings
heroName = GetHeroName("_HERO1_")
strcatstr(heroName, " Rocks")

waitTimed(float) --Force the script to wait for a specified amount of time. 
waitTimed( 0.500 ) --makes the game wait 1/2 second
remove( "entity", "entity" ) --removes an entity. Unknown why it has to be specified twice.

Bump

I was just wondering; did you find anything related or close to a script function allowing you to run a different animation set i.e. from the regular one to the fly animations?

Well, you can force a character to use a power with either loopCombatNode() or setCombatNode(). You can also use playAnim() to play any available animations for that character. As long as it's in their main two animation sets, their fightstyle, their moveset (like flying, if they have one) or the common animations you can use it.

playanim (  "EA_PAIN_HIGH1", "_HERO1_", "NONE", "" )

Was kind of hoping for anything which allows the script to load some other skeleton.

Nope. Nothing that powerful. You could try just adding another animation set inside your PKGB then using playAnim. As near as I've seen Python just needs something to be inside the PKGB, and thus in the memory for that character/level. Not sure if it would work for animations.

Quote from: Teancum on August 31, 2014, 04:40AM
Nope. Nothing that powerful. You could try just adding another animation set inside your PKGB then using playAnim. As near as I've seen Python just needs something to be inside the PKGB, and thus in the memory for that character/level. Not sure if it would work for animations.

I see. Well I don't have a chance to try it out but I sure would love to. The whole 3 animation set thing is really annoying.

I try to unlock hard and had no effect?Can you help?I put

unlockHardDifficulty() inside scripty/menu/new_game. Its Correct?


Old topic, but I wanted to make a comment.

The Hulk script in act2/strange doesn't exist in my game files. I've never touched the scripts folder in MUA until today (I've only messed with a few XML2 scripts). I wonder why some would have it and why I don't.

Maybe you should download from remastered (include from my RE mod patch), which has most of them including unused Hulk dialogue files
Call me Lars. I'm Power Cosmic no more.

"Trying to solve mysteries of modding here"

My Progress:
http://marvelmods.com/forum/index.php/topic,4671.0.html

Feel free to mod my releases, as long you credit me:
http://marvelmods.com/forum/index.php/topic,4488.0.html


July 10, 2019, 09:41AM #58 Last Edit: July 11, 2019, 08:18AM by Teancum
Here's a quick dump of all XML1 PY functions

mainMenuExit
openmenu
vibrate
setPartyLightColor
loadDangerRoomCourse
magnetoBall
gameover
lockControls
lockCombat
loadZone
loadMapAddTeam
loadMap
startMovie
addHero("heroname") -- Adds a hero to the currently played roster. Best example of this is when Cyclops joins Wolverine in the first mission. He immediately becomes part of the team. No need to go to an extraction point.
setGroupLeader
removeFromGroup
enemiesNoTarget
heroNoTarget
viewSparringHighScores
restartMission
endDRScenario
restartZone
beginMissionHack
beginMission
saveloadSaveConfirmed
saveloadImageCheck
saveloadDeleteCorrupt
saveloadCompleteLoad
saveloadChooseCorrupt
saveloadDeleteFile
saveloadLoseGameState
saveloadChooseFile
saveloadSelectDevice   
saveloadOvrWriteOptsAsk
saveloadOvrWriteOpts   
saveloadLoadOptions
saveloadOverwrite   
saveloadAbort   
saveloadCleanUp
saveloadFormat 
saveloadDeleteSuccess   
saveloadProcess
controllersContinue
extractionPointChange
extractionPointLite
extractionPoint
endSideMission 
beginSideMission   
immediateObjective 
getObjective   
randomInt   
getInventoryCount   
setInventoryCount   
setInCampaign("charactername", "TRUE") -- Unlocks a given character on the player team
mission
setallaiactive 
missionComplete2   
missionComplete
setDangerLevel 
cinematicEnd   
cinematicStart 
showPopupDialog
canCancelDialog
addPopupDialogOption   
createPopupDialogXmlFilter 
createPopupDialogXml   
createPopupDialog   
displayHelp
display
displayEx   
debug   
blackbirdMenu   
screenFade 
initHud
setGoal
shopMenu   
dangerRoomMenu 
personalItem   
imageViewer
reviewConcept   
reviewComics   
reviewCinematics   
reviewLoadScreens   
triviaMenu 
codexMenu   
cameraResetOldSchool   
cameraSetClipPlane 
overrideFocusToEntity   
cameraToLocationAngles 
cameraToEntityAngles   
cameraFollowMotionPath 
cameraShake
cameraFocusToEntityYaw
cameraFocusToEntity
cameraFade 
cameraReset
cameraFOV   
cameraPan   
cameraMove 
getTimeRemaining   
timerStart 
timerAdd   
enterSoloMode -- Used when a character must go off by themselves without a team
exitSoloMode --  Used to turn off solo mode
soloModeCheck -- Checks to see if soloMode is currently active
zoneLink   
setMissionFlag 
getMissionFlag 
setMissionVar   
getMissionVar   
setGameVar 
getGameVar 
xtremeConversationLight
allowConversation 
disallowResponseOnVar   
startConversation   
spawnEffect
spawnEffectBone
resurrect   
beATeamPlayer   
hailToTheKing 
removeBolton 
addBolton   
setPowerStatus 
setDefaultTarget
setCombatNodeOther 
setCombatNode 
loopCombatNode 
setAIActive
setNearestWaypointPath
setWaypointPath
setEngageEnemy 
setReactToEnemies   
setFlee
setCanMove 
setFollowingHero   
setPatternSequence 
setRadiusConfinement   
moveToEntity   
killEntity 
faceEntity 
destroyMultipartPiece   
addXtremePip   
setHomingID
startMotionPath
setMotionPath   
walkToAndFace   
controlPlayerHeroWithAI
attackEntityWithType 
playanim   
setHintType
getEnable   
setParent   
setInvisible 
setteam
getCount   
setAggression   
setDestroyObjects 
levelUp
getHealth 
getHealthMax
getBody
setOrigin   
setAngles   
setNoCollide   
setInvulnerable
setVelocity
awardXPToPlayable
setXP
restoreHealth
restoreEnergy
setEnable
setNoClip
copyOriginAndAngles
setHealthMax
setHealth
alive
setName
getName
getIDString
getID
setScale
setStructure
getPosZ
getPosY
getPosX
setPosZ
setPosY
setPosX
openmenu codex 
openmenu codex_enemy   
openmenu trivia
openmenu review_loadscreens
openmenu review_cinematics 
openmenu review_comics 
openmenu review_concept
openmenu personal   
openmenu danger_room


openmenu('equip_shop') 
openmenu('item_shop')   
saveloadProcess(4) 
extractionPointChange(%d,0)
extractionPointChange(%d,%i)   
setblackbirdparms FALSE
endSideMission('1')
newgame 1   
saveloadProcess(%d)
saveloadOvrWriteOpts() 
saveloadAbort()
saveloadOvrWriteOptsAsk()   
saveloadLoadOptions()   
saveloadChooseCorrupt()
saveloadChooseFile(%d) 
saveloadLoseGameState(%d)
saveloadDeleteFile(%d)
saveloadOverwrite(%d)
saveloadCompleteLoad()
saveloadCleanUp()   
saveloadDeleteSuccess()
saveloadDeleteCorrupt()
saveloadImageCheck()

A list of application possibilities for scripts:

Script Files:
Found in the scripts folder. Typically with the py extension.
Can use directly

Conversation Files:
Found in the conversations folder. Typically with the engb extension in MUA.
1) chosenscriptfile = (put script here or script file with path)
    Used after a response and executed with enter.
    A file can be used instead of the script: Eg. act3/valhalla/talk_blackwidow_post
    Multiple scripts are possible, seperate them with "\n\r".
    Example: response {
                    chosenscriptfile = playCombatNodeTrigger("enchantress", "enchantress", "power_smash", 15)\n\rwaittimed(0.1)\n\rplayCombatNodeTrigger("enchantress", "enchantress", "power_smash", 20)
                    (Example from conversations/act3/asgard/asgard1/kiss.engb)
2) conditionscriptfile = (put script here or script file with path)
    Used after start condition
    Same terminology as 1)
    Example: startCondition {
                    conditionscriptfile = common/conv/humantorch ;
               
Map Files:
Found in the map folder. Typically with the engb extension in MUA.
1) actscript = (put script here or script file with path)
    Used in entities with "actonuse = true" term. Executed when used with enter.
    Same terminology as in conversation files (multiple scripts, files possible).
2) spawnscript = (put script here or script file with path)
    Used in entities with rememberent (and possibly other) class. Executed at spawn.
    Same terminology as in conversation files (multiple scripts, files possible).
3) monster_spawnscript = (put script here or script file with path)
    Used in entities with monsterspawnerent class. Executed at spawn.
    Same terminology as in conversation files (multiple scripts, files possible).
4) monster_deathscript = (put script here or script file with path)
    Used in entities with monsterspawnerent class. Executed at death of the NPC.
    Same terminology as in conversation files (multiple scripts, files possible).
               
Menu Files:
Found in the ui/menus folder. Typically with the engb extension in MUA.
usecmd = runscript (put script here)
Unknown if multiple scripts or files are possible.
Some scripts don't need the "runscript" part, eg. "openmenu".