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

Project1

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

[已经解决] 怎么修改人物状态里的人物说明?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7436
在线时间
1098 小时
注册时间
2006-7-18
帖子
569
跳转到指定楼层
1
发表于 2015-2-7 15:29:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
想随着故事进展,人物说明会有变化!

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
2
发表于 2015-2-7 15:41:07 | 只看该作者
你在Game_Actor里找到  def description ,
它就是决定人物描述是啥的方法。
  1.   def description
  2.     return "我叫艾里克" if actor.id == 1
  3.     actor.description
  4.   end
复制代码
你这样写之后艾里克的说明就变成了“我叫艾里克”。
return "XX" if ...
这个结构你简单的理解成如果if条件满足,就使人物的描述变成XXXX。
然后actor就代表每一个人物实例。

接下来你要做的就是根据你自己预设的条件,改变""里的内容就可以了。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7436
在线时间
1098 小时
注册时间
2006-7-18
帖子
569
3
 楼主| 发表于 2015-2-7 16:20:27 | 只看该作者
  def description
    return "我是1号主角" if actor.id == 1
    return "我是2号主角" if actor.id == 2        
    actor.description
  end
这部分是了解了,如果想增加分支条件在哪加?比如加上开关1打开时显示第一类说明,开关2打开时显示第二类说明格式的话我预想的格式是:
  def description
if   开关1=true
    return "这是1号开关开启后的说明" if actor.id == 1
    return "这是1号开关开启后的说明" if actor.id == 2        
if   开关2=true   
    return "这是2号开关开启后的说明" if actor.id == 1
    return "这是2号开关开启后的说明" if actor.id == 2   
actor.description
  end
想到这样的格式,可是要怎么写就不会了!另外这部分能不能单独拿出来做一个脚本什么的,就不用在原本自带的系统里修改了!
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2015-2-7 16:23:57 | 只看该作者
雷影 发表于 2015-2-7 16:20
def description
    return "我是1号主角" if actor.id == 1
    return "我是2号主角" if actor.id ==  ...

开关1:$game_switches[1]

插件脚本的形式

class Game_Actor
  def description
    #...
  end
end
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7436
在线时间
1098 小时
注册时间
2006-7-18
帖子
569
5
 楼主| 发表于 2015-2-7 16:29:48 | 只看该作者
本帖最后由 雷影 于 2015-2-7 16:34 编辑
taroxd 发表于 2015-2-7 16:23
开关1:$game_switches[1]

插件脚本的形式


class Game_Actor
  def description
     if   $game_switches[1]
          return "这是1号开关开启后的说明" if actor.id == 1
          return "这是1号开关开启后的说明" if actor.id == 2        
     end  
     if  $game_switches[2]
         return "这是2号开关开启后的说明" if actor.id == 1
         return "这是2号开关开启后的说明" if actor.id == 2   
     end
  actor.description
  end
end
是这样么??

点评

加了END后的这样?  发表于 2015-2-7 16:35
if 结束的地方要加 end  发表于 2015-2-7 16:32
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
6
发表于 2015-2-7 16:34:04 | 只看该作者
if $game_switches[1]
  XXX
end

后面不写就等于判断为 $game_switches[1] == true

===============================================

雷影 发表于 2015-2-7 16:20
def description
    return "我是1号主角" if actor.id == 1
    return "我是2号主角" if actor.id ==  ...

开关1:$game_switches[1]

插件脚本的形式
  1. class Game_Actor
  2.   def description
  3.     if  $game_switches[1]
  4.       return "这是1号开关开启后的说明" if actor.id == 1
  5.       return "这是1号开关开启后的说明" if actor.id == 2        
  6.     end
  7.     if  $game_switches[2]
  8.       return "这是2号开关开启后的说明" if actor.id == 1
  9.       return "这是2号开关开启后的说明" if actor.id == 2   
  10.     end
  11.     actor.description
  12.   end
  13. end
复制代码

点评

测试完毕,效果很好!目的达成!十分感谢!另外在另一贴里教教我怎么先限制后修改等级上限的再定义吧!?  发表于 2015-2-7 17:28
$game_variables[变量ID].between?(2, 9)  发表于 2015-2-7 17:04
谢谢!目的达成了!另外如果还想细分一下!在开关下多加个变量来做if的话怎么做? if $Game_Variables[变量ID]>1么?范围定在大于1小于10要怎么设置  发表于 2015-2-7 17:02

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7436
在线时间
1098 小时
注册时间
2006-7-18
帖子
569
7
 楼主| 发表于 2015-2-7 17:37:35 | 只看该作者
本帖最后由 雷影 于 2015-2-7 17:38 编辑

放一个完整版的做结贴:

class Game_Actor
  def description
    if $game_switches[1]#1号开关路线开启(说明文可显示2行,一行大约28个文字)
      if $game_variables[1].between?(1, 9) #剧情进度值范围1~9时(不想要可以删掉,还有相对end也要删)
        return "这是1号开关路线开启后的说明 进度值1~9 " if actor.id == 1#人物ID
        return "这是1号开关路线开启后的说明" if actor.id == 2        
      end
      if $game_variables[1].between?(10, 19)
        return "这是1号开关路线开启后的说明 剧情进度值10~19" if actor.id == 1#人物ID
        return "这是1号开关路线开启后的说明" if actor.id == 2        
      end
    end
   
    if $game_switches[2]#2号开关路线开启
        if $game_variables[1].between?(1, 9) #剧情进度值范围1~9时
              return "这是2号开关路线开启后的说明" if actor.id == 1
              return "这是2号开关路线开启后的说明" if actor.id == 2   
            end
    end
    actor.description
  end
end

点评

哦!不过这样感觉代码反而多了!!我是想开关控制分支路线,在这个分支路线下时,不同进度的剧情下改变人物说明,开关的作用就是个路标!  发表于 2015-2-7 18:04
$game_switches[2] && $game_variables[1].between?(1, 9)这样就可以把倆条件写一起了,“&&”等同于“and”的意思。  发表于 2015-2-7 17:56
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 16:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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