查看: 3151|回复: 7

[已经解决] 精英脚本的问题

[复制链接]
梦石
0
星屑
2245
在线时间
1015 小时
注册时间
2015-10-17
回帖
1077
发表于 2017-4-8 23:33:59 | 显示全部楼层 |阅读模式

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

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

×
下面这个脚本54行会报错,看下能否修复
[pre lang="ruby"]# [精英敌人]  原作 tan12345(va)  移植 hyrious(xp)

class Game_Enemy < Game_Battler
  # 精英怪出现几率,30代表30%
  BY = 30
  # 精英怪属性加成比例(同时也是经验,金钱,掉落率加成比例),1.3代表属性是普通怪的1.3倍
  BYP = 1.3
  # 不会成为精英的敌人
  NO_BY = [2,3] #表示2号和3号敌人不会变成精英,适合设定BOSS
  attr_reader   :is_by  # 是否精英
  #--------------------------------------------------------------------------
  # ● 是否精英
  #--------------------------------------------------------------------------
  def is_by?
    return true if @is_by
    return false
  end
  #--------------------------------------------------------------------------
  # ● 初始化对象(包括精英初始化)
  #--------------------------------------------------------------------------
  alias tan_initialize initialize
  def initialize(troop_id, member_index)
    tan_initialize(troop_id, member_index)
    @is_by = (rand(100) <= BY && !NO_BY.include?(@enemy_id))
    @hp = (@hp * BYP).to_i if @is_by
    @sp = (@sp * BYP).to_i if @is_by
  end
  #--------------------------------------------------------------------------
  # ● 精英改名
  #--------------------------------------------------------------------------
  alias hy_name name
  def name
    is_by? ? hy_name + "(精英)" : hy_name
  end
  #--------------------------------------------------------------------------
  # ● 获取经验值
  #--------------------------------------------------------------------------
  alias tan_exp exp
  def exp
    return (tan_exp * BYP).to_i if @is_by
    tan_exp
  end
  #--------------------------------------------------------------------------
  # ● 获取金钱
  #--------------------------------------------------------------------------
  alias tan_gold gold
  def gold
    return (tan_gold * BYP).to_i if @is_by
    tan_gold
  end
  #--------------------------------------------------------------------------
  # ● 获取物品掉率的倍率
  #--------------------------------------------------------------------------
  alias tan_treasure_prob treasure_prob
  def treasure_prob
    return (tan_treasure_prob * BYP).to_i if @is_by
    tan_treasure_prob
  end
  #--------------------------------------------------------------------------
  # ● 属性值增强(很多)
  #   嫌不够可以自行调整算式, 更多base_请参考Game_Enemy
  #--------------------------------------------------------------------------
  alias hy_base_maxhp base_maxhp
  def base_maxhp
    return (hy_base_maxhp * BYP).to_i if @is_by
    hy_base_maxhp
  end
  alias hy_base_maxsp base_maxsp
  def base_maxsp
    return (hy_base_maxsp * BYP).to_i if @is_by
    hy_base_maxsp
  end
  alias hy_base_atk base_atk
  def base_atk
    return (hy_base_atk * BYP).to_i if @is_by
    hy_base_atk
  end
  alias hy_base_pdef base_pdef
  def base_pdef
    return (hy_base_pdef * BYP).to_i if @is_by
    hy_base_pdef
  end
  alias hy_base_mdef base_mdef
  def base_mdef
    return (hy_base_mdef * BYP).to_i if @is_by
    hy_base_mdef
  end
  alias hy_base_eva base_eva
  def base_eva
    return (hy_base_eva * BYP).to_i if @is_by
    hy_base_eva
  end
end
[/pre]
梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2017-4-9 00:41:11 | 显示全部楼层
因为这是XP脚本,不是VA脚本,请仔细看脚本第一行。

点评

fjm
多谢提醒,没注意看,他发在VA图书馆那个精英脚本后面,我还以为是VA的脚本  发表于 2017-4-9 08:57

评分

参与人数 1星屑 +100 收起 理由
RaidenInfinity + 100 认可答案

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
回帖
526
发表于 2017-4-9 07:59:12 | 显示全部楼层
[pre lang="ruby"]=begin
# 精英敌人,作者:66RPG的tan12345
# 功能:遇敌时,敌人有一定几率(可设定)变成精英,精英怪比普通怪属性有加成(可修改),
#       当然了,精英怪的经验、金钱、掉落率也同样有加成。
#       也可以设定指定的敌人不会变成精英(比如BOSS)
#
# 使用方法:将脚本插入到main上
#
=end

module Tan_by_enemy_set
  #精英怪出现几率,30代表30%
  Tan_enemy_by = 10
  #Tan_enemy_by_num = 2 2倍属性
#~   Tan_enemy_by_egold = 3 3倍金钱
#~   Tan_enemy_by_eexp = 3 3倍经验
#~   Tan_enemy_by_edrop = 3 3倍掉落率
  Tan_enemy_by_num = 2
  Tan_enemy_by_egold = 3
  Tan_enemy_by_eexp = 3
  Tan_enemy_by_edrop = 3
  #不会成为精英的敌人
  NO_BY_ENEMY = [2,3,28,29,30,31,32,33,34,35,36,37,38,39,40,43,44,45,46,47,48,49,50,52,51,53,54,55,61,62,63,65,66,67,68,69,70,71,72,73,75,74,76]#表示2号和3号敌人不会变成精英,适合设定BOSS
end
class Game_Enemy < Game_Battler
  
  attr_reader   :is_by  # 是否精英
  
  #--------------------------------------------------------------------------
  # ● 精英初始化
  #--------------------------------------------------------------------------
  def init_by_enemy
    @is_by = false
    @is_by = true if rand(100) <= Tan_by_enemy_set::Tan_enemy_by && !Tan_by_enemy_set::NO_BY_ENEMY.include?(enemy_id)
    @original_name = @original_name + "(BOOS)" if @is_by == true
    @hp = mhp
    @mp = mmp
  end
  #--------------------------------------------------------------------------
  # ● 是否精英
  #--------------------------------------------------------------------------
  def is_by?
    return true if @is_by
    return false
  end
  
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  alias tan_by_enemy_initialize initialize
  def initialize(index, enemy_id)
    tan_by_enemy_initialize(index, enemy_id)
    init_by_enemy
  end
  #--------------------------------------------------------------------------
  # ● 获取普通能力的基础值
  #--------------------------------------------------------------------------
  alias tan_by_enemy_param_base param_base
  def param_base(param_id)
    v = tan_by_enemy_param_base(param_id)
    v *= Tan_by_enemy_set::Tan_enemy_by_num if is_by?
    return v.to_i
  end
  #--------------------------------------------------------------------------
  # ● 获取经验值
  #--------------------------------------------------------------------------
  alias tan_by_enemy_exp exp
  def exp
    v = tan_by_enemy_exp
    v *= Tan_by_enemy_set::Tan_enemy_by_eexp if is_by?
    return v.to_i
  end
  #--------------------------------------------------------------------------
  # ● 获取金钱
  #--------------------------------------------------------------------------
  alias tan_by_enemy_gold gold
  def gold
    v = tan_by_enemy_gold
    v *= Tan_by_enemy_set::Tan_enemy_by_egold if is_by?
    return v.to_i
  end
  #--------------------------------------------------------------------------
  # ● 获取物品掉率的倍率
  #--------------------------------------------------------------------------
  alias tan_by_enemy_drop_item_rate drop_item_rate
  def drop_item_rate
    v = tan_by_enemy_drop_item_rate
    v *= Tan_by_enemy_set::Tan_enemy_by_edrop if is_by?
    return v
  end
end
[/pre]
修改了里面的东西,自行修改吧,网上只有单一(也就是金钱什么的全是固定的,不能经验1.5倍,金钱5倍这样分散。他全都统一,我这边能分散设置)

点评

fjm
非常感谢,改了以后可以自行设置很多属性,非常完美  发表于 2017-4-9 09:03

评分

参与人数 1星屑 +150 收起 理由
RaidenInfinity + 150 认可答案

查看全部评分

P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
回复

使用道具 举报

梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
回帖
526
发表于 2017-4-9 08:00:39 | 显示全部楼层
本帖最后由 300英雄 于 2017-4-9 08:02 编辑

Tan_enemy_by = 10 意思是10%变为精英(我这边显示是BOOS) 35行自己修改了 (BOOS)改为自己要的
245792090,这是我群号
1286124843,这是我QQ号。
想问什么来找我就行
验证码打你的帖子名,不然我不知道我回答当时是什么帖子

点评

惊现脚本达人,求勾搭,美工一枚233  发表于 2017-4-9 09:38
fjm
多谢,加个好友吧  发表于 2017-4-9 09:05
P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部