View difference between Paste ID: fudV3X83 and zLTxX0iH
SHOW: | | - or go back to the newest paste.
1
#===============================================================================
2-
# ICF-Soft Enemy Selector for XP Version 1.0
2+
# ICF-Soft Enemy Selector for VX Version 1.0
3
#-------------------------------------------------------------------------------
4
# Scripted by ICF-Soft [http://icfsoft.blogspot.com.es/]
5
# Commercial use avaiable. Credit to ICF-Soft
6
#===============================================================================
7
# This header must be included with script, in english or spanish.
8
#===============================================================================
9
10
#===============================================================================
11
module ICFSOFT
12
#===============================================================================
13
14
  #Configuration
15
16
  #Game Variable where store selector.
17
  $EnemyVar = 40
18
19
  #Conversion type:
20
  #   true: change enemy if equal to selector. For diversity purposes.
21
  #   false: change enemy according to the highest one that is lower than
22
  #        selector. Usefull for difficulty purposes.
23
  $EnemyVarAbsolute = false
24
  
25
  #Selector table format
26
  #
27
  #   A hash with key numbers that stores arrays.
28
  #   Those arrays store 2 element arrays.
29
  #   First element is the selector and second is id from enemy that sustitutes
30
  #   actual enemy. Selectors must be in ascending order.
31
  #
32
  #   You can init as an empty hash $EnemySelector = {}
33
  #   Or give initial values like this
34
35
  $EnemySelector = {1=>[[1,2],[2,3],[3,4]], 2=>[[2,3],[3,4]], 3=>[[3,4]]}
36
37
  #   You can add more keys like these
38
39
  $EnemySelector[5]  = [[3,6]]
40
  $EnemySelector[7]  = [[1,8],[2,9],[3,10]]
41
  $EnemySelector[11] = [[1,12],[2,13],[3,14]]
42
43
44
  #This way enemies are config to change according to selector
45
  #Non configured enemies will have no effect
46
47
#-------------------------------------------------------------------------------
48
  def self.EnemySelector(enemyid)
49
    conver = enemyid
50
    ary = $EnemySelector[conver]
51
    x = -1
52
    if $EnemySelector[conver] == nil
53
      return conver
54
    end
55
    if $EnemyVarAbsolute
56
      for i in 0..(ary.length - 1)
57
        if ary[i][0] == $game_variables[$EnemyVar]
58
          x = i
59
          break
60
        end
61
      end
62
    else
63
      i = ary.length - 1
64
      while (i >= 0) do
65
        if ary[i][0] <= $game_variables[$EnemyVar]
66
          x = i
67
          break
68
        end
69
        i -= 1
70
      end
71
    end
72
    if x >= 0
73
      conver = ary[x][1]
74
    end
75
    return conver
76
  end
77
78
end
79
#===============================================================================
80
#===============================================================================
81
class Game_Enemy < Game_Battler
82-
  def initialize(troop_id, member_index)
82+
  def initialize(index, enemy_id)
83
    super()
84-
    @troop_id = troop_id
84+
    @index = index
85-
    @member_index = member_index
85+
    @enemy_id = ICFSOFT::EnemySelector(enemy_id)
86-
    troop = $data_troops[@troop_id]
86+
87-
    @enemy_id = ICFSOFT::EnemySelector(troop.members[@member_index].enemy_id)
87+
    @original_name = enemy.name
88
    @letter = ''
89
    @plural = false
90
    @screen_x = 0
91
    @screen_y = 0
92-
    @sp = maxsp
92+
93-
    @hidden = troop.members[@member_index].hidden
93+
94-
    @immortal = troop.members[@member_index].immortal
94+
95
    @mp = maxmp
96
  end
97
end