AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

Partagez
 

 [VX.Ace] Commande "voler"

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Choco-sama
Modérateur
Modérateur
Choco-sama


Masculin Inscrit le : 04/05/2011
Messages : 225

[VX.Ace] Commande "voler" Empty
MessageSujet: [VX.Ace] Commande "voler"   [VX.Ace] Commande "voler" Icon_minitimeMar 30 Juil 2013 - 12:51

Commande simple "voler"

Auteur du script: Zetu


Introduction:
Beaucoup de gens se sont plaint à ce sujet. VXAce n'a pas de script de vol d'objet par défaut. Donc, Zetu a fait ce script de vol simple.

Caractéristiques:

  *  Lier une compétence, comme voler, et de prendre des objets à partir d'un ennemi.


Code:
module Z05
  
  STEAL_SKILL = /<steal>/i
  STEAL_OBJ   = /<steal[:]*\s*(WEAPON|ITEM|ARMOR|GOLD)\s*(\d+)>/i
  
  NO_STEALS     = "%s has nothing to steal."
  STEAL_GOLD    = "Stole %s gold from %s."
  STEAL_ITEM    = "Stole %s from %s."
  
 end

class Window_BattleLog < Window_Selectable
  
  def display_steal(target)
    item = target.last_stolen_item
 print item;print "\n"
    if item.nil?
  add_text(sprintf(Z05::NO_STEALS, target.name))
  print "Nothing to Steal\n"
 elsif item.is_a?(Integer)
  add_text(sprintf(Z05::STEAL_GOLD, item, target.name))
  print "Stole #{item} Gold\n"
 else
  add_text(sprintf(Z05::STEAL_ITEM, item.name, target.name))
  print "Stole #{item.name}\n"
 end
 target.reset_steal_item
  end
  
  alias z05dd display_damage
  def display_damage(target, item)
    z05dd(target, item)
 display_steal(target) if item.steal?
  end
  
end

class RPG::UsableItem < RPG::BaseItem
  def steal?
    self.note.scan(Z05::STEAL_SKILL){return true}
 return false
  end
end

class Game_Enemy < Game_Battler
 attr_reader :last_stolen_item
  
  alias z05_initialize initialize
  def initialize(index, enemy_id)
    z05_initialize(index, enemy_id)
    z05_start
  end
  
  def z05_start
    @steal_data = []
    self.enemy.note.scan(Z05::STEAL_OBJ){|type, id|
      case type
      when /item/i
        @steal_data.push($data_items[id.to_i])
      when /weapon/i
        @steal_data.push($data_weapons[id.to_i])
      when /armor/i
        @steal_data.push($data_armors[id.to_i])
      when /gold/i
        @steal_data.push(id.to_i)
      end
    }
  end
  
  def apply_steal_effect
    return nil if @steal_data.size==0
    return @last_stolen_item=@steal_data.delete_at(rand(@steal_data.size))
  end
  
  def item_apply(user, item)
    super
 add_item_steal_effect if item.steal? unless @result.missed
  end
  
  def add_item_steal_effect
    @stolenitem = apply_steal_effect
 return if @stolenitem.nil?
 if @stolenitem.is_a?(Integer)
  $game_party.gain_gold(@stolenitem)
 else
  $game_party.gain_item(@stolenitem, 1)
 end
  end
  
  def reset_steal_item
    @last_stolen_item=nil
  end
  
end


Il est recommandé d'utiliser le script "Exact Extention", pour le faire apparaître comme une commande.
Revenir en haut Aller en bas
Biward
Gardien des Scripts
Gardien des Scripts
Biward


Féminin Age : 27
Inscrit le : 30/12/2009
Messages : 1067

[VX.Ace] Commande "voler" Empty
MessageSujet: Re: [VX.Ace] Commande "voler"   [VX.Ace] Commande "voler" Icon_minitimeJeu 8 Aoû 2013 - 16:54

D'abord, merci pour tous tes partages Choco, ça fait plaisir !
Je poste ici car c'est le seul script que tu as partagé que j'ai pas compris. Enfin, j'ai pas tout à fait compris comment il fonctionne..

Sinon, ben merci encore Very Happy
Revenir en haut Aller en bas
http://vx-fan.1fr1.net
Arty'
Modérateur
Modérateur
Arty'


Masculin Age : 133
Inscrit le : 14/04/2009
Messages : 1321

[VX.Ace] Commande "voler" Empty
MessageSujet: Re: [VX.Ace] Commande "voler"   [VX.Ace] Commande "voler" Icon_minitimeJeu 8 Aoû 2013 - 17:46

Oui, explique nous bien (même brièvement !) comment fonctionne ce que tu postes o/
Revenir en haut Aller en bas
Choco-sama
Modérateur
Modérateur
Choco-sama


Masculin Inscrit le : 04/05/2011
Messages : 225

[VX.Ace] Commande "voler" Empty
MessageSujet: Re: [VX.Ace] Commande "voler"   [VX.Ace] Commande "voler" Icon_minitimeJeu 8 Aoû 2013 - 21:04

N'etant pas scripteur, j'aurais du mal à expliquer comment il fonctionne ^^"

Je sais juste qu'il fonctionne en lien avec le script "Exact extention"
Revenir en haut Aller en bas
Contenu sponsorisé




[VX.Ace] Commande "voler" Empty
MessageSujet: Re: [VX.Ace] Commande "voler"   [VX.Ace] Commande "voler" Icon_minitime

Revenir en haut Aller en bas
 

[VX.Ace] Commande "voler"

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Voler sur une map
» Compétences voler.
» FAire voler le héros
» [RM2K3][Event] Compétence Voler
» Voler des objets/de l'argent via une compétence.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX.Ace - RGSS3 :: Objets et compétences-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit