~Site
¤Accueil
¤Forum
¤Admin

~Base de scripts
¤Scripts de base
¤Scripts Menu
¤Scripts Combat
¤Scripts Système
¤Scripts Modifiés

Scripts de Base
Game_Temp
Game_System
Game_Switches
Game_Variables
Game_SelfSwitches
Game_Screen
Game_Picture
Game_Battler 1
Game_Battler 2
Game_Battler 3
Game_BattleAction
Game_Actor
Game_Enemy
Game_Actors
Game_Party
Game_Troop
Game_Map
Game_CommonEvent
Game_Character 1
Game_Character 2
Game_Character 3
Game_Event
Game_Player
Sprite_Character
Sprite_Battler
Sprite_Picture
Sprite_Timer
Spriteset_Map
Spriteset_Battle
Window_Base
Window_Selectable
Window_Command
Window_Help
Window_Gold
Window_PlayTime
Window_Steps
Window_MenuStatus
Window_Item
Window_Skill
Window_SkillStatus
Window_Target
Window_EquipLeft
Window_EquipRight
Window_EquipItem
Window_Status
Window_SaveFile
Window_ShopCommand
Window_ShopBuy
Window_ShopSell
Window_ShopNumber
Window_ShopStatus
Window_NameEdit
Window_NameInput
Window_InputNumber
Window_Message
Window_PartyCommand
Window_BattleStatus
Window_BattleResult
Window_DebugLeft
Window_DebugRight
Window_Dataset
Arrow_Base
Arrow_Enemy
Arrow_Actor
Interpreter 1
Interpreter 2
Interpreter 3
Interpreter 4
Interpreter 5
Interpreter 6
Interpreter 7
Scene_Title
Scene_Map
Scene_Menu
Scene_Item
Scene_Skill
Scene_Equip
Scene_Status
Scene_File
Scene_Save
Scene_Load
Scene_End
Scene_Battle 1
Scene_Battle 2
Scene_Battle 3
Scene_Battle 4
Scene_Shop
Scene_Name
Scene_Gameover
Scene_Debug
Main


Game_Enemy ::: posté le 2006-02-16 @ 08:48:00
Auteur: Yukihiro matsumoto

#============================================
# ¡ö Game_Enemy
#--------------------------------------------
# ¡¡¥¨¥Í¥ß©`¤ò’Q¤¦¥¯¥é¥¹¤Ç¤¹¡£¤³¤Î¥¯¥é¥¹¤Ï Game_Troop ¥¯¥é¥¹ ($game_troop) ¤Î
# ÄÚ²¿¤ÇʹÓ䵤ì¤Þ¤¹¡£
#============================================

class Game_Enemy < Game_Battler
#------------------------------------------
# ¡ñ ¥ª¥Ö¥¸¥§¥¯¥È³õÆÚ»¯
# troop_id : ¥È¥ë©`¥× ID
# member_index : ¥È¥ë©`¥×¥á¥ó¥Ð©`¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹
#------------------------------------------
def initialize(troop_id, member_index)
super()
@troop_id = troop_id
@member_index = member_index
troop = $data_troops[@troop_id]
@enemy_id = troop.members[@member_index].enemy_id
enemy = $data_enemies[@enemy_id]
@battler_name = enemy.battler_name
@battler_hue = enemy.battler_hue
@hp = maxhp
@sp = maxsp
@hidden = troop.members[@member_index].hidden
@immortal = troop.members[@member_index].immortal
end
#------------------------------------------
# ¡ñ ¥¨¥Í¥ß©` ID È¡µÃ
#------------------------------------------
def id
return @enemy_id
end
#------------------------------------------
# ¡ñ ¥¤¥ó¥Ç¥Ã¥¯¥¹È¡µÃ
#------------------------------------------
def index
return @member_index
end
#------------------------------------------
# ¡ñ ÃûÇ°¤ÎÈ¡µÃ
#------------------------------------------
def name
return $data_enemies[@enemy_id].name
end
#------------------------------------------
# ¡ñ »ù±¾ MaxHP ¤ÎÈ¡µÃ
#------------------------------------------
def base_maxhp
return $data_enemies[@enemy_id].maxhp
end
#------------------------------------------
# ¡ñ »ù±¾ MaxSP ¤ÎÈ¡µÃ
#------------------------------------------
def base_maxsp
return $data_enemies[@enemy_id].maxsp
end
#------------------------------------------
# ¡ñ »ù±¾ÍóÁ¦¤ÎÈ¡µÃ
#------------------------------------------
def base_str
return $data_enemies[@enemy_id].str
end
#------------------------------------------
# ¡ñ »ù±¾Æ÷Ó䵤ÎÈ¡µÃ
#------------------------------------------
def base_dex
return $data_enemies[@enemy_id].dex
end
#------------------------------------------
# ¡ñ »ù±¾ËØÔ礵¤ÎÈ¡µÃ
#------------------------------------------
def base_agi
return $data_enemies[@enemy_id].agi
end
#------------------------------------------
# ¡ñ »ù±¾Ä§Á¦¤ÎÈ¡µÃ
#------------------------------------------
def base_int
return $data_enemies[@enemy_id].int
end
#------------------------------------------
# ¡ñ »ù±¾¹¥“ÄÁ¦¤ÎÈ¡µÃ
#------------------------------------------
def base_atk
return $data_enemies[@enemy_id].atk
end
#------------------------------------------
# ¡ñ »ù±¾ÎïÀí·ÀÓù¤ÎÈ¡µÃ
#------------------------------------------
def base_pdef
return $data_enemies[@enemy_id].pdef
end
#------------------------------------------
# ¡ñ »ù±¾Ä§·¨·ÀÓù¤ÎÈ¡µÃ
#------------------------------------------
def base_mdef
return $data_enemies[@enemy_id].mdef
end
#------------------------------------------
# ¡ñ »ù±¾»Ø±ÜÐÞÕý¤ÎÈ¡µÃ
#------------------------------------------
def base_eva
return $data_enemies[@enemy_id].eva
end
#------------------------------------------
# ¡ñ ͨ³£¹¥“Ä ¹¥“Ä‚È¥¢¥Ë¥á©`¥·¥ç¥ó ID ¤ÎÈ¡µÃ
#------------------------------------------
def animation1_id
return $data_enemies[@enemy_id].animation1_id
end
#------------------------------------------
# ¡ñ ͨ³£¹¥“Ä ŒÏó‚È¥¢¥Ë¥á©`¥·¥ç¥ó ID ¤ÎÈ¡µÃ
#------------------------------------------
def animation2_id
return $data_enemies[@enemy_id].animation2_id
end
#------------------------------------------
# ¡ñ ÊôÐÔÑaÕý‚Ž¤ÎÈ¡µÃ
# element_id : ÊôÐÔ ID
#------------------------------------------
def element_rate(element_id)
# ÊôÐÔÓЄ¿¶È¤ËŒê¤¹¤ëÊý‚Ž¤òÈ¡µÃ
table = [0,200,150,100,50,0,-100]
result = table[$data_enemies[@enemy_id].element_ranks[element_id]]
# ¥¹¥Æ©`¥È¤Ç¤³¤ÎÊôÐÔ¤¬·ÀÓù¤µ¤ì¤Æ¤¤¤ëˆöºÏ¤Ï°ëœp
for i in @states
if $data_states[i].guard_element_set.include?(element_id)
result /= 2
end
end
# ¥á¥½¥Ã¥É½KÁË
return result
end
#------------------------------------------
# ¡ñ ¥¹¥Æ©`¥ÈÓЄ¿¶È¤ÎÈ¡µÃ
#------------------------------------------
def state_ranks
return $data_enemies[@enemy_id].state_ranks
end
#------------------------------------------
# ¡ñ ¥¹¥Æ©`¥È·ÀÓùÅж¨
# state_id : ¥¹¥Æ©`¥È ID
#------------------------------------------
def state_guard?(state_id)
return false
end
#------------------------------------------
# ¡ñ ͨ³£¹¥“ĤÎÊôÐÔÈ¡µÃ
#------------------------------------------
def element_set
return []
end
#------------------------------------------
# ¡ñ ͨ³£¹¥“ĤΥ¹¥Æ©`¥È‰ä»¯ (+) È¡µÃ
#------------------------------------------
def plus_state_set
return []
end
#------------------------------------------
# ¡ñ ͨ³£¹¥“ĤΥ¹¥Æ©`¥È‰ä»¯ (-) È¡µÃ
#------------------------------------------
def minus_state_set
return []
end
#------------------------------------------
# ¡ñ ¥¢¥¯¥·¥ç¥ó¤ÎÈ¡µÃ
#------------------------------------------
def actions
return $data_enemies[@enemy_id].actions
end
#------------------------------------------
# ¡ñ EXP ¤ÎÈ¡µÃ
#------------------------------------------
def exp
return $data_enemies[@enemy_id].exp
end
#------------------------------------------
# ¡ñ ¥´©`¥ë¥É¤ÎÈ¡µÃ
#------------------------------------------
def gold
return $data_enemies[@enemy_id].gold
end
#------------------------------------------
# ¡ñ ¥¢¥¤¥Æ¥à ID ¤ÎÈ¡µÃ
#------------------------------------------
def item_id
return $data_enemies[@enemy_id].item_id
end
#------------------------------------------
# ¡ñ ÎäÆ÷ ID ¤ÎÈ¡µÃ
#------------------------------------------
def weapon_id
return $data_enemies[@enemy_id].weapon_id
end
#------------------------------------------
# ¡ñ ·À¾ß ID ¤ÎÈ¡µÃ
#------------------------------------------
def armor_id
return $data_enemies[@enemy_id].armor_id
end
#------------------------------------------
# ¡ñ ¥È¥ì¥¸¥ã©`³ö¬FÂʤÎÈ¡µÃ
#------------------------------------------
def treasure_prob
return $data_enemies[@enemy_id].treasure_prob
end
#------------------------------------------
# ¡ñ ¥Ð¥È¥ë»­Ãæ X ×ù˜Ë¤ÎÈ¡µÃ
#------------------------------------------
def screen_x
return $data_troops[@troop_id].members[@member_index].x
end
#------------------------------------------
# ¡ñ ¥Ð¥È¥ë»­Ãæ Y ×ù˜Ë¤ÎÈ¡µÃ
#------------------------------------------
def screen_y
return $data_troops[@troop_id].members[@member_index].y
end
#------------------------------------------
# ¡ñ ¥Ð¥È¥ë»­Ãæ Z ×ù˜Ë¤ÎÈ¡µÃ
#------------------------------------------
def screen_z
return screen_y
end
#------------------------------------------
# ¡ñ ÌÓ¤²¤ë
#------------------------------------------
def escape
# ¥Ò¥É¥¥¥ó¥Õ¥é¥°¤ò¥»¥Ã¥È
@hidden = true
# ¥«¥ì¥ó¥È¥¢¥¯¥·¥ç¥ó¤ò¥¯¥ê¥¢
self.current_action.clear
end
#------------------------------------------
# ¡ñ ‰äÉí
# enemy_id : ‰äÉíÏȤΥ¨¥Í¥ß©` ID
#------------------------------------------
def transform(enemy_id)
# ¥¨¥Í¥ß©` ID ¤ò‰ä¸ü
@enemy_id = enemy_id
# ¥Ð¥È¥é©` ¥°¥é¥Õ¥£¥Ã¥¯¤ò‰ä¸ü
@battler_name = $data_enemies[@enemy_id].battler_name
@battler_hue = $data_enemies[@enemy_id].battler_hue
# ¥¢¥¯¥·¥ç¥óÔÙ×÷³É
make_action
end
#------------------------------------------
# ¡ñ ¥¢¥¯¥·¥ç¥ó×÷³É
#------------------------------------------
#Script am¨¦lior¨¦ par RPG Advocate

def make_action
self.current_action.clear
unless self.movable?
return
end
available_actions = []
rating_max = 0
for action in self.actions
n = $game_temp.battle_turn
a = action.condition_turn_a
b = action.condition_turn_b
if (b == 0 and n != a) or
(b > 0 and (n < 1 or n < a or n % b != a % b))
next
end
if self.hp * 100.0 / self.maxhp > action.condition_hp
next
end
if $game_party.max_level < action.condition_level
next
end
switch_id = action.condition_switch_id
if switch_id > 0 and $game_switches[switch_id] == false
next
end
if exclude_pointless_actions(action)
next
end
available_actions.push(action)
if action.rating > rating_max
rating_max = action.rating
end
end
ratings_total = 0
for action in available_actions
ratings_total += action.rating
end
if ratings_total > 0
choose_action = []
for action in available_actions
for j in 1..action.rating
choose_action.push(action)
end
end
enemy_action = choose_action[rand(choose_action.size - 1)]
self.current_action.kind = enemy_action.kind
self.current_action.basic = enemy_action.basic
self.current_action.skill_id = enemy_action.skill_id
self.current_action.decide_random_target_for_enemy
end
end
# --------------------------------
def exclude_pointless_actions(action)
if action.kind == 0
return false
end
if action.kind == 1
s = action.skill_id
if self.sp < $data_skills[s].sp_cost
return true
end
if $data_skills[s].common_event_id > 0
return false
end
if $data_skills[s].scope == 0 || $data_skills[s].scope == 1 ||
$data_skills[s].scope == 2
return false
end
if $data_skills[s].scope == 3 || $data_skills[s].scope == 4
if $game_troop != nil
fullhpflag = true
statusflag = true
for i in $game_troop.enemies
if i.hp < i.maxhp && i.exist?
fullhpflag = false
end
for j in $data_skills[s].plus_state_set
if not i.state?(j) && i.exist?
statusflag = false
end
end
for j in $data_skills[s].minus_state_set
if i.state?(j) && i.exist?
statusflag = false
end
end
end
end
if $data_skills[s].power == 0 && statusflag
return true
end
if $data_skills[s].power < 0 && statusflag && fullhpflag
return true
end
end
if $data_skills[s].scope == 5 || $data_skills[s].scope == 6
nonedeadflag = true
if $game_troop != nil
for i in $game_troop.enemies
if i.dead? and not i.hidden
nonedeadflag = false
end
end
end
if nonedeadflag
return true
end
end
if $data_skills[s].scope == 7
if $game_troop != nil
fullhpflag = true
statusflag = true
if self.hp < self.maxhp
fullhpflag = false
end
for j in $data_skills[s].plus_state_set
if not self.state?(j)
statusflag = false
end
end
for j in $data_skills[s].minus_state_set
if self.state?(j)
statusflag = false
end
end
end
if $data_skills[s].power == 0 && statusflag
return true
end
if $data_skills[s].power < 0 && statusflag && fullhpflag
return true
end
end
end
return false
end
end
Design By RaZ © Watery Build 2005