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
def refresh
requiem_sbabs_gevent_refresh #读取敌人数据
@enemy_id = check_comment("敌人")
@follow_distance = check_comment("跟随")
@time = check_comment("攻击冷却")
@time_skill = check_comment("技能冷却")
@time_recover = check_comment("治疗冷却")
@erase = check_com("删除")
@switch_local_a = check_com("开关A")
@switch_local_b = check_com("开关B")
@switch_local_c = check_com("开关C")
@switch_local_d = check_com("开关D")
@switch = check_comment("开关")
@variable = check_comment("变量")
@kill_with_weapon = check_comment("特效武器")
@kill_with_skill = check_comment("特效技能")
@kill_with_item = check_comment("特效物品")
@divide_exp = check_com("共享")
@boss = check_com("老板")
@object = check_com("物体")
@puzzle = check_com("机关")
@property = check_comment("随机属性")
@champion = check_comment("精英")
@enemy_ap = check_comment("AP")
@time = 60 if @time = 0
@time_skill = 60 if @time_skill = 0
@time_recover = 60 if @time_recover = 0
if @enemy_id > 0 and @in_battle == false
self.actor = Game_Enemy.new(0,@enemy_id)
self.actor.recover_all
@in_battle = true
@killed = false
random_property(@enemy_id,@property) if @property != 0
upgrade_champion(@enemy_id,@champion) if @champion != 0
elsif @enemy_id <= 0
@in_battle = false
end
@opacity = 255
@blend_type = 0
end
# ◆ 随机属性
def random_property(enemy,rd)
rd = [rd , 80].min #最大波动范围80
e = $game_map.events[enemy].actor
# ▶ 生命上限随机浮动
e.maxhp *= 0.01 * (100-rd + rand(rd*2 + 1))
e.hp = e.maxhp
# ▶ 魔法上限随机浮动
e.maxmp *= 0.01 * (100-rd + rand(rd*2 + 1))
e.mp = e.maxmp
# ▶ 攻击随机浮动
e.atk *= 0.01 * (100-rd + rand(rd*2 + 1))
# ▶ 防御随机浮动
e.def *= 0.01 * (100-rd + rand(rd*2 + 1))
# ▶ 敏捷随机浮动
e.agi *= 0.01 * (100-rd + rand(rd*2 + 1))
# ▶ 精神随机浮动
e.spi *= 0.01 * (100-rd + rand(rd*2 + 1))
# ▶ 经验随机浮动
e.exp *= 0.01 * (100-rd + rand(rd*2 + 1)) #这就是出错的1079行,删掉就没问题了。
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