Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Ruby Scripting
#7
Comparisons

In Ruby you have got 3 ways to compare a value of a CONSTANT or variable with any other value.

if or unless statements (plus iterators (loops) like while and until)

Code:
if today == "Sunday"
  print "It's Sunday!"
elsif today == "Monday"
  print "How boring! It's Monday once again..."
else
  print "I just have to drive off to work, you know."
end

Here we were using the == equality operator.

By the way, unless is a negative if statement.

case statement

Code:
case $game_party.actors[0].name
when "Aluxes", "Alex", "Alexis"
  print "He's just an idiot!"
when "Basil"
  print "A fool tailgating another fool..."
when "Hilda"
  print "You should never trust a witch, you know."
end

As you can see in the example above, it's a convenient way to test things. It even allows you to add more than a single value to every single when clause. You could say it's like defining an if statement in a very convenient way.

But there's a catch! Shocked

The comparison is always made based on the call to the === identical method.

Happy with a sweat === Happy with a sweat  would return true.
Happy with a sweat === Sweat would return false, even if they look kind of similar.

An if statement won't force you to use any specific operator for comparisons, you need to define them on every single line of code you're adding to your script.

Enter ? Ternary : Condition

What's a ternary condition? Confused

Well, it's quite simple indeed. It's like an abbreviated form of an if statement. It can also be found in other languages like C and C++.
I guess you could find it useful if you need to test variables in order to find out if you set one value or another. You can also use it to call two distinct methods.

Setting a Variable's Value

Code:
legal_status = age >= 21 ? "Adult" : "Minor"

We used the >= greater than or equal to operator on the example above.

As you have noticed, the variable legal_status will return an Adult or Minor status based on a character's age.

Calling Different Methods

Code:
base_infiltrated? ? explode : business_as usual

In this case we have included three different methods to test if a hypothetical base has been infiltrated by the enemy. Dalek
If true, it will simply explode and ignore the third method. Happy with a sweat
If false, people will ignore the routine check and keep working hard at the military base. Laughing

Happy Boolean Return Values! Laughing + Tongue sticking out
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9

Maranatha!

The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.

[Image: SP1-Scripter.png]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: SP1-Reporter.png]

My Original Stories (available in English and Spanish)

List of Compiled Binary Executables I have published...
HiddenChest & Roole

Give me a free copy of your completed game if you include at least 3 of my scripts! Laughing + Tongue sticking out

Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE
Reply }


Messages In This Thread
Ruby Scripting - by kyonides - 08-29-2019, 04:51 AM
RE: Ruby Scripting - by kyonides - 08-30-2019, 05:47 AM
RE: Ruby Scripting - by kyonides - 09-03-2019, 07:24 AM
RE: Ruby Scripting - by kyonides - 09-06-2019, 05:46 AM
RE: Ruby Scripting - by kyonides - 09-09-2019, 05:00 AM
RE: Ruby Scripting - by kyonides - 06-05-2021, 08:20 PM
RE: Ruby Scripting - by kyonides - 11-28-2021, 03:31 AM
RE: Ruby Scripting - by kyonides - 05-02-2022, 02:43 AM
RE: Ruby Scripting - by kyonides - 01-27-2023, 08:01 AM
RE: Ruby Scripting - by kyonides - 02-03-2023, 02:42 AM
RE: Ruby Scripting - by DerVVulfman - 02-03-2023, 03:52 AM
RE: Ruby Scripting - by kyonides - 02-03-2023, 04:33 AM
RE: Ruby Scripting - by kyonides - 04-19-2023, 12:47 AM
RE: Ruby Scripting - by kyonides - 04-19-2023, 01:12 AM
RE: Ruby Scripting - by kyonides - 06-08-2023, 09:24 PM
RE: Ruby Scripting - by kyonides - 06-08-2023, 09:46 PM
RE: Ruby Scripting - by kyonides - 06-12-2023, 06:29 AM
RE: Ruby Scripting - by kyonides - 07-14-2023, 10:37 PM
RE: Ruby Scripting - by kyonides - 07-15-2023, 07:32 AM
RE: Ruby Scripting - by kyonides - 07-16-2023, 06:05 AM
RE: Ruby Scripting - by kyonides - 07-17-2023, 04:01 AM
RE: Ruby Scripting - by kyonides - 08-22-2023, 08:59 AM
RE: Ruby Scripting - by kyonides - 08-28-2023, 03:34 AM
RE: Ruby Scripting - by kyonides - 11-18-2023, 09:02 AM
RE: Ruby Scripting - by kyonides - 04-16-2024, 06:57 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
   Ruby - Behind the Scenes DerVVulfman 0 618 07-15-2023, 05:52 PM
Last Post: DerVVulfman
Information  Assorted Ruby chm documents. hanetzer 10 33,259 08-17-2020, 04:19 AM
Last Post: kyonides
Brick  Learn Ruby! greenraven 2 7,015 05-16-2014, 12:25 PM
Last Post: greenraven
   Creating Your Own Scripting System DerVVulfman 3 6,769 10-12-2009, 03:37 PM
Last Post: Alpha-Mad
   How to make interesting NPC's without scripting Third333Strike 0 3,504 12-06-2008, 04:59 PM
Last Post: Third333Strike



Users browsing this thread: