Project1

标题: 修改同种敌人不同实例的hit/eva/exp怎么办? [打印本页]

作者: killkill2298    时间: 2011-4-24 01:50
标题: 修改同种敌人不同实例的hit/eva/exp怎么办?
本帖最后由 killkill2298 于 2011-4-24 01:59 编辑

我试过,貌似敌人的攻击防御、hpmp都可以改,同类敌人的不同实例可以改成不一样的atk
但是hit、eva、cri、exp、gold都不能改,怎么让一只蝙蝠+3金,另一只蝙蝠+5金
我做ARPG要用到,我的系统直接用Game_Enemy.new创建新敌人。
还有个问题
游戏的$game_system,$game_actor这些全局变量是在哪定义的?能看到么?能重定义么?
自己怎么定义这种$a.b.c的全局变量?
#  这个类的实例被全局变量 $game_system 所引用。我的问题是,为什么被引用,什么叫被变量引用?(ORZ~纠结中)
我学的VB里面,只有“引用变量”,而没有“被变量引用”的概念貌似。变量后面就不能加任何东西。
作者: summer92    时间: 2011-4-24 14:44
同样的敌人图片 ,同样的名字 ,不同的hit、eva、cri、exp、gold ,然后在敌人队伍内+入,不明白的话,你发我上一个范例
作者: killkill2298    时间: 2011-4-24 21:41
回复 summer92 的帖子

我想做一个敌人属性随机系统,敌人属性是即时生成的。
而且,我的是ARPG,敌人就是一个事件,在地图上活动,新建敌人需要新建事件...
如果想要工程,可以点我的签名,那里有个6M的试玩版,未加密的。
(PS:这个ARPG系统超大,看的很头疼的说~~~)
作者: 铃仙·优昙华院·因幡    时间: 2011-4-24 22:00
本帖最后由 铃仙·优昙华院·因幡 于 2011-4-24 22:16 编辑

a = Game_Enemy.new
a.name = "1"
b = Game_Enemy.new
b.name = "2"

p a.name, b.name


每个实例都是独立的. 除非使用了 @@变量
作者: killkill2298    时间: 2011-4-24 22:37
本帖最后由 killkill2298 于 2011-4-24 22:49 编辑

回复 铃仙·优昙华院·因幡 的帖子

版主你来啦,太好了,
帮我看看,这是我修改的脚本。随机属性是我加的部分,运行基本正确。
节选一部分,因为原脚本有3885行:L
  1.   def refresh
  2.     requiem_sbabs_gevent_refresh #读取敌人数据
  3.     @enemy_id = check_comment("敌人")
  4.     @follow_distance = check_comment("跟随")
  5.     @time = check_comment("攻击冷却")
  6.     @time_skill = check_comment("技能冷却")
  7.     @time_recover = check_comment("治疗冷却")
  8.     @erase = check_com("删除")
  9.     @switch_local_a = check_com("开关A")
  10.     @switch_local_b = check_com("开关B")
  11.     @switch_local_c = check_com("开关C")
  12.     @switch_local_d = check_com("开关D")
  13.     @switch = check_comment("开关")
  14.     @variable = check_comment("变量")
  15.     @kill_with_weapon = check_comment("特效武器")
  16.     @kill_with_skill = check_comment("特效技能")
  17.     @kill_with_item = check_comment("特效物品")
  18.     @divide_exp = check_com("共享")
  19.     @boss = check_com("老板")
  20.     @object = check_com("物体")
  21.     @puzzle = check_com("机关")
  22.     @property = check_comment("随机属性")
  23.     @champion = check_comment("精英")
  24.     @enemy_ap = check_comment("AP")
  25.     @time = 60 if @time = 0
  26.     @time_skill = 60 if @time_skill = 0
  27.     @time_recover = 60 if @time_recover = 0
  28.     if @enemy_id > 0 and @in_battle == false
  29.       self.actor = Game_Enemy.new(0,@enemy_id)
  30.       self.actor.recover_all
  31.       @in_battle = true
  32.       @killed = false
  33.       random_property(@enemy_id,@property) if @property != 0
  34.       upgrade_champion(@enemy_id,@champion) if @champion != 0
  35.     elsif @enemy_id <= 0
  36.       @in_battle = false
  37.     end
  38.     @opacity = 255
  39.     @blend_type = 0
  40.   end
  41.   
  42.   # ◆ 随机属性
  43.   def random_property(enemy,rd)

  44.      rd = [rd , 80].min #最大波动范围80
  45.      e = $game_map.events[enemy].actor
  46.   # ▶ 生命上限随机浮动
  47.      e.maxhp *= 0.01 * (100-rd + rand(rd*2 + 1))
  48.      e.hp = e.maxhp
  49.   # ▶ 魔法上限随机浮动
  50.      e.maxmp *= 0.01 * (100-rd + rand(rd*2 + 1))
  51.      e.mp = e.maxmp
  52.   # ▶ 攻击随机浮动
  53.      e.atk *= 0.01 * (100-rd + rand(rd*2 + 1))
  54.   # ▶ 防御随机浮动
  55.      e.def *= 0.01 * (100-rd + rand(rd*2 + 1))
  56.   # ▶ 敏捷随机浮动
  57.      e.agi *= 0.01 * (100-rd + rand(rd*2 + 1))
  58.   # ▶ 精神随机浮动
  59.      e.spi *= 0.01 * (100-rd + rand(rd*2 + 1))
  60.   # ▶ 经验随机浮动
  61.      e.exp *= 0.01 * (100-rd + rand(rd*2 + 1)) #这就是出错的1079行,删掉就没问题了。
  62.    end
复制代码
脚本 '安魂曲 主程序' 第1079行发生了NoMethedError
undefined method 'exp=' for #<Game_Enemy:0x1555bd0>

喵~~为什么改攻击防御可以,改经验就不行咪


作者: 铃仙·优昙华院·因幡    时间: 2011-4-24 23:43
Game_Enemy 添加

def exp=(number)
    enemy.exp = number
end

就可以用了.





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