public

Rpg Maker Developers Group

Simple enough for a child, powerful enough for a developer

2 Followers
Preserved forum archive. This topic stores the original first post and locally mirrored RPG Maker Web attachments when available. It is posted by the BMMPlay archive account, not by the original creator.

Original Source

  • Original title: KBribe XP
  • Original author: kyonides
  • Original date: July 14, 2022
  • Source thread: https://forums.rpgmakerweb.com/threads/kbribe-xp.149467/
  • Source forum path: Game Development Engines > Ruby Game System (RGSS) Scripts > RGSS Scripts (RMXP)

Summary

KBribe XP by Kyonides Arkanthes​ Introduction Admit it, there are times when you wish that you could simply bribe your foes during battle.

Archived First Post

KBribe XP

by Kyonides Arkanthes

Introduction

Admit it, there are times when you wish that you could simply bribe your foes during battle.
Well, now you can do it!
Oh and it is also possible to get an estimate of how much it might cost you!

By the way, it is not a Plug & Play script because you can customize several things like where to show the currency symbol, etc. So do not forget to check out the KBribe module, guys!

The Script

Code:
# * KBribe XP
#   Scripter : Kyonides Arkanthes
#   v1.0.0 - 2022-07-14
# * Non Plug & Play Script * #

# Now you can bribe your foes during battles!
# You can learn how much it might cost the party to bribe a given foe.
# Just check out the skill description to find it out. ;)
# It is also possible to exclude certain monsters like bosses if needed.

# In the KBribe module you can find several CONSTANTS where you can set the
# initial values for the hit rate, damage percent, etc.

# * Script Calls * #

# $game_party.bribe_hit = Percent
# $game_party.bribe_gold_percent = Percent
# $game_party.bribe_dmg_percent = Percent
# $game_party.bribe_gold_min = Coins
# $game_party.bribe_show_dmg_pop = true  or  false

module KBribe
  SKILL_ID = 81
  # Bribing Hero's Failure Animation
  ANIMATION_ID = 101
  START_HIT_RATE = 33
  START_GOLD_PERCENT = 5
  FAILURE_DMG_PERCENT = 25
  GOLD_MIN = 50
  SHOW_DMG_POP_UP = true
  CURRENCY_SYMBOL_FIRST = false
  SKILL_COST_TEXT = "Est. Cost: "
  SUCCESS_LABEL = "Bribed"
  # Add as many MonsterID's as needed
  EXCLUDE_BOSSES = []
  extend self
  @battlers = []
  @escaped = []
  def add(battler, do_escape)
    @battlers << battler
    @escaped << do_escape
  end

  def battlers_reaction
    @battlers.each do |btlr|
      btlr.animation_id = ANIMATION_ID
      btlr.animation_hit = true
    end
  end

  def hurt!
    @battlers.size.times do |n|
      btlr = @battlers[n]
      btlr.damage_pop = $game_party.bribe_show_dmg_pop
      btlr.escape if @escaped[n]
    end
    @battlers.clear
    @escaped.clear
  end

  def skill_description
    text = " " + KBribe::SKILL_COST_TEXT
    if CURRENCY_SYMBOL_FIRST
      text += $data_system.words.gold + @amount.to_s
    else
      text += @amount.to_s + $data_system.words.gold
    end
  end
  def set_bribe_estimate() @amount = $game_party.calculate_bribe end
  def exclude?(mob_id) !EXCLUDE_BOSSES.include?(mob_id) end
end

class Game_Party
  alias :kyon_bribe_gm_pty_init :initialize
  def initialize
    kyon_bribe_gm_pty_init
    @bribe_hit = KBribe::START_HIT_RATE
    @bribe_gold_percent = KBribe::START_GOLD_PERCENT
    @bribe_dmg_percent = KBribe::FAILURE_DMG_PERCENT
    @bribe_gold_min = KBribe::GOLD_MIN
    @bribe_show_dmg_pop = KBribe::SHOW_DMG_POP_UP
  end

  def calculate_bribe
    amount = (@gold / 100 * @bribe_gold_percent).round
    amount += amount * (rand(25) + 1) / 100
  end

  def pay_bribe!
    return false if @bribe_gold_min > @gold
    amount = calculate_bribe
    lose_gold(amount)
    true
  end
  attr_accessor :bribe_hit, :bribe_gold_percent
  attr_accessor :bribe_dmg_percent, :bribe_gold_min, :bribe_show_dmg_pop
end

class Game_Battler
  alias :kyon_bribe_gm_btlr_skill_fx :skill_effect
  def check_bribe(user)
    hit = $game_party.pay_bribe!
    hit |= rand(100) < $game_party.bribe_hit
    hit |= KBribe.exclude?(@enemy_id)
    if hit
      KBribe.add(self, hit)
      @damage = KBribe::SUCCESS_LABEL
    else
      user.damage = (user.hp / 100 * $game_party.bribe_dmg_percent).round
      user.hp -= user.damage
    end
  end

  def skill_effect(user, skill)
    return check_bribe(user) if self.enemy? and KBribe::SKILL_ID == skill.id
    kyon_bribe_gm_btlr_skill_fx(user, skill)
  end
  def actor?() @actor_id != nil end
  def enemy?() @enemy_id != nil end
end

class Window_Skill
  def update_help
    a_skill = self.skill
    if a_skill.nil?
      @text = ""
    else
      @text = a_skill.description.dup
      @text += KBribe.skill_description if KBribe::SKILL_ID == a_skill.id
    end
    return if @text == @last_text
    @help_window.set_text(@text)
    @last_text = @text
  end
end

class Scene_Battle
  alias :kyon_backfire_scn_btl_start_skill_sel :start_skill_select
  alias :kyon_backfire_scn_btl_up_ph4_s4 :update_phase4_step4
  alias :kyon_backfire_scn_btl_up_ph4_s5 :update_phase4_step5
  def start_skill_select
    kyon_backfire_scn_btl_start_skill_sel
    KBribe.set_bribe_estimate
  end

  def update_phase4_step4
    kyon_backfire_scn_btl_up_ph4_s4
    KBribe.battlers_reaction
  end

  def update_phase4_step5
    kyon_backfire_scn_btl_up_ph4_s5
    KBribe.hurt!
  end
end

DOWNLOAD DEMO

Terms & Conditions

Include my nickname in your game credits!
Free for use in non commercial games.
Contact me if you want to go commercial.
It is an inexpensive script so you do not have to worry about this.

Downloads / Referenced Files

Log in to download

Log in, then follow the RPG Maker Developers Group to see these download links.

Log in to download

License / Terms Note

Include my nickname in your game credits! Free for use in non commercial games. Contact me if you want to go commercial. It is an inexpensive script so you do not have to worry about this.

Creator Claims / Removal

If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.

#rgss#script-archive

Replies (0)

No replies yet.

0 replies 1 view

Log in to reply.

User Avatar