[RESOLVIDO][Pedido] Script para NPC

    Compartilhe

    Akio
    Membro Ativo
    Membro Ativo

    Mensagens : 278
    Créditos : 22

    [RESOLVIDO][Pedido] Script para NPC

    Mensagem por Akio em Sab Mar 01, 2014 1:02 pm

    galera e o seguinte fiz um sistema de de profissão para meu jogo online
    no NPC!
    e queria saber se alguém ai sabe da existência ou tenha  algum script que mostre um ícone
    na tela??
     por exemplo:
    se o player adquirir a profissão de lenhador aparecer o ícone
    na tela para ficar mais ou menos assim:

    Spoiler:

    ah se tiver alguma forma de fazer por eventos também serve  :=D:


    Última edição por The Crow em Sab Mar 01, 2014 10:34 pm, editado 1 vez(es)


    _________________

    Facebook:https://www.facebook.com/junio.henrique.102
    Skype: junio.henrike1

    thiagus
    Semi-Experiente
    Semi-Experiente

    Mensagens : 144
    Créditos : 9

    Re: [RESOLVIDO][Pedido] Script para NPC

    Mensagem por thiagus em Sab Mar 01, 2014 4:08 pm

    por evento é só fazer um evento comum ativado por uma switch e colocar a condição de classe ou profissão no seu caso, a profissão, voce diz que uma variavel e faz caso a variavel lenhador on, adicionar imagem!

    Dawnmetal
    Iniciante
    Iniciante

    Mensagens : 66
    Créditos : 8

    Re: [RESOLVIDO][Pedido] Script para NPC

    Mensagem por Dawnmetal em Sab Mar 01, 2014 4:16 pm

    Bem, cara da para fazer pelos 2, por Script deve ser um tanto mais Fácil.
    Em Script, você pode colocar uma imagem na tela igual é com a HUD, assim fica até mais fácil xD
    E dai você simplesmente cria uma Variável que servirá de ID para as Profissões. Ex: Variável Profissão = 1 ( Ou seja Ferreiro ), assim é um tanto mais simples, e no Script você pode Colocar If , e tauz para assim perguntar no caso a Profissão.
    Ex:

    Código:
    if $game_variables[1] = 1
       " O que você quer que aconteça "
    elsif $game_variables[1] = 2
    ...

    Assim até fica mais simples.
    já por Eventos você teria, que colocar 1 Gráfico na tela, e eu acho que chamar o mesmo em todos os Mapas, isso daria um pouco de Lag eu acho.

    Espero ter Ajudado.

    @Edit: Tentando fazer o Script, para você...

    Satheios
    Aldeia Friend
    Aldeia Friend

    Medalhas :
    Mensagens : 1258
    Créditos : 305

    Re: [RESOLVIDO][Pedido] Script para NPC

    Mensagem por Satheios em Sab Mar 01, 2014 5:04 pm

    É possível fazer tanto por eventos quanto por scripts, como os amigos falaram acima. Só que por scripts seria melhor por evitaria bugs ou coisas do tipo, para o pessoal que não sabe muito de eventos.
    Pelo meio de script, seria fácil e editável.
    Se o amigo acima não fizer, eu faço para você. 


    Abraços!


    _________________



    Ninguém pode ser perfeito, mas todos podem ser melhores.
    Visite o meu projeto, Tales of a Kingdom e prepare-se para um novo mundo!





    Akio
    Membro Ativo
    Membro Ativo

    Mensagens : 278
    Créditos : 22

    Re: [RESOLVIDO][Pedido] Script para NPC

    Mensagem por Akio em Sab Mar 01, 2014 6:04 pm

    galera que puder fazer pra mim eu agradeço muito!
    pois eu preciso muito desse script!
    fiz o sistema em eventos e talz mas...
    como foi dito acima vai dar muito lag se eu tiver que chamar um evento em cada mapa :\


    _________________

    Facebook:https://www.facebook.com/junio.henrique.102
    Skype: junio.henrike1

    Dawnmetal
    Iniciante
    Iniciante

    Mensagens : 66
    Créditos : 8

    Re: [RESOLVIDO][Pedido] Script para NPC

    Mensagem por Dawnmetal em Sab Mar 01, 2014 6:17 pm

    Bem, cara terminei o Script e acho que não tem muitos Bugs. Qualquer 1 que tiver Reporta por MP,
    Infelizmente não consegui colocar 1 Module então teria que criar, 1 elsif para cara Profissão.

    Criei 2 de Exemplo lá que são Desempregado ( ID 0 ) e Ferreiro ( ID 1 ) Usei a Variável 2 para salvar as IDs, se quiser editar é só explorar o Script, que você encontra  Successful  

    Imagem:




    Código:
    #===============================================================#
    # ** Criado By: LupansG                                         #
    # Pedido por The Crow                                           #
    #===============================================================#
    # Profissão no Canto da tela                                    #
    #===============================================================#
    # Cria uma Imagem/Texto da Profissão no Canto Superior da Tela  #
    #                                                               #
    # Editação: Verefique á Linha 37                                #
    #===============================================================#

    class Prof < RPG::Sprite
      def initialize
        super()
        self.bitmap = bitmap = Bitmap.new(180,98)
        self.x = 525
        self.y = 45
        self.z = 999
        refresh
      end
      
      def update
        super
        refresh if something_changed?
      end
      
      def refresh
        @old_prof = $game_variables[2]
        self.bitmap.clear
        if $game_variables[2] == 0 # Desempregado
          prof0 = RPG::Cache.picture("prof1") # Nome da Imagem que fica na pasta Picture
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
          
        # Para adicionar Mais Profissões adicione um elsif, Ex:
        # elsif $game_variables[2] == 1
        # Ex2:
        elsif $game_variables[2] == 1 # Ferreiro
          prof0 = RPG::Cache.picture("prof2") # Nome da Imagem que fica na Pasta Picture
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
        end
      end
      
      def something_changed?
        return true if @old_prof != $game_variables[2]
      end
    end

    class Scene_Map
      alias prof_main main
      def main
        @Prof = Prof.new
        prof_main
        @Prof.dispose
      end
      alias prof_update update
      def update
        prof_update
        @Prof.refresh if @Prof.something_changed?
      end
    end

    Fiz no NPMV4 então não tenho certeza se funcionará perfeitamente, no NPC.  Successful

    @Edit: Esquecendo de Falar, coloquei um Auto Update no Script assim, quando a profissão Mudar irá atualizar, automaticamente a Imagem.


    Última edição por LupansG em Sab Mar 01, 2014 11:36 pm, editado 1 vez(es)

    Akio
    Membro Ativo
    Membro Ativo

    Mensagens : 278
    Créditos : 22

    Re: [RESOLVIDO][Pedido] Script para NPC

    Mensagem por Akio em Sab Mar 01, 2014 8:36 pm

    o script tah muito bem obg cara :3

    Spoiler:
    +1 cred pra tu

    @edit:
    cara não sei se fiz algo de errado mas quando o player pega o item que lhe da a profissão
    a imagem não altera :3
    script:

    Código:
    #===============================================================#
    # ** Criado By: LupansG                                        #
    # Pedido por The Crow                                          #
    #===============================================================#
    # Profissão no Canto da tela                                    #
    #===============================================================#
    # Cria uma Imagem/Texto da Profissão no Canto Superior da Tela  #
    #                                                              #
    # Editação: Verefique á Linha 37                                #
    #===============================================================#

    class Prof < RPG::Sprite
      def initialize
        super()
        self.bitmap = bitmap = Bitmap.new(180,98)
        self.x = 525
        self.y = 45
        self.z = 999
        refresh
      end
     
      def update
        super
        refresh if something_changed?
      end
     
      def refresh
        @old_prof = $game_variables[2]
        self.bitmap.clear
        if $game_variables[2] == 0 # Desempregado
          prof0 = RPG::Cache.picture("prof1") # Nome da Imagem que fica na pasta Picture
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
         
        # Para adicionar Mais Profissões adicione um elsif, Ex:
        # elsif $game_variables[2] == 1
        # Ex2:
        elsif $game_variables[2] == 30 # Ferreiro
          prof0 = RPG::Cache.picture("ferreiro") # Nome da Imagem que fica na Pasta Picture
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
         
          elsif $game_variables[2] == 31 # lenhador
          prof0 = RPG::Cache.picture("lenhador") # Nome da Imagem que fica na Pasta Picture
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
         
        end
      end
     
      def something_changed?
        return true if @old_prof != $game_variables[2]
      end
    end

    class Scene_Map
      alias prof_main main
      def main
        @Prof = Prof.new
        prof_main
        @Prof.dispose
      end
      alias prof_update update
      def update
        prof_update
        @Prof.refresh if @Prof.something_changed?
      end
    end


    imagem:


    _________________

    Facebook:https://www.facebook.com/junio.henrique.102
    Skype: junio.henrike1

    Dawnmetal
    Iniciante
    Iniciante

    Mensagens : 66
    Créditos : 8

    Re: [RESOLVIDO][Pedido] Script para NPC

    Mensagem por Dawnmetal em Sab Mar 01, 2014 9:25 pm

    The Crow escreveu:o script tah  muito bem obg cara :3

    Spoiler:
    +1 cred pra tu

    @edit:
    cara não sei se fiz algo de errado mas quando o player pega o item que lhe da a profissão
    a imagem não altera :3
    script:

    Código:
    #===============================================================#
    # ** Criado By: LupansG                                         #
    # Pedido por The Crow                                           #
    #===============================================================#
    # Profissão no Canto da tela                                    #
    #===============================================================#
    # Cria uma Imagem/Texto da Profissão no Canto Superior da Tela  #
    #                                                               #
    # Editação: Verefique á Linha 37                                #
    #===============================================================#

    class Prof < RPG::Sprite
      def initialize
        super()
        self.bitmap = bitmap = Bitmap.new(180,98)
        self.x = 525
        self.y = 45
        self.z = 999
        refresh
      end
      
      def update
        super
        refresh if something_changed?
      end
      
      def refresh
        @old_prof = $game_variables[2]
        self.bitmap.clear
        if $game_variables[2] == 0 # Desempregado
          prof0 = RPG::Cache.picture("prof1") # Nome da Imagem que fica na pasta Picture
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
          
        # Para adicionar Mais Profissões adicione um elsif, Ex:
        # elsif $game_variables[2] == 1
        # Ex2:
        elsif $game_variables[2] == 30 # Ferreiro
          prof0 = RPG::Cache.picture("ferreiro") # Nome da Imagem que fica na Pasta Picture
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
          
          elsif $game_variables[2] == 31 # lenhador
          prof0 = RPG::Cache.picture("lenhador") # Nome da Imagem que fica na Pasta Picture
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
          
        end
      end
      
      def something_changed?
        return true if @old_prof != $game_variables[2]
      end
    end

    class Scene_Map
      alias prof_main main
      def main
        @Prof = Prof.new
        prof_main
        @Prof.dispose
      end
      alias prof_update update
      def update
        prof_update
        @Prof.refresh if @Prof.something_changed?
      end
    end


    imagem:

    Cara me manda um Print do Evento Comum do Item , porque ele precisa editar o Valor da Variável 2 para o Valor no caso... Vou ver aqui dai Edito Successful

    @Edit: Bug Corrigido, certamente não era beeem um BUG, ou sla pq eu testei aqui e deu Certo, porem eu utilizei o que você me passou e não deu  Successful 

    Cara se você quiser eu adiciono Livremente todas as Profissões aqui xD

    Codigo:

    Código:
    #===============================================================#
    # ** Criado By: LupansG                                         #
    # Pedido por The Crow                                           #
    #===============================================================#
    # Profissão no Canto da tela                                    #
    #===============================================================#
    # Cria uma Imagem/Texto da Profissão no Canto Superior da Tela  #
    #                                                               #
    # Editação: Verefique á Linha 37                                #
    #===============================================================#

    class Prof < RPG::Sprite
      def initialize
        super()
        self.bitmap = bitmap = Bitmap.new(180,98)
        self.x = 525
        self.y = 45
        self.z = 999
        refresh
      end
      
      def update
        super
        refresh if something_changed?
      end
      
      def refresh
        @old_prof = $game_variables[2]
        self.bitmap.clear
        if $game_variables[2] == 0 # Desempregado
          prof0 = RPG::Cache.picture("prof1")
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
          
        # Para adicionar Mais Profissões adicione um elsif, Ex:
        # elsif $game_variables[2] == 1
        # Ex2:
        elsif $game_variables[2] == 1 # Ferreiro
          prof0 = RPG::Cache.picture("ferreiro")
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
          
        elsif $game_variables[2] == 2 # Lenhador
          prof0 = RPG::Cache.picture("lenhador")
          prof1 = prof0.width
          prof2 = prof0.height
          prof3 = Rect.new(0,0,prof1, prof2)
          self.bitmap.blt(0,0,prof0,prof3)
        end
      end
      
      def something_changed?
        return true if @old_prof != $game_variables[2]
      end
    end

    class Scene_Map
      alias prof_main main
      def main
        @Prof = Prof.new
        prof_main
        @Prof.dispose
      end
      alias prof_update update
      def update
        prof_update
        @Prof.refresh if @Prof.something_changed?
      end
    end


    OBS: Troquei a ID do Lenhador para 2 já que a mesma estava no 31 xD

    Cara configurando o Item é assim ó:

    Config:



    Coloque o Evento Comum Desejado no Caso meu serio o 001: Diploma que edita permissões para Ferreiro  Successful 



    No Evento Comum Criaremos Está linha, indo em Inserir > Menu 1 > Opções de Variável.
    Lá Editaremos a Variável deixando ela assim:



    Individual = ID da variável ( No caso é 0002 )
    Substituir = Isto Deve estar marcado.
    Constante = Deve ser selecionado, e logo após aonde está '1' Deve ser colocado a "ID" da Profissão Successful


    Abraços, Qualquer coisa avisa....

    Komuro Takashi
    Moderador Local
    Moderador Local

    Mensagens : 996
    Créditos : 120

    Re: [RESOLVIDO][Pedido] Script para NPC

    Mensagem por Komuro Takashi em Seg Mar 03, 2014 8:34 am

    Ideal tbm é vc bloquear o item pra venda.


    _________________

    Akio
    Membro Ativo
    Membro Ativo

    Mensagens : 278
    Créditos : 22

    Re: [RESOLVIDO][Pedido] Script para NPC

    Mensagem por Akio em Seg Mar 03, 2014 6:32 pm

    tranquem o topico pf


    _________________

    Facebook:https://www.facebook.com/junio.henrique.102
    Skype: junio.henrike1

      Data/hora atual: Ter Dez 06, 2016 2:51 pm