Project1

标题: 如何设置角色死亡后物品掉在原处? [打印本页]

作者: t64744901    时间: 2015-8-22 12:29
标题: 如何设置角色死亡后物品掉在原处?
本帖最后由 t64744901 于 2015-8-22 12:45 编辑

  如何设置角色死亡后物品掉在原处?
在论坛上暂时未找到。于是做伸手党。
个人认为主要是事件这块卡了。

12:42分更新
也可以用一个脚本指令来使角色物品掉落在脚下。
作者: xjzsq    时间: 2015-8-22 12:37
本帖最后由 xjzsq 于 2015-8-22 13:08 编辑

那么的话,
再问一下,
是角色在固定位置死亡时才会掉物品,(例如打某个BOSS)
还是全地图?
如果是前者,
你在哪里设置一个事件(在人物下方),
当人物死亡时,将所有物品都去掉,
数量记下来(用变量,有点麻烦),
之后就新建事件页,
换成与人物同层,
设置成加物品(用刚刚的变量,有点麻烦),,就OK了。
全地图的话,就把事件复制粘贴到地图里,复制满能死的位置!!!

作者: 喵呜喵5    时间: 2015-8-22 12:45
http://himeworks.com/2013/03/28/corpse-retrieval/

死的时候执行事件脚本
  1. create_party_corpse
复制代码
来把当前的东西扔到地上
作者: Silentever    时间: 2015-8-23 02:18
http://himeworks.com/2013/03/28/corpse-retrieval/

那就改成掉落道具用的吧,注意插入顺序
  1. module TH
  2.   module Corpse_Retrieval
  3.    
  4.     Lose_Normal_Items = true  # 是否丢失消耗道具
  5.     Lose_Key_Items    = false # 是否丢失贵重道具
  6.     Lose_Weapons      = true  # 是否丢失武器
  7.     Lose_Armors       = true  # 是否丢失防具
  8.     Include_Equiped   = true  # (丢失装备时)是否包括装备中的装备
  9.    
  10.     def self.setup_event_commands(corpse_items, list)
  11.       list << RPG::EventCommand.new(101, 0, ["", 0, 0, 2])
  12.       list << RPG::EventCommand.new(401, 0, ["Corpse retrieved"])
  13.       corpse_items[:item].each do |id, amount|
  14.         list << RPG::EventCommand.new(126, 0, [id, 0, 0, amount, false]); end
  15.       corpse_items[:weapons].each do |id, amount|
  16.         list << RPG::EventCommand.new(127, 0, [id, 0, 0, amount, false]); end
  17.       corpse_items[:armors].each do |id, amount|
  18.         list << RPG::EventCommand.new(128, 0, [id, 0, 0, amount, false]); end
  19.       list << RPG::EventCommand.new("delete_corpse_event")
  20.       list << RPG::EventCommand.new
  21.     end
  22.   end
  23. end

  24. class Game_Party < Game_Unit
  25.   
  26.   def collect_party_items
  27.     corpse_items = {}
  28.     items.each do |item|
  29.       if item.key_item?
  30.         next unless TH::Corpse_Retrieval::Lose_Key_Items
  31.       else; next unless TH::Corpse_Retrieval::Lose_Normal_Items; end
  32.       corpse_items[item.id] = item_number(item)
  33.       lose_item(item, item_number(item)); end
  34.     return corpse_items
  35.   end
  36.   
  37.   def collect_party_weapons
  38.     corpse_weapons = {}
  39.     weapons.each do |item|
  40.       corpse_weapons[item.id] = item_number(item)
  41.       lose_item(item, item_number(item)); end
  42.     return corpse_weapons
  43.   end
  44.   
  45.   def collect_party_armors
  46.     corpse_armors = {}
  47.     armors.each do |item|
  48.       corpse_armors[item.id] = item_number(item)
  49.       lose_item(item, item_number(item)); end
  50.     return corpse_armors
  51.   end
  52.   
  53.   def collect_corpse_items
  54.     corpse_items = {}
  55.     corpse_items[:item]    = collect_party_items
  56.     corpse_items[:weapons] = collect_party_weapons if TH::Corpse_Retrieval::Lose_Weapons
  57.     corpse_items[:armors]  = collect_party_armors if TH::Corpse_Retrieval::Lose_Armors
  58.     corpse_items
  59.   end
  60.   
  61.   def create_party_corpse
  62.     $game_party.members.each {|member| member.clear_equipments} if TH::Corpse_Retrieval::Include_Equiped
  63.     corpse_items = collect_corpse_items
  64.     return corpse_items
  65.   end
  66.   
  67. end
复制代码

作者: alexncf125    时间: 2020-8-11 09:38
Silentever 发表于 2015-8-23 02:18
那就改成掉落道具用的吧,注意插入顺序

大大您好,您写的这个扩充脚本很赞喔,感谢。
然而我觉得module各项 = true后,会把该项的东西全部掉光好像不太好,
能不能改成是在create_party_corpse后方加上几个参数,
例如create_party_corpse(25,0,10,15,true/false)
可以在有4个物品时丢失随机的1个物品,
有20个武器时丢失随机的2个武器,
有100个防具时丢失随机的15个防具
true/false控制在丢失装备时,是否包括装备中的装备
这样子的效果好像更好,大大觉得呢?
作者: yxd5108    时间: 2022-6-12 21:16
Silentever 发表于 2015-8-23 02:18
那就改成掉落道具用的吧,注意插入顺序

这个mz能用吗?》能不能?




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