for i in 1..51 $game_variables[i]=[] #这其实就是将$game_variables[i]声明成了一个二维数组,所以下面可以直接用。 end
寒凌天 发表于 2019-10-22 00:11
所谓局部变量,就是只能很小范围内使用的临时变量,如果超出范围的话,你这么搞会读取不到的。
比如你右键 ...
class Game_Battler attr_accessor :skill_count # skill_count # 技能次数 #-------------------------------------------------------------------------- # ● 返回技能次数哈希表 #-------------------------------------------------------------------------- def skill_count return @skill_count || {} end end
soulsaga 发表于 2019-10-23 00:42
class Game_Battler
attr_accessor :skill_count # skill_count # ...
taeckle 发表于 2019-10-23 00:16
那要是我想读取第18角色在战斗中使用第63号技能的次数该怎么搞啊,
比如说这个例子:
当第18号角色使用第 ...
i =$a/100 #用获取数量除以10,由于是整数变量,获取值必然也是整数,会自动删掉小数点后面的数字。(不会四合五入,而是全舍) if $game_variables[18][101]==nil #如果这个变量一开始没被赋值过,那值为nil,为了避免处理减法时报错,赋值成0 $game_variables[18][101]=0 end if i>=10 #一共可以加10次 i=10 end if $game_variables[18][101]>=10 #这句理论上讲应该是不需要的,为了避免出现负数BUG还是加上吧。 $game_variables[18][101]=10 end i-=$game_variables[18][101] #用i减去曾经加过的数值,避免重复增加攻击力 $game_variables[18][101]+=i #把此次增加的值,装进计算变量 $game_actors[18].atk+=i #增加相应的力量值,据我所知攻击力是通过装备计算出来的值,不是直接靠变量操作的(修改属性我也不是很懂,你也可以问问别人),所以我这里加的是力量。
ppspssss 发表于 2019-10-21 10:30
看楼主問題就知道楼主根本不知道局部變量是什么,建议你弄清楚局部变量是什么再来问,还有实例變量 ,
有@的 ...
QQ图片20191023111914.png (9.46 KB, 下载次数: 27)
soulsaga 发表于 2019-10-23 00:42
class Game_Battler
attr_accessor :skill_count # skill_count # ...
class Game_Battler attr_accessor :skill_count # skill_count # 技能次数 alias 技能次数初始化 initialize def initialize 技能次数初始化 #@skill_count = {} end #-------------------------------------------------------------------------- # ● 返回技能次数哈希表 #-------------------------------------------------------------------------- def skill_count return @skill_count || {} end end #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- alias 技能结果 make_skill_action_result def make_skill_action_result 技能结果 count = @active_battler.is_a?(Game_Actor) ? @active_battler.skill_usage_count(@skill.id) : 0 @active_battler.increase_skill_use_times(@skill.id) if @active_battler.is_a?(Game_Actor) #p @active_battler.skill_usage_count(@skill.id)*10 #p $game_actors[1].skill_usage_count(57) end end #============================================================================== class Game_Actor attr_accessor :skill_use_data# 技能次数 #-------------------------------------------------------------------------- def skill_use_data return @skill_use_data || {} end #-------------------------------------------------------------------------- def skill_usage_count(skill_id) return skill_use_data[skill_id] || 0 end #-------------------------------------------------------------------------- def increase_skill_use_times(skill_id, n=nil) @skill_use_data ||= {} count = skill_usage_count(skill_id) @skill_use_data[skill_id] = [count + (n || 1), 0].max end end #==============================================================================
芯☆淡茹水 发表于 2019-10-23 12:40
XP 默认脚本,,添加功能非常不方便。
要自动增加使用次数,只有加在 战斗 里,至于菜单里使用技能增加次数 ...
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |