Project1
标题:
请问怎样实现用物品学习技能?
[打印本页]
作者:
cqr19950307
时间:
2011-5-8 17:15
标题:
请问怎样实现用物品学习技能?
本帖最后由 cqr19950307 于 2011-5-21 17:20 编辑
就是使用特定物品可以让指定角色学习特定的技能,并且可以通过角色的职业来判断选中的角色是否能用物品学习该技能。
作者:
烁灵
时间:
2011-5-8 19:41
曾经给背背前辈写的简易技能书- -b
#--------------------------------------------------
# 简洁版技能书
# -BY 烁灵
# 用法为:
# 在 数据库->物品 中如下设置技能书:无任何能力提升及数值恢复,仅
# 在 备注栏中写上如下信息
# 技能书:1,2,3:9
# 不要留空格,符号为半角字符
# 9为要学的技能编号,
# 1,2,3为能够习得的角色【职业】编号
# 上述写法效果即为 若目标为1,2,3号职业,即使其学会9号技能
# 可以多次重复,如
# 技能书:1,3:9
# 技能书:2,4:10
# 即可分情况学会技能
# 职业可以多个,但不要写太多使此语句长度超过一行
#---------------------------------------------------
module SL_Skill_Book
SKILLITEMSTR = "技能书"
SKILLLEARNASK = "确定让%s学会 %s?"
SKILLLEARN = "%s学会了技能 %s!"
SKILLLEARNED = "%s已经学会了%s!"
SKILLCANNOTLEARN = "%s无法学习%s!"
end
class Game_Battler
alias sl_item_effective? item_effective?
def item_effective?(user, item)
$alflag = 0
item.note.each_line{|line|
$alflag = 0
nt = line.split(/:/)
corr_target = []
if(nt[0]==SL_Skill_Book::SKILLITEMSTR) #判定为技能书
$alflag = 1
i = nt[1].split(/,/)
for j in 0...i.size
corr_target.push(i[j].to_i)
end
i.clear
if corr_target.include?(user.class_id) #学习此行中的技能
if not user.skill_learn?($data_skills[nt[2].to_i]) #没学过
ttwin = Window_Base.new((544 - 324)/2,(414 - 64)/2 - 72,324,64)
text = sprintf(SL_Skill_Book::SKILLLEARNASK, user.name, $data_skills[nt[2].to_i].name)
ttwin.contents.draw_text(0, 0, 324, 32,text)
cmdwin = Window_Command.new(128,["确认","取消"])
cmdwin.x = (544 - cmdwin.width)/2
cmdwin.y = (416 - cmdwin.height)/2
cmdwin.active = true
while true
cmdwin.update
Graphics.update
Input.update
break if Input.repeat?(Input::C)
end
if cmdwin.index == 0
user.learn_skill(nt[2].to_i) #学习
cmdwin.dispose
ttwin.dispose
twin = Window_Base.new((544 - 324)/2,(414 - 64)/2,324,64)
text = sprintf(SL_Skill_Book::SKILLLEARN, user.name, $data_skills[nt[2].to_i].name)
twin.contents.draw_text(0, 0, 324, 32,text)
Graphics.wait(60)
twin.dispose
return true
else
$alflag = 0
cmdwin.dispose
ttwin.dispose
break
end
cmdwin.dispose
else
$alflag = 2
tewin = Window_Base.new((544 - 256)/2,(414 - 64)/2,256,64)
text = sprintf(SL_Skill_Book::SKILLLEARNED, user.name, $data_skills[nt[2].to_i].name)
tewin.contents.draw_text(0, 0, 256, 32,text)
Graphics.wait(60)
tewin.dispose
break
end
end
end
}
if $alflag == 1
tewin2 = Window_Base.new((544 - 256)/2,(414 - 64)/2,256,64)
text = sprintf(SL_Skill_Book::SKILLCANNOTLEARN, user.name, "这个技能")
tewin2.contents.draw_text(0, 0, 256, 32,text)
Graphics.wait(60)
tewin2.dispose
end
sl_item_effective?(user, item)
end
end
复制代码
无责任饭粒。。。
简洁技能书系统【VX】.rar
(247.96 KB, 下载次数: 239)
2011-5-8 19:41 上传
点击文件名下载附件
作者:
terry_zhp
时间:
2011-5-8 20:29
物品调用公共事件,在公共事件内用条件分歧判断是否可以学习技能
作者:
伢疼
时间:
2011-5-10 11:46
提示:
作者被禁止或删除 内容自动屏蔽
作者:
爱丽丝·玛格特罗依德
时间:
2011-5-10 11:54
http://rpg.blue/forum.php?mod=vi ... p;page=7#pid1588386
我只是来推销的~~~
作者:
w8603294
时间:
2011-5-15 00:11
公共事件条件分歧
作者:
sq333333
时间:
2011-5-15 15:14
这个脚本很使用:victory: 谢谢幽灵大大
作者:
cqr19950307
时间:
2011-5-21 17:18
谢谢,收了。
作者:
云破月
时间:
2011-6-19 20:28
弱弱的问一句:是XP还是VX~~范例是VX的
作者:
低调·、
时间:
2011-8-5 10:25
如果、中途可以加入几十个角色、和换掉几十个角色、这样好像不行、条件分支又太麻烦。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1