PETE_MW'S PROFILE

Search

Filter

Alchemist: Naia

This is interesting, and I'd like to see what you do with it once the contest is over, so I'll subscribe.

With the download you've got up at the moment, I had to work around a missing resource error (Graphics/Characters/Vehicle) before I could start a game.

I also have some nitpicks:

  • There are a few typos -- 'tutelage' is misspelled in the introduction, and 'visitor' is misspelled in Naia's dialogue at the start of day 5.
  • Some of the scrolling text you've used is getting cut off.
  • I think you'll get some complaints about day 2, since whether you win or not looks almost entirely luck-based, but it seemed like losing was very unlikely anyway, so I'll give it a pass.
  • The 'Talk' command could be misleading -- I'd have preferred 'Done' or 'Finish' -- but there's a warning and a chance to go back, so I don't think it's actually a real problem.

EDITS: Added another nitpick, and mentioned a more serious issue.

[Poll] What type of Encounter Type is better in your opinion?

I put myself down as 'other', because I don't think it really matters.

The issue is that, at some point in the game, the player will get tired of your encounters -- more varied and better designed encounters can stave that moment off, but I don't think you can stop it from happening altogether. If they're still being forced down the player's throat when that happens, then that will reflect poorly on your game.

Random encounters can be annoying because they force themselves down the player's throat, but there are plenty of ways to fix that -- make suppression gear easy to acquire, or make areas clearable, or use the Pokemon option as suggested above.

Touch encounters -- and other minigame encounters -- don't normally force themselves down the player's throat, which is a point in their favour, although you do need to put a little care into your maps.

However, whatever strategy you use, the issue is forcing encounters down the player's throat, and there is more to it than just how the encounters are triggered. Does the player need more power than the plot gives them in order to follow the game's plot? If so, you're forcing encounters down their throat.

Damage Formula - How to make it work?

Well, unless you've changed it, it should be
Formulae.physical_damage(a, b)

As for your other problem, that would be my sleep-deprived shenanigans coming into play. I'll have it fixed soon.

EDIT: Delete the second script I gave you, and replace it with this:

class Game_Battler
  # Overwrites method Game_Battler#make_damage_value
  def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)
    value *= item_element_rate(user, item)
    value *= pdr if item.physical?
    value *= mdr if item.magical?
    value *= rec if item.damage.recover?
    value = Formulae.critical_damage(user, self) if item.physical? && @result.critical
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
    @result.make_damage(value.to_i, item)
  end
end

class Game_ActionResult
# New damage_uncapped attribute
  attr_writer :damage_uncapped
  def damage_uncapped?
    @damage_uncapped
  end

  # Overwrites Game_ActionResult#hp_damage
  def hp_damage
    (self.damage_uncapped?) ?
      @hp_damage : Formulae.clamp_damage(@hp_damage, @battler.mhp, @battler.hp)
  end

  # Overwrites Game_ActionResult#hp_drain
  def hp_drain
    (self.damage_uncapped?) ?
      @hp_damage : Formulae.clamp_damage(@hp_drain, @battler.mhp, @battler.hp)
  end


# Redefines method Game_ActionResult#clear
  alias_method :original_abe_clear, :clear
  def clear
    original_abe_clear()
    @damage_uncapped = false
  end
end

This also lays the groundwork for skills that ignore the damage cap.

Damage Formula - How to make it work?

That script name and line number point directly to the method that applies the critical multiplier, so I think that is your problem.

Damage Formula - How to make it work?

I've run both of the scripts I gave you through a syntax checker, but neither of them is long enough for that error message to make any sense.

Did you edit one of the default scripts, above 'Materials'?

Damage Formula - How to make it work?

I don't know how to implement it off the top of my head, but it should be possible, yes.

Damage Formula - How to make it work?

The first and last bits go into a section under 'materials' in the script editor, yes. You can put them together, or paste each into its own section. The second script needs to go before any scripts you're getting from someone else, otherwise one of them might end up breaking.

The middle two parts are what you need to enter into the damage formula boxes in order to use these. For magical damage, replace X with whatever its actual value is for this spell.

If you only want the 20% hp thing to apply to PCs, then you'll need this changed a little more.

Damage Formula - How to make it work?

If you're going to use these three formulae for nearly every skill in the game, you might want to consider baking them into a script like this:

module Formulae
  module_function

  def physical_damage(a, b, v = $game_variables)
    (((10 * rand) + 15) * (a.atk / b.def))
  end

  def magic_damage(spellpower, a, b, v = $game_variables)
    (spellpower * ((0.2 * rand) + 1.6) * (a.mat / b.mdf))
  end

  def critical_damage(a, b, v = $game_variables)
    (((10 * rand) + 35) * (a.atk / b.def))
  end

  def clamp_damage(damage, mhp, hp)
    if hp * 5 >= mhp then
      [damage, hp - 1].min
    else
      damage
    end
  end
end

In the actual box for a skill where it prompts you to enter a damage formula, you would then enter something like:

Formulae.physical_damage(a, b)

or

Formulae.magical_damage(X, a, b)

(You'll need to set the variance to zero, as well).

This script should give you damage that's fairly close to the formulae you asked for, and also lays the groundwork for the rest of it.

To get critical hits working, and to prevent damage from killing someone if they have at least 20% of their health, this might work:

class Game_Battler
  def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)
    value *= item_element_rate(user, item)
    value *= pdr if item.physical?
    value *= mdr if item.magical?
    value *= rec if item.damage.recover?
    value = Formulae.critical_damage(user, self) if item.physical? && @result.critical
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
    @result.make_damage(value.to_i, item)
  end

  def execute_damage(user)
    if damage = @result.hp_damage > 0 then
      damage = Formulae.clamp_damage(damage, self.mhp, self.hp)
      on_damage(damage)
    end
    self.hp -= @result.hp_damage
    self.mp -= @result.mp_damage
    user.hp += @result.hp_drain
    user.mp += @result.mp_drain  
  end
end

Again, I haven't tested this, but I think it should sort you out.

EDIT: I had to change this up a little -- I completely forgot that the damage formula is dealt with before the game assesses elemental resistances and vulnerabilities. This amended script doesn't have any mistakes I know of, but again, I haven't tested it.

EDIT 2: These scripts are very quick and dirty. You'll probably need to place them before any other scripts that affect the battle system -- if you don't, then those other scripts might break.

Introducing myself...

Thanks. I'll try not to submit anything that'll make you regret saying that.

Introducing myself...

Hi, I'm Pete.

I've been lurking here for a while now, and I thought I might as well sign up.

So far, I've only really played around a bit with Ace, and I'm not a practised artist or writer, so it will be a while before you can expect me to come up with anything particularly revolutionary and ground breaking.

I apologise in advance for any horrors I inflict upon you in the meantime.
Pages: first prev 123 last