设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 75|回复: 0

[转载发布] Bless & Kurse XP

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9015

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58751
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68660

    灌水之王

    发表于 2026-7-27 13:03:03 | 显示全部楼层 |阅读模式
    Bless & Kurse XP

    by Kyonides


    Introduction

    Cast a skill or consume an item that will summon some unknown being with its own agenda.
    Will the heroes or the troopers be blessed or cursed by that mysterious meddler?


    NOTES

    Set ITEM_ID or SKILL_ID to 0 if you wish to disable any of them.
    ENEMY_AS_SUMMON_IDS holds the ID's for a good and a evil being (an enemy in the database).

    Spoiler: 2 Screenshots
    [/quote]

    Spoiler: The Script[quote]                Ruby:       
    1. # * Bless & Kurse XP * #
    2. # - Not a Plug & Play Script - #
    3. #   Scripter : Kyonides
    4. #   v1.0.0 - 2025-09-24
    5. # Cast a skill or consume an item that will summon some unknown being with
    6. # its own agenda. Will the heroes or the troopers be blessed or cursed by
    7. # that mysterious meddler?
    8. # Set ITEM_ID or SKILL_ID to 0 if you wish to disable any of them.
    9. # ENEMY_AS_SUMMON_IDS holds the ID's for a good and a evil being, both are
    10. # enemies available on the DB.
    11. module BlessKurse
    12.   ITEM_ID  = 0
    13.   SKILL_ID = 24
    14.   ENEMY_AS_SUMMON_IDS = { :good => 24, :evil => 23, :meh => 20 }
    15.   ITEM_PERCENT  = { :dmg => 80,  :heal => 150 }
    16.   SKILL_PERCENT = { :dmg => 120, :heal => 100 }
    17.   module BKBattler
    18.     def base_maxhp() 100 end
    19.     def base_maxsp() 100 end
    20.     attr_accessor :battler_name, :battler_hue
    21.     attr_accessor :screen_x, :screen_y, :screen_z
    22.   end
    23.   module BKSprite
    24.     def summon!
    25.       @battler_name = @battler.battler_name
    26.       @battler_hue = @battler.battler_hue
    27.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
    28.       @width = bitmap.width
    29.       @height = bitmap.height
    30.       @battler.screen_x = (640 - @width) / 2
    31.       @battler.screen_y = (320 - @height) / 2
    32.       self.x = @battler.screen_x
    33.       self.y = @battler.screen_y
    34.       self.z = @battler.screen_z
    35.       self.opacity = 255
    36.       self.visible = true
    37.       @battler_visible = true
    38.     end
    39.   end
    40. end
    41. module RPG
    42.   class Item
    43.     def recover_list
    44.       [@recover_hp, @recover_hp_rate, @recover_sp, @recover_sp_rate]
    45.     end
    46.   end
    47. end
    48. class Spriteset_Battle
    49.   def make_bk_summon(summon)
    50.     summon.screen_z = @enemy_sprites[-1].z - 50
    51.     @bk_summon = Sprite_Battler.new(@viewport1, summon)
    52.     @enemy_sprites << @bk_summon
    53.     @bk_summon.extend BlessKurse::BKSprite
    54.     @bk_summon.summon!
    55.   end
    56.   def dispose_bk_summon
    57.     @bk_summon.dispose
    58.     @enemy_sprites.pop
    59.   end
    60. end
    61. class Scene_Battle
    62.   alias :kyon_bless_kurse_scn_btl_st_trgt_btlrs :set_target_battlers
    63.   alias :kyon_bless_kurse_scn_btl_mk_skl_act_res :make_skill_action_result
    64.   alias :kyon_bless_kurse_scn_btl_mk_itm_act_res :make_item_action_result
    65.   alias :kyon_bless_kurse_scn_btl_up_ph4_stp3 :update_phase4_step3
    66.   alias :kyon_bless_kurse_scn_btl_up_ph4_stp4 :update_phase4_step4
    67.   alias :kyon_bless_kurse_scn_btl_up_ph4_stp5 :update_phase4_step5
    68.   alias :kyon_bless_kurse_scn_btl_up_ph4_stp6 :update_phase4_step6
    69.   def set_target_battlers(scope)
    70.     change_bk_item_skill
    71.     kyon_bless_kurse_scn_btl_st_trgt_btlrs(scope)
    72.   end
    73.   def change_bk_sign
    74.     @bk_neutral = rand(100) < 50
    75.     @bk_sign = rand(100) < 50 ? 1 : -1
    76.   end
    77.   def change_bk_item_skill
    78.     return if @bless_kurse
    79.     if @skill
    80.       return if BlessKurse::SKILL_ID != @skill.id
    81.       @old_skill = @skill.dup
    82.       change_bk_sign
    83.       change_bk_skill_power
    84.     else
    85.       return if BlessKurse::ITEM_ID != @item.id
    86.       @old_item = @item.dup
    87.       change_bk_sign
    88.       change_bk_item_power
    89.     end
    90.     @bless_kurse = true
    91.   end
    92.   def change_bk_skill_power
    93.     @skill = @old_skill.dup
    94.     value = @bk_sign * @skill.power
    95.     key = value > 0 ? :dmg : :heal
    96.     percent = BlessKurse::SKILL_PERCENT[key]
    97.     @skill.power = value * percent / 100
    98.   end
    99.   def change_bk_item_power
    100.     @item = @old_item.dup
    101.     perc = BlessKurse::ITEM_PERCENT
    102.     key = @bk_sign * @item.recover_hp >= 0 ? :heal : :dmg
    103.     @item.recover_hp = @bk_sign * @item.recover_hp * perc[key] / 100
    104.     key = @bk_sign * @item.recover_hp_rate >= 0 ? :heal : :dmg
    105.     @item.recover_hp_rate = @bk_sign * @item.recover_hp_rate * perc[key] / 100
    106.     key = @bk_sign * @item.recover_sp >= 0 ? :heal : :dmg
    107.     @item.recover_sp = @bk_sign * @item.recover_sp * perc[key] / 100
    108.     key = @bk_sign * @item.recover_sp_rate >= 0 ? :heal : :dmg
    109.     @item.recover_sp_rate = @bk_sign * @item.recover_sp_rate * perc[key] / 100
    110.     value = @item.recover_list.inject {|a,b| a + b }
    111.     @bk_heal = (@bk_sign * value > 0)
    112.   end
    113.   def make_skill_action_result
    114.     kyon_bless_kurse_scn_btl_mk_skl_act_res
    115.     make_skill_bk_action_result
    116.   end
    117.   def make_skill_bk_action_result
    118.     return if @phase4_step == 1 or !@bless_kurse
    119.     case @skill.scope
    120.     when 2
    121.       summon_key = @skill.power < 0 ? :evil : :good
    122.     when 4
    123.       summon_key = @skill.power < 0 ? :good : :evil
    124.     end
    125.     @skill = @old_skill
    126.     if @bk_neutral
    127.       summon_key = :meh
    128.     else
    129.       @bk_sign *= -1
    130.     end
    131.     @bk_summon_id = BlessKurse::ENEMY_AS_SUMMON_IDS[summon_key]
    132.     change_bk_skill_power
    133.     battler = @active_battler
    134.     @old_targets = @target_battlers
    135.     scope = @skill.scope == 2 ? 4 : 2
    136.     @target_battlers = []
    137.     set_target_battlers(scope)
    138.     @bk_battlers = @target_battlers
    139.     @bk_battlers.each {|target| target.skill_effect(battler, @skill) }
    140.     @target_battlers = @old_targets
    141.     @old_skill = @bk_sign = nil
    142.   end
    143.   def make_item_action_result
    144.     kyon_bless_kurse_scn_btl_mk_itm_act_res
    145.     return if @phase4_step == 1 or !@bless_kurse
    146.     make_item_bk_action_result
    147.   end
    148.   def make_item_bk_action_result
    149.     return if @phase4_step == 1 or !@bless_kurse
    150.     case @item.scope
    151.     when 2
    152.       summon_key = @bk_heal ? :evil : :good
    153.     when 4
    154.       summon_key = @bk_heal ? :good : :evil
    155.     end
    156.     @item = @old_item
    157.     if @bk_neutral
    158.       summon_key = :meh
    159.     else
    160.       @bk_sign *= -1
    161.     end
    162.     @bk_summon_id = BlessKurse::ENEMY_AS_SUMMON_IDS[summon_key]
    163.     change_bk_item_power
    164.     @old_targets = @target_battlers
    165.     scope = @item.scope == 2 ? 4 : 2
    166.     @target_battlers = []
    167.     set_target_battlers(scope)
    168.     @bk_battlers = @target_battlers
    169.     @bk_battlers.each {|target| target.item_effect(@item) }
    170.     @target_battlers = @old_targets
    171.     @old_item = @bk_sign = nil
    172.   end
    173.   def update_phase4_step3
    174.     kyon_bless_kurse_scn_btl_up_ph4_stp3
    175.     make_bless_kurse_summon
    176.   end
    177.   def make_bless_kurse_summon
    178.     return unless @bless_kurse
    179.     summon = $data_enemies[@bk_summon_id]
    180.     unless @bk_summon
    181.       @bk_summon = Game_Battler.new
    182.       @bk_summon.extend BlessKurse::BKBattler
    183.       @bk_summon.hp = 100000
    184.     end
    185.     @bk_summon.hidden = false
    186.     @bk_summon.battler_name = summon.battler_name
    187.     @bk_summon.battler_hue = summon.battler_hue
    188.     @spriteset.make_bk_summon(@bk_summon)
    189.     if @animation1_id == 0
    190.       @bk_summon.white_flash = true
    191.     else
    192.       @bk_summon.animation_id = @animation1_id
    193.       @bk_summon.animation_hit = true
    194.     end
    195.   end
    196.   def update_phase4_step4
    197.     kyon_bless_kurse_scn_btl_up_ph4_stp4
    198.     return unless @bless_kurse
    199.     for target in @bk_battlers
    200.       target.animation_id = @animation2_id
    201.       target.animation_hit = (target.damage != "Miss")
    202.     end
    203.   end
    204.   def update_phase4_step5
    205.     kyon_bless_kurse_scn_btl_up_ph4_stp5
    206.     bk_summon_exit
    207.   end
    208.   def bk_summon_exit
    209.     return unless @bless_kurse
    210.     @bk_battlers.each {|target| target.damage_pop = target.damage != nil }
    211.     @bk_summon.hidden = true
    212.     @bk_battlers.clear
    213.   end
    214.   def update_phase4_step6
    215.     kyon_bless_kurse_scn_btl_up_ph4_stp6
    216.     bk_dispose_summon
    217.   end
    218.   def bk_dispose_summon
    219.     return unless @bless_kurse
    220.     @spriteset.dispose_bk_summon
    221.     @bless_kurse = @bk_heal = @bk_summon_id = nil
    222.   end
    223. end
    复制代码




    Terms & Conditions

    Free as in beer for non commercial games.
    Include my nickname in your game credits.
    Mention this forum in your game credits as well.
    That's it!



    本贴来自国际rpgmaker官方论坛作者:kyonides处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/bless-kurse-xp.180221/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-4 11:51 , Processed in 0.141176 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表