Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Ainda temos gente aqui?
[att2] Pet Global para Netplay Master v4 EmptyQui 25 Nov 2021, 14:04 por Halt

» [Dúvida] Como tirar a porcentagem de esquiva
[att2] Pet Global para Netplay Master v4 EmptySex 19 Nov 2021, 17:14 por Halt

» Pokémon Genesis Online! (PGO)
[att2] Pet Global para Netplay Master v4 EmptyQua 05 Jul 2017, 18:08 por Lexar

» Tileset Converter to MV
[att2] Pet Global para Netplay Master v4 EmptySex 12 maio 2017, 14:07 por Douggi

» Pack Resources, Sprites e etc
[att2] Pet Global para Netplay Master v4 EmptyQua 23 Dez 2015, 12:30 por raydengv

» Download RPG Maker 2003 + RTP em português
[att2] Pet Global para Netplay Master v4 EmptyTer 22 Dez 2015, 11:14 por ::KimMax::

» Fantasy Art Online
[att2] Pet Global para Netplay Master v4 EmptyDom 18 Out 2015, 18:42 por daviih123

» Você vai ter medo do Nerve gear?
[att2] Pet Global para Netplay Master v4 EmptySáb 25 Jul 2015, 17:02 por Kirito-kun

» O Barato é louco
[att2] Pet Global para Netplay Master v4 EmptySáb 27 Jun 2015, 16:26 por Halt

» Download RPG Maker 2000 + RTP em português
[att2] Pet Global para Netplay Master v4 EmptyQui 21 maio 2015, 20:28 por Wismael


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

Halt

Halt
Administrador
Administrador
[Autor: RD12]
Pet Global
Script atualizado 14/07/12 as 14:40 horas, mudei a luva, para o acessório, para equipar o Pet e corrigi bugs.
A luva nao adicionava os atributos, recomendo atualizarem os scripts.
Aposto que quando viram o nome, disseram: Mais alguém pedindo esse script.
Esse script é um dos mais pedidos, então eu decidi faze-lo, apesar de eu já ter feito um pet global, mas esse é muito mais estável e melhor.
Descrição: Com esse sistema, todos os jogadores poderão ter um pet, que será visto por todos jogadores. O pet ocupará o lugar da Luva no jogo, e você define quais Luvas são o Pet e o gráfico do pet ao equipar tal luva.
O Pet pode recuperar HP/MP com o tempo(escolhido por você)
O Pet pode aumentar o Atk, Def.. Só por no banco de dados, na luva para fazer isso.
Galera o Pet já ta global, e segue o jogador certinho, mas falta melhorar a animação de seguir o jogador global, e umas coisas simples, algo que pretendo fazer numa próxima versão.
Colocando no seu jogo:
Antes de mais nada, temos que alter alguns scripts, primeiro vamos adicionar para enviar um pacote a mais para o servidor, com o nome do gráfico do pet do jogador.
Siga os passos:
Script [NET] Network - Linha 375. Em baixo adicione:
Código:
if !$game_party.actors[0].armor4_id.nil?
if PET::ID[$game_party.actors[0].armor4_id].nil?
send += "@pet = '';"
else
send += "@pet = '#{PET::ID[$game_party.actors[0].armor4_id][0]}';"
end
end
No mesmo script na linha 513, em baixo adicione:
Código:
if $game_party.actors[0].armor4_id != 0
if PET::ID[$game_party.actors[0].armor4_id].nil?
send += "@pet = '';"
else
send += "@pet = '#{PET::ID[$game_party.actors[0].armor4_id][0]}';"
end
end
Agora no script [GM] Game_NetPlayer, linha 98, em baixo add:
Código:
@pet = ''
No mesmo script, linha 332, em baixo adicione:
Código:
def pet
return @pet
end
Por último, no script [SPR] Sprite_NetCharacter, linha 121, adicione em baixo:
Código:
@pet_spr = Sprite.new(self.viewport)
@pet_spr.bitmap = RPG::Cache.character(@character.pet, @character.character_hue)
@pet_spr.visible = self.visible
Depois dessas modificações, crie um script acima do main, e adicione o código:
Código:
=begin
:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
|Autor: RD12| Pet Global
--------------------------------------------------------------------------------
Com esse sistema os jogadores poderão ter Pets, globais.
O pet será o Anel[acessório].
--------------------------------------------------------------------------------
Para criar um Pet, insira no Módulo PET o seguinte:
ID[id] = ["Gráfico", HP, MP, Tempo]
---------------------------Explicação-------------------------------------------
id = ID do Anel, que será o Pet
HP/MP = HP/MP que o pet recupera com o Tempo
Tempo = Segundos que o pet recupera o HP/MP
:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
AldeiaRpgBr.com
=end
module PET
ID = []
#ID[Luva_ID] = ["Gráfico", HP, MP, Tempo(segundos)]
ID[25] = ["cachorro", 0, 0, 0]#Botei pra não recuperar HP/MP
#ID[37] = ["mecha", 10, 10, 5]
end
class Scene_Map
attr_reader :spriteset
end
class Spriteset_Map
attr_reader :character_sprites, :viewport1
alias rd12_dispose dispose
def player_sprite
@character_sprites.each do |spr_char|
if spr_char.character == $game_player
return spr_char
end
end
end
def dispose
$Pet = nil
rd12_dispose
end
end
class Scene_Map
attr_reader :character
attr_reader :animation_id
alias alias_update update
def update
alias_update
@actor = $game_party.actors[0]
return unless $scene.is_a?(Scene_Map)
if PET::ID[@actor.armor4_id].nil? or @actor.armor4_id.nil?
return if $Pet.nil?
$Pet.bitmap = RPG::Cache.character("", 4)
$Pet = nil
return
end
@direção = $game_player.direction
#Criar sprite do pet
unless $Pet
$Pet = Sprite.new(@spriteset.viewport1)
$Pet.x = $game_player.screen_x
$Pet.y = $game_player.screen_y
end
$Pet.bitmap = RPG::Cache.character(PET::ID[@actor.armor4_id][0], 4)
#Pet Recuperar o HP/MP com o tempo
tempo = PET::ID[@actor.armor4_id][3]
if tempo > 0
if Graphics.frame_count % (20 * tempo) == 0
$game_party.actors[0].hp += PET::ID[@actor.armor4_id][1]
$game_party.actors[0].sp += PET::ID[@actor.armor4_id][2]
end
end
#Cria o gráfico do Pet, e com animação de andar
cw = $Pet.bitmap.width / 4
ch = $Pet.bitmap.height / 4
aw = $frame*cw
ah = (@direção - 2) / 2 * ch
$Pet.src_rect = Rect.new(aw, ah, cw ,ch )
player_spr = $scene.spriteset.player_sprite
#Pet Seguir o Player
#Direção =:2:=
if $game_player.direction == 2
$Pet.z = player_spr.z - 1
return unless $game_map.passable?($game_player.x, $game_player.y-1, 2)
if $Pet.x < ($game_player.screen_x - $Pet.bitmap.width/8)
$Pet.x += 4
end
if $Pet.x > ($game_player.screen_x - $Pet.bitmap.width/8)
$Pet.x -= 4
end
if $Pet.y < ($game_player.screen_y-32-$Pet.bitmap.height/4)
$Pet.y += 4
end
if $Pet.y > ($game_player.screen_y-32-$Pet.bitmap.height/4)
$Pet.y -= 4
end
#Direção =:4:=
elsif $game_player.direction == 4
return unless $game_map.passable?($game_player.x+1, $game_player.y, 4)
$Pet.z = player_spr.z + 1
if $Pet.x < ($game_player.screen_x+16)
$Pet.x += 4
end
if $Pet.x > ($game_player.screen_x+16)
$Pet.x -= 4
end
if $Pet.y < ($game_player.screen_y-$Pet.bitmap.height/4)
$Pet.y += 4
end
if $Pet.y > ($game_player.screen_y-$Pet.bitmap.height/4)
$Pet.y -= 4
end
#Direção =:6:=
elsif $game_player.direction == 6
return unless $game_map.passable?($game_player.x-1, $game_player.y, 6)
$Pet.z = player_spr.z + 1
if $Pet.x < ($game_player.screen_x-16-$Pet.bitmap.width/4)
$Pet.x += 4
end
if $Pet.x > ($game_player.screen_x-16-$Pet.bitmap.width/4)
$Pet.x -= 4
end
if $Pet.y < ($game_player.screen_y-$Pet.bitmap.height/4)
$Pet.y += 4
end
if $Pet.y > ($game_player.screen_y-$Pet.bitmap.height/4)
$Pet.y -= 4
end
#Direção =:8:=
elsif $game_player.direction == 8
return unless $game_map.passable?($game_player.x, $game_player.y+1, 8)
$Pet.z = player_spr.z + 1
if $Pet.x < ($game_player.screen_x - ($Pet.bitmap.width/8))
$Pet.x += 4
end
if $Pet.x > ($game_player.screen_x - ($Pet.bitmap.width/8))
$Pet.x -= 4
end
if $Pet.y < ($game_player.screen_y+12-($Pet.bitmap.height/8))
$Pet.y += 4
end
if $Pet.y > ($game_player.screen_y+12-($Pet.bitmap.height/8))
$Pet.y -= 4
end
end#if player.direction
end#update
end#class
class Sprite_Character < RPG::Sprite
alias alias_update update
def update
alias_update
$frame = @character.pattern
end
end
class Sprite_NetCharacter < RPG::Sprite
alias rd12_animate_player animate_player
def dispose
@_text_display.dispose
@chat_text_display.dispose
@pet_spr.dispose
super
end
#--------------------------------------------------------------------------
# * Atualizar movimento do Jogador e Pet
#--------------------------------------------------------------------------
def animate_player
@chat_text_display.x = self.x
@chat_text_display.y = self.y - 129
sx = @character.pattern * @cw
sy = (@character.direction - 2) / 2 * @ch
self.src_rect.set(sx, sy, @cw, @ch)
cw = @pet_spr.bitmap.width / 4
ch = @pet_spr.bitmap.height / 4
aw = @character.pattern*cw
ah = (@character.direction - 2) / 2 * ch
@pet_spr.src_rect = Rect.new(aw, ah, cw ,ch )
if @character.direction == 2
@pet_spr.z = self.z-1
@pet_spr.x = (self.x - @pet_spr.bitmap.width/8)
@pet_spr.y = (self.y-32-@pet_spr.bitmap.height/4)
elsif @character.direction == 4
@pet_spr.x = (self.x+16)
@pet_spr.y = (self.y-@pet_spr.bitmap.height/4)
elsif @character.direction == 6
@pet_spr.x = (self.x-16-@pet_spr.bitmap.width/4)
@pet_spr.y = (self.y-@pet_spr.bitmap.height/4)
elsif @character.direction == 8
@pet_spr.z = self.z+1
@pet_spr.x = (self.x-(@pet_spr.bitmap.width/8))
@pet_spr.y = (self.y+12-(@pet_spr.bitmap.height/8))
end
rd12_animate_player
end
end
Explicações do script:
Se eu fazer uma nova versão, irei melhorar algumas coisas, e talvez por para o pet passar de nível, e quem sabe, atacar.
Isso é tudo pessoal, algum erro ou dúvida poste abaixo que tentarei resolver.
obs: Não usei nada de visual equipment, pra quem ta perguntando.
Créditos: RD12

https://arenarpgmaker.forumeiros.com

kaiodaniel

kaiodaniel
Membro - Novato
Membro - Novato
Ta dando um erro de bitmap

Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos