Uurdin ARedBearTest(Script)

From CoffeeMud Wiki
Revision as of 13:39, 17 September 2024 by Loki (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
CoffeeMUD
Administrator                                                  Builder                                                              Player
=CoffeeMUD Builder Information=
Basics Praetor     Player Support     Commands     Zapper Masks Advanced Races     Classes     Abilities     Socials     Scripting    
Building Behaviors     Properties     Areas     Rooms     Exits     Items     Mobs Systems Achievements     Crafting     Help Info     Ships     Planes of Existence     Quests     Triumphs    

A Red Bear Test

This script is an example of how to change a word (red) to another word (Orange) located somewhere in the display of a target.

Display Word Switch


#uurdin_aredbeartest.script

speech_prog p testnow

  mpcallfunc DisplayWordSwitch "red" "Orange"

~

function_prog DisplayWordSwitch

  mpsetvar $i VAR_DISPLAY_NEW
  mpsetvar $i VAR_DISPLAY_OLD_LENGTH $%GSTAT($i display)%.LENGTH#
  mpsetvar $i VAR_DISPLAY_OLD_LENGTH --
  #the above must subtract 1 from length due to 0 start in loop below
  #mpecho length of display is: $<$i VAR_DISPLAY_OLD_LENGTH>

  for $0 = 0 to '$<$i VAR_DISPLAY_OLD_LENGTH>'
    #mpecho $0 and $%GSTAT($i display)%.$0

    if eval($0 == '$<$i VAR_DISPLAY_OLD_LENGTH>')
      #the above if checks for the last word in the mobs display
      #this is the only one that will be checked using the strcontains since it ignores punctuation
      #and normally the last word has a period at the end.
      if strcontains('$%GSTAT($i display)%.$0' $g.0)
        mpsetvar $i VAR_DISPLAY_NEW $<$i VAR_DISPLAY_NEW> $g.1
      else
        mpsetvar $i VAR_DISPLAY_NEW $<$i VAR_DISPLAY_NEW> $%GSTAT($i display)%.$0
      endif

    else

      if eval('$%GSTAT($i display)%.$0' == $g.0)
        mpsetvar $i VAR_DISPLAY_NEW $<$i VAR_DISPLAY_NEW> $g.1
      else
        if eval('$%GSTAT($i display)%.$0' == 'a')
          mpsetvar $i VAR_DISPLAY_NEW $<$i VAR_DISPLAY_NEW> a(n)
        else
          mpsetvar $i VAR_DISPLAY_NEW $<$i VAR_DISPLAY_NEW> $%GSTAT($i display)%.$0
        endif
      endif

    endif 


  next

  mpgset $i display $<$i VAR_DISPLAY_NEW>

~

Notes

.