Aldeia RPG

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

Suporte ao desenvolvimento de jogos


+4
blackcrow
Komuro Takashi
Trpino
Jonny
8 participantes

    Pet Global para NP 4.9

    Komuro Takashi
    Komuro Takashi
    Colaborador
    Colaborador


    Mensagens : 1047
    Créditos : 130

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

    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
    Komuro Takashi
    Komuro Takashi
    Colaborador
    Colaborador


    Mensagens : 1047
    Créditos : 130

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

    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


    _________________
                                                                                                                                          
    Komuro Takashi
    Komuro Takashi
    Colaborador
    Colaborador


    Mensagens : 1047
    Créditos : 130

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

    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


    _________________
                                                                                                                                          
    blackcrow
    blackcrow
    Semi-Experiente
    Semi-Experiente


    Mensagens : 111
    Créditos : 41

    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).
    Komuro Takashi
    Komuro Takashi
    Colaborador
    Colaborador


    Mensagens : 1047
    Créditos : 130

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


    Mensagens : 111
    Créditos : 41

    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.
    Komuro Takashi
    Komuro Takashi
    Colaborador
    Colaborador


    Mensagens : 1047
    Créditos : 130

    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

    Conteúdo patrocinado


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

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sáb Abr 27, 2024 9:28 pm