Project1

标题: 【VX】如何做出升级後能力随机增加 [打印本页]

作者: N0D2Y    时间: 2011-12-22 02:48
标题: 【VX】如何做出升级後能力随机增加
本帖最后由 N0D2Y 于 2011-12-23 16:55 编辑

我希望升级後 HP,MP与各能力随机增加1-5点不等
但是数据库只能指定升级後增加的能力
要怎麽做才能做到那种效果?
作者: zhangbanxian    时间: 2011-12-22 08:41
找到lever_up的地方改呗,随机数是用rand(x),将会生成0到x-1的随机数...- -b条件分歧什么的就不用说了吧...
作者: N0D2Y    时间: 2011-12-22 14:51
用事件是可以做到
可是用脚本还是不懂怎麽写
试了以下几个也出错
actor.parameters[1] += rand(5)
parameters[1] += rand(5)
@atk += rand(5)
atk += rand(5)

我想问一下各能力在脚本的写法是什麽?


作者: 九夜神尊    时间: 2011-12-22 16:36
下来用独立公共事件给你写一个,算是个广告吧。
声明,极度看不惯那些自己能做到的嫌麻烦,非要一直伸手到有傻瓜试脚本那种人。
作者: N0D2Y    时间: 2011-12-22 20:13
不是有事件不用而要用脚本
而是我想慢慢从修改到学习RGSS2

或许在前辈眼中我是伸手党
可是我自认有努力去研究过
但是在摸索阶段常常出错也没法达成效果
才想去发问区问希望有高人愿意解答一下小弟目前的疑惑吧
希望能够量解一下

我现在不懂要怎样写才代表角色目前的ATK
相关我搜索了, 尝试後也是出错
所以希望能够解答一下
作者: 九夜神尊    时间: 2011-12-23 00:07
本帖最后由 九夜神尊 于 2011-12-23 00:10 编辑

照猫画虎,这就是我当年摸爬滚打脚本的时候的方法。

就从你的能力出发吧。
先从现实的例子举起。
假设你和老师一个班。
那么老师喊,NOD2Y就能表示你(@atk)
如果老师不在这个班,他说: 那个3班的NOD2Y就能表示你。
如果老师不在这个年级。
那么他说,那个高2 3班的 NOD2Y
……
假设他和你不在一个国家。
那么他说
那个中国的香港的 香港脚高中的 高2的3班的NOD2Y
脚本$game_actors[X].atk
如果总是说这么长的话,是不是很累!
然后老师就说,那个班代表那个中国的香港的 香港脚高中的 高2的3班 吧。
那个班代表那个中国的香港的港脚高中的 高2的3班 → actor = $game_actors[X]

于是,老师总是说 那个班的XXX。
actor.atk
actor.def
actor.str

……
都能知道是什么。懂?


总之以上例子明白开始(我想锤子都能明白)。

对,很显然主角的攻击
这是的位置是在主角(Game_Actor)

然后你再设法知道你在哪写的脚本。
根据我说的,你大概知道怎么回事了。加油找到办法吧。
作者: N0D2Y    时间: 2011-12-23 08:24
首先谢谢前辈的讲解
虽然现在还是一支半解
不过尝试了快将两小时
终於没有出错了...
有点小感动:L
虽然没有出错, 不过还是没有失败了 OTL=3

不知道前辈能不能再指点一下错处在哪?
我知道我比锤子更蠢, 不过还是希望能够再弄明白一点

我是使用1号角色作测试

def level_up
    @level += 1
    actor = $game_actors[1]
    atk_1 = $game_actors[1].atk
    atk_rand = rand(5)
    $game_actors[1].atk == atk_1 + atk_rand
    for learning in self.class.learnings
      learn_skill(learning.skill_id) if learning.level == @level
    end
  end
作者: 九夜神尊    时间: 2011-12-23 14:06
多了个等于号,仔细检查
作者: N0D2Y    时间: 2011-12-23 16:54
本帖最后由 N0D2Y 于 2011-12-23 16:55 编辑

终於成功了...
感谢前辈的指导
我以为要完全代入数值要用==
完来这想法是错的




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