赞 | 0 |
VIP | 208 |
好人卡 | 0 |
积分 | 31 |
经验 | 35012 |
最后登录 | 2016-3-14 |
在线时间 | 177 小时 |
Lv3.寻梦者
- 梦石
- 3
- 星屑
- 50
- 在线时间
- 177 小时
- 注册时间
- 2008-3-21
- 帖子
- 939
|
以下引用小心于2009-4-14 23:06:46的发言:
我有几个问题想请问楼主:
一 我设置了一个【只能开一次的宝箱】,当队伍的【负重超限时】,结果什么也没拿到!
请问怎样判断队伍负重超限时,【物品拿不到但也不会消失】。
第二个是【重要的事件物品不能丢弃】,默认的是可以丢的,(我用的版本)
如果把打魔王的光球丢了
还有一个,新的系统能用事件的【条件分歧】判断物品在持有中吗?
楼主加油哦!这系统是我游戏必备的捏!
回小心:
把这个ID数组粘在程序的最前面,它规定了哪些物品是不能丢掉的
$不能丢弃的物品 = [24,27,29,30,34,36,37,38,75,77,194,226,227,234,230,240,241,242,243,385,387,418,419]
然后,把这个粘入class Game_Party类模块的最下方试试!
#--------------------------------------------------------------------------
# ● 增加物品
# item_id : 物品 ID
# n : 个数
#--------------------------------------------------------------------------
def gain_item(item_id, n)
# 更新 hash 的个数数据
if n < 0
lose_item(item_id, -n)
return
end
if item_id > 0
# 如果是“不允许丢弃的物品”,就强制加在领队身上。不管是否超重。
if $不能丢弃的物品.include?(item_id)
$game_party.actors[0].gain_item(item_id, n)
return
end
wwwt = $data_items[item_id].weight
straight = 0 #从领队开始依次拿取物品,当领队载重量不够时转至下一个队员获取
for iii in 0...n #检查物品n次
leftwt = $game_party.actors[straight].indi_capacity - $game_party.actors[straight].total_weight
while leftwt < wwwt
straight += 1
if straight>=$game_party.actors.size
return
end
leftwt = $game_party.actors[straight].indi_capacity - $game_party.actors[straight].total_weight
end
$game_party.actors[straight].gain_item(item_id, 1)
end
end
end
另外,事件的“条件分歧”是可以判定物品持有数的。
Search for this sentence:
if @dowi_window.index==1
Then, Put the new program below
to an proper place!
- if @dowi_window.index==1
- if $game_party.actors.size<2
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- $正在交付物品=1
- $正在丢弃物品=0
- @dowi_window.active=false
- @dowi_window.visible=false
- @give_window.dispose
- @give_window=Window_Give.new(@actor)
- @give_window.active=true
- @give_window.visible=true
- else
- @item = @item_window.item
- if $不能丢弃的物品.include?(@item.id)
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- $正在交付物品=0
- $正在丢弃物品=1
- @dowi_window.active=false
- @dowi_window.visible=false
- @num_window.dispose
- @num_window = Window_GiveNum.new(@actor, @item)
- @num_window.active=true
- @num_window.visible=true
- end
- $game_system.se_play($data_system.decision_se)
- return
- end
复制代码 |
|