设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1999|回复: 9
打印 上一主题 下一主题

[已经解决] 【仿宝可梦】濒死时减少好感变量

[复制链接]

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
跳转到指定楼层
1
发表于 2020-1-12 02:34:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 alexncf125 于 2024-1-5 22:26 编辑

https://rpg.blue/thread-399162-1-1.html里的方法,未濒死就把变量减1了
战斗全灭的情形
战斗中止的情形
战斗外的情形

Lv5.捕梦者

梦石
10
星屑
39587
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

2
发表于 2020-1-12 10:32:44 | 只看该作者
RUBY 代码复制
  1. class Game_Actor
  2.  
  3.   alias initialize_for_count_actor_death initialize
  4.   def initialize(actor_id)
  5.     initialize_for_count_actor_death(actor_id)
  6.     $game_variables[actor_id] = 0
  7.   end
  8.  
  9.   def add_state(state_id)
  10.     if state_id == death_state_id && !death_state?
  11.       BattleManager.count_actor_death(@actor_id)
  12.     end
  13.     super
  14.   end
  15.  
  16. end
  17.  
  18. module BattleManager
  19.  
  20.   @reserved_death_count = {}
  21.  
  22.   def self.count_actor_death(actor_id)
  23.     if $game_party.in_battle
  24.       @reserved_death_count[actor_id] ||= 0
  25.       @reserved_death_count[actor_id] += 1
  26.     else
  27.       $game_variables[actor_id] -= 1
  28.     end
  29.   end
  30.  
  31.   class << self
  32.  
  33.     alias battle_end_for_count_actor_death battle_end
  34.     def battle_end(result)
  35.       @reserved_death_count.each do |k, v|
  36.         $game_variables[k] -= v
  37.       end
  38.       @reserved_death_count.clear
  39.       battle_end_for_count_actor_death(result)
  40.     end
  41.  
  42.   end
  43. end


脚本如上
不过要注意,这里用的是角色编号来控制对应的变量,
也就是说你用了N号角色,第N号变量就不要拿来做其他用途了

评分

参与人数 2星屑 +50 +1 收起 理由
VIPArcher + 50 认可答案
alexncf125 + 1 认可答案

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
3
 楼主| 发表于 2020-1-12 10:44:04 | 只看该作者
本帖最后由 alexncf125 于 2020-1-12 10:50 编辑
也就是说你用了N号角色,第N号变量就不要拿来做其他用途了


1.在对4号角色使用某道具时,4号变量减10
2.在某事件里把4号变量加5
3.在其它脚本里把4号变量乘2

以上在战斗里和战斗外都不可以做?

点评

原來是腳本插入的位置不正確Orz  发表于 2020-1-13 08:32
不好意思,好像是我的工程有問題,要時間排查排查  发表于 2020-1-13 08:20
話說有bug,被敵人打死時,變量沒減1的說.  发表于 2020-1-13 08:16
Game_Actor本身没有定义add_state,它的add_state完全继承自Game_Battler,因此只要加了super就可以重新添加内容  发表于 2020-1-12 16:29
请教第9至14行,不用alias,不会覆盖了原先的方法吗?  发表于 2020-1-12 11:33
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
4
 楼主| 发表于 2020-1-12 18:44:43 | 只看该作者
本帖最后由 alexncf125 于 2020-8-17 03:19 编辑

本層已刪
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 14:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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