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

Project1

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

[已经解决] 这个这个 怎么用啊?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2013-4-14
帖子
14
跳转到指定楼层
1
发表于 2013-4-19 00:08:58 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 一沐妃一 于 2013-4-19 10:11 编辑

#用法:
#领取任务:$game_party.get_task(任意数字,任务名称,任务描述)
#完成任务:$game_party.finish_task(领取任务时设定的数字)
#如:前面有事件$game_party.get_task(1,"测试","只是测试")
#后面完成任务的脚本就是$game_party.finish_task(1)

#召唤任务界面:SceneManager.call(Scene_Task)




class Task
  attr_reader :desc
  attr_reader :finished
  def initialize(origin_name,desc)
    @origin_name = origin_name
    @desc = desc
    @finished = false
  end
  def name
    if @finished
      return @origin_name + "(完成)"
    else
      return @origin_name
    end
  end
  def finish
    @finished = true
  end
   
end

class Game_Party < Game_Unit
  alias old_init initialize
  def initialize
    old_init
    @tasks = {}
  end
  def get_task(i,name,desc)
    @tasks=Task.new(name,desc)
  end
  def have_task?(i)
    @tasks != nil
  end
  def finish_task(i)
    @tasks.finish if have_task?(i)
  end
  def unfinished_tasks
    n = []
    for i in @tasks.values
      next if i.finished
      n.push(i)
    end
    return n
  end
  def finished_tasks
    n = []
    for i in @tasks.values
      next unless i.finished
      n.push(i)
    end
    return n
  end
end

class Window_Task_Type < Window_HorzCommand
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
    activate
  end
  def window_width
    return Graphics.width
  end
  def col_max
    return 3
  end
  #--------------------------------------------------------------------------
  # ● コマンドリストの作成
  #--------------------------------------------------------------------------
  def make_command_list
    add_command("未完成任务",  :unfinished_task)
    add_command("已完成任务", :finished_task)
    add_command("取消", :cancel)
  end
end

class Window_TaskLeft < Window_Selectable
  attr_reader :finished
  def initialize
    super(0,48,160,Graphics.height - 48)
    create_contents
    @finished = false
    @index = 0
    refresh
    deactivate
  end
  def set_finish(finish)
    @finished = finish
    set_item_max
  end
  def item_max
    return @item_max != nil ? @item_max : 0
  end
  def set_item_max
    if @finished
      @item_max = $game_party.finished_tasks.size
    else
      @item_max = $game_party.unfinished_tasks.size
    end
  end

  def refresh
    set_item_max
    super
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #--------------------------------------------------------------------------
  def draw_item(index)
    text = ""
    unless @finished
      if $game_party.unfinished_tasks[index] != nil
        text = $game_party.unfinished_tasks[index].name
      end
    else
      if $game_party.finished_tasks[index] != nil
        text = $game_party.finished_tasks[index].name  
      end
    end
    draw_text(item_rect_for_text(index), text)
  end

end

class Window_TaskRight < Window_Base
  attr_reader :left_index
  def initialize
    super(160,48,Graphics.width - 160,Graphics.height - 48)
    create_contents
    @left_index = 0
    @finished = false
    refresh
  end
  def set_index(i)
    @left_index = i
    refresh
  end
  def set_finish(i)
    @finished = i
  end
  
  def refresh
    contents.clear
    draw_desc
  end
  def draw_desc
    if @finished
      if $game_party.finished_tasks[@left_index] != nil
        draw_text_ex(0,0,$game_party.finished_tasks[@left_index].desc)
      end
    else
      if $game_party.unfinished_tasks[@left_index] != nil
        draw_text_ex(0,0,$game_party.unfinished_tasks[@left_index].desc)
      end
    end
  end
  
end

class Scene_Task < Scene_Base
  def start
    super
    create_task_type_window
    create_left_window
    create_right_window
  end
  def update
    super
    if @left_window.active
      if Input.trigger?(:B)
        @left_window.deactivate
        @task_type_window.activate
      end
      if Input.trigger?(:UP) || Input.trigger?(:DOWN)
        @right_window.set_finish(@left_window.finished)
        @right_window.set_index(@left_window.index)
      end
    end
  end
  
  def terminate
    super
  end
  def create_task_type_window
    @task_type_window = Window_Task_Type.new
    @task_type_window.set_handler(:unfinished_task,method(:view_unfinished_task))
    @task_type_window.set_handler(:finished_task,method(:view_finished_task))
    @task_type_window.set_handler(:cancel,method(:return_scene))
  end
  def create_left_window
    @left_window = Window_TaskLeft.new
    @left_window.set_finish(false)
    @left_window.refresh
  end
  def create_right_window
    @right_window = Window_TaskRight.new
    @right_window.refresh
  end
  def view_unfinished_task
    @left_window.set_finish(false)
    @left_window.refresh
    @left_window.activate
    @task_type_window.deactivate
    @right_window.set_finish(false)
    @right_window.set_index(@left_window.index)
  end
  def view_finished_task
    @left_window.set_finish(true)
    @left_window.refresh
    @left_window.activate
    @task_type_window.deactivate
    @right_window.set_finish(true)
    @right_window.set_index(@left_window.index)
  end
  
end

class Window_MenuCommand < Window_Command
  alias add_original_commands_task_zabing add_original_commands
  def add_original_commands
    add_original_commands_task_zabing
    add_command("任务", :maphint)
  end
end
class Scene_Menu < Scene_MenuBase
  alias create_command_window_task_zabing create_command_window
  def create_command_window
    create_command_window_task_zabing
    @command_window.set_handler(:maphint,   method(:command_maphint))
  end
  def command_maphint
    SceneManager.call(Scene_Task)
  end
end


-----呃,解决了。看了http://rpg.blue/thread-221055-1-3.html这个帖子之后 一开始一直报下面那个错误,后来重新开档之后就没事了.

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2013-4-14
帖子
14
10
 楼主| 发表于 2013-4-20 00:08:14 | 只看该作者
j433463 发表于 2013-4-19 23:51
呵呵,都是常见的问题,改完脚本还没有存档就想测试战斗,加了脚本后用读档方式去测试,配套的脚本放置顺序 ...

我就经常性的遇到这种错误....{:2_253:}
对了,那个装备强化脚本你知道不?http://rpg.blue/thread-220914-1-1.html
就是这个, 他里面的宝石,远古之石,黄金粉末什么的在哪里更改才显示啊,我都不知道怎么该···

点评

在数据库物品里改。另:请勿一帖多问,谢谢合作!  发表于 2013-4-20 00:21
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
9
发表于 2013-4-19 23:51:52 | 只看该作者
呵呵,都是常见的问题,改完脚本还没有存档就想测试战斗,加了脚本后用读档方式去测试,配套的脚本放置顺序颠倒,在输入内容时数值字串不分或少了参数,只顾着放脚本没有设置需要的事件或数据库资料导致指定的对象不存在,这些都是用脚本经常碰到的出错状况,尤其是 for nil:NilClass 这种错误。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2013-4-14
帖子
14
8
 楼主| 发表于 2013-4-19 22:33:59 | 只看该作者
j433463 发表于 2013-4-19 17:51
是任务根本没接到吧,您在事件脚本中用

$game_party.get_task(1,"测试","只是测试")

{:2_254:} 昨晚为这脚本熬到凌晨三点 就是不行,就是忘了重新读档,纠结~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2013-4-14
帖子
14
7
 楼主| 发表于 2013-4-19 22:33:01 | 只看该作者
黄濑凉太 发表于 2013-4-19 21:49
其实答案永远是很简单,和我一开始的时候一样,你输入任务信息的时候没有设括号把。。。"说的是这个括号。" ...

{:2_254:} 我是没有重新读档~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
1083 小时
注册时间
2013-3-29
帖子
2394
6
发表于 2013-4-19 21:49:08 手机端发表。 | 只看该作者
其实答案永远是很简单,和我一开始的时候一样,你输入任务信息的时候没有设括号把。。。"说的是这个括号。"
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
5
发表于 2013-4-19 17:51:27 | 只看该作者
是任务根本没接到吧,您在事件脚本中用

$game_party.get_task(1,"测试","只是测试")

其中的 1 是任务编号,后面两个则是任务名称和任务说明,若您照这方式设对了,应该会接到任务,那么不会出现您任务界面的错误讯息才对,

又或者,您是用读取旧档的方式在测试?建议您不要用读取档案,而是开新游戏的方式去测试,很多脚本以读取旧档方式测试会出错,

毕竟存档时那个脚本还不存在,一些相关的资讯在旧存档中没有。

评分

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

查看全部评分

修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2013-4-14
帖子
14
4
 楼主| 发表于 2013-4-19 09:05:21 | 只看该作者
j433463 发表于 2013-4-19 02:35
http://rpg.blue/thread-221055-1-3.html

建议看一下这个。


怎么还是不行啊?一打开任务界面就弹这个。。。

@WGF9$9~PXFH51)K$4(`L11.jpg (8.47 KB, 下载次数: 24)

@WGF9$9~PXFH51)K$4(`L11.jpg
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
帖子
1543
3
发表于 2013-4-19 02:35:23 | 只看该作者
http://rpg.blue/thread-221055-1-3.html

建议看一下这个。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2013-4-14
帖子
14
2
 楼主| 发表于 2013-4-19 00:09:43 | 只看该作者
只会在脚本编辑器插入 然后粘贴,其他的就啥也不会用了~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-6 13:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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