emulator-ragnarok
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Criando script e entendendo-os

Ir para baixo

Criando script e entendendo-os Empty Criando script e entendendo-os

Mensagem  hamanas Dom Nov 15, 2009 3:58 pm

Criando Scripts e Entendendo-os
Hamanas


O que estou programando ?

Bom está pergunta é meio complicada, basicamente você está programando em C, as regras de sintaxe são as mesmas, porém apesar de se BASEAR no C, usamos uma Linguagem única do Cronus, se você tem conhecimentos em C terá MUITA facilidade para aprender a linguagem do Cronus.

Começando a Entender :

As chaves ( {} ) e suas funções :

Ora, essas são o motivo de maior dor de cabeça de Scripters iniciantes, as chaves são usadas para informar onde inicia e onde termina um evento, ou seja o evento descrito corresponde ao conteúdo que está dentro das chaves, exemplo :

QUOTE
prontera,150,150,4 script Exemplo01 841,{

}


O evento correspondente ao NPC Exemplo01 é o que está dentro da chave, usamos também as chaves para eventos como IF ELSE e outros, exemplo;

QUOTE
prontera,150,150,4 script Exemplo01 841,{

if(@exemplo ==1) {

Evento da primeira condição
}Fechando Chave do IF

Else {
CASO contrario evento se a condição for falsa
} // fechando Chave do Else

} fechando chave do NPC



Temos que prestar muita atenção nas chaves para nao haver erros na programação, mais tarde mostrarei alguns macetes para que não haja enganos.


O "Ponto e Vírgula" :

Outro item comum aos programadores de C, e também um item muito esquecido e chato.
O ponto e vírgula ( ; ) marca o fim de uma determinada função, vejamos abaixo:

QUOTE
show "Você está vendo um tutorial by NightCronus";


O ponto e vírgula está informando ao Emulador ( Cronus ) que o comando show encerrou ali, este item é bem simples não necessita de demais explicações, resumindo toda linha que contenha algum tipo de função deve conter no final da função o Ponto e Vírgula, com os exemplos fica mais fácil compreender.


O "<TAB>" :

Ultimo item de sintaxe que veremos nesse tutorial e talvez o mais importante, geralmente vemos alguns iniciantes cometer o seguinte erro:

QUOTE
prontera,150,150,4<TAB>script<TAB>Exemplo01<TAB>841,{


Pessoal, TAB é uma tecla, no seu teclado deve conter acima do Shift do lado esquerdo:

(IMG:http://www.tj.pr.gov.br/divrecursoshumanos/cams/imagens/tab.jpg)

<TAB> Significa que o espaço entre os itens deve ser feito através da tecla TAB.




Sintaxe básica de NPCs :


O cabeçalho :

Todo NPC é formado por um cabeçalho com uma ordem padrão de informações, como segue o exemplo abaixo:

prontera,150,150,4<TAB>script<TAB>Resetadora<TAB>259,{

Legenda:
Nome do Mapa
Coordenada X
Coordenada Y
Posição do NPC ( lado para qual ele está virado)
Tipo de NPC, veremos mais tarde os detalhes
Nome do NPC, veremos mais tarde os detalhes
Numero da Sprite do NPC




Tipos de NPCs :

Podem existir dois tipos a serem informados, script e shop

Script é o NPC que faz algum tipo de evento ( NPC que conversa ou realiza ações ).
Shop é um NPC que compra e vende itens.



Nomes de NPCs :

Podemos vários tipos de nomes em NPCs, tem um limite máximo de 23 caracteres ( se eu estiver engado por favor me corrijam que eu edito essa parte) e podem conter acentos, nao podem conter hífens nem vírgula.

Alguns nomes podemos encontrar a seguinte sintaxe:

QUOTE
Ariel#1


Bom, usamos isso para poder separar um NPC de outro, já que o emulador nao permite que tenhamos dois NPCs com o mesmo nome, porém o que esta depois do Sustenido ( # ) não é mostrado quando passamos o mouse encima do NPC, porém faz parte do nome, se usarmo um comando como o @hidenpc, devemos informar o nome COMPLETO do NPC, vide abaixo:

CODE
@unloadnpc Ariel#1




Comandos Básicos :

show :
Comando básico do NPC, exibe uma frase na janela do NPC, exemplo:

CODE
prontera,150,150,4 script Ariel 259,{

show "Primeiro comando do tutorial";

}


O campo da string ( mensagem ) deve SEMPRE estar com o texto entre Aspas Duplas

entre a palavra show eo texto usa-se espaço e NAO TAB, nesse tutorial toda vez que usar-se TAB eu irei indicar, exceto o cabeçalho por que já vimos acima se deve usar o TAB e onde deve-se usar.



next:

Usamos o next para "avançar" no scritp, pense nele como uma forma de você "paginar" seu NPC, vide exemplo:

CODE
prontera,150,150,4 script Ariel 259,{

show "Primeiro comando do tutorial";
next;
show "Essa linha só será exibida depois que o jogador clicar em next";

}


Nota: Repare no ponto e vírgula presente depois do next e do show, lembre-se disso.



close:

Esse comando encerra a conversa com o NPC.

CODE
prontera,150,150,4 script Ariel 259,{

show "Primeiro comando do tutorial";
next;
show "Essa linha só será exibida depois que o jogador clicar em next";
close;

}


Ao clicar em close o NPC será fechado.


Juntando o que aprendemos e criando:

Bom aqui estão alguns NPCs usando tudo que aprendemos até agora para que fique bem fixado as informações:

CODE
prontera,150,150,4 script Ariel 259,{

show "Olá, meu nome é Ariel";
show "Fui criada para poder auxiliar você em sua jornada em Rune-Midgard";
next;
show "Lhe desejo sorte e prosperidade nesse mundo cheio de aventuras";
show "Quando precisar venha a mim e peça ajuda";
next;
show "Trabalhe duro e se esforçe tenho certeza que logo será um bravo guerreiro";
close;

}


Copie e cole em um txt e ponha para rodar em seu servidor, agora use a criatividade para criar algo útil.

set :

O Comando SET serve para atribuirmos um deternimado valor a uma variável.
Sendo usado desta forma:
CODE
set <nome_da_variavel>,<valor>;



Nota: Sempre que usamos uma palavra entre < > serve para identificarmos que a mesma esta apenas esplicando o que deve ser colocado em seu lugar, nunca quando usar qualquer comando/função utlize o <>, exeplificando:

CODE
set @variavel1,1;


Variáveis :

Tipos:

O tipo de uma variável é determinado pelos simbolos que a antecedem e/ou precedem ( antes ou depois ).

@ - Variáveis que começem com esse simbolo são variáveis temporárias do personagem.
- Variáveis identificadas sem nenhum simbolo a frente são variáveis permanentes do personagem.

Ex:
CODE
set @var1 // Variavel temporária do personagem, quando o personagem relogar ela desaparecerá ( acredito que seja esse o conceito correto )

set var1 // Variavel permanente do personagem, ela ficara gravada sempre, podendo o personagem deslogar e etc.


$ - Este simbolo ao final de uma variável significa que a mesma está destinada a receber strings ( textos ).Caso as variáveis nao contenham-no no final as mesmas devem receber apenas numeros.Assim as que usamos no exemplo acima só podem usar números.

Exemplos:

CODE
set @var1,1; // Essa variável temporaria recebe apenas numeros.

set var2,1; // Variável permamente que recebe apenas numeros.

set @var1$,"Olá"; // Variavel temporaria que recebe texto.

set var1$,"Oi"; // Variável permanente do personagem, a mesma recebe textos.


Lembre-se que pode colocar numeros , porem serao utilizados como texto e nao poderemos manipula-los ( veremos mais tarde ).Lembre-se também de SEMPRE colocar o valor de uma variável string entre aspas duplas, " " .

Bom, abaixo segue uma lista dos tipos possiveis de variaveis:



@var - Variavel temporária do personagem.
var - Variavel permanente do personagem.
#var - variável permanete da conta do usuário.
$var - Variável permanente global
$@ - Variavel temporária global.


Sei que é meio complicado mas vou tentar explicar 1 a uma.

Váriáveis do personagem - São salvas no pernosagem, usamos para afetar APENAS UM PERSONAGEM, por exemplo, se no meu NPC existe uma variavel para que quando ela for igual 1 o Personagem nao possa fazer novamente a quest, usando esse tipo de variavel a pessoa pode logar outro personagem e re-fazer a quest sem restrições.

Váriaveis da Conta - Afetam toda a conta do usuário, se essa variavel causa alguma restrição, causará a TODOS os personagens daquela conta.

Variáveis Globais - Afetam a todos os usuarios, nao importa se são de classes diferentes, todos são afetados por esse tipo de variavel.

Será mais fácil quando nós veremos elas em ação


Exibindo o valor de uma variável



Para exibir algo devemos lembrar do comando mes, porém nao podemos simplesmente jogar a variável dentro do mes, ou ele a leria como um texto simples, veja abaixo:

CODE
set @nomedonpc$,"Ariel";

show "Olá eu sou @nomedonpc$, prazer em conhece-lo";


Usando o código acima ele exibira EXATAMENTE o que está escrito, devemos informar ao comando que queremos que ele use o valor da variavel, fazemos isso desta forma:

Vamos adicionar antes e depois da variavel os seguintes simbolos, "+ no começo e +" no fim, resultado final seria "+ @nomedonpc +", vamos agora juntar isso ao NPC.

CODE
set @nomedonpc$,"Ariel";
show "Olá eu sou "+ @nomedonpc$ +", prazer em conhece-lo";


O texto exibido será: Olá eu sou Ariel, prazer em conhece-lo



Trabalhando valores em variáveis

Para fazermos, primeiramente, devemos ter nossas variáveis em formato integer, memorizem essa palavra ela é bem importante, isso significa que nossa variável só deve aceitar numeros, ou seja ela NÃO deve conter em seu fim o simbolo $ .

Podemos fazer as quatros operações básicas com uma variável ( pelo menos até onde eu sei (IMG:http://cronus-emulator.com/forum/style_emoticons/default/unsure.gif) ) é bem simples pessoal, dessa forma :

CODE
set @num1,10;
set @num2,5:

set @resultado,@num1 + @num2;

mes "O Resultado é "+@resultado+" pontos."


Podemos também utilizar o valor da mesma variavel, assim:

CODE
set @num1,10;
set @num2,5;
next;
set @num2,@num2 + @num1; // Recebe ela mesmo mais o valor da @num1

set @resultado,@num2 - 3; // Podemos usar numeros ao invés de variaveis

hamanas
Aprendiz
Aprendiz

Mensagens : 6
Data de inscrição : 15/11/2009

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos