ShinySlowqueen

Veteran
Veteran
Joined
Dec 22, 2015
Messages
49
Reaction score
3
First Language
English
Primarily Uses
RMVXA
Hi, here's some things I'd like to do with my game. I've tried Googling and searching the forum, because I'm sure all of these have been done before, but I think I just don't know what keywords I should be searching. If y'all can point me toward any scripts or tricks on how to make any or all of these things happen (or at least something very similar) I would drastically appreciate it.


1. Enemies that, when you hit them, cause damage or negative status to *you.* For example, if you attack Poison Salamander with a melee weapon, you get poisoned. I'd also like to include Ranged Weapons that allow you to hit these monsters without negative repercussions.
UPDATE: Figured how to do this using a combination of Tsukihime's Battle Reaction script and Yanfly's Weapon Attack Replace script. I already had different Skills set up to use as physical attacks for weapons that use AGI or MAT instead of STR, and I made a copy of the STR skill to use for ranged weapons and set Poison Frog to React with Auto Poison to any Attack skill other than the one I'm using for Ranged.


2. One character uses no equipment. Instead, monsters randomly drop "Essences" which this character must either consume immediately or throw away (or has a hard limit of one in the inventory). Essences change the character's class/stats/skills completely, and you're shown both the current class/stat/skill set and the new class/stat/skill set before you choose.

I've gone around and around trying to figure out how to make this one work. If doing it as an Equipment that you can only have one of in your inventory and that disappears after it's unequipped is easier, we can try that.
UPDATE: I'm going to make a separate thread for this one in Script Requests.


3. One character can learn up to four skills, and when she learns a new skill, one of the other skills must be deleted (similar to Pokemon). Skills can either be learned by Level or Item, whichever is easier, though Item would be preferred.
UPDATE: Currently working on this one with Heirikuchi. I think we almost got it.


4. I'd like to remove MP and TP entirely. Spells and skills are used in other ways. Also considering getting rid of the LUK stat, so if there's a way to do that too.
UPDATE: Don't worry about this one yet, I'll mess with the battle script later.


5. Three of the four characters do not gain EXP and become stronger in other ways. I'd like EXP to not show up at the end of battle unless you have the one character who uses EXP in your party.
UPDATE: Don't worry about this one, I'll mess with the battle script later.

6. A class of weapons that have limited uses and get weaker each time they are used. For example, the Fragile Sword has 99 uses and 99 ATK. Attack with it once, and it goes to 98 uses and 98 ATK. Once it hits 0 uses, it breaks and disappears from your inventory.
UPDATE: Got a solution from Heirikuchi; currently trying to make it work.

I'm sure there will be more; I'll post them as I think of them. Thanks in advance for your assistance ^^
 
Last edited:

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,422
Reaction score
601
First Language
Italian
Primarily Uses
RMVXA
  1. This can be done with just damage formulae. You can check if the caster is wielding a certain weapon and, based on that, you can apply poison or not. Enemies with poisonous body might be marked using a certain Element Rate, then you can check if
    Code:
    b.element_rate(element_id) == X
    and apply the state or not based on the result of that check. Just be aware of the fact that you cannot check equipped items on enemies, for this reason be sure to include a check only if the caster is an actor. If I am not mistaken there is a method called "actor?" in the Game_BattlerBase class, otherwise just use a.is_a?(Game_Actor?) instead.
  2. While the previous point can be achieved via damage formula, this one needs a script, there are no shortcuts.
  3. You can do this by leaving the skill list for that class empty and use a conditional branch to check if the character already knows 4 skills. If she does not, she learns a new skill, if she does, she has to forget one of them (you have to do this using conditional branches). Based on how you do this, it might not look that great. If you want it to look better you should use a little script for this.
  4. This requires editing your scripts, you have to change a lot of things: how characters are displayed in the status window, how they are displayed in battle and how states disappear. It cannot be done without editing the scripts.
  5. Same as point 4, you have to edit how the Scene_Battle class handles the end of each battle, and that can only be achieved by editing the scripts.
  6. This can be done via damage formula: you subtract a variable (the number of uses) to damage dealt and then increases that variable. When that variable reaches the same value as the weapon ATK, the weapon disappears. Of course, as in point 1, you have to check if that weapon is equipped before subtracting that variable.
 

ShinySlowqueen

Veteran
Veteran
Joined
Dec 22, 2015
Messages
49
Reaction score
3
First Language
English
Primarily Uses
RMVXA
2. While the previous point can be achieved via damage formula, this one needs a script, there are no shortcuts.

I figured. This one's probably the most unusual and unique thing. I've tried messing with TheoAllen's Limited Inventory script and Yanfly's item script but I just can't figure it out. D'you happen to know of any scripts that might be able to do something like this?

3. You can do this by leaving the skill list for that class empty and use a conditional branch to check if the character already knows 4 skills. If she does not, she learns a new skill, if she does, she has to forget one of them (you have to do this using conditional branches). Based on how you do this, it might not look that great. If you want it to look better you should use a little script for this.

Could you show me how to do this? I'm looking in both Conditional Branch and Variables and not seeing any way to define the *number* of skills an actor has; just *if* they have *a* specific skill.

This can be done via damage formula: you subtract a variable (the number of uses) to damage dealt and then increases that variable. When that variable reaches the same value as the weapon ATK, the weapon disappears. Of course, as in point 1, you have to check if that weapon is equipped before subtracting that variable.

This is good. Can you think of any way to show the weapon's remaining "HP" in the name of the weapon?
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,422
Reaction score
601
First Language
Italian
Primarily Uses
RMVXA
D'you happen to know of any scripts that might be able to do something like this?
I do not, I am sorry, but you could check the master script list and see if you find anything similar. Otherwise I am afraid you should ask someone to write that for you (or change to entirely different mechanics for this).

Could you show me how to do this?
Code:
$game_actors[actor_id_goes_here].skills.length >= 4
If I am not wrong this returns true if the actor knows 4 or more skills. Just put it in the "Script" part of your conditional branch and it will check it automatically.

Can you think of any way to show the weapon's remaining "HP" in the name of the weapon?
Code:
module HRK_OW
  W_ID = 10 # change this to be your weapon ID
  TOTAL_USES = 100 # change this to be your weapon total uses
  VAR_ID = 99 # change this to be the variable ID of the variable where you stored the number of uses
end
class RPG::Weapon < RPG::EquipItem
  alias hrk_old_weapon_name name
  def name
    wname = hrk_old_weapon_name
    if (id == HRK_OW::W_ID)
      wname += " #{$game_variables[HRK_OW::VAR_ID]}/#{HRK_OW::TOTAL_USES}
    end
    wname
  end
end

Be aware of the fact that the script I provided only allows you to do that with a single weapon; if you want to do it with multiple weapons, you need a different script (a longer one).
 
Last edited:

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,317
Reaction score
11,738
First Language
English
Primarily Uses
RMVXA
@pathos We always strongly recommend that people post one query per thread, otherwise it gets very confused, very quickly.

I suggest you start a new thread in RGSS3 Script Requests for a script to achieve query 2 and leave that query to one side here.
 

ShinySlowqueen

Veteran
Veteran
Joined
Dec 22, 2015
Messages
49
Reaction score
3
First Language
English
Primarily Uses
RMVXA
This is all excellent. The skills.length script call worked perfectly, though it needed to be "game_actors[X]" rather than "game_actor"

D'you happen to know what a script call would be for the names of the skills that an individual actor knows? I've tried :
$game_actor[3].skills(1)
$game_actors[3].skills(1)
$game_actors[3].skill(1)

Specifically I'm trying to use Fomar's More Choices script for an Ability Change UI, and I'm trying to figure out how to word it properly. Know what I'm doing wrong?

Code:
      $game_message.choices.push(game_actor[3].skills(1))
      $game_message.choices.push(game_actor[3].skills(2))     
      $game_message.choices.push(game_actor[3].skills(3))
      $game_message.choices.push(game_actor[3].skills(4))
 

ShinySlowqueen

Veteran
Veteran
Joined
Dec 22, 2015
Messages
49
Reaction score
3
First Language
English
Primarily Uses
RMVXA
@pathos We always strongly recommend that people post one query per thread, otherwise it gets very confused, very quickly.

I suggest you start a new thread in RGSS3 Script Requests for a script to achieve query 2 and leave that query to one side here.

K, will do. I've updated the original post to make it less confusing.

For future reference, if I need to know six different things like this, is it really ok to make six separate threads?
 

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,317
Reaction score
11,738
First Language
English
Primarily Uses
RMVXA
Yes, separate threads with each one having a meaningful title which gives an indication of the type of question/request you have. That way people will know what the thread is about before opening it, and it also means that if in the future someone has the same query, it will be much easier to find your thread with, hopefully, the solution. Separate threads also mean that you can put each one into the correct section, not all in the same place where some, at least, do not belong.
 

Heirukichi

Veteran
Veteran
Joined
Sep 24, 2015
Messages
1,422
Reaction score
601
First Language
Italian
Primarily Uses
RMVXA
@pathos you are right, I forgot that it is $game_actors and not $game_actor. I already corrected the previous message to show the right code.
 

Latest Threads

Latest Posts

Latest Profile Posts

Fun fact: Digimon is an isekai :kaoswt2:
The problem with being a perfectionist is that you are never done with something.
Our Lore Wizard, Buttercup, just emailed me a draft of one of our in-game lore books, and it's one of my favorites so far. Her books are really bringing a vibrant history to Evergloom!

I've posted it under a spoiler tag called 'A study in 43rd Century Poetry' in our development thread!
Whoops, the corner of my map is as big as GALV's whole demo map xD
wops.PNG
A little more of the CMS. #rm2k #DestinyPatch
QUhhNBK.gif

Forum statistics

Threads
112,324
Messages
1,067,350
Members
145,952
Latest member
CMaroon07
Top