RSS

Monthly Archives: September 2015

Project Avalon progress update 30/09/2015

It has been a buzy and not-very-productive week. Editing tileset to improve the looks of the terrain is slowly but surely numbing my mind and killing me a little inside. But progress is needed if I am going to produce something.

My to-do list from last Sunday:

  • Advanced weather system…  did not get very far at all with this. 
  • Advanced time system is up and running. 
    I can now set up shop’s and places’ “operating hour”. You won’t be able to access certain places in the middle of the night. I am tempted to include a “tent” or “turn in for the night” feature so that players can skip ahead to the morning. I need to put some thoughts into this camping idea, since I am not really a big fan of it. I just do not like it when the players can just skip night time whenever they feel like it. I wouldn’t mind letting people do so at the inn though. It will count as “staying over for the night” kind of feature.
  • A better map system with markers to indicate location of places. 
    I have tested this and seems like it will be fine. I just need a better world map because the current image that I have is way too big. Plus the world map depends on how big is the world I am creating, as well as how many zones will be included.
  • Pet/Guardian summon system. I hit a roadblock on this… 
  • Skill tree system is 100% up and running now. 
    Thanks to Tsukihime’s add-on, we can now change class without having to worry about our skill tree getting reset. Players will not be able to manually reset their skill tree. It has to be done through a special NPC that I will put in the map. Now that we are on this topic, I just remembered that I have to deal with quite an unhealthy amount of mathematic to work out how each of the primary stats (HP, MP, ATK, DEF, MATK, MDEF, AGI, and LUK) will affect the secondary stats (Hit rate, Crit. rate, Crit, eva, etc… I am thinking of giving some sort of regenerating passives, but I think it would be better if I do it through passive skills instead, or else how am I supposed to restrict it to the tanking classes only?)
 
Leave a comment

Posted by on September 30, 2015 in Project Avalon Updates

 

Tags:

[Tutorial] 姫Hime’s Core – Equip Slots

Ever felt like the default equipment slots are too limited? Ever felt like you want to gear up your character to the teeth? Maybe your main character is a three-armed mutant and you want to equip him/her with 3 weapons? Or you are wanted to be able to equip a weapon on each and every equipment slot possible? Well, this script is the answer to your prayers.

Table of Contents

  • What is Hime’s Core – Equip Slots script?
  • How to install Hime’s Core – Equip Slots script?
  • How to use Hime’s Core – Equip Slots in your own game?
  • Add-ons to Hime’s Core – Equip Slots
    • Custom Equip Types – set up custom slot types
    • Multiple Equip Types – allows you to place an equip in multiple slots
    • Equip Slot Sealing – allows you to seal custom equip slots
    • Equip Slot Fixing – allows you to fix custom equip slots
    • Utils: Change Equip – script calls to change equips, if the event editor can’t help
    • Dynamic Equip Slots – add or remove equip slots during the game

Notes:

  • Any of the icons used in this tutorial belongs to Blizzard Entertainment. You may not ask me for permission to use them in your game and I never claim ownership over them.
  • Hime’s scripts are free to use in non-commercial projects. Please contact Hime if you wish to use these scripts in a commercial projects. The Terms of Use can be found here, and you can contact Hime directly by clicking here.
  • Other images are the property of Enterbrain.

Read the rest of this entry »

 
Leave a comment

Posted by on September 29, 2015 in Scripts

 

Tags:

Project Avalon progress update 20/09/2015

Here we are again. It has been a very exciting week with many trial runs with plenty of successes and some failures. Some ideas are scrapped and some have been and some have been modified to fit the most recent updates to the game.


List of updates:

  • Class/Subclass system revised
  • Battler position is now fixed.
    Instead of re-positioning the battler sprites, I am making the battlefield wider by shifting the background image upwards.
  • Reputation system is up and running. 
    Paired with Hime’s Choice option, reputation shop and hidden quests can be implemented easily without too many conditional checks.
  • Unique equipment system is up and running. 
    Equipment will come with prefix or suffix to indicate what kind of bonus that comes with the equipment thanks to Vlue. This will replace the socket system as well.
  • Trade Post system is introduced. 
    Vlue’s trade post script. Gold can be a frustrating thing to farm because I made it so that only human and demi-human enemies will drop gold. Trade Post will buy/sell anything ranging from materials, monster drops and equipment. I have also included a local specialty item which will cost more, but will also fetch a higher price if you sell them in another village/town.
  • Mining/gathering Node system have been added. 
    Vlue’s Gathering node script. Mineral nodes will spawn at certain places and players will be able to gather materials from them if they have the right tools. These nodes will disappear after being mined/gathered, and they will respawn after a period of time. I am tempted to add fishing as well but I do not see the point in doing that.
  • Skill tree system is … 
    At this point,we can add points and learn the appropriate skill once they are unlocked, however the points distributed will reset whenever the player changes class. If there is no way for us to keep our skill tree whenever we change class, then I will probably stick to the current skill system where we use JP (Job Points) to unlock skills.
  • Gem socket idea is scrapped and replaced with a simple equipment randomization. 

Class/Subclass System

First of all, the class system. At first I was planning to make it so that none of the classes, except for the Novice class, which is basically useless, can be equipped as subclass. I am trying to prevent players from combining some of the end game classes together to create an unbeatable party. The Guardian is stood at the first place in terms of Hit Points and Defense, and if the players combines this class with the Hierophant, they can effectively have a pretty godlike character. That combination will result in a class that has ultra high HP, decent MP, high DEF, good MDEF, and the player will have access to all Guardian and Hierophant skills, which includes heals and absolute defense. To put things into perspective, refer to the images below and compare the chart with all the other classes.

Guardian + Hierophant combo. The yellow bars indicates the increase in stats in each aspect.

Previous solution:

My original solution is to disable the option to equip a second combat class altogether. Then I will add negative stat bonus on certain equipment (i.e. plate armor comes with negative MDEF stats) to place more handicap. That way I can tune up the difficulty of battles and reduce the number of skills that players might regard as “useless”, such as +MDEF buffs. This is following the RPG101 logic “no matter how creative or innovative a skill is, no one will use it if it they think that it is useless”. Subclass will be limited to crafting classes and equipment modification will be done through the use of orbs.

Current solution:

Equipping crafting classes seems rather pointless and silly. Players receive next to no bonus from doing so, except for the fact that they can craft potions and equipment. Back to RPG101 theory. Who will use such a useless system? No one. Therefore the idea of equipping combat classes as player’s subclass is back on the table. However restrictions will be placed.

This is the new skill tree:

Anything in blue are considered end game classes and they will be restricted to players’ primary class slot. No more Guardian + Hierophant or anything ridiculous like that. The last tier of classes meant to be a specialization anyways. Specialization should be achieved through a long period of training, therefore not only that it is potentially game-breaking, it is also not realistic. While we are at it, I might have to buff up the Gladiator a bit so that is on par with the other 3rd tier classes (the level required to unlock the Berserker class will be raised too). I am also renaming the Gladiator class as Berserker, which will specialize in 2-handed weapons such as the great sword, spears and great axe.

The orb idea is temporarily scrapped and will be replaced with randomized equipment instead. I will get into this later. Alchemy and blacksmith are still going to happen. The only difference is that they now fall under crafting skills category.


Battler position

Now the fifth battler will not end up in a position that made it look like him/her is standing on the wall. Just a minor shift in the y-coordinates and the rest are done by shifting the battle background upwards a little to widen the battlefield. Might need to shift the battler down 5-10 more pixels if the current setting starts to bother me.


Reputation system

Not sure if I mentioned this before but it is finally fully integrated to my main project. I had some weird errors before this because I was missing a double quotation mark during script call.

Together with Hime’s Choice Option script, I can now combine all my show choice commands together and hide/disable the ones that the player have no access to due to the lack of reputation points. Wonderful script indeed.


Unique equipment system

I am sure people have come across this in other games where some equipment come with certain suffixes/prefixes to indicate different bonus. Vampire suffix usually means that the item has life-steal bonus or something like that.

One example to demonstrate that the custom bonus from the equipment adding to the character’s parameter:

Items with the suffix “… of Invincibility” comes with bonus +500 DEF and +500 MDEF. In this picture, I have 219 DEF and 151 MDEF.

After I equipped an armor with the suffix “… of Invincibility”, my DEF jumps from +219 to +759 (+500 DEF from bonus and +40 DEF from the default armor bonus). My MDEF jumps from +151 to +651.

I feel that this system is sufficient to replace the orb socket system, therefore the orb socket system is scrapped.


Trade Post

Running low on gold to buy/craft items and equipment? Monsters not dropping enough gold? You can now do “trade runs” between towns for gold! Buying items from one place and hope that you can sell it for higher at another place. The profit margin from doing so with regular items and ingredients might be a little low, but if you have enough reputation points, the locals might be willing to sell you their local specialty goods that you can sell for some nice profit in the next village. The prices will randomly rise/drop. You wont be able to cheat by buying and selling to the same traders because the buyback price is only 90% of the original price.

Here’s the prices taken from 2 different NPCs:


Mining/gathering Node

Now mining nodes and herbs will disappear and then reappear after a certain amount of time has passed. This is mainly for the blacksmith/armorsmith skill.


Skill Tree

If I can get the skill tree to save and not reset whenever I change class, this system will probably replace the current system where we learn skill by spending JP/EXP/Gold. We can achieve something like the talent tree in the World of Warcraft with this system. I see a lot of potential and this will make each classes more versatile. Maybe you want a Berserker class that focus more on delivering constant high-powered attack instead of relying on critical strike rate? Maybe you want a Ninja that deals magic damage? Who knows… I don’t know either. I have not even finish with building each class’ skill set yet.


Other things to do includes:

  • Advanced weather system. Mainly to give more flavor to the game. Together with the Advanced Time System are written by Vlue.
  • Advanced time system to replace the current simple time system. We will have days, months, and year instead of just time. This will open up possibilities such as hidden areas that the player might overlook because there is a river preventing them from exploring that corner of the map. This can probably go nicely with Hime’s tile swap script.
  • Visibility range for when players explore caves.
  • A better map system with markers to indicate location of places. Right now all I have is a common event that display the picture of the map.
  • Pet/Guardian summon system. This is mostly for the Archer and Hunter class to give them that extra firepower.
  • Skill tree system… I must have this! >.<“

One a side note… If anyone knows who created this sprite, I would very much appreciate it if you can let me know. Thanks.

 
Leave a comment

Posted by on September 20, 2015 in Project Avalon Updates

 

Tags:

[Tutorial] 姫Hime’s Choice Options

Tired of creating what seems like a never-ending list of conditional branches whenever you want to hide an option that you do not want an NPC to show? Not only that things can get complicated quickly, you are increasing the risk of making mistakes that you may or may not realize. Well, now you can forget all that by using this script.

Table of Contents

  • What is Hime’s Large Options script?
  • How to install Hime’s Large Options script?
  • How to use Hime’s Choice Options script in your own game?
  • Sample Code

Read the rest of this entry »

 
Leave a comment

Posted by on September 17, 2015 in Scripts

 

Tags:

[Tutorial] 姫Hime’s Choice Options: $game_party supported conditional statements

This article serves as an extension to Hime’s Choice Options script and deals solely with $game_party conditions


If you want to do something to the 3rd option when the player has more than 5000 gold:

  • To hide the choice: hide_choice(3, “p.gold > 5000”). You can also use hide_choice(3, “$game_party.gold > 5000”).Doing this will hide the option if the player has more than 5000 gold with him/her.
  • To disable the choice: disable_choice(3, “p.gold > 5000”). You can also use disable_choice(3, “$game_party.gold > 5000”).Doing this will disable the option if the player has more than 5000 gold with him/her.
  • For text_choice where you can replace the name of a choice with something else such as “???” based on some condition: text_choice(3, “???”, “p.gold > 5000”) or text_choice(3, “???”, “$game_party.gold > 5000”).Doing this will make the option show up as ??? instead of the option’s actual name if the player has more than 5000 gold with him/her.

Here’s a code sample where we have an NPC that offers 3 choices to player:

Event Page: Choice 1 will be hidden if the player has more than 5000 gold. Choice 2 will be disabled if the player has more than 5000 gold. Choice 3’s name will be changed to ABC if the player has more than 5000 gold.

When the player has 0 gold, he/she can view all the options.

When the player has more than 5000 gold, the effect will start to kick in. Option 1 is now hidden, Option 2 is disabled and Option 3 is now called ABC.


If you want to do something to the 2nd option when there are more than 2 members in the party:

  • To hide the choice: hide_choice(3, “p.members.size > 2”). You can also use hide_choice(3, “$game_party.members.size > 2”).Doing this will hide the option if the party has more than 2 actors in it.
  • To disable the choice: disable_choice(3, “p.members.size > 2”). You can also use disable_choice(3, “$game_party.members.size > 2”).Doing this will disable the option if the player has more than 5000 gold with him/her.
  • For text_choice where you can replace the name of a choice with something else such as “???” based on some condition: text_choice(3, “???”, “p.members.size > 2”) or text_choice(3, “???”, “$game_party.members.size > 2”).Doing this will make the option show up as ??? instead of the option’s actual name if the party has more than 2 actors in it.

Here’s a code sample where we have an NPC that offers 3 choices to player:

When there is only one member in the party, all the options will show up as Option 1, Option 2, and Option 3.

When there are 2 members in the party, Option 1 will be hidden, Option 2 will be disabled, and Option 3 will be renamed ABC.


Other checks you can perform includes number of steps taken

  • To hide the choice: hide_choice(3, “p.steps > 200”). You can also use hide_choice(3, “$game_party.steps > 200”).Doing this will hide the 3rd option if the party has walked more than 200 steps.
  • To disable the choice: disable_choice(3, “p.steps > 200”). You can also use disable_choice(3, “$game_party.steps > 200”).Doing this will disable the 3rd option if the party has walked more than 200 steps.
  • For text_choice where you can replace the name of a choice with something else such as “???” based on some condition: text_choice(3, “???”, “p.steps > 200”) or text_choice(3, “???”, “$game_party.steps > 200”).Doing this will make the 3rd option show up as ??? instead of the option’s actual name if the party has walked more than 200 steps.

We can achieve all these by check the status of switches, whether they are ON or OFF, or based on variables too. Read the next section to see how we can disable/hide/rename choices based on switches and variables.


 
Leave a comment

Posted by on September 17, 2015 in Scripts

 

Tags:

[Tutorial] 姫Hime’s Choice Options: $game_troop supported conditional statements

This article serves as an extension to Hime’s Choice Options script and deals solely with $game_troop conditions


$game_troop supported conditional statements

There are 2 methods that might come in handy:

  1. “$game_troop.members.size == x”, or you can write this as “t.members.size == x”. Replace x with the number of enemies you wish to check for.“$game_troop.member == 2” will return true if there are 2 enemies in the troop.
  2. “$game_troop.members[x]”, or you can write this as “t.members[x]”. Replace x with the enemy ID number. “$game_troop.members[0]” will return the reference to the first enemy in the troop in the order they are added. “$game_troop.members[1]” will return the reference to the second enemy in the troop, etc.

The first method can be used in troops event page (press F9 and click on the troops tab). Maybe you want to create a complex battle system that displays some choices to players in the middle of battle, and some of those choices are not available as long as there are more than x number of enemies in the field? You can easily do that using $game_troop.members.size == 3″ or “t.members.size == 3”

For example, you want to display a list of option to players at the start of battle, but some options are disabled if there are more than 2 enemies in battle.

If there are more than 2 enemies, Option 1 will be hidden, Option 2 will be disabled, and Option 3 will be renamed DEF.

Keep in mind that the use of $game_party(…), $game_switches(…), $game_variables(…), and $game_actor(…) are not restricted to non combat situation. We can also use them to disable choices in a combat.

Consider the following scenario:

You want to create a boss fight with 3 different levels of difficulties. You can totally pair up this script with Hime’s Enemy Reinforcement script to create the ultimate boss fight with hellish difficulties. We will not get into the details about how to use that script for now as the enemy reinforcement script is not within the scope of this tutorial. Troops event is done through the Troops page (Press F9, and click on the Troops tab)

For the scenario where you want the player to select the difficulty in the middle of a fight, you can do it like this.

Create a new event page and set the condition so that this happens at turn 0. Then call the Show Choices command and list the different options available to the players. In my case, the players are presented with 3 choices: Easy, Medium, Hard. I made it so that you cannot challenge the hard difficulty with only 1 character in your party, and you cannot challenge the easy difficulty with 4 characters in your party.

This is what you will get during the battle:

As you can see, the option for the hard difficulty is disabled because I have included the line “disable_choice(3, “p.members.size == 1″)”. There is only 1 character on the player’s side in the image, so the hard difficulty is disabled.

Now that I have 4 characters in my party, the option for easy fight is now disabled because I have included “disable_choice(1, “p.members.size == 4″)” in the troops event page.

Voila… mission impossible:

 
Leave a comment

Posted by on September 17, 2015 in Scripts

 

Tags:

[Tutorial] 姫Hime’s Choice Options: $game_variable and $game_switches supported conditional statements

This article serves as an extension to Hime’s Choice Options script and deals solely with $game_variables and $game_switches conditions


$game_switches supported conditional statements

We can also disable a choice based on the status of a switch. Imagine that we have an NPC that offers the player a list of weapon to choose from.

To disable an option based on the status of a switch, we need to enter the following command before presenting the player with the choices, disable_choice(x, “s[y]”). Replace x with a number to represent the option to disable, and replace y with the switch number. If we want to disable/hide Hand Axe if switch number 10 is ON, we will need to use disable_choice(1, “s[10]”). Now whenever switch number 10 is ON, option 1, the Hand Axe, will be disabled.

Note: s[…] is the same as $game_switches[…].
disable_choice(x, “s[]”) is the same as disable_choice(x, “$game_switches[]”)


$game_variables supported conditional statements

This is very very similar to switches, except that you use v[…] or $game_variables[…] instead of s[…] or $game_switches[…].

Imagine we have a variable to store the number of Dragons we slayed for a quest, the number will be stored in variable 11. Before that value in variable 11 reaches 10, we do not want player to be able to have access to the “Dragon Shield” option.

Dragon Shield choice will be disabled if the value stored in variable 11 is less than 10.

Note: v[…] is the same as $game_variables[…].
disable_choice(x, “v[]”) is the same as disable_choice(x, “$game_variables[]”)

 
2 Comments

Posted by on September 17, 2015 in Scripts

 

Tags:

[Tutorial] 姫Hime’s Choice Options: $game_actor supported conditional statements

This article serves as an extension to Hime’s Choice Options script and deals solely with $game_troop conditions


$game_actor supported conditional statements

This argument perform a more detailed check on individual actors. We can use this to check specific actor’s level, hp, and mp before disabling certain option(?) when the level requirement is not met.

The argument states that Option 1 will be hidden if the actor number 1 has exactly 800 HP, Option 2 will be disabled if the actor number 1 is at level 1, and Option 3 will show up as “?????” if actor number 1 has exactly 50 MP.

This is what is available to me when I am at level 1 with 800 HP and 50 MP.

This is what is available to me at level 30 with 2600 HP and 350 MP.

We can perform the same checks on the other actors, just replace the x in “$game_actors[x]” with the actor ID that you want to perform the check on.

 
1 Comment

Posted by on September 17, 2015 in Scripts

 

Tags:

Project Avalon progress update 14/09/2015

Mmmmm roadblocks… delightful

Let’s start off with something positive:

  • Alchemy Synthesis System seems to be running perfectly. Now players will be able to create item/weapon/potion as long as they have the recipe.
  • Active time battle (ATB) system is up and running. No more silly turn based combat. Now if you snooze, expect yourself to be in a world of pain. ATB system paired with enemy at +/- your highest character’s level means that you will die if you walk away from your keyboard. You’re going to die and you will die. 🙂
  • Mining system is under development. You will be able to obtain minerals needed to assemble certain weapon. Not entirely sure how big this will get or if it is even going to play a major part, but it is still good to have in reserve in case something changes in the future.
  • Herbology/Farming system is under development. This allows player to plant seeds at certain places. These seeds will grow into plants which the players can harvest for herbs and other ingredients needed for alchemy and potion making.
  • Monster Encyclopedia is a go. It will display the information on monsters that the player defeated in the past, including the stats, drops, etc. The stat displayed will be the monster stats at level 1.
  • Clock System is added and is working perfectly. It will apply a tint to all the outdoor areas at night time.

Now let’s talk about the roadblock/deadend… <insert state: despair>

Here are some facts to consider about the game:

  1. The monsters levels are around 3 levels above or 3 levels below the player’s level.
  2. Player can unlock new classes provided that they are able to find/unlock hidden triggers.
  3. New classes start off at level 1.
  4. ATB bars refill according to character’s AGI and party’s average_AGI

Theoretically everything should be fine and dandy, but when I look through the YSA script about the formula for ATB recovery rate, something occurs to me that could potentially be problematic.

If the MAX_CATB_VALUE = 10000 and DEFAULT_FILL_TIME = 120
base_gain_catb = 10000 / 120 = 83.33

Assuming that the party consists of:
– a level 60 with 180 AGI
– a level 57 with 150 AGI
– a level 1 with 6 AGI

The party’s average AGI = 112, because ((180 + 150 + 6) / 3) = 112.
For the level 60, real_gain_catb = (180 / 112) * 83.33 = 133.93
For the level 60, real_gain_catb = (150 / 112) * 83.33 = 111.61
For the level 1, real_gain_catb = (6 / 112) * 83.33 = 4.46

Which means that the level 1’s ATB bar is probably never going to be filled in a battle. I suppose it will be fine in terms of realism. It is like taking on a beginner fighter to fight a battle against experienced opponent, the newbie won’t have a good time.

Working on a solution for this, such as “training tickets” obtained from bosses that players can use to exchange for EXP. Or we can just leave things as it is. Either way, I am still looking  for a better solution since EXP scrolls seems like a cheap solution.

Other things to do includes:

  • Re-positioning the character sprites in battle scene
  • Unique equipment system.
  • Gem socket system. I have completed the icons for the gems, but that’s all for now. I am thinking of referring to these gems as “orbs”, and they come in three different qualities; flawed, normal and legendary.

    The 6 orbs at the end are just there in case they are needed

  • Experiment with Hime’s Choice Option script
  • Experiment with Hime’s Random Encounter script for world bosses that player can unlock by accomplishing certain event/quest. For those who played Pokemon in the past, it is something similar to Entei, Suicune and Raikou, but here’s the catch:
    • You cannot tame/capture world bosses (or any other NPCs or monsters).
    • You cannot track their location, although you will be given a hint as to where they might appear.
    • You have multiple chances of encountering them in case you decides to escape your first encounter. Personally I would like to make it so that you cannot escape from world boss fights).
    • Once the boss dies, it is game over for the boss. You will not be able to find it again. There might even be triggers that will unlock more hidden features for NPCs associated with the boss.
    • Bosses are guaranteed to drop a good amount of EXP and good equipment with bonus stats. Still trying to decide on what kind of bonus stats are allowed for these exceptional equipment. They should not upset the balance of the game, but they should definitely make your life somewhat easier.
 
4 Comments

Posted by on September 14, 2015 in Project Avalon Updates

 

Tags:

[Tutorial] 姫HIME’s Large Choices

Ever come across a situation where you want to display more than 4 choices in the selection screen? Maybe you want to create an NPC with a list of weapons that the player can choose from. Or maybe you want to create an elaborate character creation page with multiple options that the player can choose from to determine his starting stats. The default show choices is adequate if you have few options to pick from, but if the list gets longer, the process starts to get a little tedious.

What is Hime’s Large Choices script?

It is a script that allows you to present more than four choices that the players can choose from through the use of the “Show Choice” command. Once the script is added, you can stack multiple “Show Choices” commands together without the need to use nested “Show Choices” to display a large list of options.

For me, it provides a better view of all my available options instead of having to repeatedly browse the choice selection page.


Read the rest of this entry »

 
Leave a comment

Posted by on September 11, 2015 in Scripts

 

Tags: