Project1

标题: 如何让每个职业的属性成长不同? [打印本页]

作者: 857707751    时间: 2011-3-25 21:45
标题: 如何让每个职业的属性成长不同?
我想弄个转职系统,每个职业的力量,魔力这些成长不同,原来的职业里只有装备这些
请教下要怎么弄??dsu_plus_rewardpost_czw
作者: Wind2010    时间: 2011-3-25 22:12
转职后改变角色,并调整角色等级
作者: 后知后觉    时间: 2011-3-25 22:34
记得以前回答过这样的问题.不过实现方法非常简单.就懒得去搜索了.
  1. #==============================================================================
  2. # ■ 职业决定角色的属性曲线
  3. #    实现方法极其简单
  4. #    就是将下面的6个方法里默认的 @actor_id 改成了 @class_id + Excursion
  5. #    Excursion 是一个常量 我这设置的是50.
  6. #    意思就是:当某个角色的职业ID为1时.则该角色的成长曲线其实是第51号角色的
  7. #              当某个角色的职业ID为3时.则该角色的成长曲线其实是第53号角色的
  8. #    所以在使用时要注意数据库角色的数量要大于等于数据库职业数量+Excursion
  9. #    这个脚本可能和一些属性破限脚本冲突.这个脚本的原理我已经在一开始的时候说明
  10. #    发生冲突时就自行修改吧.
  11. #    在更改职业ID后建议执行一下【完全回复】事件指令.
  12. #    因为改职业后 hp 有可能大于 maxhp 调用一次【完全回复】即可修正
  13. #==============================================================================
  14. #==============================================================================
  15. # ■ Game_Actor
  16. #==============================================================================

  17. class Game_Actor < Game_Battler
  18.   Excursion = 50    # 角色属性曲线的偏移值 针对职业ID的偏移值
  19.   #--------------------------------------------------------------------------
  20.   # ● 获取基本 MaxHP
  21.   #--------------------------------------------------------------------------
  22.   def base_maxhp
  23.     return $data_actors[@class_id + Excursion].parameters[0, @level]
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 获取基本 MaxSP
  27.   #--------------------------------------------------------------------------
  28.   def base_maxsp
  29.     return $data_actors[@class_id + Excursion].parameters[1, @level]
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 获取基本力量
  33.   #--------------------------------------------------------------------------
  34.   def base_str
  35.     n = $data_actors[@class_id + Excursion].parameters[2, @level]
  36.     weapon = $data_weapons[@weapon_id]
  37.     armor1 = $data_armors[@armor1_id]
  38.     armor2 = $data_armors[@armor2_id]
  39.     armor3 = $data_armors[@armor3_id]
  40.     armor4 = $data_armors[@armor4_id]
  41.     n += weapon != nil ? weapon.str_plus : 0
  42.     n += armor1 != nil ? armor1.str_plus : 0
  43.     n += armor2 != nil ? armor2.str_plus : 0
  44.     n += armor3 != nil ? armor3.str_plus : 0
  45.     n += armor4 != nil ? armor4.str_plus : 0
  46.     return [[n, 1].max, 999].min
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 获取基本灵巧
  50.   #--------------------------------------------------------------------------
  51.   def base_dex
  52.     n = $data_actors[@class_id + Excursion].parameters[3, @level]
  53.     weapon = $data_weapons[@weapon_id]
  54.     armor1 = $data_armors[@armor1_id]
  55.     armor2 = $data_armors[@armor2_id]
  56.     armor3 = $data_armors[@armor3_id]
  57.     armor4 = $data_armors[@armor4_id]
  58.     n += weapon != nil ? weapon.dex_plus : 0
  59.     n += armor1 != nil ? armor1.dex_plus : 0
  60.     n += armor2 != nil ? armor2.dex_plus : 0
  61.     n += armor3 != nil ? armor3.dex_plus : 0
  62.     n += armor4 != nil ? armor4.dex_plus : 0
  63.     return [[n, 1].max, 999].min
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 获取基本速度
  67.   #--------------------------------------------------------------------------
  68.   def base_agi
  69.     n = $data_actors[@class_id + Excursion].parameters[4, @level]
  70.     weapon = $data_weapons[@weapon_id]
  71.     armor1 = $data_armors[@armor1_id]
  72.     armor2 = $data_armors[@armor2_id]
  73.     armor3 = $data_armors[@armor3_id]
  74.     armor4 = $data_armors[@armor4_id]
  75.     n += weapon != nil ? weapon.agi_plus : 0
  76.     n += armor1 != nil ? armor1.agi_plus : 0
  77.     n += armor2 != nil ? armor2.agi_plus : 0
  78.     n += armor3 != nil ? armor3.agi_plus : 0
  79.     n += armor4 != nil ? armor4.agi_plus : 0
  80.     return [[n, 1].max, 999].min
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 获取基本魔力
  84.   #--------------------------------------------------------------------------
  85.   def base_int
  86.     n = $data_actors[@class_id + Excursion].parameters[5, @level]
  87.     weapon = $data_weapons[@weapon_id]
  88.     armor1 = $data_armors[@armor1_id]
  89.     armor2 = $data_armors[@armor2_id]
  90.     armor3 = $data_armors[@armor3_id]
  91.     armor4 = $data_armors[@armor4_id]
  92.     n += weapon != nil ? weapon.int_plus : 0
  93.     n += armor1 != nil ? armor1.int_plus : 0
  94.     n += armor2 != nil ? armor2.int_plus : 0
  95.     n += armor3 != nil ? armor3.int_plus : 0
  96.     n += armor4 != nil ? armor4.int_plus : 0
  97.     return [[n, 1].max, 999].min
  98.   end
  99. end
复制代码





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