mShadow Hedgedog

MyBlog

Subscribe to RSS feed

Vou dar aulas de NPC!

, , , ...

Gosto muito de criar códigos, gosto de “escrever” em Delphi para Windows, Html/Css e Php para Web, Cronus (Simulador de Ragnarök, linguagem semelhante ao C). Estudando algumas linguagens apenas por diversão como Widgets (xml), JASS (War Craft) e MSN Plus Script. Estou querendo fazer um servidor de Ragnarok de rates baixas com vários novos npcs, modos de jogo e etc, por enquanto tem apenas ewl desenvolvendo ele e por isso pode demorar mais do que já demorou. Vou usar este blog para divulgar as minhas atualizações, idéias e aulas de alguma linguagem... Essas aulas serão scripts que ewl irei fazer pra poder usar e ao mesmo tempo usarei para ensinar algumas coisas. Vou começar pela do Cronus, para poder ensinar um amigo a criar npcs.

Criação de NPC

Introdução - O que são npcs?


Você já deve ter se perguntado alguma vez o que é e como funcionam os npcs. Sabe aquele vendedor de utilidades das cidades? Ele é um npc shop. Aquele “vendedor” de chapeis onde ele pede itens em troca, é um npc comum, ou o momento em que a Guerra do Emperium começa? É controlada por um npc flutuante.
Talvez agora você saiba o que é um npc, mas esteja confuso com os npcs shops, comuns e flutuantes. Shop, comum e flutuante são tipos de npcs do seu servidor, cada tipo funciona da sua forma seguindo é claro, as mesmas regras da linguagem. Vamos ver o que cada um faz.
  1. shop : São os típicos vendedores. Ao falar com eles, é exibida aquela janela para comprar ou vender itens. São os npcs mais fáceis de se fazer e tirando os itens à venda, só muda entre o tipo shop e o cashshop(ROPs).
  2. comum : São aqueles que podem “conversar” com você, dar itens, dar exp, te teletransportar, você pode fazer muitas coisas com ele. Eles ficam em algum lugar e são ativados geralmente ao clicar.
  3. flutuante : São npcs especiais que não precisam ter um local para ficar ou um sprite (imagem) como o npc flutuante que controla o inicio e fim da guerra do emperium, ele possui um código que na hora x ele será executado, nisso ele usa um comando para ligar a guerra, numa hora y ele será executado novamente mas num bloco de código diferente e então ele desligará a guerra. Geralmente são usados com “PCCommands” que em determinados acontecimentos (como chegar a hora x) ativam o npc. Esses npcs podem ser ativados por PCCommand, funções e outros.


Os npcs comuns e flutuantes seguem a programação estruturada, ou seja, executa linha após linha de código enquanto o shop não precisa quase de códigos.
Vamos agora fazer um simples npc tipo shop para começar. Abra agora o seu programa favorito de desenvolvimento como o WordPad, Bloco de Notas ou qualquer outra que consiga criar arquivos .txt. Uau! Um arquivo.txt! Sim, para criar se criar um npc precisa escrever seus códigos em um arquivo.txt e alterar um outro arquivo geralmente chamado “scripts_personalizados”. O compilador (ou “Cronus” para facilitar) irá ler esse arquivo “scripts_personalizados” e então irá procurar cada um dos npcs escritos nele. Vamos ver essa parte depois que terminarmos o nosso shop.
Para começar crie um arquivo.txt dentro da pasta npc e escreva o seu cabeçalho (por favor, não escreva 20 de Outubro de 2008!). Todo npc precisa ter um cabeçalho e é ele que diferencia o tipo de cada npc. A sintaxe (ou “modo que você deve escrever” para facilitar) é a seguinte: mapa.gat,posição x, posição y, direção[%TAB%]shop[%TAB%]Nome do NPC[%TAB%]sprite id,item id:preço
Vamos aos detalhes:
(use /where para saber o nome do mapa, e suas coordenadas)
mapa.gat:nome do mapa onde o npc ficara mais a extensão .gat
posição x: coordenada x do mapa.
Posição y: coordenada y do mapa.
Direção: Os npcs possuem imagens diferentes dependendo do ângulo em que olhamos para eles, alguns possuem apenas uma ou duas imagens enquanto outros possuem diversas. Esse kadi varua de 0 a 7. A posição 0 faz o npc olhar para o topo do mapa e o 4 para baixo. Cada posição teria 45º (graus) de diferença. Segue o esquema abaixo:

1 0 7
2 x 6
3 4 5

[%TAB%]: Apenas aperte o TAB. Não escreva nada, apertando o TAB do teclado irá adicionar um espaço ao código. (Não use barra de espaço! É TAB!).
Nome do NPC: É o nome em azul que fica em baixo do npc.
Sprite ID: É o ID (ou “número” para facilitar) da imagem do NPC. O id “-1” é para flutuantes (sem imagem e não pode clicar), “111” é sem imagem (ótimo para colocá-lo em alguma parte do cenário, como numa alavanca ou estante, veja a centrifuga em Geffen!).
Item ID: É o id do item a ser vendido. Consulte o item_db para saber os ids dos itens.
Preço: É o preço por qual o NPC irá vender o item anterior. Você pode escolher um preço positivo ou por “-1”, isso irá fazer com que o item seja vendido pelo seu preço no item_db.
Obs.: Para vender mais de um item basta repetir os campos item id e preço, colocando vírgulas entre eles.
Vamos então agora escrever o nosso npc shop:
“prontera.gat,66,190,3[%TAB%]shop[%TAB%]Garota das Gemas[%TAB%]90,715:1000,716:1000,717:-1”
Nota: Coloquei as três gemas, vermelha e amarela por 1000 zenys e a azul com -1 que caso você não tenha mudado no item_db será 600 zenys.
Salve o arquivo como “garota_das_gemas.txt”(use o “_” – underline, não coloque espaço, ou sinal (nunca tentei com números, provavelmente não pode usar no começo, depois texto). Vá então ao scripts_personalizados, abra-o e adicione na ultima linha: npc npc\...\garota_das_gemas.txt. Onde os “...” são o diretório de onde esta o npc. Ewl costumo usar dentro de uma pasta chamada Meus NPCs, no caso: npc npc/Meus NPCs/garota_das_gemas.txt .
Após ter feito tudo isso, ligue seu servidor e veja como está a sua npc!


Próxima aula: Ensinarei a criar npcs comuns e como ajustar/entender o npc flutuante da GdE! Faremos a npc das gemas pedir itens antes de abrir a loja, e fazer com que ela não possa vender no horário da GdE!

Olá Opera!

Já uso Opera há algum tempo mas só agora decidi criar um blog, conta no forum brasileiro e etc! Estou gostando muito de utilizar o Opera, mas ainda quero poder aprender a utilizar todo o potencial do mesmo! Criar ótimas skins, blogs, ver como que funciona o DragonFly, como fazer funcionar meu email xD entre outras coisas! Opera show de browser!
June 2012
M T W T F S S
May 2012July 2012
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30