查看: 7015|回复: 9

[RMVA发布] 自己制作的VA脚本---任务+地图提示 新版发布~~

[复制链接]
梦石
0
星屑
50
在线时间
41 小时
注册时间
2010-7-10
回帖
89
发表于 2012-3-4 20:06:53 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 zhangchi5 于 2012-3-18 19:35 编辑

新版发布啦!!!

神奇呀神奇~神奇呀神奇~神奇呀神奇~神奇呀神奇~……

任务系统 for VA
添加后 以前的存档都不能用。。。要新开存档
By SkyZH

使用方法:

新开任务:
事件中插入脚本--
  1. str="任务名称"
  2. $game_missions.mission(20).setTitle(str)
  3. str="介绍"
  4. $game_missions.mission(20).setText(str)
  5. str="重要信息以及奖励"
  6. $game_missions.mission(20).setImText(str)
  7. str="接任务NPC"
  8. str1="收任务NPC"
  9. $game_missions.mission(20).setNPC(str,str1)
  10. $game_missions.mission(20).setStatus(true)
复制代码

完成任务:
事件中插入脚本--
  1. @p=$game_missions.serMission("任务名称")
  2. $game_missions.mission(@p).clear
  3. $game_missions.mission(@p).setStatus(false)
复制代码
serMission(任务名称),返回此任务的编号!

查找是否接了这个任务:
事件中条件分歧-第4页-脚本
$game_missions.serMission("任务名")!=-1

地图提示:
事件中插入脚本--
  1. $game_maphint.clear
  2. stringa="世界真猥琐~"
  3. $game_maphint.setText(0,stringa)
  4. stringa="全家就是你家,欢迎回家~"
  5. $game_maphint.setText(1,stringa)
复制代码
$game_maphint.setText(行号,文字)


(老版)截图:
J6.JPG

J5.JPG

J3.JPG

J2.JPG

J4.JPG


(新版)截图:
JJ3.JPG

JJ2.JPG

JJ4.JPG

代码一堆堆。。。





  1. #==============================================================================
  2. # ■ Game_MapHint
  3. #------------------------------------------------------------------------------
  4. #  地图提示信息显示。
  5. #==============================================================================
  6. class Game_MapHint

  7. def initialize
  8. @texts = []
  9. end

  10. def visible_line
  11. @texts.size
  12. end

  13. def text(line)
  14. @texts[line]
  15. end

  16. def setText(line , text)
  17. @texts[line]=text
  18. end

  19. def clear
  20. for i in 0...@texts.size
  21. @texts.delete_at(i)
  22. end
  23. end

  24. end
  25. #==============================================================================
  26. # ■ Game_Mission
  27. #------------------------------------------------------------------------------
  28. #  任务信息显示。
  29. #==============================================================================
  30. class Game_Mission

  31. def initialize
  32. @texts = ""
  33. @titletext = ""
  34. @imtext = ""
  35. @NPC1 = ""
  36. @NPC2 = ""
  37. @bool_mission = false
  38. end

  39. def setText(text)
  40. @texts=text
  41. end

  42. def setTitle(text)
  43. @tetlitext=text
  44. end

  45. def setImText(text)
  46. @imtext=text
  47. end

  48. def setNPC(t1, t2)
  49. @NPC1=t1
  50. @NPC2=t2
  51. end

  52. def setStatus(b)
  53. @bool_mission=b
  54. end

  55. def getText
  56. @texts
  57. end

  58. def getTitle
  59. @tetlitext
  60. end

  61. def getImText
  62. @imtext
  63. end

  64. def getNPC1
  65. @NPC1
  66. end

  67. def getNPC2
  68. @NPC2
  69. end

  70. def getStatus
  71. @bool_mission
  72. end



  73. def clear
  74. @texts = ""
  75. @titletext = ""
  76. @imtext = ""
  77. @NPC1 = ""
  78. @NPC2 = ""
  79. @bool_mission = false
  80. end

  81. end

  82. #==============================================================================
  83. # ■ Game_Missions
  84. #------------------------------------------------------------------------------
  85. #  任务信息显示。
  86. #==============================================================================
  87. class Game_Missions

  88. def initialize
  89. @mission_array=Array.new
  90. for i in 0...100
  91. @mission_array[i]=Game_Mission.new
  92. end
  93. end

  94. def mission(t)
  95. return @mission_array[t]
  96. end

  97. def getNoMission
  98. for i in 99..0
  99. if @mission_array[i].getStatus==false
  100. return i
  101. end
  102. end

  103. end

  104. def clear
  105. for i in 0...100
  106. @mission_array[i].clear
  107. end
  108. end

  109. def serMission(titletext)
  110. for i in 0...100
  111. if @mission_array[i].getTitle==titletext && @mission_array[i].getStatus==true then
  112. return i
  113. end
  114. end
  115. return -1

  116. end

  117. def getMissionNum
  118. @r=0
  119. for i in 99..0
  120. if @mission_array[i].getStatus==true
  121. @r=@r+1
  122. end
  123. end
  124. return @r
  125. end
  126. end

  127. #==============================================================================
  128. # ■ Window_MapHint
  129. #------------------------------------------------------------------------------
  130. #  显示地图信息。 By SkyZH
  131. #==============================================================================

  132. class Window_MapHint < Window_Base
  133. #--------------------------------------------------------------------------
  134. # ● 初始化对像
  135. #--------------------------------------------------------------------------
  136. def initialize(x, y)
  137. super(x, y, window_width, Graphics.height)
  138. self.openness = 0
  139. open
  140. refresh
  141. end
  142. #--------------------------------------------------------------------------
  143. # ● 获取窗口的宽度
  144. #--------------------------------------------------------------------------
  145. def window_width
  146. return Graphics.width - 256
  147. end

  148. def draw_title
  149. self.contents.font.color=system_color
  150. self.contents.font.size=48
  151. draw_text(4, 0, window_width-40, fitting_height(1),"提示 - " + $game_map.display_name,1)
  152. self.contents.font.color=normal_color
  153. self.contents.font.size=Font.default_size
  154. end
  155. #--------------------------------------------------------------------------
  156. # ● 刷新
  157. #--------------------------------------------------------------------------
  158. def refresh
  159. draw_title
  160. for i in 0..($game_maphint.visible_line-1)
  161. @tempn=$game_maphint.text(i)
  162. draw_text(4, fitting_height(i+1), window_width-40, fitting_height(1) ,@tempn,1)
  163. end
  164. end
  165. end

  166. #==============================================================================
  167. # ■ Window_MissionShow
  168. #------------------------------------------------------------------------------
  169. #  显示任务信息。 By SkyZH
  170. #==============================================================================

  171. class Window_MissionShow < Window_Selectable
  172. #--------------------------------------------------------------------------
  173. # ● 初始化对像
  174. #--------------------------------------------------------------------------
  175. def initialize(x, y)
  176. super(x, y, window_width, Graphics.height)
  177. self.openness = 0
  178. open
  179. end

  180. def setNumber(numbers)
  181. @Mnumber=numbers
  182. refresh
  183. end

  184. #--------------------------------------------------------------------------
  185. # ● 获取窗口的宽度
  186. #--------------------------------------------------------------------------
  187. def window_width
  188. return Graphics.width
  189. end

  190. def draw_title(text , line, size ,dwhere ,color)
  191. self.contents.font.color=color
  192. self.contents.font.size=size

  193. draw_text(4, 0 , window_width-40, fitting_height(line+1), text ,dwhere)
  194. self.contents.font.color=normal_color
  195. self.contents.font.size=Font.default_size
  196. end
  197. #--------------------------------------------------------------------------
  198. # ● 刷新
  199. #--------------------------------------------------------------------------
  200. def refresh
  201. contents.clear
  202. @texts= $game_missions.mission(@Mnumber).getTitle
  203. draw_title(@texts,0,48,1,Color.new(255,100,100))
  204. draw_title("任务介绍",4,22,0,Color.new(100,255,255))
  205. draw_title($game_missions.mission(@Mnumber).getText,6,18,0,Color.new(255,255,255))
  206. draw_title("任务奖励/重要信息",9,22,0,Color.new(100,255,255))
  207. draw_title($game_missions.mission(@Mnumber).getImText,11,18,0,Color.new(255,255,255))
  208. draw_title("领取任务NPC",14,22,0,Color.new(100,255,255))
  209. draw_title($game_missions.mission(@Mnumber).getNPC1,16,18,0,Color.new(255,255,255))
  210. draw_title("交接任务NPC",19,22,0,Color.new(100,255,255))
  211. draw_title($game_missions.mission(@Mnumber).getNPC2,21,18,0,Color.new(255,255,255))

  212. end

  213. end

  214. #==============================================================================
  215. # ■ Window_MenuCommand
  216. #------------------------------------------------------------------------------
  217. #  任务画面中显示指令的窗口 By SkyZH
  218. #==============================================================================

  219. class Window_MissionCommand < Window_Command
  220. #--------------------------------------------------------------------------
  221. # ● 初始化对象
  222. #--------------------------------------------------------------------------
  223. def initialize
  224. super(0, 0)
  225. end
  226. #--------------------------------------------------------------------------
  227. # ● 获取窗口的宽度
  228. #--------------------------------------------------------------------------
  229. def window_width
  230. return 256
  231. end
  232. #--------------------------------------------------------------------------
  233. # ● 获取显示行数
  234. #--------------------------------------------------------------------------
  235. def visible_line_number
  236. (Graphics.height-standard_padding*2)/line_height
  237. end
  238. #--------------------------------------------------------------------------
  239. # ● 生成指令列表
  240. #--------------------------------------------------------------------------
  241. def make_command_list
  242. add_original_commands
  243. add_return_command
  244. end
  245. #--------------------------------------------------------------------------
  246. # ● 独自添加指令用
  247. #--------------------------------------------------------------------------
  248. def add_original_commands
  249. for i in 0...100
  250. @r=i+1
  251. @t="mission" + i.to_s
  252. if $game_missions.mission(i).getStatus==true
  253. add_command($game_missions.mission(i).getTitle, @t.to_sym)
  254. end
  255. end
  256. end
  257. #--------------------------------------------------------------------------
  258. # ● 结束指令用
  259. #--------------------------------------------------------------------------
  260. def add_return_command
  261. add_command("返回", :returnsc)
  262. end
  263. #--------------------------------------------------------------------------
  264. # ● 按下确定键时的处理
  265. #--------------------------------------------------------------------------
  266. def process_ok
  267. super
  268. end

  269. def call_handler(symbol)
  270. @handler[symbol].call(symbol.id2name[7,symbol.id2name.size-7].to_i) if handle?(symbol)
  271. end
  272. end



  273. #encoding:utf-8
  274. #==============================================================================
  275. # ■ Scene_Mission
  276. #------------------------------------------------------------------------------
  277. #  任务
  278. #==============================================================================

  279. class Scene_Mission < Scene_MenuBase
  280. #--------------------------------------------------------------------------
  281. # ● 开始处理
  282. #--------------------------------------------------------------------------
  283. def start
  284. super
  285. create_command_window
  286. end
  287. #--------------------------------------------------------------------------
  288. # ● 生成指令窗口
  289. #--------------------------------------------------------------------------
  290. def create_command_window
  291. @maphint_window= Window_MapHint.new(256,0)
  292. @command_window = Window_MissionCommand.new
  293. @window_missionShow=Window_MissionShow.new(0,0)
  294. @window_missionShow.hide
  295. @command_window.set_handler(:returnsc, method(:scenereturns))
  296. @command_window.set_handler(:cancel, method(:scenereturns))
  297. @window_missionShow.set_handler(:cancel, method(:missionHide))
  298. @window_missionShow.set_handler(:ok, method(:missionHide))
  299. for i in 0...100
  300. @r=i
  301. @t="mission" + i.to_s
  302. @command_window.set_handler(@t.to_sym, method(:missionShow))
  303. end

  304. end

  305. def scenereturns( t)
  306. SceneManager.return
  307. end

  308. def missionShow( t)
  309. @window_missionShow.setNumber(t)
  310. @command_window.deactivate
  311. @window_missionShow.activate
  312. @window_missionShow.openness=0
  313. @window_missionShow.show
  314. @window_missionShow.open
  315. @window_missionShow.refresh
  316. end

  317. def missionHide
  318. @command_window.activate
  319. @window_missionShow.deactivate
  320. @window_missionShow.close
  321. update until @window_missionShow.close?
  322. @window_missionShow.hide
  323. end

  324. end


  325. #==============================================================================
  326. # ■ Window_MenuCommand
  327. #------------------------------------------------------------------------------
  328. #  菜单画面中显示指令的窗口
  329. #==============================================================================

  330. class Window_MenuCommand < Window_Command
  331. #--------------------------------------------------------------------------
  332. # ● 独自添加指令用
  333. #--------------------------------------------------------------------------
  334. def add_original_commands
  335. add_command("地图提示", :maphint)
  336. end
  337. end

  338. #==============================================================================
  339. # ■ Scene_Menu
  340. #------------------------------------------------------------------------------
  341. #  菜单画面
  342. #==============================================================================

  343. class Scene_Menu < Scene_MenuBase
  344. #--------------------------------------------------------------------------
  345. # ● 生成指令窗口
  346. #--------------------------------------------------------------------------
  347. def create_command_window
  348. @command_window = Window_MenuCommand.new
  349. @command_window.set_handler(:item, method(:command_item))
  350. @command_window.set_handler(:skill, method(:command_personal))
  351. @command_window.set_handler(:equip, method(:command_personal))
  352. @command_window.set_handler(:status, method(:command_personal))
  353. @command_window.set_handler(:formation, method(:command_formation))
  354. @command_window.set_handler(:save, method(:command_save))
  355. @command_window.set_handler(:game_end, method(:command_game_end))
  356. @command_window.set_handler(:cancel, method(:return_scene))

  357. @command_window.set_handler(:maphint, method(:command_maphint))
  358. end

  359. def command_maphint
  360. SceneManager.call(Scene_Mission)
  361. end
  362. end



  363. #==============================================================================
  364. # ■ DataManager
  365. #------------------------------------------------------------------------------
  366. #  数据库和游戏实例的管理器。所有在游戏中使用的全局变量都在这里初始化。
  367. #==============================================================================

  368. module DataManager
  369. #--------------------------------------------------------------------------
  370. # ● 生成各种游戏对象
  371. #--------------------------------------------------------------------------
  372. def self.create_game_objects
  373. $game_temp = Game_Temp.new
  374. $game_system = Game_System.new
  375. $game_timer = Game_Timer.new
  376. $game_message = Game_Message.new
  377. $game_switches = Game_Switches.new
  378. $game_variables = Game_Variables.new
  379. $game_self_switches = Game_SelfSwitches.new
  380. $game_actors = Game_Actors.new
  381. $game_party = Game_Party.new
  382. $game_troop = Game_Troop.new
  383. $game_map = Game_Map.new
  384. $game_player = Game_Player.new
  385. $game_maphint = Game_MapHint.new
  386. $game_missions = Game_Missions.new
  387. end
  388. #--------------------------------------------------------------------------
  389. # ● 生成存档内容
  390. #--------------------------------------------------------------------------
  391. def self.make_save_contents
  392. contents = {}
  393. contents[:system] = $game_system
  394. contents[:timer] = $game_timer
  395. contents[:message] = $game_message
  396. contents[:switches] = $game_switches
  397. contents[:variables] = $game_variables
  398. contents[:self_switches] = $game_self_switches
  399. contents[:actors] = $game_actors
  400. contents[:party] = $game_party
  401. contents[:troop] = $game_troop
  402. contents[:map] = $game_map
  403. contents[:player] = $game_player
  404. contents[:maphint] = $game_maphint
  405. contents[:missions] = $game_missions
  406. contents
  407. end
  408. #--------------------------------------------------------------------------
  409. # ● 展开存档内容
  410. #--------------------------------------------------------------------------
  411. def self.extract_save_contents(contents)
  412. $game_system = contents[:system]
  413. $game_timer = contents[:timer]
  414. $game_message = contents[:message]
  415. $game_switches = contents[:switches]
  416. $game_variables = contents[:variables]
  417. $game_self_switches = contents[:self_switches]
  418. $game_actors = contents[:actors]
  419. $game_party = contents[:party]
  420. $game_troop = contents[:troop]
  421. $game_map = contents[:map]
  422. $game_player = contents[:player]
  423. $game_maphint = contents[:maphint]
  424. $game_missions = contents[:missions]
  425. end
  426. end
复制代码

评分

参与人数 1星屑 +200 收起 理由
忧雪の伤 + 200 奖赏条例

查看全部评分

梦石
0
星屑
67
在线时间
140 小时
注册时间
2012-2-6
回帖
351
发表于 2012-3-4 20:51:59 | 显示全部楼层
本帖最后由 杂兵天下 于 2012-3-5 01:08 编辑

看了之后,收回刚才说的话,LZ是一个连alias法冲突避免都不知道的可爱的天朝人
[pre lang="ruby" line="1"]class Game_Mission  
  def initialize
    @texts = ""
    @titletext = ""
    @imtext = ""
    @NPC1 = ""
    @NPC2 = ""
    @bool_mission = false
  end
  def setText(text);@texts=text;end
  def setTitle(text);@titletext=text;end
  def setImText(text);@imtext=text;end
  def setNPC(t1, t2);@NPC1=t1;@NPC2=t2;end
  def setStatus(b);@bool_mission=b;end
  def getText;@texts;end
  def getTitle;@titletext;end
  def getImText;@imtext;end
  def getNPC1;@NPC1;end
  def getNPC2;@NPC2;end
  def getStatus;@bool_mission;end
  def clear
    @texts = ""
    @titletext = ""
    @imtext = ""
    @NPC1 = ""
    @NPC2 = ""
    @bool_mission = false
  end
end
class Game_Missions
  def initialize
    @mission_array=Array.new
    for i in 0...100
      @mission_array=Game_Mission.new
    end
  end
  def mission(t);@mission_array[t];end
  def getNoMission
    for i in 99..0
      if @mission_array.getStatus==false
        return i
      end
    end
  end
  def clear
    for i in 0...100
      @mission_array.clear
    end   
  end
  def serMission(titletext)
    for i in 0...100
      if @mission_array.getTitle==titletext && @mission_array.getStatus==true then
        return i
      end
    end
    return -1
  end
end
class Window_MissionShow < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, window_width, Graphics.height)
    self.openness = 0
    open
  end
  def setNumber(numbers)
    @Mnumber=numbers
    refresh
  end
  
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    return Graphics.width - 256
  end
  
  def draw_title(text , line, size ,dwhere ,color)
    self.contents.font.color=color
    self.contents.font.size=size
   
    draw_text(4, 0 , window_width-40, fitting_height(line+1), text ,dwhere)
    self.contents.font.color=normal_color
    self.contents.font.size=Font.default_size
  end  
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    @texts= $game_missions.mission(@Mnumber).getTitle
    draw_title(@texts,0,48,1,Color.new(255,100,100))
    draw_title("任务介绍",4,22,0,Color.new(100,255,255))
    draw_title($game_missions.mission(@Mnumber).getText,6,18,0,Color.new(255,255,255))
    draw_title("任务奖励/重要信息",9,22,0,Color.new(100,255,255))
    draw_title($game_missions.mission(@Mnumber).getImText,11,18,0,Color.new(255,255,255))
    draw_title("领取任务NPC",14,22,0,Color.new(100,255,255))
    draw_title($game_missions.mission(@Mnumber).getNPC1,16,18,0,Color.new(255,255,255))
    draw_title("交接任务NPC",19,22,0,Color.new(100,255,255))
    draw_title($game_missions.mission(@Mnumber).getNPC2,21,18,0,Color.new(255,255,255))
   
  end
  
end
#encoding:utf-8
class Window_MissionCommand < Window_Command
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    return 256
  end
  #--------------------------------------------------------------------------
  # ● 获取显示行数
  #--------------------------------------------------------------------------
  def visible_line_number
    10
  end
  #--------------------------------------------------------------------------
  # ● 生成指令列表
  #--------------------------------------------------------------------------
  def make_command_list
    add_original_commands
    add_return_command
  end
  #--------------------------------------------------------------------------
  # ● 独自添加指令用
  #--------------------------------------------------------------------------
  def add_original_commands
    for i in 0...100
      @r=i+1
      @t="mission" + i.to_s
      if $game_missions.mission(i).getStatus==true
        add_command($game_missions.mission(i).getTitle, @t.to_sym)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 结束指令用
  #--------------------------------------------------------------------------
  def add_return_command
    add_command("返回", :returnsc)
  end
  #--------------------------------------------------------------------------
  # ● 按下确定键时的处理
  #--------------------------------------------------------------------------
  def process_ok
    super
  end
  def call_handler(symbol)
    @handler[symbol].call(symbol.id2name[7,symbol.id2name.size-7].to_i) if handle?(symbol)
  end
end
#encoding:utf-8
class Scene_Mission < Scene_MenuBase
  def start
    super
    create_command_window
  end
  def create_command_window
    @command_window = Window_MissionCommand.new
    @window_missionShow=Window_MissionShow.new(256,0)
    @window_missionShow.hide
    @command_window.set_handler(:returnsc,    method(:scenereturns))
    @command_window.set_handler(:cancel,      method(:scenereturns))
    @window_missionShow.set_handler(:cancel,  method(:missionHide))
    @window_missionShow.set_handler(:ok,      method(:missionHide))
    for i in 0...100
      @r=i
      @t="mission" + i.to_s
      @command_window.set_handler(@t.to_sym, method(:missionShow))
    end
  end
  def scenereturns( t)
    SceneManager.return
  end
  def missionShow( t)
    @window_missionShow.setNumber(t)
    @command_window.deactivate
    @window_missionShow.activate
    @window_missionShow.openness=0
    @window_missionShow.show
    @window_missionShow.open
  end
  def missionHide
    @command_window.activate
    @window_missionShow.deactivate
    @window_missionShow.close
    update until @window_missionShow.close?
    @window_missionShow.hide
  end
end
#encoding:utf-8
module DataManager
  class <<self
    alias make_save_contents_task_zabing make_save_contents
    alias create_game_objects_task_zabing create_game_objects
    alias extract_save_contents_task_zabing extract_save_contents
  end
  def self.create_game_objects
    create_game_objects_task_zabing
    $game_missions = Game_Missions.new
  end
  def make_save_contents
    contents = make_save_contents_task_zabing
    contents[:missions] = $game_missions
    contents
  end
  def self.extract_save_contents(contents)
    extract_save_contents_task_zabing(contents)
    $game_missions = contents[:missions]
  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_Mission)
  end
end[/pre]
减少冲突,优化程序外观,去除奇怪的地图提示功能后的程序。
签名是什么?可以吃么?
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45693
在线时间
7948 小时
注册时间
2009-7-6
回帖
13336

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2012-3-8 02:12:45 | 显示全部楼层
杂兵天下 发表于 2012-3-4 20:51
看了之后,收回刚才说的话,LZ是一个连alias法冲突避免都不知道的可爱的天朝人
class Game_Mission  
  def ...

你也别笑话lz了,alias不考虑reset异常之后的堆栈溢出么?
不然你按几遍f12试试?

点评

F12直接屏蔽掉管它的  发表于 2012-3-8 08:46
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
50
在线时间
41 小时
注册时间
2010-7-10
回帖
89
 楼主| 发表于 2012-3-11 19:50:30 | 显示全部楼层

回复。。。

本帖最后由 zhangchi5 于 2012-3-11 19:52 编辑

你也明白,我只是C++的那个忠实者。。。。。。。。。
作为一个初中生,只能……做啊做,20~30分钟搞定卷子。。。。。。。。。。。。
不过……经过无数调试以及把RMVX的帮助文档和日文RMVA的帮助文档做对比,好不容易搞定了。。。。
很不习惯在一页里写那么多个类。。。

RP大冒险里有一大堆自己干的脚本。。。
这只是其中一个。。。。。。。。。。。


另外,
“减少冲突,优化程序外观,去除奇怪的地图提示功能后的程序。”
地图提示就是说明这个场景啦!!!
比如说,在游戏初始场景里说明游戏操作方式。
游戏场景里说明游戏操作方式。。。
比如说,在旅馆里可以写计价方式,NPC说明等等。

其实我写C++程序时也是乱七八糟的。。。。。。。。。。


‘‘──zhangchi5于2012-3-11 19:53补充以下内容

真的不习惯RUBY那个重写类啊!!!
竟然可以重复定义!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
’’

点评

初中吗?比我强大这么多……初三啊?  发表于 2012-3-17 20:36
回复

使用道具 举报

梦石
0
星屑
50
在线时间
60 小时
注册时间
2012-2-8
回帖
10
发表于 2012-3-14 17:27:04 | 显示全部楼层
杂兵天下 发表于 2012-3-4 20:51
看了之后,收回刚才说的话,LZ是一个连alias法冲突避免都不知道的可爱的天朝人
class Game_Mission  
  def ...

话说,我用了一下这个脚本,貌似有问题。比如,当我接到的任务有超过1个(至少2个)时,进入任务界面,第一次选择一个任务,说明很正常。但按下ESC关闭任务说明窗口后,不退出任务界面,而是继续选择下一个任务时,之前的文字似乎没有被清除掉,而是重复显示,叠加在一起了。请教一下,是哪个部分的问题?


‘‘──huianda于2012-3-14 21:10补充以下内容

好吧,我不太懂脚本(只有少许VB.net的基础)。在所能理解的语法基础上做了小小调整。
把:
  1. def create_command_window
  2.     @command_window = Window_MissionCommand.new
  3.     @window_missionShow=Window_MissionShow.new(256,0)
  4.     @window_missionShow.hide
  5.     @command_window.set_handler(:returnsc,    method(:scenereturns))
  6.     @command_window.set_handler(:cancel,      method(:scenereturns))
  7.     @window_missionShow.set_handler(:cancel,  method(:missionHide))
  8.     @window_missionShow.set_handler(:ok,      method(:missionHide))
  9.     for i in 0...100
  10.       @r=i
  11.       @t="mission" + i.to_s
  12.       @command_window.set_handler(@t.to_sym, method(:missionShow))
  13.     end
  14.   end
复制代码
里与@window_missionShow有关的生成和句柄的获取,放到后面,变成:
  1. def missionShow(t)
  2.     @window_missionShow=Window_MissionShow.new(256,0)
  3.     @window_missionShow.set_handler(:cancel,  method(:missionHide))
  4.     @window_missionShow.set_handler(:ok,      method(:missionHide))
  5.     @window_missionShow.setNumber(t)
  6.     @command_window.deactivate
  7.     @window_missionShow.activate
  8.     @window_missionShow.openness=0
  9.     @window_missionShow.show
  10.     @window_missionShow.open
  11.   end
复制代码
貌似没有再出现。但不知道这样做是否可行?会不会浪费很多系统资源,或者,造成别的程序逻辑上的问题?
’’


‘‘──huianda于2012-3-15 16:02补充以下内容

多谢哈,找到了。正在研究当中,貌似很不错的。
’’

文字显示重叠

文字显示重叠

点评

分辨率问题啊  发表于 2012-7-25 09:05
我没仔细研究过此脚本,感觉有更好的脚本。可以去咕狗搜索一下Quest Journal  发表于 2012-3-15 14:26
回复

使用道具 举报

梦石
0
星屑
50
在线时间
41 小时
注册时间
2010-7-10
回帖
89
 楼主| 发表于 2012-3-17 20:21:08 | 显示全部楼层
本帖最后由 zhangchi5 于 2012-3-17 20:23 编辑

‘‘──zhangchi5于2012-3-17 20:21补充以下内容

问题已解决~~
请在Window_MissionShow做修改
修改在本帖6楼~~
’’
  1. #==============================================================================
  2. # ■ Window_MissionShow
  3. #------------------------------------------------------------------------------
  4. #  显示任务信息。 By SkyZH
  5. #==============================================================================

  6. class Window_MissionShow < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #--------------------------------------------------------------------------
  10.   def initialize(x, y)
  11.     super(x, y, window_width, Graphics.height)
  12.     self.openness = 0
  13.     open
  14.   end
  15.   
  16.   def setNumber(numbers)
  17.     @Mnumber=numbers
  18.     refresh
  19.   end
  20.   
  21.   #--------------------------------------------------------------------------
  22.   # ● 获取窗口的宽度
  23.   #--------------------------------------------------------------------------
  24.   def window_width
  25.     return Graphics.width
  26.   end
  27.   
  28.   def draw_title(text , line, size ,dwhere ,color)
  29.     self.contents.font.color=color
  30.     self.contents.font.size=size
  31.    
  32.     draw_text(4, 0 , window_width-40, fitting_height(line+1), text ,dwhere)
  33.     self.contents.font.color=normal_color
  34.     self.contents.font.size=Font.default_size
  35.   end  
  36.   #--------------------------------------------------------------------------
  37.   # ● 刷新
  38.   #--------------------------------------------------------------------------
  39.   def refresh
  40.     contents.clear
  41.     @texts= $game_missions.mission(@Mnumber).getTitle
  42.     draw_title(@texts,0,48,1,Color.new(255,100,100))
  43.     draw_title("任务介绍",4,22,0,Color.new(100,255,255))
  44.     draw_title($game_missions.mission(@Mnumber).getText,6,18,0,Color.new(255,255,255))
  45.     draw_title("任务奖励/重要信息",9,22,0,Color.new(100,255,255))
  46.     draw_title($game_missions.mission(@Mnumber).getImText,11,18,0,Color.new(255,255,255))
  47.     draw_title("领取任务NPC",14,22,0,Color.new(100,255,255))
  48.     draw_title($game_missions.mission(@Mnumber).getNPC1,16,18,0,Color.new(255,255,255))
  49.     draw_title("交接任务NPC",19,22,0,Color.new(100,255,255))
  50.     draw_title($game_missions.mission(@Mnumber).getNPC2,21,18,0,Color.new(255,255,255))
  51.    
  52.   end
  53.   
  54. end
复制代码
‘‘──zhangchi5于2012-3-17 20:23补充以下内容

因为我设定的两个任务长度一样,木有发现问题。。。

求整合!!!!!!!!!!!!!!!!’’
回复

使用道具 举报

苍弩霸主

梦石
0
星屑
169
在线时间
423 小时
注册时间
2012-7-9
回帖
337
发表于 2012-7-19 04:57:32 | 显示全部楼层
zhangchi5 发表于 2012-3-17 20:21
‘‘──zhangchi5于2012-3-17 20:21补充以下内容

问题已解决~~

为什么我接两个任务却只显示一个?


‘‘──千城落水千城梦于2012-7-19 04:57补充以下内容:

[@]zhangchi5[/@]为什么我接两个任务却只显示一个?
’’
回复

使用道具 举报

梦石
0
星屑
50
在线时间
41 小时
注册时间
2010-7-10
回帖
89
 楼主| 发表于 2012-7-21 17:24:33 | 显示全部楼层
千城落水千城梦 发表于 2012-7-19 04:57
为什么我接两个任务却只显示一个?

有Sample么。。。我很久不在线的说。。。
回复

使用道具 举报

苍弩霸主

梦石
0
星屑
169
在线时间
423 小时
注册时间
2012-7-9
回帖
337
发表于 2012-7-21 18:12:45 | 显示全部楼层
@zhangchi5你不介意把你QQ给我吧!
回复

使用道具 举报

梦石
0
星屑
50
在线时间
41 小时
注册时间
2010-7-10
回帖
89
 楼主| 发表于 2012-10-5 11:53:48 | 显示全部楼层
千城落水千城梦 发表于 2012-7-21 18:12
@zhangchi5你不介意把你QQ给我吧!

高压力学生族。。。不解释~


‘‘──zhangchi5于2012-10-5 11:54补充以下内容:

有可能你的任务编号一样。。。
’’
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部