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

Project1

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

[已经过期] 自动状态脚本的一些问题。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
帖子
799
跳转到指定楼层
1
发表于 2013-5-25 23:48:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. module P叔
  2.   #=============参==============数==============设==============定==============
  3.   # 请在下面设定被动技能的ID,当角色拥有该被动技能时才会触发状态附加。
  4.   # 默认设置是127号技能。
  5.     SKILL_ID = 127
  6.   # 请在下面设定附加状态的ID
  7.   # 默认设置是26号状态。
  8.     STATE_ID = 26
  9.   # 请设定HP限定变量的ID,用于控制各项数值。
  10.   # 默认设置是10号变量。
  11.     HP_VARIABLE = 10
  12.   # HP限定变量是类似这样一个特殊的一维数组变量:
  13.    $game_variables[P叔::HP_VARIABLE] = [40,35,0,45]
  14.   # 默认表示当队伍1号的HP小于或等于40才附加状态;当队伍2号的HP小于或等于35才附加状态;
  15.   # 队伍3号无效化,队伍4号的HP小于或等于45才附加状态
  16.   #==============================================================================
  17. #end

  18. class Scene_Base
  19.   
  20.   #--------------------------------------------------------------------------
  21.   # ● 更新画面
  22.   #--------------------------------------------------------------------------
  23.   def update
  24.     auto_state_by_skill                                 # 添加了本句
  25.     update_basic
  26.   end

  27.   #--------------------------------------------------------------------------
  28.   # ● 附加状态  自定义函数
  29.   #--------------------------------------------------------------------------
  30. def auto_state_by_skill
  31.     if $game_variables[P叔::HP_VARIABLE].class == Array # 当HP限定变量才执行
  32.       return if $game_party.members.empty?
  33.       for i in 0...$game_party.members.size
  34.         j = $game_party.members[i]
  35.         j.remove_state(P叔::STATE_ID) if j.hp <= 0      # 死亡时解除状态
  36.         next unless j.skill_learn?($data_skills[P叔::SKILL_ID]) # 没有学会技能则跳过
  37.         # 当hp<=最大hp的百分比时,附加状态STATE_ID,否则就解除
  38.         j.hp <= j.mhp * $game_variables[P叔::HP_VARIABLE][i] / 100.0 ? j.add_state(P叔::STATE_ID) : j.remove_state(P叔::STATE_ID)
  39.       end  
  40.     end  
  41.   end
复制代码
@protosssonny

======================================================================================

这是P叔完本做的一个被动状态的技能,但这个脚本存在一些问题,比如变量中没有TP选项,而且也无法定义不同的被动(至少我脚本水平不高),于是我就修改了一下。
  1. class Scene_Base
  2.   
  3.   #--------------------------------------------------------------------------
  4.   # ● 更新画面
  5.   #--------------------------------------------------------------------------
  6.   def update
  7.     auto_state_by_skill                                 # 添加了本句
  8.     update_basic
  9.   end

  10.   #--------------------------------------------------------------------------
  11.   # ● 附加状态  自定义函数
  12.   #--------------------------------------------------------------------------
  13. def auto_state_by_skill
  14.     $game_actors[4].remove_state(445) if game_actors[4].hp <= 0 #5号(排序是从0开始?)角色死亡时解除445号状态
  15.     $game_actors[4].remove_state(446) if game_actors[4].hp <= 0 #5号角色死亡时解除446号状态
  16.     if $game_actors[4].tp <= 60 && !$game_actors[4].state?(447) #该角色TP不小于60时且状态不是447时
  17.       $game_actors[4].add_state(445) # 加上445号状态
  18.       $game_actors[4].remove_state(446) # 解除446号状态
  19.     elsif
  20.       $game_actors[4].tp > 60 && !$game_actors[4].state?(447) #该角色TP大于60时且状态不是447时
  21.       $game_actors[4].add_state(446)# 加上446号状态
  22.       $game_actors[4].remove_state(445)# 解除445号状态
  23.     elsif
  24.       $game_actors[4].state?(447)#如果该角色状态是447号状态时
  25.       $game_actors[4].remove_state(445) #解除445号状态
  26.       $game_actors[4].remove_state(446) #解除445号状态
  27.     end
  28.   end
  29. end
复制代码
很可惜,脚本报错了,本身我不懂得脚本,不清楚问题所在



另外,我还想做一个光环类物品,当某角色装备上某个防具(光环类装备复数,限定某一个角色),在场上出现时,会给己方角色加上光环(被动状态),当角色不在场上或者更换了其他装备,就移除该状态。该如何判定角色在不在场以及如何全体附加解除状态?

点评

脚本第13行默认是注释掉的,你为什么去掉注释?会报错的。  发表于 2013-5-26 08:33

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4547
在线时间
5229 小时
注册时间
2009-4-29
帖子
14320

贵宾

2
发表于 2013-5-26 08:31:09 | 只看该作者
想做tp的自动状态,只需把def auto_state_by_skill中第40行的hp改成tp,mhp改成mtp。

评分

参与人数 1星屑 +50 收起 理由
Sion + 50 感谢帮忙

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
帖子
799
3
 楼主| 发表于 2013-5-26 10:40:14 | 只看该作者
protosssonny 发表于 2013-5-26 08:31
想做tp的自动状态,只需把def auto_state_by_skill中第40行的hp改成tp,mhp改成mtp。

上面那个注释掉是因为我想直接在脚本内定义,实际上我是上面整个全部注释掉了的

我设置的是达到条件附加状态1,移除状态2,不到达条件则移除状态2,增加状态1.
  1. j.tp <= 60 ? j.add_state(2) + j.remove_state(3)  : j.remove_state(2) +  j.add_state(3)
复制代码
是不是该改成这样?

另外,我想设置设置一个只要某角色装备了某装备,就全体附加状态,这样就是光环类物品,我想原理也是一样。全体附加状态和移除的语句是怎样?


还有,某装备附带的技能算不算学会技能?如果禁用了某技能算不算不学会?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
帖子
799
4
 楼主| 发表于 2013-5-26 23:16:59 | 只看该作者
我发现了错误了,原来是忘记了加$

现在问一个,就是全体附加解除状态的脚本用语是什么?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-24 19:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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