TRIGEDIT-MOB-TUTORIAL TRIGEDIT-TUTORIAL

From 4Dimensions
Revision as of 11:38, 14 July 2017 by Loran (talk | contribs) (formatting)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

TRIGEDIT-MOB-TUTORIAL TRIGEDIT-TUTORIAL


Mob trigger tutorial

This mini-quest is setup in TBA as an example. {cRGOTO 1310{c0 and work your way north

with nohassle off.


The following 7 steps should give you a general idea about what to do, and how to go

about making small quests in the dg scripting language. This example is concentrated

on quests involving mobs.


The process can be broken down to the following:

  1. Decide what you want the script to do.
  2. Make corresponding objects and mobs.
  3. Split up the quest.
  4. Find corresponding trigger types.
  5. write the scripts for the triggers.
  6. Attach the scripts - permanently
  7. Done ?
  1. Decide what you want the script to do.
    In this example, we want to make a small mini quest in an area. The quest
    work like this: When you enter the room, where the first mob is, it will
    to tell a tale. In this tale, you are instructed to perform a task, in
    case, kill an evil ogre, that lives in a nearby forest. As proof of the
    you must bring back the ogre's apprehension to the questgiving mob.
  1. Make corresponding objects and mobs.
    Ingredients for this quest:
    1 Questgiver mob - I've chosen 'the questmaster' - vnum 1310
    1 Target mob - In this case 'an apprehensive Ogre' - vnum 1311
    1 Quest object - 'some apprehension' - trash object, vnum 1300
  1. Split up the quest.
    Next thing to do is look at the different steps involved with the quest. In
    example, we have three steps:
    Player entering room -> tell story
    Player finds ogre -> load object (Do not just want the mob to carry it)
    Player gives questmaster apprehension -> reward player
  1. Find corresponding trigger types.
    Having split the quest up also means we reasonably easy can decide what
    of triggers we need - in this case:
    mob GREET trigger (attached to questmaster)
    mob DEATH trigger (attached to ogre)
    mob RECEIVE trigger (attached to questmaster)
  1. write the scripts for the triggers.
    Up to this point, neither trigedit or the script editors have been used.
    the info needed is in the help files and on the webpages. Notice most of
    work required is PLANNING! You must know exactly what you want to do before
    do it. Now is the time to fire up trigedit and start editing the triggers.
    give the first one vnum 0, and edit it to look like the script below:


> trigedit 0

Trigger Editor [0]


1) Name  : {cyMob Tutorial Example 1310 - Quest Offer{c0

2) Intended for : {cyMobiles{c0

3) Trigger types: {cyGreet {c0

4) Numeric Arg : {cy100{c0

5) Arguments  :

6) Commands:

{cc* we don't want him to tell this to mobs. vnum -1 is reserved for players.

if %actor.vnum% == -1

 * only greet players coming from the south.

if %direction% == south

  • wait 1 second, always give the player time before you start sending text.

wait 1 sec

say Can you help me, %actor.name%?

wait 1 sec

say An apprehensive ogre has something of mine.

wait 1 sec

say If you slay him I'll give you all the coins I can spare.

wait 1 sec

say Please, bring me the apprehension he has stolen.

end

end{c0


The script above will be executed every time anyone enters the room. If the

person entering is a mobile, the if check at the beginning will stop the

execution. Note, that I've named the trigger as I did above. ALWAYS include

the VNUM of where you plan on attaching the trigger. Also, give it a name so

it is easy to see what part of the quest this trigger handles. The second

script is very simple.


> trigedit 1

Trigger Editor [1]


1) Name  : {cyMob Tutorial Example 1311 - Kill ogre{c0

2) Intended for : {cyMobiles{c0

3) Trigger types: {cyDeath{c0

4) Numeric Arg : {cy100{c0

5) Arguments  :

6) Commands:

{ccsay you got the best of me %actor.name%.

  • load some apprehension

%load% obj 1300

  • reload the mob for the next questor

%load% mob 1311{c0


The above script will be executed when the mob is killed - just before the

death cry. The last script just needs to check if the object handed over is

the correct one. Let's see it, here with vnum 2:


> trigedit 2

Trigger Editor [2]


1) Name  : {cyMob Tutorial Example 1310 - Give/Quest Completion{c0

2) Intended for : {cyMobiles{c0

3) Trigger types: {cyReceive{c0

4) Numeric Arg : {cy100{c0

5) Arguments  :

6) Commands:

{cc* check if this was indeed the right object

if %object.vnum% == 1300

wait 1 sec

say Thank you, %actor.name%

%send% %actor% %self.name% gives you a gold piece.

%echoaround% %actor% %actor.name% is rewarded for his valor.

nop %actor.gold(1)%

wait 5 sec

%purge% obj 1300

else

 * this wasn't the right object - don't accept it

say I don't want that - bring me back my apprehension.

return 0

end{c0


The script above is pretty self explanatory, but to clarify a bit: First check

if the object is the correct vnum, then give the reward, and send messages to

the player and others in the room. If it wasn't the object, reject it, and use

the return value of the script to prevent the object being passed over. Lastly,

and very importantly, 'end' ends the if.


  1. Attach the scripts - permanently
    Proceed and add the scripts to the two mobiles through medit:

> medit 1310

[medit menu]

Enter choice ? S

Script Editor


Trigger List:

<none>


N) New trigger for this script

D) Delete a trigger in this script

X) Exit Script Editor


Enter choice :

Here, add the scripts by typing N, then the script vnum:

Enter choice : n

Please enter position, vnum (ex: 1, 200): 0

Enter choice ? n

Please enter position, vnum (ex: 1, 200): 2

Enter choice ? x


And add the trigger vnum 3 to the ogre in a similar manner.


  1. Done ?
    The scripts are now attached to the correct mobs, and the players of your
    can now take the quest whenever they wish. This is a great time for
    improvements to the little quest:

Balance issues:

Should players get a smaller reward if they perform the quest many times ?

Should it be limited to 1 quest per player or 1 per reboot ?

Gameplay issues:

Perhaps other mobs in town should tell the player to go see the old man ?

Should the ogre always load the object, or only when people know he has it ?

Are there other mobs who would like to pay for that object ?


The above list is just a few examples. All of them could be implemented, but

it is beyond the scope of this tutorial.



12DEC01 - mob tutorial by Welcor

04OCT02 - updated/modified by Rumble