About "Mod" option on variables

● ARCHIVED · READ-ONLY
Started by DarlesLSF 11 posts View original ↗
  1. What is that function?
  2. It's short for "modulo", the fifth basic math operation after addition, substraction, multiplication and division.
    It is rarely used in common life, but important to some computer mathematics, especially if you're limited to integer numbers like the default variables are.
  3. @DarlesLSF This is posted in RPGMaker 2000/2003, but the information under your avatar says that you use MV.
    Could you please post and clarify which engine this query refers to.
    Thanks.
  4. Only if you are familiar with math, you will see that modulo is very helpful.

    Suppose you have a variable that always increased by one.
    Code:
    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ...
    Now you put an operation of mod 4 at the final operation. The iteration will change to this :
    Code:
    0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, ...

    This is useful for indexing in menu / option. You know when there are selectable choice where you navigate by pressing up and down for example. Imagine you have 4 selectable choice.
    Code:
    New Game (index = 0)
    Continue (index = 1)
    Gallery (index = 2)
    Quit (index = 3)
    What do you think happened when you keep pressing down after the Quit? Your cursor will loop back to New Game, thanks to the mod 4 operation. I'm ashamed that some people still use if (index == 4) then index = 0 as a solution for these.

    Modulo operation can handle negative value, thus help set the cursor to Quit when you pressing up after the New Game. Unless in MV, you can't modulo a negative value... =_=
  5. Kes said:
    @DarlesLSF This is posted in RPGMaker 2000/2003, but the information under your avatar says that you use MV.
    Could you please post and clarify which engine this query refers to.
    Thanks.
    Sry man, im using 2003 right now, but at the first time i was using the MV. I will change that :D

    Kuro DCupu said:
    Only if you are familiar with math, you will see that modulo is very helpful.

    Suppose you have a variable that always increased by one.
    Code:
    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ...
    Now you put an operation of mod 4 at the final operation. The iteration will change to this :
    Code:
    0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, ...

    This is useful for indexing in menu / option. You know when there are selectable choice where you navigate by pressing up and down for example. Imagine you have 4 selectable choice.
    Code:
    New Game (index = 0)
    Continue (index = 1)
    Gallery (index = 2)
    Quit (index = 3)
    What do you think happened when you keep pressing down after the Quit? Your cursor will loop back to New Game, thanks to the mod 4 operation. I'm ashamed that some people still use if (index == 4) then index = 0 as a solution for these.
    I still use that part, because i dont knew about that mod function haha
    But how can i make an event for a menu like u said to go down and up in the menu?
  6. Sorry for bringing this back up, but I couldnt find anything else related to my question. (There used to be guides, but I can no longer find them.)
    I know using the variable mod, you could separate a variable by the "ones" "tens" "hundreds" "thousands" etc.
    so for example, if you had 1,234 HP, you could take that, and using mod, give 4 different variables the value of each place.
    \V[1],\V[2]\V[3]\V[4]
    which in a text box, would end up showing 1,234. (Currently, i know how to make it show 1234, 234 34 4, but not 1,234)
    (I know you can just set a variable to equate HP, but this was for more than just HP, and text, but for using images on screen.)

    Does anyone here know how to use variable mod to do this?
  7. Blair Pendragon said:
    (Currently, i know how to make it show 1234, 234 34 4, but not 1,234)
    Let start with this
    to get 1 from 1234, divide it by 1000
    to get 2 from 234, divide it by 100
    to get 3 from 32, divide it by 10
  8. TheoAllen said:
    Let start with this
    to get 1 from 1234, divide it by 1000
    to get 2 from 234, divide it by 100
    to get 3 from 32, divide it by 10

    ok, i think i just needed the extra step of normal division.
    so...
    (V= variable)

    V5=HP (1234)
    V1=V5 (1234)
    V2=V5 (1234)
    V3=V5 (1234)
    V4=V5 (1234)
    V1 / 1000 (1)
    V2 mod 1000 (234)
    V2 / 100 (2)
    V3 mod 100 (34)
    V3 / 10 (3)
    V4 mod 10 (4)


    only thing left, is i could have sworn the set up was nearly half the amount of steps as this. but for now, this should work. thanks
  9. [necro]@Blair Pendragon [/necro]

    Please start your own new thread rather than bringing up someone else's old thread for your own questions.