Advertisement
estriole

EST - CLONE ACTOR

Dec 9th, 2012
1,130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.95 KB | None | 0 0
  1. =begin
  2. EST - Clone Actor v1.1
  3.  
  4. version history
  5. v1.0 - 2012-12-10 - finished the script
  6. v1.1 - 2013-01-03 - fixed some bugs
  7.  
  8. add new actor based on existing one.
  9. could be used for pokemon games.
  10. ex: create actor 5 as pikachu.
  11. then use
  12. $game_party.add_custom_actor(5,30,"Pikachu A")
  13.  
  14. then you will get new actor
  15. who is like actor 5 (pikachu)
  16. will enter party at lv 30
  17. then named "Pikachu A"
  18.  
  19. all the feature of the base actor will be gained
  20. even the initial equipment will be the same
  21. =end
  22. $imported = {} if $imported.nil?
  23. $imported["EST - CLONE ACTOR"] = true
  24.  
  25. class Game_Actors
  26.   def set(actor_id, actor)
  27.   @data[actor_id] = actor
  28.   end  
  29. end
  30.  
  31.  
  32.  
  33. class Game_Party < Game_Unit
  34.  
  35.   def add_custom_actor(actor_id,level=nil,name=nil)
  36.   clone_data = $data_actors[actor_id].clone
  37.   clone_data.base_actor = actor_id
  38.   clone_data.custom_actor = true
  39.   new_actor_id = $data_actors.size
  40.   $data_actors.push(clone_data)  
  41.  
  42.   actor = Game_Actor.new(new_actor_id)
  43.   actor.level = level if level
  44.   actor.init_exp if level
  45.   actor.init_skills if level
  46.   actor.clear_param_plus if level
  47.   actor.recover_all if level
  48.   actor.name = name if name
  49.  
  50.   $game_actors.set(new_actor_id, actor)
  51.  
  52.   @actors.push(actor.id)
  53.   $game_player.refresh
  54.   $game_map.need_refresh = true
  55.   end
  56.    
  57.   def members_by_base_actor(actor_id)
  58.     all_members.select {|actor| actor.base_actor_id == actor_id}
  59.   end
  60.  
  61. end
  62.  
  63. class RPG::Actor < RPG::BaseItem
  64.   attr_accessor :base_actor
  65.   attr_accessor :custom_actor
  66.   def base_actor
  67.     return @base_actor if @base_actor
  68.     return @id
  69.   end
  70.   def custom_actor?
  71.     return @custom_actor if @custom_actor
  72.     return false
  73.   end
  74. end # RPG::Actor
  75.  
  76.  
  77. class Game_Actor < Game_Battler
  78.   attr_accessor :level
  79.   attr_accessor :base_actor_id
  80.    
  81.   alias set_base_actor_init initialize
  82.   def initialize(actor_id)
  83.     set_base_actor_init(actor_id)
  84.     @base_actor_id = $data_actors[actor_id].base_actor
  85.   end
  86.    
  87. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement