-
Posts
463 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Valentino
-
-
A dire il vero ci avevo pensato però credevo che sarebbe stato noioso dire ogni votla "si o no" XD Comunque non credo sarebbe un problema nono. Dopo provo a farlo!
-
Ho creato questi script:
-Valentino's Scene Shop:
http://www.rpg2s.net/forum/index.php?showtopic=11290
-Item Plus System:
http://www.rpg2s.net/forum/index.php?showtopic=11291
EDIT: Anche questo:
Panorama Acceleration System:
http://www.rpg2s.net/forum/index.php?showtopic=11316
FATTO
-
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 endIstruzioni per l'uso
Trovate tutto all'interno dello script, se lo usate creditatemi

Bugs e Conflitti Noti
N/A
-
Valentino's Scene Shop
DescrizionePersonalizzazione della Scene Shop. Completamente animata.EDIT: Implementata la possibilità di equipaggiare gli oggetti direttamente dal negozio.
AutoreAvon 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'usoNon c'e niente da dire XD, se usate lo script creditatemi per favore
Bugs e Conflitti NotiN/A -
Ho creato un altro script XD:
Elemosina System:
http://www.rpg2s.net/forum/index.php?showtopic=11272
FATTO
-
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

Bugs e Conflitti Noti
N/A
-
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.
-
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!
-
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)
-
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)
-
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
-
Spiegati meglio... intendi l'immagine di background dei titoli? E ti si muove solo quando accedi ad essi? o anche dopo?
Lo script attinge varie pictures, dimmi quali sono quelle che vuoi che non si muovano XD
-
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
-
Ho creato questo script:
Aperion System
http://www.rpg2s.net/forum/index.php?showt...t=0#entry167633
FATTO
-
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?399gc3nn3631u0wScript:
#-----------------------------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

Bugs e Conflitti Noti
N/A
-
Lo script non sovvrascrive molto della Scene_Battle, quindi non dovrebbe creare problemi, e se ne crea renderlo compatibile rimane comunque semplice. :D
Chiedimi se vuoi questa modifica.
-
Ho creato questo script:
Scene_Vittoria Animata
http://www.rpg2s.net/forum/index.php?showt...mp;#entry166738
(Lo spoiler mi funziona solo se le righe di script sono veramente poche, non ne so il motivo!)
FATTO
-
Infatti XD Si riesce a saltare soltanto se si preme ripetutamente sennò non fa niente XD Era quello il senso
Grazie comunque!
-
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 endendDemo Link:
http://www.mediafire.com/download.php?5dpm29ulsq02s6l
Istruzioni per l'uso
Trovate tutto all'interno dello script, se lo usate creditatemi per favore
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. -
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
- Presentazione:
-
Se hai altre richieste come riserva haste ecc... potrei provare a vedere se riesco a crearle. :rovatfl:
-
Ho creato un altro script:
FF 2 Development System:
http://www.rpg2s.net/forum/index.php?showtopic=11184
FATTO
-
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....
AutoreAvon 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 -
Sì non dovrebbe essere un problema! Anzi penso di sapere già come fare... Mi metto al lavoro!!
Fatto:
http://www.mediafire.com/download.php?uu57mz7gxff1r52
Inserito anche nel primo post.

*Sistema di sviluppo alla FF 2
in Scripts RGSS (XP)
Posted