Edit.: Atualizei o script [27/11/2010]
HL-Dificult Option 2.1
[color:e25c=#36f]introdução Dramática:
Eu ia lançar um Hl-Update Pack, com todos os scripts q eu fiz, só q melhorados, com os novos conhecimentos q adquiri ao longo de minha vida de scripter.xD. Porém parei de usar o RmXp, pelo menos por enquanto, n deu pra terminar tds os scripts, mas pelo menos fiz 2, e estou disponibilzando.
[Momento Emo]Esses podem ser os meus últimos scripts [o outro eu ja postei], então espero q gostem.[/Momento Emo]
[color:e25c=#36f]Descrição:Cria as opções de dificuldade, onde você define quanto porcento o monstro ficará mais/menos forte, dará a mais/menos em ouro e exp e chances terá a mais/menos de derrubar um item, não esqueça de configurar o script.
[color:e25c=#36f]Histórico de Updates:
Na Versão 2.0
=> Pode-se aumentar número de dificuldades;
=> Pode-se especificar uma porcentagem de desvantagem/vantagem para os atributos desejados;
=> Pode-se criar uma probabilidade exata para cair o item, em cada dificuldade;
=> Pode-se ativar uma switch quando o jogador escolher a dificuldade;
=> Uma melhora no código em si, através do uso do alias.
Na Versão 2.1
=> Quando botava 0, o inimigo ficava 2x mais fraco (corrigido)
=> Quando o inimigo tinha vantagem, dava erro no momento da batalha (corrigido)
[color:e25c=#36f]Função:Dar chance de jogadores não tão experientes ganharem experiencia.XD
[color:e25c=#36f]Screens:
- Como Adicionar Scripts ao Rpg Maker Xp??
Simplesmente clique em um ícone(papel e lápis) que está na área
superior, direita.Abrirá uma janela(a janela de scripts), terá uma lista
do lado esquerdo,o último item é o main.Apartir daí, você pode fazer
2 coisas:
1º- Ou clica com o botão direito em mais e selecione inserir,
aparecerá na lista um espaço em branco, selecione, e no espaço
do lado esquerdo, cole o Script(Texto).
2º- Ou abre a demo(projeto de demonstração) do script, abre a
janela de scripts e clica com o botão direito no item "HL-Dificult
Option" e seleciona copiar, agora abra seu projeto, abra a janela
de scripts e clique com o botão direito no item "main" da lista e
selecione colar.
[color:e25c=#36f]Download:
Não é necessário uma demo
Texto
[color:e25c=#36f]Créditos:HugoLinux/HugoLnx, criei o script xD
Black, localizou bugs
[TAGS]
Script
HL-scripts
dificuldade
HugoLinux
HugoLnx
2.0
2.1
HL-Dificult Option 2.1
[color:e25c=#36f]introdução Dramática:
Eu ia lançar um Hl-Update Pack, com todos os scripts q eu fiz, só q melhorados, com os novos conhecimentos q adquiri ao longo de minha vida de scripter.xD. Porém parei de usar o RmXp, pelo menos por enquanto, n deu pra terminar tds os scripts, mas pelo menos fiz 2, e estou disponibilzando.
[Momento Emo]Esses podem ser os meus últimos scripts [o outro eu ja postei], então espero q gostem.[/Momento Emo]
[color:e25c=#36f]Descrição:Cria as opções de dificuldade, onde você define quanto porcento o monstro ficará mais/menos forte, dará a mais/menos em ouro e exp e chances terá a mais/menos de derrubar um item, não esqueça de configurar o script.
[color:e25c=#36f]Histórico de Updates:
Na Versão 2.0
=> Pode-se aumentar número de dificuldades;
=> Pode-se especificar uma porcentagem de desvantagem/vantagem para os atributos desejados;
=> Pode-se criar uma probabilidade exata para cair o item, em cada dificuldade;
=> Pode-se ativar uma switch quando o jogador escolher a dificuldade;
=> Uma melhora no código em si, através do uso do alias.
Na Versão 2.1
=> Quando botava 0, o inimigo ficava 2x mais fraco (corrigido)
=> Quando o inimigo tinha vantagem, dava erro no momento da batalha (corrigido)
[color:e25c=#36f]Função:Dar chance de jogadores não tão experientes ganharem experiencia.XD
[color:e25c=#36f]Screens:
- Spoiler:
- [img width=614 height=480][Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
- Como Adicionar Scripts ao Rpg Maker Xp??
Simplesmente clique em um ícone(papel e lápis) que está na área
superior, direita.Abrirá uma janela(a janela de scripts), terá uma lista
do lado esquerdo,o último item é o main.Apartir daí, você pode fazer
2 coisas:
1º- Ou clica com o botão direito em mais e selecione inserir,
aparecerá na lista um espaço em branco, selecione, e no espaço
do lado esquerdo, cole o Script(Texto).
2º- Ou abre a demo(projeto de demonstração) do script, abre a
janela de scripts e clica com o botão direito no item "HL-Dificult
Option" e seleciona copiar, agora abra seu projeto, abra a janela
de scripts e clique com o botão direito no item "main" da lista e
selecione colar.
[color:e25c=#36f]Download:
Não é necessário uma demo
Texto
- Código:
#==============================================================================
# HL - Dificult Option 2.1 (2 Bugs Corrigidos)
#------------------------------------------------------------------------------
# Este script faz com que haja opções de dificuldade.
#------------------------------------------------------------------------------
# Autor: HugoLinux/HugoLnx (http://hugolnx.wordpress.com/)
# Colaboração: Black ( encontrou os bugs ;) )
#==============================================================================
#Defina aqui o Nome das Dificuldades, par adicionar dificuldades
#adicione , "<nome da dificuldade>" se eu quiser adicionar a
#dificuldade "Impossível", eu escrevo:
#DIFI = ["Fácil","Médio","Difícil","Muito Difícil","Impossível"]
#lembre-se que sempre que adicionar/retirar uma dificuldade,
#tem que adicionar/retirar uma "casa" ao resto dos Atributos...
DIFI = ["Fácil","Médio","Difícil","Muito Difícil"]
#Defina aqui a porcentagem de desvantagem/vantagem que o monstro
#terá, em porcentagem.Por exemplo, no caso a baixo...
#-25 é negativo, então está representando que o monstro tera uma
#desvantagem de 25%(escreva 0 para que não tenha desvantagem/vantagem),
#e já que é o 1º então esta desvantagem será aplicada ao 1º nível
#citado, no caso é "Facil".
DIFI_L = [-25,0,50,100]
#Defina aqui o ID da switch que será ativada caso o nível seja
#escolhido, deixe 0 para que não seja ativada nenhuma
DIFI_S = [1,2,3,4]
#Se você quiser uma desvantagem/vantagem individual para cada
#atributo do inimigo defina abaixo, se não quiser deixe nil mesmo:
HP = [nil,nil,nil,nil] # Hp
MP = [nil,nil,nil,nil] # Mp
FOR = [nil,nil,nil,nil] # Força
DES = [nil,nil,nil,nil] # Destreza
AGI = [nil,nil,nil,nil] # Agilidade
MAG = [nil,nil,nil,nil] # Magia
ATK = [nil,nil,nil,nil] # Ataque
DEF_FIS = [nil,nil,nil,nil] # Defesa Física
DEF_MAG = [nil,nil,nil,nil] # Defesa Mágica
ESQ = [nil,nil,nil,nil] # Esquiva
EXP = [nil,nil,nil,nil] # Experiência
DIN = [nil,nil,nil,nil] # Dinheiro
ITEM_PROB = [nil,nil,nil,nil] # Probabilidade de cair item
#Se você quiser uma probabilidade exata de probabilidade
#escreva-a abaixo:
ITEM_PROB_EXACT = [nil,nil,nil,nil]
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# - Inicialização de Objetos
#
# troop_id : ID do Grupo de Inimigos
# member_index : Índice de Inimigos
#--------------------------------------------------------------------------
def initialize(troop_id, member_index)
super()
@troop_id = troop_id
@member_index = member_index
troop = $data_troops[@troop_id]
@enemy_id = troop.members[@member_index].enemy_id
enemy = $data_enemies[@enemy_id]
@battler_name = enemy.battler_name
@battler_hue = enemy.battler_hue
@hp = maxhp
@sp = maxsp
@hidden = troop.members[@member_index].hidden
@immortal = troop.members[@member_index].immortal
end
def calc_difi_vant(vants,type)
if vants[$difi_op] < 0
difi = 100 - vants[$difi_op].abs
difi2 = 100 + vants[$difi_op].abs
elsif vants[$difi_op] == 0
difi = 100
difi2 = 100
else
difi = 100 + vants[$difi_op]
difi2 = 100 - vants[$difi_op]
end
return type == 0 ? difi : difi2
end
def base_maxhp
mult = HP[$difi_op] == nil ? $difi : calc_difi_vant(HP,0)
return Integer(($data_enemies[@enemy_id].maxhp * mult)/100)
end
#--------------------------------------------------------------------------
# - Selcionar Base do MaxMP
#--------------------------------------------------------------------------
def base_maxsp
mult = MP[$difi_op] == nil ? $difi : calc_difi_vant(MP,0)
return Integer(($data_enemies[@enemy_id].maxsp * mult)/100)
end
#--------------------------------------------------------------------------
# - Selecionar Base da Força
#--------------------------------------------------------------------------
def base_str
mult = FOR[$difi_op] == nil ? $difi : calc_difi_vant(FOR,0)
return Integer(($data_enemies[@enemy_id].str * mult)/100)
end
#--------------------------------------------------------------------------
# - Selecionar Base da Destreza
#--------------------------------------------------------------------------
def base_dex
mult = DES[$difi_op] == nil ? $difi : calc_difi_vant(DES,0)
return Integer(($data_enemies[@enemy_id].dex * mult)/100)
end
#--------------------------------------------------------------------------
# - Selecionar Base da Agilidade
#--------------------------------------------------------------------------
def base_agi
mult = AGI[$difi_op] == nil ? $difi : calc_difi_vant(AGI,0)
return Integer(($data_enemies[@enemy_id].agi * mult)/100)
end
#--------------------------------------------------------------------------
# - Selecionar Base da Magia
#--------------------------------------------------------------------------
def base_int
mult = MAG[$difi_op] == nil ? $difi : calc_difi_vant(MAG,0)
return Integer(($data_enemies[@enemy_id].int * mult)/100)
end
#--------------------------------------------------------------------------
# - Selecionar Base do Ataque
#--------------------------------------------------------------------------
def base_atk
mult = ATK[$difi_op] == nil ? $difi : calc_difi_vant(ATK,0)
return Integer(($data_enemies[@enemy_id].atk * mult)/100)
end
#--------------------------------------------------------------------------
# - Selecionar Base da Defesa
#--------------------------------------------------------------------------
def base_pdef
mult = DEF_FIS[$difi_op] == nil ? $difi : calc_difi_vant(DEF_FIS,0)
return Integer(($data_enemies[@enemy_id].pdef * mult)/100)
end
#--------------------------------------------------------------------------
# - Selecionar Base da Defesa Mágica
#--------------------------------------------------------------------------
def base_mdef
mult = DEF_MAG[$difi_op] == nil ? $difi : calc_difi_vant(DEF_MAG,0)
return Integer(($data_enemies[@enemy_id].mdef * mult)/100)
end
#--------------------------------------------------------------------------
# - Selecionar Base da Esquiva
#--------------------------------------------------------------------------
def base_eva
mult = ESQ[$difi_op] == nil ? $difi : calc_difi_vant(ESQ,0)
return Integer(($data_enemies[@enemy_id].eva * mult)/100)
end
def exp
mult = EXP[$difi_op] == nil ? $difi2 : calc_difi_vant(EXP,1)
return Integer(($data_enemies[@enemy_id].exp * mult)/100)
end
#--------------------------------------------------------------------------
# - Selecionar Dinheiro
#--------------------------------------------------------------------------
def gold
mult = DIN[$difi_op] == nil ? $difi2 : calc_difi_vant(DIN,1)
return Integer(($data_enemies[@enemy_id].gold * mult)/100)
end
def treasure_prob
mult = ITEM_PROB[$difi_op] == nil ? $difi2 : calc_difi_vant(ITEM_PROB,1)
return ITEM_PROB_EXACT[$difi_op] == nil ? Integer(($data_enemies[@enemy_id].treasure_prob * mult)/100) : ITEM_PROB_EXACT[$difi_op]
end
end
#==============================================================================
# Scene_Title
#------------------------------------------------------------------------------
# Esta classe trata da Tela de Título
#==============================================================================
class Scene_Title
def main
if $BTEST
battle_test
return
end
# Carregar o Banco de Dados
$data_actors = load_data("Data/Actors.rxdata")
$data_classes = load_data("Data/Classes.rxdata")
$data_skills = load_data("Data/Skills.rxdata")
$data_items = load_data("Data/Items.rxdata")
$data_weapons = load_data("Data/Weapons.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
$data_enemies = load_data("Data/Enemies.rxdata")
$data_troops = load_data("Data/Troops.rxdata")
$data_states = load_data("Data/States.rxdata")
$data_animations = load_data("Data/Animations.rxdata")
$data_tilesets = load_data("Data/Tilesets.rxdata")
$data_common_events = load_data("Data/CommonEvents.rxdata")
$data_system = load_data("Data/System.rxdata")
# Criar um Sistema
$game_system = Game_System.new
# Criar um gráfico de título
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# Criar uma janela de comandos
s1 = "Novo Jogo"
s2 = "Continuar"
s3 = "Sair"
@command_window = Window_Command.new(192, [s1, s2, s3])
@command_window.back_opacity = 160
@command_window.x = 224
@command_window.y = 288
@command_window.y -= (DIFI.size - 5) * 32 if DIFI.size > 5
op = []
for i in 0..DIFI.size - 1
op << DIFI[i]
end
bigest = check_bigest(DIFI)
@difi_window = Window_Command.new(w_w(bigest) + 48 ,op)
@difi_window.height = 1
@difi_window.visible = false
@difi_window.active = false
@difi_window.back_opacity = 160
@difi_window.x = @command_window.x + @command_window.width
@difi_window.y = @command_window.y
@continue_enabled = false
for i in 0..3
if FileTest.exist?("Saves/Save#{i+1}.rxdata")
@continue_enabled = true
end
end
if @continue_enabled
@command_window.index = 1
else
@command_window.disable_item(1)
end
$game_system.bgm_play($data_system.title_bgm)
Audio.me_stop
Audio.bgs_stop
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@difi_window.dispose
@sprite.bitmap.dispose
@sprite.dispose
end
def check_bigest(words)
bigest = words[0]
for i in 0..words.size - 2
if w_w(words[i]) < w_w(words[i+1])
bigest = words[i+1]
end
end
return bigest
end
def w_w(word)
m_bitmap = Bitmap.new(32,32)
return m_bitmap.text_size(word).width
end
def update
if @difi_window.visible == true and @difi_window.height <= DIFI.size * 32 + 32 - 4
@difi_window.height += 5
elsif @difi_window.visible
@difi_window.height = DIFI.size * 32 + 32
@difi_window.active = true
if Input.trigger?(Input::B)
@difi_window.active = false
@difi_window.visible = false
@difi_window.height = 1
@command_window.active = true
end
if Input.trigger?(Input::C)
$difi_op = @difi_window.index
if DIFI_L[@difi_window.index] < 0
$difi = 100 - DIFI_L[@difi_window.index].abs
$difi2 = 100 + DIFI_L[@difi_window.index].abs
elsif DIFI_L[@difi_window.index] == 0
$difi = 100
$difi2 = 100
else
$difi = 100 + DIFI_L[@difi_window.index]
$difi2 = 100 - DIFI_L[@difi_window.index]
end
#$difi = Integer($difi)
command_new_game
end
end
# Atualizar a janela de comandos
@command_window.update
@difi_window.update
# Se o botão C for pressionado
if Input.trigger?(Input::C)
# ramificação pela posição do cursor
case @command_window.index
when 0 # Novo Jogo
@difi_window.visible = true
@difi_window.active = false
@command_window.active = false
$game_system.se_play($data_system.decision_se)
when 1 # Continuar
command_continue
when 2 # Sair
command_shutdown
end
end
end
alias ali_new_game command_new_game
def command_new_game
ali_new_game
$game_switches[DIFI_S[@difi_window.index]] = true if DIFI_S[@difi_window.index] != 0
$scene = Scene_Map.new
end
end
[color:e25c=#36f]Créditos:HugoLinux/HugoLnx, criei o script xD
Black, localizou bugs
[TAGS]
Script
HL-scripts
dificuldade
HugoLinux
HugoLnx
2.0
2.1