Project1

标题: 我这个脚本这样写可以吗 [打印本页]

作者: yang1zhi    时间: 2015-12-14 22:41
标题: 我这个脚本这样写可以吗
然后我只要在事件的脚本里输入def daojubianhua就可以执行了吧


RUBY 代码复制
  1. #由于使用了完美物品系统
  2. #函数:gain_item(item_id, kind=1, n=true),给某角色增减物品。
  3. #      item_id : 物品 ID;n: true是增加,false是减少;kind:种类,1是物品,2是武器,3是防具
  4.  
  5.  
  6. class Window_Item
  7.   def daojubianhua
  8.     #变化前的物品ID
  9.     a = [0,1,2,3,4]
  10.     #变化后的物品ID
  11.     b = [5,6,7,8,9]
  12.     #队伍此物品的数量
  13.     c = $game_party.item_number(a)
  14.     #1号角色此物品的数量
  15.     d = $game_actors[1].item_number(a)
  16.     #2号角色此物品的数量
  17.         e = $game_actors[2].item_number(a)
  18.         #3号角色此物品的数量
  19.     f = $game_actors[3].item_number(a)
  20.     #4号角色此物品的数量
  21.     g = $game_actors[4].item_number(a)
  22. #队伍减去所有变化前物品
  23.      $game_party.gain_item(a,-c)
  24.      #队伍增加对应的变化后物品
  25.      $game_party.gain_item(b,c)
  26.      #1号角色此物品拥有时循环
  27.      while d >= 1
  28.        #减去1号角色此物品
  29.      $game_actors[1].gain_item(a,1, false)
  30.      #增加1号角色对应物品
  31.       $game_actors[1].gain_item(b, 1, true)
  32.     end
  33.     #2号角色此物品拥有时循环
  34.         while e >= 1
  35.            #减去2号角色此物品
  36.      $game_actors[2].gain_item(a, 1, false)
  37.      #增加2号角色对应物品
  38.            $game_actors[2].gain_item(b, 1, true)
  39.  
  40.          end
  41.          #3号角色此物品拥有时循环
  42.      while f >= 1
  43.         #减去3号角色此物品
  44.      $game_actors[3].gain_item(a, 1, false)
  45.      #增加3号角色对应物品
  46.            $game_actors[3].gain_item(b, 1, true)
  47.  
  48.          end
  49.          #4号角色此物品拥有时循环
  50.      while g >= 1
  51.         #减去4号角色此物品
  52.      $game_actors[4].gain_item(a, 1, false)
  53.      #增加4号角色对应物品
  54.            $game_actors[4].gain_item(b, 1, true)
  55.  
  56.    end

作者: cinderelmini    时间: 2015-12-14 22:46
本帖最后由 cinderelmini 于 2015-12-16 14:31 编辑

目测少了两个end…………
然后这样并不能如愿召唤…………

试试看这样吧,这样可以在事件的【脚本】中召唤了。


关于数组里删除一个相等元素的办法之一:
  1. Array.each do |a|
  2.   if a == something
  3.     a = nil
  4.     break
  5.   end
  6. end
  7. Array.delete(nil)
复制代码

作者: yang1zhi    时间: 2015-12-15 20:38
cinderelmini 发表于 2015-12-14 22:46
目测少了两个end…………
然后这样并不能如愿召唤…………

试试看这样吧,这样可以在事件的【脚本】中 ...

原来大神有给出答案了。
我自己修改的是这样的。
我马上试试你给的脚本效果。
脚本

作者: yang1zhi    时间: 2015-12-15 20:49
本帖最后由 yang1zhi 于 2015-12-15 20:50 编辑
cinderelmini 发表于 2015-12-14 22:46
目测少了两个end…………
然后这样并不能如愿召唤…………

试试看这样吧,这样可以在事件的【脚本】中 ...



事件脚本里直接输入daojubianhua  可以调用。
不过31行报错


角色(Game_Actor):
属性:max_size,最大负重,可在游戏更改。如$game_actors[1].max_size += 1
属性:items,物品列表,只可读取,不可修改。如$a = $game_actors[1].items[0]
函数:judge_equip,判断一下是否装备正确。如果不正确就把装备设置为空
函数:gain_item(item_id, kind=1, n=true),给某角色增减物品。
      item_id : 物品 ID;n: true是增加,false是减少;kind:种类,1是物品,2是武器,3是防具
函数:item_amount,返回现有负重物品数量
函数:have_item?(item),判断是否拥有某物
函数:item_full?,判断背包是不是满了


队伍(Game_Party):
属性:max_amount,最大背包中物品数量
属性:now_amount,背包中现有物品数量
函数:item_full?,判断背包是否放满
函数:refresh_item_amount,重新刷新背包中现有物品数量,发生意外的时候用





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