Project1

标题: 请问怎样实现用物品学习技能? [打印本页]

作者: cqr19950307    时间: 2011-5-8 17:15
标题: 请问怎样实现用物品学习技能?
本帖最后由 cqr19950307 于 2011-5-21 17:20 编辑

就是使用特定物品可以让指定角色学习特定的技能,并且可以通过角色的职业来判断选中的角色是否能用物品学习该技能。
作者: 烁灵    时间: 2011-5-8 19:41
曾经给背背前辈写的简易技能书- -b
  1. #--------------------------------------------------
  2. # 简洁版技能书
  3. #           -BY 烁灵
  4. # 用法为:
  5. # 在 数据库->物品 中如下设置技能书:无任何能力提升及数值恢复,仅
  6. # 在 备注栏中写上如下信息

  7. # 技能书:1,2,3:9

  8. # 不要留空格,符号为半角字符
  9. # 9为要学的技能编号,
  10. # 1,2,3为能够习得的角色【职业】编号
  11. # 上述写法效果即为 若目标为1,2,3号职业,即使其学会9号技能
  12. # 可以多次重复,如

  13. # 技能书:1,3:9
  14. # 技能书:2,4:10

  15. # 即可分情况学会技能
  16. # 职业可以多个,但不要写太多使此语句长度超过一行
  17. #---------------------------------------------------
  18. module SL_Skill_Book
  19.   SKILLITEMSTR = "技能书"
  20.   SKILLLEARNASK = "确定让%s学会 %s?"
  21.   SKILLLEARN = "%s学会了技能 %s!"
  22.   SKILLLEARNED = "%s已经学会了%s!"
  23.   SKILLCANNOTLEARN = "%s无法学习%s!"
  24. end
  25. class Game_Battler  
  26.   alias sl_item_effective? item_effective?
  27.   def item_effective?(user, item)
  28.     $alflag = 0
  29.     item.note.each_line{|line|
  30.     $alflag = 0
  31.       nt = line.split(/:/)      
  32.       corr_target = []
  33.       if(nt[0]==SL_Skill_Book::SKILLITEMSTR) #判定为技能书
  34.         $alflag = 1
  35.         i = nt[1].split(/,/)
  36.         for j in 0...i.size
  37.           corr_target.push(i[j].to_i)
  38.         end
  39.         i.clear        
  40.         if corr_target.include?(user.class_id) #学习此行中的技能
  41.           if not user.skill_learn?($data_skills[nt[2].to_i]) #没学过
  42.             ttwin = Window_Base.new((544 - 324)/2,(414 - 64)/2 - 72,324,64)
  43.             text = sprintf(SL_Skill_Book::SKILLLEARNASK, user.name, $data_skills[nt[2].to_i].name)
  44.             ttwin.contents.draw_text(0, 0, 324, 32,text)

  45.             cmdwin = Window_Command.new(128,["确认","取消"])
  46.             cmdwin.x = (544 - cmdwin.width)/2
  47.             cmdwin.y = (416 - cmdwin.height)/2
  48.             cmdwin.active = true
  49.             while true
  50.               cmdwin.update
  51.               Graphics.update
  52.               Input.update              
  53.               break if Input.repeat?(Input::C)
  54.             end  
  55.             if cmdwin.index == 0
  56.               user.learn_skill(nt[2].to_i)  #学习              
  57.               cmdwin.dispose         
  58.               ttwin.dispose
  59.               twin = Window_Base.new((544 - 324)/2,(414 - 64)/2,324,64)
  60.               text = sprintf(SL_Skill_Book::SKILLLEARN, user.name, $data_skills[nt[2].to_i].name)
  61.               twin.contents.draw_text(0, 0, 324, 32,text)
  62.               Graphics.wait(60)
  63.               twin.dispose   
  64.               return true
  65.             else              
  66.               $alflag = 0   
  67.               cmdwin.dispose              
  68.               ttwin.dispose
  69.               break
  70.             end                          
  71.             cmdwin.dispose
  72.           else
  73.             $alflag = 2
  74.             tewin = Window_Base.new((544 - 256)/2,(414 - 64)/2,256,64)
  75.             text = sprintf(SL_Skill_Book::SKILLLEARNED, user.name, $data_skills[nt[2].to_i].name)
  76.             tewin.contents.draw_text(0, 0, 256, 32,text)
  77.             Graphics.wait(60)
  78.             tewin.dispose
  79.             break
  80.           end  
  81.         end           
  82.       end
  83.     }      
  84.     if $alflag == 1
  85.       tewin2 = Window_Base.new((544 - 256)/2,(414 - 64)/2,256,64)
  86.       text = sprintf(SL_Skill_Book::SKILLCANNOTLEARN, user.name, "这个技能")
  87.       tewin2.contents.draw_text(0, 0, 256, 32,text)
  88.       Graphics.wait(60)
  89.       tewin2.dispose
  90.     end   
  91.     sl_item_effective?(user, item)
  92.   end
  93. end
复制代码
无责任饭粒。。。
简洁技能书系统【VX】.rar (247.96 KB, 下载次数: 239)
作者: 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