Jump to content
Rpg²S Forum

Valentino

Utenti
  • Posts

    463
  • Joined

  • Last visited

Posts posted by Valentino

  1. Item Plus System

    Descrizione

     

    Questo script permette di ottenere più di un oggetto da ogni nemico ucciso.

    Autore

     

    Avon Valentino (Io)

    Allegati


    Screenshots:


    http://img94.imageshack.us/img94/3810/itemplus1.png



    Demo Link:
    http://www.mediafire.com/download.php?j34pgiw6gol132r


    Script:

     

     

     

    #---------------------------ITEM PLUS SYSTEM-----------------------------------
    #Script creato da Valentino Avon, se usate questo script creditatemi ;)
    #Lo script permette di ottenere più oggetti dai nemici sconfiggendoli in battaglia.
    
    #------------------------------CONFIGURAZIONE-----------------------------------
    module Enemy
    	#a = armatura i = oggetto w = arma
    	#ITEM = {ENEMYID =>[[(a/i/w),ITEMID,PROBABILITA]]}
    	ITEM = {1 => [["a",1,30], ["i",4,40],["i",5,80]],
    	2 => [["i",1,40], ["w",2,40]]
    	}
    end
    #-------------------------------------------------------------------------------
    
    
    class Window_BattleResult < Window_Base
    	attr_accessor :treasures
    end
    
    class Scene_Battle
    	alias item_start_phase5 start_phase5
    	def start_phase5
    		item_start_phase5
    		for enemy in $game_troop.enemies
    			for item in Enemy::ITEM[enemy.id]
    				@result_window.treasures.push($data_items[item[1]]) if item[0] == "i" and rand(100) < item[2]
    				@result_window.treasures.push($data_armors[item[1]]) if item[0] == "a" and rand(100) < item[2]
    				@result_window.treasures.push($data_weapons[item[1]]) if item[0] == "w" and rand(100) < item[2]
    			end
    		end
    		@result_window.height = (@result_window.treasures.size * 32) + 64
    		@result_window.y = (380-@result_window.height)/2
    		@result_window.contents = Bitmap.new(@result_window.width - 32, @result_window.height - 32)
    		@result_window.refresh
    		@result_window.z = 9999
    	end
    end
    

     

     

     

    Istruzioni per l'uso

     

    Trovate tutto all'interno dello script, se lo usate creditatemi :wink:

    Bugs e Conflitti Noti

     

    N/A

  2. Valentino's Scene Shop


    Descrizione

    Personalizzazione della Scene Shop. Completamente animata.

    EDIT: Implementata la possibilità di equipaggiare gli oggetti direttamente dal negozio.



    Autore

    Avon Valentino (Io)



    Allegati

    Screenshots:

    Spoiler

    http://img268.imageshack.us/img268/1742/shop6.png
    http://img530.imageshack.us/img530/3757/shop1.png
    http://img214.imageshack.us/img214/2347/shop2i.png
    http://img714.imageshack.us/img714/5816/shop3.png
    http://img545.imageshack.us/img545/4261/shop4.png
    http://img522.imageshack.us/img522/5562/shop5.png



    Demo Link:
    http://www.mediafire.com/download.php?guf5fsnk4c13p67

    Script:

    #---------------------------Valentino's Scene Shop---------------------------##Script creato da Valentino Avon, se lo usate creditatemi ;)#---------------------------CONFIGURAZIONE------------------------SFONDO = "Sfondo" #title di sfondo Da inserire in Graphics/TitlesMOV_X = 1#movimento X sfondoMOV_Y = 1#movimento Y sfondo#-----------------------------------------------------------------class Window_ShopCommand < Window_Selectable  def initialize    super(16, -184, 160, 128)    self.contents = Bitmap.new(width - 32, height - 32)    @item_max = 3    @column_max = 1    @commands = ["Compra", "Vendi", "Esci"]    self.z = 120    refresh    self.index = 0  end  def refresh    self.contents.clear    for i in 0...@item_max      draw_item(i)    end  end  def draw_item(index)    y = 0 + index * 32    self.contents.draw_text(4, y, 128, 32, @commands[index])  endend class Window_ShopNumber < Window_Base  def refresh    self.contents.clear    draw_item_name(@item, 4, 6)    self.contents.font.color = normal_color    self.contents.draw_text(222, 6, 32, 32, "×")    self.contents.draw_text(258, 6, 24, 32, @number.to_s, 2)    self.cursor_rect.set(254, 6, 32, 32)    # Draw total price and currency units    domination = $data_system.words.gold    cx = contents.text_size(domination).width    total_price = @price * @number    self.contents.font.color = normal_color    self.contents.draw_text(-50, 64, 328-cx-2, 32, total_price.to_s, 2)    self.contents.font.color = system_color    self.contents.draw_text(282-cx, 64, cx, 32, domination, 2)  endend class Window_StatusS < Window_Selectable  def initialize    super(368, 128, 272, 352)    self.contents = Bitmap.new(width - 32, height - 32)    @column_max = 1    @item_max = $game_party.actors.size    self.index = -3    @item = nil    self.active = false    refresh  end  def refresh    self.contents.clear       if @item == nil      return    end    if @item.is_a?(RPG::Item)      return    end    # Equipment adding information    for i in 0...$game_party.actors.size      # Get actor      actor = $game_party.actors[i]      draw_actor_graphic(actor,15,49+96*i)      # If equippable, then set to normal text color. If not, set to      # invalid text color.      if actor.equippable?(@item)        self.contents.font.color = normal_color      else        self.contents.font.color = disabled_color      end      # Draw actor's name      self.contents.draw_text(35,  17+96* i, 120, 32, actor.name)      # Get current equipment      if @item.is_a?(RPG::Weapon)        item1 = $data_weapons[actor.weapon_id]      elsif @item.kind == 0        item1 = $data_armors[actor.armor1_id]      elsif @item.kind == 1        item1 = $data_armors[actor.armor2_id]      elsif @item.kind == 2        item1 = $data_armors[actor.armor3_id]      else        item1 = $data_armors[actor.armor4_id]      end      # If equippable      if actor.equippable?(@item)        if @item.is_a?(RPG::Weapon)          atk1 = item1 != nil ? item1.atk : 0          atk2 = @item != nil ? @item.atk : 0          str1 = item1 != nil ? item1.str_plus : 0          str2 = @item != nil ? @item.str_plus : 0          change = atk2 - atk1          change2 = str2 - str1          self.contents.draw_text(130, 17+96 * i, 112, 32,"ATK", 2)          self.contents.draw_text(130, 49+96 * i, 112, 32,"STR", 2)        end        if @item.is_a?(RPG::Armor)          pdef1 = item1 != nil ? item1.pdef : 0          mdef1 = item1 != nil ? item1.mdef : 0          pdef2 = @item != nil ? @item.pdef : 0          mdef2 = @item != nil ? @item.mdef : 0          change = pdef2 - pdef1          change2 = mdef2 - mdef1          self.contents.draw_text(130, 17+96 * i, 112, 32,"PDEF", 2)          self.contents.draw_text(130, 49+96 * i, 112, 32,"MDEF", 2)        end        self.contents.draw_text(174, 17+96 * i, 112, 32,          sprintf("%+d", change), 2)          self.contents.draw_text(174, 49+96 * i, 112, 32,          sprintf("%+d", change2), 2)      end      if item1 != nil        x = 4        y =  96 * i + 49        bitmap = RPG::Cache.icon(item1.icon_name)        opacity = self.contents.font.color == normal_color ? 255 : 128        self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)        self.contents.draw_text(x + 28, y, 212, 32, item1.name)      end      end    end  def item=(item)    if @item != item      @item = item      refresh    end  end  def update_cursor_rect    if @index <= -2     self.cursor_rect.set(0, (@index + 10) * 116, self.width - 32, 96)    elsif @index == -1      self.cursor_rect.set(0, 0, self.width - 32, @item_max * 116 - 20)    else      self.cursor_rect.set(0, @index * 96, self.width - 32, 96)    end  endend class Window_Numeri < Window_Base  def initialize    super(-420, 64, 154, 64)    self.contents = Bitmap.new(width - 32, height - 32)    @item = nil    self.z = 200    refresh  end  def refresh    self.contents.clear    case @item    when RPG::Item      number = $game_party.item_number(@item.id)    when RPG::Weapon      number = $game_party.weapon_number(@item.id)    when RPG::Armor      number = $game_party.armor_number(@item.id)    end    self.contents.font.color = normal_color    self.contents.draw_text(4, 0, 200, 32, "Posseduti:")    cx = contents.text_size("Posseduti").width    self.contents.draw_text(2+cx, 0, 32, 32, number.to_s, 2)  end  def item=(item)    if @item != item      @item = item      refresh    end  endend class Window_Scritta < Window_Base  def initialize    super(80, 304, 480, 64)    self.contents = Bitmap.new(width - 32, height - 32)    self.visible = false    self.z = 9998    refresh  end  def refresh    self.contents.clear    if $game_temp.message_text != nil      cx = contents.text_size($game_temp.message_text).width      self.width = cx + 32      self.x = (640-cx-32)/2      self.contents = Bitmap.new(width - 32, height - 32)    self.contents.draw_text(0,0,480,32,$game_temp.message_text)    end  endend class Window_ShopBuy < Window_Selectable  def draw_item(index)    item = @data[index]    # Get items in possession    case item    when RPG::Item      number = $game_party.item_number(item.id)    when RPG::Weapon      number = $game_party.weapon_number(item.id)    when RPG::Armor      number = $game_party.armor_number(item.id)    end    if item.price <= $game_party.gold and number < 99      self.contents.font.color = normal_color    else      self.contents.font.color = disabled_color    end    x = 4    y = index * 32    rect = Rect.new(x, y, self.width - 32, 32)    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))    bitmap = RPG::Cache.icon(item.icon_name)    opacity = self.contents.font.color == normal_color ? 255 : 128    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)    self.contents.draw_text(x + 180, y, 88, 32, item.price.to_s, 2)  endend class Window_Equip < Window_Selectable  def initialize    super(230, 150, 64, 96)    self.contents = Bitmap.new(width - 32, height - 32)    @item_max = 2    @column_max = 1    @commands = ["Sì","No"]    self.index = 0    self.visible = false    self.active = false    self.z = 700    refresh  end  def refresh    self.contents.clear    for i in 0...@item_max      draw_item(i)    end  end  def draw_item(index)    y = 0 + index * 32    self.contents.draw_text(4, y, 128, 32, @commands[index])  endend



    Parte 2, da inserire sotto la parte 1.

    class Scene_Shop def main   $premuto = false    @fase = 0    @win = nil    @equip = Window_Equip.new    @dummy_window = Window_Base.new(0, 128, 640, 352)    @dummy_window.opacity = 0    @help_window = Window_Help.new    @help_window.x = 0    @help_window.y = -340    @help_window.z = 300    @command_window = Window_ShopCommand.new    @gold_window = Window_Gold.new    @gold_window.x = -406    @gold_window.y = 64    @gold_window.z = 180    @buy_window = Window_ShopBuy.new($game_temp.shop_goods)    @buy_window.active = false    @buy_window.help_window = @help_window    @buy_window.y = 668    @buy_window.width = 314    @buy_window.height = 352    @buy_window.contents = Bitmap.new(314 - 32, 352 - 32)    @buy_window.refresh    @sell_window = Window_ShopSell.new    @sell_window.active = false    @sell_window.help_window = @help_window    @sell_window.y = 668    @number_window = Window_ShopNumber.new    @number_window.active = false    @number_window.y = 656    @number_window.width = 314    @number_window.height = 352    @number_window.contents = Bitmap.new(314 - 32, 352 - 32)    @number_window.z = 500    @number_window.refresh    @numeri = Window_Numeri.new    @status_window = Window_StatusS.new    @status_window.x = 714    @status_window.y = 64    @status_window.width = 326    @status_window.height = 416    @status_window.contents = Bitmap.new(326 - 32, 416 - 32)    @status_window.refresh    @message = Window_Scritta.new    @message.x = 80    @message.y = 208    @message.visible = false    @sfondo = Plane.new    @sfondo.bitmap = RPG::Cache.title(SFONDO)    Graphics.transition    for i in 0..20    if @command_window.y != 16      @command_window.y += 20    @sfondo.ox += MOV_X    @sfondo.oy += MOV_Y      Graphics.update    end    end    loop do    @sfondo.ox += MOV_X unless $premuto    @sfondo.oy += MOV_Y unless $premuto      Graphics.update      Input.update      case @fase      when 0      update      when 1      update_messaggio      end      if $scene != self        break      end    end    Graphics.freeze    @help_window.dispose    @command_window.dispose    @gold_window.dispose    @buy_window.dispose    @sell_window.dispose    @number_window.dispose    @status_window.dispose    @numeri.dispose    @message.dispose    @sfondo.dispose    @equip.dispose  end   def update_messaggio     @message.visible = true     if @buy_window.active       @win = 0     @buy_window.active = false      end     if @sell_window.active       @win = 1     @sell_window.active = false      end     if Input.trigger?(Input::C)       @fase = 0       @buy_window.active = true if @win == 0       @sell_window.active = true if @win == 1       @message.visible = false     end   end   alias shop_update update  def update     @message.update    @numeri.update    @equip.update    if @equip.active      update_equip     return   end   if @status_window.active     @status_window.update     update_chara     return     end   shop_update  end   def muovi_window(tastoc = false, tastob = false)    $premuto = true    if tastoc      grigio = 0    for i in 0..20    if @command_window.y != 464      @command_window.y -= 20      Graphics.update    end    end      for i in 1..20      grigio += 12.75      @sfondo.tone.set(0,0,0,grigio)       Graphics.update    end     for i in 0..20     if @command_window.y != 464      Graphics.update    end     if @status_window.x != 314 and @command_window.index == 0      @status_window.x -= 20    end    if @buy_window.y != 128 and @command_window.index == 0      @buy_window.y -= 27    end    if @numeri.x != 0 and @command_window.index == 0      @numeri.x += 20    end    if @gold_window.x != -6 and @command_window.index == 0      @gold_window.x += 20     end    if @gold_window.x != 0 and @command_window.index == 1      @gold_window.x += 20    end    if @sell_window.y != 128 and @command_window.index == 1      @sell_window.y -= 27    end     if @help_window.y != 0 and @command_window.index != 2      @help_window.y += 20     end   end   for i in 0..20      if @gold_window.x != 154 and @command_window.index == 0      @gold_window.x += 20      Graphics.update    end    end  end     if tastob      @sfondo.tone.set(0,0,0,255)       for i in 0..20     if @gold_window.x != -6 and @command_window.index == 0      @gold_window.x -= 20      Graphics.update    end    end     for i in 0..20    if @command_window.y != 16      @command_window.y += 20      Graphics.update     end    if @buy_window.y != 668 and @command_window.index == 0      @buy_window.y += 27    end    if @numeri.x != -420 and @command_window.index == 0      @numeri.x -= 20    end    if @sell_window.y != 668 and @command_window.index == 1      @sell_window.y += 27    end   if @help_window.y != -340      @help_window.y -= 20    end    if @status_window.x != 714 and @command_window.index == 0      @status_window.x += 20    end    if @gold_window.x != -200      @gold_window.x -= 20    end  end  if @gold_window.x < -180     @gold_window.x = -406  end    grigio = 255  @sfondo.tone.set(0,0,0,255)   for i in 0..10      grigio -= 25      @sfondo.tone.set(0,0,0,grigio)       Graphics.update    end    if grigio <= 0        $premuto = false         grigio = 0        end  endend   alias shop_command update_command  def update_command    shop_command     if Input.trigger?(Input::B)      for i in 0..20    if @command_window.y != 464      @command_window.y -= 20      Graphics.update     end  end  $game_temp.message_text = nil    end    if Input.trigger?(Input::C)      @numeri.item = @buy_window.item if @command_window.index == 0      @buy_window.update_help if @command_window.index == 0      @sell_window.update_help if @command_window.index == 1      @sell_window.refresh      @buy_window.refresh       muovi_window(true,false)      case @command_window.index      when 0        @numeri.visible = true      when 1  # sell        @gold_window.x = 0      when 2        $game_temp.message_text = nil      end      return    end  end   def update_buy    @status_window.item = @buy_window.item    @numeri.item = @buy_window.item    if Input.trigger?(Input::B)      $game_system.se_play($data_system.cancel_se)      muovi_window(false,true)      @command_window.active = true      @buy_window.active = false      @numeri.item = nil      return    end    if Input.trigger?(Input::C)      @item = @buy_window.item      if @item == nil or @item.price > $game_party.gold        $game_system.se_play($data_system.buzzer_se)        @fase = 1        @win = 0        $game_temp.message_text = "Non hai abbastanza soldi!"        @message.refresh        for i in 0..2          Graphics.update          end        return      end      case @item      when RPG::Item        number = $game_party.item_number(@item.id)      when RPG::Weapon        number = $game_party.weapon_number(@item.id)      when RPG::Armor        number = $game_party.armor_number(@item.id)      end      if number == 99        $game_system.se_play($data_system.buzzer_se)        @fase = 1        @win = 0        $game_temp.message_text = "Di questi ne hai troppi..."        @message.refresh        for i in 0..2          Graphics.update          end        return      end      $game_system.se_play($data_system.decision_se)      max = @item.price == 0 ? 99 : $game_party.gold / @item.price      max = [max, 99 - number].min      @buy_window.active = false      @number_window.set(@item, max, @item.price)      @number_window.active = true       for i in 0..10       if @number_window.y != 96      @number_window.y -= 28      Graphics.update    end    end    end  end  def update_sell    if Input.trigger?(Input::B)      @number_window.x = 0      $game_system.se_play($data_system.cancel_se)      muovi_window(false,true)      @command_window.active = true      @sell_window.active = false      @numeri.item = nil      return    end    if Input.trigger?(Input::C)       @number_window.x = (640-@number_window.width-32)/2      @item = @sell_window.item      @numeri.item = @item      @status_window.item = @sell_window.item      if @item == nil or @item.price == 0        $game_system.se_play($data_system.buzzer_se)        @fase = 1        @win = 1        $game_temp.message_text = "Non compro queste cose!" if @item != nil and @item.price == 0        $game_temp.message_text = "Eh? Mi stai prendendo in giro?" if @item == nil        @message.refresh        for i in 0..2          Graphics.update          end        return      end      $game_system.se_play($data_system.decision_se)      case @item      when RPG::Item        number = $game_party.item_number(@item.id)      when RPG::Weapon        number = $game_party.weapon_number(@item.id)      when RPG::Armor        number = $game_party.armor_number(@item.id)      end      max = number      @sell_window.active = false      @number_window.set(@item, max, @item.price / 2)       for i in 0..10      if @number_window.y != 96      @number_window.y -= 28      Graphics.update    end    end      @number_window.active = true    end  end   def update_number    if Input.trigger?(Input::B)      $game_system.se_play($data_system.cancel_se)      @number_window.active = false       for i in 0..10      if @number_window.y != 656      @number_window.y += 28      Graphics.update    end    end      case @command_window.index      when 0  # buy        @buy_window.active = true      when 1  # sell        @sell_window.active = true      end      return    end    if Input.trigger?(Input::C)      $game_system.se_play($data_system.shop_se)      @number_window.active = false      @oggetto = false      case @command_window.index      when 0  # buy        $game_party.lose_gold(@number_window.number * @item.price)        case @item        when RPG::Item          @oggetto = true          $game_party.gain_item(@item.id, @number_window.number)        when RPG::Weapon          $game_party.gain_weapon(@item.id, @number_window.number)        when RPG::Armor          $game_party.gain_armor(@item.id, @number_window.number)        end        @gold_window.refresh        @buy_window.refresh        @status_window.refresh        @numeri.refresh      for i in 0..10      if @number_window.y != 656      @number_window.y += 28      Graphics.update    end  end  unless @oggetto  @equip.index = 0  $game_temp.message_text = "Equipaggiare adesso?"  @message.refresh  @message.visible = true  cx = @message.contents.text_size($game_temp.message_text).width  @equip.x = (640-cx-17)  @equip.y = @message.y  @equip.active = true  @equip.visible = true  returnelse  @buy_window.active = true  end      when 1  # sell        $game_party.gain_gold(@number_window.number * (@item.price / 2))        case @item        when RPG::Item          $game_party.lose_item(@item.id, @number_window.number)        when RPG::Weapon          $game_party.lose_weapon(@item.id, @number_window.number)        when RPG::Armor          $game_party.lose_armor(@item.id, @number_window.number)        end        @gold_window.refresh        @sell_window.refresh        @status_window.refresh        @numeri.refresh        for i in 0..10       if @number_window.y != 656      @number_window.y += 28      Graphics.update    end    end        @sell_window.active = true       end    end  end   def update_equip     if Input.trigger?(Input::B)      $game_system.se_play($data_system.cancel_se)@buy_window.active = true          @message.visible = false          $game_temp.message_text = nil          @equip.active = false          @equip.visible = false      return    end    if Input.trigger?(Input::C)      case @equip.index      when 0        $game_system.se_play($data_system.decision_se)        @message.visible = false        $game_temp.message_text = nil         @equip.visible = false        @equip.active = false        @status_window.active = true        @status_window.index = 0        @numero = @number_window.number        when 1          $game_system.se_play($data_system.cancel_se)          @buy_window.active = true          @message.visible = false          $game_temp.message_text = nil          @equip.active = false          @equip.visible = false          return        end      end    end     def update_chara    if Input.trigger?(Input::B)    $game_system.se_play($data_system.cancel_se)    @status_window.index = -3    @status_window.refresh    @buy_window.active = true    @status_window.active = false    return    end    if Input.trigger?(Input::C)      actor = $game_party.actors[@status_window.index]      if actor.equippable?(@item)      case @item      when RPG::Weapon      if actor.weapon_id != @item.id      $game_system.se_play($data_system.equip_se)      actor.equip(0,@item.id)       end      when RPG::Armor        @mess = false      if @item.kind == 0 and actor.armor1_id != @item.id      $game_system.se_play($data_system.equip_se)      actor.equip(1,@item.id)       @mess = true    elsif @item.kind == 1 and actor.armor2_id != @item.id      $game_system.se_play($data_system.equip_se)      actor.equip(2,@item.id)      @mess = true    elsif @item.kind == 2 and actor.armor3_id != @item.id    $game_system.se_play($data_system.equip_se)      actor.equip(3,@item.id)      @mess = true    elsif @item.kind == 3 and actor.armor4_id != @item.id      $game_system.se_play($data_system.equip_se)      actor.equip(4,@item.id)       @mess = true    end    end    if @mess == false    $game_system.se_play($data_system.buzzer_se)     return    end    @status_window.refresh      @numero -= 1    if @numero == 0    @status_window.index = -3    @buy_window.active = true    @status_window.active = false    end  else    $game_system.se_play($data_system.buzzer_se)    return    end   end  endend



    Istruzioni per l'uso

    Non c'e niente da dire XD, se usate lo script creditatemi per favore
    :wink:



    Bugs e Conflitti Noti

    N/A

  3. Elemosina_System

    Descrizione

     

    Questo script crea un abilità che permette di usare i soldi per danneggiare i nemici, più soldi verranno usati più grande sarà il danno... È possibile costumizzare il rapporto tra soldi usati e danno.

    Autore

     

    Avon Valentino (Io)

    Allegati


    Screenshots:
    http://img830.imageshack.us/img830/9158/battleelemosina.png
    http://img826.imageshack.us/img826/2828/battleelemosina2.png

    Demo Link:
    http://www.mediafire.com/download.php?h5dx8cgfv3g241c


    Script:

     

     

     

    #-----------------------------Elemosina System---------------------------------
    #Questo script crea una abilità che dannegga i nemici in base a quanti soldi
    #gli si lanciano addosso.
    #Script creato da Valentino Avon, se lo usate creditatemi ;)
    
    #-----------------------------CONFIGURAZIONE-----------------------------------
    #id della skill elemosina
    ELEMOSINA_ID = 81
    
    #il danno viene calcolato dividendo i soldi usati per questo numero
    ELEM_DIVISORE = 10
    
    WIN_X = 0 #cordinata x della window elemosina
    WIN_Y = 0 #cordinata y della window elemosina
    #---------------------------------------------------------------------------
    
    class Window_Elemosina < Window_Base
    	attr_accessor :elemosina
    	def initialize
    		@elemosina = 0
    		super(WIN_X, WIN_Y, 180, 120)
    		@digits_max = 7
    		@number = 0
    		dummy_bitmap = Bitmap.new(32, 32)
    		cx = dummy_bitmap.text_size($data_system.words.gold).width
    		self.width = 180 + cx
    		@cursor_width = dummy_bitmap.text_size("0").width + 8
    		dummy_bitmap.dispose
    		self.contents = Bitmap.new(width - 32, height - 32)
    		self.back_opacity = 160
    		@index = 0
    		refresh
    		update_cursor_rect
    	end
    	
    	def number
    		return @number
    	end
    	
    	def number=(number)
    		@number = [[number, 0].max, 10 ** @digits_max - 1].min
    		refresh
    	end
    	
    	def update_cursor_rect
    		self.cursor_rect.set(@index * @cursor_width, 60, @cursor_width, 32)
    	end
    	
    	def update
    		super
    		if Input.repeat?(Input::UP) or Input.repeat?(Input::DOWN)
    			$game_system.se_play($data_system.cursor_se)
    			place = 10 ** (@digits_max - 1 - @index)
    			n = @number / place % 10
    			@backup = @number
    			@number -= n * place
    			n = (n + 1) % 10 if Input.repeat?(Input::UP)
    			n = (n + 9) % 10 if Input.repeat?(Input::DOWN)
    			@number += n * place
    			if @number <= $game_party.gold
    				@elemosina = @number
    			else
    				@number = @backup
    			end
    			refresh
    		end
    		if Input.repeat?(Input::RIGHT)
    			if @digits_max >= 2
    				$game_system.se_play($data_system.cursor_se)
    				@index = (@index + 1) % @digits_max
    			end
    		end
    		if Input.repeat?(Input::LEFT)
    			if @digits_max >= 2
    				$game_system.se_play($data_system.cursor_se)
    				@index = (@index + @digits_max - 1) % @digits_max
    			end
    		end
    		update_cursor_rect
    	end
    	
    	def refresh
    		self.contents.clear
    		self.contents.draw_text(0,0,640,32,$data_system.words.gold + " attuali: " + $game_party.gold.to_s,0)
    		self.contents.draw_text(0,30,640,32,$data_system.words.gold + " da spendere:",0)
    		self.contents.font.color = normal_color
    		s = sprintf("%0*d", @digits_max, @number)
    		for i in 0...@digits_max
    			self.contents.draw_text(i * @cursor_width + 4, 60, 32, 32, s[i,1])
    		end
    	end
    end
    
    class Game_Actor < Game_Battler
    	attr_accessor :soldi_usati
    	alias elem_setup setup
    	def setup(actor_id)
    		@soldi_usati = 0
    		elem_setup(actor_id)
    	end
    end
    
    class Scene_Battle
    	alias elemosina_update update
    	def update
    		@elemosina.update if $elemosina
    		elemosina_update
    	end
    	
    	def update_phase3
    		unless $elemosina
    			if @enemy_arrow != nil
    				update_phase3_enemy_select
    			elsif @actor_arrow != nil
    				update_phase3_actor_select
    			elsif @skill_window != nil
    				update_phase3_skill_select
    			elsif @item_window != nil
    				update_phase3_item_select
    			elsif @actor_command_window.active
    				update_phase3_basic_command
    			end
    		else
    			update_elemosina
    		end
    	end
    	
    	alias elemosina_skill_select update_phase3_skill_select
    	def update_phase3_skill_select
    		elemosina_skill_select
    		if Input.trigger?(Input::C)
    			if @skill.id == ELEMOSINA_ID
    				start_elemosina
    			end
    		end
    	end
    	
    	def start_elemosina
    		if @enemy_arrow != nil
    			@enemy_arrow.dispose
    			@enemy_arrow = nil
    		end
    		@help_window.visible = false
    		@elemosina = Window_Elemosina.new
    		$elemosina = true
    		$elemosina_skill = false
    		@active_battler.soldi_usati = 0
    		@actor_command_window.active = false
    		@actor_command_window.visible = false
    	end
    	
    	def end_elemosina
    		if @enemy_arrow != nil
    			@enemy_arrow.dispose
    			@enemy_arrow = nil
    		end
    		@skill_window.visible = true
    		@skill_window.active = true
    		@skill_window.help_window = @help_window
    		@elemosina.visible = false
    		$elemosina = false
    		$elemosina_skill = false
    		@active_battler.soldi_usati = 0
    	end
    	
    	def update_elemosina
    		if Input.trigger?(Input::B)
    			$game_system.se_play($data_system.cancel_se)
    			end_elemosina
    			return
    		end
    		if Input.trigger?(Input::C)
    			if @elemosina.elemosina > 0
    				$game_system.se_play($data_system.decision_se)
    				enemy_elemosina_select
    			else
    				$game_system.se_play($data_system.buzzer_se)
    			end
    		end
    	end
    	
    	def enemy_elemosina_select
    		@elemosina.visible = false
    		$elemosina = false
    		$elemosina_skill = true
    		@active_battler.soldi_usati = @elemosina.elemosina
    		@enemy_arrow = Arrow_Enemy.new(@spriteset.viewport1)
    		@enemy_arrow.help_window = @help_window
    		@skill_window.active = false
    		@skill_window.visible = false
    	end
    	
    	alias elemosina_phase3 update_phase3_enemy_select
    	def update_phase3_enemy_select
    		if Input.trigger?(Input::B)
    			$game_system.se_play($data_system.cancel_se)
    			end_enemy_select unless $elemosina_skill
    			start_elemosina if $elemosina_skill
    			return
    		end
    		elemosina_phase3
    	end
    end
    
    class Game_Battler
    	alias elemosina_skill skill_effect
    	def skill_effect(user, skill)
    		elemosina_skill(user, skill)
    		if skill.id == ELEMOSINA_ID
    			@soldi = $game_party.gold
    			@soldi -= user.soldi_usati
    			if @soldi < 0
    				self.damage = (user.soldi_usati + @soldi) /ELEM_DIVISORE
    				$game_party.lose_gold($game_party.gold)
    			else
    				self.damage = (user.soldi_usati/ELEM_DIVISORE)
    				$game_party.lose_gold(user.soldi_usati)
    			end
    			user.soldi_usati = 0
    			self.hp -= self.damage
    		end
    	end
    end
    

     


    Istruzioni per l'uso

     

    Per non mostrare l'uso di Sp nella finestra delle abilità in battaglia se la skill ha 0 come costo in Sp, copiare la riga evidenziata nella Window_Skill della demo. Per il resto trovate tutto all'interno dello script, se lo usate creditatemi per favore :wink:

    Bugs e Conflitti Noti

     

    N/A

  4. Si la cosa è molto semplice mandami per MP il tuo menu e te lo modifico. :D

     

    Mi pareva di aver visto che nel post precedente il main del tuo menu fosse un po diverso dal normale... Così per evitare lavoro inutile è meglio se mi posti quello che hai gia in parte personalizzato.

  5. Ah cavolo forse ha ragione Giver XD non ci avevo pensato! In effetti andrebbe elaborata meglio la cosa, forse agendo sulla Scene_Map quandi si apre il menu si mette $bgm = ..... e quindi poi non dovrebbe più creare problemi in quanto il menu non richiama quel comando!
  6. Esatto XD sotto def main inserisci:

    $bgm = $game_system.playing_bgm

    Audio.bgm_play("Audio/BGM/Sottofondo_Menu" , 100, 100)

     

    e nel def update_command

    nell if Input.trigger?(Input::B)

    sotto $scene = Scene_Map.new inserisci:

    $game_system.bgm_play($bgm)

  7. Ah ok! Scusami XD si allora basta che metti nel def main

    $bgm = $game_system.playing_bgm

    Audio.bgm_play("Audio/BGM/Sottofondo_Menu" , 100, 100)

     

    dove il sottofondo va messo nella cartella Audio/BGM e si chiamerà sottofondo menù. Per cambiare il volume modifica il primo "100" e per cambiare pitch il secondo.

    Poi bisogna ripristinare all'uscita il bgm della mappa corrente quindi vai nel

     

    def update_command

    sotto if Input.trigger?(Input::B)

    inserisci

    $game_system.bgm_play($bgm)

  8. Si basta creare uno sprite nella Scene_Menu negli script...

    Vai nell def main e aggiungi PRIMA di Graphics.transition

    @sottofondo = Sprite.new

    @sottofondo.bitmap = RPG::Cache.title("Sfondo_Menu")

    @sottofondo.x = 0

    @sottofondo.y = 0

    @sottofondo.z = -1

    poi vai sotto Graphics.freeze e aggiungi

    @sottofondo.dispose

    @sottofondo.bitmap.dispose

     

    Per modificare le cordinate dell'immagine modifica i valori @sottofondo.x e @sottofondo.y

    L'immagine che verrà presa sarà quella col nome Sfondo_Menu nella cartella Graphics/Titles

  9. Si tutti gli attacchi hanno un limite di danno impostato dal LIMIT_DAMAGE che verrà rotto equipaggiando un arma con danni aperion e quindi portando il limite massimo al MAX_DAMAGE, ma si sta poco a modificare lo script e creare delle abilità che avvallano questo limite... Dammi conferma e te lo faccio. :D
  10. Aperion_System

    Descrizione

    Lo script in pratica impone dei limiti ai danni agli Hp e agli Sp massimi. Avendo determinati equipaggiamenti si possono rompere questi limiti.

    Autore

     

    Avon Valentino (Io)


    Allegati


    Demo Link:
    http://www.mediafire.com/download.php?399gc3nn3631u0w

     

    Script:

     

     

    #-----------------------------Aperion_System----------------------------------#
    
    #Questo script crea un limite ai danni massimi e crea la possibilità di rompere
    #questo limite equipaggiando delle armi.
    #Il limite non viene imposto ai nemici.
    #Lo stesso vale con gli Hp e gli Sp con le armature.
    #Script creato da Valentino Avon, se lo utilizzate creditatemi ;)
    
    #---------------------------Configurazione------------------------------------
    
    #danno massimo senza danni aperion
    LIMIT_DAMAGE = 9999
    
    #danno massimo possibile (anche con i danni aperion)
    MAX_DAMAGE = 99999
    
    #id delle weapon che infliggono danni aperion
    W_DANNI_APERION = [1]
    
    #id delle armature che permettono di rompere il limite di vita massima
    A_HP_APERION = [1]
    
    #id delle armature che permettono di rompere il limite di Sp massimi
    A_SP_APERION = [5]
    
    #Hp massimi senza Hp aperion
    LIMIT_HP = 9999
    
    #Hp massimi possibili (anche con Hp aperion)
    MAX_HP = 99999
    
    #Sp massimi senza Sp aperion
    LIMIT_SP = 999
    
    #Sp massimi possibili (anche con Sp aperion)
    MAX_SP = 9999
    #-------------------------------Script-------------------------------------
    
    class Game_Battler
    	alias vale_attack attack_effect
    	def attack_effect(attacker)
    		vale_attack(attacker)
    		if self.damage.is_a?(Numeric)
    			if attacker.is_a?(Game_Actor) and attacker.weapon_id != nil
    				unless W_DANNI_APERION.include?(attacker.weapon_id)
    					self.damage = LIMIT_DAMAGE if self.damage > LIMIT_DAMAGE
    				end
    			elsif attacker.is_a?(Game_Actor) and attacker.weapon_id == nil
    				if self.damage > LIMIT_DAMAGE
    					self.damage = LIMIT_DAMAGE
    				end
    			end
    			self.damage = MAX_DAMAGE if self.damage > MAX_DAMAGE
    		end
    	end
    	
    	alias vale_skill skill_effect
    	def skill_effect(user, skill)
    		vale_skill(user, skill)
    		if self.damage.is_a?(Numeric)
    			if user.is_a?(Game_Actor) and user.weapon_id != nil
    				unless W_DANNI_APERION.include?(user.weapon_id)
    					self.damage = LIMIT_DAMAGE if self.damage > LIMIT_DAMAGE
    				end
    			elsif user.is_a?(Game_Actor) and user.weapon_id == nil
    				if self.damage > LIMIT_DAMAGE
    					self.damage = LIMIT_DAMAGE
    				end
    			end
    			self.damage = MAX_DAMAGE if self.damage > MAX_DAMAGE
    		end
    	end
    end
    
    
    class Game_Actor
    	def maxhp
    		n = [[base_maxhp + @maxhp_plus, 1].max, MAX_HP].min
    		for i in @states
    			n *= $data_states[i].maxhp_rate / 100.0
    		end
    		@aperion_hp = false
    		armor = [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
    		for id in armor
    			if A_HP_APERION.include?(id)
    				@aperion_hp = true
    			end
    		end
    		n = [[integer(n), 1].max, MAX_HP].min if @aperion_hp
    		n = [[integer(n), 1].max, LIMIT_HP].min unless @aperion_hp
    		return n
    	end
    	
    	def maxsp
    		n = [[base_maxsp + @maxsp_plus, 0].max, MAX_SP].min
    		for i in @states
    			n *= $data_states[i].maxsp_rate / 100.0
    		end
    		@aperion_sp = false
    		armor = [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
    		for id in armor
    			if A_SP_APERION.include?(id)
    				@aperion_sp = true
    			end
    		end
    		n = [[integer(n), 1].max, MAX_SP].min if @aperion_sp
    		n = [[integer(n), 1].max, LIMIT_SP].min unless @aperion_sp
    		return n
    	end
    end
    

     

     

     

    Istruzioni per l'uso

     

    Trovate tutto all'interno dello script, se lo usate creditatemi per favore :wink:

    Bugs e Conflitti Noti

     

    N/A

  11. Scene_Vittoria

     

    Descrizione

     

    Questo script crea una schermata dopo le battaglie vinte che mostra exp, soldi e tesori ottenuti in battaglia.

    Mostra eventuali Lv Up.

     

    Autore

    Avon Valentino (Io)

     

    Allegati

     

    ScreenShots:

    Purtroppo con delle immagini le animazioni non si riescono a vedere.

     

     

    http://img811.imageshack.us/img811/369/scenevittoria1.png

    http://img442.imageshack.us/img442/981/scenevittoria2.png

    http://img210.imageshack.us/img210/5986/scenevittoria3.png

     

     

     

    Script:

     

    #-------------------------Scene_Vittoria-------------------------#Script creato da Valentino Avon, se usate questo script, creditatemi ;) #Sistema di wait via script preso dallo script Tankentai di Enu.#Questo script crea una schermata dopo ogni battaglia vinta mostrando#exp, soldi e tesori e eventuali lv up. #------------------------CONFIGURAZIONE------------------------------- #pictures di sotto fondo.SFONDO = "Sfondo_Battaglia"  #pictures di level upLV = "Livello" #testo visualizzato per i tesoriTESTO_TESORI = "Tesori Ricevuti:" #esegue una canzone con il loop se trueBGM_VITTORIA = true  #nome del bgm riprodotto (se BGM_VITTORIA = true ) da inserire in audio/bgmBGM = "Bgm_Vittoria" #nome del suono riprodotto dall'esperienza che saleSE = "032-Switch01" #nome del suono riprodotto quando si sale di livelloSE_LEVEL = "056-Right02"  #icona visualizzata per i soldi nei tesori da inserire in Graphics/IconsSOLDI_ICONA = "Monete" MAX_LEVEL = 99 #livello massimo raggiunto dai personaggi  #==============================================================================# ** Window_Help_Vittoria#------------------------------------------------------------------------------#  This window shows skill and item explanations along with actor status.#============================================================================== class Window_Help_Vittoria < Window_Base  #--------------------------------------------------------------------------  # * Object Initialization  #--------------------------------------------------------------------------  def initialize	super(0, 0, 320, 64)	self.contents = Bitmap.new(width - 32, height - 32)  end  #--------------------------------------------------------------------------  # * Set Text  #  text  : text string displayed in window  #  align : alignment (0..flush left, 1..center, 2..flush right)  #--------------------------------------------------------------------------  def set_text(text, align = 0)	# If at least one part of text and alignment differ from last time	if text != @text or align != @align	  # Redraw text	  self.contents.clear	  self.contents.font.color = normal_color	  self.contents.draw_text(4, 0, self.width - 40, 32, text, align)	  @text = text	  @align = align	  @actor = nil	end	self.visible = true  endend  #==============================================================================# ** Window_Vittoria#------------------------------------------------------------------------------#  This window displays amount of gold and EXP acquired at the end of a battle.#============================================================================== class Window_Vittoria < Window_Base  #--------------------------------------------------------------------------  # * Object Initialization  #	 exp	   : EXP  #	 gold	  : amount of gold  #	 treasures : treasures  #--------------------------------------------------------------------------  attr_accessor :exp  def initialize(actor, exp)	@exp = exp	@actor = actor	super(0, 0, 210, 128)	self.contents = Bitmap.new(width - 32, height - 32)	self.back_opacity = 160	self.z = 1000	self.visible = true	refresh  end   def update_basic	Graphics.update	Input.update	$game_system.update	$game_screen.update  end    #--------------------------------------------------------------------------  def wait(duration)	for i in 0...duration	  update_basic	end  end  #--------------------------------------------------------------------------  # * Refresh  #--------------------------------------------------------------------------  def refresh	self.contents.clear 	if @actor != nil	  self.contents.font.size = 17	ac = contents.text_size(@actor.name).width	draw_actor_level(@actor, 34+ac, 0)	self.contents.draw_text(4, 0, ac, 32, @actor.name)   	  if @actor.level != MAX_LEVEL	x = 4	 self.contents.font.color = system_color	if @actor.cant_get_exp? == false 	cx = contents.text_size("EXP:").width	self.contents.draw_text(4, 32, cx, 32,"EXP:")	x += cx + 4  self.contents.font.color = normal_color	self.contents.draw_text(20 + cx, 32, 64, 32, @exp.to_s)  else	self.contents.font.color = normal_color	self.contents.draw_text(4, 32, 210, 32,"Impossibile ottenere EXP!" )	endelseself.contents.draw_text(4, 32, 210, 32,"Impossibile ottenere EXP!" )endx = 4cx = contents.text_size("EXP:").widthx += cx + 4	y = 32	if @actor.cant_get_exp? == false	 self.contents.font.color = system_color	cx = contents.text_size("PER LV UP:").width	self.contents.draw_text(4, 64, 160, 32, "PER LV UP:")	x += cx + 4	self.contents.font.color = normal_color	self.contents.draw_text(20 + cx, 64, 64, 32, @actor.next_rest_exp_s)	end	end  endend  #==============================================================================# ** Window_BattleResult#------------------------------------------------------------------------------#  This window displays amount of gold and EXP acquired at the end of a battle.#============================================================================== class Window_BattleResult < Window_Base  #--------------------------------------------------------------------------  # * Object Initialization  #	 exp	   : EXP  #	 gold	  : amount of gold  #	 treasures : treasures  #--------------------------------------------------------------------------  def initialize(gold)	@gold = gold	super(160, 120, 320, 240)	self.contents = Bitmap.new(width - 32, height - 32)	self.back_opacity = 160	self.z = 1000	self.visible = false	refresh  end  #--------------------------------------------------------------------------  # * Refresh  #--------------------------------------------------------------------------  def refresh	self.contents.clear	x = 4	self.contents.font.color = normal_color	bitmap = RPG::Cache.icon(SOLDI_ICONA)	self.contents.blt(x,0 + 4, bitmap, Rect.new(0, 0, 24, 24))	cx = contents.text_size(@gold.to_s).width	self.contents.draw_text(30, 0, cx, 32, @gold.to_s)	x += cx + 30	self.contents.font.color = system_color	self.contents.draw_text(x, 0, 128, 32, $data_system.words.gold)	y = 32	for item in $treasures	  draw_item_name(item, 4, y)	  y += 32	end  endend  #==============================================================================# ** Scene_Vittoria#------------------------------------------------------------------------------#  This class performs menu screen processing.#============================================================================== class Scene_Vittoria   def update_basic	Graphics.update	Input.update	$game_system.update	$game_screen.update  end    #--------------------------------------------------------------------------  def wait(duration)	for i in 0...duration	  update_basic	end  end  #--------------------------------------------------------------------------  # * Object Initialization  #	 menu_index : command cursor's initial position  #--------------------------------------------------------------------------  def initialize(exp,gold)	@gold = gold	@exp = exp  end  #--------------------------------------------------------------------------  # * Main Processing  #--------------------------------------------------------------------------  def main	@fase = 0	# Make command window	# If save is forbidden	# Make play time window	@sfondo = Sprite.new	@sfondo.bitmap = RPG::Cache.picture(SFONDO) 	@sprite1 = Sprite.new	@sprite1.bitmap = RPG::Cache.picture(LV)	@sprite1.x = 210	@sprite1.y = 62	@sprite1.z = 1500  	@sprite2 = Sprite.new	@sprite2.bitmap = RPG::Cache.picture(LV)	@sprite2.x = 210	@sprite2.y = 274	@sprite2.z = 1500 	@sprite3 = Sprite.new	@sprite3.bitmap = RPG::Cache.picture(LV)	@sprite3.z = 1500	@sprite3.x = 512	@sprite3.y = 62 	@sprite4 = Sprite.new	@sprite4.bitmap = RPG::Cache.picture(LV)	@sprite4.z = 1500	@sprite4.x = 512	@sprite4.y = 274 	@sprite1.opacity = 0	@sprite2.opacity = 0	@sprite3.opacity = 0	@sprite4.opacity = 0 	@sfondo.z = -1	@vittoria1 = Window_Vittoria.new($game_party.actors[0], @exp)	@vittoria1.x = 64	@vittoria1.y = -274#64 	@vittoria2 = Window_Vittoria.new($game_party.actors[1], @exp)	@vittoria2.x = 64	@vittoria2.y = 498#288 	@vittoria3 = Window_Vittoria.new($game_party.actors[2], @exp)	@vittoria3.x = 366	@vittoria3.y = -274#64 	@vittoria4 = Window_Vittoria.new($game_party.actors[3], @exp)	@vittoria4.x = 366	@vittoria4.y = 498#288 	@help_window = Window_Help_Vittoria.new	@help_window.x = 160	@help_window.y = 56	@help_window.visible = false  	# Execute transition	Graphics.transition	# Main loop	loop do 	  # Update game screen	  Graphics.update	  # Update input information	  Input.update	  # Frame update 	@vittoria1.update	@vittoria2.update	@vittoria3.update	@vittoria4.update	@help_window.update  	case @fase	  when 0	  update	  when 1 	if Input.trigger?(Input::C)	  premi_c 	  else	  update_2	end 	  when 2	  update_3	  when 3	  update_4	end 	  # Abort loop if screen is changed	  if $scene != self		break	  end	end	# Prepare for transition	Graphics.freeze	# Dispose of windows	@vittoria1.dispose	@vittoria2.dispose	@vittoria3.dispose	@vittoria4.dispose	@sfondo.bitmap.dispose	@sfondo.dispose	@sprite1.dispose	@sprite2.dispose	@sprite3.dispose	@sprite4.dispose	@sprite1.bitmap.dispose	@sprite2.bitmap.dispose	@sprite3.bitmap.dispose	@sprite4.bitmap.dispose	@help_window.dispose  end  #--------------------------------------------------------------------------  # * Frame Update (when command window is active)  #--------------------------------------------------------------------------  def premi_c	if $exp > 0	  for actor in $game_party.actors		  if actor.cant_get_exp? == false			last_level = actor.level			actor.exp += $exp			@vittoria1.exp -= $exp if actor == $game_party.actors[0]			@vittoria2.exp -= $exp if actor == $game_party.actors[1]			@vittoria3.exp -= $exp if actor == $game_party.actors[2]			@vittoria4.exp -= $exp if actor == $game_party.actors[3] 			@vittoria1.refresh			@vittoria2.refresh			@vittoria3.refresh			@vittoria4.refresh			if actor.level > last_level			  Audio.se_play("Audio/SE/"+ SE_LEVEL,100,100)			  if actor == $game_party.actors[0]			@sprite1.opacity = 255		  end		   if actor == $game_party.actors[1]			@sprite2.opacity = 255		  end		  if actor == $game_party.actors[2]			@sprite3.opacity = 255		  end		  if actor == $game_party.actors[3]			@sprite4.opacity = 255			end			end		  end		end		$exp = 0		 wait(1)	   end	 end    def update	unless @vittoria1.y > 64	loop do	  @vittoria1.y += 10	  @vittoria3.y += 10	  wait(1)	  break if @vittoria1.y > 64	end  end  unless @vittoria2.y < 288	loop do	  @vittoria2.y -= 10	  @vittoria4.y -= 10	  wait(1)	  break if @vittoria2.y < 288	end	end 	@fase = 1  end     def update_2		@sprite1.opacity -= 15 if @sprite1.opacity != 0		@sprite2.opacity -= 15 if @sprite2.opacity != 0		@sprite3.opacity -= 15 if @sprite3.opacity != 0		@sprite4.opacity -= 15 if @sprite4.opacity != 0	  if $exp > 0 		Audio.se_play("Audio/SE/"+ SE,100,100)		$exp -= 1		for actor in $game_party.actors		  #aumento di 1 l'esperienza per ogni ciclo		  if actor.cant_get_exp? == false and actor.level != MAX_LEVEL			last_level = actor.level			actor.exp += 1			@vittoria1.exp -= 1 if actor == $game_party.actors[0]			@vittoria2.exp -= 1 if actor == $game_party.actors[1]			@vittoria3.exp -= 1 if actor == $game_party.actors[2]			@vittoria4.exp -= 1 if actor == $game_party.actors[3]			if actor.level > last_level			  Audio.se_play("Audio/SE/"+ SE_LEVEL,100,100)			  if actor == $game_party.actors[0]			@sprite1.opacity = 255		  end		   if actor == $game_party.actors[1]			@sprite2.opacity = 255		  end		  if actor == $game_party.actors[2]			@sprite3.opacity = 255		  end		  if actor == $game_party.actors[3]			@sprite4.opacity = 255			end			end		  end		end	  end 	  @sprite1.opacity -= 15 if @sprite1.opacity != 0	  @sprite2.opacity -= 15 if @sprite2.opacity != 0	  @sprite3.opacity -= 15 if @sprite3.opacity != 0	  @sprite4.opacity -= 15 if @sprite4.opacity != 0 	@vittoria1.refresh	@vittoria2.refresh	@vittoria3.refresh	@vittoria4.refresh	wait(2)	@fase = 2 if $exp <= 0  end     def update_3	# If C button was pressed	if Input.trigger?(Input::C)	  #rendo i lv up invisibili	  @sprite1.visible = false	  @sprite2.visible = false	  @sprite3.visible = false	  @sprite4.visible = false	  $game_system.se_play($data_system.decision_se)	  #sposto le window	loop do	  @vittoria1.x -= 7.5	  @vittoria1.y -= 10 	  @vittoria2.x -= 7.5	  @vittoria2.y += 10 	  @vittoria3.x += 7.5	  @vittoria3.y -= 10 	  @vittoria4.x += 7.5	  @vittoria4.y += 10 	  @vittoria1.opacity -= 16	  @vittoria2.opacity -= 16	  @vittoria3.opacity -= 16	  @vittoria4.opacity -= 16 	  @vittoria1.contents_opacity  -= 16	  @vittoria2.contents_opacity  -= 16	  @vittoria3.contents_opacity  -= 16	  @vittoria4.contents_opacity  -= 16   	  wait(1)	  break if @vittoria1.y < -274	end	#rendo le window invisibili	@vittoria1.visible = false	@vittoria2.visible = false	@vittoria3.visible = false	@vittoria4.visible = false  	#creo la window per i soldi e i tesori	@result_window = Window_BattleResult.new(@gold)	@result_window.opacity = 0	@result_window.contents_opacity = 0	@help_window.opacity = 0	  @help_window.contents_opacity = 0	@result_window.visible = true	@help_window.visible = true	loop do	  @help_window.opacity += 10	  @help_window.contents_opacity += 10 	  @help_window.back_opacity = 160	  #Testo della window_help	  @help_window.set_text(TESTO_TESORI,1) 	  @result_window.opacity += 10	  @result_window.contents_opacity += 10	  wait(1)	  break if @result_window.opacity == 250	end	@fase = 3	  wait(1)  endend  def update_4	# If C button was pressed	if Input.trigger?(Input::C)	  $game_system.se_play($data_system.decision_se)	  loop do	  @result_window.opacity -= 10	  @result_window.contents_opacity -= 10	  @help_window.opacity -= 10	  @help_window.contents_opacity -= 10	  wait(1)	  break if @result_window.opacity == 0	end	  @result_window.dispose	  $game_system.bgm_play($game_temp.map_bgm)	  wait(20)	  $scene = Scene_Map.new unless $BTEST	  $scene = nil if $BTEST  endendend  #==============================================================================# ** Scene_Battle#------------------------------------------------------------------------------#  This class performs battle screen processing.#============================================================================== class Scene_Battle   #--------------------------------------------------------------------------  # * Start After Battle Phase  #--------------------------------------------------------------------------  def start_phase5	# Shift to phase 5	@phase = 5	# Play battle end ME	$game_system.me_play($game_system.battle_end_me) unless BGM_VITTORIA	 Audio.bgm_play("Audio/BGM/"+ BGM,100,100) if BGM_VITTORIA	# Return to BGM before battle started 	# Initialize EXP, amount of gold, and treasure	exp = 0	gold = 0	$exp = 0	$gold = 0	$treasures = []	# Loop 	for enemy in $game_troop.enemies	  # If enemy is not hidden	  unless enemy.hidden		# Add EXP and amount of gold obtained		exp += enemy.exp		gold += enemy.gold		$exp += enemy.exp		$gold += enemy.gold		# Determine if treasure appears 		if rand(100) < enemy.treasure_prob		  if enemy.item_id > 0			$treasures.push($data_items[enemy.item_id])		  end		  if enemy.weapon_id > 0			$treasures.push($data_weapons[enemy.weapon_id])		  end		  if enemy.armor_id > 0			$treasures.push($data_armors[enemy.armor_id])		  end		end	  end	end   	# Treasure is limited to a maximum of 6 items	$treasures = $treasures[0..5]  	# Obtaining EXP 	# Obtaining gold	$game_party.gain_gold(gold)	# Obtaining treasure	for item in $treasures	  case item	  when RPG::Item		$game_party.gain_item(item.id, 1)	  when RPG::Weapon		$game_party.gain_weapon(item.id, 1)	  when RPG::Armor		$game_party.gain_armor(item.id, 1)	  end	end	@phase5_wait_count = 100  end  #--------------------------------------------------------------------------  # * Frame Update (after battle phase)  #--------------------------------------------------------------------------  def update_phase5	if @phase5_wait_count > 0	  # Decrease wait count	  @phase5_wait_count -= 1	  # If wait count reaches 0	  if @phase5_wait_count == 0		# Show result window		# Clear main phase flag		$game_temp.battle_main_phase = false		# Refresh status window		@status_window.refresh	  end	  return	end	# If C button was pressed	#if Input.trigger?(Input::C)	  # Battle ends	  battle_end(0)	#end  end    def battle_end(result)	# Clear in battle flag	$game_temp.in_battle = false	# Clear entire party actions flag	$game_party.clear_actions	# Remove battle states	for actor in $game_party.actors	  actor.remove_states_battle	end	# Clear enemies	$game_troop.enemies.clear	# Call battle callback	if $game_temp.battle_proc != nil	  $game_temp.battle_proc.call(result)	  $game_temp.battle_proc = nil	end	# Switch to map screen   if result == 0	$scene = Scene_Vittoria.new($exp,$gold)  else	$scene = Scene_Map.new	end  endend

     

     

    Demo Link:

    http://www.mediafire.com/download.php?5dpm29ulsq02s6l

     

    Istruzioni per l'uso

    Trovate tutto all'interno dello script, se lo usate creditatemi per favore
    :cool:

     

    Bugs e Conflitti Noti

    Non riesco a sistemare il fatto che premendo il tasto C si salta lo scalare lento dell esperienza solo in certi periodi di tempo, se qualcuno sa come fare può scriverlo qui e sistemerò lo script! Comunque funziona lo stesso perfettamente.

  12. La Bottega di Valentino

    Eventi, mapping e script.

    http://img88.imageshack.us/img88/1113/bottegheps6.png

    • Presentazione:
      • Le Mie Abilità
        : gli eventi non dovrebbero più avere segreti per me, poi credo di saper cavarmela abbastanza con gli script e col mapping mm giudicate voi XD.

         

      • I Miei Lavori
        : Degli screen del mio progetto:

         
         

        http://img651.imageshack.us/img651/7020/cimamontagna.png
        http://img214.imageshack.us/img214/7809/citt1.png
        http://img440.imageshack.us/img440/9392/cittneve.png
        http://img828.imageshack.us/img828/3543/grotta.png
        http://img837.imageshack.us/img837/5007/spiaggia.png
         
         

       

      Script creati da me:

       

       

       

       

      [*]Servizi Offerti:

      Posso creare Eventi di qualsiasi genere, creare mappe, e creare script non eccessivamente complessi.

       

      [*]Listino Prezzi:

      Per eventi semplici 1 ren per quelli complessi da 2 a 5 rens a seconda della difficoltà.

      Per il mapping dipende dalla grandezza della mappa e dal luogo che si vuole creare, i prezzi li stabilirò per ogni lavoro.

      Per quanto riguarda gli script, anche il costo di questi dipende dalla complessità e dal tempo che mi richiederanno diciamo che potranno variare tra gli 1 ren e i 10 rens (ma non credo che creerò uno script così complesso da farlo pagare così tanto...)

      I prezzi possono subire variazioni a seconda del tipo di lavoro...

       

      [*]Lavori Completati:

      -Modifica al mio Sentinel System per Tidus26

      -Trasformazione mediante oggetti per PrinceEndymion88

      -Danno senz'arma al crescere del livello per PrinceEndymion88

      -Modifica al battle System di Ccoa per PrinceEndymion88

      -Modifica al Compact Menu di Sleeping Leonheart per Tidus26

      -New Scene Skill per Tidus26

      -Fama System per Tidus26

      -Modifica allo Script del Diario di Sylaer per Tidus26

     

    By Valentino

  13. FF2 Development System

    Descrizione


    Questo script emula il sistema di sviluppo di FF 2, cioè i personaggi non si potenziano più tramite i livelli ma in base a cosa fanno durante le battaglie. Se usano magie potenzieranno il lato magico ecc....


    Autore

     

    Avon Valentino (Io)

     

    Allegati


    Demo Link:
    http://www.mediafire.com/download.php?bl2o7igjyyz83fv


    Script


    EDIT: Nuova versione più leggera e compatibile:

     

     

     

    #---------------------------FF 2 development system---------------------
    #
    #script creato da Valentino Avon, se lo usate creditatemi ;)
    #Sistema di Wait via script preso dallo script tankentai di Enu
    #Si prega di creditare anche lui.
    #
    #
    #ogni volta che gli hp verranno dimezzati, aumenteranno di un ventesimo degli
    #hp massimi.
    HP_PIU = 20
    
    #ogni volta che gli sp verranno dimezzati, aumenteranno di un ventesimo degli
    #sp massimi.
    SP_PIU = 20
    
    #percentuale per la possibilità di potenziare la forza attaccando.
    PERC_FORZA = 10
    #Quando aumenta, la forza sale di un decimo di quella attuale.
    STR_PIU = 10
    
    #come per la forza (potenzia l'intelligenza usando magie)
    PERC_MAGIE = 10
    #quando aumenta, l'intelligenza sale di un decimo di quella attuale
    INT_PIU = 10
    
    #come per la forza (potenzia l'agilità subendo attacchi fisici)
    PERC_AGI = 5
    #quando aumenta, l'agilità sale di un decimo di quella attuale
    AGI_PIU = 10
    
    #come per la forza (potenzia la destrezza usando attacchi fisici)
    PERC_MIRA = 10
    #quando aumenta, la destrezza sale di un decimo di quella attuale
    DEX_PIU = 10
    class Game_Actor < Game_Battler
    	attr_accessor :last_hp #hp più
    	attr_accessor :last_sp #sp più
    	attr_accessor :attacca #forza e attacco
    	attr_accessor :uso_magie #intelligenza
    	attr_accessor :colpito #schivata e agilità
    	attr_accessor :attacca_arma #destrezza
    	alias valentino_setup setup
    	def setup(actor_id)
    		@last_hp = 0
    		@last_sp = 0
    		@attacca = false
    		@uso_magie = false
    		@colpito = false
    		@attacca_arma = false
    		valentino_setup(actor_id)
    	end
    end
    
    class Window_Help < Window_Base
    	attr_accessor :potenziamenti
    	alias valentino_initialize initialize
    	def initialize
    		@potenziamenti = []
    		valentino_initialize
    	end
    	def update_basic
    		Graphics.update
    		Input.update
    		$game_system.update
    		$game_screen.update
    	end
    	def testo(testo)
    		self.set_text(testo)
    		loop do
    			update_basic
    			break if Input.trigger?(Input::C)
    		end
    	end
    end
    
    class Scene_Battle
    	alias valentino_main main
    	def main
    		for actor in $game_party.actors
    			actor.last_hp = actor.hp
    			actor.last_sp = actor.sp
    			actor.attacca = false
    			actor.uso_magie = false #intelligenza
    			actor.colpito = false #schivata e agilità
    			actor.attacca_arma = false #destrezza
    		end
    		valentino_main
    	end
    	def update_basic
    		Graphics.update
    		Input.update
    		$game_system.update
    		$game_screen.update
    		@spriteset.update
    	end
    	def wait(duration)
    		for i in 0...duration
    			update_basic
    		end
    	end
    	alias ff2_phase5 start_phase5
    	def start_phase5
    		ff2_phase5
    		for actor in $game_party.actors
    			unless actor.hp == 0
    				if actor.hp <= (actor.last_hp/2)
    					actor.maxhp += (actor.maxhp/HP_PIU)
    					@help_window.potenziamenti.push(actor.name + " ha guadagnato un livello di Hp!")
    				end
    				
    				if actor.sp <= (actor.last_sp/2)
    					actor.maxsp += (actor.maxsp/SP_PIU)
    					@help_window.potenziamenti.push(actor.name + " ha guadagnato un livello di Sp!")
    				end
    				
    				if actor.attacca
    					actor.str += (actor.str/STR_PIU)
    					@help_window.potenziamenti.push(actor.name + " ha guadagnato un livello di Forza!")
    				end
    				
    				if actor.uso_magie
    					actor.int += (actor.int/INT_PIU)
    					@help_window.potenziamenti.push(actor.name + " ha guadagnato un livello di Intelligenza!")
    				end
    				
    				if actor.colpito
    					actor.agi += (actor.agi/AGI_PIU)
    					@help_window.potenziamenti.push(actor.name + " ha guadagnato un livello di Agilità!")
    				end
    				
    				if actor.attacca_arma
    					actor.dex += (actor.dex/DEX_PIU)
    					@help_window.potenziamenti.push(actor.name + " ha guadagnato un livello di Destrezza!")
    				end
    			end
    		end
    		loop do
    			for pot in @help_window.potenziamenti
    				@help_window.testo(pot)
    				wait(1)
    				@help_window.potenziamenti.delete(pot)
    			end
    			break if @help_window.potenziamenti.size == 0
    		end
    		@help_window.visible = false
    	end
    end
    
    class Window_BattleResult < Window_Base
    	def refresh
    		self.contents.clear
    		x = 4
    		self.contents.font.color = normal_color
    		cx = contents.text_size(@gold.to_s).width
    		self.contents.draw_text(x, 0, cx, 32, @gold.to_s)
    		x += cx + 4
    		self.contents.font.color = system_color
    		self.contents.draw_text(x, 0, 128, 32, $data_system.words.gold)
    		y = 32
    		for item in @treasures
    			draw_item_name(item, 4, y)
    			y += 32
    		end
    	end
    end
    
    class Game_Battler
    	alias ff2_attack attack_effect
    	def attack_effect(attacker)
    		ff2_attack(attacker)
    		hit_result = (rand(100) < attacker.hit)
    		if hit_result == true
    			if attacker.is_a?(Game_Actor)
    				attacker.attacca = true if rand(100) < PERC_FORZA
    				attacker.attacca_arma = true if rand(100) < PERC_MIRA
    			end
    			#se colpito aumenta l'agilità
    			if attacker.is_a?(Game_Enemy)
    				self.colpito = true if rand(100) < PERC_AGI
    			end
    		end
    	end
    	
    	alias ff2_skill skill_effect
    	def skill_effect(user, skill)
    		ff2_skill(user, skill)
    		#se usa una magia che abbia un potere diverso da 0
    		if user.is_a?(Game_Actor) and skill.power != 0 and skill.atk_f == 0
    			user.uso_magie = true if rand(100) < PERC_MAGIE
    		end
    	end
    end
    
    class Window_MenuStatus < Window_Selectable
    	def refresh
    		self.contents.clear
    		@item_max = $game_party.actors.size
    		for i in 0...$game_party.actors.size
    			x = 64
    			y = i * 116
    			actor = $game_party.actors[i]
    			draw_actor_graphic(actor, x - 40, y + 80)
    			draw_actor_name(actor, x, y)
    			draw_actor_class(actor, x + 144, y)
    			draw_actor_state(actor, x + 236, y)
    			draw_actor_hp(actor, x , y + 32)
    			draw_actor_sp(actor, x , y + 64)
    		end
    	end
    end
    
    class Window_Status < Window_Base
    	def refresh
    		self.contents.clear
    		draw_actor_graphic(@actor, 40, 112)
    		draw_actor_name(@actor, 4, 0)
    		draw_actor_class(@actor, 4 + 144, 0)
    		draw_actor_state(@actor, 96, 64)
    		draw_actor_hp(@actor, 96, 112, 172)
    		draw_actor_sp(@actor, 96, 144, 172)
    		draw_actor_parameter(@actor, 96, 192, 0)
    		draw_actor_parameter(@actor, 96, 224, 1)
    		draw_actor_parameter(@actor, 96, 256, 2)
    		draw_actor_parameter(@actor, 96, 304, 3)
    		draw_actor_parameter(@actor, 96, 336, 4)
    		draw_actor_parameter(@actor, 96, 368, 5)
    		draw_actor_parameter(@actor, 96, 400, 6)
    		self.contents.font.color = system_color
    		self.contents.draw_text(320, 160, 96, 32, "equipment")
    		draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 208)
    		draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 256)
    		draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 304)
    		draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 352)
    		draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 400)
    	end
    end
    

     

     

     

    Istruzioni per l'uso


    Trovate tutto all'interno dello script, se lo usate creditatemi per favore


    Bugs e Conflitti Noti


    N/A

×
×
  • Create New...