Forums » RPG MAKER 2K e 2003

Mostrar nome do Evento acima do NPC (MRM Recomenda #71)

    • 683 posts
    14 de maio de 2015 23:03:04 ART

    Mostrar nome do Evento acima do NPC

    Adaptação: Dr.XGB

     

    MRM Recomenda #71

     
    Imagem Postada
     

    Autor: Dr.XGB
    Plataforma: RPG Maker 2000
    Nível: Intermediário
    Outro Motor: Destiny Patcher 2.0

    Este sistema foi desenvolvido originalmente pelo Khas em RGSS para o RPG Maker VX Ace, cujo seu sistema me inspirou em fazer uma versão para RPG Maker 2000, usando o Destiny Script.
    Através desta Demo, você vai saber como aparecer o nome do evento em cima do NPC, deixando uma impressão diferente no jogo, ou até mesmo caso você queira que apareça o nome de um NPC importante em uma determinada parte do seu jogo. Há diversas formas de trabalhar com esse sistema de uma forma bem criativa.

    Para quem usa o RPG Maker Ultimate 2009, você pode copiar o código abaixo para o seu projeto em um evento do tipo Processo Paralelo, na condição que você desejar:

    $
    // Gerar Picture da Fonte
    if(Picture[100].AuroraSheet.IsEmpty())
      Picture[100].Magnification = 0pause;
      Picture[100].AuroraSheet.LoadFromFile("Font\MsGothic.png");
    endif;

    // ------------------------------------------------------------------------

    for(v[1] = 1; v[1] <= Event.Count; v[1]++)

      // Não mostrar o nome se o evento possui o nome padrão (Ex.: "EV0001")
      if(Event[v[1]].Name == "EV"..String.Format("D4",Convert.String(v[1])))
        continue// Parar o loop e recomeçar
      endif;
      
      if(Picture[v[1]].AuroraSheet.IsEmpty())
        Picture[v[1]].AuroraSheet.Create(String.Length(Event[v[1]].Name)*8+8,14);
        Picture[v[1]].AuroraSheet.CopyPalette(Picture[100].AuroraSheet.Handle);
        Picture[v[1]].UseMaskColor = true;
        if(String.Length(Event[v[1]].Name) >= 10)
          // Diminuir letras caso o nome seja muito grande
          Picture[v[1]].Magnification = 80;
        endif;

        // Extrair as letras da Picture 100 e colar na picture atual, formando o nome do evento
        v[4] = 0;
        for(v[2] = 0; v[2] < String.Length(Event[v[1]].Name); v[2]++)
          v[3] = String.Ord(Event[v[1]].Name,v[2]); // Valor da caractere da string de acordo com a posição
          if(String.Chr(v[3]) == " ")
            // Pular caractere caso seja um espaço
            v[4] += 4;
            continue;
          endif;
          if(v[3] > 0x7E) v[3] -= 0x22endif// Acertar ordem das caracteres para usar acentos
          Picture[v[1]].CopyRect(v[4],0,100,((v[3]-33)%32)*9,((v[3]-33)/32)*14,((v[3]-33)%32)*9+9,((v[3]-33)/32)*14+14);
          v[4] += 8;
        next;
      endif;

      // Posicionar o nome em cima do evento
      Picture[v[1]].X = Event[v[1]].ScreenX+4;
      Picture[v[1]].Y = Event[v[1]].ScreenY-32;
    next;



     

    Clique aqui para baixar a Demo

     


    Créditos:

    Khas por ter me inspirado com o seu sistema para RGSS a me fazer desenvolver este sistema para o RPG Maker 2000.

     

    Espero que tenha gostado e que possa criar muitas coisas através desta Demo.
    Até mais!