Project1

标题: 有没有方法,装備某装備時設定変数的値 [打印本页]

作者: tseyik    时间: 2015-9-4 20:21
标题: 有没有方法,装備某装備時設定変数的値
如:裝備小袋時,変数1自動等於5
裝備大袋時,変数1自動等於10


作者: 墨凌羽    时间: 2015-9-4 22:21
当然可以,不过需要占用装备的备注栏 我去写个脚本 【dag效果是在备注栏里填写一对数:id-value这样的然装备这件装备的时候,会自动将制定的id的值直接改成value
作者: 墨凌羽    时间: 2015-9-4 23:24
嗯 game_actor里188行的 change_equip方法换成下面的
使用方法:在备注栏里填写一个大小为偶数的数组,奇数部分为变量id,偶数部分为相应的值
如:
[1 ,21 ,3, 24]
效果是1号变量赋值为21,3号变量赋值为24
要注意的是我偷了个懒直接eval的所以这里填的东西必须得按ruby脚本的要求去写。比如符号必须半角
  1.   def change_equip(slot_id, item)
  2.     return unless trade_item_with_party(item, equips[slot_id])
  3.     return if item && equip_slots[slot_id] != item.etype_id
  4.     if item.note != nil then
  5.       array = eval(item.note)
  6.       if array.size % 2 == 0 then
  7.         0.step(array.size - 1, 2){|i| $game_variables[array[i]] = array[i + 1]}
  8.       end
  9.     end
  10.     @equips[slot_id].object = item
  11.     refresh
  12.   end
复制代码

作者: tseyik    时间: 2015-9-5 00:27
本帖最后由 tseyik 于 2015-9-5 00:28 编辑

背包改寫的一段
#--------------------------------------------------------------------------
  # ● 装備の変更
  #     slot_id : 装備スロット ID
  #     item    : 武器/防具(nil なら装備解除)
  #--------------------------------------------------------------------------
  def change_equip(slot_id, item)
    return unless $game_party.has_item?(item, false)
    return if item && equip_slots[slot_id] != item.etype_id
    member = $game_party.has_item_member(item, false)
    change_item = member.inventory[member.same_items(item)[0]]
    $game_party.gain_item(item, -1)
    create_invitem(change_item, true)
    change_equip_invitem(-1)
    equip_slots_refresh
  end





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