扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 93|回复: 0

[转载发布] 赌命轮盘

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-5-17 18:27
  • 签到天数: 196 天

    连续签到: 1 天

    [LV.7]常住居民III

    2624

    主题

    838

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

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

    灌水之王

    发表于 4 天前 | 显示全部楼层 |阅读模式
    1,赌命轮盘

    敌我双方同时有状态18,则血量低于50%时,有30%几率即死

    RUBY 代码
    1. #==============================================================================
    2. # ** Game_Battler
    3. #------------------------------------------------------------------------------
    4. #  本类处理战斗者。此类作为 Game_Actor 类和 Game_Enemy 类的超类使用。
    5. #==============================================================================
    6. class Game_Battler
    7.   #--------------------------------------------------------------------------
    8.   # * 判定即死状态 (覆盖原方法以添加自定义逻辑)
    9.   #--------------------------------------------------------------------------
    10.   alias original_slip_damage? slip_damage?
    11.   def slip_damage?
    12.     # 首先执行原有的即死/持续伤害判定
    13.     if original_slip_damage?
    14.       returntrue
    15.     end
    16.     # 自定义逻辑:检查状态 18
    17.     # 条件:
    18.     # 1. 当前战斗者拥有状态 18
    19.     # 2. 对手(如果存在)也拥有状态 18
    20.     # 3. 当前 HP < 最大 HP 的 50%
    21.     # 4. 随机数 < 30% (即 0, 1, 2 在 0-9 之间)
    22.     if@states.include?(18)
    23.       # 获取对手引用
    24.       opponent = nil
    25.       ifself.is_a?(Game_Actor)
    26.         # 如果是演员,对手通常是当前的敌人目标,这里简化为检查是否存在任意敌人也有状态18
    27.         # 在 RMXP 默认战斗中,通常是一对多或多对一,这里假设“双方”指战场上的对立阵营
    28.         $game_troop.enemies.eachdo |enemy|
    29.           if enemy.exist? && enemy.states.include?(18)
    30.             opponent = enemy
    31.             break
    32.           end
    33.         end
    34.       elsifself.is_a?(Game_Enemy)
    35.         # 如果是敌人,检查演员队伍中是否有状态18
    36.         $game_party.actors.eachdo |actor|
    37.           if actor.exist? && actor.states.include?(18)
    38.             opponent = actor
    39.             break
    40.           end
    41.         end
    42.       end
    43.       # 如果找到了对立阵营也有状态18的单位
    44.       if opponent != nil
    45.         # 检查血量是否低于 50%
    46.         ifself.hp > 0 && self.hp < (self.maxhp / 2.0)
    47.           # 30% 几率即死
    48.           ifrand(10) < 3
    49.             # 设置为即死状态 (状态 ID 通常为 1,具体取决于数据库设置,这里直接扣血至0或添加即死状态)
    50.             # 更稳妥的方式是添加即死状态,让系统处理死亡
    51.             self.add_state(1)# 假设状态1是即死/战斗不能
    52.             returntrue
    53.           end
    54.         end
    55.       end
    56.     end
    57.     returnfalse
    58.   end
    59. end
    复制代码


    2,一次性装备战斗一次就销毁

    3,无法装备的装备,纪念品武器

    4,偷取敌人技能为我所用

    5,李代桃僵,被攻击的人不受伤,有李代桃僵状态的人受伤,或者一人分摊一半


                本帖来自P1论坛作者y967,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=498995  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

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

    本版积分规则

    关闭

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-6-3 13:03 , Processed in 0.104238 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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