设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2389|回复: 8
打印 上一主题 下一主题

菜鸟修改智能敌人等级

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-3-13
帖子
84
跳转到指定楼层
1
发表于 2008-3-18 04:59:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
这是我修改的Eclair大人制作的《敌人等级/质量系统 绿版》

http://rpg.blue/web/htm/news956.htm

Eclair大人制作的等级系统很好,只是缺少了智能判断。
对于高手来说可能不算是什么,不过想我这种菜鸟,还真是一个难办的事情。

在论坛请教后,终于学会了在脚本中加入变量的方法。

虽然那么简单,不过我实在太笨。{/pz}


经过我进行了小修改后的怪物等级,可以按照玩家角色1的等级,来进行相应等级怪物的战斗。如果不用npc来实现竞技场的功能的话,还可以在“数据库——队伍”里面进行相应的设置。

Eclair大人的脚本如下:



#==========================================================================
#    ★敌人等级/质量    By 绿发的Eclair
#   不同质量的敌人每个等级增加多少能力请下面设定哦。
#   填表格就行了,千万不要把英文的半角逗号去掉,不然会出错的。
#   同样,是否显示等级和质量,经验金钱是否增加的设定也在下面完成。
#   冲突性……会有一部分但是不会很高。
#   使用方法:战斗第0回合的时候给敌人输入等级和质量的定义
#   方法 $game_troop.enemies[ID].level = 等级
#        $game_troop.enemies[ID].rank  = 质量
#   ID要从0算起,第一个敌人是0,第二个是1,依此类推。
#   记得设定之后要把敌人完全恢复的。
#==========================================================================
module Touchcat
  LEVEL_ON = true           #是否显示等级
  RANK_ON  = true           #是否显示“质量”*^_^*
  EXP_ON   = true           #是否随质量和等级增加经验
  GOLD_ON  = true           #是否随质量和等级增加金钱
  #表格   HP    SP   强壮  灵巧   速度  魔力   攻击  防御  魔防  闪避 EXP GOLD
  P1 = [  20 ,  20 ,  3   ,  3   ,  3  ,  3  , 0.8  ,0.8 , 0.8 ,  0  , 3  , 4] #废柴怪
  P2 = [  30 ,  30 ,  4   ,  4   ,  4  ,  4  ,  1  ,  1  ,  1  ,  0  , 4  , 6] #较弱怪
  P3 = [  45 ,  45 , 4.5  , 4.5  , 4.5 , 4.5 , 1.1 , 1.1 ,  1  ,  0  , 5  , 8] #一般怪
  P4 = [  66 ,  66 , 5.5  , 5.5  , 5.5 , 5.5 , 1.3 , 1.3 , 1.2 , 0.1 , 7  ,10] #较强怪
  P5 = [  75 ,  75 , 6.5  , 6.5  , 6.5 , 6.5 , 1.4 , 1.4 , 1.3 , 0.1 , 8  ,12] #精英怪
  P6 = [ 120 , 120 , 7.5  , 7.5  , 7.5 , 7.5 , 1.6 , 1.6 , 1.4 , 0.2 , 9  ,15] #首领怪
  P7 = [1000 ,1000 ,  10  ,  10  ,  10 ,  10 , 2.5 , 2.5 , 2.2 , 0.3 ,15  ,20] #变态怪
  PLUS = [P1,P2,P3,P4,P5,P6,P7]
  RANKNAME = ["废柴","较弱","一般","较强","精英","首领","变态"]       #质量名
end
class Game_Enemy < Game_Battler
  attr_accessor :level
  attr_accessor :rank
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     troop_id     : 循环 ID
  #     member_index : 循环成员的索引
  #--------------------------------------------------------------------------
  alias initialize_touchcat :initialize
  def initialize(troop_id, member_index)
    @level    = 1
    @rank     = 0
    initialize_touchcat(troop_id, member_index)
  end
  #--------------------------------------------------------------------------
  # ● 获取名称
  #--------------------------------------------------------------------------
  def name
    a = $data_enemies[@enemy_id].name
    a = a + " "+ "LV"+ self.level.to_s if Touchcat::LEVEL_ON == true
    a = a + " "+ "<" + rankname+ ">" if Touchcat::RANK_ON == true
    return a
  end
  def rankname
    return Touchcat::RANKNAME[@rank]
  end
  #--------------------------------------------------------------------------
  # ● 获取基本 MaxHP
  #--------------------------------------------------------------------------
  def base_maxhp
    return $data_enemies[@enemy_id].maxhp+ (@level - 1) * Touchcat::PLUS[@rank][0]
  end
  #--------------------------------------------------------------------------
  # ● 获取基本 MaxSP
  #--------------------------------------------------------------------------
  def base_maxsp
    return $data_enemies[@enemy_id].maxsp+ (@level - 1) * Touchcat::PLUS[@rank][1]
  end
  #--------------------------------------------------------------------------
  # ● 获取基本力量
  #--------------------------------------------------------------------------
  def base_str
    return ($data_enemies[@enemy_id].str  + (@level - 1) * Touchcat::PLUS[@rank][2]).round
  end
  #--------------------------------------------------------------------------
  # ● 获取基本灵巧
  #--------------------------------------------------------------------------
  def base_dex
    return ($data_enemies[@enemy_id].dex  + (@level - 1) * Touchcat::PLUS[@rank][3]).round
  end
  #--------------------------------------------------------------------------
  # ● 获取基本速度
  #--------------------------------------------------------------------------
  def base_agi
    return ($data_enemies[@enemy_id].agi  + (@level - 1) * Touchcat::PLUS[@rank][4]).round
  end
  #--------------------------------------------------------------------------
  # ● 获取基本魔力
  #--------------------------------------------------------------------------
  def base_int
    return ($data_enemies[@enemy_id].int  + (@level - 1) * Touchcat::PLUS[@rank][5]).round
  end
  #--------------------------------------------------------------------------
  # ● 获取基本攻击力
  #--------------------------------------------------------------------------
  def base_atk
    return ($data_enemies[@enemy_id].atk  + (@level - 1) * Touchcat::PLUS[@rank][6]).round
  end
  #--------------------------------------------------------------------------
  # ● 获取基本物理防御
  #--------------------------------------------------------------------------
  def base_pdef
    return ($data_enemies[@enemy_id].pdef + (@level - 1) * Touchcat::PLUS[@rank][7]).round
  end
  #--------------------------------------------------------------------------
  # ● 获取基本魔法防御
  #--------------------------------------------------------------------------
  def base_mdef
    return ($data_enemies[@enemy_id].mdef + (@level - 1) * Touchcat::PLUS[@rank][8]).round
  end
  #--------------------------------------------------------------------------
  # ● 获取基本回避修正
  #--------------------------------------------------------------------------
  def base_eva
    return ($data_enemies[@enemy_id].eva  + (@level - 1) * Touchcat::PLUS[@rank][9]).round
  end
  #--------------------------------------------------------------------------
  # ● 获取 EXP
  #--------------------------------------------------------------------------
  def exp
    if Touchcat::EXP_ON == true
    return ($data_enemies[@enemy_id].exp + (@level - 1) * Touchcat::PLUS[@rank][10]).round
  else
    return $data_enemies[@enemy_id].exp
    end
  end
  #--------------------------------------------------------------------------
  # ● 获取金钱
  #--------------------------------------------------------------------------
  def gold
    if Touchcat::GOLD_ON == true
    return ($data_enemies[@enemy_id].gold + (@level - 1) * Touchcat::PLUS[@rank][11]).round
  else
    return $data_enemies[@enemy_id].gold
    end
  end
end



现在附上我修改的范例。
进入后,看一下队伍中设置,应该就能够明白了。队伍设置中,“各种幽灵*6”,里面可以看到独立的设置,如果要通过npc进行设置,可以看事件中的npc。

说白了,2句话:
进行变量附值,然后再附值到脚本调用中。


Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-3-13
帖子
84
2
 楼主| 发表于 2008-3-18 04:59:53 | 只看该作者
http://rpg.blue/upload_program/f ... 版本_86216341.rar

这是我自己修改的智能敌人。

              [本贴由 风雪优游 于 2008-3-19 21:43:57 最后编辑]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风雪夜不归人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2006-3-7
帖子
6721

贵宾

3
发表于 2008-3-20 05:44:31 | 只看该作者
勇于挑战脚本,支持一个~
有些人,到了七八月份就会诈尸。
宫斗,是女生永远的爱。
冷门,是本人不变的欲。
作弊,是玩家自由的痛。
练级,是橙光割舍的情。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-3-13
帖子
84
4
 楼主| 发表于 2008-3-20 15:41:02 | 只看该作者
{/dk}终于有人支持了,谢

{/mg}{/mg}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-3-13
帖子
84
5
 楼主| 发表于 2008-3-20 20:34:04 | 只看该作者
谢谢禾西的热情指教。他的方法确实很好,我现在看脚本就是雾里看花,所以想不到好方法,我把禾西的方法指出来。新手们学习。我不懂队伍平均等级如何计算。如果有高手,谢谢赐教。


发件人:禾西    时间:2008-3-20 12:03:00

--------------------------------------------------------------------------------
關於你在技術區發布的那個帖子有點想法。
看了下設置,方法是可行,可是好像不太方便。
在事件當中後天改變敵人等級,不如先天在腳本中就做出改變。

在「主腳本」當中有
def initialize(troop_id, member_index)
這個方法
下面有定義敵人等級的語句
   @level    = 0
這個方法在每次進入戰鬥的時候都會被調用。
所以,如果要改變敵人的等級(特別是跟隨主角的等級變化),我們可以直接在下面加入改變的語句。而不需要在戰鬥事件當中一個一個地設置。

反正都是全局通用嘛!

此外,根據第一位角色的等級决定敵人等級好像有點不太合理(單純的不合理而已……)。如果這樣設置,玩家只需要不提昇第一位角色的等級,就可以非常輕鬆的過關。

所以,不如把敵人等級設置爲我方隊伍的平均等級吧。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-3-13
帖子
84
6
 楼主| 发表于 2008-3-20 20:35:18 | 只看该作者
看到了禾西的名字想到了周星驰的算死草{/lh}

难道你是一个演员?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1035
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

7
发表于 2008-3-20 20:41:30 | 只看该作者
有這樣一回事?==|||
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2008-3-13
帖子
84
8
 楼主| 发表于 2008-3-20 21:12:08 | 只看该作者
你去看看那个电影啊。很好笑。

周星驰演什么叫王梦吉还是什么的。。。。。好多年了
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

9
发表于 2008-3-20 23:24:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-4-5 02:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表