LB Moderador
Número de Mensagens : 4 Data de inscrição : 14/06/2009
| Assunto: [v1.0.8] Summons Dom Jun 14, 2009 9:18 am | |
| Função:Sistema de summon, em que pode-se invocar um personagem para batalhar no lugar da equipe. Essa invocação custa uma porcentagem de MP de todos os personagens. Incompactilidade:Sistemas de batalha personalizados. Só fuciona no padrão e no SBS Tankentai. Instalação:Colocar acima de main. Configurações no inicio. - Spoiler:
- Código:
-
########################################################### ######################## SUMMONS ########################## #### V 1.0.8 ############################################## ################################### Por: LB ############### ################################# Ideia: Kaos ############# ########################################################### ############### www.ReinoRpg.com ########################## ###########################################################
module Conf_Summon OP_NAME = "Summon" # Nome da opção no menu de batalha TEMP = 40 # Tempo de espera em frames # Quando o Summom morre... DEATH_TYPE = 1 # 0 = Regenera o Summon | 1 = Desativa a switch SUMMON = [] # SUMMON[<Numero do summon>] = ["<Nome>",<Id do personagem>,<Id da switch que ativa>,<porcentagem de MP>] SUMMON[0] = ["Ultra Fortaum",5,1,50] SUMMON[1] = ["Ultra Fortaum 2",6,2,50] SUMMON[2] = ["Ultra Fortaum 3",7,3,50] SUMMON[3] = ["Ultra Fortaum 4",8,4,50] # Pode ter quantos quiser... # Crie os Summons no database de personagens, depois coloque o ID nas configurações acima. end class Game_Party < Game_Unit attr_reader:actors end class Window_PartyCommand < Window_Command def initialize s1 = Vocab::fight s2 = Conf_Summon::OP_NAME s3 = Vocab::escape super(128, [s1, s2, s3], 1, 4) draw_item(0, true) draw_item(2, $game_troop.can_escape) a = $game_party.actors for s in 0...Conf_Summon::SUMMON.size if $game_switches[Conf_Summon::SUMMON[s][2]] == true for d in 0...a.size ddd = ($game_actors[a[d]].maxmp / (100 / Conf_Summon::SUMMON[s][3])) if $game_actors[a[d]].mp >= ddd g = true end end end end if g != true draw_item(1, false) end self.active = false end end class Scene_Battle < Scene_Base def update_party_command_selection if Input.trigger?(Input::C) case @party_command_window.index when 0 # Lutar Sound.play_decision @status_window.index = @actor_index = -1 next_actor when 1 # Summon if @summon == nil a = $game_party.actors @aactors = [] for z in 0...a.size @aactors[z] = a[z] end op = [] per = [] porc = [] for s in 0...Conf_Summon::SUMMON.size g = [] if $game_switches[Conf_Summon::SUMMON[s][2]] == true for d in 0...a.size ddd = ($game_actors[a[d]].maxmp / (100 / Conf_Summon::SUMMON[s][3])) if $game_actors[a[d]].mp >= ddd g[d] = true end end end if g[0] == true or g[1] == true or g[2] == true or g[3] == true op[op.size] = Conf_Summon::SUMMON[s][0] per[per.size] = Conf_Summon::SUMMON[s][1] porc[porc.size] = Conf_Summon::SUMMON[s][3] end end if op != [] @window_summon = Window_Command.new(200,op) @window_summon.height = 128 @window_summon.create_contents @window_summon.refresh @window_summon.y = 160 loop do @window_summon.update Graphics.update Input.update if Input.trigger?(Input::C) @summon = per[@window_summon.index] @porc = porc[@window_summon.index] @num = Conf_Summon::SUMMON[@window_summon.index][1] @id = @window_summon.index break elsif Input.trigger?(Input::B) break end end @window_summon.dispose if @summon != nil for i in 0...a.size $game_actors[a[i]].mp -= ($game_actors[a[i]].maxmp / (100 / @porc)) end @status_window.refresh for b in 0...Conf_Summon::TEMP Graphics.update end $game_party.remove_actor(@aactors[0]) $game_party.add_actor(@summon) for c in 0...a.size-1 $game_party.remove_actor(@aactors[c+1]) end @status_window.refresh @party_command_window.draw_item(1, false) else Sound.play_buzzer end else Sound.play_buzzer end end when 2 # Fugir if @summon != nil $game_party.add_actor(@aactors[0]) $game_party.remove_actor(@summon) for c in 0...@aactors.size-1 $game_party.add_actor(@aactors[c+1]) end @summon = nil end if $game_troop.can_escape == false Sound.play_buzzer return end Sound.play_decision process_escape end end end alias b1 process_victory def process_victory if @summon != nil $game_party.add_actor(@aactors[0]) $game_party.remove_actor(@summon) for c in 0...@aactors.size-1 $game_party.add_actor(@aactors[c+1]) end end b1 end alias b2 process_defeat def process_defeat if @summon != nil and @m != 0 if Conf_Summon::DEATH_TYPE == 1 $game_switches[Conf_Summon::SUMMON[@id][2]] = false end $game_actors[@num].recover_all $game_party.add_actor(@aactors[0]) $game_party.remove_actor(@summon) for c in 0...@aactors.size-1 $game_party.add_actor(@aactors[c+1]) end @m = 0 else b2 end end end
Scripts RGSS2 for RPG Maker VX by LB is licensed under a Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License. Permissions beyond the scope of this license may be available at ReinoRPG.com | |
|
Alessandro_Trigger Administrador
Número de Mensagens : 207 Data de inscrição : 15/03/2009 Idade : 30
Mochila -: Mensagem do Membro: RPG lab! RPG não é hobbie...é um estilo de vida!
| Assunto: Re: [v1.0.8] Summons Sáb Jul 18, 2009 10:49 am | |
| Bom script! Valeu por disponibiliza-lo aqui LB! Continue assim!
Até! | |
|