Manual:DIL Changes

From DikuMUD Wiki
Revision as of 02:56, 3 July 2020 by Aja (talk | contribs) (Created page with "''Temp list of changes. Will reorganize once I see what all we have. '' '''DIL Priority''' When performing a wstat <unit> func command on an object, the dil functions will dis...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Temp list of changes. Will reorganize once I see what all we have. DIL Priority When performing a wstat <unit> func command on an object, the dil functions will display in order of priority; top to bottom with most important dils at the top. If a dil program is executing the priority command, it will block all dils below it. Many of the stock game dils call on the priority or FN_PRI to function properly. A few examples:

  • Death ~ dilbegin recall fnpri(FN_PRI_DEATH) death_seq();
  • Rescue
  • Under Arrest ~ (dilbegin fnpri(FN_PRI_RESCUE-1)arrest_check(office:string);

In prior versions, a 'blocking' dil such as death_seq@death

Here's an example in a guard: The wstat returns: dilcopy rescue@function("guard/captain/mayor"); dilcopy arrest_check@midgaard("accus_room@midgaard"); dilbegin SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME dilbegin guard2();

In this example, the priority belongs to rescue. Therefore the expected behavior is that this guard will prioritize rescuing someone they see being attacked before rushing off to enforce peace or arrest someone. Secondarily, if rescuing is not an active option, the guard will arrest someone before trying to keep the peace. If the guard is interrupted in the middle of the execution of guard2(); above, the guard2(); program will simply pause until the higher priority dils are completed.