SphereCommunity

Full Version: Context Menu for Training
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
This event allows players to be able to ask for training by using an NPC's context menu. Add this event to whatever NPC's you want to be able to train.

There are some limits however:

1. A context menu has a limit for the number of entries. If the limit is exceeded, not all entries will be shown to the player.
2. Some brain types (monsters, animals, guards, etc) are incapable of training, so the event will first check for that.
3. There is no context menu choice for Spellweaving (unless you edit the client and add a localization string for it.)

Code:
[EVENTS e_trainer]
ON=@ContextMenuRequest
   IF (<NPC> < 2) || (<NPC> == 4) || (<NPC> > 9)
      // Not all brain types can train
      SERV.LOG ERROR: <NAME> (<UID>) has the e_trainer event, but their brain type is not supported
   ELSE
      FOR x 0 57
         LOCAL.PlayerSkill=<SRC.<SERV.SKILL.<dLOCAL.x>.KEY>>
         LOCAL.NpcSkill=<<SERV.SKILL.<dLOCAL.x>.KEY>>
         IF (<LOCAL.NpcSkill> > 30.0)
            IF (<LOCAL.x>!=54) //Spellweaving cannot be trained
               SRC.ADDCONTEXTENTRY <EVAL 100+<LOCAL.x>>,<EVAL 6000+<LOCAL.x>>,<EVAL <QVAL <LOCAL.PlayerSkill> < <LOCAL.NpcSkill> ? 0 : 1>>,1
            ENDIF
         ENDIF
      ENDFOR
   ENDIF
ON=@ContextMenuSelect
   LOCAL.Skill=<EVAL <ARGN>-100>
   LOCAL.PlayerSkill=<SRC.<SERV.SKILL.<dLOCAL.Skill>.KEY>>
   LOCAL.NpcSkill=<<SERV.SKILL.<dLOCAL.Skill>.KEY>>
   SERV.LOG <SRC.NAME> (<FVAL <LOCAL.PlayerSkill>>) wants to train <SERV.SKILL.<dLOCAL.Skill>.KEY> (<FVAL <LOCAL.NpcSkill>>)
   TRAIN <SERV.SKILL.<dLOCAL.Skill>.KEY>
Reference URL's