O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[Destiny Script] Mostrar nome do Evento acima do NPC

Iniciado por Dr.XGB, 10/06/2013 às 15:39

Mostrar nome do Evento acima do NPC
Adaptação: Dr.XGB







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:
[box title=Script]$
// Gerar Picture da Fonte
if(Picture[100].AuroraSheet.IsEmpty())
  Picture[100].Magnification = 0; pause;
  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] -= 0x22; endif; // 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;
[/box]

[box class=catbg4]Clique aqui para baixar a Demo[/box]

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!

até que é legal mais fica esquisito em jogo senão fica muito mais fácil o jogo e não tem itens escondidos :P

Sim, eu também pensei nisso.
Por isso que eu fiz uma verificação no nome do Evento, onde só vai aparecer se ele tiver um nome próprio, eventos com nome EV0001, EV0002 não aparecerão. =D