查看: 19895|回复: 56

[原创发布] 自己亲手写的任务系统脚本 Ver 1.0

[复制链接]

矿工

梦石
0
星屑
134
在线时间
898 小时
注册时间
2012-10-5
回帖
1303
发表于 2013-10-27 18:41:40 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 876加几 于 2015-8-27 22:41 编辑

本系统纯属原创。
先看看脚本吧:
[fold=老版本脚本]
Ver 0.1:
  1. class Game_Temp
  2.   #--------------------------------------------------------------------------
  3.   # ● 定义实例变量
  4.   #--------------------------------------------------------------------------
  5.   attr_accessor :new_task_name            # 新任务 名称
  6.   attr_accessor :new_task_help            # 新任务 帮助文字
  7.   attr_accessor :new_task_gold            # 新任务 奖励金钱
  8.   attr_accessor :new_task_items           # 新任务 奖励物品
  9.   attr_accessor :new_task_weapons         # 新任务 奖励武器
  10.   attr_accessor :new_task_armors          # 新任务 奖励防具
  11.   attr_accessor :new_task_item_num        # 新任务 物品奖励数量
  12.   attr_accessor :new_task_weapon_num      # 新任务 武器奖励数量
  13.   attr_accessor :new_task_armor_num       # 新任务 防具奖励数量
  14.   attr_accessor :new_task_difficulty
  15.   #--------------------------------------------------------------------------
  16.   # ● 初始化对像
  17.   #--------------------------------------------------------------------------
  18.   def initialize
  19.     @map_bgm = nil
  20.     @message_text = nil
  21.     @message_proc = nil
  22.     @choice_start = 99
  23.     @choice_max = 0
  24.     @choice_cancel_type = 0
  25.     @choice_proc = nil
  26.     @num_input_start = 99
  27.     @num_input_variable_id = 0
  28.     @num_input_digits_max = 0
  29.     @message_window_showing = false
  30.     @common_event_id = 0
  31.     @in_battle = false
  32.     @battle_calling = false
  33.     @battle_troop_id = 0
  34.     @battle_can_escape = false
  35.     @battle_can_lose = false
  36.     @battle_proc = nil
  37.     @battle_turn = 0
  38.     @battle_event_flags = {}
  39.     @battle_abort = false
  40.     @battle_main_phase = false
  41.     @battleback_name = ''
  42.     @forcing_battler = nil
  43.     @shop_calling = false
  44.     @shop_id = 0
  45.     @name_calling = false
  46.     @name_actor_id = 0
  47.     @name_max_char = 0
  48.     @menu_calling = false
  49.     @menu_beep = false
  50.     @save_calling = false
  51.     @debug_calling = false
  52.     @player_transferring = false
  53.     @player_new_map_id = 0
  54.     @player_new_x = 0
  55.     @player_new_y = 0
  56.     @player_new_direction = 0
  57.     @transition_processing = false
  58.     @transition_name = ""
  59.     @gameover = false
  60.     @to_title = false
  61.     @last_file_index = 0
  62.     @debug_top_row = 0
  63.     @debug_index = 0
  64.     @new_task_name = ""
  65.     @new_task_help = ""
  66.     @new_task_gold = ""
  67.     @new_task_items = nil
  68.     @new_task_weapons = nil
  69.     @new_task_armors = nil
  70.     @new_task_item_num = 0
  71.     @new_task_weapon_num = 0
  72.     @new_task_armor_num = 0
  73.     @new_task_difficulty = 1
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 生成新任务(在Scene_Task的内部使用)
  77.   #--------------------------------------------------------------------------
  78.   def new_task(name, help, difficulty = 1, gold = 0, items = nil, weapons = nil, armors = nil, item_num = 1, weapon_num = 1, armor_num = 1)
  79.     # 实例变量的改变
  80.     @new_task_name = name
  81.     @new_task_help = help
  82.     @new_task_gold = gold
  83.     @new_task_items = items
  84.     @new_task_weapons = weapons
  85.     @new_task_armors = armors
  86.     @new_task_item_num = item_num
  87.     @new_task_weapon_num = weapon_num
  88.     @new_task_armor_num = armor_num
  89.     @new_task_difficulty = difficulty
  90.     $game_taskdata.tasks += 1
  91.     # 保存数据(载入数组)
  92.     if $game_taskdata.task_name[0] == ""
  93.       $game_taskdata.task_name = [@new_task_name]
  94.       $game_taskdata.task_command_name = [@new_task_name]
  95.       $game_taskdata.task_help = [@new_task_help]
  96.       $game_taskdata.task_gold = [@new_task_gold]
  97.       $game_taskdata.task_items = [@new_task_items]
  98.       $game_taskdata.task_weapons = [@new_task_weapons]
  99.       $game_taskdata.task_armors = [@new_task_armors]
  100.       $game_taskdata.task_item_num = [@new_task_item_num]
  101.       $game_taskdata.task_weapon_num = [@new_task_weapon_num]
  102.       $game_taskdata.task_armor_num = [@new_task_armor_num]
  103.       $game_taskdata.task_difficulty = [@new_task_difficulty]
  104.     else
  105.       $game_taskdata.task_name.push(@new_task_name)
  106.       $game_taskdata.task_command_name.push(@new_task_name)
  107.       $game_taskdata.task_help.push(@new_task_help)
  108.       $game_taskdata.task_gold.push(@new_task_gold)
  109.       $game_taskdata.task_items.push(@new_task_items)
  110.       $game_taskdata.task_weapons.push(@new_task_weapons)
  111.       $game_taskdata.task_armors.push(@new_task_armors)
  112.       $game_taskdata.task_item_num.push(@new_task_item_num)
  113.       $game_taskdata.task_weapon_num.push(@new_task_weapon_num)
  114.       $game_taskdata.task_armor_num.push(@new_task_armor_num)
  115.       $game_taskdata.task_difficulty.push(@new_task_difficulty)
  116.     end
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 完成任务(在Scene_Task的内部使用)
  120.   #--------------------------------------------------------------------------
  121.   def final_task(id, new_line = true)
  122.     # 算出数组中的id
  123.     id = id - 1
  124.     unless $game_taskdata.lose_tasks.include?(id)
  125.       # 修改数组数据
  126.       $game_taskdata.task_command_name[id] = $game_taskdata.task_command_name[id] + "(已完成)"
  127.       $game_taskdata.task_help[id] = new_line == true ? $game_taskdata.task_help[id] + "\n(已完成)" : $game_taskdata.task_help[id] + "(已完成)"
  128.       # 获得任务奖励
  129.       unless $game_taskdata.task_gold[id] == 0
  130.         $game_party.gain_gold($game_taskdata.task_gold[id])
  131.       end
  132.       unless $game_taskdata.task_items[id] == nil
  133.         $game_party.gain_item($game_taskdata.task_items[id], $game_taskdata.task_item_num[id])
  134.       end
  135.       unless $game_taskdata.task_weapons[id] == nil
  136.         $game_party.gain_weapon($game_taskdata.task_weapons[id], $game_taskdata.task_weapon_num[id])
  137.       end
  138.       unless $game_taskdata.task_armors[id] == nil
  139.         $game_party.gain_armor($game_taskdata.task_armors[id], $game_taskdata.task_weapon_num[id])
  140.       end
  141.     end
  142.   end
  143.   #------------------------------------------------------------------------
  144.   # 失败任务(啊啊啊!)
  145.   #------------------------------------------------------------------------
  146.   def lose_task(id, new_line = true)
  147.     id = id - 1
  148.     $game_taskdata.task_command_name[id] = $game_taskdata.task_command_name[id] + "(已失败)"
  149.     $game_taskdata.task_help[id] = new_line = true ? $game_taskdata.task_help[id] + "\n(已失败)" : $game_taskdata.task_help[id] + "(已失败)"
  150.     $game_taskdata.lose_tasks.push(id)
  151.   end
  152. end
  153. class Game_TaskData
  154.   attr_accessor :task_name
  155.   attr_accessor :task_command_name
  156.   attr_accessor :task_help
  157.   attr_accessor :task_gold
  158.   attr_accessor :task_items
  159.   attr_accessor :task_weapons
  160.   attr_accessor :task_armors
  161.   attr_accessor :task_item_num
  162.   attr_accessor :task_weapon_num
  163.   attr_accessor :task_armor_num
  164.   attr_accessor :task_difficulty
  165.   attr_accessor :tasks
  166.   attr_accessor :lose_tasks
  167.   def initialize
  168.     @task_name = [""]
  169.     @task_command_name = [""]
  170.     @task_help = [""]
  171.     @task_gold = [0]
  172.     @task_items = [nil]
  173.     @task_weapons = [nil]
  174.     @task_armors = [nil]
  175.     @task_item_num = [0]
  176.     @task_weapon_num = [0]
  177.     @task_armor_num = [0]
  178.     @task_difficulty = [1]
  179.     @tasks = 0
  180.     @lose_tasks = []
  181.   end
  182. end
  183. #==============================================================================
  184. # ■ Window_Task
  185. #------------------------------------------------------------------------------
  186. #  显示任务的选择行窗口。
  187. #==============================================================================

  188. class Window_Task < Window_Selectable
  189.   #--------------------------------------------------------------------------
  190.   # ● 初始化对像
  191.   #--------------------------------------------------------------------------
  192.   def initialize
  193.     super(0, 0, 640, 480 - 64)
  194.     if $game_taskdata.tasks == 0
  195.       @item_max = 1
  196.       @old_max = @item_max
  197.     else
  198.       @item_max = $game_taskdata.tasks
  199.       @old_max = @item_max
  200.     end
  201.     self.contents = Bitmap.new(width - 32, height - 32)
  202.     refresh
  203.     self.index = 0
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ● 刷新
  207.   #--------------------------------------------------------------------------
  208.   def refresh
  209.     self.contents.clear
  210.     if $game_taskdata.tasks == 0
  211.       @item_max = 1
  212.     else
  213.       @item_max = $game_taskdata.tasks
  214.     end
  215.     if $game_taskdata.task_command_name[0] == ""
  216.       $f = true
  217.     else
  218.       $f = false
  219.     end
  220.     for i in 0...@item_max
  221.       draw_item(i, normal_color)
  222.     end
  223.   end
  224.   #--------------------------------------------------------------------------
  225.   # ● 描绘项目
  226.   #     index : 项目编号
  227.   #     color : 文字色
  228.   #--------------------------------------------------------------------------
  229.   def draw_item(index,color)
  230.     self.contents.font.color = color
  231.     rect = Rect.new(4, 32 * index, 640 / 2 - 8, 32)
  232.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  233.     for i in 0...@item_max
  234.       self.contents.draw_text(rect, $game_taskdata.task_command_name[index])#ndex
  235.     end
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● 项目无效化
  239.   #     index : 项目编号
  240.   #--------------------------------------------------------------------------
  241.   def disable_item(index)
  242.     draw_item(index, disabled_color)
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● 刷新光标矩形
  246.   #--------------------------------------------------------------------------
  247.   def update_cursor_rect
  248.     if [url=home.php?mod=space&uid=370741]@Index[/url] < 0
  249.       self.cursor_rect.empty
  250.     else
  251.       self.cursor_rect.set(0, @index * 32, 320 - 8, 32)
  252.     end
  253.   end
  254.   #--------------------------------------------------------------------------
  255.   # ● 拆分数组并显示内容
  256.   #--------------------------------------------------------------------------
  257.   def update
  258.     super
  259.     if @old_max != @item_max
  260.       refresh
  261.     end
  262.     for i in 0...@item_max
  263.       x = 320 + 16
  264.       if self.index == i and $t == true and $game_taskdata.task_command_name[index] != ""
  265.         refresh
  266.         self.contents.font.color = system_color
  267.         self.contents.draw_text(x, 0, 100, 32, "任务名:")
  268.         self.contents.draw_text(x, 64, 100, 32, "难度:")
  269.         self.contents.draw_text(x, 112, 100, 32, "说明:")
  270.         if $game_taskdata.task_gold[index] != 0
  271.           self.contents.draw_text(x, 208, 100, 32, "奖励金钱:")
  272.           y = 272
  273.         else
  274.           y = 208
  275.         end
  276.         if $game_taskdata.task_items[index] != nil
  277.           self.contents.draw_text(x, y, 100, 32, "奖励物品:")
  278.         end
  279.         self.contents.font.color = normal_color
  280.         self.contents.draw_text(x, 32, 320 - 32, 32, $game_taskdata.task_name[index])
  281.         self.contents.draw_text(x, 144, 288, 32, $game_taskdata.task_help[index].split(/\n/)[0])
  282.         if $game_taskdata.task_help[index].split(/\n/)[1] != nil
  283.           self.contents.draw_text(x, 176, 288, 32, $game_taskdata.task_help[index].split(/\n/)[1])
  284.         end
  285.         if $game_taskdata.task_gold[index] != 0
  286.           self.contents.draw_text(x, 240, 100, 32, $game_taskdata.task_gold[index])
  287.         end
  288.         if $game_taskdata.task_items[index] != nil
  289.           draw_item_name($data_items[$game_taskdata.task_items[index]], x, y + 32)
  290.           self.contents.draw_text(x + 100, y + 32, 280, 32, " × " + $game_taskdata.task_item_num[index].to_s)
  291.         end
  292.         if $game_taskdata.task_weapons[index] != nil
  293.           draw_item_name($data_weapons[$game_taskdata.task_weapons[index]], x, y + 64)
  294.           self.contents.draw_text(x + 100, y + 32, 280, 32, " × " + $game_taskdata.task_weapon_num[index].to_s)
  295.         end
  296.         if $game_taskdata.task_armors[index] != nil
  297.           draw_item_name($data_armors[$game_taskdata.task_armors[index]], x, y + 96)
  298.           self.contents.draw_text(x + 100, y + 32, 280, 32, " × " + $game_taskdata.task_armor_num[index].to_s)
  299.         end
  300.         text1 = "★" * $game_taskdata.task_difficulty[index]
  301.         text2 = "☆" * (5 - $game_taskdata.task_difficulty[index])
  302.         text = text1 + text2
  303.         self.contents.draw_text(x + 60, 64, 280, 32, text)
  304.       end
  305.     end
  306.     # 解除任务信息
  307.     if $t == true
  308.       # 按下 B 键的情况下
  309.       if Input.trigger?(Input::B)
  310.         $t = false
  311.         # 演奏取消 SE
  312.         $game_system.se_play($data_system.cancel_se)
  313.       end
  314.       if Input.trigger?(Input::UP)
  315.         $t = false
  316.         $game_system.se_play($data_system.cursor_se)
  317.       end
  318.       if Input.trigger?(Input::DOWN)
  319.         $t = false
  320.         $game_system.se_play($data_system.cursor_se)
  321.       end
  322.     end
  323.     if $t == false
  324.       refresh
  325.     end
  326.   end
  327. end
  328. #==============================================================================
  329. # ■ Window_TaskAssist
  330. #------------------------------------------------------------------------------
  331. #  显示任务辅助的窗口。
  332. #==============================================================================

  333. class Window_TaskAssist < Window_Base
  334.   #--------------------------------------------------------------------------
  335.   # ● 初始化窗口
  336.   #--------------------------------------------------------------------------
  337.   def initialize
  338.     super(0, 0, 640, 64)
  339.     self.contents = Bitmap.new(width - 32, height - 32)
  340.     refresh
  341.   end
  342.   #--------------------------------------------------------------------------
  343.   # ● 刷新
  344.   #--------------------------------------------------------------------------
  345.   def refresh
  346.     self.contents.clear
  347.     self.contents.font.color = normal_color
  348.     self.contents.draw_text(0, 0, 640 - 32, 32, "任务", 1)
  349.   end
  350. end
  351. #===============================================================================
  352. # ● Scene_Task
  353. #-------------------------------------------------------------------------------
  354. #   处理任务画面的类。
  355. #===============================================================================

  356. class Scene_Task
  357.   #--------------------------------------------------------------------------
  358.   # ● 主处理
  359.   #--------------------------------------------------------------------------
  360.   def main
  361.     # 生成任务活动窗口
  362.     @task_window = Window_Task.new
  363.     @task_window.y = 64
  364.     if @task_window.active == false
  365.       @task_window.active = true
  366.     end
  367.     # 生成任务辅助窗口
  368.     @taskassist_window = Window_TaskAssist.new
  369.     # 执行过渡
  370.     Graphics.transition
  371.     # 主循环
  372.     loop do
  373.       # 刷新游戏画面
  374.       Graphics.update
  375.       # 刷新输入信息
  376.       Input.update
  377.       # 刷新画面
  378.       update
  379.       # 如果切换画面就中断循环
  380.       if $scene != self
  381.         break
  382.       end
  383.     end
  384.     # 准备过渡
  385.     Graphics.freeze
  386.     # 释放各个窗口
  387.     @task_window.dispose
  388.     @taskassist_window.dispose
  389.   end
  390.   #--------------------------------------------------------------------------
  391.   # ● 刷新画面
  392.   #--------------------------------------------------------------------------
  393.   def update
  394.     # 刷新各个窗口
  395.     @task_window.update
  396.     @taskassist_window.update
  397.     # 解除任务信息
  398.     if $t == true
  399.       # 按下 B 键的情况下
  400.       if Input.trigger?(Input::B)
  401.         $t = false
  402.         # 演奏取消 SE
  403.         $game_system.se_play($data_system.cancel_se)
  404.       end
  405.       if Input.trigger?(Input::UP)
  406.         $t = false
  407.         $game_system.se_play($data_system.cursor_se)
  408.       end
  409.       if Input.trigger?(Input::DOWN)
  410.         $t = false
  411.         $game_system.se_play($data_system.cursor_se)
  412.       end
  413.     end
  414.     if $game_taskdata.tasks != 0
  415.       $f = false
  416.     end
  417.     # 当按下 C 键后可查看任务信息
  418.     if Input.trigger?(Input::C) and $game_taskdata.tasks != 0
  419.       $t = true #让T变为true
  420.       # 演奏确定 SE
  421.       $game_system.se_play($data_system.decision_se)
  422.     end
  423.     # 没显示任务时按下 B 键的情况下
  424.     if $t == false and Input.trigger?(Input::B)
  425.       # 切换到菜单界面
  426.       $scene = Scene_Menu.new(5)
  427.       # 演奏取消 SE
  428.       $game_system.se_play($data_system.cancel_se)
  429.     end
  430.     if $f == true
  431.       if Input.trigger?(Input::C)
  432.         # 演奏冻结 SE
  433.         $game_system.se_play($data_system.buzzer_se)
  434.       end
  435.       if Input.trigger?(Input::B)
  436.         # 切换到菜单界面
  437.         $scene = Scene_Menu.new(5)
  438.         # 演奏取消 SE
  439.         $game_system.se_play($data_system.cancel_se)
  440.       end
  441.     end
  442.   end
  443. end
  444. class Scene_Title
  445.   #--------------------------------------------------------------------------
  446.   # ● 命令 : 新游戏
  447.   #--------------------------------------------------------------------------
  448.   def command_new_game
  449.     # 演奏确定 SE
  450.     $game_system.se_play($data_system.decision_se)
  451.     # 停止 BGM
  452.     Audio.bgm_stop
  453.     # 重置测量游戏时间用的画面计数器
  454.     Graphics.frame_count = 0
  455.     # 生成各种游戏对像
  456.     $game_temp          = Game_Temp.new
  457.     $game_system        = Game_System.new
  458.     $game_switches      = Game_Switches.new
  459.     $game_variables     = Game_Variables.new
  460.     $game_self_switches = Game_SelfSwitches.new
  461.     $game_screen        = Game_Screen.new
  462.     $game_actors        = Game_Actors.new
  463.     $game_party         = Game_Party.new
  464.     $game_troop         = Game_Troop.new
  465.     $game_map           = Game_Map.new
  466.     $game_player        = Game_Player.new
  467.     $game_taskdata      = Game_TaskData.new
  468.     # 设置初期同伴位置
  469.     $game_party.setup_starting_members
  470.     # 设置初期位置的地图
  471.     $game_map.setup($data_system.start_map_id)
  472.     # 主角向初期位置移动
  473.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  474.     # 刷新主角
  475.     $game_player.refresh
  476.     # 执行地图设置的 BGM 与 BGS 的自动切换
  477.     $game_map.autoplay
  478.     # 刷新地图 (执行并行事件)
  479.     $game_map.update
  480.     # 切换地图画面
  481.     $scene = Scene_Map.new
  482.   end
  483. end
  484. class Scene_Save < Scene_File
  485.   #--------------------------------------------------------------------------
  486.   # ● 写入存档数据
  487.   #     file : 写入用文件对像 (已经打开)
  488.   #--------------------------------------------------------------------------
  489.   def write_save_data(file)
  490.     # 生成描绘存档文件用的角色图形
  491.     characters = []
  492.     for i in 0...$game_party.actors.size
  493.       actor = $game_party.actors[i]
  494.       characters.push([actor.character_name, actor.character_hue])
  495.     end
  496.     # 写入描绘存档文件用的角色数据
  497.     Marshal.dump(characters, file)
  498.     # 写入测量游戏时间用画面计数
  499.     Marshal.dump(Graphics.frame_count, file)
  500.     # 增加 1 次存档次数
  501.     $game_system.save_count += 1
  502.     # 保存魔法编号
  503.     # (将编辑器保存的值以随机值替换)
  504.     $game_system.magic_number = $data_system.magic_number
  505.     # 写入各种游戏对像
  506.     Marshal.dump($game_system, file)
  507.     Marshal.dump($game_switches, file)
  508.     Marshal.dump($game_variables, file)
  509.     Marshal.dump($game_self_switches, file)
  510.     Marshal.dump($game_screen, file)
  511.     Marshal.dump($game_actors, file)
  512.     Marshal.dump($game_party, file)
  513.     Marshal.dump($game_troop, file)
  514.     Marshal.dump($game_map, file)
  515.     Marshal.dump($game_player, file)
  516.     Marshal.dump($game_taskdata, file)
  517.   end
  518. end
  519. class Scene_Load < Scene_File
  520.   #--------------------------------------------------------------------------
  521.   # ● 读取存档数据
  522.   #     file : 读取用文件对像 (已经打开)
  523.   #--------------------------------------------------------------------------
  524.   def read_save_data(file)
  525.     # 读取描绘存档文件用的角色数据
  526.     characters = Marshal.load(file)
  527.     # 读取测量游戏时间用画面计数
  528.     Graphics.frame_count = Marshal.load(file)
  529.     # 读取各种游戏对像
  530.     $game_system        = Marshal.load(file)
  531.     $game_switches      = Marshal.load(file)
  532.     $game_variables     = Marshal.load(file)
  533.     $game_self_switches = Marshal.load(file)
  534.     $game_screen        = Marshal.load(file)
  535.     $game_actors        = Marshal.load(file)
  536.     $game_party         = Marshal.load(file)
  537.     $game_troop         = Marshal.load(file)
  538.     $game_map           = Marshal.load(file)
  539.     $game_player        = Marshal.load(file)
  540.     $game_taskdata    = Marshal.load(file)
  541.     # 魔法编号与保存时有差异的情况下
  542.     # (加入编辑器的编辑过的数据)
  543.     if $game_system.magic_number != $data_system.magic_number
  544.       # 重新装载地图
  545.       $game_map.setup($game_map.map_id)
  546.       $game_player.center($game_player.x, $game_player.y)
  547.     end
  548.     # 刷新同伴成员
  549.     $game_party.refresh
  550.   end
  551. end
复制代码
Ver 0.2:
  1. class Game_Temp
  2.   #--------------------------------------------------------------------------
  3.   # ● 定义实例变量
  4.   #--------------------------------------------------------------------------
  5.   attr_accessor :new_task_name            # 新任务 名称
  6.   attr_accessor :new_task_help            # 新任务 帮助文字
  7.   attr_accessor :new_task_gold            # 新任务 奖励金钱
  8.   attr_accessor :new_task_items           # 新任务 奖励物品
  9.   attr_accessor :new_task_weapons         # 新任务 奖励武器
  10.   attr_accessor :new_task_armors          # 新任务 奖励防具
  11.   attr_accessor :new_task_item_num        # 新任务 物品奖励数量
  12.   attr_accessor :new_task_weapon_num      # 新任务 武器奖励数量
  13.   attr_accessor :new_task_armor_num       # 新任务 防具奖励数量
  14.   attr_accessor :new_task_difficulty
  15.   #--------------------------------------------------------------------------
  16.   # ● 初始化对像
  17.   #--------------------------------------------------------------------------
  18.   def initialize
  19.     @map_bgm = nil
  20.     @message_text = nil
  21.     @message_proc = nil
  22.     @choice_start = 99
  23.     @choice_max = 0
  24.     @choice_cancel_type = 0
  25.     @choice_proc = nil
  26.     @num_input_start = 99
  27.     @num_input_variable_id = 0
  28.     @num_input_digits_max = 0
  29.     @message_window_showing = false
  30.     @common_event_id = 0
  31.     @in_battle = false
  32.     @battle_calling = false
  33.     @battle_troop_id = 0
  34.     @battle_can_escape = false
  35.     @battle_can_lose = false
  36.     @battle_proc = nil
  37.     @battle_turn = 0
  38.     @battle_event_flags = {}
  39.     @battle_abort = false
  40.     @battle_main_phase = false
  41.     @battleback_name = ''
  42.     @forcing_battler = nil
  43.     @shop_calling = false
  44.     @shop_id = 0
  45.     @name_calling = false
  46.     @name_actor_id = 0
  47.     @name_max_char = 0
  48.     @menu_calling = false
  49.     @menu_beep = false
  50.     @save_calling = false
  51.     @debug_calling = false
  52.     @player_transferring = false
  53.     @player_new_map_id = 0
  54.     @player_new_x = 0
  55.     @player_new_y = 0
  56.     @player_new_direction = 0
  57.     @transition_processing = false
  58.     @transition_name = ""
  59.     @gameover = false
  60.     @to_title = false
  61.     @last_file_index = 0
  62.     @debug_top_row = 0
  63.     @debug_index = 0
  64.     @new_task_name = ""
  65.     @new_task_help = ""
  66.     @new_task_gold = ""
  67.     @new_task_items = nil
  68.     @new_task_weapons = nil
  69.     @new_task_armors = nil
  70.     @new_task_item_num = 0
  71.     @new_task_weapon_num = 0
  72.     @new_task_armor_num = 0
  73.     @new_task_difficulty = 1
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 生成新任务(在Scene_Task的内部使用)
  77.   #--------------------------------------------------------------------------
  78.   def new_task(name, help, difficulty = 1, gold = 0, items = nil, weapons = nil, armors = nil, item_num = 1, weapon_num = 1, armor_num = 1)
  79.     # 实例变量的改变
  80.     @new_task_name = name
  81.     @new_task_help = help
  82.     @new_task_gold = gold
  83.     @new_task_items = items
  84.     @new_task_weapons = weapons
  85.     @new_task_armors = armors
  86.     @new_task_item_num = item_num
  87.     @new_task_weapon_num = weapon_num
  88.     @new_task_armor_num = armor_num
  89.     @new_task_difficulty = difficulty
  90.     $game_taskdata.tasks += 1
  91.     # 保存数据(载入数组)
  92.     if $game_taskdata.task_name[0] == ""
  93.       $game_taskdata.task_name = [@new_task_name]
  94.       $game_taskdata.task_command_name = [@new_task_name]
  95.       $game_taskdata.task_help = [@new_task_help]
  96.       $game_taskdata.task_gold = [@new_task_gold]
  97.       $game_taskdata.task_items = [@new_task_items]
  98.       $game_taskdata.task_weapons = [@new_task_weapons]
  99.       $game_taskdata.task_armors = [@new_task_armors]
  100.       $game_taskdata.task_item_num = [@new_task_item_num]
  101.       $game_taskdata.task_weapon_num = [@new_task_weapon_num]
  102.       $game_taskdata.task_armor_num = [@new_task_armor_num]
  103.       $game_taskdata.task_difficulty = [@new_task_difficulty]
  104.     else
  105.       $game_taskdata.task_name.push(@new_task_name)
  106.       $game_taskdata.task_command_name.push(@new_task_name)
  107.       $game_taskdata.task_help.push(@new_task_help)
  108.       $game_taskdata.task_gold.push(@new_task_gold)
  109.       $game_taskdata.task_items.push(@new_task_items)
  110.       $game_taskdata.task_weapons.push(@new_task_weapons)
  111.       $game_taskdata.task_armors.push(@new_task_armors)
  112.       $game_taskdata.task_item_num.push(@new_task_item_num)
  113.       $game_taskdata.task_weapon_num.push(@new_task_weapon_num)
  114.       $game_taskdata.task_armor_num.push(@new_task_armor_num)
  115.       $game_taskdata.task_difficulty.push(@new_task_difficulty)
  116.     end
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 完成任务(在Scene_Task的内部使用)
  120.   #--------------------------------------------------------------------------
  121.   def final_task(id, new_line = true)
  122.     # 算出数组中的id
  123.     id = id - 1
  124.     unless $game_taskdata.lose_tasks.include?(id)
  125.       # 修改数组数据
  126.       $game_taskdata.task_command_name[id] = $game_taskdata.task_command_name[id] + "(已完成)"
  127.       $game_taskdata.task_help[id] = new_line == true ? $game_taskdata.task_help[id] + "\n(已完成)" : $game_taskdata.task_help[id] + "(已完成)"
  128.       # 获得任务奖励
  129.       unless $game_taskdata.task_gold[id] == 0
  130.         $game_party.gain_gold($game_taskdata.task_gold[id])
  131.       end
  132.       unless $game_taskdata.task_items[id] == nil
  133.         $game_party.gain_item($game_taskdata.task_items[id], $game_taskdata.task_item_num[id])
  134.       end
  135.       unless $game_taskdata.task_weapons[id] == nil
  136.         $game_party.gain_weapon($game_taskdata.task_weapons[id], $game_taskdata.task_weapon_num[id])
  137.       end
  138.       unless $game_taskdata.task_armors[id] == nil
  139.         $game_party.gain_armor($game_taskdata.task_armors[id], $game_taskdata.task_weapon_num[id])
  140.       end
  141.     end
  142.   end
  143.   #------------------------------------------------------------------------
  144.   # 失败任务(啊啊啊!)
  145.   #------------------------------------------------------------------------
  146.   def lose_task(id, new_line = true)
  147.     id = id - 1
  148.     $game_taskdata.task_command_name[id] = $game_taskdata.task_command_name[id] + "(已失败)"
  149.     $game_taskdata.task_help[id] = new_line = true ? $game_taskdata.task_help[id] + "\n(已失败)" : $game_taskdata.task_help[id] + "(已失败)"
  150.     $game_taskdata.lose_tasks.push(id)
  151.   end
  152. end
  153. class Game_TaskData
  154.   attr_accessor :task_name
  155.   attr_accessor :task_command_name
  156.   attr_accessor :task_help
  157.   attr_accessor :task_gold
  158.   attr_accessor :task_items
  159.   attr_accessor :task_weapons
  160.   attr_accessor :task_armors
  161.   attr_accessor :task_item_num
  162.   attr_accessor :task_weapon_num
  163.   attr_accessor :task_armor_num
  164.   attr_accessor :task_difficulty
  165.   attr_accessor :tasks
  166.   attr_accessor :lose_tasks
  167.   def initialize
  168.     @task_name = [""]
  169.     @task_command_name = [""]
  170.     @task_help = [""]
  171.     @task_gold = [0]
  172.     @task_items = [nil]
  173.     @task_weapons = [nil]
  174.     @task_armors = [nil]
  175.     @task_item_num = [0]
  176.     @task_weapon_num = [0]
  177.     @task_armor_num = [0]
  178.     @task_difficulty = [1]
  179.     @tasks = 0
  180.     @lose_tasks = []
  181.   end
  182. end
  183. #==============================================================================
  184. # ■ Window_TaskLift
  185. #------------------------------------------------------------------------------
  186. #  显示任务的选择行窗口。
  187. #==============================================================================

  188. class Window_TaskLift < Window_Selectable
  189.   #--------------------------------------------------------------------------
  190.   # ● 初始化对像
  191.   #--------------------------------------------------------------------------
  192.   def initialize
  193.     super(0, 64, 320, 480 - 64)
  194.     if $game_taskdata.tasks == 0
  195.       @item_max = 1
  196.       @old_max = @item_max
  197.     else
  198.       @item_max = $game_taskdata.tasks
  199.       @old_max = @item_max
  200.     end
  201.     self.contents = Bitmap.new(width - 32, @item_max * 32)
  202.     refresh
  203.     self.index = 0
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ● 刷新
  207.   #--------------------------------------------------------------------------
  208.   def refresh
  209.     self.contents.clear
  210.     if $game_taskdata.tasks == 0
  211.       @item_max = 1
  212.     else
  213.       @item_max = $game_taskdata.tasks
  214.     end
  215.     @old_max = @item_max
  216.     if $game_taskdata.task_command_name[0] == ""
  217.       $f = true
  218.     else
  219.       $f = false
  220.     end
  221.     for i in 0...@item_max
  222.       draw_item(i, normal_color)
  223.     end
  224.   end
  225.   #--------------------------------------------------------------------------
  226.   # ● 描绘项目
  227.   #     index : 项目编号
  228.   #     color : 文字色
  229.   #--------------------------------------------------------------------------
  230.   def draw_item(index,color)
  231.     self.contents.font.color = color
  232.     rect = Rect.new(4, 32 * index, 640 / 2 - 8, 32)
  233.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  234.     for i in 0...@item_max
  235.       self.contents.draw_text(rect, $game_taskdata.task_command_name[index])#ndex
  236.     end
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● 刷新帮助文本
  240.   #--------------------------------------------------------------------------
  241.   def update_help
  242.     if $f != true
  243.       if Input.repeat?(Input::C)
  244.         @help_window.set_task_list(self.index)
  245.         # 演奏确定 SE
  246.         $game_system.se_play($data_system.decision_se)
  247.       end
  248.       if Input.repeat?(Input::UP) or Input.repeat?(Input::DOWN) or Input.repeat?(Input::B)
  249.         @help_window.empty
  250.         if Input.trigger?(Input::B)
  251.           # 演奏取消 SE
  252.           $game_system.se_play($data_system.cancel_se)
  253.         end
  254.       end
  255.     else
  256.       if Input.repeat?(Input::C)
  257.         # 演奏无效 SE
  258.         $game_system.se_play($data_system.buzzer_se)
  259.       end
  260.     end
  261.   end
  262. end
  263. #==============================================================================
  264. # ■ Window_TaskRight
  265. #------------------------------------------------------------------------------
  266. #  显示任务栏右侧的窗口。
  267. #==============================================================================

  268. class Window_TaskRight < Window_Base
  269.   #--------------------------------------------------------------------------
  270.   # ● 初始化窗口
  271.   #--------------------------------------------------------------------------
  272.   def initialize
  273.     super(320, 64, 320, 480 - 64)
  274.     self.contents = Bitmap.new(width - 32, height - 32)
  275.   end
  276.   #--------------------------------------------------------------------------
  277.   # ● 刷新
  278.   #--------------------------------------------------------------------------
  279.   def set_task_list(id)
  280.     if id != @id
  281.       self.contents.clear
  282.       for i in 0...$game_taskdata.tasks
  283.         x = 0
  284.         self.contents.font.color = system_color
  285.         self.contents.draw_text(x, 0, 100, 32, "任务名:")
  286.         self.contents.draw_text(x, 64, 100, 32, "难度:")
  287.         self.contents.draw_text(x, 112, 100, 32, "说明:")
  288.         if $game_taskdata.task_gold[id] != 0
  289.           self.contents.draw_text(x, 208, 100, 32, "奖励金钱:")
  290.           y = 272
  291.         else
  292.           y = 208
  293.         end
  294.         if $game_taskdata.task_items[id] != nil
  295.           self.contents.draw_text(x, y, 100, 32, "奖励物品:")
  296.         end
  297.         self.contents.font.color = normal_color
  298.         self.contents.draw_text(x, 32, 320 - 32, 32, $game_taskdata.task_name[id])
  299.         self.contents.draw_text(x, 144, 288, 32, $game_taskdata.task_help[id].split(/\n/)[0])
  300.         if $game_taskdata.task_help[id].split(/\n/)[1] != nil
  301.           self.contents.draw_text(x, 176, 288, 32, $game_taskdata.task_help[id].split(/\n/)[1])
  302.         end
  303.         if $game_taskdata.task_gold[id] != 0
  304.           self.contents.draw_text(x, 240, 100, 32, $game_taskdata.task_gold[id])
  305.         end
  306.         if $game_taskdata.task_items[id] != nil
  307.           draw_item_name($data_items[$game_taskdata.task_items[id]], x, y + 32)
  308.           self.contents.draw_text(x + 100, y + 32, 280, 32, " × " + $game_taskdata.task_item_num[id].to_s)
  309.         end
  310.         if $game_taskdata.task_weapons[id] != nil
  311.           draw_item_name($data_weapons[$game_taskdata.task_weapons[id]], x, y + 64)
  312.           self.contents.draw_text(x + 100, y + 32, 280, 32, " × " + $game_taskdata.task_weapon_num[id].to_s)
  313.         end
  314.         if $game_taskdata.task_armors[id] != nil
  315.           draw_item_name($data_armors[$game_taskdata.task_armors[id]], x, y + 96)
  316.           self.contents.draw_text(x + 100, y + 32, 280, 32, " × " + $game_taskdata.task_armor_num[id].to_s)
  317.         end
  318.         text1 = "★" * $game_taskdata.task_difficulty[id]
  319.         text2 = "☆" * (5 - $game_taskdata.task_difficulty[id])
  320.         text = text1 + text2
  321.         self.contents.draw_text(x + 60, 64, 280, 32, text)
  322.       end
  323.       @id = id
  324.     end
  325.   end
  326. end
  327. #==============================================================================
  328. # ■ Window_TaskAssist
  329. #------------------------------------------------------------------------------
  330. #  显示任务辅助的窗口。
  331. #==============================================================================

  332. class Window_TaskAssist < Window_Base
  333.   #--------------------------------------------------------------------------
  334.   # ● 初始化窗口
  335.   #--------------------------------------------------------------------------
  336.   def initialize
  337.     super(0, 0, 640, 64)
  338.     self.contents = Bitmap.new(width - 32, height - 32)
  339.     refresh
  340.   end
  341.   #--------------------------------------------------------------------------
  342.   # ● 刷新
  343.   #--------------------------------------------------------------------------
  344.   def refresh
  345.     self.contents.clear
  346.     self.contents.font.color = normal_color
  347.     self.contents.draw_text(0, 0, 640 - 32, 32, "任务", 1)
  348.   end
  349. end
  350. #===============================================================================
  351. # ● Scene_Task
  352. #-------------------------------------------------------------------------------
  353. #   处理任务画面的类。
  354. #===============================================================================

  355. class Scene_Task
  356.   #--------------------------------------------------------------------------
  357.   # ● 主处理
  358.   #--------------------------------------------------------------------------
  359.   def main
  360.     # 生成任务单窗口
  361.     @task_right_window = Window_TaskRight.new
  362.     # 生成任务活动窗口
  363.     @task_left_window = Window_TaskLift.new
  364.     @task_left_window.help_window = @task_right_window
  365.     if @task_left_window.active == false
  366.       @task_left_window.active = true
  367.     end
  368.     # 生成任务辅助窗口
  369.     @taskassist_window = Window_TaskAssist.new
  370.     # 执行过渡
  371.     Graphics.transition
  372.     # 主循环
  373.     loop do
  374.       # 刷新游戏画面
  375.       Graphics.update
  376.       # 刷新输入信息
  377.       Input.update
  378.       # 刷新画面
  379.       update
  380.       # 如果切换画面就中断循环
  381.       if $scene != self
  382.         break
  383.       end
  384.     end
  385.     # 准备过渡
  386.     Graphics.freeze
  387.     # 释放各个窗口
  388.     @task_left_window.dispose
  389.     @taskassist_window.dispose
  390.     @task_right_window.dispose
  391.   end
  392.   #--------------------------------------------------------------------------
  393.   # ● 刷新画面
  394.   #--------------------------------------------------------------------------
  395.   def update
  396.     # 刷新各个窗口
  397.     @task_left_window.update
  398.     @task_right_window.update
  399.     @taskassist_window.update
  400.     # 按下 B 键的情况下
  401.     if Input.trigger?(Input::B)
  402.       # 切换到菜单界面
  403.       $scene = Scene_Menu.new(5)
  404.       # 演奏取消 SE
  405.       $game_system.se_play($data_system.cancel_se)
  406.     end
  407.   end
  408. end
  409. class Window_Base
  410.   def empty
  411.     self.contents.clear
  412.   end
  413. end
  414. class Scene_Title
  415.   #--------------------------------------------------------------------------
  416.   # ● 命令 : 新游戏
  417.   #--------------------------------------------------------------------------
  418.   def command_new_game
  419.     # 演奏确定 SE
  420.     $game_system.se_play($data_system.decision_se)
  421.     # 停止 BGM
  422.     Audio.bgm_stop
  423.     # 重置测量游戏时间用的画面计数器
  424.     Graphics.frame_count = 0
  425.     # 生成各种游戏对像
  426.     $game_temp          = Game_Temp.new
  427.     $game_system        = Game_System.new
  428.     $game_switches      = Game_Switches.new
  429.     $game_variables     = Game_Variables.new
  430.     $game_self_switches = Game_SelfSwitches.new
  431.     $game_screen        = Game_Screen.new
  432.     $game_actors        = Game_Actors.new
  433.     $game_party         = Game_Party.new
  434.     $game_troop         = Game_Troop.new
  435.     $game_map           = Game_Map.new
  436.     $game_player        = Game_Player.new
  437.     $game_taskdata      = Game_TaskData.new
  438.     # 设置初期同伴位置
  439.     $game_party.setup_starting_members
  440.     # 设置初期位置的地图
  441.     $game_map.setup($data_system.start_map_id)
  442.     # 主角向初期位置移动
  443.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  444.     # 刷新主角
  445.     $game_player.refresh
  446.     # 执行地图设置的 BGM 与 BGS 的自动切换
  447.     $game_map.autoplay
  448.     # 刷新地图 (执行并行事件)
  449.     $game_map.update
  450.     # 切换地图画面
  451.     $scene = Scene_Map.new
  452.   end
  453. end
  454. class Scene_Save < Scene_File
  455.   #--------------------------------------------------------------------------
  456.   # ● 写入存档数据
  457.   #     file : 写入用文件对像 (已经打开)
  458.   #--------------------------------------------------------------------------
  459.   def write_save_data(file)
  460.     # 生成描绘存档文件用的角色图形
  461.     characters = []
  462.     for i in 0...$game_party.actors.size
  463.       actor = $game_party.actors[i]
  464.       characters.push([actor.character_name, actor.character_hue])
  465.     end
  466.     # 写入描绘存档文件用的角色数据
  467.     Marshal.dump(characters, file)
  468.     # 写入测量游戏时间用画面计数
  469.     Marshal.dump(Graphics.frame_count, file)
  470.     # 增加 1 次存档次数
  471.     $game_system.save_count += 1
  472.     # 保存魔法编号
  473.     # (将编辑器保存的值以随机值替换)
  474.     $game_system.magic_number = $data_system.magic_number
  475.     # 写入各种游戏对像
  476.     Marshal.dump($game_system, file)
  477.     Marshal.dump($game_switches, file)
  478.     Marshal.dump($game_variables, file)
  479.     Marshal.dump($game_self_switches, file)
  480.     Marshal.dump($game_screen, file)
  481.     Marshal.dump($game_actors, file)
  482.     Marshal.dump($game_party, file)
  483.     Marshal.dump($game_troop, file)
  484.     Marshal.dump($game_map, file)
  485.     Marshal.dump($game_player, file)
  486.     Marshal.dump($game_taskdata, file)
  487.   end
  488. end
  489. class Scene_Load < Scene_File
  490.   #--------------------------------------------------------------------------
  491.   # ● 读取存档数据
  492.   #     file : 读取用文件对像 (已经打开)
  493.   #--------------------------------------------------------------------------
  494.   def read_save_data(file)
  495.     # 读取描绘存档文件用的角色数据
  496.     characters = Marshal.load(file)
  497.     # 读取测量游戏时间用画面计数
  498.     Graphics.frame_count = Marshal.load(file)
  499.     # 读取各种游戏对像
  500.     $game_system        = Marshal.load(file)
  501.     $game_switches      = Marshal.load(file)
  502.     $game_variables     = Marshal.load(file)
  503.     $game_self_switches = Marshal.load(file)
  504.     $game_screen        = Marshal.load(file)
  505.     $game_actors        = Marshal.load(file)
  506.     $game_party         = Marshal.load(file)
  507.     $game_troop         = Marshal.load(file)
  508.     $game_map           = Marshal.load(file)
  509.     $game_player        = Marshal.load(file)
  510.     $game_taskdata    = Marshal.load(file)
  511.     # 魔法编号与保存时有差异的情况下
  512.     # (加入编辑器的编辑过的数据)
  513.     if $game_system.magic_number != $data_system.magic_number
  514.       # 重新装载地图
  515.       $game_map.setup($game_map.map_id)
  516.       $game_player.center($game_player.x, $game_player.y)
  517.     end
  518.     # 刷新同伴成员
  519.     $game_party.refresh
  520.   end
  521. end
复制代码
[/fold]Ver 0.2版(修正粗体字Bug,已关闭下载):
注意:由于部分人找不到脚本,所以此红字作为指引,下面是下载地址:
Ver 1.0版(大更新,裁图在下面)
任务系统 Ver 1.0.zip (207.01 KB, 下载次数: 817)
使用方法:                #注:[]里的全是选填内容
添加新任务:
  1. $game_temp.new_task(名称, 帮助文本[, 难度, 得到金钱, 得到物品, 得到武器, 得到防具, 物品数量, 武器数量, 防具数量])
复制代码
完成任务:
  1. $game_temp.final_task(任务ID[, 帮助文本分行])
复制代码
失效任务:
  1. $game_temp.lose_task(任务ID[, 帮助文本分行])
复制代码
调用任务画面:
  1. $scene = Scene_Task.new
复制代码
Ver 1.0大版本更新,以往的方法将不再支持!
Ver 1.0 添加新任务:
[pre lang="ruby"]$game_temp.new_task(name, help, [difficulty, gold, items, weapons, armors])
=begin
name       : 名称
help       : 帮助
difficulty : 难度,默认为 1
gold       : 赏金,默认为 0(没有赏金)
items      : 物品,格式为 {id1 => 数量, id2 => 数量, ...},默认为 {}(没有物品奖励)
weapons(武器) 和 armors(防具)设置方法等同于物品。
=end[/pre]
Ver 1.0 完成任务:
[pre lang="ruby"]$game_temp.final_task(id)[/pre]
Ver 1.0 任务失败:
[pre lang="ruby"]$game_temp.lose_task(id)[/pre]
由于 Ver 1.0 的任务系统物品是两行并列的,所以建议物品汉字长度要小于4,否则会发生堆叠。
注意!如果游戏已经有存档了就别添这个脚本了,否则存档必须全删除,若既有存档还不删除存档的话,读档时就会:出错!

裁图(Ver 0.1):
360截图20131101163610495.jpg
裁图(Ver 0.2):
360截图20131103193445732.jpg
裁图(Ver 1.0):
360截图20150723101223228.jpg

点评

请补充上传工程,因为论坛原因脚本会变异。  发表于 2013-11-9 12:28

评分

参与人数 4星屑 +476 收起 理由
W.Q.C. + 26 ~
804173948 + 15 凑整+支持0.0
kuerlulu + 10 好长!
怪蜀黍 + 425 奖励条例!

查看全部评分

呃,发糖贴好冷清呀!

矿工

梦石
0
星屑
134
在线时间
898 小时
注册时间
2012-10-5
回帖
1303
 楼主| 发表于 2013-11-3 19:36:25 | 显示全部楼层
修复Bug更新自顶。
修复任务多的话显示不全问题;
修复向下移动任务信息部分丢失问题。

点评

大佬,这个问题发现还在啊  发表于 2020-9-17 13:24
empty是清空,一般游戏皮肤不会随意换所以只刷新内容refresh即可无需update,我说无需update不是我不知道update的作用而是在功能够用的前提下简化代码  发表于 2013-11-8 18:14
已经找到问题了,为防止连贴已编辑旧回复  发表于 2013-11-6 21:45
呃,发糖贴好冷清呀!
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2013-11-4 14:51:26 | 显示全部楼层
代码似乎有些太长了···不过对游戏运行效率不会有太大的影响,这个脚本的改进升级空间非常大,别弃坑
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
回帖
1223
发表于 2013-11-5 17:40:44 | 显示全部楼层
本帖最后由 恋′挂机 于 2013-11-9 17:13 编辑

其实你比我强多了 加油吧

点评

不update若使用者换了窗口外观然后就……那个窗子没变!  发表于 2013-11-8 16:51
Window没有empty方法,结果出错了……  发表于 2013-11-8 16:47
我用了的clear,但还是那样……  发表于 2013-11-6 19:41
回复

使用道具 举报

梦石
0
星屑
17561
在线时间
4249 小时
注册时间
2013-7-18
回帖
2491
发表于 2013-12-5 20:26:57 | 显示全部楼层
本帖最后由 y967 于 2013-12-6 12:09 编辑

难度怎么设置,物品,武器,防具又怎么设置,字体颜色怎么设置,工程里只有任务描述,请做全啊,还有得到东西的进度没有啊
退隐....
回复

使用道具 举报

梦石
0
星屑
104
在线时间
165 小时
注册时间
2014-2-1
回帖
10
发表于 2014-6-1 09:42:20 | 显示全部楼层
求问如何设置难度呢?

点评

其实方法已写,于附件下方。  发表于 2014-6-1 19:21
回复

使用道具 举报

○赛

梦石
0
星屑
1254
在线时间
1276 小时
注册时间
2013-1-22
回帖
2078

贵宾

发表于 2014-6-3 19:45:07 | 显示全部楼层
Game_Temp的initialize方法可以用alias吧……

点评

只是当时不知道……  发表于 2014-6-7 13:12
↓↓不用是因为alias会引发异常错误吗?  发表于 2014-6-7 12:46
这个其实我知道……  发表于 2014-6-7 12:43
回复

使用道具 举报

梦石
0
星屑
50
在线时间
10 小时
注册时间
2014-6-3
回帖
10
发表于 2014-6-7 16:33:43 | 显示全部楼层
任务ID怎么设置啊?模仿你范例那样做,最后提示我参数错误

点评

任务ID就是所有任务中某个任务的索引  发表于 2014-6-7 16:37
回复

使用道具 举报

梦石
0
星屑
50
在线时间
10 小时
注册时间
2014-6-3
回帖
10
发表于 2014-6-7 16:39:01 | 显示全部楼层
不懂诶,要不大大你写两端给我看看好吗?

点评

假如有4个任务,那么任务的排列是[1,2,3,4],ID就是a号任务在排列从顺数第一个往后一直数到a号任务的数  发表于 2014-6-7 16:43
回复

使用道具 举报

梦石
0
星屑
2020
在线时间
49 小时
注册时间
2015-1-9
回帖
1
发表于 2015-2-19 16:48:29 | 显示全部楼层

求问如何设置难度呢?

点评

第三个参数为难度  发表于 2015-2-22 12:48
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部