Project1

标题: 技能的问题使用技能的前提是消费MPTP我想能不能用变量 [打印本页]

作者: qq547923696QQ    时间: 2012-3-20 17:22
标题: 技能的问题使用技能的前提是消费MPTP我想能不能用变量
本帖最后由 qq547923696QQ 于 2012-3-21 06:09 编辑

 我有这样的一个问题 使用技能的前提是消费MP TP 能不能 使用变量当前提呢
比如说 当001 变量的值为1 的时候 我可以使用什么什么技能 
    当002 变量的值为0 的时候 我就不能使用什么什么技能
或者  当我拥有一个物品的时候我可以使用 当我没有的时候 我不能有
    举例1 
    技能酒神 如果我包里没有酒这个物品的时候 我就不能用 技能酒神了
    最好是能用变量解决这个问题 谢谢66RPG的大侠们了     dsu_plus_rewardpost_czw
作者: 判约之轮    时间: 2012-3-20 22:29
本帖最后由 判约之轮 于 2012-3-20 22:35 编辑

PHP 代码复制
  1. $temptemp = $game_variables[1]      #这一句是将1号变量的值赋给全局变量temptemp
  2.  
  3.  
  4. if skill_id == 123 and $game_party.item_number(1) <= 7
  5.      return false
  6. end
  7. #上面这一句是判定表达式
  8.  
  9.   def skill_wtype_ok?(skill)
  10.     wtype_id1 = skill.required_wtype_id1
  11.     wtype_id2 = skill.required_wtype_id2
  12.     return true if wtype_id1 == 0 && wtype_id2 == 0
  13.     return true if wtype_id1 > 0 && wtype_equipped?(wtype_id1)
  14.     return true if wtype_id2 > 0 && wtype_equipped?(wtype_id2)
  15.     return false
  16.   end
  17. #但是我在Game_Actor只找到这一段(273行左右)
  18.  
  19. #因此我的建议是在第三行下面插入下面这两行代码:
  20. $temptemp = $game_variables[1]
  21. return false if  $temptemp  > 0 && $game_party.item_number(1) > 5 && skill_id == 1
  22.  
  23. #也即将那一段更换为:
  24.   def skill_wtype_ok?(skill)
  25.     wtype_id1 = skill.required_wtype_id1
  26.     wtype_id2 = skill.required_wtype_id2
  27.     $temptemp = $game_variables[1]
  28.     return false if  $temptemp  > 0 && $game_party.item_number(1) > 5 && skill_id == 1
  29.     return true if wtype_id1 == 0 && wtype_id2 == 0
  30.     return true if wtype_id1 > 0 && wtype_equipped?(wtype_id1)
  31.     return true if wtype_id2 > 0 && wtype_equipped?(wtype_id2)
  32.     return false
  33.   end
  34. #其意义是当1号变量大于0并且1号物品数量大于5的时候,1号技能无法使用
  35. #顺便提示一下,&&是逻辑运算中“且”的意思,而||是“或”的意思


以上是基于RMXP脚本系统的推演,如果有错误,请其他人或者楼主纠正咯
虽说是RGSS1,可是最基本的脚本的话,RGSS3应该是没什么改动的~
作者: qq547923696QQ    时间: 2012-3-21 06:05
谢谢 果然还是要用脚本 可是我不会用脚本啊  着个要怎么用啊
作者: 判约之轮    时间: 2012-3-21 09:22
qq547923696QQ 发表于 2012-3-21 06:05
谢谢 果然还是要用脚本 可是我不会用脚本啊  着个要怎么用啊

咦?你不会用吗?
找到RMVA主窗体中那个笔记本形状的图标,那个就是脚本编辑器~
然后找到Game_Actor那一页,其余都在我的回复里有写——那可不是一段代码而是一段回复啊~
只是为了看起来好看一点才用的代码框~
作者: 迷糊的安安    时间: 2012-3-21 15:02
http://rpg.blue/forum.php?mod=viewthread&tid=217578
看看这个?
作者: qq547923696QQ    时间: 2012-3-21 16:24
新手嘛 当然不会用了 我要把哪些语句 加在那一行才能起作用呢


‘‘──qq547923696QQ于2012-3-21 16:26补充以下内容

对了我用的是MAker vx Ace版的 谁帮我解决 那2VIP就是谁的了 虽然不多 表表心意吧
’’


‘‘──qq547923696QQ于2012-3-21 16:34补充以下内容

谢谢 迷糊的安安 你提供的脚本可以实现 对技能消费物品的问题
但是 怎么才能用变量呢
’’
作者: 判约之轮    时间: 2012-3-21 18:34
本帖最后由 判约之轮 于 2012-3-21 18:41 编辑
qq547923696QQ 发表于 2012-3-21 16:24
新手嘛 当然不会用了 我要把哪些语句 加在那一行才能起作用呢




看懂了吗?如果这都看不懂那我就弱爆了·····

顺便怕你理解错误,就换个直白点的说法:
下面两段代码,你想替换哪个就替换哪个吧,虽然我不确定你会不会修改·····
不过既然你既然采用了我的方法,就有学习脚本的觉悟了吧嗯~
PHP 代码复制
  1. def skill_wtype_ok?(skill)
  2.     wtype_id1 = skill.required_wtype_id1
  3.     wtype_id2 = skill.required_wtype_id2
  4.     $temptemp = $game_variables[1]
  5.     return false if  $temptemp  > 0 && $game_party.item_number(1) > 5 && skill_id == 1
  6.     return true if wtype_id1 == 0 && wtype_id2 == 0
  7.     return true if wtype_id1 > 0 && wtype_equipped?(wtype_id1)
  8.     return true if wtype_id2 > 0 && wtype_equipped?(wtype_id2)
  9.     return false
  10.   end

PHP 代码复制
  1. #  def skill_wtype_ok?(skill)
  2. #    wtype_id1 = skill.required_wtype_id1
  3. #    wtype_id2 = skill.required_wtype_id2
  4. #    return true if wtype_id1 == 0 && wtype_id2 == 0
  5. #    return true if wtype_id1 > 0 && wtype_equipped?(wtype_id1)
  6. #    return true if wtype_id2 > 0 && wtype_equipped?(wtype_id2)
  7. #    return false
  8. #  end
  9.     def skill_wtype_ok?(skill)
  10.     wtype_id1 = skill.required_wtype_id1
  11.     wtype_id2 = skill.required_wtype_id2
  12.     $temptemp = $game_variables[1]
  13.     return false if  $temptemp  > 0 && $game_party.item_number(1) > 5 && skill_id == 1
  14.     return true if wtype_id1 == 0 && wtype_id2 == 0
  15.     return true if wtype_id1 > 0 && wtype_equipped?(wtype_id1)
  16.     return true if wtype_id2 > 0 && wtype_equipped?(wtype_id2)
  17.     return false
  18.   end


哦对了,差点忘了说一句,这个方法有一个问题需要楼主去自己解决~
就是如何实现变量增减的问题~不过连接的公共事件可以很好地解决这个问题~
顺便跑过去看看那个脚本有没有改进余地····
作者: qq547923696QQ    时间: 2012-3-21 20:35
$temptemp = $game_variables[1]      #这一句是将1号变量的值赋给全局变量
temptemp  if skill_id == 123 and
$game_party.item_number(1) <= 7     return false
着句话 插在哪里呢  这句好像非常重要
return false if  $temptemp  > 0 && $game_party.item_number(1) > 5 && skill_id == 1
着句的意思是 temptemp  > 0 temptemp现在时全局变量了是吧  那就是全局变量大于0的时候 变成假的
或者$game_party.item_number(1) > 5 game_party.item_number(1) 着应该是什么物品大于5的时候变成假的
或者 skill_id == 1  skill_id  的意思是什么   什么什么等于1 的时候 变成假的




‘‘──qq547923696QQ于2012-3-21 20:41补充以下内容

哦看明白了 其实我就是加 两行语句就可以了是吧 呵呵  真是 不谨慎啊
’’


‘‘──qq547923696QQ于2012-3-21 20:44补充以下内容

[attachimg]102747[/attachimg]
我的字 为什么是黑的
’’


‘‘──qq547923696QQ于2012-3-21 22:46补充以下内容

好终于搞定了 怎么给分啊
’’


‘‘──qq547923696QQ于2012-3-21 23:08补充以下内容

版主 我不知道怎么吧分给    “判约之轮”     帮个忙吧谢谢了   
’’




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