Toyota Membro
Mensagens : 54 Créditos : 13 Idade : 27 Localização : Rio de Janeiro - RJ Frase Pessoal : " Scripter dos Makers "
| Assunto: Distribuição de Atributos v1.6 Sáb Jan 30, 2010 3:51 pm | |
| Esse script é encssencial no jog, pelo menos eu acho... ele distr255ibui os pontos de atributos: Força, Defesa, Inteligência, Agilidade, Crítico, Esquiva, Acerto, Hp e Mp... Instrução : Cole o script acima do script Main, no Menu de Scripts ( Aperte F11 )... CHAME O SCRIPT USANDO : $scene = Scene_Stat_Dist.new(0) Modificações: Você pode dar pontos a seus personagens usando isto: $game_party.members[<ID do herói>].points += <quantidade de pontos> Se você deseja que seu personagem ganhe pontos depois de aumentar de level: Em Game_Actor, na def change_exp, em baixo da linha level_up (Linha 525) cole isto (Modo 1): difference = @level - last_level $game_actors[@actor_id].points += <amount of points> ou se você desejar o Modo 2(explicado abaixo) difference = @level - last_level $game_actors[@actor_id].points += ((@level/5).floor+2).floor*difference **Nota** Este script não para de dar os pontos de atributos definidos do database Coloque todos os atributos dos personagens no databse em 1 para desativar. **Modos** 1 : Adiciona um ponto no atributo por ponto. 2 : Usa o sistema de ragnarok, atributos com valores mais altos necessita de mais pontos. Explicação: Em Ragnarok, se você possui um atributo com valor alto, você vai precisar de mais pontos para aumentar ele. Então se você tem 90 de ataque e 5 de inteligência... Você pode escolher entre usar 10 pontos para aumentar em 1 ponto o ataque ou usar 10 pontos para aumentar um ponto de inteligência.Script: - Código:
-
=begin #------------------------------------------------------------------------------# # Sistema de distribuição de Atributos 1.6 # # Por Lettuce. # #------------------------------------------------------------------------------# # Disponibilizado, Traduzido e Modificado por # # Toyota. # #------------------------------------------------------------------------------# # Este script possibilita que você distribua pontos entre os atributos do # jogador. # # Chame o script assim: $scene = Scene_Stat_Dist.new(0) # # # Você pode dar pontos a seus personagens usando isto: # # $game_party.members[<ID do herói>].points += <quantidade de pontos> # # Se você deseja que seu personagem ganhe pontos depois de aumentar de level: # Em Game_Actor, na def change_exp, em baixo da linha level_up (Linha 525; # cole isto (modo 1): # # difference = @level - last_level # $game_actors[@actor_id].points += <amount of points> # # ou se você desejar o modo 2 (explicado abaixo) # # difference = @level - last_level # $game_actors[@actor_id].points += ((@level/5).floor+2).floor*difference # # # **Nota** # Este script não para de dar os pontos de atributos definidos do database # Coloque todos os atributos dos personagens no databse em 1 # para desativar. #------------------------------------------------------------------------------# # **Modos** # 1 : Adiciona um ponto no atributo por ponto. # 2 : Usa o sistema de ragnarok, atributos com valores mais altos necessita de # mais pontos. # Explicação: Em Ragnarok, se você possui um atributo com valor alto, você # vai precisar de mais pontos para aumentar ele. Então se você tem 90 de ataque # e 5 de inteligência... Você pode escolher entre usar 10 pontos para aumentar # em 1 ponto o ataque ou usar 10 pontos para aumentar um ponto de inteligência. #------------------------------------------------------------------------------# =end #----------------------------- Configuração ----------------------------------# #Pontos Iniciais; quantos pontos dar ao personagem no ínicio do game StartPoints = 5 #Valor máximo do atributo no jogo. MaxStat = 300 MaxHP = 9999 MaxMP = 999 #Taxa de acerto, esquiva e crítico máxima em porcentagem MaxHIT = 90 # 100 significa que nunca erra MaxEVA = 50 #100 significa que SEMPRE esquiva; 50-70 é um bom número MaxCRIT = 50 #100 significa que sempre irá causa dano crítico
#Quantos pontos necessários por nível de aumento PointsPerHP = 5 PointsPerMP = 5 PointsPerHIT = 4 PointsPerEVA = 7 PointsPerCRIT = 5
#Quantos pontos irão aumentar por ponto gasto no aumento de nível? IncreaseBy = 10 HPIncreaseBy = 100 MPIncreaseBy = 50 HITIncreaseBy = 1 EVAIncreaseBy = 1 CRITIncreaseBy = 1
#1 para modo normal, ou 2 para modo ragnarok [pontos requiridos calculados por #fórmula] Mode = 1 #Você pode mudar a fonte e o tamanho dela aqui Fontname = "Calibri" Fontsize = 20
#Modo do Layout, se você utiliza palavras longas para atq, int, def ou agi; #coloque LayoutMode em 2 LayoutMode = 2
#========================== Fim da configuração================================= OFFSET = -10 #moves equipment part up and down XD #============================================================================== # ** Lettuce_Window_Top #------------------------------------------------------------------------------ # This window displays Title message #==============================================================================
class Lettuce_Window_Top < Window_Base def initialize super(0,0,544,70) self.contents = Bitmap.new(width-32,height-32) self.contents.font.name = Fontname self.contents.font.size = Fontsize refresh end def refresh self.contents.clear self.contents.draw_text(0,-10,544-32,32,"Distribuição de pontos de atributos",1) self.contents.font.size = Fontsize-4 self.contents.draw_text(0,10,544-32,32,"Pressione esquerda ou direita para mudar o personagem",1) end end #============================================================================== # ** Lettuce_Window_Points #------------------------------------------------------------------------------ # This window displays the attributes of a party member #============================================================================== class Lettuce_Window_Points < Window_Base def initialize(member_index) super(401,320,144,52) self.contents = Bitmap.new(width-32,height-32) self.contents.font.name = Fontname self.contents.font.size = Fontsize refresh(member_index) end def refresh(member_index) actor = $game_party.members[member_index] points = actor.points self.contents.clear self.contents.draw_text(0,0,162,20,"Pontos: "+points.to_s) end end
#============================================================================== # ** Lettuce_Window_Info #------------------------------------------------------------------------------ # This window displays the attributes of a party member #==============================================================================
class Lettuce_Window_Info < Window_Base def initialize(member_index) super(0,71,400,346) self.contents = Bitmap.new(width-32,height-32) self.contents.font.name = Fontname self.contents.font.size = Fontsize @exo = 25 #equipment section X coordinate offset @exo2 = 35 #equipment section X coordinate offset @eyo = -10 #equipment section Y coordinate offset refresh(member_index) end def refresh(member_index) actor = $game_party.members[member_index] self.contents.clear self.contents.font.size = Fontsize draw_actor_face(actor,10,10,92) draw_actor_name(actor,120,10) self.contents.font.size = Fontsize self.contents.draw_text(190,30,200,20,"Classe: "+actor.class.name) self.contents.draw_text(120,30,200,20,"Nvl. "+actor.level.to_s) if LayoutMode == 1 draw_actor_state(actor,200,280,168) elsif LayoutMode == 2 draw_actor_state(actor,220,10) end s1 = actor.exp_s #total exp s2 = actor.current_lvl_exp #exp to get to this level if s1.is_a?(Numeric) s3 = s1-s2 #progress in this level s4 = actor.next_lvl_exp #exp needed for next level self.contents.font.size = Fontsize - 5 self.contents.draw_text(230,74,90,20,"EXP: "+s3.to_s+"/"+s4.to_s,0) self.contents.font.size = Fontsize else self.contents.draw_text(230,74,85,20,"-----/-----",2) end #Preparing bar colours back_color = Color.new(39, 58, 83, 255) str_color1 = Color.new(229, 153, 73, 255) str_color2 = Color.new(255, 72, 0, 255) def_color1 = Color.new(210, 255, 0, 255) def_color2 = Color.new(85, 129, 9, 255) spi_color1 = Color.new(99, 133, 161, 255) spi_color2 = Color.new(10, 60,107, 255) agi_color1 = Color.new(167, 125, 180, 255) agi_color2 = Color.new(90, 11, 107, 255) hp_color1 = Color.new(66, 114, 164, 255) hp_color2 = Color.new(122, 175, 229, 255) mp_color1 = Color.new(93, 50, 158, 255) mp_color2 = Color.new(145, 122, 229, 255) exp_color1 = Color.new(246, 243, 224, 255) exp_color2 = Color.new(255, 182, 0, 255) if s1.is_a?(Numeric) self.contents.fill_rect(230,90,89,7,back_color) self.contents.gradient_fill_rect(232,92,(85*s3)/s4,3,exp_color1,exp_color2)
else self.contents.fill_rect(230,60,89,7,back_color) end self.contents.fill_rect(120,67,104,7,back_color) self.contents.gradient_fill_rect(122,69,100*actor.hp/actor.maxhp,3,hp_color1,hp_color2) self.contents.draw_text(120,44,100,30,"HP",0) self.contents.draw_text(120,44,100,30,actor.hp.to_s + "/" + actor.maxhp.to_s,2) self.contents.fill_rect(120,90,104,7,back_color) self.contents.gradient_fill_rect(122,92,100*actor.mp/actor.maxmp,3,mp_color1,mp_color2) self.contents.draw_text(120,67,100,30,"MP",0) self.contents.draw_text(120,67,100,30,actor.mp.to_s + "/" + actor.maxmp.to_s,2) ##weapons weapon = $data_weapons[actor.weapon_id] shield = $data_armors[actor.armor1_id] helm =$data_armors[actor.armor2_id] body =$data_armors[actor.armor3_id] accessory =$data_armors[actor.armor4_id] bonus_atk = 0 bonus_def = 0 bonus_spi = 0 bonus_agi = 0 evasion = 0 crit = 4 if $data_actors[actor.id].critical_bonus crit +=4 end if weapon bonus_atk += weapon.atk bonus_def += weapon.def bonus_spi += weapon.spi bonus_agi += weapon.agi if weapon.critical_bonus crit += 4 end end if shield bonus_atk += shield.atk bonus_def += shield.def bonus_spi += shield.spi bonus_agi += shield.agi evasion += shield.eva end if helm bonus_atk += helm.atk bonus_def += helm.def bonus_spi += helm.spi bonus_agi += helm.agi evasion += helm.eva end if body bonus_atk += body.atk bonus_def += body.def bonus_spi += body.spi bonus_agi += body.agi evasion += body.eva end if accessory bonus_atk += accessory.atk bonus_def += accessory.def bonus_spi += accessory.spi bonus_agi += accessory.agi evasion += accessory.eva end if LayoutMode == 1 draw_item_name(weapon,160+@exo,125+@eyo,true) if weapon.two_handed == true draw_item_name(weapon,160+@exo,155+@eyo,true) else draw_item_name(shield,160+@exo,155+@eyo,true) end draw_item_name(helm,160+@exo,185+@eyo,true) draw_item_name(body,160+@exo,215+@eyo,true) draw_item_name(accessory,160+@exo,245+@eyo,true) #Testing area for Weapon upgrade script #self.contents.font.size = Fontsize - 7 #self.contents.draw_text(160+@exo,135,30,20,"[+"+weapon.level.to_s+"]",0) self.contents.font.color = Color.new(87,87,87,255) if !weapon draw_icon(216,160+@exo,125+@eyo,true) self.contents.draw_text(184+@exo,127+@eyo,200,20,"Desequipado") end if !shield draw_icon(217,160+@exo,155+@eyo,true) self.contents.draw_text(184+@exo,157+@eyo,200,20,"Desequipado") end if !helm draw_icon(218,160+@exo,185+@eyo,true) self.contents.draw_text(184+@exo,187+@eyo,200,20,"Desequipado") end if !body draw_icon(219,160+@exo,215+@eyo,true) self.contents.draw_text(184+@exo,217+@eyo,200,20,"Desequipado") end if !accessory draw_icon(220,160+@exo,245+@eyo,true) self.contents.draw_text(184+@exo,247+@eyo,200,20,"Desequipado") end self.contents.font.color = Color.new(255,255,255,255) elsif LayoutMode == 2 draw_item_name(weapon,160+@exo2,125+OFFSET+@eyo,true) if weapon.two_handed == true draw_item_name(weapon,160+@exo2,165+OFFSET+@eyo,true) else draw_item_name(shield,160+@exo2,165+OFFSET+@eyo,true) end draw_item_name(helm,160+@exo2,205+OFFSET+@eyo,true) draw_item_name(body,160+@exo2,245+OFFSET+@eyo,true) draw_item_name(accessory,160+@exo2,285+OFFSET+@eyo,true)
self.contents.font.color = Color.new(87,87,87,255) if !weapon draw_icon(216,160+@exo2,125+OFFSET+@eyo,true) self.contents.draw_text(184+@exo2,127+OFFSET+@eyo,200,20,"Desequipado") end if !shield and weapon.two_handed == false draw_icon(217,160+@exo2,165+OFFSET+@eyo,true) self.contents.draw_text(184+@exo2,167+OFFSET+@eyo,200,20,"Desequipado") end if !helm draw_icon(218,160+@exo2,205+OFFSET+@eyo,true) self.contents.draw_text(184+@exo2,207+OFFSET+@eyo,200,20,"Desequipado") end if !body draw_icon(219,160+@exo2,245+OFFSET+@eyo,true) self.contents.draw_text(184+@exo2,247+OFFSET+@eyo,200,20,"Desequipado") end if !accessory draw_icon(220,160+@exo2,285+OFFSET+@eyo,true) self.contents.draw_text(184+@exo2,287+OFFSET+@eyo,200,20,"Desequipado") end self.contents.font.color = Color.new(255,255,255,255) end self.contents.font.size = Fontsize - 5 self.contents.draw_text(10,120,100,20,Vocab::atk+": ") self.contents.draw_text(10,120,100,20,(actor.atk-bonus_atk).to_s+" + "+bonus_atk.to_s,2) self.contents.fill_rect(10,140,104,7,back_color) self.contents.gradient_fill_rect(12,142,((actor.atk-bonus_atk)*100)/MaxStat,3,str_color1,str_color2) self.contents.draw_text(10,150,100,20,Vocab::def+": ") self.contents.draw_text(10,150,100,20,(actor.def-bonus_def).to_s+" + "+bonus_def.to_s,2) self.contents.fill_rect(10,170,104,7,back_color) self.contents.gradient_fill_rect(12,172,((actor.def-bonus_def)*100)/MaxStat,3,def_color1,def_color2) self.contents.draw_text(10,180,100,20,Vocab::spi+": ") self.contents.draw_text(10,180,100,20,(actor.spi-bonus_spi).to_s+" + "+bonus_spi.to_s,2) self.contents.fill_rect(10,200,104,7,back_color) self.contents.gradient_fill_rect(12,202,((actor.spi-bonus_spi)*100)/MaxStat,3,spi_color1,spi_color2) self.contents.draw_text(10,210,100,20,Vocab::agi+": ") self.contents.draw_text(10,210,100,20,(actor.agi-bonus_agi).to_s+" + "+bonus_agi.to_s,2) self.contents.fill_rect(10,230,104,7,back_color) self.contents.gradient_fill_rect(12,232,((actor.agi-bonus_agi)*100)/MaxStat,3,agi_color1,agi_color2) if weapon hit_rate = weapon.hit else hit_rate = 95 end self.contents.font.size = Fontsize - 5 self.contents.font.color = Color.new(162,212,98,255) self.contents.draw_text(10,245,100,20,"Atq Máximo :",2) self.contents.draw_text(10,260,100,20,"Acerto (%) :",2) self.contents.draw_text(10,275,100,20,"Esquiva (%) :",2) self.contents.draw_text(10,290,100,20,"Crítico (%) :",2) self.contents.draw_text(120,245,60,20,(actor.atk*4).to_s,0) self.contents.draw_text(120,260,60,20,actor.base_hit.to_s + "+" + actor.hitr.to_s,0) self.contents.draw_text(120,275,60,20,actor.base_eva.to_s + "+" +actor.evar.to_s,0) self.contents.draw_text(120,290,60,20,actor.base_cri.to_s + "+" + actor.crir.to_s,0) self.contents.font.size = Fontsize-6 self.contents.font.color = text_color(16) self.contents.draw_text(135,260,60,20,"[Req:"+PointsPerHIT.to_s+"pt.]",2) self.contents.draw_text(135,275,60,20,"[Req:"+PointsPerEVA.to_s+"pt.]",2) self.contents.draw_text(135,290,60,20,"[Req:"+PointsPerCRIT.to_s+"pt.]",2) #self.contents.draw_text(120,260,60,20,(hit_rate+actor.hit_bonus).to_s,0) #self.contents.draw_text(120,275,60,20,(evasion+actor.eva).to_s,0) #self.contents.draw_text(120,290,60,20,(crit+actor.cri_bonus).to_s,0) if LayoutMode == 1 self.contents.font.color = Color.new(155,199,206,255) self.contents.font.size = Fontsize - 8 if weapon self.contents.draw_text(185+@exo,140+@eyo,100,20,Vocab::atk+"+"+weapon.atk.to_s) self.contents.draw_text(219+@exo,140+@eyo,100,20,Vocab::def+"+"+weapon.def.to_s) self.contents.draw_text(253+@exo,140+@eyo,100,20,Vocab::spi+"+"+weapon.spi.to_s) self.contents.draw_text(287+@exo,140+@eyo,100,20,Vocab::agi+"+"+weapon.agi.to_s) end
if shield self.contents.draw_text(185+@exo,170+@eyo,100,20,Vocab::atk+"+"+shield.atk.to_s) self.contents.draw_text(219+@exo,170+@eyo,100,20,Vocab::def+"+"+shield.def.to_s) self.contents.draw_text(253+@exo,170+@eyo,100,20,Vocab::spi+"+"+shield.spi.to_s) self.contents.draw_text(287+@exo,170+@eyo,100,20,Vocab::agi+"+"+shield.agi.to_s) end if helm self.contents.draw_text(185+@exo,200+@eyo,100,20,Vocab::atk+"+"+helm.atk.to_s) self.contents.draw_text(219+@exo,200+@eyo,100,20,Vocab::def+"+"+helm.def.to_s) self.contents.draw_text(253+@exo,200+@eyo,100,20,Vocab::spi+"+"+helm.spi.to_s) self.contents.draw_text(287+@exo,200+@eyo,100,20,Vocab::agi+"+"+helm.agi.to_s) end if body self.contents.draw_text(185+@exo,230+@eyo,100,20,Vocab::atk+"+"+body.atk.to_s) self.contents.draw_text(219+@exo,230+@eyo,100,20,Vocab::def+"+"+body.def.to_s) self.contents.draw_text(253+@exo,230+@eyo,100,20,Vocab::spi+"+"+body.spi.to_s) self.contents.draw_text(287+@exo,230+@eyo,100,20,Vocab::agi+"+"+body.agi.to_s) end if accessory self.contents.draw_text(185+@exo,260+@eyo,100,20,Vocab::atk+"+"+accessory.atk.to_s) self.contents.draw_text(219+@exo,260+@eyo,100,20,Vocab::def+"+"+accessory.def.to_s) self.contents.draw_text(253+@exo,260+@eyo,100,20,Vocab::spi+"+"+accessory.spi.to_s) self.contents.draw_text(287+@exo,260+@eyo,100,20,Vocab::agi+"+"+accessory.agi.to_s) end end if Mode == 2 self.contents.font.size = Fontsize - 8 self.contents.font.color = Color.new(155,199,206,255) self.contents.draw_text(23,100,125,20,"PONTOS",2) self.contents.draw_text(29,110,125,20,"REQUERIDOS",2) self.contents.font.size = Fontsize - 4 self.contents.draw_text(20,125,115,20,required(actor.atk-bonus_atk).to_s,2) self.contents.draw_text(20,155,115,20,required(actor.def-bonus_def).to_s,2) self.contents.draw_text(20,185,115,20,required(actor.spi-bonus_spi).to_s,2) self.contents.draw_text(20,215,115,20,required(actor.agi-bonus_agi).to_s,2) end
if LayoutMode == 2 self.contents.font.color = Color.new(155,199,206,255) self.contents.font.size = Fontsize - 8 if weapon self.contents.draw_text(185+@exo2,140+OFFSET+@eyo,100,20,Vocab::atk+"+"+weapon.atk.to_s) self.contents.draw_text(185+@exo2,150+OFFSET+@eyo,100,20,Vocab::def+"+"+weapon.def.to_s) self.contents.draw_text(253+@exo2,140+OFFSET+@eyo,100,20,Vocab::spi+"+"+weapon.spi.to_s) self.contents.draw_text(253+@exo2,150+OFFSET+@eyo,100,20,Vocab::agi+"+"+weapon.agi.to_s) end
if shield self.contents.draw_text(185+@exo2,180+OFFSET+@eyo,100,20,Vocab::atk+"+"+shield.atk.to_s) self.contents.draw_text(185+@exo2,190+OFFSET+@eyo,100,20,Vocab::def+"+"+shield.def.to_s) self.contents.draw_text(253+@exo2,180+OFFSET+@eyo,100,20,Vocab::spi+"+"+shield.spi.to_s) self.contents.draw_text(253+@exo2,190+OFFSET+@eyo,100,20,Vocab::agi+"+"+shield.agi.to_s) end if helm self.contents.draw_text(185+@exo2,220+OFFSET+@eyo,100,20,Vocab::atk+"+"+helm.atk.to_s) self.contents.draw_text(185+@exo2,230+OFFSET+@eyo,100,20,Vocab::def+"+"+helm.def.to_s) self.contents.draw_text(253+@exo2,220+OFFSET+@eyo,100,20,Vocab::spi+"+"+helm.spi.to_s) self.contents.draw_text(253+@exo2,230+OFFSET+@eyo,100,20,Vocab::agi+"+"+helm.agi.to_s) end if body self.contents.draw_text(185+@exo2,260+OFFSET+@eyo,100,20,Vocab::atk+"+"+body.atk.to_s) self.contents.draw_text(185+@exo2,270+OFFSET+@eyo,100,20,Vocab::def+"+"+body.def.to_s) self.contents.draw_text(253+@exo2,260+OFFSET+@eyo,100,20,Vocab::spi+"+"+body.spi.to_s) self.contents.draw_text(253+@exo2,270+OFFSET+@eyo,100,20,Vocab::agi+"+"+body.agi.to_s) end if accessory self.contents.draw_text(185+@exo2,300+OFFSET+@eyo,100,20,Vocab::atk+"+"+accessory.atk.to_s) self.contents.draw_text(185+@exo2,310+OFFSET+@eyo,100,20,Vocab::def+"+"+accessory.def.to_s) self.contents.draw_text(253+@exo2,300+OFFSET+@eyo,100,20,Vocab::spi+"+"+accessory.spi.to_s) self.contents.draw_text(253+@exo2,310+OFFSET+@eyo,100,20,Vocab::agi+"+"+accessory.agi.to_s) end end end
def required(base) return (((base-1)/10)+2).floor end end
#============================================================================== # ** Lettuce_Window_Help #------------------------------------------------------------------------------ # This window displays property of each attribute #============================================================================== class Lettuce_Window_Help < Window_Base def initialize(index) super(401,372,144,44) self.contents = Bitmap.new(width-32,height-32) self.contents.font.size = Fontsize - 6 refresh(index) end def refresh(index) self.contents.clear self.contents.font.color = text_color(16)
case index when 0 self.contents.draw_text(0,-5,112,20,"HP + "+HPIncreaseBy.to_s) when 1 self.contents.draw_text(0,-5,112,20,"MP + "+MPIncreaseBy.to_s) when 2 self.contents.draw_text(0,-5,112,20,Vocab::atk+" + "+IncreaseBy.to_s) when 3 self.contents.draw_text(0,-5,112,20,Vocab::def+" + "+IncreaseBy.to_s) when 4 self.contents.draw_text(0,-5,112,20,Vocab::spi+" + "+IncreaseBy.to_s) when 5 self.contents.draw_text(0,-5,112,20,Vocab::agi+" + "+IncreaseBy.to_s) when 6 self.contents.draw_text(0,-5,112,20,"Acerto + "+HITIncreaseBy.to_s) when 7 self.contents.draw_text(0,-5,112,20,"Esquiva + "+EVAIncreaseBy.to_s) when 8 self.contents.draw_text(0,-5,112,20,"Critíco + "+CRITIncreaseBy.to_s) end
end end
#============================================================================== # ** Scene_Stat_Dist #------------------------------------------------------------------------------ # Performs stat distribution process :) #============================================================================== class Scene_Stat_Dist < Scene_Base def initialize(menu_index) @menu_index = menu_index end def start super create_menu_background ihp = Vocab::hp imp = Vocab::mp i1 = Vocab::atk i2 = Vocab::def i3 = Vocab::spi i4 = Vocab::agi i5 = "Acerto" i6 = "Esquiva" i7 = "Crítico" @window_select = Window_Command.new(144,[ihp,imp,i1,i2,i3,i4,i5,i6,i7]) if $position @window_select.index = $position - 1 else @window_select.index = 0 end @window_select.active = true @window_select.x = 401 @window_select.y = 71 @window_top = Lettuce_Window_Top.new @window_points = Lettuce_Window_Points.new(@menu_index) @window_info = Lettuce_Window_Info.new(@menu_index) @window_help = Lettuce_Window_Help.new(@window_select.index) end def terminate super dispose_menu_background @window_top.dispose @window_points.dispose @window_info.dispose @window_help.dispose @window_select.dispose end def update update_menu_background #@window_points.refresh(@menu_index) @window_select.update #@window_help.refresh(@window_select.index) if Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN) @window_help.refresh(@window_select.index) end @changes = 0 if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::R) or Input.trigger?(Input::RIGHT) @menu_index += 1 @menu_index %= $game_party.members.size $scene = Scene_Stat_Dist.new(@menu_index) elsif Input.trigger?(Input::L) or Input.trigger?(Input::LEFT) @menu_index += $game_party.members.size - 1 @menu_index %= $game_party.members.size $scene = Scene_Stat_Dist.new(@menu_index) elsif Input.trigger?(Input::C) #Points addition begins #which attribute if Mode == 1 do_point_reg elsif Mode == 2 do_point_rag end end
end def do_point_reg @att = @window_select.index actor = $game_party.members[@menu_index] ##weapons weapon = $data_weapons[actor.weapon_id] shield = $data_armors[actor.armor1_id] helm =$data_armors[actor.armor2_id] body =$data_armors[actor.armor3_id] accessory =$data_armors[actor.armor4_id] bonus_atk = 0 bonus_def = 0 bonus_spi = 0 bonus_agi = 0 if weapon bonus_atk += weapon.atk bonus_def += weapon.def bonus_spi += weapon.spi bonus_agi += weapon.agi end if shield bonus_atk += shield.atk bonus_def += shield.def bonus_spi += shield.spi bonus_agi += shield.agi end if helm bonus_atk += helm.atk bonus_def += helm.def bonus_spi += helm.spi bonus_agi += helm.agi end if body bonus_atk += body.atk bonus_def += body.def bonus_spi += body.spi bonus_agi += body.agi end if accessory bonus_atk += accessory.atk bonus_def += accessory.def bonus_spi += accessory.spi bonus_agi += accessory.agi end case @att when 0 #HP if actor.points < PointsPerHP Sound.play_cancel elsif actor.maxhp >= MaxHP Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].maxhp += HPIncreaseBy if $game_party.members[@menu_index].maxhp > MaxHP $game_party.members[@menu_index].maxhp = MaxHP end actor.points -= PointsPerHP @changes += 1 $position = 1 end when 1 #MP if actor.points < PointsPerMP Sound.play_cancel elsif actor.maxmp >= MaxMP Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].maxmp += MPIncreaseBy if $game_party.members[@menu_index].maxmp > MaxMP $game_party.members[@menu_index].maxmp = MaxMP end actor.points -= PointsPerMP @changes += 1 $position = 1 end when 2 #ATK if actor.points < 1 Sound.play_cancel elsif (actor.atk-bonus_atk) >= MaxStat Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].atk += IncreaseBy if ($game_party.members[@menu_index].atk-bonus_atk) > MaxStat $game_party.members[@menu_index].atk = MaxStat+bonus_atk end actor.points -= 1 @changes += 1 $position = 1 end when 3 #DEF if actor.points < 1 Sound.play_cancel elsif (actor.def-bonus_def) >= MaxStat Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].def += IncreaseBy if ($game_party.members[@menu_index].def-bonus_def) > MaxStat $game_party.members[@menu_index].def = MaxStat+bonus_def end actor.points -= 1 @changes += 1 $position = 2 end when 4 #SPI if actor.points < 1 Sound.play_cancel elsif (actor.spi-bonus_spi) >= MaxStat Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].spi += IncreaseBy if ($game_party.members[@menu_index].spi-bonus_spi) > MaxStat $game_party.members[@menu_index].spi = MaxStat+bonus_spi end actor.points -= 1 @changes += 1 $position = 3 end when 5 #AGI if actor.points < 1 Sound.play_cancel elsif (actor.agi-bonus_agi) >= MaxStat Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].agi += IncreaseBy if ($game_party.members[@menu_index].agi-bonus_agi) > MaxStat $game_party.members[@menu_index].agi = MaxStat+bonus_agi end actor.points -= 1 @changes += 1 $position = 4 end when 6 #HIT if actor.points < PointsPerHIT Sound.play_cancel elsif actor.hitr >= MaxHIT Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].hitr += HITIncreaseBy if $game_party.members[@menu_index].hitr > MaxHIT $game_party.members[@menu_index].hitr = MaxHIT end actor.points -= PointsPerHIT @changes += 1 $position = 1 end when 7 #EVA if actor.points < PointsPerEVA Sound.play_cancel elsif actor.evar >= MaxEVA Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].evar += EVAIncreaseBy if $game_party.members[@menu_index].evar > MaxEVA $game_party.members[@menu_index].evar = MaxEVA end actor.points -= PointsPerEVA @changes += 1 $position = 1 end when 8 #CRIT if actor.points < PointsPerCRIT Sound.play_cancel elsif actor.crir >= MaxCRIT Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].crir += CRITIncreaseBy if $game_party.members[@menu_index].crir > MaxCRIT $game_party.members[@menu_index].crir = MaxCRIT end actor.points -= PointsPerCRIT @changes += 1 $position = 1 end end if @changes > 0 @window_info.refresh(@menu_index) @window_points.refresh(@menu_index) #$scene = Scene_Stat_Dist.new(@menu_index) end end def do_point_rag @att = @window_select.index actor = $game_party.members[@menu_index] ##weapons weapon = $data_weapons[actor.weapon_id] shield = $data_armors[actor.armor1_id] helm =$data_armors[actor.armor2_id] body =$data_armors[actor.armor3_id] accessory =$data_armors[actor.armor4_id] bonus_atk = 0 bonus_def = 0 bonus_spi = 0 bonus_agi = 0 if weapon bonus_atk += weapon.atk bonus_def += weapon.def bonus_spi += weapon.spi bonus_agi += weapon.agi end if shield bonus_atk += shield.atk bonus_def += shield.def bonus_spi += shield.spi bonus_agi += shield.agi end if helm bonus_atk += helm.atk bonus_def += helm.def bonus_spi += helm.spi bonus_agi += helm.agi end if body bonus_atk += body.atk bonus_def += body.def bonus_spi += body.spi bonus_agi += body.agi end if accessory bonus_atk += accessory.atk bonus_def += accessory.def bonus_spi += accessory.spi bonus_agi += accessory.agi end case @att when 0 #HP if actor.points < PointsPerHP Sound.play_cancel elsif actor.maxhp >= MaxHP Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].maxhp += HPIncreaseBy if $game_party.members[@menu_index].maxhp > MaxHP $game_party.members[@menu_index].maxhp = MaxHP end actor.points -= PointsPerHP @changes += 1 $position = 1 end when 1 #MP if actor.points < PointsPerMP Sound.play_cancel elsif actor.maxmp >= MaxMP Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].maxmp += MPIncreaseBy if $game_party.members[@menu_index].maxmp > MaxMP $game_party.members[@menu_index].maxmp = MaxMP end actor.points -= PointsPerMP @changes += 1 $position = 1 end when 2 #ATK base_value = actor.atk-bonus_atk points = actor.points if enough_point(base_value,points) Sound.play_cancel elsif (actor.atk-bonus_atk) >= MaxStat Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].atk += IncreaseBy if ($game_party.members[@menu_index].atk-bonus_atk) > MaxStat $game_party.members[@menu_index].atk = MaxStat+bonus_atk end actor.points -= required(base_value) @changes += 1 $position = 1 end when 3 #DEF base_value = actor.def-bonus_def points = actor.points if enough_point(base_value,points) Sound.play_cancel elsif (actor.def-bonus_def) >= MaxStat Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].def += IncreaseBy if ($game_party.members[@menu_index].def-bonus_def) > MaxStat $game_party.members[@menu_index].def = MaxStat+bonus_def end actor.points -= required(base_value) @changes += 1 $position = 2 end when 4 #SPI base_value = actor.spi-bonus_spi points = actor.points if enough_point(base_value,points) Sound.play_cancel elsif (actor.spi-bonus_spi) >= MaxStat Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].spi += IncreaseBy if ($game_party.members[@menu_index].spi-bonus_spi) > MaxStat $game_party.members[@menu_index].spi = MaxStat+bonus_spi end actor.points -= required(base_value) @changes += 1 $position = 3 end when 5 #AGI base_value = actor.agi-bonus_agi points = actor.points if enough_point(base_value,points) Sound.play_cancel elsif (actor.agi-bonus_agi) >= MaxStat Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].agi += IncreaseBy if ($game_party.members[@menu_index].agi-bonus_agi) > MaxStat $game_party.members[@menu_index].agi = MaxStat+bonus_agi end actor.points -= required(base_value) @changes += 1 $position = 4 end when 6 #HIT if actor.points < PointsPerHIT Sound.play_cancel elsif actor.hitr >= MaxHIT Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].hitr += HITIncreaseBy if $game_party.members[@menu_index].hitr > MaxHIT $game_party.members[@menu_index].hitr = MaxHIT end actor.points -= PointsPerHIT @changes += 1 $position = 1 end when 7 #EVA if actor.points < PointsPerEVA Sound.play_cancel elsif actor.evar >= MaxEVA Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].evar += EVAIncreaseBy if $game_party.members[@menu_index].evar > MaxEVA $game_party.members[@menu_index].evar = MaxEVA end actor.points -= PointsPerEVA @changes += 1 $position = 1 end when 8 #CRIT if actor.points < PointsPerCRIT Sound.play_cancel elsif actor.crir >= MaxCRIT Sound.play_cancel else Sound.play_use_item $game_party.members[@menu_index].crir += CRITIncreaseBy if $game_party.members[@menu_index].crir > MaxCRIT $game_party.members[@menu_index].crir = MaxCRIT end actor.points -= PointsPerCRIT @changes += 1 $position = 1 end end if @changes > 0 @window_points.refresh(@menu_index) @window_info.refresh(@menu_index) #$scene = Scene_Stat_Dist.new(@menu_index) end end def enough_point(base,points) required = (((base-1)/10)+2).floor if required > points return true elsif required <= points return false end end def required(base) return (((base-1)/10)+2).floor end end
#============================================================================== # ** Game_Actor #------------------------------------------------------------------------------ # Giving game actor a point attribute # -> $game_party.member[x].points #==============================================================================
class Game_Actor < Game_Battler
attr_accessor :points attr_accessor :hit_bonus attr_accessor :eva_bonus attr_accessor :cri_bonus attr_accessor :hitr attr_accessor :evar attr_accessor :crir #attr_accessor :current_lvl_exp #attr_accessor :next_lvl_exp alias Lettuce_Game_Actor_Ini initialize def initialize(actor_id) Lettuce_Game_Actor_Ini(actor_id) @points = StartPoints @hitr = 0 @evar = 0 @crir = 0 #@current_lvl_exp = @exp_list[@level-1] #@next_lvl_exp = @exp_list[@level] end
def points return @points end #-------------------------------------------------------------------------- # * Get Hit Rate #-------------------------------------------------------------------------- def hit if two_swords_style n1 = weapons[0] == nil ? 95 : weapons[0].hit n2 = weapons[1] == nil ? 95 : weapons[1].hit n = [n1, n2].min else n = weapons[0] == nil ? 95 : weapons[0].hit end if n+@hitr <= MaxHIT return n+@hitr else return MaxHIT end end #-------------------------------------------------------------------------- # * Get Evasion Rate #-------------------------------------------------------------------------- def eva n = 5 for item in armors.compact do n += item.eva end if n+@evar <= MaxEVA return n+@evar else return MaxEVA end end #-------------------------------------------------------------------------- # * Get Critical Ratio #-------------------------------------------------------------------------- def cri n = 4 n += 4 if actor.critical_bonus for weapon in weapons.compact n += 4 if weapon.critical_bonus end if n+@crir <= MaxCRIT return n+@crir else return MaxCRIT end end #-------------------------------------------------------------------------- # * Get Hit Rate #-------------------------------------------------------------------------- def base_hit if two_swords_style n1 = weapons[0] == nil ? 95 : weapons[0].hit n2 = weapons[1] == nil ? 95 : weapons[1].hit n = [n1, n2].min else n = weapons[0] == nil ? 95 : weapons[0].hit end return n end #-------------------------------------------------------------------------- # * Get Evasion Rate #-------------------------------------------------------------------------- def base_eva n = 5 for item in armors.compact do n += item.eva end return n end #-------------------------------------------------------------------------- # * Get Critical Ratio #-------------------------------------------------------------------------- def base_cri n = 4 n += 4 if actor.critical_bonus for weapon in weapons.compact n += 4 if weapon.critical_bonus end return n end #-------------------------------------------------------------------------- # * bonus rates #-------------------------------------------------------------------------- def hitr return @hitr end def evar return @evar end def crir return @crir end def current_lvl_exp return @exp_list[@level] end def next_lvl_exp return @exp_list[@level+1]-@exp_list[@level] end end Créditos: Lettuce( Criação ) Toyota ( Tradução e Modificação ) Mais intruções no script. | |
|