Project1
标题:
求助如何让防具调用公共事件?
[打印本页]
作者:
迷糊!
时间:
2009-11-18 17:05
提示:
作者被禁止或删除 内容自动屏蔽
作者:
后知后觉
时间:
2009-11-18 17:11
恐怕要动脚本才会有效率....
用事件做的话....好像要用N多N多的条件分歧- -
作者:
wxs29
时间:
2009-11-18 17:31
本帖最后由 wxs29 于 2009-11-18 17:34 编辑
公共事件 (并行处理)
条件分歧:持有[某某] (某某指你要用的防具)
增减特技:[阿尔西斯]+[某某] (某某指学会的特技)
除此以外的场合:
增减特技:[阿尔西斯]-[某某]
分歧结束
作者:
迷糊!
时间:
2009-11-18 18:14
提示:
作者被禁止或删除 内容自动屏蔽
作者:
云心
时间:
2009-11-18 18:21
随便指定一个开关
作者:
迷糊!
时间:
2009-11-18 18:25
提示:
作者被禁止或删除 内容自动屏蔽
作者:
迷糊!
时间:
2009-11-18 18:32
提示:
作者被禁止或删除 内容自动屏蔽
作者:
迷糊!
时间:
2009-11-18 18:50
提示:
作者被禁止或删除 内容自动屏蔽
作者:
wxs29
时间:
2009-11-18 21:28
我试了持有是行的通,但是为什么我设置成装备的时候就成无效了呢?
迷糊! 发表于 2009-11-18 18:32
这个.....装备后学会技能似乎无法实现,只有携带时才可以......
真的想要实现就去找那些脚本大师吧....
作者:
后知后觉
时间:
2009-11-19 00:01
本帖最后由 后知后觉 于 2009-11-19 00:08 编辑
设置方法
在数据库-武器和防具的名字后面加 @技能ID
这个技能ID指的是1号角色的学会的技能ID
比如 铜剑@1
那么1号角色拿上铜剑学会1号技能.2号角色拿上铜剑学会2号技能
比如 铜盾@5
那么1号角色拿上铜盾学会5号技能.2号角色拿上就学会6号技能.3号角色拿上就学会7号技能
大概就是这样.应该能理解了吧?- -
脚本:
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 更新自动状态
#--------------------------------------------------------------------------
def update_auto_state(old_armor, new_armor)
if old_armor != nil and old_armor.auto_state_id != 0
remove_state(old_armor.auto_state_id, true)
end
if new_armor != nil and new_armor.auto_state_id != 0
add_state(new_armor.auto_state_id, true)
end
if old_armor != nil and old_armor.skill_id > 0
forget_skill(old_armor.skill_id + self.id - 1)
end
if new_armor != nil and new_armor.skill_id > 0
learn_skill(new_armor.skill_id + self.id - 1)
end
end
#--------------------------------------------------------------------------
# ● 变更武器刷新技能
#--------------------------------------------------------------------------
def update_weapon_skill(old_weapon, new_weapon)
if old_weapon != nil and old_weapon.skill_id > 0
forget_skill(old_weapon.skill_id + self.id - 1)
end
if new_weapon != nil and new_weapon.skill_id > 0
learn_skill(new_weapon.skill_id + self.id - 1)
end
end
#--------------------------------------------------------------------------
# ● 变更装备
#--------------------------------------------------------------------------
def equip(equip_type, id)
case equip_type
when 0 # 武器
if id == 0 or $game_party.weapon_number(id) > 0
update_weapon_skill($data_weapons[@weapon_id], $data_weapons[id])
$game_party.gain_weapon(@weapon_id, 1)
@weapon_id = id
$game_party.lose_weapon(id, 1)
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)
@armor1_id = id
$game_party.lose_armor(id, 1)
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)
@armor2_id = id
$game_party.lose_armor(id, 1)
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)
@armor3_id = id
$game_party.lose_armor(id, 1)
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)
@armor4_id = id
$game_party.lose_armor(id, 1)
end
end
end
#--------------------------------------------------------------------------
# ● 设置
#--------------------------------------------------------------------------
alias hzhj_actor_setup setup
def setup(actor_id)
hzhj_actor_setup(actor_id)
update_weapon_skill(nil, $data_weapons[@weapon_id])
end
end
module RPG
class Weapon
def name
new_name = @name.split(/@/)[0]
new_name = new_name == nil ? "" : new_name
return new_name
end
def skill_id
skillid = @name.split(/@/)[1]
skillid = skillid == nil ? 0 : skillid.to_i.abs
return skillid
end
end
class Armor
def name
new_name = @name.split(/@/)[0]
new_name = new_name == nil ? "" : new_name
return new_name
end
def skill_id
skillid = @name.split(/@/)[1]
skillid = skillid == nil ? 0 : skillid.to_i.abs
return skillid
end
end
end
复制代码
.
范例工程一只
Project2.rar
(185.56 KB, 下载次数: 70)
2009-11-19 00:01 上传
点击文件名下载附件
.
如果还要更细致的效果
比如1号角色拿上铜盾学会5号技能
2号和3号角色却什么也不学会.而4号角色拿上能学会8号技能
像这样的效果就自己想办法吧~
作者:
wxs29
时间:
2009-11-19 12:46
本帖最后由 wxs29 于 2009-11-19 12:47 编辑
------------------------------------------------更新-----------------------------------------
公共事件 (并行处理)
条件分歧:[阿尔西斯] 为[某某防具]装备中 (条件分歧的第2页的防具那里)
增减特技:[阿尔西斯]+[某某]
除此以外的场合:
增减特技:[阿尔西斯]-[某某]
分歧结束
这个该正确了吧,只有装备上了才会学会.其实LS的也可以,只是麻烦一些....
作者:
后知后觉
时间:
2009-11-19 13:02
我可不觉得有什么麻烦的
只是把技能放在对应的位置和在装备名字后加点东西
而用并行处理的公共事件
除了要写很多条件分歧外
还会影响运行速度
并行处理的事件一多.走起路来一卡一卡的你就明白了
作者:
wxs29
时间:
2009-11-20 12:46
对不起```前辈,晚辈年幼无知,得罪了.........
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1