1 RMS_Triggers
trac edited this page 2008-02-23 03:18:59 +00:00

trigger(func)

This is the constructor. It defines the function(s) that will be called iteratively and registers them.

priority(int

This method defines the priority the trigger has.

enable()

This method activates the trigger.

disable()

This method deactivates the trigger.

Every trigger starts with a preceding function that contains the code we want "triggered". To make it a trigger, you would create a new Trigger object specifying the function(s) you want to work with:

   function trigName() 
   {
      if(accumulated("food") >= 500) 
      {
         sendchat("this player has 500+ food!");
      }
   }
   
   trigger = new trigger(trigName());

Now, The trigger is registered and recognized by the engine. You, then, have to activate it to make it work. To activate/deactivate triggers, you use the enable and disable methods. For optimization, you can also set a priority for triggers within 4 different levels (1 being default). Priority must be called before enabling it:

   trigger.priority(4);
   trigger.enable;
   trigger.disable;

Additionally, you may want to group functions for easy modification and work with them as you would with one. So, you can create a trigger group like this:

   trigger = new trigger(trigName(), trigFoo(), trigBar());

Trigger Reference

Conditions:

   trigAISignal(ai, signal);
   trigCinematicAbort();
   trigAccumulated(player, attr);
   trigUnitsAllDead();
   trigBuildingsAllDead();
   trigBringObjectToArea();                         // Waiting for Bobby to define this
   trigBringObjectToObject();                       // Waiting for Bobby to define this
   trigCheatEntered(string);
   trigChatContains(string);
   trigChatChoiceAnswer(string);
   trigChance(int);
   trigObjectDestroyed(object);
   trigDifficulty();
   trigDiplomacyChange(source, target, type = all);
   trigDistanceToPoint(object, point, radius);
   trigDistanceToObject(source, target, radius);
   trigPercentComplete(object);
   trigPercentDamaged(object);
   trigLogCompare();                                // what is this?
   trigLogCheck();                                  // what is this?
   trigVarCompare();                                // what is this?
   trigVarCheck();                                  // what is this?
   trigObjectInteracted();                          // how is this used?
   trigObjectActive(object);
   trigObjectDead(object);
   trigObjectChanged(object);
   trigObjectVisible(player, object, amount);
   trigObjectsInArea(object, area);
   trigObjectOwned(player, object);
   trigObjectCaptured(player, object);
   trigObjectSelected(player, object);
   trigObjectTypeSelected(player, type);
   trigObjectGarrisoned(object, type, amount);
   trigPlayerActive(player);
   trigPlayerAtPop(player);
   trigPlayerDefeated(player);
   trigPlayerDistanceToPoint(player, point, radius);
   trigPlayerDistanceToObject(player, target, radius);
   trigPlayerIsBuilding(player, type);
   trigPlayerResigned(player);
   trigPlayerUnitCount(player, type);
   trigTechResearch(player, tech);
   trigTechResearched(player, tech);
   trigTechResearching(player, tech);
   trigTimer(ms);

Effects:

   trigAIScriptGoal(); // details here
   trigCampaignAdvance();
   trigCampaignNext();
   trigAreaStringChange();
   trigHeroChange();
   trigBlockAllAmbient();
   trigBlockAllMusic();
   trigBlockAllSounds();
   trigCameraCut();
   trigCameraTrack();
   trigChangeDiplomacy();
   trigChangeElevation();
   trigChangeOwnership();
   trigChangeTerrain();
   trigChangeView();
   trigCheats();
   trigChat();
   trigCinematicMode();
   trigChatClear();
   trigUIClear();
   trigCounterValueAdd();
   trigCounterStop();
   trigCounter(); //isn't this a condition just like timer?
   trigCounterClear();
   trigWaterCreate();
   trigDeclareVictory();
   trigDisplayInstructions();
   trigEndGame();
   trigUnitEnable();
   trigFadeToColor();
   trigFadeOutSounds();
   trigFadeOutMusic();
   trigMinimapFlare();
   trigUIFlash();
   trigUIFlashCategory();
   trigUIFlashTech();
   trigUIFlashTrain();
   trigFlashObjects();
   trigMinimapFlashObjects();
   trigGameSpeed();
   trigMainMenu();
   trigGroupChange();
   trigGrantResources();
   trigHealUnit();
   trigHideScore();
   trigHighlightUnits();
   trigKillObject();
   trigKillObjectsInArea();
   trigLockAllGates();
   trigLockGate();
   trigLog();
   trigLogChange();
   trigModifyObject();
   trigModifyObjectAbility();
   trigModifyObjectIcon();
   trigModifyObjectName();
   trigModifyResourceValue();
   trigMoveObjectToArea();
   trigMusicFilename();
   trigMusicMood();
   trigMusicPlay();
   trigMusicStop();
   trigObjectAnimation();
   trigObjectChangeType();
   trigObjectCreate();
   trigObjectDamage();
   trigObjectDamageInArea();
   // cheezy's did you check with them to see if this was possible? maybe load them at start
   // and do a switch type thing?
   trigObjectFileLoad(); 
   trigObjectFreeze();
   trigObjectHeading();
   trigObjectInAreaMove();
   trigObjectScale();
   trigObjectStop();
   trigObjectTask();
   trigPatrol();
   trigGamePause();
   trigObjectiveWindowPause();
   // kinda redundant, why not just make conditions to check if they are open, then do game pause?
   trigPhaseUpgradePause(); 
   trigPlaceFoundation();
   trigPlayDialogue();
   trigPlayDialogueChoice();
   trigPlayRPGDialogue();
   trigPlayMovie();
   trigPlaySound();
   trigPlayerDestroyAllBuildings();
   trigPlayerDestroyAllUnits();
   trigPlayerLOSChange();
   trigPlayerSetActive();
   trigPlayNextMusicTrack();
   trigRateConstruction();
   trigRateResearch();
   trigRateTraining();
   trigRateReset();
   trigDataLog();
   trigRemoveMiniMap();
   trigRemoveObject();
   trigRemoveObjectsInArea();
   trigRenderFog();
   trigRenderRain();
   trigRenderSky();
   trigRenderSnow();
   trigReshroud();
   trigRevealMap();
   trigChatSend();
   trigChatSendChoice();
   trigSetPlaylist();
   trigSetLighting();
   trigSetObjective();
   trigSetHint();
   trigDefeatPlayer();
   trigPlayerWon();
   trigUnitOutlines();
   trigUnitScramble();
   trigShakeCamera();
   trigSoundFilename();
   trigSoundPause();
   trigScrambleStop();
   trigTechStatus();
   trigTeleportUnits();
   trigToggleView();
   trigToggleTerritories();
   trigTransferResources();
   trigTributeResources();
   trigUnblockAllAmbient();
   trigUnblockAllSounds();
   trigUnblockMusic();
   trigUnfreezeUnit();
   trigUnload();
   trigUnlockGate();
   trigUnitBuildBuilding();
   trigUnitGarrison();
   trigUnitWork();
   trigUserControls();
   trigWinMessageSet();
   trigLossMessageSet();
   trigWriteToLog();
   trigYouLose();
   trigYouWin();