Difference between revisions of "Template:OBSE Format Specifiers"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Darkness X
imported>QQuix
(Updated and reordered)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
====OBSE Format Specifiers====
====OBSE Format Specifiers====


In addition to the format specifiers supported by Oblivion's [[Message]] and [[MessageBox]] functions, [[:Category:Oblivion Script Extender|OBSE]] functions understand additional specifiers.
In addition to the format specifiers supported by Oblivion's [[Message]] and [[MessageBox]] functions, [[:Category:Oblivion Script Extender|OBSE]] functions understand additional specifiers (in alphabetic order).
 
 
'''%a''' - Prints the character corresponding to the specified ASCII code.
:*Passing codes for unprintable characters (such as 0) may have unpredictable (though occasionally useful) results.
:*Passing the code for a percent sign will most likely crash the game as literal percent signs must come in pairs.
 
 
'''%B''' - toggles blue text on for console output.
 
'''%b''' - toggles blue text off for console output.
:*Example: "%BBlue%b suede shoes": when printed to the console, the word "Blue" will be printed in blue text.
 
 
'''%c''' - Prints the specified component of the specified reference or object.
:Takes two arguments - a reference variable set to the spell or faction, and an index. Behaves differently depending on the passed reference:
::* Faction: Prints the ''n''th male rank title
::* Magic Item: Prints the ''n''th Magic Effect
:::*Prior to OBSE v0015, magic effects using actor values (such as Restore Agility) would not display the specific actor value.
:::*Actor values may not display correctly for non-English versions of Oblivion.
 
 
'''%e''' – replaced by nothing.
:*Provides a workaround for the script compiler's refusal to accept an empty string as a command argument.
:* Example:
SetNameEx "" object    ; attempts to remove an object's name, but won't compile
SetNameEx "%e" object  ; sets the name to an empty string
:*Can be used outside of format strings. When included in ''any'' string literal, %e will be replaced by an empty string.


'''%r''' - Prints a carriage return, ending the current line and starting at the next.


'''%n''' - Prints the name of the specified reference or object.
'''%i''' - Prints the FormID of the specified reference or object.  
:* In OBSE versions prior to v0014a, %n can crash if the object's name contains a percent sign.
:*GOTCHA : as of v18, if a refVar is passed which points to a ref not loaded in memory %i will print 00000000 ''even if the refVar is not empty''.


'''%i''' - Prints the formID of the specified reference or object.


'''%k''' - Prints the name of the key for the specified DirectInput scancode, such as those used for [[IsKeyPressed2]].
'''%k''' - Prints the name of the key for the specified DirectInput scancode, such as those used for [[IsKeyPressed2]].


'''%c''' - Prints the specified component of the specified reference or object. Takes two arguments - a reference variable set to the spell or faction, and an index. Behaves differently depending on the passed reference:
 
:* Faction: Prints the ''n''th male rank title
'''%n''' - Prints the name of the specified reference or object.
:* Magic Item: Prints the ''n''th Magic Effect
:* In OBSE versions prior to v0014a, %n can crash if the object's name contains a percent sign.
::*Prior to OBSE v0015, magic effects using actor values (such as Restore Agility) would not display the specific actor value.
 
::*Actor values may not display correctly for non-English versions of Oblivion.


'''%p''' - Displays a pronoun based on the gender of the object parameter:
'''%p''' - Displays a pronoun based on the gender of the object parameter:
Line 22: Line 46:
:* %pp - possessive (his, her, its)
:* %pp - possessive (his, her, its)
:* %ps - subjective (he, she, it)
:* %ps - subjective (he, she, it)


'''%q''' - Prints a double quote character.
'''%q''' - Prints a double quote character.
:*Can be used outside of format strings. When included in ''any'' string literal, %q will be replaced by a double quote
'''%r''' - Prints a carriage return, ending the current line and starting at the next.
:*Can be used outside of format strings. When included in ''any'' string literal, %r will be replaced by a carriage return.


'''%a''' - Prints the character corresponding to the specified ASCII code. Passing codes for unprintable characters (such as 0) may have unpredictable (though occassionally useful) results. Passing the code for a percent sign will most likely crash the game as literal percent signs must come in pairs.


'''%v''' - Prints the actor value (i.e. an attribute or skill) associated with the passed actor value code.
'''%v''' - Prints the actor value (i.e. an attribute or skill) associated with the passed actor value code.


'''%e''' - Provides a workaround for the script compiler's refusal to accept an empty string as a command argument.
 
* Example:
'''%x''' - Prints an integer in hexadecimal format.  
SetNameEx "" object    ; attempts to remove an object's name, but won't compile
:An optional digit from 0-9 immediately following this specifier indicates the minimum width of the displayed value.
  SetNameEx "%e" object  ; sets the name to an empty string
::*For example, MessageEx "%x4" 255 will display "00FF".
 
 
'''%z''' – Prints the contents of a string variable.
:*Example: sv_construct “The string is: %z” MyStringVar
 


'''%{...%}''' - Conditionally displays or omits the bracketed portion of the format string based on a boolean value. Accepts a variable - if the value of the variable is zero, all text and parameters up to the matching right bracket will be ignored. Otherwise the bracketed text will be displayed.
'''%{...%}''' - Conditionally displays or omits the bracketed portion of the format string based on a boolean value. Accepts a variable - if the value of the variable is zero, all text and parameters up to the matching right bracket will be ignored. Otherwise the bracketed text will be displayed.
Line 51: Line 84:
     [Enjoy your final 15 minutes]
     [Enjoy your final 15 minutes]
* Note: When using [[GetButtonPressed]] with messageboxes that can have a variable number of buttons displayed using '''%{...%}''', the return value will be relative to the actual number of buttons displayed and will not include buttons hidden by '''%{...%}'''.
* Note: When using [[GetButtonPressed]] with messageboxes that can have a variable number of buttons displayed using '''%{...%}''', the return value will be relative to the actual number of buttons displayed and will not include buttons hidden by '''%{...%}'''.


<noinclude>
<noinclude>

Latest revision as of 12:07, 26 May 2013

OBSE Format Specifiers[edit source]

In addition to the format specifiers supported by Oblivion's Message and MessageBox functions, OBSE functions understand additional specifiers (in alphabetic order).


%a - Prints the character corresponding to the specified ASCII code.

  • Passing codes for unprintable characters (such as 0) may have unpredictable (though occasionally useful) results.
  • Passing the code for a percent sign will most likely crash the game as literal percent signs must come in pairs.


%B - toggles blue text on for console output.

%b - toggles blue text off for console output.

  • Example: "%BBlue%b suede shoes": when printed to the console, the word "Blue" will be printed in blue text.


%c - Prints the specified component of the specified reference or object.

Takes two arguments - a reference variable set to the spell or faction, and an index. Behaves differently depending on the passed reference:
  • Faction: Prints the nth male rank title
  • Magic Item: Prints the nth Magic Effect
  • Prior to OBSE v0015, magic effects using actor values (such as Restore Agility) would not display the specific actor value.
  • Actor values may not display correctly for non-English versions of Oblivion.


%e – replaced by nothing.

  • Provides a workaround for the script compiler's refusal to accept an empty string as a command argument.
  • Example:
SetNameEx "" object    ; attempts to remove an object's name, but won't compile
SetNameEx "%e" object  ; sets the name to an empty string
  • Can be used outside of format strings. When included in any string literal, %e will be replaced by an empty string.


%i - Prints the FormID of the specified reference or object.

  • GOTCHA : as of v18, if a refVar is passed which points to a ref not loaded in memory %i will print 00000000 even if the refVar is not empty.


%k - Prints the name of the key for the specified DirectInput scancode, such as those used for IsKeyPressed2.


%n - Prints the name of the specified reference or object.

  • In OBSE versions prior to v0014a, %n can crash if the object's name contains a percent sign.


%p - Displays a pronoun based on the gender of the object parameter:

  • %po - objective (him, her, it)
  • %pp - possessive (his, her, its)
  • %ps - subjective (he, she, it)


%q - Prints a double quote character.

  • Can be used outside of format strings. When included in any string literal, %q will be replaced by a double quote

%r - Prints a carriage return, ending the current line and starting at the next.

  • Can be used outside of format strings. When included in any string literal, %r will be replaced by a carriage return.


%v - Prints the actor value (i.e. an attribute or skill) associated with the passed actor value code.


%x - Prints an integer in hexadecimal format.

An optional digit from 0-9 immediately following this specifier indicates the minimum width of the displayed value.
  • For example, MessageEx "%x4" 255 will display "00FF".


%z – Prints the contents of a string variable.

  • Example: sv_construct “The string is: %z” MyStringVar


%{...%} - Conditionally displays or omits the bracketed portion of the format string based on a boolean value. Accepts a variable - if the value of the variable is zero, all text and parameters up to the matching right bracket will be ignored. Otherwise the bracketed text will be displayed.

  • Example (should be single-line, line-breaks added for Wiki)
MBoxEX "Doom comes%{ for you%}. What will you do?
|Dig a hole, hide
%{|Find someone, offer as sacrifice|Find someone, use as shield%}
|Enjoy your final 15 minutes" bDisplay bDisplay

If bDisplay is 0 this will print out

   Doom comes. What will you do?
   [Dig a hole, hide]
   [Enjoy your final 15 minutes]

If bDisplay is 1 this will print out

   Doom comes for you. What will you do?
   [Dig a hole, hide]
   [Find someone, offer as sacrifice]
   [Find someone, use as shield]
   [Enjoy your final 15 minutes]
  • Note: When using GetButtonPressed with messageboxes that can have a variable number of buttons displayed using %{...%}, the return value will be relative to the actual number of buttons displayed and will not include buttons hidden by %{...%}.