Project1

标题: 怎么用脚本写角色装备某装备的条件分歧? [打印本页]

作者: chd114    时间: 2013-6-10 18:54
标题: 怎么用脚本写角色装备某装备的条件分歧?
条件分歧:角色1为25号防具使用中
此分歧要用什么脚本才能写出来呢?@hcm @hys111111 @癫狂侠客 @joe5491  
作者: 认真的学    时间: 2013-6-10 19:10
  1. $game_actors[1].armor1_id==25||$game_actors[1].armor2_id==25||$game_actors[1].armor3_id==25||$game_actors[1].armor4_id==25
复制代码
不过条件分歧里也有这个选项
作者: chd114    时间: 2013-6-10 21:12
认真的学 发表于 2013-6-10 19:10
不过条件分歧里也有这个选项

我那是18种装备···你这条件分歧我写不了的···
作者: chd114    时间: 2013-6-10 21:30
认真的学 发表于 2013-6-10 19:10
不过条件分歧里也有这个选项

就是脚本写出来完全要失效啊···因为太长了RM的引擎读取不到
作者: chd114    时间: 2013-6-10 22:00
认真的学 发表于 2013-6-10 19:10
不过条件分歧里也有这个选项

脚本编辑器里面写无效
作者: wwwcctvty    时间: 2013-6-10 22:43
怎么成版务了、、、、、、、、话说楼主的工程看着头大
作者: 512195574    时间: 2013-6-10 23:20
本帖最后由 512195574 于 2013-6-10 23:24 编辑
chd114 发表于 2013-6-10 21:12
我那是18种装备···你这条件分歧我写不了的···


刚刚写了个方法,后来发现想错了,就擦了,这个用循环还写不了
因为RGSS不能定义字符……
$game_actors[1].armor1_id==25……中的armor1中的1循环不能
作者: chd114    时间: 2013-6-11 06:37
512195574 发表于 2013-6-10 23:20
刚刚写了个方法,后来发现想错了,就擦了,这个用循环还写不了
因为RGSS不能定义字符……
$game_actors[1 ...

armor1是装备类型···但是我的装备类型没有armor1···
作者: hys111111    时间: 2013-6-11 08:26
chd114 发表于 2013-6-10 22:00
脚本编辑器里面写无效


那你换行吗。
  1. if $game_actors[1].armor_1 == 25 or \
  2.    $game_actors[1].armor_2 == 25 or \
  3.    $game_actors[1]……
复制代码
没有armor的那种类型,就换成别的。像het、foot什么的。
作者: chd114    时间: 2013-6-11 10:36
hys111111 发表于 2013-6-11 08:26
那你换行吗。没有armor的那种类型,就换成别的。像het、foot什么的。

17种防具呢···end又必须和if在一个脚本框里,脚本编辑器里写这个没效果···
作者: 认真的学    时间: 2013-6-11 10:56
本帖最后由 认真的学 于 2013-6-11 11:06 编辑

防具类型开一个全局常量数组存着,脚本框里for一遍应该就可以写得下了。
至于如何通过字符串获取变量,可以写一个函数
例子:
  1. class A
  2.   attr_accessor :armor1_id = 1
  3.   attr_accessor :armor2_id = 2
  4.   attr_accessor :armor3_id = 3
  5.   
  6.   def [](str)
  7.     case str
  8.     when "armor1_id"
  9.       return armor1_id
  10.     when "armor2_id"
  11.       return armor2_id
  12.     when "armor3_id"
  13.       return armor3_id
  14.     end
  15.   end
  16.    
  17. end

  18. a = A.new()
  19. p a["armor1_id"]
复制代码

作者: hys111111    时间: 2013-6-11 19:08
你干脆这样。
  1. a = false
  2. if $game_actor[1].armor_1 == 25
  3. a = true
  4. end
  5. if $game_actor[1].armor_2 == 25
  6. a = true
  7. end
  8. ……以此类推
  9. if a == true
  10.   
  11. end
复制代码

作者: chd114    时间: 2013-6-11 21:08
hys111111 发表于 2013-6-11 19:08
你干脆这样。

可是这些东西我还写在一个的循环里面···有没有办法在脚本编辑器写了这些东西后弄成平时不调用在需要的时候调用···
作者: fux2    时间: 2013-6-12 08:38
Interpreter定义方法即可。
作者: chd114    时间: 2013-6-12 12:29
fux2 发表于 2013-6-12 08:38
Interpreter定义方法即可。

···表示自己做的定义会直接变成打开游戏就执行了···
作者: chd114    时间: 2013-6-13 17:42
fux2 发表于 2013-6-12 08:38
Interpreter定义方法即可。

我也不知道···我很纯洁···别问我这个···




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1