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

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

1 [Pedido]Sistema de pet global em 9/9/2012, 15:33

Frisco

avatar
Ajudante
Ajudante
ae alguem tem o script de pet global completo funcionando , Tou usando NP master V4 quam tiver posta pra mim por favor

Ver perfil do usuário

Satheios

avatar
Membro Honorário III
Membro Honorário III
O RD12 fez um, aqui está:

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



Explicações no 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







[Você precisa estar registrado e conectado para ver este link.]


Ver perfil do usuário http://templorpgmakerbr.forumeiros.com/

Frisco

avatar
Ajudante
Ajudante
Como colocar o pet no jogo



EU sou sekici tá?:
[Você precisa estar registrado e conectado para ver esta imagem.]
Ver perfil do usuário

Samuka_Maker

avatar
Membro Honorário III
Membro Honorário III
cole o script acima do main

depois é só vc equipar um anel (o acessório) que foi definido como pet e o pet aparece
______
Analiza o script:
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



att. Samuka_Maker
__________________
Visite o meu forum: [Você precisa estar registrado e conectado para ver este link.]
__________________
A script dado não se reclama
__________________
Meu Orgulho é ser da TRM *u*
Ver perfil do usuário

Conteúdo patrocinado


Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum