TRIHAN'S PROFILE

Trihan
"It's more like a big ball of wibbly wobbly...timey wimey...stuff."
3359
Sidhe Quest
When everything goes wrong, it's up to our heroes to go and do a bunch of other stuff!

Search

Horizon Zero Dawn (alternative title: How the Hell Isn't There Already a Topic About This?)

So I bought Horizon Zero Dawn the other day, and by the gods it's gorgeous.

I'm having an absolute blast with it so far. The setting is really compelling, the combat is varied and fun, there's a good array of weaponry and skills to unlock, the map looks huge, there's plenty of side content to meander through, and the visuals are some of the best I've seen on the PS4 since Uncharted 4. Here's a photo I took using the in-game photo mode:



Anyone else picked it up? If so, what do you think of it?

Final Fantasy X monster arena prices

On a topic completely unrelated to the fact that I've started coding a monster arena script/plugin (I'm totally not, honest) does anyone have any idea whether the prices for fighting monsters follow any kind of formula? They look somewhat arbitrary, but if there's a formula involved I'd like to emulate it.

[RMMV] [RMVX ACE] Monster arena

Thinking of possibly writing a script/plugin for an FFX-style monster arena system. Is that something anyone here would use?

Another cool VX Ace/MV thing I just noticed that everyone probably already knows.

...did you guys know that when you use a restorative item on a party member, it uses the highest pharmacology percentage of everyone in your party who isn't incapacitated? I thought the PHA stat only affected the user.

On the offchance that anyone else is as late to the party as me, this basically means that if you have even one party member with, say, 500% pharmacology, then no matter who uses a potion or ether or whatever, it'll be 5 times stronger than normal.

Not really all that impressive a fact, but I just found this out and thought it was a neat feature.

Edit: This actually has some interesting potential side-effects. Say you have an item that restores some MP at the cost of HP, and the damage it does is a.atk (the user attacks themselves when using it basically) it will actually use the attack power of the party member with highest pha as well.

[RMMV] [RMVX ACE] Trihan ports your scripts for you!

I'm gonna eschew my usual preamble and just get to the point. If you have a VX Ace script you want to use in MV, or an MV plugin you want to use in VX Ace, let me know what it is and I'll see if I can port it over for you.

[RMMV] [RMVX ACE] An interesting point to remember about the 'occasion' setting for items.

This probably isn't something anyone with half a brain would pay any attention to or forget to do, but I found it an interesting thing to consider so I'm making a topic and there's nothing you can do about it.

So I was working on the breakdown of Scene_ItemBase for Jump into Javascript part 4 (not a typo, I already submitted 3 and am working on the next one. The things I do for you people...) when I came across something that looked a bit off to me; namely, that in the function that determines whether an item/skill is being used on an actor or not, the only actual check is whether the item/skill is "for friend"; anything that isn't for an ally or multiple allies is just used outright unless the occasion prevents it.

The potential problem there lies in the fact that by default, occasion is set to "Always" and if you forget to set this to "Battle Screen" or "Menu Screen" what you end up with is an item you can use almost literally anywhere. To wit, if you have items that target enemies and do damage to enemies, you can accidentally consume them in the item screen to do nothing. I suppose this makes sense; it's precisely what the occasion setting was made for, but it's such a "set it and forget it" part of the database settings that I honestly sometimes struggle to remember it's even there, and hopefully drawing attention to how it's treated behind the scenes will prevent any unwanted powerful item consumption on the part of my fellow developers. :)

[RMMV] [RMVX ACE] The official Slip into Ruby/Jump into Javascript topic of awesomeness and long title

It has occurred to me that although this is the main site on which I post my Slip into Ruby and Jump into Javascript series, I haven't actually made an official topic for them. Given that it's an ongoing series of articles/tutorials and falls somewhat outside the scope of what an article/tutorial usually is, I thought I'd better remedy that, if not only to have a consolidated list of what I've actually covered so far.

For those not in the know, who haven't read them before, or who don't pay attention to the "new articles" section of the homepage, I decided a while ago to demystify the built-in scripts of RPG Maker VX Ace and explain exactly what they do and why. When MV came out, I did the same thing with the built-in Javascript files. This is intended to allow even novice scripters/coders to gain a better understanding of how things work behind the scenes, and better facilitate custom systems or changing the defaults. Here are the instalments I've written for each one so far and their respective links:

SLIP INTO RUBY
--------------
Chapter 1: Making a bestiary
-- Part 1: http://rpgmaker.net/articles/694/
-- Part 2: http://rpgmaker.net/articles/835/
-- Part 3: http://rpgmaker.net/articles/1096/
-- Part 4: http://rpgmaker.net/articles/1108/

Chapter 2: Under the Hood (Breaking down the default scripts)
-- Part 1: The modules
---- Section 1: http://rpgmaker.net/articles/1109/ (covers Vocab, Sound, Cache and DataManager)
---- Section 2: http://rpgmaker.net/articles/1110/ (covers SceneManager and BattleManager)
-- Part 2: Game Objects
---- Section 1: http://rpgmaker.net/articles/1114/ (covers Game_Temp, Game_System and Game_Timer)
---- Section 2: http://rpgmaker.net/articles/1116/ (covers Game_Message, Game_Switches, Game_Variables, Game_SelfSwitches, Game_Screen and Game_Pictures)
---- Section 3: http://rpgmaker.net/articles/1120/ (covers Game_BaseItem, Game_Action and Game_ActionResult)
---- Section 4: http://rpgmaker.net/articles/1121/ (covers Game_BattlerBase and Game_Battler)
---- Section 5: http://rpgmaker.net/articles/1129/ (covers Game_Actor)
---- Section 6: http://rpgmaker.net/articles/1130/ (covers Game_Enemy, Game_Actors, Game_Unit, Game_Party and Game_Troop)
---- Section 7: http://rpgmaker.net/articles/1137/ (covers Game_Map)
---- Section 8: http://rpgmaker.net/articles/1229/ (covers Game_CommonEvent, Game_CharacterBase, Game_Character, Game_Player, Game_Follower, Game_Followers, Game_Vehicle and Game_Event)
---- Section 9: https://rpgmaker.net/articles/1351/ (covers Game_Interpreter)
-- Part 3: Sprites
---- Section 1: https://rpgmaker.net/articles/1353/ (covers Sprite_Base and Sprite_Character)
---- Section 2: https://rpgmaker.net/articles/1355/ (covers Sprite_Battler, Sprite_Picture and Sprite_Timer)
---- Section 3: https://rpgmaker.net/articles/1356/ (covers Spriteset_Weather, Spriteset_Map and Spriteset_Battle)
-- Part 4: Windows
---- Section 1: https://rpgmaker.net/articles/1363/ (covers Window_Base)
---- Section 2: https://rpgmaker.net/articles/1369/ (covers Window_Selectable, Window_Command and Window_HorzCommand)

What's next: Start of the breakdown for the Window classes, starting with Window_Base.

JUMP INTO JAVASCRIPT
--------------------
---- Part 1: https://rpgmaker.net/tutorials/1230/ (covers main.js and part of rpg_scenes.js (Scene_Base). Javascript concepts introduced: function calls, global variables, functions, apply, "this", prototypes, changing prototype constructors, instance variables, return values, "var", parameters, OR assignment, increment/decrement operators, foreach)
---- Part 2: https://rpgmaker.net/tutorials/1357/ (covers part of rpg_scenes.js (Scene_Boot and Scene_Title). Javascript concepts introduced: Date.now(), logical AND, throwing errors, === comparison operator, logical OR, function binding)
---- Part 3: https://rpgmaker.net/tutorials/1358/ (covers part of rpg_scenes.js (Scene_Map). Javascript concepts introduced: Ternary operator, nested logic, switch statements)
---- Part 4: https://rpgmaker.net/articles/1359/ (covers part of rpg_scenes.js (Scene_MenuBase, Scene_Menu, Scene_ItemBase, Scene_Item, Scene_Skill). Javascript concepts introduced: Encapsulation, Array.some, functions as arguments)
---- Part 5: https://rpgmaker.net/articles/1362/ (covers part of rpg_scenes.js (Scene_Equip, Scene_Status, Scene_Options, Scene_File, Scene_Save, Scene_Load, Scene_GameEnd, Scene_Shop)

What's next: Finish off rpg_scenes.js; there are 4 classes left.

------

I'll update this topic as I finish and submit new articles. Part 3 of Jump into Javascript is next on my list; I think I'm going to get caught up a bit on that before I do another Slip into Ruby, but feel free to let me know what you'd prefer me to focus on. Any other comments, suggestions or requests are welcomed and encouraged. I want to get these out to as many people as possible so that we can foster a great community of budding scripters and encourage more people to experiment with Ruby and Javascript.

Edit 2/3/17: Updated the topic with Slip into Ruby: Under the Hood Part 4 Sections 1 and 2.
Edit 14/2/17: Updated the topic with Jump into Javascript part 4 and 5.
Edit 2/2/17: Updated the topic with Jump into Javascript part 3.

When 9 power just isn't a strong enough storm.

Maximum 90 weather particles? To hell with that noise, let's have 900 instead.

Unable to use the "Locker" button.

When I'm writing a forum post or article submission, if I try to link an image from my Locker, I get the message "No markItUp! Editor found"; I have to go to my locker list and get the direct image link from there, then use the image button instead.

Has anyone else come across this?

[RMVX ACE] So I found an interesting bug.

I've been working on the latest edition of Slip into Ruby (finally!) and am currently delving deep in the innards of Game_Interpreter. While I was looking through the code for the Shake Screen command, I noticed something a bit odd, namely this line:

wait(@params[1]) if @params[2]

Now in this context,
@params[1]
is the speed of the shake (1-9) and
@params[2]
is the duration in frames. So basically, as written, what this line is doing is waiting for 1-9 frames if the shake has a duration.

You see the problem here? It basically means that the "wait for completion" box on Shake Screen doesn't really do anything, because even 9 frames is a barely-noticeable duration. The line SHOULD be

wait(@params[2]) if @params[3]

which will correctly wait for *duration* frames if the wait for completion box was checked.

Just an interesting tidbit I thought I'd share before I publish the new SIR.