Project1

标题: 鸡肋脚本:个性化装备用语 & 战斗指令 [打印本页]

作者: well    时间: 2009-7-22 07:29
标题: 鸡肋脚本:个性化装备用语 & 战斗指令
本帖最后由 well 于 2009-8-15 05:27 编辑

我的设定里,除了剑士和骑士,都是不用盾的。那么其他职业浪费一个装备槽简直不可容忍。
如果改成其他设定比如“右手”“鞋子”之类的。盾又没地方摆了。
可以用装备扩展脚本。但懒惰的我觉得默认的四个槽已经很多了。
所以写了这个。装备界面切换人物的时候,可以看到效果。
唔……实际上我是直接改的Window_EquipRight ,而且只改了$data_system.words.armor1
巴巴的发出来只因为——到现在我还没有发过新帖呢!
冲突:有个不算冲突的。如果使用如简单物品分类一类根据装备类型分类的脚本。效果会比较囧
我自己是把分类脚本改掉了。在数据库排好序后按id分类。
另,状态界面没有改。所以现在的进度算是一半吧。手头没有rm,只能明天补了。
实在太简单。估计随便哪位高手顺手就帮我改了。{:4_83:}
[line]1[/line]
更新状态界面,增加战斗指令。
多谢后知后觉的提示,总算是实现自己的想法了。我当初主要卡在怎么样才能按职业ID分类上
整个看下来。无端的就是一股觉得很多余的感觉
自己测试没什么问题。不知会不会拖慢了运行效率。
就这样吧,也不会有什么0.7了。

  1. #============================================================================
  2. # 个性化装备用语 & 战斗指令 0.6(?)        by well
  3. # 用法:修改awords1~4中的项目,对应职业ID。战斗指令同理,修改bwords1~4。
  4. # 如果要使用系统用语。该项留空。
  5. # 范例仅修改第一种防具和“攻击”指令。毕竟通用项目还是很多的。
  6. # “防御”和“物品”的个性化……就是一个笑话。只是希望留下足够的自由度。
  7. # 所以……果然……还是……非常鸡肋啊。
  8. #============================================================================

  9. class Window_EquipRight < Window_Selectable
  10.   def refresh
  11.     self.contents.clear
  12.     @data = []
  13.     @data.push($data_weapons[@actor.weapon_id])
  14.     @data.push($data_armors[@actor.armor1_id])
  15.     @data.push($data_armors[@actor.armor2_id])
  16.     @data.push($data_armors[@actor.armor3_id])
  17.     @data.push($data_armors[@actor.armor4_id])
  18.     @item_max = @data.size
  19.     awords1 = ["护符","饰物","","腰带","","","","",]
  20.     awords2 = ["","","","","","","","",]
  21.     awords3 = ["","","","","","","","",]
  22.     awords4 = ["","","","","","","","",]
  23.     self.contents.font.color = system_color
  24.     self.contents.draw_text(4, 32 * 0, 92, 32,
  25. $data_system.words.weapon)
  26.     if awords1[@actor.class_id-1] != ""
  27.       self.contents.draw_text(4, 32 * 1, 92, 32,
  28. awords1[@actor.class_id-1])
  29.     else
  30.       self.contents.draw_text(4, 32 * 1, 92, 32,
  31. $data_system.words.armor1)
  32.     end
  33.     if awords2[@actor.class_id-1] != ""
  34.       self.contents.draw_text(4, 32 * 2, 92, 32,
  35. awords2[@actor.class_id-1])
  36.     else
  37.       self.contents.draw_text(4, 32 * 2, 92, 32,
  38. $data_system.words.armor2)
  39.     end
  40.     if awords3[@actor.class_id-1] != ""
  41.       self.contents.draw_text(4, 32 * 3, 92, 32,
  42. awords3[@actor.class_id-1])
  43.     else
  44.       self.contents.draw_text(4, 32 * 3, 92, 32,
  45. $data_system.words.armor3)
  46.     end
  47.     if awords4[@actor.class_id-1] != ""
  48.       self.contents.draw_text(5, 32 * 4, 92, 32,
  49. awords4[@actor.class_id-1])
  50.     else
  51.       self.contents.draw_text(5, 32 * 4, 92, 32,
  52. $data_system.words.armor4)
  53.     end   
  54.     draw_item_name(@data[0], 92, 32 * 0)
  55.     draw_item_name(@data[1], 92, 32 * 1)
  56.     draw_item_name(@data[2], 92, 32 * 2)
  57.     draw_item_name(@data[3], 92, 32 * 3)
  58.     draw_item_name(@data[4], 92, 32 * 4)
  59.   end
  60. end
  61. #============================================================================
  62. # 基于默认状态窗口改的。和其他修改状态窗口的脚本冲突
  63. # 把91~114行复制到相应位置。改坐标,把相同的draw_text删掉就好
  64. #============================================================================
  65. class Window_Status < Window_Base
  66.   def refresh
  67.     self.contents.clear
  68.     draw_actor_graphic(@actor, 40, 112)
  69.     draw_actor_name(@actor, 4, 0)
  70.     draw_actor_class(@actor, 4 + 144, 0)
  71.     draw_actor_level(@actor, 96, 32)
  72.     draw_actor_state(@actor, 96, 64)
  73.     draw_actor_hp(@actor, 96, 112, 172)
  74.     draw_actor_sp(@actor, 96, 144, 172)
  75.     draw_actor_parameter(@actor, 96, 192, 0)
  76.     draw_actor_parameter(@actor, 96, 224, 1)
  77.     draw_actor_parameter(@actor, 96, 256, 2)
  78.     draw_actor_parameter(@actor, 96, 304, 3)
  79.     draw_actor_parameter(@actor, 96, 336, 4)
  80.     draw_actor_parameter(@actor, 96, 368, 5)
  81.     draw_actor_parameter(@actor, 96, 400, 6)
  82.     self.contents.font.color = system_color
  83.     self.contents.draw_text(320, 48, 80, 32, "EXP")
  84.     self.contents.draw_text(320, 80, 80, 32, "NEXT")
  85.     self.contents.font.color = normal_color
  86.     self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2)
  87.     self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2)
  88.     self.contents.font.color = system_color
  89.     self.contents.draw_text(320, 112, 96, 32, $data_system.words.weapon)
  90.     awords1 = ["护符","饰物","","腰带","","","","",]
  91.     awords2 = ["","","","","","","","",]
  92.     awords3 = ["","","","","","","","",]
  93.     awords4 = ["","","","","","","","",]
  94.     if awords1[@actor.class_id - 1] != ""
  95.       self.contents.draw_text(320, 176, 96, 32, awords1[@actor.class_id - 1])
  96.     else
  97.       self.contents.draw_text(320, 176, 96, 32, $data_system.words.armor1)
  98.     end
  99.     if awords2[@actor.class_id - 1] != ""
  100.       self.contents.draw_text(320, 240, 96, 32, awords2[@actor.class_id - 1])
  101.     else
  102.       self.contents.draw_text(320, 240, 96, 32, $data_system.words.armor2)
  103.     end
  104.     if awords3[@actor.class_id - 1] != ""
  105.       self.contents.draw_text(320, 304, 96, 32, awords3[@actor.class_id - 1])
  106.     else
  107.       self.contents.draw_text(320, 304, 96, 32, $data_system.words.armor3)
  108.     end
  109.     if awords4[@actor.class_id - 1] != ""
  110.       self.contents.draw_text(320, 368, 96, 32, awords4[@actor.class_id - 1])
  111.     else
  112.       self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor4)
  113.     end
  114.     draw_item_name($data_weapons[@actor.weapon_id], 320 + 24, 144)
  115.     draw_item_name($data_armors[@actor.armor1_id], 320 + 24, 208)
  116.     draw_item_name($data_armors[@actor.armor2_id], 320 + 24, 272)
  117.     draw_item_name($data_armors[@actor.armor3_id], 320 + 24, 336)
  118.     draw_item_name($data_armors[@actor.armor4_id], 320 + 24, 400)
  119.   end
  120. end

  121. #============================================================================
  122. # 战斗指令窗
  123. #============================================================================
  124. class Scene_Battle
  125.   def phase3_setup_command_window
  126.     # 同伴指令窗口无效化
  127.     @party_command_window.active = false
  128.       @party_command_window.visible = false
  129.     # 原角色指令窗口无效化
  130.     if @actor_command_window != nil
  131.       @actor_command_window.active = false
  132.       @actor_command_window.visible = false
  133.     end
  134.     # 生成角色指令窗口
  135.     bwords1 = ["出拳","棍击","","杖击","","","",""]
  136.     bwords2 = ["","","","","","","",""]
  137.     bwords3 = ["","","","","","","",""]
  138.     bwords4 = ["","","","","","","",""]
  139.     if bwords1[@active_battler.class_id - 1] != ""
  140.       s1 = bwords1[@active_battler.class_id- 1]
  141.     else
  142.       s1 = $data_system.words.attack
  143.     end
  144.     if bwords2[@active_battler.class_id - 1] != ""
  145.       s2 = bwords2[@active_battler.class_id- 1]
  146.     else
  147.       s2 = $data_system.words.skill
  148.     end
  149.     if bwords3[@active_battler.class_id - 1] != ""
  150.       s3 = bwords3[@active_battler.class_id- 1]
  151.     else
  152.       s3 = $data_system.words.guard
  153.     end
  154.     if bwords3[@active_battler.class_id - 1] != ""
  155.       s4 = bwords4[@active_battler.class_id- 1]
  156.     else
  157.       s4 = $data_system.words.item
  158.     end   
  159.     if @active_battler.index != @old_actor
  160.       @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
  161.     end   
  162.     # 角色指令窗口有效化
  163.     @actor_command_window.active = true
  164.     @actor_command_window.visible = true
  165.     @old_actor = @active_battler.index
  166.     # 设置角色指令窗口的位置
  167.     @actor_command_window.x = @active_battler.index * 160
  168.     @actor_command_window.y = 160
  169.     # 设置索引为 0
  170.     @actor_command_window.index = 0
  171.   end
  172. end
复制代码

作者: 后知后觉    时间: 2009-7-22 10:01
应该不算是鸡肋

会有人感兴趣的~

战斗指令窗口可以在这个方法里做手脚
  #--------------------------------------------------------------------------
  # ● 设置角色指令窗口
  #--------------------------------------------------------------------------
  def phase3_setup_command_window
    # 同伴指令窗口无效化
    @party_command_window.active = false
    @party_command_window.visible = false
    # 角色指令窗口无效化
    @actor_command_window.active = true
    @actor_command_window.visible = true
    # 设置角色指令窗口的位置
    @actor_command_window.x = @active_battler.index * 160
    # 设置索引为 0
    @actor_command_window.index = 0
  end
作者: IamI    时间: 2009-7-22 10:03
先开放Window_Command的Commands吧(XP)
作者: 后知后觉    时间: 2009-7-22 10:48
也可以先释放掉
再重新生成
还可以做到,一些角色有“逃跑”按钮 一些角色没有这个按钮
又或者是别的什么个性的按钮
作者: DeathKing    时间: 2009-7-22 10:57
这个可以优化一下游戏的细节,注重细节的人会用到
作者: 柳飛鷹    时间: 2009-7-22 15:03
问下 可以让20号角色以后的角色的装备类型全部改变么?(附加 可不可设置全部装备位都不同)
作者: well    时间: 2009-8-15 05:32
问下 可以让20号角色以后的角色的装备类型全部改变么?(附加 可不可设置全部装备位都不同)
柳飛鷹 发表于 2009-7-22 15:03

回答是,可以。给20号以后的角色分别设置不同的职业就ok。另外默认就是全部装备位都不同,可是你得把那些“”都填上才看得出来。
啊,这就是一个自找麻烦的脚本。




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