The PokéCommunity Forums Fan Games ROM Hacks Studio PokéCommunity ROM Hack Planning
Engine Engine Documentation

Planning Where all the hard work happens. Got an idea? You don't have to be part of the team to share it with us.

Reply
 
Thread Tools
  #1    
Old January 6th, 2017 (4:03 AM).
Touched's Avatar
Touched Touched is offline
Resident ASMAGICIAN
     
    Join Date: Jul 2014
    Gender: Male
    Posts: 626

    Engine Guidelines


    Due to a number of changes being made to the engine, we decided to post this thread to get everyone on the same page.

    Scripting


    Many of the scripting changes are made to alleviate common pain points for scripters, so if you notice you're doing something repeatedly, you should consult one of the engine hackers to see if they can't whip something up to help you. Many of these features (particularly custom commands and buffers) will be more helpful and user friendly once we get the custom script editor going. XSE users will just have to use raws and hex codes.

    Custom Buffers and Control Characters


    Since we have both a sibling rival (who is the opposite gender to the player) and a regular rival, I've added a number of buffers help scripters.

    Names


    First up, the name buffers. In the normal FireRed engine, scripts have access to the [rival] buffer and the [player] buffer. However, since we have two rivals, we creates an extra buffer.
    • Player's Name: [player]
    • Sibling's Name: [sibling]
    • Rival's Name: [rival]

    Gendered Words


    As a scripter you should try not to use checkgender at all in your scripts. Please consult with one of the engine hackers if you feel that you need to use the checkgender command, because there may be some other way around your problem.

    For messages, we have created a number of buffers that replace common gendered words (mainly pronouns) that could be used in dialogue:

    Code:
    [sibling]: [he] is my is [brother]
    For the purposes of these buffers (so that they read like english), we have assumed that the player is male, and that the sibling rival is female. In this case, the above message would be displayed as "<SIBLING NAME>: he is my brother". However, if the player is female, this would be displayed as "<SIBLING NAME>: she is my sister".

    Please note that these buffers exist in pairs - the male word refers to the player and the female word refers to the sibling. This means that if you do:

    Code:
    [player]: [she] is my is [sister]
    You'll see "<PLAYER NAME>: she is my sister" if you're male and "<PLAYER NAME>: he is my brother" if you're female.

    A full list of gendered words:
    • Sibling: [brother] / [sister]
    • Nominative Pronoun: [he] / [she]
    • Oblique Pronoun: [him] / [her]
    • Possessive Determiner: [his] / [her]
    • Possessive Pronoun: [hiss] / [hers]
    • Reflexive Pronoun: [himself] / [herself]

    NOTE: Since the word "his" has two female counterparts ("her" and "hers"), we use "hiss" to refer to the possessive pronoun and "his" to refer to the possessive determiner. This is not a typo.

    Please let someone know if there is a gendered word that is missing from the list above.

    Case Modiifiers


    The observant among you will have noticed that the above words exist only in lower case. This can be problematic if you need to start the sentence off with a capital letter, or if you need to write some text where someone is shouting (all caps). To fix this problem, we have added case control characters.

    Code:
    [uppercase][brother]
    This text will be displayed as "BROTHER" or "SISTER" depending on your gender. Note that these control characters stay on until you turn them off again with [default_case].

    A full list of case modifiers:
    • MAKE EVERYTHING UPPERCASE: [uppercase]
    • force lowercase: [lowercase]
    • Automatic Uppercase First Letter: [title_case]
    • Just the first word capital: [sentence_case]
    • Revert to normal: [default_case]

    Therefore, if you want to write the word "Brother" instead of "brother", you should write

    Code:
    [title_case][brother][default_case]
    Since this is pretty unwieldy, the new script editor will have support for compound special codes, so you can just write [Brother] instead of [brother]. However, XSE users will just have to litter the text with hex codes.

    Emote Control


    We do not have art for this yet so the list of emotions and therefore the codes has not been finalized.

    Codes for XSE Users


    As previously mentioned, XSE doesn't support custom square bracket codes, so you're gonna have to write the above buffers out in full. Below is a list of hex codes for each buffer.
    • [player]: [player]
    • [sibling]: \v\h05
    • [rival]: [rival]
    • [brother]: \v\h07
    • [sister]: \v\h0d
    • [he]: \v\h08
    • [she]: \v\h0e
    • [him]: \v\h09
    • [her]: \v\h0f
    • [his]: \v\h0a
    • [her]: \v\h10
    • [hiss]: \v\h0b
    • [hers]: \v\h11
    • [himself]: \v\h0c
    • [herself]: \v\h12
    • [uppercase]: \c\h19\h01
    • [lowercase]: \c\h19\h02
    • [title_case]: \c\h19\h03
    • [sentence_case]: \c\h19\h04
    • [default_case]: \c\h19\h00

    Therefore for the following:
    Code:
    [title_case][brother][default_case]
    The correct code in XSE would be:
    Code:
    \c\h19\h03\v\h07\c\h19\h00
    Yes, I realise that is ugly, but we're working on another script editor that will allow you to just write:

    Code:
    [Brother]
    So please be patient.
    __________________

    A Pokemon that is discriminated!
    Support squirtle and make it everyone's favourite.
    Reply With Quote
    Reply

    Quick Reply

    Join the conversation!

    Create an account to post a reply in this thread, participate in other discussions, and more!

    Create a PokéCommunity Account
    Thread Tools

    Posting Rules
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is On
    Smilies are On
    [IMG] code is On
    HTML code is Off

    Forum Jump


    All times are GMT -8. The time now is 1:12 PM.