Welcome to PenUltima Online. Click to login or register.

File: Unicode.em

Description: Functions that allow messages to be sent to clients in any unicode language UO supports.
Last Modified: 02/10/2009

File Constants:

const _DEFAULT_UCFONT  := 3;
const _DEFAULT_UCCOLOR := 0x3B2;
// Constants for PrintTextAbove*
const JOURNAL_UC_PRINT_NAME := 0x00; // Implicit. Print's the object's description / npc's name in the journal.
const JOURNAL_UC_PRINT_YOU_SEE := 0x01; // Will print "You see:" in the journal.
BroadcastUC(uc_text, langcode, font:=_DEFAULT_UCFONT, color:=_DEFAULT_UCCOLOR)
Parameters:
Name Type
uc_text Array of 2-byte integers, where each integer is a Unicode character
langcode 3-character 'Originating Language' string code e.g. ENU, CHT, DEU, RUS, KOR, etc.
font Integer (optional) font code. Not the same as non-unicode font codes
color Integer (optional) color code. Not the same color as the same value for non-unicode prints
Explanation
Broadcasts a unicode string to all players
uc_text MUST be an array of integers representing unicode characters.
Integers must be "Big Endian" (0x1234) and not "Little Endian" (0x3412).
Integers will be clipped internally to 2-bytes (value masked with 0xFFFF)
The Array must be terminated with zero. (0x0000)
Return values
1 on success
Errors
"Unicode array exceeds maximum size." (200 characters)
"langcode must be a 3-character code."
"Invalid value in Unicode array."
"A parameter was invalid"
Related
Array
PrintTextAbovePrivateUC(above_object, uc_text, langcode, character, font:=_DEFAULT_UCFONT, color:=_DEFAULT_UCCOLOR, journal_print := JOURNAL_UC_PRINT_NAME)
Parameters:
Name Type
above_object UObject reference
uc_text Array of 2-byte integers, where each integer is a Unicode character
langcode 3-character 'Originating Language' string code e.g. ENU, CHT, DEU, RUS, KOR, etc.
character Character reference to receive the text
font Integer (optional) font code. Not the same as non-unicode font codes
color Integer (optional) color code. Not the same color as the same value for non-unicode prints
journal_print Integer (optional)
Explanation
Displays a unicode string above 'above_object' only to 'character'
uc_text MUST be an array of integers representing unicode characters.
Integers must be "Big Endian" (0x1234) and not "Little Endian" (0x3412).
Integers will be clipped internally to 2-bytes (value masked with 0xFFFF)
The Array must be terminated with zero. (0x0000)
Notes: journal_print flags:
const JOURNAL_UC_PRINT_NAME	:= 0x00; // Implicit.  Print's the object's description / npc's name in the journal.
const JOURNAL_UC_PRINT_YOU_SEE := 0x01; // Will print "You see:" in the journal.
Return values
1 on success, 0 on failure
Errors
"Unicode array exceeds maximum size." (200 characters)
"langcode must be a 3-character code."
"Invalid value in Unicode array."
"A parameter was invalid"
Related
Array
UObject
Character
PrintTextAboveUC(above_object, uc_text, langcode, font:=_DEFAULT_UCFONT, color:=_DEFAULT_UCCOLOR, journal_print := JOURNAL_UC_PRINT_NAME)
Parameters:
Name Type
above_object UObject reference
uc_text Array of 2-byte integers, where each integer is a Unicode character
langcode 3-character 'Originating Language' string code e.g. ENU, CHT, DEU, RUS, KOR, etc.
font Integer (optional) font code. Not the same as non-unicode font codes
color Integer (optional) color code. Not the same color as the same value for non-unicode prints
journal_print Integer (optional)
Explanation
Displays a unicode string above 'above_object'
uc_text MUST be an array of integers representing unicode characters.
Integers must be "Big Endian" (0x1234) and not "Little Endian" (0x3412).
Integers will be clipped internally to 2-bytes (value masked with 0xFFFF)
The Array must be terminated with zero. (0x0000)
Notes: journal_print flags:
const JOURNAL_UC_PRINT_NAME	:= 0x00; // Implicit.  Print's the object's description / npc's name in the journal.
const JOURNAL_UC_PRINT_YOU_SEE := 0x01; // Will print "You see:" in the journal.
Return values
1 on success, 0 on failure
Errors
"Unicode array exceeds maximum size." (200 characters)
"langcode must be a 3-character code."
"Invalid value in Unicode array."
"A parameter was invalid"
Related
Array
UObject
RequestInputUC(character, item, uc_prompt, langcode)
Parameters:
Name Type
character Character reference to receive the text
item placeholder, pass any valid item
uc_prompt Array of 2-byte integers, where each integer is a Unicode character. The question to which the player types the response.
langcode 3-character 'Originating Language' string code e.g. ENU, CHT, DEU, RUS, KOR, etc.
Explanation
Displays a unicode system message prompt to 'character', the character can then enter unicode characters which will be returned to the script.
uc_prompt MUST be an array of integers representing unicode characters.
Integers must be "Big Endian" (0x1234) and not "Little Endian" (0x3412).
Integers will be clipped internally to 2-bytes (value masked with 0xFFFF)
The Array must be terminated with zero. (0x0000)
Return values
a struct with members "lang" (3-character string), and "uc_text" (a "unicode array" of 2-byte integers representing unicode characters in the specified language) on success.
Errors
"No client attached"
"Another script has an active prompt"
"Unicode array exceeds maximum size." (200 characters)
"langcode must be a 3-character code."
"Invalid value in Unicode array."
"Invalid control characters in text entry"
"A parameter was invalid"
Related
Array
SendSysMessageUC(character, uc_text, langcode, font:=_DEFAULT_UCFONT, color:=_DEFAULT_UCCOLOR)
Parameters:
Name Type
character Character reference to receive the text
uc_text Array of 2-byte integers, where each integer is a Unicode character
langcode 3-character 'Originating Language' string code e.g. ENU, CHT, DEU, RUS, KOR, etc.
font Integer (optional) font code. Not the same as non-unicode font codes
color Integer (optional) color code. Not the same color as the same value for non-unicode prints
Explanation
Displays a unicode system message to 'character'
uc_text MUST be an array of integers representing unicode characters.
Integers must be "Big Endian" (0x1234) and not "Little Endian" (0x3412).
Integers will be clipped internally to 2-bytes (value masked with 0xFFFF)
The Array must be terminated with zero. (0x0000)
Return values
1 on success
Errors
"Unicode array exceeds maximum size." (200 characters)
"langcode must be a 3-character code."
"Invalid value in Unicode array."
"A parameter was invalid"
Related
Array