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

Project1

 找回密码
 注册会员
搜索
查看: 1576|回复: 5

[已经解决] 问一个很泡菜的问题:使用物品触发状态

 关闭 [复制链接]

Lv1.梦旅人

论坛御王核潜艇

梦石
0
星屑
50
在线时间
50 小时
注册时间
2006-1-3
帖子
637

冬季迷宫创意大赛冠军

发表于 2009-8-26 10:42:02 | 显示全部楼层 |阅读模式

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

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

x
有事请教:怎么使用一个物品触发指定的几个状态的随机一个。。
默默存在,畅游于各水域

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2009-8-8
帖子
161
发表于 2009-8-26 10:49:10 | 显示全部楼层
公共事件,随即变量,条件分歧~
转投战棋怀抱。沉下去做游戏。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

论坛御王核潜艇

梦石
0
星屑
50
在线时间
50 小时
注册时间
2006-1-3
帖子
637

冬季迷宫创意大赛冠军

 楼主| 发表于 2009-8-26 10:54:16 | 显示全部楼层
可是如果用事件做的话,是没有办法让使用者中状态的,只能指定使用者,我是脚本盲。。

不知道公共事件让自己中状态的脚本怎么写。
默默存在,畅游于各水域
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1314
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
发表于 2009-8-28 17:35:34 | 显示全部楼层
实际上我有一个简单的改的方法,大概实现原理就是再
使用物品以后,系统认为这个物品是随机的。

所以你就要做好几个相同的东西
比如说  黑铁炸弹(乱变的名字)
如果要随机4种状态
那么你就要做4个黑铁炸弹
做好这4个黑铁炸弹以后,还没有完。

记号你这4个黑铁炸弹的物品ID
接下来开始脚本方面了!
精卫赤龙腾   
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程   
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    
只是带着一种决心,去争取残存的最后的希望。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
128 小时
注册时间
2009-1-28
帖子
2790
发表于 2009-8-28 17:43:35 | 显示全部楼层
3# 沉默的米饭团
给技能附加状态,再用公共事件逐个判断谁身上有这个状态
这种判断对象的方法叫做状态选取法,简称状态法

炼金术的根本法则是等价交换。想要获得,必须失去同等价值的东西。每当烦躁的时候,煎熬在不想做却又正在做的烦心事中的时候,我就安慰自己,提醒自己做这些事情的目的所在,告诉自己不要忽略所获得或者即将获得的回报,物质的,精神的,肉体的,灵魂的回报!只做想做的事情,就会失去不想失去的东西。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1314
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
发表于 2009-8-28 17:50:05 | 显示全部楼层
本帖最后由 九夜神尊 于 2009-8-28 18:01 编辑

这里是脚本方面。
我给你直接写。不过到底还是要你自己改
谁知到你 做那4个黑铁炸弹的 ID是什么 。

class Scene_Item
  #--------------------------------------------------------------------------
  # ● 刷新画面 (物品窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_item
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换到菜单画面
      $scene = Scene_Menu.new(0)
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 获取物品窗口当前选中的物品数据
      @item = @item_window.item
         id  [email protected]
      #★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
      #★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
      #★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
      #你的东西在这里设定
      case @item.id
      when 12 #这个呢,就是你的那个黑铁炸弹的ID啦,4个里面随便一个就可以了
        n = rand(4)#也不一定就是4个,就看你随机几个状态了。
        case n
        when 0
          id = 12  #这个就是第一个随机状态的那个黑铁炸弹的ID
        when 1
          id = 13  #这个就是第二个随机状态的黑铁炸弹的ID
        when 2
          id = 25  #同上
        when 3
          id = 35
       #when 4   #如果不够自己扩充
       #  id = 45
         end
      when 15  #这个呢,就是你又要做一个白铁炸弹了
        n = rand(4)#
        case n
        when 0
          id = 15  #
        when 1
          id = 16  #
        when 2
          id = 17 #
        when 3
          id = 18
       #when 4   #如果不够自己扩充
       #  id = 45
         end
    #  when 20 #如果不够自己扩充
     #   n = rand(4)#也不一定就是4个,就看你随机几个状态了。
      #  case n
     #   when 0
     #     id = 12  #这个就是第一个随机状态的那个黑铁炸弹的ID
     #   when 1
      #    id = 13  #这个就是第二个随机状态的黑铁炸弹的ID
      #  when 2
      #    id = 25  #同上
      #  when 3
       #   id = 35
       #when 4   #如果不够自己扩充
       #  id = 45
     end
@item = $data_items[id]
     #恭喜你的设定完了,你到游戏里面试一下把。
     #记得那些炸弹的ID要搞对哦。要不出现一些奇怪的事件……
      #★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
      #★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
      #★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
      #★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
      # 不使用物品的情况下
      unless @item.is_a?(RPG::Item)
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 不能使用的情况下
      unless $game_party.item_can_use?(@item.id)
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 演奏确定 SE
      $game_system.se_play($data_system.decision_se)
      # 效果范围是我方的情况下
      if @item.scope >= 3
        # 激活目标窗口
        @item_window.active = false
        @target_window.x = (@item_window.index + 1) % 2 * 304
        @target_window.visible = true
        @target_window.active = true
        # 设置效果范围 (单体/全体) 的对应光标位置
        if @item.scope == 4 || @item.scope == 6
          @target_window.index = -1
        else
          @target_window.index = 0
        end
      # 效果在我方以外的情况下
      else
        # 公共事件 ID 有效的情况下
        if @item.common_event_id > 0
          # 预约调用公共事件
          $game_temp.common_event_id = @item.common_event_id
          # 演奏物品使用时的 SE
          $game_system.se_play(@item.menu_se)
          # 消耗品的情况下
          if @item.consumable
            # 使用的物品数减 1
            $game_party.lose_item(@item.id, 1)
            # 再描绘物品窗口的项目
            @item_window.draw_item(@item_window.index)
          end
          # 切换到地图画面
          $scene = Scene_Map.new
          return
        end
      end
      return
    end
  end
end


这是我给你定做的一个脚本,记得多给我点经验
精卫赤龙腾   
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程   
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    
只是带着一种决心,去争取残存的最后的希望。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-18 16:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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