查看: 2747|回复: 9

[已经解决] 怪物掉落相应尸体

[复制链接]
梦石
0
星屑
429
在线时间
175 小时
注册时间
2013-11-2
回帖
83
发表于 2015-7-21 10:51:50 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 zy652301 于 2015-7-21 12:41 编辑

给物品尸体加上标识后,杀死怪物的掉落尸体后会自动附加怪物名称作为前缀,如果分解尸体的话,分解出来的产物也会标有前缀。
例子:

厨师:“我需要【肉 A--W02】,去帮我弄点。”
······
【狗 A01】被杀死了
【狗 A01】掉落了【狗 尸体 A01W01】
使用【狗 尸体 A01W01】
【狗 尸体 A01W01】被分解成了,【狗 皮 A01W03】,【狗 肉 A01W02】
······
厨师:“嗯,是 【狗 肉 A01W02】 吗?很不错。”
厨师:“现在我需要【牛肉A02W02】”

【牛 A02】被杀死了
【牛 A02】掉落了【牛 尸体 A02W01】
使用【牛 尸体 A02W01】
【牛 尸体 A02W01】被分解成了,【牛 皮 A02W03】,【牛 肉 A02W02】【牛角 A02W04】【牛眼睛A02W05】【牛蹄子A02W06】【牛尾巴A02W07】【牛脑子A02W08】【牛骨头A02W09】
搜索是一件比发帖容易的事,因此我绝对是搜不到满意答案才来发帖的。
头像被屏蔽
梦石
0
星屑
88
在线时间
631 小时
注册时间
2014-8-4
回帖
3243
发表于 2015-7-21 10:56:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
88
在线时间
631 小时
注册时间
2014-8-4
回帖
3243
发表于 2015-7-21 11:54:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

梦石
0
星屑
50
在线时间
46 小时
注册时间
2015-7-13
回帖
85
发表于 2015-7-21 12:10:13 | 显示全部楼层
我怎么突然就看到了怪物猎人的身影(ノ゚∀゚)ノ
还有9999种敌人...真[sang]是[xin]厉[bing]害[kuang]
回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2015-7-21 12:18:46 | 显示全部楼层
      ● 使い方 ●========================================================
      在道具、武器、防具的附註欄用以下之形式設定を
        
        PACKAGE[<アイテム種別><アイテムID>:<個数>, ....]
        
      道具種別には I, W, A 。
      I =>  道具, W => 武器, A => 防具 。
      --------------------------------------------------------------------
      例:
      PACKAGE[I1:3, W19:1, A2:1, A50:1]
      
      上記の設定をしたアイテムを入手すると代わりに下記が手に入ります。
       ID1 道具 3個
       ID19 武器 1個
       ID2 防具 1個
       ID50 防具 1個
      ====================================================================
パッケージアイテム(PACKAGE)[pre lang="ruby"]=begin
      RGSS3
      
      ★ パッケージアイテム ★
      
      パッケージアイテムの設定がされたアイテムを入手すると、
      そのアイテムの代わりに複数の別アイテムを入手できます。
      
      ● 使い方 ●========================================================
      アイテム、武器、防具のメモ欄に下記の形式で設定をしてください。
        
        PACKAGE[<アイテム種別><アイテムID>:<個数>, ....]
        
      アイテム種別には I, W, A のいずれかを指定します。
      I => アイテム, W => 武器, A => 防具 を意味します。
      --------------------------------------------------------------------
      例:
      PACKAGE[I1:3, W19:1, A2:1, A50:1]
      
      上記の設定をしたアイテムを入手すると代わりに下記が手に入ります。
       ID1 のアイテムを 3つ
       ID19 の武器を 1つ
       ID2 の防具を 1つ
       ID50 の防具を 1つ
      ====================================================================
        
      ver1.00

      Last Update : 2014/08/20
      08/20 : 新規
      
      ろかん   http://kaisou-ryouiki.sakura.ne.jp/
=end

$rsi ||= {}
$rsi["パッケージアイテム"] = true

module PackageItem
  def get_package_conf
    if @package.nil?
      if self.note =~ /PACKAGE\[(.*)\]/
        @package = {item:{}, weapon:{}, armor:{}}
        $1.split(",").each{|split_data|
          split_data.strip =~ /[IWA](\d+):(\d+)/i
          if $1 && $2
            if split_data.include?("I")
              @package[:item][$1.to_i] = $2.to_i
            elsif split_data.include?("W")
              @package[:weapon][$1.to_i] = $2.to_i
            elsif split_data.include?("A")
              @package[:armor][$1.to_i] = $2.to_i
            end
          end
        }
      else
        @package = false
      end
    end
    @package
  end
end

class RPG::Item < RPG::UsableItem
  include PackageItem
end

class RPG::EquipItem < RPG::BaseItem
  include PackageItem
end

class Game_Party < Game_Unit
  #--------------------------------------------------------------------------
  # ● アイテムの増加(減少)
  #--------------------------------------------------------------------------
  alias gain_package_item gain_item
  def gain_item(item, amount, include_equip = false)
    if amount > 0 && item && item.get_package_conf
      item.get_package_conf.each{|key1, value1|
        case key1
        when :item
          value1.each{|key2, value2|
            gain_package_item($data_items[key2], value2 * amount)
          }
        when :weapon
          value1.each{|key2, value2|
            gain_package_item($data_weapons[key2], value2 * amount)
          }
        when :armor
          value1.each{|key2, value2|
            gain_package_item($data_armors[key2], value2 * amount)
          }
        end
      }
    else
      gain_package_item(item, amount, include_equip)
    end
  end
end[/pre]

点评

脚本本身没问题,关键是楼主要求能自行编辑事件和道具  发表于 2015-7-21 12:23
回复

使用道具 举报

梦石
0
星屑
50
在线时间
179 小时
注册时间
2013-12-8
回帖
91
发表于 2015-7-21 12:22:54 | 显示全部楼层
去找到一个扩充上限的脚本并不难,但是那就不单单是在数据库中编辑了,这个懒是无法偷的,如果数据库没有编辑,即便有脚本也做不到,
你不能奢求它给你变出来你没有设定的东西
既然有编写⑨⑨⑨种怪物的时间,那么编写1998+的道具+条件分歧事件也就不难吧?

点评

道具问题的话,如果不嫌弃麻烦,可以稍微研究一下数据库扩充脚本。这个应该会实用一些。因为你加了前缀,还想要条件分歧,那个物品必须独立。  发表于 2015-7-21 14:09
至于说服我?你没必要说服我,理不理我都随你的便。刚才点评也不知道是谁写的「条件分支里不是可以写脚本吗」。想法如此肤浅,想必无大业可成.  发表于 2015-7-21 14:04
你就去试试好了,看看加前缀究竟要如何条件分歧。我没有否定你的想法,只是我觉得这麻烦到不值得操作。有这时间还不如多去做几张地图  发表于 2015-7-21 13:54
突然发现说服你也没有任何用处哎~  发表于 2015-7-21 13:54
为什么你认为每个都需要写脚本?  发表于 2015-7-21 13:43

全部RM技能点全都点到了做地图和写文本上了,别拦着我我准备去点那个专精点!(大义凛然状
回复

使用道具 举报

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
回帖
1057
发表于 2015-7-22 00:38:56 | 显示全部楼层
我就说一句 运行时修改数据库
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复

使用道具 举报

梦石
0
星屑
62
在线时间
839 小时
注册时间
2010-6-26
回帖
652
发表于 2015-7-22 16:37:58 | 显示全部楼层
你把999个怪物名发过来,顺带发过来一个尸体变成哪几种肉,还有每一种肉的物品说明和其他物品设置(可以做一个新工程,里面设置这些肉,说明里要怪物名的话另说)。不就是999*n个道具栏么,也不怎么难搞。结合数据库扩张、数据库复制、excel导出等等功能几分钟就能搞定。嗯,还能空出999个位置给你做默认的道具设置
新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复

使用道具 举报

梦石
0
星屑
429
在线时间
175 小时
注册时间
2013-11-2
回帖
83
 楼主| 发表于 2015-7-25 09:32:23 | 显示全部楼层
企鹅达达 发表于 2015-7-22 16:37
你把999个怪物名发过来,顺带发过来一个尸体变成哪几种肉,还有每一种肉的物品说明和其他物品设置(可以做 ...

哇~大好人呐。我不是完全不会脚本,像是改个参数之类的我还是能办到的。
怪物的编号,物品的编号,给物品附加前缀,引用带前缀物品。
只要帮我做一个示范我就能办到。
若果有不会的我再问你看好吗?

点评

解释比做更麻烦,因为并没有特定的脚本能做到这个效果,而是好几个脚本加上excel能恰好做到这个效果。  发表于 2015-7-26 20:29
搜索是一件比发帖容易的事,因此我绝对是搜不到满意答案才来发帖的。
回复

使用道具 举报

梦石
0
星屑
62
在线时间
839 小时
注册时间
2010-6-26
回帖
652
发表于 2015-7-26 21:16:42 | 显示全部楼层
本帖最后由 企鹅达达 于 2015-7-26 21:17 编辑
zy652301 发表于 2015-7-25 09:32
哇~大好人呐。我不是完全不会脚本,像是改个参数之类的我还是能办到的。
怪物的编号,物品的编号,给物品 ...
  1. =begin
  2. 1.编写好模板,道具名“的尸体”等、说明“的xxxx”,事件运行脚本导出数据
  3. PG_WRITE_DATA::output_items

  4. 2.用excel打开导出的文件,将数据下拉复制到需要的数量,保存,用文本编辑器打开,
  5. 另存为utf-8编码,使用事件脚本导入数据,运行后不要保存,关闭编辑器后再打开。
  6. PG_WRITE_DATA::input_items

  7. 3.使用下面的脚本将怪物名放入道具名字和说明,运行后不要保存,关闭编辑器后再打开。
  8. PG_WRITE_DATA::alter_items
  9. =end
  10. module PG_WRITE_DATA
  11.   #--------------------------------------------------------------------------
  12.   # ● Items
  13.   #--------------------------------------------------------------------------
  14.   def self.output_items
  15.     ret = ""
  16.     $data = load_data("Data/Items.rvdata2")
  17.       ret += "id"
  18.       ret += "|"+ "name"
  19.       ret += "|"+ "icon_index"
  20.       ret += "|"+ "description"
  21.       ret += "|"+ "price"
  22.       ret += "|"+ "itype_id"
  23.       ret += "|"+ "consumable"
  24.       ret += "|"+ "scope"
  25.       ret += "|"+ "occasion"
  26.       ret += "|"+ "speed"
  27.       ret += "|"+ "success_rate"
  28.       ret += "|"+ "repeats"
  29.       ret += "|"+ "hit_type"
  30.       ret += "|"+ "animation_id"
  31.       ret += "|"+ "damage.type"
  32.       ret += "|"+ "damage.element_id"
  33.       ret += "|"+ "damage.formula"
  34.       ret += "|"+ "damage.variance"
  35.       ret += "|"+ "damage.critical"
  36.       ret += "|"+ "effects"
  37.     for i in 1..$data.size
  38.       break if $data[i] == nil
  39.       ret += "\n" + $data[i].id.to_s
  40.       ret += "|"+ $data[i].name
  41.       ret += "|"+ $data[i].icon_index.to_s
  42.       $data[i].description.gsub!("\r\n", "*r*n")
  43.       ret += "|"+ $data[i].description        #因为有换行麻烦,所以删去
  44.       ret += "|"+ $data[i].price.to_s
  45.       ret += "|"+ $data[i].itype_id.to_s
  46.       ret += "|"+ $data[i].consumable.to_s
  47.       ret += "|"+ $data[i].scope.to_s
  48.       ret += "|"+ $data[i].occasion.to_s
  49.       ret += "|"+ $data[i].speed.to_s
  50.       ret += "|"+ $data[i].success_rate.to_s
  51.       ret += "|"+ $data[i].repeats.to_s
  52.       ret += "|"+ $data[i].hit_type.to_s
  53.       ret += "|"+ $data[i].animation_id.to_s
  54.       ret += "|"+ $data[i].damage.type.to_s
  55.       ret += "|"+ $data[i].damage.element_id.to_s
  56.       ret += "|"+ $data[i].damage.formula.to_s
  57.       ret += "|"+ $data[i].damage.variance.to_s
  58.       ret += "|"+ $data[i].damage.critical.to_s
  59.       ret += "|["
  60.       if $data[i].effects.size>0
  61.         for j in 0...$data[i].effects.size
  62.           ret += "["+ $data[i].effects[j].code.to_s
  63.           ret += ","+ $data[i].effects[j].data_id.to_s
  64.           ret += ","+ $data[i].effects[j].value1.to_s
  65.           ret += ","+ $data[i].effects[j].value2.to_s
  66.           ret += "],"
  67.         end
  68.       end
  69.       ret += "],"
  70.     end
  71.     File.open("Items.txt", 'w') { |file| file.write(ret) }
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● Items
  75.   #--------------------------------------------------------------------------
  76.   def self.input_item
  77.     $data = load_data("Data/Items.rvdata2")
  78.     File.open("Items.csv", 'r') {|f|
  79.       @inFile = f
  80.       line = read_line
  81.       while !@inFile.eof?
  82.         line = read_line
  83.         i = line[0].to_i
  84.         $data << RPG::Item.new if $data[i] == nil
  85.         $data[i].name = line[1]
  86.         $data[i].icon_index= line[2].to_i
  87.         line[3].gsub!("*r*n", "\r\n")
  88.         $data[i].description = line[3]
  89.         $data[i].price = line[4].to_i
  90.         $data[i].itype_id = line[5].to_i
  91.         $data[i].consumable = eval(line[6])
  92.         $data[i].scope = line[7].to_i
  93.         $data[i].occasion = line[8].to_i
  94.         $data[i].speed = line[9].to_i
  95.         $data[i].success_rate = line[10].to_i
  96.         $data[i].repeats = line[11].to_i
  97.         $data[i].hit_type = line[12].to_i
  98.         $data[i].animation_id = line[13].to_i
  99.         $data[i].damage.type = line[14].to_i
  100.         $data[i].damage.element_id = line[15].to_i
  101.         $data[i].damage.formula = line[16]
  102.         $data[i].damage.variance = line[17].to_i
  103.         $data[i].damage.critical = eval(line[18])
  104.       end
  105.     }
  106.     save_data($data, "Data/Items.rvdata2")
  107.     SceneManager::exit
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● Items
  111.   #--------------------------------------------------------------------------
  112.   def self.alter_items
  113.     filename = "Data/Items.rvdata2"
  114.     $data = load_data(filename)
  115.     filename2 = "Data/Enemies.rvdata2"
  116.     $data2 = load_data(filename2)
  117.     for i in 1...$data2.size
  118.       break if $data[i*10+10]==nil
  119.       if $data2[i].size>0
  120.         10.times.do |j|
  121.           $data[i*10+j].name        = $data2[i].name + $data[i*10+j].name
  122.           $data[i*10+j].description = $data2[i].name+ $data[i*10+j].description
  123.         end
  124.       end
  125.     end
  126.     save_data($data, filename)
  127.     SceneManager::exit
  128.   end
  129. end
复制代码
未测试,看不懂就算了 ← ← 我懒得解释
新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部