设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3179|回复: 7
打印 上一主题 下一主题

[已经过期] 技能的问题使用技能的前提是消费MPTP我想能不能用变量

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2012-1-28
帖子
25
跳转到指定楼层
1
发表于 2012-3-20 17:22:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qq547923696QQ 于 2012-3-21 06:09 编辑

 我有这样的一个问题 使用技能的前提是消费MP TP 能不能 使用变量当前提呢
比如说 当001 变量的值为1 的时候 我可以使用什么什么技能 
    当002 变量的值为0 的时候 我就不能使用什么什么技能
或者  当我拥有一个物品的时候我可以使用 当我没有的时候 我不能有
    举例1 
    技能酒神 如果我包里没有酒这个物品的时候 我就不能用 技能酒神了
    最好是能用变量解决这个问题 谢谢66RPG的大侠们了     

Lv1.梦旅人

梦石
0
星屑
108
在线时间
1006 小时
注册时间
2008-11-9
帖子
1658
2
发表于 2012-3-20 22:29:15 | 只看该作者
本帖最后由 判约之轮 于 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应该是没什么改动的~
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2012-1-28
帖子
25
3
 楼主| 发表于 2012-3-21 06:05:33 | 只看该作者
谢谢 果然还是要用脚本 可是我不会用脚本啊  着个要怎么用啊
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
108
在线时间
1006 小时
注册时间
2008-11-9
帖子
1658
4
发表于 2012-3-21 09:22:49 | 只看该作者
qq547923696QQ 发表于 2012-3-21 06:05
谢谢 果然还是要用脚本 可是我不会用脚本啊  着个要怎么用啊

咦?你不会用吗?
找到RMVA主窗体中那个笔记本形状的图标,那个就是脚本编辑器~
然后找到Game_Actor那一页,其余都在我的回复里有写——那可不是一段代码而是一段回复啊~
只是为了看起来好看一点才用的代码框~
回复

使用道具 举报

Lv4.逐梦者 (管理员)

砂上描绘的愿想

梦石
15
星屑
4120
在线时间
5075 小时
注册时间
2012-1-15
帖子
4618

开拓者贵宾短篇七成年组亚军剧作品鉴家

5
发表于 2012-3-21 15:02:31 | 只看该作者
若后退就皆成谎言。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2012-1-28
帖子
25
6
 楼主| 发表于 2012-3-21 16:24:17 | 只看该作者
新手嘛 当然不会用了 我要把哪些语句 加在那一行才能起作用呢


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

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


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

谢谢 迷糊的安安 你提供的脚本可以实现 对技能消费物品的问题
但是 怎么才能用变量呢
’’
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
108
在线时间
1006 小时
注册时间
2008-11-9
帖子
1658
7
发表于 2012-3-21 18:34:30 | 只看该作者
本帖最后由 判约之轮 于 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


哦对了,差点忘了说一句,这个方法有一个问题需要楼主去自己解决~
就是如何实现变量增减的问题~不过连接的公共事件可以很好地解决这个问题~
顺便跑过去看看那个脚本有没有改进余地····

点评

经过消息交流,确认以上代码中,应将skill_id改为skill.id才可以正确运行,特此声明~  发表于 2012-3-21 23:04

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
迷糊的安安 + 200 + 2 认可答案

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2012-1-28
帖子
25
8
 楼主| 发表于 2012-3-21 20:35: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补充以下内容

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

点评

解决  发表于 2012-3-22 12:35
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-1 11:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表