Project1

标题: 1000积分悬赏修改脚本 [打印本页]

作者: 凌冰    时间: 2008-4-16 19:17
标题: 1000积分悬赏修改脚本
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================


  4. #==============================================================================
  5. #冲突脚本:宠物脚本1.2版(66主页拿的宠物脚本应该都会冲突)
  6. #注意:以下一共有两个脚本,插入后就能达到战斗动画。
  7. #插入脚本后先进入游戏进行战斗一下,然后就会明白素材问题了
  8. #素材问题:脚本采用了战斗图自动选择行走图~~~
  9. #使用方法:插入main前即可
  10. #==============================================================================
  11. #==============================================================================
  12. # ■ Sprite_Battler
  13. #==============================================================================

  14. class Sprite_Battler < RPG::Sprite
  15. #--------------------------------------------------------------------------
  16. # ● instance变量
  17. #--------------------------------------------------------------------------
  18. attr_accessor :battler                  # butler
  19. #--------------------------------------------------------------------------
  20. # ● 初始化
  21. #     viewport : viewport
  22. #     battler  : butler(Game_Battler)
  23. #--------------------------------------------------------------------------
  24. def initialize(viewport, battler = nil)
  25.    super(viewport)
  26.    @battler = battler
  27.    @battler_visible = false
  28.    # 定义动画用变量
  29.    @hoko_wait = 0
  30.    @hoko_pattern = 0
  31. end
  32. #--------------------------------------------------------------------------
  33. # ● 解放
  34. #--------------------------------------------------------------------------
  35. def dispose
  36.    if self.bitmap != nil
  37.      self.bitmap.dispose
  38.    end
  39.    super
  40. end


  41. #--------------------------------------------------------------------------
  42. # ● 更新
  43. #--------------------------------------------------------------------------
  44. def update
  45.    super
  46.      # butler nil 的场合
  47.    if @battler == nil
  48.      self.bitmap = nil
  49.      loop_animation(nil)
  50.      return
  51.    end
  52.      # 如果文件名或者色相与现在的东西不同
  53.    if @battler.battler_name != @battler_name or
  54.       @battler.battler_hue != @battler_hue
  55.      # 取得位图设定
  56.      @battler_name = @battler.battler_name
  57.      @battler_hue = @battler.battler_hue

  58.      # battler→character变更
  59.      #self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  60.      self.bitmap = RPG::Cache.character(@battler_name, @battler_hue)
  61.      @width = bitmap.width / 4
  62.      @height = bitmap.height / 4
  63.      self.ox = @width / 1.3
  64.      self.oy = bitmap.height - 28
  65.      if [email protected]_a?(Game_Actor) && $game_switches[6]  #原来是空格一行,6号是4神兽
  66.        self.oy = 96
  67.      end                                                     #加到这
  68.      if @battler.is_a?(Game_Actor)
  69.      self.src_rect.set(@hoko_pattern * @width, 96, @width, @height)
  70.      else  
  71.      self.src_rect.set(@hoko_pattern * @width, 48, @width, @height)
  72.      end
  73.    
  74.      # 战斗不能再隐藏要是状态把不透明度做为 0
  75.      if @battler.dead? or @battler.hidden and @_collapse_duration > 0
  76.        self.opacity = 0
  77.      end
  78.    end
  79.    # 如果动画ID与现在的东西有差异
  80.    if @battler.damage == nil and
  81.       @battler.state_animation_id != @state_animation_id
  82.      @state_animation_id = @battler.state_animation_id
  83.      loop_animation($data_animations[@state_animation_id])
  84.    end
  85.    # 应该被表示actor的场合
  86.    if @battler.is_a?(Game_Actor) and @battler_visible
  87.      # 不是主要阶段的时候把不透明度稍稍下降
  88.      if $game_temp.battle_main_phase
  89.        self.opacity += 3 if self.opacity < 255
  90.      else
  91.        self.opacity -= 3 if self.opacity > 207
  92.      end
  93.    end
  94.    # 闪烁
  95.    if @battler.blink
  96.      @battler.screen_x += 5 if @battler.is_a?(Game_Actor) and @battler.screen_x < 200
  97.      blink_on
  98.    elsif [email protected]
  99.      @battler.screen_x -= 5 if @battler.is_a?(Game_Actor) and @battler.screen_x > 160
  100.      @battler.screen_x += 5 if @battler.is_a?(Game_Enemy) and @battler.screen_x < 480
  101.      blink_off
  102.    end
  103.    
  104.    if @battler.is_a?(Game_Actor)
  105.    if @battler.forward and @battler.screen_x < 200
  106.    @battler.screen_x += 5  
  107.    end
  108.    elsif @battler.forward and @battler.screen_x > 440
  109.    @battler.screen_x -= 5
  110.    end

  111.    if @battler.zero
  112.    @hoko_pattern = 0
  113.    @battler.zero = false
  114.    end   
  115.    
  116.    
  117.    # 不可见的场合
  118.    unless @battler_visible
  119.      # 出现
  120.      if not @battler.hidden and not @battler.dead? and
  121.         (@battler.damage == nil or @battler.damage_pop)
  122.        appear
  123.        @battler_visible = true
  124.      end
  125.    end
  126.    # 可见的场合
  127.    if @battler_visible
  128.      # 逃走
  129.      if @battler.hidden
  130.        $game_system.se_play($data_system.escape_se)
  131.        escape
  132.        @battler_visible = false
  133.      end
  134.      # 白闪光
  135.      if @battler.white_flash
  136.        whiten
  137.        @battler.white_flash = false
  138.      end
  139.      # 动画
  140.      if @battler.animation_id != 0
  141.        animation = $data_animations[@battler.animation_id]
  142.        animation(animation, @battler.animation_hit)
  143.        @battler.animation_id = 0
  144.      end
  145.      # 损坏
  146.      if @battler.damage_pop
  147.        damage(@battler.damage, @battler.critical)
  148.        @battler.damage = nil
  149.        @battler.critical = false
  150.        @battler.damage_pop = false
  151.      end
  152.      # korapusu
  153.      if @battler.damage == nil and @battler.dead?
  154.        if @battler.is_a?(Game_Enemy)
  155.          $game_system.se_play($data_system.enemy_collapse_se)
  156.        else
  157.          $game_system.se_play($data_system.actor_collapse_se)
  158.        end
  159.        collapse
  160.        @battler_visible = false
  161.      end
  162.      # 行走动画
  163.      hoko_anime()
  164.      # p @hoko_pattern
  165.    end
  166.    # 设定行走图位置的坐标

  167.    self.x = @battler.screen_x + 7
  168.    self.y = @battler.screen_y + 108
  169.    self.z = @battler.screen_z
  170. end
  171. #--------------------------------------------------------------------------
  172. # ● 行走动画(@hoko_pattern * @width, 0, @width, @height)能设置行走图方向
  173. #--------------------------------------------------------------------------
  174. def hoko_anime()
  175.    @hoko_wait += 1
  176.    if @hoko_wait > 6
  177.      @hoko_wait = 0
  178.      @hoko_pattern += 1
  179.      if @hoko_pattern > 3
  180.        @hoko_pattern = 0
  181.      end
  182.      if @battler.is_a?(Game_Actor)   #去掉了注释
  183.      self.src_rect.set(@hoko_pattern * @width, @battler.up_row, @width, @height)
  184.      else                    #去掉了注释
  185.      self.src_rect.set(@hoko_pattern * @width, @height, @width, @height) #这句和上面那句原来是一样的
  186.      end         #这句和上面那句,去掉了注释
  187.     # self.src_rect.set(@hoko_pattern * @width, 0, @width, @height)
  188.    end
  189. end
  190. end
  191. #==============================================================================
  192. #冲突脚本:宠物脚本1.2版(66主页拿的宠物脚本应该都会冲突)
  193. #注意:以下一共有两个脚本,插入后就能达到战斗动画。
  194. #插入脚本后先进入游戏进行战斗一下,然后就会明白素材问题了
  195. #素材问题:脚本采用了战斗图自动选择行走图~~~
  196. #==============================================================================
  197. #==============================================================================
  198. # ■ Game_BattleAction
  199. #------------------------------------------------------------------------------
  200. #是处理动作 (战斗中的行动)的级。这个级在 Game_Battler kura# su内部被使用。
  201. #==============================================================================

  202. class Game_BattleAction
  203. #--------------------------------------------------------------------------
  204. # ● instance变量
  205. #--------------------------------------------------------------------------
  206. attr_accessor :speed                    # 速度
  207. attr_accessor :kind                     # 类别(基本/ 技艺 / 物品)
  208. attr_accessor :basic                    # 基本(攻击/防御/逃跑)
  209. attr_accessor :skill_id                 # 特技ID
  210. attr_accessor :item_id                  # 物品ID
  211. attr_accessor :target_index             # 对象禁书目录
  212. attr_accessor :forcing                  # 强制标志
  213. #--------------------------------------------------------------------------
  214. # ● 初始化
  215. #--------------------------------------------------------------------------
  216. def initialize
  217.    clear
  218. end
  219. #--------------------------------------------------------------------------
  220. # ● clearness
  221. #--------------------------------------------------------------------------
  222. def clear
  223.    @speed = 10
  224.    @kind = 0
  225.    @basic = 3
  226.    @skill_id = 0
  227.    @item_id = 0
  228.    @target_index = -1
  229.    @forcing = false
  230. end
  231. #--------------------------------------------------------------------------
  232. # ● 判断
  233. #--------------------------------------------------------------------------
  234. def valid?
  235.    return (not (@kind == 0 and @basic == 3))
  236. end
  237. #--------------------------------------------------------------------------
  238. # ● 单体判断
  239. #--------------------------------------------------------------------------
  240. def for_one_friend?
  241.    # 类别特技,效果范围包含伙伴单体(HP 0 的)场合
  242.    if @kind == 1 and [3, 5].include?($data_skills[@skill_id].scope)
  243.      return true
  244.    end
  245.    # 类别以条款,效果范围包含伙伴单体(HP 0 的)场合
  246.    if @kind == 2 and [3, 5].include?($data_items[@item_id].scope)
  247.      return true
  248.    end
  249.    return false
  250. end
  251. #--------------------------------------------------------------------------
  252. # ● 单体用(HP 0)判断
  253. #--------------------------------------------------------------------------
  254. def for_one_friend_hp0?
  255.    # 特技效果范围单体(HP 0 )的场合
  256.    if @kind == 1 and [5].include?($data_skills[@skill_id].scope)
  257.      return true
  258.    end
  259.    # 物品效果范围单体(HP 0 )的场合
  260.    if @kind == 2 and [5].include?($data_items[@item_id].scope)
  261.      return true
  262.    end
  263.    return false
  264. end
  265. #--------------------------------------------------------------------------
  266. # ● random目标 (actor用)
  267. #--------------------------------------------------------------------------
  268. def decide_random_target_for_actor
  269.    # 效果范围分歧
  270.    if for_one_friend_hp0?
  271.      battler = $game_party.random_target_actor_hp0
  272.    elsif for_one_friend?
  273.      battler = $game_party.random_target_actor
  274.    else
  275.      battler = $game_troop.random_target_enemy
  276.    end
  277. # 如果对象存在取得禁书目录,
  278. # 对象不存在的情况clearness动作
  279.    if battler != nil
  280.      @target_index = battler.index
  281.    else
  282.      clear
  283.    end
  284. end
  285. #--------------------------------------------------------------------------
  286. # ● random目标 (enemy用)
  287. #--------------------------------------------------------------------------
  288. def decide_random_target_for_enemy
  289.    # 效果范围分歧
  290.    if for_one_friend_hp0?
  291.      battler = $game_troop.random_target_enemy_hp0
  292.    elsif for_one_friend?
  293.      battler = $game_troop.random_target_enemy
  294.    else
  295.      battler = $game_party.random_target_actor
  296.    end
  297.    # 如果对象存在取得禁书目录,
  298.    # 对象不存在的情况clearness动作
  299.    if battler != nil
  300.      @target_index = battler.index
  301.    else
  302.      clear
  303.    end
  304. end
  305. #--------------------------------------------------------------------------
  306. # ● 最后目标 (actor)
  307. #--------------------------------------------------------------------------
  308. def decide_last_target_for_actor
  309.    # 单体actor效果范围,(enemy)
  310.    if @target_index == -1
  311.      battler = nil
  312.    elsif for_one_friend?
  313.      battler = $game_party.actors[@target_index]
  314.    else
  315.      battler = $game_troop.enemies[@target_index]
  316.    end
  317.    # 对象不存在的情况clearness动作
  318.    if battler == nil or not battler.exist?
  319.      clear
  320.    end
  321. end
  322. #--------------------------------------------------------------------------
  323. # ● 最后目标 (enemy)
  324. #--------------------------------------------------------------------------
  325. def decide_last_target_for_enemy
  326.    # 单体enemy效果范围 (actor)
  327.    if @target_index == -1
  328.      battler = nil
  329.    elsif for_one_friend?
  330.      battler = $game_troop.enemies[@target_index]
  331.    else
  332.      battler = $game_party.actors[@target_index]
  333.    end
  334.    # 对象不存在的情况clearness动作
  335.    if battler == nil or not battler.exist?
  336.      clear
  337.    end
  338. end
  339. end

  340. #==============================================================================
  341. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  342. #==============================================================================
复制代码

脚本要求,通过修改screen_x,实现角色的位置变化
具体要求:
=====================================================================================
散开阵:阵形回复普通状态,无任何效果。
1
2
3
4
5

鹤翼阵;攻升10%防降10%,第三名武将攻升防降更多。
1
2
       3
4
5

冲方阵:攻防升10%,速度大减10%。
     1
2
     3
4
     5


白马阵:速度增10%,攻防不变
     1
   2
   3
4
5

鱼鳞阵:中间三人攻防升20%,两翼武将攻大减20%
1
   2
   3
   4
5


一字阵:攻和速度升10%,防减10%。
   1
   2
   3
   4
5


静寂阵:敌命中率减20%,攻防增20%,我方不能用回复计,只能用丹药。
1
2
   3
   4
   5

八卦阵:攻防增30%,只有生门会被打到,是最强的阵形。所谓生门,就是随机在我方5人中选一位,其他4位被敌人攻击均无效。
   1
2
3
4
   5

[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: sunzhaozhi    时间: 2008-4-17 00:41
居然没人能做。。。哎。。。
作者: 沉影不器    时间: 2008-4-17 01:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沉影不器    时间: 2008-4-17 01:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: sunzhaozhi    时间: 2008-4-17 14:43
顶上来,希望有更多的人看到。
作者: 超越极限    时间: 2008-4-17 17:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: sunzhaozhi    时间: 2008-4-18 14:26
为什么只有一个人来回答呢?是赏金少?还是会的人懒的来说。
作者: 沧海骷髅    时间: 2008-4-18 18:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: cmbljsw    时间: 2008-4-18 19:16
让偶想起了龙狼传……超级想玩……但是那样做会有脚本冲突嘛?
作者: sunzhaozhi    时间: 2008-4-19 04:08
哎,可怜啊。。。。。。。。。。。。。
作者: Iselia雪    时间: 2008-4-19 06:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沉影不器    时间: 2008-4-19 06:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌冰    时间: 2008-4-22 04:37
结帖




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