Pet Global para NP 4.9 Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Pet Global para NP 4.9

+4
blackcrow
Komuro Takashi
Trpino
Jonny
8 participantes

Página 1 de 3 1, 2, 3  Seguinte

Ir para baixo

Pet Global para NP 4.9 Empty Pet Global para NP 4.9

Mensagem por Komuro Takashi Seg Nov 17, 2014 1:59 pm

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
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)

_________________
Pet Global para NP 4.9 Takashi_komuro_by_minato8-d51g9o4

Paga um café? Patreon
Komuro Takashi
Komuro Takashi
Colaborador
Colaborador

Mensagens : 1047
Créditos : 130

Ir para o topo Ir para baixo

Pet Global para NP 4.9 Empty Re: Pet Global para NP 4.9

Mensagem por Jonny Ter Nov 18, 2014 3:05 am

Muy buena modificación kleberson :) +1 Cred

_________________
Spoiler:


Pet Global para NP 4.9 KVIdx
Jonny
Jonny
Aldeia Friend
Aldeia Friend

Medalhas : Pet Global para NP 4.9 Trophy11Pet Global para NP 4.9 9P5Gx
Mensagens : 1936
Créditos : 327

http://fanmakers.ultimaterpg.net/

Ir para o topo Ir para baixo

Pet Global para NP 4.9 Empty Re: Pet Global para NP 4.9

Mensagem por Komuro Takashi Ter Nov 18, 2014 4:18 am

Valeu Daniel Very Happy

_________________
Pet Global para NP 4.9 Takashi_komuro_by_minato8-d51g9o4

Paga um café? Patreon
Komuro Takashi
Komuro Takashi
Colaborador
Colaborador

Mensagens : 1047
Créditos : 130

Ir para o topo Ir para baixo

Pet Global para NP 4.9 Empty Re: Pet Global para NP 4.9

Mensagem por Trpino Ter Nov 18, 2014 4:34 am

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
Membro Ativo

Mensagens : 300
Créditos : 12

Ficha do personagem
Nível: 1
Experiência:
Pet Global para NP 4.9 Left_bar_bleue0/0Pet Global para NP 4.9 Empty_bar_bleue  (0/0)
Vida:
Pet Global para NP 4.9 Left_bar_bleue30/30Pet Global para NP 4.9 Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Pet Global para NP 4.9 Empty Re: Pet Global para NP 4.9

Mensagem por Komuro Takashi Ter Nov 18, 2014 6:25 am

Não Fiz alterações no Script do RD só tornei Plug and Play para o NP 4.9

_________________
Pet Global para NP 4.9 Takashi_komuro_by_minato8-d51g9o4

Paga um café? Patreon
Komuro Takashi
Komuro Takashi
Colaborador
Colaborador

Mensagens : 1047
Créditos : 130

Ir para o topo Ir para baixo

Pet Global para NP 4.9 Empty Re: Pet Global para NP 4.9

Mensagem por Trpino Ter Nov 18, 2014 11:10 am

@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
Membro Ativo

Mensagens : 300
Créditos : 12

Ficha do personagem
Nível: 1
Experiência:
Pet Global para NP 4.9 Left_bar_bleue0/0Pet Global para NP 4.9 Empty_bar_bleue  (0/0)
Vida:
Pet Global para NP 4.9 Left_bar_bleue30/30Pet Global para NP 4.9 Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Pet Global para NP 4.9 Empty Re: Pet Global para NP 4.9

Mensagem por blackcrow Ter Nov 18, 2014 2:43 pm

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).
blackcrow
blackcrow
Semi-Experiente
Semi-Experiente

Mensagens : 111
Créditos : 41

Ir para o topo Ir para baixo

Pet Global para NP 4.9 Empty Re: Pet Global para NP 4.9

Mensagem por Komuro Takashi Ter Nov 18, 2014 6:03 pm

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.

_________________
Pet Global para NP 4.9 Takashi_komuro_by_minato8-d51g9o4

Paga um café? Patreon
Komuro Takashi
Komuro Takashi
Colaborador
Colaborador

Mensagens : 1047
Créditos : 130

Ir para o topo Ir para baixo

Pet Global para NP 4.9 Empty Re: Pet Global para NP 4.9

Mensagem por blackcrow Ter Nov 18, 2014 6:58 pm

Se afirmei isso é pq tenho certeza, já vc está equivocado.
Vc redefiniu os métodos send_start_request(id)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
blackcrow
Semi-Experiente
Semi-Experiente

Mensagens : 111
Créditos : 41

Ir para o topo Ir para baixo

Pet Global para NP 4.9 Empty Re: Pet Global para NP 4.9

Mensagem por Komuro Takashi Ter Nov 18, 2014 8:41 pm

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

_________________
Pet Global para NP 4.9 Takashi_komuro_by_minato8-d51g9o4

Paga um café? Patreon
Komuro Takashi
Komuro Takashi
Colaborador
Colaborador

Mensagens : 1047
Créditos : 130

Ir para o topo Ir para baixo

Pet Global para NP 4.9 Empty Re: Pet Global para NP 4.9

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Página 1 de 3 1, 2, 3  Seguinte

Ir para o topo

- Tópicos semelhantes

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