Project1

标题: 公共事件及变量的问题 [打印本页]

作者: yongsmlaiaini    时间: 2009-12-7 10:49
标题: 公共事件及变量的问题
我弄了个物品,想让它使用可以增加经验值,本来想好了,一来做一下堵住了。。怎么弄才能平衡?包括冷却时间,麻烦哪位大神帮忙贴个。。要用事件做的。我弄了半天没弄出来。谢谢了
作者: 夏季冰川    时间: 2009-12-7 11:05
你发错区了。
作者: clap_pl    时间: 2009-12-10 17:59
本帖最后由 clap_pl 于 2009-12-12 15:32 编辑

就给他加个冷却时间好了 想了一想 可以这么做
首先是假设设置了一个物品叫“智慧果”
效果是 使用的时候 给目标增加 1000点EXP, 冷却时间是一小时(3600秒)
那至少需要几样东西,1 智慧果这个物品 2一个状态,用来标记这个物品是对谁使用,以便下一步将EXP加给他
3 两个变量,用来比较两次使用之间的时间间距 4一个公共事件 用来完成以上效果

首先设置一个智慧果,最好是不消耗的(用了不消失),
设置好一个空状态,起个名叫“exp增加”吧,假设这个状态的ID号是17,(状态ID号就是你设置状态时,那个状态的编号)
设置一个公共事件 叫 “使用智慧果增加EXP” 吧
然后把 智慧果 这个物品设置为 使用后对目标附加状态 exp增加,并附带公共事件“使用智慧果增加EXP”
设置两个变量,假设ID是1和2,其名为 当前使用时间 和 上次成功使用时间。(使用和成功是有差距的)

最后把公共事件“使用智慧果增加EXP”做如下设置

1 变量操作: 将游戏时间赋予变量1 即变量“当前使用时间”
2 脚本:
if $game_variables[1] <= 3600
$game_variables[1] = 3600
end
#这段脚本是保证你第一次使用该物品的成功,假如第一次使用这个物品的时候,游戏时间还没到1小时,就会无法使用。
3 条件分歧 $game_variables[1]-$game_variables[2] >= 3600
#判断两次使用时间差是不是大于3600秒。
判断为是的情况
写入脚本
for j in 0 ... $game_party.actors.size #逐个检查队伍中全体成员
if $game_party.actors[j].state?(17)#是不是带有“增加EXP”这个状态(ID号为17)
$game_party.actors[j].exp += 1000 #如果是,该成员的EXP增加1000
$game_party.actors[j].remove_state(17)#去掉该成员“exp增加”这个状态
end
end
加入一条: 变量操作:变量2(上次使用成功时间)赋值为当前游戏时间

判断为不是的场合
可以显示一段文字如 “现在还不能使用这个物品”


图中是公共时间设置的截图 冷却设置的是10秒 增加exp设置的是100
默认满员为4人
那个 for in 0..3
还是要改成 for in 0... $game_party.actors.size

1.JPG (24.33 KB, 下载次数: 1)

1.JPG

作者: yongsmlaiaini    时间: 2009-12-16 15:39
感谢万分




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