Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Pet Global para NP 4.9
+4
blackcrow
Komuro Takashi
Trpino
Jonny
8 participantes
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Netplays :: Scripts para netplays
Página 1 de 3
Página 1 de 3 • 1, 2, 3
Pet Global para NP 4.9
Bom pessoal dei uma juntada nos script do RD12 e Montei a versão Plug em Play para Netplay 4.9
Totalmente Funcional só add acima do Main
Script
Qualquer Coisa me avisem
Totalmente Funcional só add acima do Main
Script
- Código:
module Network
class Main
class << self
alias km_send_start_request send_start_request
def send_start_request(id)
km_send_start_request(id)
#===============
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
#===============
end
alias km_send_visual_equip send_visual_equip
def self.send_visual_equip(id)
km_send_visual_equip(id)
#===========
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
#======
end
end
end
end
class Game_NetPlayer < Game_Character
attr_accessor :pet
alias pet_initialize initialize
def initialize
pet_initialize
@pet = ''
end
def pet
return @pet
end
end
class Sprite_NetCharacter < RPG::Sprite
alias pet_update update
def update
pet_update update
# Pet
@pet_spr = Sprite.new(self.viewport)
@pet_spr.bitmap = RPG::Cache.character(@character.pet, @character.character_hue)
@pet_spr.visible = self.visible
end
end
=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[25] = ["cachorro", 10, 10, 5]
#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
return if !$scene.is_a?(Scene_Map)
return if $scene.spriteset.nil?
@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
Qualquer Coisa me avisem
Última edição por Komuro Takashi em Qui Nov 27, 2014 8:06 am, editado 2 vez(es)
_________________
Paga um café? Patreon
Komuro Takashi- Colaborador
- Mensagens : 1047
Créditos : 130
Komuro Takashi- Colaborador
- Mensagens : 1047
Créditos : 130
Re: Pet Global para NP 4.9
Bem o script realmente fico muito grande, foi preciso teres cabeça e paciência para o fazeres kkkkk muito bom mano vou testar logo
_________________
Trpino- Membro Ativo
- Mensagens : 300
Créditos : 12
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: Pet Global para NP 4.9
Não Fiz alterações no Script do RD só tornei Plug and Play para o NP 4.9
_________________
Paga um café? Patreon
Komuro Takashi- Colaborador
- Mensagens : 1047
Créditos : 130
Re: Pet Global para NP 4.9
@Komuro Takashi
eu ainda estou a aprender a programar por enquanto só sei analisar poucas partes, eu estive a ver e não é possível adicionar o Pet systema skill?
se não entendeu o que eu quis dizer, ha ideia é fazer o pet atacar de x em x tempo quando o dono estiver em pvp, seria muito útil pois poderia haver muitos tipos de pet, e ajudaria bastante em boss`s e lutar contra monstros, pois ter um pet que não faz nada se torna inútil e é mais um envento a fazer leg inutilmente, isto e apenas uma ideia
_________________
Trpino- Membro Ativo
- Mensagens : 300
Créditos : 12
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: Pet Global para NP 4.9
O script pode estar funcional, mas vc reescreveu(redefiniu) alguns métodos da classe Main, isso causará erros no NP.
Vc deve saber que para editar um método, deve-se usar o "alias", caso contrário o método será redefinido. Mas não é possível usar o "alias" em métodos da classe Main, pq todos os métodos da classe Main são estáticos(self).
Vc deve saber que para editar um método, deve-se usar o "alias", caso contrário o método será redefinido. Mas não é possível usar o "alias" em métodos da classe Main, pq todos os métodos da classe Main são estáticos(self).
blackcrow- Semi-Experiente
- Mensagens : 111
Créditos : 41
Re: Pet Global para NP 4.9
Ainda bem q VC sabe q esses métodos são adicionadas não sobrescritos senão o NP nem conectava.....
Quando se escreve um método ou função desta maneira add não sobrescreve.
Se ativas o printlines vera q os dados das definições enviam seus dados normalmente....uma delas manda as coordenadas e HP...etc...e não vi nenhum erro ate agora.
Quando se escreve um método ou função desta maneira add não sobrescreve.
Se ativas o printlines vera q os dados das definições enviam seus dados normalmente....uma delas manda as coordenadas e HP...etc...e não vi nenhum erro ate agora.
_________________
Paga um café? Patreon
Komuro Takashi- Colaborador
- Mensagens : 1047
Créditos : 130
Re: Pet Global para NP 4.9
Se afirmei isso é pq tenho certeza, já vc está equivocado.
Vc redefiniu os métodos send_start_request(id) e send_visual_equip(id) da classe Main do Network, observe que outros métodos do próprio script usam o alias, pq estão editando um método.
O Visual Equip não está mais global(alteração no send_visual_equip(id)) e atualizações dos jogadores podem falhar por causa da alteração do segundo método.
Vc redefiniu os métodos send_start_request(id) e send_visual_equip(id) da classe Main do Network, observe que outros métodos do próprio script usam o alias, pq estão editando um método.
O Visual Equip não está mais global(alteração no send_visual_equip(id)) e atualizações dos jogadores podem falhar por causa da alteração do segundo método.
blackcrow- Semi-Experiente
- Mensagens : 111
Créditos : 41
Re: Pet Global para NP 4.9
Verdade Crow vou criar um methodo para ser chamado no final do send_start_request(id) e do Visual tbm.
Obrigado por reportar; me enganei feio com o alias nos metodos self. :S
Edit: Erro de Alias consertado!
@Crow obrigado pelo exemplo no Level Rankin de usar Class << self
Obrigado por reportar; me enganei feio com o alias nos metodos self. :S
Edit: Erro de Alias consertado!
@Crow obrigado pelo exemplo no Level Rankin de usar Class << self
_________________
Paga um café? Patreon
Komuro Takashi- Colaborador
- Mensagens : 1047
Créditos : 130
Página 1 de 3 • 1, 2, 3
Tópicos semelhantes
» Pet Global para NetPlay 4.9
» [Resolvido] Global Mensaje para NP 3
» Pet global para net play master v3
» Recrutamento para Equipe de RPG GLOBAL
» [Att²] Pet Global para Netplay Master v4
» [Resolvido] Global Mensaje para NP 3
» Pet global para net play master v3
» Recrutamento para Equipe de RPG GLOBAL
» [Att²] Pet Global para Netplay Master v4
Aldeia RPG :: RPG Maker :: Rpg Maker XP :: Netplays :: Scripts para netplays
Página 1 de 3
Permissões neste sub-fórum
Não podes responder a tópicos