Project1

标题: 如何做一个让角色每升一级就获得东西的事件 [打印本页]

作者: 谢哲彬    时间: 2012-9-7 18:05
标题: 如何做一个让角色每升一级就获得东西的事件
本帖最后由 谢哲彬 于 2012-9-7 18:06 编辑

做一个事件,让角色每升一级就获得东西的事件,我知道要用变量但是不会用。比如角色每升一级就获得100个药品之类的。
作者: 谢哲彬    时间: 2012-9-7 19:11
怎么没人啊╮(╯▽╰)╭
作者: a364774426    时间: 2012-9-7 22:35
本帖最后由 a364774426 于 2012-9-8 10:20 编辑

可以这样,用公共事件,当角色2级的时候,给予什么东西,3级的时候,又给予什么东西。
宝宝的补充,看这样可否?

作者: 怪蜀黍    时间: 2012-9-8 14:10
a364774426 发表于 2012-9-7 22:35
可以这样,用公共事件,当角色2级的时候,给予什么东西,3级的时候,又给予什么东西。
宝宝的补充,看这样 ...

可以是可以,只是有几个弊端:
1、全局性的并行处理能不用尽量不用,因为这是会占游戏资源的。最好是升级的那一瞬间才调用。
2、会消耗很多开关,假如奖励多了,每个奖励都消耗一个“第N次奖励”的开关,是不是有点浪费呢
3、应该尽量避免if的层叠关系,尤其是事件复杂或者内容很多的时候更应该避免,很容易眼花出错或,而且命令会因不断地缩进导致右边的部分无法完全显示。

第3点的意思是(这里为了方便表述,用脚本来表示这个事件法),尽量少这样写:
  1. if $game_variables[1] == 2
  2.   do something  #一次右缩进
  3. else
  4.   if $game_variables[1] == 5
  5.     do something  #二次右缩进
  6.   else
  7.     if $game_variables[1] == 7
  8.       do something  #三次右缩进
  9.     ……
  10.     end
  11.   end
  12. end
复制代码
而最好是这样,不容易出错
  1. if $game_variables[1] == 2
  2.   do something
  3. end
  4. if $game_variables[1] == 5
  5.   do something
  6. end
  7. if $game_variables[1] == 7
  8.   do something
  9. end
复制代码

作者: 咕噜    时间: 2012-9-9 17:59
也可以弄个礼包,公共事件,条件分歧5级时获得100个药水然后得到10级礼包
然后继续……这个办法貌似要很多物品栏和公共事件,也可以在公共事件通过开关操纵减少公共事件占用率
作者: 幻想中的鸡蛋    时间: 2012-9-9 19:32
脚本编辑器Game_Actor里面找到
  1. #--------------------------------------------------------------------------
  2.   # ● 升级
  3.   #--------------------------------------------------------------------------
  4.   def level_up
  5.     @level += 1
  6.     for learning in self.class.learnings
  7.       learn_skill(learning.skill_id) if learning.level == @level
  8.     end
  9.   end
复制代码
里面加上
  1. $game_temp.common_event_id = XX     #(XX表示要调用的公共事件代号)
复制代码
一句调用公共事件
缺点是每个角色升级的时候都会调用一次……不过事件里面获取角色等级判定一下就好了,可以参照3楼的事件写法。




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