您现在看到的是 66RPG.com 的资源列表,若这些对您有帮助,
希望您以充值论坛VIP点数的方式为我们捐款,
您的捐款将用于本站的三台服务器托管费,以及网通100M带宽的租金

66RPG充值页面 66RPG充值页面

最近更新记录

  • 2012-02-14 : 新增两个音乐素材
  • 2012-02-14 : 新增一个游戏资源
  • 2012-02-10 : 新增3个素材资源
  • 2012-02-09 : 新增/更新16个资源

66RPG 站内搜索

精确(推荐) 全文

本站收集内容是为了便于让游戏制作爱好者互相学习与交流,所有内容的版权与著作权均归原作者/公司所有。如进行有可能引起纠纷的使用,建议您先与原作方沟通。
ikki的敌人等级设定教程
更新:2012-01-27 10:50:58 | 点击量:924
ikki的敌人等级设定教程
教程作者:ikki
其实就是给敌人新建了等级属性,在队伍里的事件设置里为敌人设置等级

其实就是给敌人新建了等级属性,在队伍里的事件设置里为敌人设置等级(设置完后加完全回复哦,否则,血不满哦)。具体内容看范例吧,脚本部分很简单,事件部分也很简单。
  首先设置Game_Enemy哦。具体的可以自己根据需要更改

#===============================================================
# 本脚本来自www.66rpg.com
# 功能:Game_Enemy里加入了敌人等级的设定
#===============================================================
#==============================================================================
# 本脚本来自www.66rpg.com,使用前请参考制作录像
#==============================================================================
# ■ Game_Enemy
#------------------------------------------------------------------------------
#  处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的
# 内部使用。
#==============================================================================
$a1 = rand(10)    #更改能力用的随机数变量
$a2 = rand(5)     #更改能力用的随机数变量
$a3 = rand(2)     #更改能力用的随机数变量
class Game_Enemy < Game_Battler
 attr_accessor   :level                    # 水平
 #--------------------------------------------------------------------------
 # ● 初始化对像
 #     troop_id     : 循环 ID
 #     member_index : 循环成员的索引
 #--------------------------------------------------------------------------
 def initialize(troop_id, member_index)
   super()
   @troop_id = troop_id
   @member_index = member_index
   troop = $data_troops[@troop_id]
   @enemy_id = troop.members[@member_index].enemy_id
   enemy = $data_enemies[@enemy_id]
   
   @level = 1                  #初始等级的设定
   
   @battler_name = enemy.battler_name
   @battler_hue = enemy.battler_hue
   @hp = maxhp
   @sp = maxsp
   @hidden = troop.members[@member_index].hidden
   @immortal = troop.members[@member_index].immortal
 end
 #--------------------------------------------------------------------------
 # ● 更改水品
 #     level : 新的等级
 #--------------------------------------------------------------------------
 def level
   return @level
 end
 #--------------------------------------------------------------------------
 # ● 获取敌人 ID
 #--------------------------------------------------------------------------
 def id
   return @enemy_id
 end
 #--------------------------------------------------------------------------
 # ● 获取索引
 #--------------------------------------------------------------------------
 def index
   return @member_index
 end
 #--------------------------------------------------------------------------
 # ● 获取名称
 #--------------------------------------------------------------------------
 def name
   return $data_enemies[@enemy_id].name
 end
 #--------------------------------------------------------------------------
 # ● 获取基本 MaxHP
 #--------------------------------------------------------------------------
 def base_maxhp
   return ($data_enemies[@enemy_id].maxhp + $a1) * @level
 end
 #--------------------------------------------------------------------------
 # ● 获取基本 MaxSP
 #--------------------------------------------------------------------------
 def base_maxsp
   return ($data_enemies[@enemy_id].maxsp + $a1) * @level
 end
 #--------------------------------------------------------------------------
 # ● 获取基本力量
 #--------------------------------------------------------------------------
 def base_str
   return ($data_enemies[@enemy_id].str + $a2) * @level
 end
 #--------------------------------------------------------------------------
 # ● 获取基本灵巧
 #--------------------------------------------------------------------------
 def base_dex
   return ($data_enemies[@enemy_id].dex + $a2) * @level
 end
 #--------------------------------------------------------------------------
 # ● 获取基本速度
 #--------------------------------------------------------------------------
 def base_agi
   return ($data_enemies[@enemy_id].agi + $a2) * @level
 end
 #--------------------------------------------------------------------------
 # ● 获取基本魔力
 #--------------------------------------------------------------------------
 def base_int
   return ($data_enemies[@enemy_id].int + $a2) * @level
 end
 #--------------------------------------------------------------------------
 # ● 获取基本攻击力
 #--------------------------------------------------------------------------
 def base_atk
   return ($data_enemies[@enemy_id].atk + $a2) * @level
 end
 #--------------------------------------------------------------------------
 # ● 获取基本物理防御
 #--------------------------------------------------------------------------
 def base_pdef
   return ($data_enemies[@enemy_id].pdef + $a2) * @level
 end
 #--------------------------------------------------------------------------
 # ● 获取基本魔法防御
 #--------------------------------------------------------------------------
 def base_mdef
   return ($data_enemies[@enemy_id].mdef + $a2) * @level
 end
 #--------------------------------------------------------------------------
 # ● 获取基本回避修正
 #--------------------------------------------------------------------------
 def base_eva
   return ($data_enemies[@enemy_id].eva + $a3) * @level
 end
 #--------------------------------------------------------------------------
 # ● 普通攻击 获取攻击方动画 ID
 #--------------------------------------------------------------------------
 def animation1_id
   return $data_enemies[@enemy_id].animation1_id
 end
 #--------------------------------------------------------------------------
 # ● 普通攻击 获取对像方动画 ID
 #--------------------------------------------------------------------------
 def animation2_id
   return $data_enemies[@enemy_id].animation2_id
 end
 #--------------------------------------------------------------------------
 # ● 获取属性修正值
 #     element_id : 属性 ID
 #--------------------------------------------------------------------------
 def element_rate(element_id)
   # 获取对应属性有效度的数值
   table = [0,200,150,100,50,0,-100]
   result = table[$data_enemies[@enemy_id].element_ranks[element_id]]
   # 状态能防御本属性的情况下效果减半
   for i in @states
     if $data_states[i].guard_element_set.include?(element_id)
       result /= 2
     end
   end
   # 过程结束
   return result
 end
 #--------------------------------------------------------------------------
 # ● 获取属性有效度
 #--------------------------------------------------------------------------
 def state_ranks
   return $data_enemies[@enemy_id].state_ranks
 end
 #--------------------------------------------------------------------------
 # ● 属性防御判定
 #     state_id : 状态 ID
 #--------------------------------------------------------------------------
 def state_guard?(state_id)
   return false
 end
 #--------------------------------------------------------------------------
 # ● 获取普通攻击属性
 #--------------------------------------------------------------------------
 def element_set
   return []
 end
 #--------------------------------------------------------------------------
 # ● 获取普通攻击的状态变化 (+)
 #--------------------------------------------------------------------------
 def plus_state_set
   return []
 end
 #--------------------------------------------------------------------------
 # ● 获取普通攻击的状态变化 (-)
 #--------------------------------------------------------------------------
 def minus_state_set
   return []
 end
 #--------------------------------------------------------------------------
 # ● 获取行动
 #--------------------------------------------------------------------------
 def actions
   return $data_enemies[@enemy_id].actions
 end
 #--------------------------------------------------------------------------
 # ● 获取 EXP
 #--------------------------------------------------------------------------
 def exp
   for actor in $game_party.actors
     if actor.level > @level + 5 or actor.level < @level - 5
       return $data_enemies[@enemy_id].exp + $a3
     elsif actor.level > @level + 15
       return ($data_enemies[@enemy_id].exp + $a3) / 10
     else
       return (($data_enemies[@enemy_id].exp + $a3) * @level) / 2
     end
   end
 end
 #--------------------------------------------------------------------------
 # ● 获取金钱
 #--------------------------------------------------------------------------
 def gold
   for actor in $game_party.actors
     if actor.level > @level + 5 or actor.level < @level - 5
       return $data_enemies[@enemy_id].gold + $a3
     elsif actor.level > @level + 15
       return ($data_enemies[@enemy_id].gold + $a3) / 10
     else
       return (($data_enemies[@enemy_id].gold + $a3) * @level) / 2
     end
   end
 end
 #--------------------------------------------------------------------------
 # ● 获取物品 ID
 #--------------------------------------------------------------------------
 def item_id
   return $data_enemies[@enemy_id].item_id
 end
 #--------------------------------------------------------------------------
 # ● 获取武器 ID
 #--------------------------------------------------------------------------
 def weapon_id
   return $data_enemies[@enemy_id].weapon_id
 end
 #--------------------------------------------------------------------------
 # ● 获取放具 ID
 #--------------------------------------------------------------------------
 def armor_id
   return $data_enemies[@enemy_id].armor_id
 end
 #--------------------------------------------------------------------------
 # ● 获取宝物出现率
 #--------------------------------------------------------------------------
 def treasure_prob
   return $data_enemies[@enemy_id].treasure_prob
 end
 #--------------------------------------------------------------------------
 # ● 取得战斗画面 X 坐标
 #--------------------------------------------------------------------------
 def screen_x
   return $data_troops[@troop_id].members[@member_index].x
 end
 #--------------------------------------------------------------------------
 # ● 取得战斗画面 Y 坐标
 #--------------------------------------------------------------------------
 def screen_y
   return $data_troops[@troop_id].members[@member_index].y
 end
 #--------------------------------------------------------------------------
 # ● 取得战斗画面 Z 坐标
 #--------------------------------------------------------------------------
 def screen_z
   return screen_y
 end
 #--------------------------------------------------------------------------
 # ● 逃跑
 #--------------------------------------------------------------------------
 def escape
   # 设置击中标志
   @hidden = true
   # 清除当前行动
   self.current_action.clear
 end
 #--------------------------------------------------------------------------
 # ● 变身
 #     enemy_id : 变身为的敌人 ID
 #--------------------------------------------------------------------------
 def transform(enemy_id)
   # 更改敌人 ID
   @enemy_id = enemy_id
   # 更改战斗图形
   @battler_name = $data_enemies[@enemy_id].battler_name
   @battler_hue = $data_enemies[@enemy_id].battler_hue
   # 在生成行动
   make_action
 end
 #--------------------------------------------------------------------------
 # ● 生成行动
 #--------------------------------------------------------------------------
 def make_action
   # 清除当前行动
   self.current_action.clear
   # 无法行动的情况
   unless self.movable?
     # 过程结束
     return
   end
   # 抽取现在有效的行动
   available_actions = []
   rating_max = 0
   for action in self.actions
     # 确认回合条件
     n = $game_temp.battle_turn
     a = action.condition_turn_a
     b = action.condition_turn_b
     if (b == 0 and n != a) or
        (b > 0 and (n < 1 or n < a or n % b != a % b))
       next
     end
     # 确认 HP 条件
     if self.hp * 100.0 / self.maxhp > action.condition_hp
       next
     end
     # 确认等级条件
     if $game_party.max_level < action.condition_level
       next
     end
     # 确认开关条件
     switch_id = action.condition_switch_id
     if switch_id > 0 and $game_switches[switch_id] == false
       next
     end
     # 符合条件 : 添加本行动
     available_actions.push(action)
     if action.rating > rating_max
       rating_max = action.rating
     end
   end
   # 最大概率值作为 3 合计计算(0 除外)
   ratings_total = 0
   for action in available_actions
     if action.rating > rating_max - 3
       ratings_total += action.rating - (rating_max - 3)
     end
   end
   # 概率合计不为 0 的情况下
   if ratings_total > 0
     # 生成随机数
     value = rand(ratings_total)
     # 设置对应生成随机数的当前行动
     for action in available_actions
       if action.rating > rating_max - 3
         if value < action.rating - (rating_max - 3)
           self.current_action.kind = action.kind
           self.current_action.basic = action.basic
           self.current_action.skill_id = action.skill_id
           self.current_action.decide_random_target_for_enemy
           return
         else
           value -= action.rating - (rating_max - 3)
         end
       end
     end
   end
 end
end


然后,更改Window_Help,让其等级显示出来。

#==============================================================================
# 本脚本来自www.66rpg.com,使用前请参考制作录像
#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
#  特技及物品的说明、角色的状态显示的窗口。
#==============================================================================

class Window_Help < Window_Base
 #--------------------------------------------------------------------------
 # ● 初始化对像
 #--------------------------------------------------------------------------
 def initialize
   super(0, 0, 640, 64)
   self.contents = Bitmap.new(width - 32, height - 32)
 end
 #--------------------------------------------------------------------------
 # ● 设置文本
 #     text  : 窗口显示的字符串
 #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
 #--------------------------------------------------------------------------
 def set_text(text, align = 0)
   # 如果文本和对齐方式的至少一方与上次的不同
   if text != @text or align != @align
     # 再描绘文本
     self.contents.clear
     self.contents.font.color = normal_color
     self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
     @text = text
     @align = align
     @actor = nil
   end
   self.visible = true
 end
 #--------------------------------------------------------------------------
 # ● 设置角色
 #     actor : 要显示状态的角色
 #--------------------------------------------------------------------------
 def set_actor(actor)
   if actor != @actor
     self.contents.clear
     draw_actor_name(actor, 4, 0)
     draw_actor_state(actor, 140, 0)
     draw_actor_hp(actor, 284, 0)
     draw_actor_sp(actor, 460, 0)
     @actor = actor
     @text = nil
     self.visible = true
   end
 end
 #--------------------------------------------------------------------------
 # ● 设置敌人
 #     enemy : 要显示名字和状态的敌人
 #--------------------------------------------------------------------------
 def set_enemy(enemy)
   
   lv = enemy.level.to_s

   text = "等级" + lv + "  " + enemy.name
   state_text = make_battler_state_text(enemy, 112, false)
   if state_text != ""
     text += "  " + state_text
   end
   set_text(text, 1)
 end
end
就此,脚本部分大功告成,然后就是事件部分啦。
将下边的设置放在队伍的事件设置里,后边的数值自己随便改(别太BT哦,否则,玩家会疯掉的)。然后,在脚本插入完,还要给敌人完全回复一下,以便血魔补满。
$game_troop.enemies[0].level = 10
$game_troop.enemies[1].level = 6
$game_troop.enemies[2].level = 5
$game_troop.enemies[3].level = 8
$game_troop.enemies[4].level = 12
$game_troop.enemies[5].level = 9
$game_troop.enemies[6].level = 15
$game_troop.enemies[7].level = 7
$a1 = rand(10)
$a2 = rand(5)
$a3 = rand(2)

搜到一些相关内容,看看有没有有用的:

教程 : 跟隨光标自修正位置的详细帮助窗..教程 : 战斗AI脚本素材 : 《炼金术士梅露露~亚兰德的炼金..教程 : 显示ARPG用的窗口教程 : 新人入门录像1 初识RMXP游戏 : 赠予新手们的修改脚本的教程教程 : 大地图制作教程教程 : KKME整合系统教程 : 2种敌人战斗新的死法- -||..教程 : 人物能力状态图的多边形网状绘制教程 : 美化的动态选项窗口游戏 : 《OZ大乱斗:梦想与传说的延续..教程 : PS去行走图底色教程教程 : 日夜控制系统完美版教程 : 神秘羊皮纸教程 : RM反沉迷系统教程 : 动态选项光标教程 : 用流星当板擦,擦出Title标..教程 : 数据包的制作、加密以及解压运行教程 : 物品技能介绍加强(多行显示)教程 : ikki的敌人等级设定教程教程 : 显示对话人物头像教程 : 截图+档位扩展50+存档提示+..教程 : 使用自带字体[功能完善]教程 : fuki对话框(又名呼出对话框..教程 : RMXP在游戏运行中制作事件教程 : 行走图横版战斗-改进版教程 : 导出工程中全部对话文字教程 : 线索仓库增强版教程 : 更改游戏分辨率,简化版

没找到你想要的?可以使用搜索功能 ↓

66RPG 站内搜索

精确(推荐) 全文

评论啦