Project1
标题:
如何增加敌人的掉落物种类
[打印本页]
作者:
林狗妹
时间:
2011-8-19 19:39
标题:
如何增加敌人的掉落物种类
像RMVX每个怪物只有两个掉落物品框,我想让怪物掉落的东西更多一点,如何设置脚本可以让怪物的掉落框更多一点 dsu_plus_rewardpost_czw
作者:
orzfly
时间:
2011-8-19 19:58
先使用这个插件。
module RPG
class Enemy
class DropItem
alias mdi_initialize initialize
def initialize; mdi_initialize; yield self; end
end
end
end
复制代码
Game_Troop 238行附近修改。
for di in [enemy.drop_item1, enemy.drop_item2]
复制代码
改成
dis = [enemy.drop_item1, enemy.drop_item2]
数据
for di in dis
复制代码
数据的地方添加你想增加的物品,一行写一个,按下面的格式。
比如给 33 号敌人增加一个 1 号物品,出现概率是 1/2。
dis.push(RPG::Enemy::DropItem.new {|s| s.kind = 0; s.item_id = 1; s.denominator = 2;}) if enemy.id == 33
复制代码
比如给 35 号敌人增加一个 5 号武器,出现概率是 1/7。
dis.push(RPG::Enemy::DropItem.new {|s| s.kind = 1; s.weapon_id = 5; s.denominator = 7;}) if enemy.id == 35
复制代码
比如给 15 号敌人增加一个 9 号防具,出现概率是 1/1。
dis.push(RPG::Enemy::DropItem.new {|s| s.kind = 2; s.armor_id = 9; s.denominator = 1;}) if enemy.id == 15
复制代码
作者:
鬼火
时间:
2011-8-20 00:19
提供一个简单方法:把同一怪物复制若干,一个提供两个掉落物品。。两个提供四个掉落物品。。。
那么这个怪物掉落多少东西都行。。。
作者:
orzfly
时间:
2011-8-20 04:40
崭新的版本
先使用这个插件。
module RPG
class Enemy
class DropItem
alias mdi_initialize initialize
def initialize; mdi_initialize; yield self; end
end
end
end
复制代码
Game_Troop 238行附近修改。
for di in [enemy.drop_item1, enemy.drop_item2]
复制代码
改成
dis = [enemy.drop_item1, enemy.drop_item2]
add = Proc.new {|dis, kind, id, denominator| dis.push(RPG::Enemy::DropItem.new {|s| s.kind = kind; s.item_id = id; s.weapon_id = id; s.armor_id = id; s.denominator = denominator;})}
数据
for di in dis
复制代码
数据的地方添加你想增加的物品,一行写一个,按下面的格式。
比如给 33 号敌人增加一个 1 号物品,出现概率是 1/2。
add.call(dis, 0, 1, 2) if enemy.id == 33
复制代码
比如给 35 号敌人增加一个 5 号武器,出现概率是 1/7。
add.call(dis, 1, 5, 7) if enemy.id == 35
复制代码
比如给 15 号敌人增加一个 9 号防具,出现概率是 1/1。
add.call(dis, 2, 9, 1) if enemy.id == 15
复制代码
作者:
Wind2010
时间:
2011-8-20 10:47
$shizi_battle_result = []
#上面这个依旧是初始化用,不用管
$shizi_battle_result_goldrand = false #是否开启随机金钱
$shizi_battle_result_goldrandnum = 50 #随机幅度为50
$shizi_battle_result_exprand = false #是否开启随机经验
$shizi_battle_result_exprandnum = 30 #随机幅度为30
$shizi_battle_result_max = 99 #最多获得99件宝物
#宝物设置的格式:
#$shizi_battle_result[*] = [怪物ID,[ [宝物类型,宝物ID,宝物出现几率] , [宝物类型,宝物ID,宝物出现几率]]
#宝物类型:
#0、物品
#1、武器
#2、防具
$shizi_battle_result[0] = [1,[[2,1,70],[1,2,40]]]
#下面是脚本内容
class Scene_Battle
def start_phase5
@phase = 5
$game_system.me_play($game_system.battle_end_me)
$game_system.bgm_play($game_temp.map_bgm)
exp = 0
gold = 0
treasures = []
for enemy in $game_troop.enemies
unless enemy.hidden
exp += enemy.exp
gold += enemy.gold
if rand(100) < enemy.treasure_prob
if enemy.item_id > 0
treasures.push($data_items[enemy.item_id])
end
if enemy.weapon_id > 0
treasures.push($data_weapons[enemy.weapon_id])
end
if enemy.armor_id > 0
treasures.push($data_armors[enemy.armor_id])
end
for i in $shizi_battle_result
if enemy.id == i[0]
for shizi in i[1]
if rand(100) < shizi[2]
case shizi[0]
when 0
treasures.push($data_items[shizi[1]])
when 1
treasures.push($data_weapons[shizi[1]])
when 2
treasures.push($data_armors[shizi[1]])
end
end
end
end
end
end
end
end
treasures = treasures[0...$shizi_battle_result_max]
gold = rand($shizi_battle_result_goldrandnum*2)-$shizi_battle_result_goldrandnum+gold if gold >= $shizi_battle_result_goldrandnum and $shizi_battle_result_goldrand == true
exp = rand($shizi_battle_result_exprandnum*2)-$shizi_battle_result_exprandnum+exp if exp >= $shizi_battle_result_exprandnum and $shizi_battle_result_exprand == true
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
if actor.cant_get_exp? == false
last_level = actor.level
actor.exp += exp
if actor.level > last_level
@status_window.level_up(i)
end
end
end
$game_party.gain_gold(gold)
for item in treasures
case item
when RPG::Item
$game_party.gain_item(item.id, 1)
when RPG::Weapon
$game_party.gain_weapon(item.id, 1)
when RPG::Armor
$game_party.gain_armor(item.id, 1)
end
end
@result_window = Window_BattleResult.new(exp, gold, treasures)
@phase5_wait_count = 100
end
end
复制代码
据说很难看懂
作者:
海盗
时间:
2011-8-26 10:29
其实有个更加简单的方法,不需要脚本,纯事件也能制作出多掉宝的效果,下面我慢慢的告诉你吧!
首先,新建一个怪物,名为 BOSS(一般都是BOSS掉落比较多),然后再新建几个用来掉落道具的怪物 名为:BOSS掉落1,BOSS掉落2,BOSS掉落3,等等(根据你想要掉落多少道具而定),然后把BOSS设置为不死之身,把其他的掉落怪(BOSS掉落1)设置为飞行,也就是隐身还未出现,在战斗事件中设置一个事件 把条件设为敌人:BOSS HP在99以下时 召唤(出现)BOSS掉落1等怪物,等待3帖 所有怪物状态添加 死亡!
就这样,一个BOSS就能掉落多个宝物了!
作者:
后知后觉
时间:
2011-8-26 13:06
2年多以前做的一个东西
http://rpg.blue/forum.php?mod=vi ... A%E5%AE%9D%E7%89%A9
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1