Project1

标题: 有关技能获得方式的问题 [打印本页]

作者: wu2671437    时间: 2011-7-29 23:23
标题: 有关技能获得方式的问题
本帖最后由 wu2671437 于 2011-7-30 11:18 编辑

在哪里修改技能获得不是通过等级高低来获得。因为我想通过职业等级来获得。要修改哪里?
工程 123.part2.rar (4.37 MB, 下载次数: 72)

123.part1.rar (4.77 MB, 下载次数: 63)

dsu_plus_rewardpost_czw
作者: Kimu    时间: 2011-7-29 23:28
原脚本中是没有关于职业等级的定义的

你用的什么脚本,请发工程
作者: MSQ    时间: 2011-7-29 23:56
不太清楚楼主是什么意思,通过职业等级来获得?难道是转职后学得新技能?那设置转职后在一级习得新技能不就行了。话说虽然有转职脚本,但我还是喜欢用事件转职~~~
作者: wu2671437    时间: 2011-7-30 00:27
本帖最后由 wu2671437 于 2011-7-30 17:47 编辑
MSQ 发表于 2011-7-29 23:56
不太清楚楼主是什么意思,通过职业等级来获得?难道是转职后学得新技能?那设置转职后在一级习得新技能不就 ...


我的意思是:想通过职业等级的提升来获得技能,而本来等级的提升不获得技能
作者: MSQ    时间: 2011-7-30 00:41
本帖最后由 MSQ 于 2011-7-30 14:10 编辑

疑问同沙发,如果是:村民——》剑士——》大剑师——》魔剑士之类的,还是很好解决的;但楼主用的应该是:剑士LV1——》剑士LV2——》剑士LV3这样吧。如果是楼主用的是纯事件,那与上面的也没有什么区别,但如果用了脚本,那就另当别论。所以LSSS才会让LZ发脚本。
ps:我脚本其实也不懂{:nm_9:}。





MSQ于2011-7-30 14:10补充以下内容:
这个……可能是我理解有问题。我看了楼主用公共事件做的转职后,虽然多是日文看不太懂,但关键地方似乎有点眉目。我看到楼主有个好玩的变量【0020:职业XX】,貌似转职时该变量不足时会错误进化(众人:你够了)。所以我推测这就是楼主所谓的职业等级。既然如此,那就再加一个公共事件——该公共事件为并行处理,设定条件分歧——当【0020:职业XX】大于等于??时,习得**技能。
不过看了楼主的工程,发现楼主用事件用的相当成熟,所以不知这个方法楼主用过没有,我其实就会一点事件的说。{:nm_9:}
ps1:日文太多了,看不懂呀,尤其是日文脚本(众人:曝露了,曝露了,你龌龊的想法曝露了)。不过看楼主的工程,楼主一定会很用心的把它做好,现在这鼓励一下。(众人:你谁呀!)
ps2:游戏测试不能。
作者: wu2671437    时间: 2011-7-30 14:45
本帖最后由 wu2671437 于 2011-7-30 17:45 编辑
MSQ 发表于 2011-7-30 00:41
疑问同沙发,如果是:村民——》剑士——》大剑师——》魔剑士之类的,还是很好解决的;但楼主用的应该是: ...


...那里事件我一直都没看过,我等下试试。
日文多我也没办法。。。因为从日文网站下载落来的。
你说游戏测试不能是指什么啊。。。。我能打的开啊



wu2671437于2011-7-30 17:49补充以下内容:
...事件我想了很久都想不到
作者: Kimu    时间: 2011-7-31 00:19
额..........在这个工程里面......技能已经是通过职业技能的高低来获取的..........所以说.........你要改什么.........
作者: wu2671437    时间: 2011-7-31 06:20
本帖最后由 wu2671437 于 2011-7-31 08:40 编辑
Kimu 发表于 2011-7-31 00:19
额..........在这个工程里面......技能已经是通过职业技能的高低来获取的..........所以说.........你要改 ...

没有啊,工程有两个等级。一个是LV1,另一个是职业名字LV1。而工程是通过LV1的提升而获得技能,我想改成职业名字LV1的提升来获得技能。而职业等级脚本里面貌似有段职业等级提升,追加新技能。但感觉上没作用。
作者: MSQ    时间: 2011-7-31 11:48
wu2671437 发表于 2011-7-31 06:20
没有啊,工程有两个等级。一个是LV1,另一个是职业名字LV1。而工程是通过LV1的提升而获得技能,我想改成职 ...

有一个有趣的想法:
类似DQ3的转职,转职后等级变为1,这样的话你可以用lv来代替职业名字lv。当然,等级曲线还得自己重新设计。至于总的lv嘛——看楼主事件用的那么好,在转职的事件中加入一个新变量来记录转职前的lv,再用一个变量记录当前lv,再加一个变量为前两个之和,就行了。
只是——楼主想要显示的是lv还是职业名字lv?要想两个都显示只有改脚本,但那已经超出在下的能力范围了{:nm_9:}。本人只能提供思路。
作者: wu2671437    时间: 2011-8-1 11:48
MSQ 发表于 2011-7-31 11:48
有一个有趣的想法:
类似DQ3的转职,转职后等级变为1,这样的话你可以用lv来代替职业名字lv。当然,等级 ...

但是我是两个都显示
作者: wolewax    时间: 2011-8-2 13:08
DQ那样的转职可以用多个人物来实现
这样就只需要这个人物离队 这个人物加入就能实现转职
还能实现转职遗忘技能 经验条转化
作者: 企鹅达达    时间: 2011-8-4 22:07
好久没来6R了,放链接 =_=
http://www14.atpages.jp/mikadan/ ... i_vx_script047.html
作者: feizhaodan    时间: 2011-8-5 11:27
不知道可不可以用脚本。可以的话用这个
  1. #==============================================================================
  2. # ☆ Job_Level_Base Ver.1.02
  3. #------------------------------------------------------------------------------
  4. #  職業にレベルをつけるスクリプトのBase
  5. #  アクター設定の使用より,色々なパラメータupできます
  6. #   スキルは,職業レベルで覚えます.
  7. #==============================================================================


  8. module Vocab
  9.   #////////////////////////////////////////////////////////////////
  10.   #職業のレベル表示文字
  11.   #////////////////////////////////////////////////////////////////
  12.   JobLevel  = "Lv."
  13.   #////////////////////////////////////////////////////////////////
  14.   #職業経験値の名称
  15.   #////////////////////////////////////////////////////////////////
  16.   JobExp    = "JP"
  17.   #////////////////////////////////////////////////////////////////
  18.   #戦闘終了後の職業経験値取得時の言葉
  19.   #////////////////////////////////////////////////////////////////
  20.   ObtainJobExp       = "%s の%sを獲得!"
  21.   #////////////////////////////////////////////////////////////////
  22.   #戦闘後,職業レベルup時のメッセージ
  23.   #%s は,1:アクター名,2:職業名,3:JobLevel,4:レベルの数字
  24.   #////////////////////////////////////////////////////////////////
  25.   JobLevelUP = "%sは%s%s %s になった!"
  26. end

  27. #//////////////////////////////////////////////////////////////////////
  28. #職業のNEXTゲージの色設定
  29. #0~31番までの色を選択
  30. #(番号に対応する色は,メッセージに使用する色(\C[]で使用するやつ)と同じ)
  31. #(通常) ゲージ色左側:0,右側:1
  32. #(満タン)ゲージ色左側:2,右側:3
  33. #//////////////////////////////////////////////////////////////////////
  34. JOB_NEXT_GUAGE_COLOR ={
  35. 0=>28,
  36. 1=>29,
  37. 2=>14,
  38. 3=>17,
  39. }


  40. #////////////////////////////////////////////////////////////////
  41. #各職業のパラメータと経験値付け
  42. # 職業id => actor.id
  43. # 職業id => 0 ←レベルなし
  44. #////////////////////////////////////////////////////////////////
  45. JOB_MAKE_PARA_EXP = {
  46.    1=>21, 2=>22, 3=>23, 4=>24, 5=>25, 6=>26, 7=>27, 8=>28, 9=>29,10=>0,
  47.   11=>0, 12=>0, 13=>0, 14=>0, 15=>0, 16=>0, 17=>0, 18=>0, 19=>0, 20=>0,
  48.   21=>0, 22=>0, 23=>0, 24=>0, 25=>0 ,26=>0, 27=>0, 28=>0, 29=>0, 30=>0,
  49. }

  50. #////////////////////////////////////////////////////////////////
  51. #各職業の最大レベル
  52. # 職業id => 1~99
  53. #////////////////////////////////////////////////////////////////
  54. JOB_MAKE_LEVEL_MAX = {
  55.    1=>8,  2=>8,  3=>8,  4=>8,  5=>8,  6=>8,  7=>8,  8=>8,  9=>8, 10=>1,
  56.   11=>1, 12=>1, 13=>1, 14=>1, 15=>1, 16=>1, 17=>1, 18=>1, 19=>1, 20=>1,
  57.   21=>1, 22=>1, 23=>1, 24=>1, 25=>1, 26=>1, 27=>1, 28=>1, 29=>1, 30=>1,
  58. }



  59. #////////////////////////////////////////////////////////////////
  60. #↓ここからは,本スクリプト
  61. #////////////////////////////////////////////////////////////////

  62. class Game_Actor < Game_Battler
  63.   #--------------------------------------------------------------------------
  64.   # ☆ 公開インスタンス変数 <新規追加>
  65.   #--------------------------------------------------------------------------
  66.   attr_reader   :job_level                # 職業 レベル
  67.   attr_reader   :job_exp                  # 職業 経験値
  68.   attr_reader   :job_point                # 職業 経験値 (可変)
  69.   attr_reader   :exp_list                 # 次のレベルまでの経験値
  70.   #--------------------------------------------------------------------------
  71.   # ☆ セットアップ <追加変更>
  72.   #     actor_id : アクター ID
  73.   #--------------------------------------------------------------------------
  74.   def setup(actor_id)
  75.     actor = $data_actors[actor_id]
  76.     @actor_id = actor_id
  77.     @name = actor.name
  78.     @character_name = actor.character_name
  79.     @character_index = actor.character_index
  80.     @face_name = actor.face_name
  81.     @face_index = actor.face_index
  82.     @class_id = actor.class_id
  83.     @weapon_id = actor.weapon_id
  84.     @armor1_id = actor.armor1_id
  85.     @armor2_id = actor.armor2_id
  86.     @armor3_id = actor.armor3_id
  87.     @armor4_id = actor.armor4_id
  88.     @level = actor.initial_level
  89.     @exp_list = Array.new(101)
  90.     make_exp_list
  91.     @exp = @exp_list[@level]
  92.    
  93.     @job_level   = [] #追加:職業レベル(容量:職業の数)
  94.     @job_exp     = [] #追加:職業経験値(容量:職業の数)
  95.     @job_point   = [] #追加:職業経験値(容量:職業の数)←使うたびに減る
  96.     for i in 0...$data_classes.size              #追加
  97.       @job_level[i]    =1                        #追加:初期化:全てのレベル1
  98.       @job_exp[i]      =0                        #追加:初期化:全ての経験値0
  99.       @job_point[i]    =0                        #追加:初期化:全ての経験値0      
  100.     end                                          #追加   
  101.    
  102.     @skills = []
  103.     for i in self.class.learnings
  104.       learn_skill(i.skill_id) if i.level <= @job_level[@class_id] #変更: スキルは職業レベルで覚える
  105.     end
  106.    
  107.     clear_extra_values
  108.     recover_all
  109.   end
  110.   #--------------------------------------------------------------------------
  111.   # ☆ 基本 MaxHP の取得 <追加変更>
  112.   #--------------------------------------------------------------------------
  113.   alias old_base_maxhp base_maxhp
  114.   def base_maxhp
  115.     kind = 0
  116.     n = old_base_maxhp
  117.     n +=self.job_level_various_up(kind,@class_id,@job_level[@class_id]) #追加
  118.     return n
  119.   end
  120.   #--------------------------------------------------------------------------
  121.   # ☆ 基本 MaxMP の取得 <追加変更>
  122.   #--------------------------------------------------------------------------
  123.   alias old_base_maxmp base_maxmp
  124.   def base_maxmp
  125.     kind = 1
  126.     n = old_base_maxmp
  127.     n +=self.job_level_various_up(kind,@class_id,@job_level[@class_id]) #追加
  128.     return n
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ☆ 基本攻撃力の取得 <追加変更>
  132.   #--------------------------------------------------------------------------
  133.   alias old_base_atk base_atk
  134.   def base_atk
  135.     kind = 2
  136.     n = old_base_atk
  137.     n +=self.job_level_various_up(kind,@class_id,@job_level[@class_id]) #追加
  138.     return n
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # ☆ 基本防御力の取得 <追加変更>
  142.   #--------------------------------------------------------------------------
  143.   alias old_base_def base_def
  144.   def base_def
  145.     kind = 3
  146.     n = old_base_def
  147.     n +=self.job_level_various_up(kind,@class_id,@job_level[@class_id]) #追加
  148.     return n
  149.   end
  150.   #--------------------------------------------------------------------------
  151.   # ☆ 基本精神力の取得 <追加変更>
  152.   #--------------------------------------------------------------------------
  153.   alias old_base_spi base_spi
  154.   def base_spi
  155.     kind = 4
  156.     n = old_base_spi
  157.     n +=self.job_level_various_up(kind,@class_id,@job_level[@class_id]) #追加
  158.     return n
  159.   end
  160.   #--------------------------------------------------------------------------
  161.   # ☆ 基本敏捷性の取得 <追加変更>
  162.   #--------------------------------------------------------------------------
  163.   alias old_base_agi base_agi
  164.   def base_agi
  165.     kind = 5
  166.     n = old_base_agi
  167.     n +=self.job_level_various_up(kind,@class_id,@job_level[@class_id]) #追加
  168.     return n
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ☆ クリティカル率の取得 <追加変更>
  172.   #--------------------------------------------------------------------------
  173.   def cri
  174.     n = 4
  175.    
  176.     judge = actor.critical_bonus #追加
  177.     if judge == false            #追加
  178.       if JOB_MAKE_PARA_EXP[actor.class_id] >0 #追加
  179.         judge = $data_actors[JOB_MAKE_PARA_EXP[actor.class_id]].critical_bonus #追加
  180.       end                        #追加
  181.     end                          #追加
  182.    
  183.    
  184.     n += 4 if judge #変更
  185.     for weapon in weapons.compact
  186.       n += 4 if weapon.critical_bonus
  187.     end
  188.     return n
  189.   end
  190.   #--------------------------------------------------------------------------
  191.   # ☆ オプション [二刀流] の取得 <追加変更>
  192.   #--------------------------------------------------------------------------
  193.   def two_swords_style
  194.     judge = actor.two_swords_style
  195.    
  196.     if judge == false
  197.       if JOB_MAKE_PARA_EXP[actor.class_id] >0
  198.         judge = $data_actors[JOB_MAKE_PARA_EXP[actor.class_id]].two_swords_style
  199.       end
  200.     end
  201.     return judge
  202.   end
  203.   #--------------------------------------------------------------------------
  204.   # ☆ オプション [装備固定] の取得 <追加変更>
  205.   #--------------------------------------------------------------------------
  206.   def fix_equipment
  207.     judge = actor.fix_equipment
  208.     if judge == false
  209.       if JOB_MAKE_PARA_EXP[actor.class_id] >0
  210.         judge = $data_actors[JOB_MAKE_PARA_EXP[actor.class_id]].fix_equipment
  211.       end
  212.     end
  213.     return judge
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # ☆ オプション [自動戦闘] の取得 <追加変更>
  217.   #--------------------------------------------------------------------------
  218.   def auto_battle
  219.     judge = actor.auto_battle
  220.     if judge == false
  221.       if JOB_MAKE_PARA_EXP[actor.class_id] >0
  222.         judge = $data_actors[JOB_MAKE_PARA_EXP[actor.class_id]].auto_battle
  223.       end
  224.     end
  225.     return judge
  226.   end
  227.   #--------------------------------------------------------------------------
  228.   # ☆ オプション [強力防御] の取得 <追加変更>
  229.   #--------------------------------------------------------------------------
  230.   def super_guard
  231.     judge = actor.super_guard
  232.     if judge == false
  233.       if JOB_MAKE_PARA_EXP[actor.class_id] >0
  234.         judge = $data_actors[JOB_MAKE_PARA_EXP[actor.class_id]].super_guard
  235.       end
  236.     end
  237.     return judge
  238.   end
  239.   #--------------------------------------------------------------------------
  240.   # ☆ オプション [薬の知識] の取得 <追加変更>
  241.   #--------------------------------------------------------------------------
  242.   def pharmacology
  243.     judge = actor.pharmacology
  244.     if judge == false
  245.       if JOB_MAKE_PARA_EXP[actor.class_id] >0
  246.         judge = $data_actors[JOB_MAKE_PARA_EXP[actor.class_id]].pharmacology
  247.       end
  248.     end
  249.     return judge
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ☆ レベルに応じたパラメータの増加量 <新規追加>
  253.   # kind   : upする種類. 0:hp,1:mp,2:atk,3:def,4:spi,5:agi
  254.   # id     : 武器id
  255.   # lv     : 武器レベル
  256.   #--------------------------------------------------------------------------
  257.   def job_level_various_up(kind,id,lv)
  258.     if JOB_MAKE_PARA_EXP[id] > 0
  259.       actor =  $data_actors[JOB_MAKE_PARA_EXP[id]]
  260.       if actor.parameters[kind, lv] > 0
  261.         return actor.parameters[kind, lv] - 1 #Lv.1の時も1があるから,その分引く!
  262.       else
  263.         return 0
  264.       end
  265.     else
  266.       return 0
  267.     end
  268.   end
  269.   #--------------------------------------------------------------------------
  270.   # ☆ 職業の次のレベルまでの経験値計算 <新規追加>
  271.   #--------------------------------------------------------------------------
  272.   def next_job_level(id)
  273.     last_level=@job_level[id]
  274.     last_skills = skills
  275.    
  276.     if last_level <JOB_MAKE_LEVEL_MAX[id]
  277.       loop do
  278.         level=@job_level[id]
  279.         next_exp = $game_actors[JOB_MAKE_PARA_EXP[id]].exp_list[level+1] #追加:レベルupに    必要な経験値
  280.         level_up_exp = next_exp - @job_exp[id] #追加        
  281.         if level_up_exp <= 0
  282.           @job_level[id] += 1
  283.           for learning in self.class.learnings #追加:職業レベルでスキル覚え
  284.             learn_skill(learning.skill_id) if learning.level <= @job_level[id] #追加:
  285.           end                                  #追加:
  286.           next
  287.         else
  288.           break
  289.         end
  290.       end
  291.       if last_level !=  @job_level[id] and $game_temp.in_battle == true
  292.         $game_message.new_page
  293.         text = sprintf(Vocab::JobLevelUP, @name ,$data_classes[id].name,Vocab::JobLevel, @job_level[id])
  294.         $game_message.texts.push(text)
  295.         new_skills = skills - last_skills
  296.         for skill in new_skills
  297.           text = sprintf(Vocab::ObtainSkill, skill.name)
  298.           $game_message.texts.push(text)
  299.         end
  300.       end
  301.     end
  302.   end
  303.   #--------------------------------------------------------------------------
  304.   # ☆ レベルアップ <追加変更>
  305.   # ただ,レベルupしただけでは,スキル覚えれない
  306.   #--------------------------------------------------------------------------
  307.   def level_up
  308.     @level += 1
  309.     #for learning in self.class.learnings
  310.     #  learn_skill(learning.skill_id) if learning.level == @level
  311.     #end
  312.   end
  313. end


  314. class Window_Base < Window
  315.   #--------------------------------------------------------------------------
  316.   # ☆ クラスの描画 <追加変更>
  317.   #     actor : アクター
  318.   #     x     : 描画先 X 座標
  319.   #     y     : 描画先 Y 座標
  320.   #--------------------------------------------------------------------------
  321.   def draw_actor_class(actor, x, y)
  322.    
  323.     job = actor.class_id
  324.    
  325.     if JOB_MAKE_PARA_EXP[job] > 0                       #追加
  326.       level = actor.job_level[job]                     #追加:今の職業レベル
  327.       exp   = actor.job_exp[job]                       #追加:今の経験値
  328.          
  329.       draw_actor_exp_gauge_job(level,exp, job, x, y)    #追加
  330.       job_name = sprintf(actor.class.name+Vocab::JobLevel+"%s",level) #追加
  331.     else
  332.       job_name = actor.class.name #追加
  333.     end   
  334.    
  335.     self.contents.font.color = normal_color
  336.     self.contents.draw_text(x, y, 108, WLH, job_name) #変更
  337.   end  
  338.   #--------------------------------------------------------------------------
  339.   # ☆ 職業用特別expゲージの描画 <新規>
  340.   #     level : 今の職業レベル
  341.   #     exp   : 今の経験値
  342.   #     id    : item.id
  343.   #     x     : 描画先 X 座標
  344.   #     y     : 描画先 Y 座標
  345.   #     width : 幅
  346.   #--------------------------------------------------------------------------
  347.   def draw_actor_exp_gauge_job(level, exp, id, x, y, width = 120) #変更
  348.     now_exp  = $game_actors[JOB_MAKE_PARA_EXP[id]].exp_list[level]   #追加:現在のレベルに必要な経験値
  349.     next_exp = $game_actors[JOB_MAKE_PARA_EXP[id]].exp_list[level+1] #追加:レベルupに    必要な経験値
  350.    
  351.     if level < JOB_MAKE_LEVEL_MAX[id]
  352.       if exp >= next_exp
  353.         gw = width
  354.       else
  355.         gw = width *  (exp - now_exp) / (next_exp - now_exp)
  356.       end
  357.     else
  358.         gw = width
  359.     end
  360.       
  361.     if gw < width
  362.       gc1 = text_color(JOB_NEXT_GUAGE_COLOR[0])
  363.       gc2 = text_color(JOB_NEXT_GUAGE_COLOR[1])

  364.     else
  365.       gw  = width
  366.       gc1 = text_color(JOB_NEXT_GUAGE_COLOR[2])#expmaxのとき
  367.       gc2 = text_color(JOB_NEXT_GUAGE_COLOR[3])#expmaxのとき
  368.     end
  369.     self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
  370.     self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  371.   end
  372. end


  373. class Scene_Battle < Scene_Base
  374.   #--------------------------------------------------------------------------
  375.   # ☆ 勝利の処理 <追加変更>
  376.   #--------------------------------------------------------------------------
  377.   def process_victory
  378.     @info_viewport.visible = false
  379.     @message_window.visible = true
  380.     RPG::BGM.stop
  381.     $game_system.battle_end_me.play
  382.     unless $BTEST
  383.       $game_temp.map_bgm.play
  384.       $game_temp.map_bgs.play
  385.     end
  386.     display_exp_and_gold
  387.     display_drop_items
  388.     display_level_up
  389.     #display_jp_level_up #追加
  390.     battle_end(0)
  391.   end
  392.   #--------------------------------------------------------------------------
  393.   # ☆ 獲得した経験値とお金の表示 <追加変更>
  394.   # バトル終了時に,jpを取得
  395.   #--------------------------------------------------------------------------
  396.   def display_exp_and_gold
  397.     exp = $game_troop.exp_total
  398.     gold = $game_troop.gold_total
  399.    
  400.     jp = $game_troop.jp_total                        #追加
  401.    
  402.     $game_party.gain_gold(gold)
  403.     text = sprintf(Vocab::Victory, $game_party.name)
  404.     $game_message.texts.push('\|' + text)
  405.     if exp > 0
  406.       text = sprintf(Vocab::ObtainExp, exp)
  407.       $game_message.texts.push('\.' + text)
  408.     end
  409.     if jp > 0                                        #追加
  410.       text = sprintf(Vocab::ObtainJobExp,jp,Vocab::JobExp)  #追加
  411.       $game_message.texts.push('\.' + text)          #追加
  412.     end                                              #追加
  413.     if gold > 0
  414.       text = sprintf(Vocab::ObtainGold, gold, Vocab::gold)
  415.       $game_message.texts.push('\.' + text)
  416.     end
  417.    
  418.     wait_for_message
  419.   end
  420.   #--------------------------------------------------------------------------
  421.   # ☆ レベルアップの表示 <追加変更>
  422.   #--------------------------------------------------------------------------
  423.   def display_level_up
  424.     exp = $game_troop.exp_total
  425.     for actor in $game_party.existing_members
  426.       last_level = actor.level
  427.       last_skills = actor.skills
  428.       actor.gain_exp(exp, true)
  429.       display_jp_level_up(actor) #追加
  430.     end
  431.     wait_for_message
  432.   end
  433.   #--------------------------------------------------------------------------
  434.   # ☆ JPレベルアップの表示 <新規作成>
  435.   #--------------------------------------------------------------------------
  436.   def display_jp_level_up(actor)
  437.     jp = $game_troop.jp_total
  438.       if JOB_MAKE_PARA_EXP[actor.class_id] > 0
  439.         actor.job_exp[actor.class_id] += jp
  440.         actor.job_point[actor.class_id] += jp #追加
  441.         actor.next_job_level(actor.class_id)
  442.       end
  443.   end
  444. end

  445. class Game_Troop < Game_Unit
  446.   #--------------------------------------------------------------------------
  447.   # ☆ jpの合計計算 <新規追加>
  448.   #--------------------------------------------------------------------------
  449.   def jp_total
  450.     jp = 0
  451.     for enemy in dead_members
  452.       unless enemy.hidden
  453.         jp += enemy.jp
  454.       end
  455.     end
  456.     return jp
  457.   end
  458. end

  459. class Game_Enemy < Game_Battler
  460.   #--------------------------------------------------------------------------
  461.   # ☆ jpの取得 <新規追加>
  462.   #--------------------------------------------------------------------------
  463.   def jp
  464.     jp = get_jp(enemy.note.clone)
  465.     return jp
  466.   end  
  467.   #--------------------------------------------------------------------------
  468.   # ☆ jpの取得計算 <新規追加>
  469.   #--------------------------------------------------------------------------
  470.   def get_jp(text)
  471.     if text != nil
  472.       jp=0
  473.       if text.include?("jp=")
  474.         jp=text.scan(/jp=(\d*)/i)
  475.         text.gsub!(/jp=(\d*)/i,"")
  476.         return jp.to_s.to_i
  477.       else   
  478.         return 0
  479.       end
  480.     else
  481.       return 0
  482.     end
  483.   end
  484. end
  485.   
  486. #////////////////////////////////////////////////////////////////
  487. #作成者: ehime
  488. #サイト: 未完のダンボール (Mikan no Danboru)
  489. #   URL: http://www.abcoroti.com/~nekoneko/index.html
  490. #readmeやスタッフロールの明記,使用報告は任意.
  491. #////////////////////////////////////////////////////////////////
复制代码
之后,职业处的技能习得等级就会变成职业等级而非角色等级。
然后在第50行左右的JOB_MAKE_PARA_EXP处用
职业ID =>角色ID
的格式把所有职业都设置到一个空角色。
注意不是是这个职业的角色而是一个空角色。
之后在设置这个空角色的经验曲线,各种属性曲线。
经验曲线会变成职业Lv升级用的经验曲线,
属性曲线会加成到角色属性上。

在60行左右有一个JOB_MAKE_LEVEL_MAX
在这里用
职业ID => 数字
的格式把所有的职业都设置一次。在这里设置的是职业Lv的最大值。范围是1~99。

最后一步。
在敌人的备注栏里写
jp=数字
的格式写上职业获得经验。


还有一些改点:

在第14行左右:JobLevel  = "Lv."
在""中间写上职业等级的符号。

在18行左右:JobExp    = "JP"
在""中间写上职业经验的符号。这个不影响写在敌人备注栏里的内容。

在第22行左右:ObtainJobExp       = "%s の%sを獲得!"
在""中间写上获得JP时显示的话。第一个%s代表获得量,第二个%s代表职业经验的符号

在第27行左右:JobLevelUP = "%sは%s%s %s になった!"
在""中间写上职业升级的时候现实的话。第一个%s代表角色名,第二个%s代表职业名,第三个%s代表职业等级符号,第四个%s代表职业等级。

终于完了...
作者: wu2671437    时间: 2011-8-6 00:26
本帖最后由 wu2671437 于 2011-8-7 13:39 编辑
feizhaodan 发表于  
不知道可不可以用脚本。可以的话用这个之后,职业处的技能习得等级就会变成职业等级而非角色等级。
然后在 ...


工程本身就有个职业等级脚本,你这个脚本一放进去就出问题了。。。。
作者: feizhaodan    时间: 2011-8-10 14:52
本帖最后由 feizhaodan 于 2011-8-10 15:00 编辑

明白了。
把加点脚本里的
  1.     for learning in self.class.learnings
  2.       learn_skill(learning.skill_id) if   learning.level == @level
  3.     end
复制代码
这段给注释了就ok
在第50行左右




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1