Script (nome em cima do evento e heroi)

9 Respostas   434 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

benner

  • *
  • Posts: 63
  • Ouros: 12
Tópico criado em: 25/02/2015 às 10:31 - Última modificação por King Gerar em 25/02/2015 às 14:08

Olá, pessoal.. a poucos dias criei um tópico dizendo q este script:

Spoiler
[close]

que coloca o nome em cima do Heroi e Evento estava meio "bugado"..
criei um inimigo com nome.. qd o inimigo é derrotado a imagem dele desaparece
mas o nome fica na tela..
Enfim.. essa dúvida não foi sanada, mas fica ai pra quem puder ajudar..

Só que estou com outra dúvida.. Eu gostaria que os expert em script podessem me ajudar..
Quando uso este script e tento usar evento no jogo para mudar o nome do heroi o nome não
muda.. fica sempre o nome da database do heroi.. tem alguma solução pra isso?

Por exemplo.. no meu jogo a classe Bárbaro começa com o nome Guerreiro.. mas eu gostaria que esse nome fosse mudado.. ai quando tento mudar o nome do heroi por eventos.. tanto colocando um nome já fixo.. ou pedindo para que o jogador mude o nome.. nenhuma das duas opções funciona..

valeu, abraço à todos..

Raizen

  • Administrador
  • *
  • Posts: 3224
  • Ouros: 3192
  • Medalhas Vencedor do Protótipo Premiado Participante notável do evento "A Estação das Luzes do Norte" Vencedor CRM Awards - Melhor Scripter Vencedores das edições do Concurso Projeto Rickas!
Resposta 1: 25/02/2015 às 11:24

Coloca abaixo do script que está usando  :ok:

Código: [Selecionar]
#==============================================================================
# ** Sprite_Character
#==============================================================================
class Sprite_Character
  def update_display_text
  unless @character.text_display.nil?
    @new_name = @character.text_display
    if @old_name != @new_name
      @old_name = @new_name
      dispose_display_text
      @_text_display = nil
    end
    create_display_sprite(@character.text_display) if @_text_display.nil?
    @_text_display.x = self.x
    @_text_display.y = self.y - self.oy / 2 - 24
  else
    dispose_display_text unless @_text_display.nil?
  end
end

benner

  • *
  • Posts: 63
  • Ouros: 12
Resposta 2: 25/02/2015 às 12:03

Coloca abaixo do script que está usando  :ok:

Código: [Selecionar]
#==============================================================================
# ** Sprite_Character
#==============================================================================
class Sprite_Character
  def update_display_text
  unless @character.text_display.nil?
    @new_name = @character.text_display
    if @old_name != @new_name
      @old_name = @new_name
      dispose_display_text
      @_text_display = nil
    end
    create_display_sprite(@character.text_display) if @_text_display.nil?
    @_text_display.x = self.x
    @_text_display.y = self.y - self.oy / 2 - 24
  else
    dispose_display_text unless @_text_display.nil?
  end
end


Raizen, insiro este código como se fosse novo script?

eu inseri ele como abaixo do script q estou usando..
deu erro..

Spoiler
[close]

Geraldo de Rívia

  • Mito
  • *
  • Posts: 4452
  • Ouros: 3887
  • O vento está sibilando.
  • Medalhas Vencedor do Protótipo Premiado Participantes do Maps Together 2
Resposta 3: 25/02/2015 às 12:35

Adiciona um
Código: [Selecionar]
endDepois do código que o Raizen te passou. É que ficou faltando um.

benner

  • *
  • Posts: 63
  • Ouros: 12
Resposta 4: 25/02/2015 às 13:58

Adiciona um
Código: [Selecionar]
endDepois do código que o Raizen te passou. É que ficou faltando um.

Olá, King.. valeu, não deu erro..

Raizen.. O nome continua sem mudar.. será que não tem solução?

Coloco no evento para mudar o nome (tanto por 1 nome fixo ou a critério do jogador)
e não muda..

Eu sei que o nome está mudando porq quando eu vou no Menu.. aparece lá a mudança.. mas em cima do jogador continua o mesmo nome do database..


caso não haja solução.. desde já agradeço a ajuda..

Raizen

  • Administrador
  • *
  • Posts: 3224
  • Ouros: 3192
  • Medalhas Vencedor do Protótipo Premiado Participante notável do evento "A Estação das Luzes do Norte" Vencedor CRM Awards - Melhor Scripter Vencedores das edições do Concurso Projeto Rickas!
Resposta 5: 25/02/2015 às 14:07

Então aqui está modificando, você colocou o meu script abaixo desse que está usando?

Código: [Selecionar]
#==============================================================================
# ** Sprite_Character
#==============================================================================
class Sprite_Character
  def update_display_text
    unless @character.text_display.nil?
      @new_name = @character.text_display
      if @old_name != @new_name
        @old_name = @new_name
        dispose_display_text
        @_text_display = nil
      end
      create_display_sprite(@character.text_display) if @_text_display.nil?
      @_text_display.x = self.x
      @_text_display.y = self.y - self.oy / 2 - 24
    else
      dispose_display_text unless @_text_display.nil?
    end
  end
end

Testei e tá tudo ok, de qualquer modo no pior dos casos de uma olhada em outros scripts do gênero, tem vários na internet  :será:

Uhtred

  • Mito
  • *
  • Posts: 1598
  • Ouros: 2175
  • Even a broken clock is right twice a day.
  • Medalhas Participante da 2º Mostra de Arte Steamfórdia Vencedor da 1º Edição da CRM JAM Vencedor CRM Awards - Melhor Maker Vencedor CRM Awards - Melhor Jogo Completo Vencedor CRM Awards - Melhor Projeto Participantes do Maps Together 2 Vencedor do Protótipo Premiado Vencedores das edições do Concurso Projeto Rickas!
Resposta 6: 25/02/2015 às 14:23

Tipo, como faz o inimigo desaparecer?

Não sei se está fazendo isso, mas o correto é criar uma switch (pode ser local) onde na segunda página fique vazia, e acionar esse switch quando o inimigo é derrotado.

Se só deixar o gráfico do inimigo transparente mas não mudar a página do evento, é bem possível que o nome permaneça acima do evento, mesmo ele estando invisível.

Eu uso o mesmo script e aqui funciona normal.

benner

  • *
  • Posts: 63
  • Ouros: 12
Resposta 7: 25/02/2015 às 15:00

Tipo, como faz o inimigo desaparecer?

Não sei se está fazendo isso, mas o correto é criar uma switch (pode ser local) onde na segunda página fique vazia, e acionar esse switch quando o inimigo é derrotado.

Se só deixar o gráfico do inimigo transparente mas não mudar a página do evento, é bem possível que o nome permaneça acima do evento, mesmo ele estando invisível.

Eu uso o mesmo script e aqui funciona normal.

Fala, Uhtred.. eu faço desaparecer com outra switch local.. ai boto pra esperar 999 frames( cerca de 15-20 secs).. a switch local ficar off e o inimigo volta aparecer..


vou tentar gravar um vídeo e disponibilizar..

valeu pela colaboração

Uhtred

  • Mito
  • *
  • Posts: 1598
  • Ouros: 2175
  • Even a broken clock is right twice a day.
  • Medalhas Participante da 2º Mostra de Arte Steamfórdia Vencedor da 1º Edição da CRM JAM Vencedor CRM Awards - Melhor Maker Vencedor CRM Awards - Melhor Jogo Completo Vencedor CRM Awards - Melhor Projeto Participantes do Maps Together 2 Vencedor do Protótipo Premiado Vencedores das edições do Concurso Projeto Rickas!
Resposta 8: 25/02/2015 às 15:29

Ah, já achei a solução...

Cole esse script que o Raizen fez:

Código: [Selecionar]
#==============================================================================
# ** Sprite_Character
#==============================================================================
class Sprite_Character
  def update_display_text
    unless @character.text_display.nil?
      @new_name = @character.text_display
      if @old_name != @new_name
        @old_name = @new_name
        dispose_display_text
        @_text_display = nil
      end
      create_display_sprite(@character.text_display) if @_text_display.nil?
      @_text_display.x = self.x
      @_text_display.y = self.y - self.oy / 2 - 24
    else
      dispose_display_text unless @_text_display.nil?
    end
  end
end

Abaixo do script que faz aparecer o nome acima do evento, ótimo mas só isso não fará o nome desaparecer, você precisa colocar o nome em branco no evento do switch local pra que ele não apareça, dessa forma:



E aí sim funciona, testei aqui e deu certo.

benner

  • *
  • Posts: 63
  • Ouros: 12
Resposta 9: 25/02/2015 às 15:57

Spoiler
[close]

Perfeito :*-*: :*-*: haha

muito obrigado à todos.. King, Raizen, Uhtred... vcs são fera..


Aproveitando o tópico.. tem alguma possibilidade do nome do heroi ser modificado por evento?  (pq se não tiver, vou ter que modificar a história do meu jogo e criar personagens.. (não fica legal ter um personagem com o nome "guerreiro, mago" etc..))