Project1

标题: [完成]汉化-国外强大的ARPG系统 [打印本页]

作者: 偶尔杀人越货    时间: 2008-6-26 23:51
标题: [完成]汉化-国外强大的ARPG系统
下载地址
标准窗口版
http://rpg.blue/upload_program/files/abs_95028144.rar
640*480版(完美640窗口版,使用了6r整合640系统)
http://rpg.blue/upload_program/files/arpg640_95073978.rar



如果有错误,见谅,
如果有意见或建议,欢迎!
如果挑刺的话,杀!
说实话单从质量来说已经算是中上了,脚本90%事件和数据库全部或大部分汉化,物品技能和武器都和默认的不一样,都是我一个一个打进去的,脚本里面有大量西班牙文,害得我只能找谷歌
本次发布见此以前的原则:
以下声明

!ACTION: Games for the reprint of copyright belongs to the original author.
!注意:游戏为转载,原游戏为demo版权属于作者,请各位在使用的时候注明版权以免发生法律纠纷

作者声明:
BLUE FireGames ABS 作者为Blue Fire Group(原脚本声明:Credits everything Done by BlueFireGames,)
有兴趣的可参照原版,地址:http://rpg.blue/upload_program/files/BlueFireGames_95074682.zip
其外柜hud及主要核心脚本作者为Vlad(西班牙人)
使用了轮回者的容错脚本和来自本站的得失物品提示(作者是谁?哭)
使用了vx截图脚本
Mog Menu_Status_Aya V 1.0 美化菜单脚本作者为Moghunter
其中input全键盘和强力防卡脚本来自rmxp.org
汉化及注释为偶尔杀人越货编辑制作,请尊重原作者及翻译者
程序debug为yangff
640版本使用了现成的6r~640系统(从cp战斗demo中获得并修改),版权属于640版原作者,如果作者有意见可以直接密我以便移除链接..

脚本引用说明:

1.脚本的bluefire abs为arpg功能核心,如果直接拖入或删除就会没有任何arpg功能
2.hud脚本为外柜,也就是技能窗口和血条,这个原作者设计的不太好,很掉fps---如果删除了将看不到窗口,但是不影响功能使用
3.input是全键盘脚本,可以拿掉,不过需要修改blue fire abs
4.anti lag是防卡脚本,以前单独转载过,强烈建议保留


更改说明:

*使用原版系统直接汉化,工作量可想而知~~只添加了得失物品提示(for vx)、容错第三版系统(如果按F12出错请自行删除容错脚本)、截图存档
原版中的HUD脚本由于结构问题造成一些错误及lang,因此被替换掉-感谢yangff的友情编写~!(新版窗口和原版没有外观上和功能上的区别)
游戏中的mod系列脚本由yangff DEBUG:消除了读档的错误
demo中核心脚本blue fire abs 部分内容被偶尔杀人越货更改,但是可以保证不会造成错误或外观功能上的改变
添加了截图存档脚本,可自行移除,不过不要更改其次序(放在abs系列脚本上会失效)
汉化可能对原意造成一定修改(特别是武器名)不过基本没有不和谐的名称出现
任务对话有少量修改,并添加了一些事件。
640*版本中更改了mog中的部分数据并对素材图片进行了放大以适应640分辨率
640*版本修改了scence_title并修改了map_001(其余地图由于分辨率有适当更改)---其余和544版本等同
完全保留了原有DEMO剧情,添加了一段恶搞剧情(嘿嘿)
就说这么多了,好好玩吧---做翻译要厚道{/gg}
                                                          ----08/06/27
                                                              杀人越货留




作者: 越前リョーマ    时间: 2008-6-27 02:22
有没有截图啊……
作者: 水仙晶女    时间: 2008-6-27 12:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: yangff    时间: 2008-6-27 16:25
解决读档bug(召唤程序一只)


我怎么没bug?
作者: yangff    时间: 2008-6-27 17:03
  1. #==============================================================================
  2. # Window Hud
  3. #==============================================================================
  4. module CrissaegrimHud
  5.   
  6. # imagem de fundo da hud
  7. Background = "HUD_Background"

  8. # Switch que ativa / desativa a HUD
  9. # se for = 0, a Hud será mostrada na tela permanentemente
  10. OnOff_Hud_Switch = 0

  11. end
  12. #------------------------------------------------------------------------------
  13. class Window_CrissaegrimHud < Window_Base
  14.   def initialize
  15.     super(0,0,320,100)
  16.     self.opacity = 0
  17.     update
  18.   end
  19.   def update
  20.     if ($game_party.members[0].hp != @hp or $game_party.members[0].mp != @mp) or (Crissaegrim_ABS != @abs or ($game_party.members[0].level != @level or $game_party.members[0].states != @states))
  21.        @abs = Crissaegrim_ABS
  22.        @hp = $game_party.members[0].hp
  23.        @mp = $game_party.members[0].mp
  24.        @item = Crissaegrim_ABS::Item_Button
  25.        @level = $game_party.members[0].level
  26.        @states = $game_party.members[0].states
  27.        self.contents.font.size = 16
  28.        self.contents.clear
  29.        skill_count = 0
  30.        for button in Crissaegrim_ABS::Skill_Button.keys
  31.          next if button == nil
  32.          skill = $data_skills[Crissaegrim_ABS::Skill_Button[button]]
  33.          next if skill == nil
  34.          show_icon(skill, (28 * skill_count) + 155, 0)
  35.          skill_count += 1
  36.        end
  37.        item_count = 0
  38.        for btn in Crissaegrim_ABS::Item_Button.keys
  39.          next if btn == nil
  40.          item = $data_items[Crissaegrim_ABS::Item_Button[btn]]
  41.          next if item == nil
  42.          show_icon(item, (28 * item_count) + 155, 40)
  43.          item_count += 1
  44.        end
  45.        refresh
  46.      end
  47.   end
  48.    def refresh
  49.       actor = $game_party.members[0]
  50.       draw_actor_hp(actor, 0, -4, 96)
  51.       draw_actor_mp(actor, 0, 20, 96)
  52.       draw_actor_level(actor, 0, 44)
  53.       show_state(actor, 115, 0)
  54. if Crissaegrim_ABS::Distance_Weapons.has_key?($game_party.members[0].weapon_id)
  55. if Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5] > 0
  56.   show_icon($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]], 260, 0)
  57.   self.contents.font.size = 18
  58.   self.contents.font.color = text_color(15)
  59.   self.contents.draw_text(260, 8, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]]),1)
  60.   self.contents.font.size = 16
  61.   self.contents.font.color = text_color(0)
  62.   self.contents.draw_text(260, 8, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]]),1)
  63. end
  64. if Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6] > 0
  65.   show_icon($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]], 260, 40)
  66.   self.contents.font.size = 18
  67.   self.contents.font.color = text_color(15)
  68.   self.contents.draw_text(260, 48, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]]),1)
  69.   self.contents.font.size = 16
  70.   self.contents.font.color = text_color(0)
  71.   self.contents.draw_text(260, 48, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]]),1)
  72. end
  73. end
  74. end
  75. def show_state(actor, x, y)
  76.     count = 0
  77.     for state in actor.states
  78.       draw_icon(state.icon_index, x, y + 24 * count)
  79.       count += 1
  80.       break if (24 * count > 76)
  81.     end
  82.   end
  83.   def show_icon(item, x, y)
  84.     if item != nil
  85.       draw_icon(item.icon_index, x, y)
  86.     end
  87.   end
  88. end
  89. #------------------------------------------------------------------------------
  90. class Scene_Map
  91.   alias hud_start start
  92.   alias hud_update update
  93.   alias hud_terminate terminate
  94.   def start
  95.     super
  96.     @bg = Sprite.new
  97.     @bg.bitmap = Cache.system(CrissaegrimHud::Background)
  98.     @bg.x = 0
  99.     @bg.y = 316
  100.     @hud = Window_CrissaegrimHud.new
  101.     @hud.x = 0
  102.     @hud.y = 316
  103.     hud_properties
  104.     hud_start
  105.   end
  106.   def update
  107.     super
  108.     @bg.update
  109.     @hud.update
  110.     hud_properties
  111.     hud_update
  112.   end
  113.   def hud_properties
  114.     if CrissaegrimHud::OnOff_Hud_Switch == 0 or $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true
  115.        @hud.visible = true
  116.        @bg.visible = true
  117.      else
  118.        @hud.visible = false
  119.        @bg.visible = false
  120.      end
  121.    end
  122.   def terminate
  123.     super
  124.     @bg.dispose
  125.     @hud.dispose
  126.     hud_terminate
  127.   end
  128. end
复制代码

降低刷新频率了
不过我的电脑上看不出什么 {/gg}{/gg}
作者: 偶尔杀人越货    时间: 2008-6-27 17:23
这个游戏的已知bug列表(不用担心,如果是自己做的话都能避免)
在存档后重启游戏,选择一个存档后会出现

在装备武器“巅峰之杖”后会出现

至于HUD影响刷新这一说,多玩一会然后把hud去掉便知,有HUD的时候游戏会间歇的掉帧(我的电脑配置玩rm游戏都是满帧的)是hud的刷新问题,召唤程序一只
还有一个win32问题,我遇见过一次,不过概率极小,更新后估计没这个bug了
作者: yangff    时间: 2008-6-27 17:24
HDD
开了,没开fps都是60
作者: 偶尔杀人越货    时间: 2008-6-27 17:28
开了就会“间歇性”的下降(很有规律的汗),我的电脑显示是43~50,因为是瞬间掉帧,估计瞬间fps可能是30或者更低
作者: yangff    时间: 2008-6-27 17:31
读挡bug
追加 以下脚本
(暗说这个作者太粗心了)

  1. #==============================================================================
  2. # ** Scene_File
  3. #------------------------------------------------------------------------------
  4. #  This class performs the save and load screen processing.
  5. #==============================================================================

  6. class Scene_File < Scene_Base

  7.   #--------------------------------------------------------------------------
  8.   # * Write Save Data
  9.   #     file : write file object (opened)
  10.   #--------------------------------------------------------------------------
  11.   def write_save_data(file)
  12.     characters = []
  13.     for actor in $game_party.members
  14.       characters.push([actor.character_name, actor.character_index])
  15.     end
  16.     $game_system.save_count += 1
  17.     $game_system.version_id = $data_system.version_id
  18.     @last_bgm = RPG::BGM::last
  19.     @last_bgs = RPG::BGS::last
  20.     Marshal.dump(characters,           file)
  21.     Marshal.dump(Graphics.frame_count, file)
  22.     Marshal.dump(@last_bgm,            file)
  23.     Marshal.dump(@last_bgs,            file)
  24.     Marshal.dump($game_system,         file)
  25.     Marshal.dump($game_message,        file)
  26.     Marshal.dump($game_switches,       file)
  27.     Marshal.dump($game_variables,      file)
  28.     Marshal.dump($game_self_switches,  file)
  29.     Marshal.dump($game_actors,         file)
  30.     Marshal.dump($game_party,          file)
  31.     Marshal.dump($game_troop,          file)
  32.     Marshal.dump($game_map,            file)
  33.     Marshal.dump($game_player,         file)
  34.     Marshal.dump($game_range,          file)
  35.    
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # * Read Save Data
  39.   #     file : file object for reading (opened)
  40.   #--------------------------------------------------------------------------
  41.   def read_save_data(file)
  42.     characters           = Marshal.load(file)
  43.     Graphics.frame_count = Marshal.load(file)
  44.     @last_bgm            = Marshal.load(file)
  45.     @last_bgs            = Marshal.load(file)
  46.     $game_system         = Marshal.load(file)
  47.     $game_message        = Marshal.load(file)
  48.     $game_switches       = Marshal.load(file)
  49.     $game_variables      = Marshal.load(file)
  50.     $game_self_switches  = Marshal.load(file)
  51.     $game_actors         = Marshal.load(file)
  52.     $game_party          = Marshal.load(file)
  53.     $game_troop          = Marshal.load(file)
  54.     $game_map            = Marshal.load(file)
  55.     $game_player         = Marshal.load(file)
  56.     $game_range          = Marshal.load(file)
  57.     if $game_system.version_id != $data_system.version_id
  58.       $game_map.setup($game_map.map_id)
  59.       $game_player.center($game_player.x, $game_player.y)
  60.     end
  61.   end
  62. end
复制代码

作者: yangff    时间: 2008-6-27 17:35
以下引用偶尔杀人越货于2008-6-27 9:28:21的发言:

开了就会“间歇性”的下降(很有规律的汗),我的电脑显示是43~50,因为是瞬间掉帧,估计瞬间fps可能是30或者更低

我都是60满冲的
至少我知道开500个并行事件我还是fps60
作者: yangff    时间: 2008-6-27 17:38
HDD的问题太大了,又不砸第,重写最简单了
作者: 偶尔杀人越货    时间: 2008-6-27 17:40
以下引用yangff于2008-6-27 9:38:20的发言:

HDD的问题太大了,又不砸第,重写最简单了

我也这么想的..
作者: yangff    时间: 2008-6-27 17:41
最后一个问题:
  1. Distance_Weapons = {}
  2. Distance_Weapons[13] = ["$Arrow", 0, 6, 5, 30, 21, 22]
  3. Distance_Weapons[14] = ["$Arrow", 0, 6, 5, 30, 21, 22]
  4. Distance_Weapons[15] = ["$Arrow", 0, 6, 5, 30, 21, 22]
  5. Distance_Weapons[16] = ["$Arrow", 0, 6, 5, 30, 21, 22]
  6. Distance_Weapons[17] = ["$Arrow", 0, 6, 5, 30, 21, 22]
  7. Distance_Weapons[18] = ["$Arrow", 0, 6, 5, 30, 21, 22]
  8. Distance_Weapons[19] = ["$Arrow", 0, 6, 5, 30, 21, 22]
  9. Distance_Weapons[20] = ["$Arrow", 0, 6, 5, 30, 21, 22]
  10. Distance_Weapons[24] = ["Energy Ball", 0, 4, 5, 60,22]
  11. Distance_Weapons[25] = ["Energy Ball", 1, 4, 5, 60,22]
  12. Distance_Weapons[26] = ["Energy Ball", 2, 4, 5, 60,22]
  13. Distance_Weapons[27] = ["Energy Ball", 0, 4, 5, 60,22]
  14. Distance_Weapons[28] = ["Energy Ball", 5, 4, 5, 60,22]
复制代码

替换BlueFireGames ABS类似地方
作者: 偶尔杀人越货    时间: 2008-6-27 17:50
是混沌之杖,我口胡...
作者: yangff    时间: 2008-6-27 17:57
原来
Distance_Weapons[24] = ["Energy Ball", 0, 4, 5, 60]
Distance_Weapons[25] = ["Energy Ball", 1, 4, 5, 60]
Distance_Weapons[26] = ["Energy Ball", 2, 4, 5, 60]
Distance_Weapons[27] = ["Energy Ball", 0, 4, 5, 60]
Distance_Weapons[28] = ["Energy Ball", 5, 4, 5, 60]

数组size只到5
但是if Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]
取到了数组6的位置
6=nil
nil无法比大小
作者: yangff    时间: 2008-6-27 18:05
我修改的那个hud会卡吗?
update
里@bg.update
干什么用的。。。
有意义吗
update
Advances the sprite flash or wave phase (RGSS2). As a general rule, this method is called once per frame.

If a flash or wave is not needed, it is not necessary to call this.


作者: 偶尔杀人越货    时间: 2008-6-27 18:14
ms修改了这个还会卡,我昨天也是修改这里的{/bz}
作者: yangff    时间: 2008-6-27 18:24
强大我承认了
lj脚本,lj内容一堆一堆的 {/gg}
我们的脚本好像不注重效果,效率一堆堆 {/gg}{/gg}
每帧设置一次透明 {/gg}{/gg}{/gg}
  1. #==============================================================================
  2. # Window Hud
  3. #==============================================================================
  4. module CrissaegrimHud
  5.   
  6. # imagem de fundo da hud
  7. Background = "HUD_Background"

  8. # Switch que ativa / desativa a HUD
  9. # se for = 0, a Hud será mostrada na tela permanentemente
  10. OnOff_Hud_Switch = 0

  11. end
  12. #------------------------------------------------------------------------------
  13. class Window_CrissaegrimHud < Window_Base
  14.   def initialize
  15.     super(0,0,320,100)
  16.     self.opacity = 0
  17.     update
  18.   end
  19.   def update
  20.     if ($game_party.members[0].hp != @hp or $game_party.members[0].mp != @mp) or (Crissaegrim_ABS != @abs or ($game_party.members[0].level != @level or $game_party.members[0].states != @states))
  21.        @abs = Crissaegrim_ABS
  22.        @hp = $game_party.members[0].hp
  23.        @mp = $game_party.members[0].mp
  24.        @item = Crissaegrim_ABS::Item_Button
  25.        @level = $game_party.members[0].level
  26.        @states = $game_party.members[0].states
  27.        self.contents.font.size = 16
  28.        self.contents.clear
  29.        skill_count = 0
  30.        for button in Crissaegrim_ABS::Skill_Button.keys
  31.          next if button == nil
  32.          skill = $data_skills[Crissaegrim_ABS::Skill_Button[button]]
  33.          next if skill == nil
  34.          show_icon(skill, (28 * skill_count) + 155, 0)
  35.          skill_count += 1
  36.        end
  37.        item_count = 0
  38.        for btn in Crissaegrim_ABS::Item_Button.keys
  39.          next if btn == nil
  40.          item = $data_items[Crissaegrim_ABS::Item_Button[btn]]
  41.          next if item == nil
  42.          show_icon(item, (28 * item_count) + 155, 40)
  43.          item_count += 1
  44.        end
  45.        refresh
  46.      end
  47.   end
  48.    def refresh
  49.       actor = $game_party.members[0]
  50.       draw_actor_hp(actor, 0, -4, 96)
  51.       draw_actor_mp(actor, 0, 20, 96)
  52.       draw_actor_level(actor, 0, 44)
  53.       show_state(actor, 115, 0)
  54. if Crissaegrim_ABS::Distance_Weapons.has_key?($game_party.members[0].weapon_id)
  55. if Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5] > 0
  56.   show_icon($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]], 260, 0)
  57.   self.contents.font.size = 18
  58.   self.contents.font.color = text_color(15)
  59.   self.contents.draw_text(260, 8, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]]),1)
  60.   self.contents.font.size = 16
  61.   self.contents.font.color = text_color(0)
  62.   self.contents.draw_text(260, 8, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]]),1)
  63. end
  64. if Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6] > 0
  65.   show_icon($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]], 260, 40)
  66.   self.contents.font.size = 18
  67.   self.contents.font.color = text_color(15)
  68.   self.contents.draw_text(260, 48, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]]),1)
  69.   self.contents.font.size = 16
  70.   self.contents.font.color = text_color(0)
  71.   self.contents.draw_text(260, 48, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]]),1)
  72. end
  73. end
  74. end
  75. def show_state(actor, x, y)
  76.     count = 0
  77.     for state in actor.states
  78.       draw_icon(state.icon_index, x, y + 24 * count)
  79.       count += 1
  80.       break if (24 * count > 76)
  81.     end
  82.   end
  83.   def show_icon(item, x, y)
  84.     if item != nil
  85.       draw_icon(item.icon_index, x, y)
  86.     end
  87.   end
  88. end
  89. #------------------------------------------------------------------------------
  90. class Scene_Map
  91.   alias hud_start start
  92.   alias hud_update update
  93.   alias hud_terminate terminate
  94.   def start
  95.     super
  96.     @bg = Sprite.new
  97.     @bg.bitmap = Cache.system(CrissaegrimHud::Background)
  98.     @bg.x = 0
  99.     @bg.y = 316
  100.     @hud = Window_CrissaegrimHud.new
  101.     @hud.x = 0
  102.     @hud.y = 316
  103.     hud_properties
  104.     hud_start
  105.   end
  106.   def update
  107.     super
  108.     #@bg.update
  109.     @hud.update
  110.     hud_properties
  111.     hud_update
  112.   end
  113.   def hud_properties
  114.     if (CrissaegrimHud::OnOff_Hud_Switch == 0 or $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true) and @hud.visible == false
  115.        @hud.visible = true
  116.        @bg.visible = true
  117.      elsif @hud.visible != true
  118.        @hud.visible = false
  119.        @bg.visible = false
  120.      end
  121.    end
  122.   def terminate
  123.     super
  124.     @bg.dispose
  125.     @hud.dispose
  126.     hud_terminate
  127.   end
  128. end
复制代码

作者: 偶尔杀人越货    时间: 2008-6-27 19:54
或许外国人的机器全4核的吧(汗,怎么可能...)HUD就最后的刷新部分简直在吃cpu
作者: yangff    时间: 2008-6-27 19:57
以下引用偶尔杀人越货于2008-6-27 11:54:49的发言:

或许外国人的机器全4核的吧(汗,怎么可能...)HUD就最后的刷新部分简直在吃cpu

不是4核
我怀疑8核+DDR8已经走入国外寻常百姓家
作者: 偶尔杀人越货    时间: 2008-6-27 19:59
现在唯一的问题就是外柜了,征求高手{/qiang}{/qiang}

作者: yangff    时间: 2008-6-27 20:07
以下引用偶尔杀人越货于2008-6-27 11:59:31的发言:

现在唯一的问题就是外柜了,征求高手

HUD?
作者: 偶尔杀人越货    时间: 2008-6-27 20:09
恩,对,原版的HUD是在太烂,和这么强大的系统放在一起有点可惜
作者: yangff    时间: 2008-6-27 20:33
我想知道HUD的右边的两格框是干什么的?
作者: yangff    时间: 2008-6-27 22:20
最后还是舍不得删除HUD
http://rpg.blue/upload_program/files/Project1_95004736.rar
作者: 偶尔杀人越货    时间: 2008-6-27 23:13
感觉原作需要简化一下刷新流程,我逻辑盲
作者: yangff    时间: 2008-6-27 23:22
以下引用偶尔杀人越货于2008-6-27 15:13:15的发言:

感觉原作需要简化一下刷新流程,我逻辑盲

还是卡?
已经够简化了
作者: yangff    时间: 2008-6-27 23:23
以下引用yangff于2008-6-27 15:22:15的发言:


以下引用偶尔杀人越货于2008-6-27 15:13:15的发言:

感觉原作需要简化一下刷新流程,我逻辑盲


还是卡?
已经够简化了


我发的有点问题厄

替换一下

  1. #==============================================================================
  2. # Window Hud
  3. #==============================================================================
  4. module CrissaegrimHud
  5.   
  6. # imagem de fundo da hud
  7. Background = "HUD_Background"

  8. # Switch que ativa / desativa a HUD
  9. # se for = 0, a Hud será mostrada na tela permanentemente
  10. OnOff_Hud_Switch = 0

  11. end
  12. #------------------------------------------------------------------------------
  13. class Window_CrissaegrimHud < Window_Base
  14.   def initialize
  15.     super(0,0,320,100)
  16.     self.opacity = 0
  17.     update
  18.   end
  19.   def update
  20. return if Crissaegrim_ABS::Distance_Weapons == nil
  21.     tp1 = Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5].to_i
  22.     tp2 = Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6].to_i
  23.     if (@hp != $game_party.members[0].hp or @mp != $game_party.members[0].mp) or (tp1 != @tp1 or tp2 != @tp2)
  24.       @tp2 = tp2
  25.       @tp1 = tp1
  26.       @hp = $game_party.members[0].hp
  27.       @mp = $game_party.members[0].mp
  28.       self.contents.font.size = 16
  29.       self.contents.clear
  30.       skill_count = 0
  31.       for button in Crissaegrim_ABS::Skill_Button.keys
  32.         next if button == nil
  33.         skill = $data_skills[Crissaegrim_ABS::Skill_Button[button]]
  34.         next if skill == nil
  35.         show_icon(skill, (28 * skill_count) + 155, 0)
  36.         skill_count += 1
  37.       end
  38.       item_count = 0
  39.       for btn in Crissaegrim_ABS::Item_Button.keys
  40.         next if btn == nil
  41.         item = $data_items[Crissaegrim_ABS::Item_Button[btn]]
  42.         next if item == nil
  43.         show_icon(item, (28 * item_count) + 155, 40)
  44.         item_count += 1
  45.       end
  46.       actor = $game_party.members[0]
  47.       draw_actor_hp(actor, 0, -4, 96)
  48.       draw_actor_mp(actor, 0, 20, 96)
  49.       draw_actor_level(actor, 0, 44)
  50.       show_state(actor, 115, 0)
  51.       if Crissaegrim_ABS::Distance_Weapons.has_key?($game_party.members[0].weapon_id)
  52.         if Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5].to_i > 0
  53.           show_icon($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]], 260, 0)
  54.           self.contents.font.size = 18
  55.           self.contents.font.color = text_color(15)
  56.           self.contents.draw_text(260, 8, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]]),1)
  57.           self.contents.font.size = 16
  58.           self.contents.font.color = text_color(0)
  59.           self.contents.draw_text(260, 8, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][5]]),1)
  60.         end
  61.         if Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6].to_i > 0
  62.           show_icon($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]], 260, 40)
  63.           self.contents.font.size = 18
  64.           self.contents.font.color = text_color(15)
  65.           self.contents.draw_text(260, 48, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]]),1)
  66.           self.contents.font.size = 16
  67.           self.contents.font.color = text_color(0)
  68.           self.contents.draw_text(260, 48, 24, 28, $game_party.item_number($data_items[Crissaegrim_ABS::Distance_Weapons[$game_party.members[0].weapon_id][6]]),1)
  69.         end
  70.       end
  71.     end
  72.   end
  73.   def show_state(actor, x, y)
  74.     count = 0
  75.     for state in actor.states
  76.       draw_icon(state.icon_index, x, y + 24 * count)
  77.       count += 1
  78.       break if (24 * count > 76)
  79.     end
  80.   end
  81.   def show_icon(item, x, y)
  82.     if item != nil
  83.       draw_icon(item.icon_index, x, y)
  84.     end
  85.   end
  86. end

  87. class Scene_Map
  88.   alias hud_start start
  89.   alias hud_update update
  90.   alias hud_terminate terminate
  91.   def start
  92.     super
  93.     @bg = Sprite.new
  94.     @bg.bitmap = Cache.system(CrissaegrimHud::Background)
  95.     @bg.x = 0
  96.     @bg.y = 316
  97.     @hud = Window_CrissaegrimHud.new
  98.     @hud.x = 0
  99.     @hud.y = 316
  100.     hud_properties
  101.     hud_start
  102.   end
  103.   def update
  104.     super
  105.     #@bg.update
  106.     if @hud.visible != false
  107.       @hud.update
  108.     end
  109.     hud_properties
  110.     hud_update
  111.   end
  112.   def hud_properties
  113.     if (CrissaegrimHud::OnOff_Hud_Switch == 0 or $game_switches[CrissaegrimHud::OnOff_Hud_Switch] == true)
  114.       if @hud.visible == false
  115.         @hud.update
  116.         @hud.visible = true
  117.         @bg.visible = true
  118.       end
  119.     elsif @hud.visible != false
  120.        @hud.visible = false
  121.        @bg.visible = false
  122.      end
  123.    end
  124.   def terminate
  125.     super
  126.     @bg.dispose
  127.     @bg = nil
  128.     @hud.dispose
  129.     @hud = nil
  130.     hud_terminate
  131.   end
  132. end
复制代码


作者: 偶尔杀人越货    时间: 2008-6-27 23:56
很不幸的,出错了...

作者: yangff    时间: 2008-6-28 01:55
http://rpg.blue/upload_program/files/Project1_95015982.rar
作者: yangff    时间: 2008-6-28 06:23
anti lag有时候会造成死机哦 {/dy}
作者: 偶尔杀人越货    时间: 2008-6-28 06:28
以下引用yangff于2008-6-27 22:23:00的发言:

anti lag有时候会造成死机哦  

如果遇见了司机问题请短信我,3q
单纯的调用win32应该不会吧...不知道vista上面是否可以用
ps:Windows xp大叔的话有时是可以不信的...
作者: yangff    时间: 2008-6-28 17:42
以下引用偶尔杀人越货于2008-6-27 22:28:08的发言:


以下引用yangff于2008-6-27 22:23:00的发言:

anti lag有时候会造成死机哦  


如果遇见了司机问题请短信我,3q
单纯的调用win32应该不会吧...不知道vista上面是否可以用
ps:Windows xp大叔的话有时是可以不信的...


[本贴由作者于 2008-6-27 22:28:34 最后编辑]

我就是vista的用户
作者: 偶尔杀人越货    时间: 2008-6-28 17:48
因为调用了win32~估计64位系统(ms大陆很少人用)可能会出问题,不过这已经和不能运行vx差不多级别的问题了~
                                                残念。
作者: yangff    时间: 2008-6-28 21:33
以下引用偶尔杀人越货于2008-6-28 9:48:21的发言:

因为调用了win32~估计64位系统(ms大陆很少人用)可能会出问题,不过这已经和不能运行vx差不多级别的问题了~
                                               残念。

我就是32位vista阿
照样有问题


大家留意一下,被攻击的时候呼出菜单
再回到底图
会死机马?
作者: 越前リョーマ    时间: 2008-6-28 22:04
话说上次和你说的血条系统……

http://rpg.blue/upload_program/f ... 血条_90877848.rar
在加上配色脚本:
  1. #==============================================================================
  2. # ■ Sprite
  3. #==============================================================================
  4. class Sprite
  5.   #--------------------------------------------------------------------------
  6.   # ● 血条配色
  7.   #--------------------------------------------------------------------------
  8.   ALPHA      = 192                              # 不透明度
  9.   FONT_COLOR = Color.new(64,  64, 240, ALPHA)  # hp 数值
  10.   B_COLOR    = Color.new(255, 255, 255, ALPHA)  # 血条外框
  11.   BG_COLOR   = Color.new(  0,   0,   0, ALPHA)  # 血条底
  12.   HP_COLOR_1 = Color.new(255, 128,  64, ALPHA)  # 血条渐变色 1
  13.   HP_COLOR_2 = Color.new(240, 192,  64, ALPHA)  # 血条渐变色 2
  14.   #--------------------------------------------------------------------------
  15.   # ● 画血条
  16.   #--------------------------------------------------------------------------
  17.   def draw_character_hp(character, x, y, width)
  18.     draw_character_hp_gauge(character, x, y, width)
  19.     self.bitmap.font.color = FONT_COLOR
  20.     self.bitmap.font.size = 12
  21.     self.bitmap.draw_text(0,0,32,20,character.hp,2)
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 画血条的背景条
  25.   #--------------------------------------------------------------------------
  26.   def draw_character_hp_gauge(character, x, y, width)
  27.     gw = width * character.hp / character.maxhp
  28.     self.bitmap.fill_rect(x, y+16, width+2, 5, B_COLOR)
  29.     self.bitmap.fill_rect(x+1, y+17, width, 3, BG_COLOR)
  30.     self.bitmap.gradient_fill_rect(x+1, y+17, gw, 3, HP_COLOR_1, HP_COLOR_2)
  31.   end
  32. end

  33. #==============================================================================
  34. # ■ Sprite_Character
  35. #==============================================================================
  36. class Sprite_Character < Sprite_Base
  37.   #--------------------------------------------------------------------------
  38.   # ● 定义实例变量
  39.   #--------------------------------------------------------------------------
  40.   attr_accessor :character
  41.   #--------------------------------------------------------------------------
  42.   # ● 释放
  43.   #--------------------------------------------------------------------------
  44.   def dispose
  45.     dispose_balloon
  46.     super
  47.     if @hp_sprite != nil
  48.       @hp_sprite.bitmap.dispose
  49.       @hp_sprite.dispose
  50.       @hp_sprite = nil
  51.     end
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 更新画面
  55.   #--------------------------------------------------------------------------
  56.   alias old_update update
  57.   def update
  58.     old_update
  59.     if @hp_sprite == nil
  60.       unless @character.is_a?(Game_Vehicle) or @character.maxhp <= 0
  61.         hp_sprite_set(@character)
  62.       end
  63.     end
  64.     unless @character.is_a?(Game_Vehicle)
  65.       hp_update if @character.update_hp
  66.     end
  67.     hp_follow
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 显示 hp
  71.   #--------------------------------------------------------------------------
  72.   def hp_sprite_set(character)
  73.     @hp_sprite = Sprite.new
  74.     @hp_sprite.bitmap = Bitmap.new(32, 24)
  75.     @hp_sprite.draw_character_hp(character, 0, 0, width = 30)
  76.     @hp_sprite.x = self.x - @hp_sprite.width/2
  77.     @hp_sprite.y = self.y - self.height - 21
  78.     @hp_sprite.z = self.z + 1
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 让 hp 跟随事件或角色
  82.   #--------------------------------------------------------------------------
  83.   def hp_follow
  84.     return if @hp_sprite == nil
  85.     return if @character.is_a?(Game_Vehicle)
  86.     @hp_sprite.x = self.x - @hp_sprite.width/2
  87.     @hp_sprite.y = self.y - self.height - 21
  88.     @hp_sprite.z = self.z + 1
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● 刷新 hp
  92.   #--------------------------------------------------------------------------
  93.   def hp_update
  94.     return if @hp_sprite == nil
  95.     return if @character.is_a?(Game_Vehicle)
  96.     @character.update_hp = false
  97.     @hp_sprite.bitmap.clear
  98.     @hp_sprite.draw_character_hp(@character, 0, 0, width = 30)
  99.   end
  100. end

  101. #==============================================================================
  102. # ■ Game_Event
  103. #==============================================================================
  104. class Game_Event < Game_Character
  105.   #--------------------------------------------------------------------------
  106.   # ● 定义实例变量
  107.   #--------------------------------------------------------------------------
  108.   attr_reader   :hp
  109.   attr_reader   :maxhp
  110.   attr_accessor  :update_hp
  111.   #--------------------------------------------------------------------------
  112.   # ● 初始化对像
  113.   #     map_id : 地图 ID
  114.   #     event  : 事件 (RPG::Event)
  115.   #--------------------------------------------------------------------------
  116.   alias ini initialize
  117.   def initialize(map_id, event)
  118.     @maxhp = @hp = 0
  119.     @update_hp = false
  120.     ini(map_id, event)
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 更改 hp
  124.   #     hp : 事件自身的hp
  125.   #--------------------------------------------------------------------------
  126.   def hp=(hp)
  127.     @hp = hp
  128.     @hp = 0 if @hp < 0
  129.     @update_hp = true
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 初始化 maxhp
  133.   #     maxhp : 事件自身的最大 hp
  134.   #--------------------------------------------------------------------------
  135.   def maxhp=(maxhp)
  136.     @maxhp = @hp = maxhp
  137.   end
  138. end

  139. #==============================================================================
  140. # ■ Game_Player
  141. #==============================================================================
  142. class Game_Player < Game_Character
  143.   #--------------------------------------------------------------------------
  144.   # ● 定义实例变量
  145.   #--------------------------------------------------------------------------
  146.   attr_reader    :hp
  147.   attr_reader    :maxhp
  148.   attr_accessor  :update_hp
  149.   #--------------------------------------------------------------------------
  150.   # ● 初始化对象
  151.   #--------------------------------------------------------------------------
  152.   alias ini initialize
  153.   def initialize
  154.     @maxhp = @hp = 0
  155.     @update_hp = false
  156.     ini
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● 刷新
  160.   #--------------------------------------------------------------------------
  161.   def refresh
  162.     if $game_party.members.size == 0
  163.       @character_name = ""
  164.       @character_index = 0
  165.     else
  166.       actor = $game_party.members[0]   # 获得首名角色
  167.       @character_name = actor.character_name
  168.       @character_index = actor.character_index
  169.       #获取角色 hp 和 maxhp
  170.       if @hp != actor.hp or @maxhp != actor.maxhp
  171.         @hp = actor.hp
  172.         @maxhp = actor.maxhp
  173.         @update_hp = true
  174.       end
  175.     end
  176.   end
  177. end

  178. #==============================================================================
  179. # ■ Game_Interpreter
  180. #==============================================================================
  181. class Game_Interpreter
  182.   #--------------------------------------------------------------------------
  183.   # ● 设置正在启动的事件
  184.   #--------------------------------------------------------------------------
  185.   alias old_setup_starting_event setup_starting_event
  186.   def setup_starting_event
  187.     $game_player.refresh
  188.     old_setup_starting_event
  189.   end
  190. end
复制代码

作者: 偶尔杀人越货    时间: 2008-7-3 20:07
翻译和纠错已经完成,现在可以发布了~!
作者: 邪神    时间: 2008-7-18 02:09
如何更改本游戏默认字体????????????????
作者: win21123    时间: 2008-9-28 17:04

作者: swabwind    时间: 2008-9-29 05:13
终于完成了么!?这是何其强大的存在...{/fd}{/qiang}
作者: yooucs    时间: 2008-10-8 00:56
范例是BUG解决版本么?

作者: MXF953798791    时间: 2008-10-11 19:02
画质好差
作者: 虫子    时间: 2008-10-14 05:15
以下引用MXF953798791于2008-10-11 11:02:18的发言:

画质好差

差吗,我到觉得的不错呀,
作者: 偶尔杀人越货    时间: 2008-10-14 21:29
早期翻譯的腦殘系統,范例是BUG解決版本~放心下吧
(是誰挖的墳?)
作者: v2sam    时间: 2008-10-14 23:05
{/fd} 攻击键真的是A? 被耍了?我MS 只有S起作用.
作者: 涂鸦boy    时间: 2008-10-15 02:50
为什么是悬赏贴?
作者: 痒死我了    时间: 2008-10-19 08:05
晕!

这个外国佬真牛
作者: win21123    时间: 2009-3-8 22:20


怎辦????????????
作者: 偶尔探花不雅    时间: 2009-3-18 06:24
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1