Project1
标题:
关于装备技能的事件方法
[打印本页]
作者:
pl04644972
时间:
2014-2-5 18:26
标题:
关于装备技能的事件方法
设置好佩戴装备获得技能的条件分歧之后,不知道该怎么让人物在佩戴装备之后就执行公共事件(语文水平不好,大致就是在公共事件里设置好佩戴装备获得技能之后该怎么执行事件吧。。)
作者:
恐惧剑刃
时间:
2014-2-5 19:10
# 装备附带技能
# 举例
# 铜剑,10 该武器附带ID为10的特技
# 防具亦然
module RPG
class Weapon
def name
return @name.split(",")[0] == nil ? "" : @name.split(",")[0]
end
def skill
return @name.split(",")[1] == nil ? 0 : @name.split(",")[1].to_i
end
end
class Armor
def name
return @name.split(",")[0] == nil ? "" : @name.split(",")[0]
end
def skill
return @name.split(",")[1] == nil ? 0 : @name.split(",")[1].to_i
end
end
end
class Game_Actor < Game_Battler
def equip(equip_type, id)
case equip_type
when 0
if id == 0 or $game_party.weapon_number(id) > 0
$game_party.gain_weapon(@weapon_id, 1)
if $data_weapons[@weapon_id] != nil and
$data_weapons[@weapon_id].skill != 0
forget_skill($data_weapons[@weapon_id].skill)
end
@weapon_id = id
$game_party.lose_weapon(id, 1)
if $data_weapons[id] != nil and
$data_weapons[id].skill != 0
learn_skill($data_weapons[id].skill)
end
end
when 1
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor1_id], $data_armors[id])
$game_party.gain_armor(@armor1_id, 1)
if $data_armors[@armor1_id] != nil and
$data_armors[@armor1_id].skill != 0
forget_skill($data_armors[@armor1_id].skill)
end
@armor1_id = id
$game_party.lose_armor(id, 1)
if $data_armors[id] != nil and
$data_armors[id].skill != 0
learn_skill($data_armors[id].skill)
end
end
when 2
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor2_id], $data_armors[id])
$game_party.gain_armor(@armor2_id, 1)
if $data_armors[@armor2_id] != nil and
$data_armors[@armor2_id].skill != 0
forget_skill($data_armors[@armor2_id].skill)
end
@armor2_id = id
$game_party.lose_armor(id, 1)
if $data_armors[id] != nil and
$data_armors[id].skill != 0
learn_skill($data_armors[id].skill)
end
end
when 3
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor3_id], $data_armors[id])
$game_party.gain_armor(@armor3_id, 1)
if $data_armors[@armor3_id] != nil and
$data_armors[@armor3_id].skill != 0
forget_skill($data_armors[@armor3_id].skill)
end
@armor3_id = id
$game_party.lose_armor(id, 1)
if $data_armors[id] != nil and
$data_armors[id].skill != 0
learn_skill($data_armors[id].skill)
end
end
when 4
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor4_id], $data_armors[id])
$game_party.gain_armor(@armor4_id, 1)
if $data_armors[@armor4_id] != nil and
$data_armors[@armor4_id].skill != 0
forget_skill($data_armors[@armor4_id].skill)
end
@armor4_id = id
$game_party.lose_armor(id, 1)
if $data_armors[id] != nil and
$data_armors[id].skill != 0
learn_skill($data_armors[id].skill)
end
end
end
end
end
复制代码
作者:
pl04644972
时间:
2014-2-5 19:30
恋′挂机 发表于 2014-2-5 19:10
木有事件版的办法么。。
作者:
pl04644972
时间:
2014-2-5 22:48
恋′挂机 发表于 2014-2-5 19:10
不太明白应该把数字和名字插在哪里。。试了30分钟都没试出来
作者:
天地有正气
时间:
2014-2-6 02:32
设置并行处理的公共事件。
作者:
pl04644972
时间:
2014-2-6 09:25
天地有正气 发表于 2014-2-6 02:32
设置并行处理的公共事件。
每个地图都设置么
作者:
pl04644972
时间:
2014-2-6 22:58
恋′挂机 发表于 2014-2-5 19:10
如果是把防具技能的话,用铜剑,10的方法放在这几个(",")或者是 ""里都没反应。。
class Armor
def name
return @name.split(",")[0] == nil ? "" : @name.split(",")[0]
end
def skill
return @name.split(",")[1] == nil ? 0 : @name.split(",")[1].to_i
end
作者:
pl04644972
时间:
2014-2-6 23:03
恋′挂机 发表于 2014-2-5 19:10
好像已经可以了,不过第一次出场的角色在初始装备上设置好带技能装备后第一次战斗并不能拥有技能,这个有没有办法解决
作者:
pl04644972
时间:
2014-2-6 23:07
恋′挂机 发表于 2014-2-5 19:10
方法是用的公共事件的方法,脚本的还是不知道添哪。。
作者:
恐惧剑刃
时间:
2014-2-6 23:15
本帖最后由 恋′挂机 于 2014-2-7 09:22 编辑
脚本无误!只是改变了定义技能的方式而已(降低冲突,@name.split 很多人都用)!!!!!!
另外你说的技能无法使用,是你数据库设置技能有误与本脚本无关!!!!!
# -----------------------------------------------
# 装备附加技能
# -----------------------------------------------
Weapon_Skill = {}
Armor_Skill = {}
# -----------------------------------------------
# 武器设置
# -----------------------------------------------
Weapon_Skill[1] = 10 # 1号武器附加10号技能
Weapon_Skill[2] = 11 # 2号武器附加11号技能
Weapon_Skill[3] = 12 # 3号武器附加12号技能
# -----------------------------------------------
# 防具设置
# -----------------------------------------------
Armor_Skill[1] = 13 # 1号防具附加13号技能
Armor_Skill[5] = 14 # 5号防具附加14号技能
# -----------------------------------------------
# 正文
# -----------------------------------------------
class Game_Actor < Game_Battler
alias setup_old_plus_skill setup
def setup(actor_id)
setup_old_plus_skill(actor_id)
# 如果角色装备有武器,并且该武器附带技能
if $data_weapons[@weapon_id] != nil and
Weapon_Skill[@weapon_id] != nil
# 学会该技能
learn_skill(Weapon_Skill[@weapon_id])
end
# 如果角色装备有防具,并且该防具附带技能
if $data_armors[@armor1_id] != nil and
Armor_Skill[@armor1_id] != nil
# 学会该技能
learn_skill(Armor_Skill[@armor1_id])
end
# 如果角色装备有防具,并且该防具附带技能
if $data_armors[@armor2_id] != nil and
Armor_Skill[@armor2_id] != nil
# 学会该技能
learn_skill(Armor_Skill[@armor2_id])
end
# 如果角色装备有防具,并且该防具附带技能
if $data_armors[@armor3_id] != nil and
Armor_Skill[@armor3_id] != nil
# 学会该技能
learn_skill(Armor_Skill[@armor3_id])
end
# 如果角色装备有防具,并且该防具附带技能
if $data_armors[@armor4_id] != nil and
Armor_Skill[@armor4_id] != nil
# 学会该技能
learn_skill(Armor_Skill[@armor4_id])
end
end
def equip(equip_type, id)
case equip_type
when 0
if id == 0 or $game_party.weapon_number(id) > 0
$game_party.gain_weapon(@weapon_id, 1)
# 如果原装备有武器,并且该武器附带技能
if $data_weapons[@weapon_id] != nil and
Weapon_Skill[@weapon_id] != nil
# 遗忘该技能
forget_skill(Weapon_Skill[@weapon_id])
end
@weapon_id = id
$game_party.lose_weapon(id, 1)
# 如果当前装备的武器附带技能
if $data_weapons[id] != nil and
Weapon_Skill[id] != nil
# 学会该技能
forget_skill(Weapon_Skill[id])
end
end
when 1
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor1_id], $data_armors[id])
$game_party.gain_armor(@armor1_id, 1)
# 如果原装备有防具,并且该防具附带技能
if $data_armors[@armor1_id] != nil and
Armor_Skill[@armor1_id] != nil
# 遗忘该技能
forget_skill(Armor_Skill[@armor1_id])
end
@armor1_id = id
$game_party.lose_armor(id, 1)
# 如果当前装备的防具附带技能
if $data_armors[id] != nil and
Armor_Skill[id] != nil
# 学会该技能
forget_skill(Armor_Skill[id])
end
end
when 2
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor2_id], $data_armors[id])
$game_party.gain_armor(@armor2_id, 1)
# 如果原装备有防具,并且该防具附带技能
if $data_armors[@armor2_id] != nil and
Armor_Skill[@armor2_id] != nil
# 遗忘该技能
forget_skill(Armor_Skill[@armor2_id])
end
@armor2_id = id
$game_party.lose_armor(id, 1)
# 如果当前装备的防具附带技能
if $data_armors[id] != nil and
Armor_Skill[id] != nil
# 学会该技能
forget_skill(Armor_Skill[id])
end
end
when 3
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor3_id], $data_armors[id])
$game_party.gain_armor(@armor3_id, 1)
# 如果原装备有防具,并且该防具附带技能
if $data_armors[@armor3_id] != nil and
Armor_Skill[@armor3_id] != nil
# 遗忘该技能
forget_skill(Armor_Skill[@armor3_id])
end
@armor3_id = id
$game_party.lose_armor(id, 1)
# 如果当前装备的防具附带技能
if $data_armors[id] != nil and
Armor_Skill[id] != nil
# 学会该技能
forget_skill(Armor_Skill[id])
end
end
when 4
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor4_id], $data_armors[id])
$game_party.gain_armor(@armor4_id, 1)
# 如果原装备有防具,并且该防具附带技能
if $data_armors[@armor4_id] != nil and
Armor_Skill[@armor4_id] != nil
# 遗忘该技能
forget_skill(Armor_Skill[@armor4_id])
end
@armor4_id = id
$game_party.lose_armor(id, 1)
# 如果当前装备的防具附带技能
if $data_armors[id] != nil and
Armor_Skill[id] != nil
# 学会该技能
forget_skill(Armor_Skill[id])
end
end
end
end
end
复制代码
作者:
pl04644972
时间:
2014-2-8 09:40
顶一下。。。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1