Project1
标题: 自己亲手写的任务系统脚本 Ver 1.0 [打印本页]
作者: 876加几 时间: 2013-10-27 18:41
标题: 自己亲手写的任务系统脚本 Ver 1.0
本帖最后由 876加几 于 2015-8-27 22:41 编辑
本系统纯属原创。
先看看脚本吧:
老版本脚本 Ver 0.2版(修正粗体字Bug,已关闭下载):
注意:由于部分人找不到脚本,所以此红字作为指引,下面是下载地址:
Ver 1.0版(大更新,裁图在下面)
任务系统 Ver 1.0.zip
(207.01 KB, 下载次数: 801)
使用方法: #注:[]里的全是选填内容
添加新任务:- $game_temp.new_task(名称, 帮助文本[, 难度, 得到金钱, 得到物品, 得到武器, 得到防具, 物品数量, 武器数量, 防具数量])
复制代码 完成任务:- $game_temp.final_task(任务ID[, 帮助文本分行])
复制代码 失效任务:- $game_temp.lose_task(任务ID[, 帮助文本分行])
复制代码 调用任务画面:Ver 1.0大版本更新,以往的方法将不再支持!
Ver 1.0 添加新任务:
$game_temp.new_task(name, help, [difficulty, gold, items, weapons, armors])
=begin
name : 名称
help : 帮助
difficulty : 难度,默认为 1
gold : 赏金,默认为 0(没有赏金)
items : 物品,格式为 {id1 => 数量, id2 => 数量, ...},默认为 {}(没有物品奖励)
weapons(武器) 和 armors(防具)设置方法等同于物品。
=end
$game_temp.new_task(name, help, [difficulty, gold, items, weapons, armors])
=begin
name : 名称
help : 帮助
difficulty : 难度,默认为 1
gold : 赏金,默认为 0(没有赏金)
items : 物品,格式为 {id1 => 数量, id2 => 数量, ...},默认为 {}(没有物品奖励)
weapons(武器) 和 armors(防具)设置方法等同于物品。
=end
Ver 1.0 完成任务:
$game_temp.final_task(id)
$game_temp.final_task(id)
Ver 1.0 任务失败:
由于 Ver 1.0 的任务系统物品是两行并列的,所以建议物品汉字长度要小于4,否则会发生堆叠。
注意!如果游戏已经有存档了就别添这个脚本了,否则存档必须全删除,若既有存档还不删除存档的话,读档时就会:出错!
裁图(Ver 0.1):
裁图(Ver 0.2):
裁图(Ver 1.0):
作者: 876加几 时间: 2013-11-3 19:36
修复Bug更新自顶。
修复任务多的话显示不全问题;
修复向下移动任务信息部分丢失问题。
作者: chd114 时间: 2013-11-4 14:51
代码似乎有些太长了···不过对游戏运行效率不会有太大的影响,这个脚本的改进升级空间非常大,别弃坑
作者: 恐惧剑刃 时间: 2013-11-5 17:40
本帖最后由 恋′挂机 于 2013-11-9 17:13 编辑
其实你比我强多了
加油吧
作者: y967 时间: 2013-12-5 20:26
本帖最后由 y967 于 2013-12-6 12:09 编辑
难度怎么设置,物品,武器,防具又怎么设置,字体颜色怎么设置,工程里只有任务描述,请做全啊,还有得到东西的进度没有啊
作者: qkqwe 时间: 2014-6-1 09:42
求问如何设置难度呢?
作者: 天地有正气 时间: 2014-6-3 19:45
Game_Temp的initialize方法可以用alias吧……
作者: FKNM 时间: 2014-6-7 16:33
任务ID怎么设置啊?模仿你范例那样做,最后提示我参数错误
作者: FKNM 时间: 2014-6-7 16:39
不懂诶,要不大大你写两端给我看看好吗?
作者: pino匹诺曹 时间: 2015-2-19 16:48
求问如何设置难度呢?
作者: 小孩纸大呵呵 时间: 2015-3-21 19:00
876加几 发表于 2013-11-3 19:36 
修复Bug更新自顶。
修复任务多的话显示不全问题;
修复向下移动任务信息部分丢失问题。 ...
难度怎么设置,[]里面写什么?求范例
作者: 英顺的马甲 时间: 2015-3-23 11:05
从截图里看得出你的bitmap在重新描绘前忘忘clear了,导致无限描绘,所以你的字特粗,这点必须注意
作者: 876加几 时间: 2015-7-23 10:21
Ver 1.0 大版本更新置顶!
更新内容:
1.章节分割显示;
2.设置物品、武器、防具优化;
3.缩小字体,不怕字太长缩微;
4.任务完成、失败颜色。
作者: 天地有正气 时间: 2015-7-23 10:24
1.你主楼的脚本貌似没变 - -
2.建议你开辟自己的命名空间
作者: acv255 时间: 2015-8-15 12:56
支持,刘明马克
作者: 九尾的百合伞 时间: 2015-8-24 11:09
没有啊,在那?
作者: 九尾的百合伞 时间: 2015-8-24 11:10
脚本在那?
作者: Prophesy丿 时间: 2015-9-4 08:32
请问有没有办法把任务系统加入菜单中?就是一打开菜单就能在菜单栏里看到
作者: 876加几 时间: 2015-10-6 22:01
只能加进命令栏中。
#Scene_Menu 替换19~27行
# 生成命令窗口
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "状态"
s5 = "存档"
s6 = "结束游戏"
@command_window = Window_Command.new(160, [s1, s2, s3, s4,"任务" , s5, s6])
#Scene_Menu 替换19~27行
# 生成命令窗口
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "状态"
s5 = "存档"
s6 = "结束游戏"
@command_window = Window_Command.new(160, [s1, s2, s3, s4,"任务" , s5, s6])
#Scene_Menu 注释或删除一者即可,注释或删除步数窗口请修改44行y数值为320
# 生成游戏时间窗口
@playtime_window = Window_PlayTime.new
@playtime_window.x = 0
@playtime_window.y = 224
# 生成步数窗口
@steps_window = Window_Steps.new
@steps_window.x = 0
@steps_window.y = 320
#Scene_Menu 注释或删除一者即可,注释或删除步数窗口请修改44行y数值为320
# 生成游戏时间窗口
@playtime_window = Window_PlayTime.new
@playtime_window.x = 0
@playtime_window.y = 224
# 生成步数窗口
@steps_window = Window_Steps.new
@steps_window.x = 0
@steps_window.y = 320
#Scene_Menu 替换105~169行:
def update_command
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 切换的地图画面
$scene = Scene_Map.new
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 同伴人数为 0、存档、游戏结束以外的场合
if $game_party.actors.size == 0 and @command_window.index < 4
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 命令窗口的光标位置分支
case @command_window.index
when 0 # 物品
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 切换到物品画面
$scene = Scene_Item.new
when 1 # 特技
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 激活状态窗口
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 # 装备
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 激活状态窗口
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 # 状态
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 激活状态窗口
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4 # 任务
$scene = Scene_Task.new
when 5 # 存档
# 禁止存档的情况下
if $game_system.save_disabled
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 切换到存档画面
$scene = Scene_Save.new
when 6 # 游戏结束
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 切换到游戏结束画面
$scene = Scene_End.new
end
return
end
end
#Scene_Menu 替换105~169行:
def update_command
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 切换的地图画面
$scene = Scene_Map.new
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 同伴人数为 0、存档、游戏结束以外的场合
if $game_party.actors.size == 0 and @command_window.index < 4
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 命令窗口的光标位置分支
case @command_window.index
when 0 # 物品
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 切换到物品画面
$scene = Scene_Item.new
when 1 # 特技
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 激活状态窗口
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 # 装备
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 激活状态窗口
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 # 状态
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 激活状态窗口
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4 # 任务
$scene = Scene_Task.new
when 5 # 存档
# 禁止存档的情况下
if $game_system.save_disabled
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 切换到存档画面
$scene = Scene_Save.new
when 6 # 游戏结束
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 切换到游戏结束画面
$scene = Scene_End.new
end
return
end
end
作者: 赤之新月 时间: 2016-1-2 23:26
请问能不能让失败的任务重启,或者删除失败的任务?
作者: 876加几 时间: 2016-1-3 10:03
本帖最后由 876加几 于 2016-1-3 10:05 编辑
赤之新月 发表于 2016-1-2 23:26 
请问能不能让失败的任务重启,或者删除失败的任务?
重启失败的任务:
$game_taskdata.lose_tasks.delete(id)
$game_taskdata.task_command_name[id].delete("(已失败)")
$game_taskdata.task_help[id].delete("(已失败)")
#id:任务序列号
$game_taskdata.lose_tasks.delete(id)
$game_taskdata.task_command_name[id].delete("(已失败)")
$game_taskdata.task_help[id].delete("(已失败)")
#id:任务序列号
删除失败的任务会有很多bug
作者: 赤之新月 时间: 2016-1-3 15:50
876加几 发表于 2016-1-3 10:03 
重启失败的任务:
$game_taskdata.lose_tasks.delete(id)
$game_taskdata.task_command_name.delete("( ...
对不起,我试了半天没明白怎么用……{:2_270:}
输入任务ID后执行这个脚本会发生NoMethodError{:2_270:}
作者: 绝弦之月 时间: 2016-5-14 20:23
请问章节怎么设置?希望LZ回答,谢谢。
作者: 绝弦之月 时间: 2016-5-14 20:25
绝弦之月 发表于 2016-5-14 20:23 
请问章节怎么设置?希望LZ回答,谢谢。
我只是个,新手,连;这也不懂,望您能回答
作者: 绝弦之月 时间: 2016-5-14 20:25
绝弦之月 发表于 2016-5-14 20:23 
请问章节怎么设置?希望LZ回答,谢谢。
我只是个,新手,连这也不懂,望您能回答。
作者: 绝弦之月 时间: 2016-5-14 21:10
请教如何设置隐藏任务,会不会有冲突?
作者: 绝弦之月 时间: 2016-5-14 23:34
@876加几 LZ请问这个问题是出在哪里?望您能回答,谢谢。
-
图片1.png
(77.55 KB, 下载次数: 33)
作者: 绝弦之月 时间: 2016-5-15 07:22
就是这个出错,我不知道怎么改,lz可以教教我吗?谢谢。
作者: y967 时间: 2016-9-8 10:54
任务id 这么查看,可不可以在完成任务的时候括号填任务名字,不然任务多了就不知道是几号任务了
作者: y967 时间: 2016-11-18 15:23
本帖最后由 y967 于 2016-11-18 16:18 编辑
有问题了,我设置了两个任务A,B,如果按顺序完成,没有问题,如果先接B完成的时候就出错了。
最好设置任务的时候可以添加任务id,不然的话,支线任务接取顺序不一样的话,完成任务会出错
作者: huangke 时间: 2017-12-11 12:30
为什么各种niiclass
作者: 黑白无双 时间: 2018-3-10 03:12
感谢楼主分享。
作者: 夜宇星繁 时间: 2025-3-23 17:01
感谢大佬分享
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |