Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Zamknięty przez: SaE
Sro 08 Sie, 2012 11:41
[skrypt] Użycie itemu tylko na konkretnej postaci
Autor Wiadomość
plasebo 



Dołączył: 01 Sty 2010
Posty: 13
Wysłany: Czw 12 Lip, 2012 00:32
[skrypt] Użycie itemu tylko na konkretnej postaci
Cześć!
Chciałbym wiedzieć, jak sprawić (np. przez skrypt i adnotacje w polu Note) by konkretne itemy mogły być użyte tylko na określonych postaciach (opcja Data Base/Items/Scope/One Ally). Przykłady:
- fiolka krwi [Item 099] może być użyta tylko na drużynowym wampirze [Actor 006];
- kawałek mięsa i alkohol może użyć każdy bohater z wyjątkiem wegelfki-purytanki :)
Dziękuję za pomoc!
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sob 14 Lip, 2012 10:47
Dobrze przetestuj
Spoiler:

Kod:
module AYENE
  ITEM_TARGET = /<(?:ITEM_TARGETS|item_targets)[ ]*(\d+(?:[ ]*,[ ]*\d+)*)>/i
end

#===================================================================
# RPG::UsableItem
#===================================================================
class RPG::UsableItem < RPG::BaseItem
  attr_accessor :item_targets   
  #--------------------------------------------------------------------------
  # * Item targets Initialization
  #--------------------------------------------------------------------------
  def item_targets_ini
    @item_targets = []
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when AYENE::ITEM_TARGET
        $1.scan(/\d+/).each { |num|
          item_id = num.to_i
          @item_targets.push(item_id) if $data_items[item_id] != nil
        }
      end
    }
  end
end

#===================================================================
# Scene_Title
#===================================================================
class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # * Load Database
  #--------------------------------------------------------------------------
  alias aye_item_tar_sctit_loaddata load_database
  def load_database
    aye_item_tar_sctit_loaddata
    for item in $data_items
      next if item.nil?
      item.item_targets_ini
    end
  end
  #--------------------------------------------------------------------------
  # * Load Battle Test Database
  #--------------------------------------------------------------------------
  alias aye_item_tar_sctit_bt_loaddata load_bt_database
  def load_bt_database
    aye_item_tar_sctit_bt_loaddata
    for item in $data_items
      next if item.nil?
      item.item_targets_ini
    end
  end   
end

#===================================================================
# Scene_Item
#===================================================================
class Scene_Item < Scene_Base
  #--------------------------------------------------------------------------
  # * Confirm Target
  #--------------------------------------------------------------------------
  def determine_target
    used = false
    if @item.for_all?
      for target in $game_party.members
        if @item.item_targets.include?(target.id) or @item.item_targets.empty?
          target.item_effect(target, @item)
          used = true unless target.skipped
        end
      end
    else
      $game_party.last_target_index = @target_window.index
      target = $game_party.members[@target_window.index]     
      if @item.item_targets.include?(target.id) or @item.item_targets.empty?
        target.item_effect(target, @item)
        used = true unless target.skipped
      end     
    end
    if used
      use_item_nontarget
    else
      Sound.play_buzzer
    end
  end
end

#===================================================================
# Scene_Battle
#===================================================================
class Scene_Battle < Scene_Base 
  #--------------------------------------------------------------------------
  # * Update Target Actor Selection
  #--------------------------------------------------------------------------
  def update_target_actor_selection
    @target_actor_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_target_actor_selection
    elsif Input.trigger?(Input::C)
      target = $game_party.members[@target_actor_window.index]
      if @item.item_targets.include?(target.id) or @item.item_targets.empty?
        Sound.play_decision
        @active_battler.action.target_index = @target_actor_window.index
        end_target_actor_selection
        end_skill_selection
        end_item_selection
        next_actor
      else
        Sound.play_cancel
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Execute Battle Action: Item
  #--------------------------------------------------------------------------
  def execute_action_item
    item = @active_battler.action.item
    targets = @active_battler.action.make_targets
    display_animation(targets, item.animation_id)
    $game_party.consume_item(item)
    $game_temp.common_event_id = item.common_event_id
    for target in targets
      if @item.item_targets.include?(target.id) or @item.item_targets.empty?
        target.item_effect(@active_battler, item)
        display_action_effects(target, item)
      end
    end
  end
end


Żeby wprowadzić cel przedmiotu wystarczy w oknie notatek w przedmiotach w bazie danych wpisać:
Kod:
<item_target ID, ID...>

gdzie ID to id bohatera, czyli jeśli chcesz, aby fiolka krwi mogła być użyta tylko na wampirze, to w tym przedmiocie wpisz:
Kod:
<item_target 6>

Z kolei, gdy nie chcesz, żeby weganka używała mięsa, wpisz wszystkich po przecinku, oprócz niej.
________________________


 
 
 
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene