<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
	<title>Cronus Emulator - Tutoriais: Script, Database e Source</title>
	<link>http://forum.cronus-emulator.com/index.php?/tutorials/category/3-script-database-e-source/</link>
	<pubDate>Mon, 21 May 2012 05:26:33 +0000</pubDate>
	<ttl>1800</ttl>
	<description>Tutoriais sobre script, database e source.</description>
	<item>
		<title>Modificações Basicas na SRC !</title>
		<link>http://forum.cronus-emulator.com/index.php?/tutorials/article/421-modificacoes-basicas-na-src/</link>
		<description><![CDATA[<strong class='bbc'>Bom estou vendo que muita gente ainda n&atilde;o tem muita no&ccedil;&atilde;o de modifica&ccedil;&otilde;es na soucer do emulador pois vou ensinar aqui umas modifica&ccedil;&otilde;es basicas !</strong><br />
<strong class='bbc'>=====================================================================================================================================</strong><br />
<p class='bbc_center'><strong class='bbc'><span style='font-size: 18px;'>- Introdu&ccedil;&atilde;o !</span></strong></p>
<br />
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Maximo Level </strong></span><span style='color: #ff0000'><strong class='bbc'>(3rd e classes normais)</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Maximo Zeny</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Maximo Storage da Guild</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Maximo Storage</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Maximo Amigos</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Maximo Player no Grupo</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Maximo numero de player na Guild</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Maximo Level da Guild</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Numero Maximo de Pets na DB do emulador</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Altera&ccedil;&otilde;es do Packetver</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Numero maximo de itens no inventario</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Numero maximo de Slots em itens</strong></span></p>
<p class='bbc_center'><span style='color: #0000cd'><strong class='bbc'>* Numero maximo de itens no carrinho</strong></span></p>
<p class='bbc_center'><strong class='bbc'><span style='color: #0000cd'>* Numero maximo de Mobs</span></strong></p>
<strong class='bbc'>=====================================================================================================================================</strong><br />
<br />
<br />
<p class='bbc_center'><strong class='bbc'><span style='color: #000080'>&raquo; Alterando Maximo Level </span><span style='color: #ff0000'>(3rds e Classes Normais)</span></strong></p>
<strong class='bbc'>Bom vamos come&ccedil;ar pelas classes normais !</strong><br />
<strong class='bbc'>Vamos na pasta <span style='color: #ff0000'>src/map</span>, dentro dela procure por esse arquivo <span style='color: #0000ff'>Map.H</span> !</strong><br />
<strong class='bbc'>Agora procure por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_LEVEL 99
</pre>
<br />
<strong class='bbc'>Coloque o level que vc deseja mais lembrando que n&atilde;o pode ultrapassar de <span style='color: #ff0000'>1000</span> !</strong><br />
<br />
<strong class='bbc'>Agora 3rds !</strong><br />
<strong class='bbc'>Continuando na mesma pasta procure pelo arquivo <span style='color: #0000ff'>Battle.C</span></strong><br />
<strong class='bbc'>Agora procure por essa linha:</strong><br />
<pre class='prettyprint'>
{ "max_lv",							 &battle_config.max_lv,						  150,	 1,	 MAX_LEVEL,  }
</pre>
<strong class='bbc'>Altere so o numero <span style='color: #800080'>150</span>, coloque o level desejado das suas 3rds, lembrando que tbm n&atilde;o pode ultrapassar do <span style='color: #ff0000'>1000</span> !</strong><br />
<br />
<strong class='bbc'>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero maximo de zenys !</strong></span></p>
<br />
<strong class='bbc'>Vamos agora na <span style='color: #ff0000'>src/common</span>, dentro dela procure por esse arquivo <span style='color: #0000ff'>mmo.H</span></strong><br />
<strong class='bbc'>Procure por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_ZENY 1000000000
</pre>
<br />
<strong class='bbc'>O numero <span style='color: #800080'>"1000000000"</span> &eacute; <span style='color: #0000cd'>1b</span> ou <span style='color: #0000cd'>1kkk</span> !</strong><br />
<strong class='bbc'>Ele so pode ser alterado at&eacute; <span style='color: #ff0000'>"2000000000"</span> <span style='color: #0000cd'>2b</span> ou <span style='color: #0000cd'>2kkk</span> !</strong><br />
<strong class='bbc'>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero maximo de itens no Storage da Guild !</strong></span></p>
<br />
<strong class='bbc'>Continuando dentro do mesmo arquivo <span style='color: #0000ff'>mmo.H</span></strong><br />
<strong class='bbc'>Procure por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_GUILD_STORAGE 600
</pre>
<br />
<strong class='bbc'>Se vc estiver usando qualquer<span style='color: #008000'> emulador cronus</span> vai ter essas configura&ccedil;&otilde;es abaixo dessa linha !</strong><br />
<pre class='prettyprint'>
#define MAX_GUILD_STORAGE 600
// guild storage limit - 731
#if MAX_GUILD_STORAGE &gt; 731
#undef MAX_GUILD_STORAGE
#define MAX_GUILD_STORAGE 600
</pre>
<strong class='bbc'>Bom vc vai alterar assim:</strong><br />
<div class='bbc_spoiler'>
	<span class='spoiler_title'>Spoiler</span> <input type='button' class='bbc_spoiler_show' value='Show' />
	<div class='bbc_spoiler_wrapper'><div class='bbc_spoiler_content' style="display:none;"><br />
<strong class='bbc'>#define MAX_GUILD_STORAGE <span style='color: #ff0000'>600</span> <span style='color: #800080'>&gt; vai definir o numero maximo da seu storage da guild, coloque o valor desejado !</span><br />
// guild storage limit - <span style='color: #ff0000'>731</span> <span style='color: #800080'>&gt;</span> <span style='color: #800080'>Esta dizendo que vc n&atilde;o pode ultrapassar essa valor, mais agente &eacute; teimoso e vamos ultrapassar !</span><br />
#if MAX_GUILD_STORAGE &gt; <span style='color: #ff0000'>731</span> <span style='color: #800080'>&gt; &Eacute; a defini&ccedil;&atilde;o do limite da linha, mais agente &eacute; doido, ent&atilde;o aqui vc coloca um numero maior que vc coloco p ser seu Storage da guild </span><span style='color: #0000ff'>(exp: vc coloca p o storage suporta 1000 itens, ent&atilde;o aqui vc coloca 1100 !)</span><br />
	#undef MAX_GUILD_STORAGE<br />
	#define MAX_GUILD_STORAGE <span style='color: #ff0000'>600</span> <span style='color: #800080'>&gt; vai definir o numero maximo da seu storage da guild, coloque o valor desejado !</span></strong><br />
</div></div>
</div>
<strong class='bbc'>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero maximo de itens no Storage !</strong></span></p>
<br />
<strong class='bbc'>Continuando no mesmo arquivo <span style='color: #0000ff'>mmo.H</span></strong><br />
<strong class='bbc'>Procure por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_STORAGE 600
</pre>
<br />
<strong class='bbc'>Se vc estiver usando qualquer emulador cronus vai ter essas configura&ccedil;&otilde;es abaixo dessa linha !</strong><br />
<pre class='prettyprint'>
#define MAX_STORAGE 600
// storage limit - 731
#if MAX_STORAGE &gt; 731
#undef MAX_STORAGE
#define MAX_STORAGE 600
</pre>
<br />
<strong class='bbc'>Mesmo processo da Storage da Guild !</strong><br />
<br />
<div class='bbc_spoiler'>
	<span class='spoiler_title'>Spoiler</span> <input type='button' class='bbc_spoiler_show' value='Show' />
	<div class='bbc_spoiler_wrapper'><div class='bbc_spoiler_content' style="display:none;"><br />
<strong class='bbc'>#define MAX_STORAGE <span style='color: #ff0000'>600</span> <span style='color: #800080'>&gt; vai definir o numero maximo da seu storage, coloque o valor desejado !</span><br />
// storage limit - <span style='color: #ff0000'>731</span> <span style='color: #800080'>&gt; Esta dizendo que vc n&atilde;o pode ultrapassar essa valor, mais agente &eacute; teimoso e vamos ultrapassar !</span><br />
#if MAX_STORAGE &gt; <span style='color: #ff0000'>731</span> <span style='color: #800080'>&gt; &Eacute; a defini&ccedil;&atilde;o do limite da linha, mais agente &eacute; doido, ent&atilde;o aqui vc coloca um numero maior que vc coloco p ser seu Storage </span><span style='color: #0000cd'>(exp: vc coloca p o storage suporta 1000 itens, ent&atilde;o aqui vc coloca 1100 !)</span><br />
	#undef MAX_STORAGE<br />
	#define MAX_STORAGE <span style='color: #ff0000'>600</span> <span style='color: #800080'>&gt; vai definir o numero maximo da seu storage, coloque o valor desejado !</span></strong><br />
</div></div>
</div>
<br />
<strong class='bbc'>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero maximo de amigos !</strong></span></p>
<br />
<strong class='bbc'>Continuando no <span style='color: #0000ff'>mmo.H</span></strong><br />
<strong class='bbc'>Procure por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_FRIENDS 40
</pre>
<strong class='bbc'><span style='color: #ff0000'>* 40 = Valor Padr&atilde;o !</span></strong><br />
<br />
<strong class='bbc'>Bom eu n&atilde;o sei at&eacute; quando vc pode ultrapassar esse numero, at&eacute; agora eu so consegui colocar <span style='color: #0000ff'>60</span> !</strong><br />
<br />
<strong class='bbc'>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero maximo de player no Grupo !</strong></span></p>
<br />
<strong class='bbc'>Continuamos no <span style='color: #0000ff'>mmo.H</span></strong><br />
<strong class='bbc'>Procurem por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_PARTY 12
</pre>
<strong class='bbc'><span style='color: #ff0000'>* 12 = Valor Padr&atilde;o !</span></strong><br />
<br />
<strong class='bbc'>Bom galera aqui o processo n&atilde;o &eacute; so alterar o numero 12, &eacute; o seguinte ele so altera em modo de mutiplica&ccedil;&atilde;o !</strong><br />
<strong class='bbc'>Ent&atilde;o vc coloca assim 12*2 <span style='color: #008000'>(Vai mutiplicar o 12 por 2 !)</span>, eu n&atilde;o conseguir ultrapassar esse valor !</strong><br />
<br />
<strong class='bbc'>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero maximo de player na Guild !</strong></span></p>
<br />
<strong class='bbc'>Ainda dentro do <span style='color: #0000ff'>mmo.H</span></strong><br />
<strong class='bbc'>Procurem por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_GUILD 16+10*6
</pre>
<br />
<strong class='bbc'>Bom aqui &eacute; um pouco mais complicadinho !</strong><br />
<strong class='bbc'>Mais vamos la !</strong><br />
<strong class='bbc'><span style='color: #ff0000'>16</span> <span style='color: #800080'>&eacute; o numero inicial para membros do cl&atilde;, tipo assim que vc fez a guild vai poder entrar so 16 players !</span></strong><br />
<strong class='bbc'><span style='color: #ff0000'>10</span> <span style='color: #800080'>&eacute; quantas vezes a Habilidade de expas&atilde;o de Guild se repete </span><span style='color: #ff0000'>"n&atilde;o ultrapasse de  10"</span></strong><br />
<strong class='bbc'><span style='color: #ff0000'>6</span><span style='color: #800080'> &eacute; o numero de membros que cada nivel da Habilidade da </span><span style='color: #0000ff'>"Guildo Expansion"</span><span style='color: #800080'> aumenta</span></strong><br />
<br />
<strong class='bbc'>Ent&atilde;o nos vamos alterar so os <span style='color: #0000ff'>16</span> e o<span style='color: #0000ff'> 6</span> !</strong><br />
<strong class='bbc'>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Maximo Level da Guild !</strong></span></p>
<br />
<strong class='bbc'>Ainda dentro do <span style='color: #0000ff'>mmo.H</span></strong><br />
<strong class='bbc'>Procurem agora por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_GUILDLEVEL 50
</pre>
<br />
<strong class='bbc'>Bom <span style='color: #ff0000'>50</span> &eacute; o level maximo que a guild pode chegar, nunca conseguir passar de <span style='color: #ff0000'>80</span> !</strong><br />
<br />
<strong class='bbc'>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero Maximo de Pets</strong></span></p>
<br />
<strong class='bbc'>Bom galera agora vamos na pasta <span style='color: #ff0000'>Map</span> que esta dentro da pasta <span style='color: #ff0000'>src</span> !</strong><br />
<strong class='bbc'>Dentro dela procure pelo arquivo <span style='color: #0000ff'>Pet.H</span> !</strong><br />
<strong class='bbc'>E produrem por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_PET_DB 300
</pre>
<br />
<strong class='bbc'>Bom eu aconselho a n&atilde;o alterar esse valor, mais para quem desejar adicionar muitos Pet custons, esse numero n&atilde;o pode <span style='color: #ff0000'>ultrapassa de 1000</span> !</strong><br />
<br />
<strong class='bbc'>---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero Maximo de Mobs !</strong></span></p>
<br />
<strong class='bbc'>Bom ainda dentro da pasta <span style='color: #ff0000'>Map</span> !</strong><br />
<strong class='bbc'>Procure por esse arquivo <span style='color: #0000ff'>Mob.H</span></strong><br />
<strong class='bbc'>E procure por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_MOB_DB 4000
</pre>
<br />
<strong class='bbc'>Bom esse numero &eacute; constante mente trocado quando o emulador &eacute; atualizado porque &eacute; adicionado mais mobs do Bro, ent&atilde;o se vc deseja alterar esse numero sempre porcure manter um valor bastante alto, <span style='color: #ff0000'>nunca saindo da linha de 1000</span> !</strong><br />
<br />
<strong class='bbc'>--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Altera&ccedil;&otilde;es do Packetver !</strong></span></p>
<br />
<strong class='bbc'>Bom vamos voltar a pasta <span style='color: #ff0000'>common</span>, e ao arquivo <span style='color: #0000ff'>mmo.H</span> !</strong><br />
<strong class='bbc'>Procurem por essa linha:</strong><br />
<pre class='prettyprint'>
#ifndef PACKETVER
#define PACKETVER 20100730
//#define PACKETVER 20110111
</pre>
<br />
<strong class='bbc'>Bom para quem n&atilde;o conhece muito essa parte, &eacute; o seguinte, essa &eacute; a parte onde agente altera para o emulador reconhecer o hexed de data tal !</strong><br />
<strong class='bbc'>No caso o meu esta configurado para o <span style='color: #ff0000'>"20100730"</span>, que seria o <span style='color: #ff0000'>2010-07-30</span> !</strong><br />
<strong class='bbc'>Ai se caso vc quiser trocar a data do hexed, vc vai alterar assim !</strong><br />
<br />
<div class='bbc_spoiler'>
	<span class='spoiler_title'>Spoiler</span> <input type='button' class='bbc_spoiler_show' value='Show' />
	<div class='bbc_spoiler_wrapper'><div class='bbc_spoiler_content' style="display:none;"><br />
<strong class='bbc'>#ifndef PACKETVER<br />
#define PACKETVER <span style='color: #ff0000'>20100730 &gt; Hexed compativel !</span><span style='color: #0000ff'> (Troque a data  exp: seu hexed &eacute; o 2011-05-20, vc remove os "-" ent&atilde;o ficaria assim 20110520, e coloca no lugar do 20100730 !)</span><br />
//#define PACKETVER <span style='color: #ff0000'>20110111 &gt; Hexed Tbm compativel !</span></strong><br />
<strong class='bbc'></div></div>
</div></strong><br />
<br />
<strong class='bbc'>Mais n&atilde;o vamos alterar so aqui !</strong><br />
<br />
<strong class='bbc'>Vamos na pasta <span style='color: #ff0000'>DB</span> do emulador, dentro dela procure pelo arquivo <span style='color: #0000ff'>packet_db.txt</span></strong><br />
<strong class='bbc'>Procure por:</strong><br />
<pre class='prettyprint'>
//packet_db_ver: default
packet_db_ver: 25
</pre>
Ent&atilde;o vc fara isso remover as // do "//packet_db_ver: default" e colocalas no "packet_db_ver: 25" !<br />
Entr&atilde;o fica assim :<br />
<pre class='prettyprint'>
packet_db_ver: default
//packet_db_ver: 25
</pre>
<br />
<strong class='bbc'>--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero maximo de itens no inventario !</strong></span></p>
<br />
<strong class='bbc'>Ainda dentro da <span style='color: #ff0000'>common</span> !</strong><br />
<strong class='bbc'>Vamos entrar novamente no arquivo <span style='color: #0000ff'>mmo.H</span> !</strong><br />
<strong class='bbc'>Procure por essa linha:</strong><br />
<pre class='prettyprint'>
#define MAX_INVENTORY 100
</pre>
<br />
<strong class='bbc'>Bom eu nunca alterei esse valor ent&atilde;o n&atilde;o sei qual o numero maximo que vcs n&atilde;o podem ultrapassar, <span style='color: #ff0000'>sugiro que n&atilde;o ultrapassem de 500</span> !</strong><br />
<br />
<strong class='bbc'>--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero maximo de Slots em itens !</strong></span></p>
<br />
<strong class='bbc'>Ainda no <span style='color: #0000ff'>mmo.H</span> !</strong><br />
<strong class='bbc'>Procure por:</strong><br />
<pre class='prettyprint'>
#define MAX_SLOTS 4
</pre>
<br />
<strong class='bbc'>Bom galera aqui vcs v&atilde;o alterar o numero maximo de slots nos itens !<span style='color: #ff0000'> vcs n&atilde;o podem colocar abaixo de 4</span> ! E se vc colocarem mais de 4 seu hexed tem que ter suporte a essa op&ccedil;&atilde;o, e ainda n&atilde;o achei um hexed que suporte !</strong><br />
<br />
<strong class='bbc'>--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</strong><br />
<br />
<br />
<p class='bbc_center'><span style='color: #000080'><strong class='bbc'>&raquo; Alterando Numero maximo de itens no carrinho !</strong></span></p>
<br />
<strong class='bbc'>Ainda dentro do <span style='color: #0000ff'>mmo.H</span></strong><br />
<strong class='bbc'>Procure por:</strong><br />
<pre class='prettyprint'>
#define MAX_CART 100
</pre>
<br />
<strong class='bbc'>Bom <span style='color: #ff0000'>100</span> &eacute; o numero padr&atilde;o de itens que v&atilde;o ser colocados dentro do carinho !<span style='color: #ff0000'> Eu sugiro n&atilde;o ultrapassar de 500 !</span></strong><br />
<br />
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br />
<br />
<strong class='bbc'>Bom ent&atilde;o foi ai algumas modifica&ccedil;&otilde;es basicas na source do emulador, espero que gostem !</strong><br />
<br />
<br />
<p class='bbc_right'><span style='color: #dda0dd'><strong class='bbc'>T'y</strong></span></p>]]></description>
		<pubDate>Thu, 10 May 2012 02:24:22 +0000</pubDate>
		<guid isPermaLink="false">421</guid>
		<creator>KyO x</creator>
		<category>3</category>
	</item>
	<item>
		<title>Adicionando os mapflags NoStorage e NoGuildStorage.</title>
		<link>http://forum.cronus-emulator.com/index.php?/tutorials/article/413-adicionando-os-mapflags-nostorage-e-noguildstorage/</link>
		<description><![CDATA[Bom, eu vi muita gente por ai, com problemas na hora de bloquear o storage e gstorage em certo mapa, ent&atilde;o resolvi postar uma solu&ccedil;&atilde;o...<br />
Por&eacute;m a maioria dos emuladores ja venham com essas configura&ccedil;&otilde;es, apenas algumas por isso n&atilde;o funciona o mapflag, ent&atilde;o irei postar todas as configura&ccedil;&otilde;es.<br />
<br />
Bom vamos la...<br />
<br />
Abra o arquivo:<br />
<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'>src/map/map.h</div></div>
<br />
Procure:<br />
<br />
<pre class='prettyprint'>unsigned src4instance : 1; // To flag this map when it's used as a src map for instances</pre>
<br />
Abaixo adicione:<br />
<br />
<pre class='prettyprint'>
unsigned src4instance : 1; // To flag this map when it's used as a src map for instances
unsigned nostorage :1; // &#91;SoulBlaker&#93;
unsigned noguildstorage :1; // &#91;SoulBlaker&#93;</pre>
<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'>src/map/npc.c</div></div>
Procure:<br />
<br />
<pre class='prettyprint'>
else if (!strcmpi(w3,"guildlock"))
	map&#91;m&#93;.flag.guildlock=state;</pre>
<br />
Abaixo adicione:<br />
<br />
<pre class='prettyprint'>
else if (!strcmpi(w3,"guildlock"))
	map&#91;m&#93;.flag.guildlock=state;
else if (!strcmpi(w3,"nostorage"))
	map&#91;m&#93;.flag.nostorage=state;
else if (!strcmpi(w3,"noguildstorage"))
	map&#91;m&#93;.flag.noguildstorage=state;</pre>
<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'>src/map/script.c</div></div>
Procure:<br />
<br />
<pre class='prettyprint'>MF_BATTLEGROUND,   //51</pre>
<br />
Abaixo adicione:<br />
<br />
<pre class='prettyprint'>
MF_BATTLEGROUND,   //51
MF_NOSTORAGE,
MF_NOGUILDSTORAGE,</pre>
<br />
Certo... agora iremos adicionar o flag id no script 52~53.<br />
<br />
Novamente Procure:<br />
<br />
<pre class='prettyprint'>case MF_BATTLEGROUND: script_pushint(st,map&#91;m&#93;.flag.battleground); break;</pre>
<br />
Abaixo adicione:<br />
<br />
<pre class='prettyprint'>
case MF_BATTLEGROUND: script_pushint(st,map&#91;m&#93;.flag.battleground); break;
case MF_NOSTORAGE: script_pushint(st,map&#91;m&#93;.flag.nostorage); break;
case MF_NOGUILDSTORAGE: script_pushint(st,map&#91;m&#93;.flag.noguildstorage); break;</pre>
<br />
Novamente Procure:<br />
<br />
<pre class='prettyprint'>case MF_BATTLEGROUND: map&#91;m&#93;.flag.battleground = (!val || atoi(val) &lt; 0 || atoi(val) &gt; 2) ? 1 : atoi(val); break;</pre>
<br />
Abaixo adicione:<br />
<br />
<pre class='prettyprint'>
case MF_BATTLEGROUND: map&#91;m&#93;.flag.battleground = (!val || atoi(val) &lt; 0 || atoi(val) &gt; 2) ? 1 : atoi(val); break;
case MF_NOSTORAGE:	 map&#91;m&#93;.flag.nostorage=1; break;
case MF_NOGUILDSTORAGE: map&#91;m&#93;.flag.noguildstorage=1; break;</pre>
<br />
Novamente Procure:<br />
<br />
<pre class='prettyprint'>case MF_BATTLEGROUND: map&#91;m&#93;.flag.battleground=0; break;</pre>
<br />
Abaixo adicione:<br />
<br />
<pre class='prettyprint'>
case MF_BATTLEGROUND: map&#91;m&#93;.flag.battleground=0; break;
case MF_NOSTORAGE:	 map&#91;m&#93;.flag.nostorage=0; break;
case MF_NOGUILDSTORAGE: map&#91;m&#93;.flag.noguildstorage=0; break;</pre>
<br />
Abra o arquivo:<br />
<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'>src/map/storage.c</div></div>
<br />
Procure:<br />
<br />
<pre class='prettyprint'>
int storage_storageopen(struct map_session_data *sd)
{
	nullpo_retr(0, sd);

	if(sd-&gt;state.storage_flag)
		return 1; //Already open?

	if( !pc_can_give_items(pc_isGM(sd)) )
	  { //check is this GM level is allowed to put items to storage
		clif_displaymessage(sd-&gt;fd, msg_txt(246));
		return 1;
	}
	
	sd-&gt;state.storage_flag = 1;
	clif_storagelist(sd,&sd-&gt;status.storage);
	clif_updatestorageamount(sd,sd-&gt;status.storage.storage_amount);
	return 0;
}</pre>
<br />
Abaixo adicione:<br />
<br />
<br />
int storage_storageopen(struct map_session_data *sd)<pre class='prettyprint'>
{
	int m;
	nullpo_retr(0, sd);

	if(sd-&gt;state.storage_flag)
		return 1; //Already open?

	m = sd-&gt;bl.m;
	if (map&#91;m&#93;.flag.nostorage) {
		clif_displaymessage(sd-&gt;fd, msg_txt(527));
		return 1;
	}

	if( !pc_can_give_items(pc_isGM(sd)) )
	  { //check is this GM level is allowed to put items to storage
		clif_displaymessage(sd-&gt;fd, msg_txt(246));
		return 1;
	}
	
	sd-&gt;state.storage_flag = 1;
	clif_storagelist(sd,&sd-&gt;status.storage);
	clif_updatestorageamount(sd,sd-&gt;status.storage.storage_amount);
	return 0;
}</pre>
<br />
<br />
Novamente Procure:<br />
<br />
<pre class='prettyprint'>
int storage_guild_storageopen(struct map_session_data* sd)
{
	struct guild_storage *gstor;

	nullpo_retr(0, sd);

	if(sd-&gt;status.guild_id &lt;= 0)
		return 2;

	if(sd-&gt;state.storage_flag)
		return 1; //Can't open both storages at a time.
	
	if( !pc_can_give_items(pc_isGM(sd)) ) { //check is this GM level can open guild storage and store items &#91;Lupus&#93;
		clif_displaymessage(sd-&gt;fd, msg_txt(246));
		return 1;
	}

	if((gstor = guild2storage2(sd-&gt;status.guild_id)) == NULL) {
		intif_request_guild_storage(sd-&gt;status.account_id,sd-&gt;status.guild_id);
		return 0;
	}
	if(gstor-&gt;storage_status)
		return 1;
	
	gstor-&gt;storage_status = 1;
	sd-&gt;state.storage_flag = 2;
	clif_guildstoragelist(sd,gstor);
	clif_updateguildstorageamount(sd,gstor-&gt;storage_amount);
	return 0;
}</pre>
<br />
<br />
Abaixo adicione:<br />
<br />
<pre class='prettyprint'>
int storage_guild_storageopen(struct map_session_data* sd)
{
	struct guild_storage *gstor;
	int m;

	nullpo_retr(0, sd);

	m = sd-&gt;bl.m;
	if (map&#91;m&#93;.flag.noguildstorage) {
		clif_displaymessage(sd-&gt;fd, msg_txt(528));
		return 1;
	}

	if(sd-&gt;status.guild_id &lt;= 0)
		return 2;

	if(sd-&gt;state.storage_flag)
		return 1; //Can't open both storages at a time.
	
	if( !pc_can_give_items(pc_isGM(sd)) ) { //check is this GM level can open guild storage and store items &#91;Lupus&#93;
		clif_displaymessage(sd-&gt;fd, msg_txt(246));
		return 1;
	}

	if((gstor = guild2storage2(sd-&gt;status.guild_id)) == NULL) {
		intif_request_guild_storage(sd-&gt;status.account_id,sd-&gt;status.guild_id);
		return 0;
	}
	if(gstor-&gt;storage_status)
		return 1;
	
	gstor-&gt;storage_status = 1;
	sd-&gt;state.storage_flag = 2;
	clif_guildstoragelist(sd,gstor);
	clif_updateguildstorageamount(sd,gstor-&gt;storage_amount);
	return 0;
}</pre>
<br />
Abra o arquivo:<br />
<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'>emulador/conf/msg_athena.conf</div></div>
<br />
Procure:<br />
<br />
<pre class='prettyprint'>// Sistema de Correio
//----------------------
526: Voc&ecirc; tem novas mensagens.</pre>
<br />
Abaixo adicione:<br />
<br />
<pre class='prettyprint'>// Sistema de Correio
//----------------------
526: Voc&ecirc; tem novas mensagens.</pre>
<br />
<pre class='prettyprint'>
// MapFlags NoStorage e NoGuildStorage
527: Voc&ecirc; n&atilde;o tem permiss&atilde;o para usar o Armaz&eacute;m neste Mapa.
528: Voc&ecirc; n&atilde;o tem permiss&atilde;o para usar o Armaz&eacute;m da Guild neste Mapa.</pre>
<br />
Abra o arquivo:<br />
<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'>emulador/db/const.txt</div></div>
<br />
Procure:<br />
<br />
<pre class='prettyprint'>mf_battleground 51</pre>
<br />
Abaixo adicione:<br />
<br />
<pre class='prettyprint'>
mf_battleground 51
mf_nostorage 52
mf_noguildstorage 53</pre>
<br />
Recompile o seu emulador e pronto, seu emulador estar&aacute; dispon&iacute;vel para usar os mapflags nos comandos do script.<br />
<br />
Cr&eacute;ditos: Psicotico, SouBlaker.]]></description>
		<pubDate>Tue, 17 Apr 2012 05:09:33 +0000</pubDate>
		<guid isPermaLink="false">413</guid>
		<creator>Psicotico</creator>
		<category>3</category>
	</item>
	<item>
		<title>Aula de Script - Básico</title>
		<link>http://forum.cronus-emulator.com/index.php?/tutorials/article/390-aula-de-script-basico/</link>
		<description><![CDATA[<p class='bbc_left'><div class="message">					<span style='font-size: 24px;'>Aula de Script - B&aacute;sico</span></p>
<p class='bbc_left'><span style='font-size: 18px;'>entendendo comandos</span></div><div class="message error"><p><span style='font-size: 18px;'>Sum&aacute;rio</span></p>
<p class='bbc_left'>1 Criando cabe&ccedil;alhos<br />
2 Etendendo um cabe&ccedil;alho<br />
3 Comandos B&aacute;sicos<br />
4 Outros Comandos<br />
5 Fazendo NPC usando Outros comandos<br />
6 Anota&ccedil;&otilde;es </p></div>
<br />
1 Criando cabe&ccedil;alhos:<br />
<br />
Primeiro vamos fazer o cabe&ccedil;alho, o cabe&ccedil;alho &eacute; aonde o NPC vai se encontrar,<br />
que tipo de npc &eacute; (shop, quest) e o nome dele. Para fazer um cabe&ccedil;alho &eacute; bem simples<br />
basta fazer isso aqui:mapa,x,y,z[TAB]script[TAB]Nome Do NPC[TAB]sprite,{<br />
<br />
Pronto feito agora vamos fazer cabe&ccedil;alho de um shop para vender itens.<br />
Praticamente &eacute; a mesma coisa s&oacute; muda o script para virar shop e as ,{ fazendo assim<br />
mapa,x,y,z[TAB]shop[TAB]Meu Shop[TAB]sprite,607:1,609:1;<br />
para fazer um NPC de rops(cash), basta alterar de shop para cashshop assim ficar&aacute; um NPC de rops<br />
<br />
2 Etendendo um cabe&ccedil;alho:<br />
<br />
mapa - Mapa onde se encontra o NPC(ex.:prontera)<br />
x - Primeira cordenada do NPC<br />
y - Segunda Cordenada do NPC<br />
script - Indentifica qual NPC ele &eacute; (shop, quest)<br />
shop - Indentifica que nosso NPC vai ser um shop<br />
cashshop - Indentifica que nosso NPC vai ser uma loja de rops(donate)<br />
NomeDoNPC - Nome do NPC ali voc&ecirc; coloca que voc&ecirc; quer<br />
Meu shop - Nome do NPC ali voc&ecirc; coloca oque voc&ecirc; quer<br />
sprite - A sprite do NPC voc&ecirc; pode colocar tanto um monstro tanto sprite de NPC mesmo<br />
[TAB] - Aonde voc&ecirc; vai subistituir pelo do seu teclado aonde tem aquela duas setinhas.<br />
<br />
3 Comandos B&aacute;sicos:<br />
<br />
mes " "; - O mes realiza um fala num NPC(ex.:mes "Oi"; e assim por diante.<br />
next; - Passa para o menu ou para outra fala do NPC<br />
close; - Fecha um NPC ou uma fala<br />
warp " ", , , ; - realiza um warp na pessoa que clica<br />
switch(select("-Menu:-Menu2:-Menu3:-Menu4")){ - Menu de um NPC<br />
em cada menu op&ccedil;&atilde;o de menu tem quer te case ex.:<br />
switch(select("- Sim:-N&atilde;o")){<br />
<br />
Case 1:<br />
mes "Ok";<br />
close;<br />
<br />
Case 2:<br />
mes "Volte sempre";<br />
close;<br />
<br />
Criando Primeiro NPCs:<br />
<br />
[Cabe&ccedil;alho]<br />
mapa,x,y,z[TAB]script[TAB]Nome Do NPC[TAB]sprite,<br />
[Falas menus(Script)]<br />
mes "Ol&aacute; oque voc&ecirc; deseja?";<br />
switch(select("Falar com Voc&ecirc;:-Nada")){<br />
<br />
Case 1:<br />
mes "Ok filho vamos conversa um pouco";<br />
close;<br />
<br />
Case 2:<br />
mes "Ok, volte quando quiser";<br />
close;<br />
<br />
}<br />
[NPC fechado]<br />
vamos fazer um NPC que teleporta um char para um lugar:<br />
[Cabe&ccedil;alho]<br />
mapa,x,y,z[TAB]script[TAB]Teleporte[TAB]sprite,{<br />
<br />
warp "prontera",150,150;<br />
<br />
}<br />
<br />
4 Outros Comandos:<br />
<br />
OnPCLoginEvent - Quando player fizer login ele executa<br />
OnPCLogoutEvent - Quando um player fizer lagout ele executa<br />
OnPCLoadMapEvent - Quando um player ir para outro mapa ele executa<br />
OnPCDieEvent - Quando um player morre ele executa<br />
OnPCKillEvent - Ele executa quando player mata o outro<br />
OnNPCKillEvent - &Eacute; executado quando um player mata qualquer tipo de "mob"<br />
OnPCBaseUpEvent - Quando um player mata outro Mob(monstro) ele executa<br />
IF - &Eacute; utilizado para enterpretar uma condi&ccedil;&atilde;o.<br />
GOTO - &Eacute; utilizado para passar para um bloco.<br />
COUNTITEM - &Eacute; utilizado para verifica&ccedil;&atilde;o de algum item.<br />
getitem - D&aacute; item a uma pessoa<br />
delitem - Deleta um item de uma pessoa.<br />
percenthel , - Cura uma pessoa<br />
announce - An&uacute;ncia em todo servidor mensagem global<br />
mapannounce - An&uacute;ncia num certo mapa<br />
emotion - Usa emoticon num certo NPC<br />
statusup2 - D&aacute; status num certo player<br />
jobchange - Troca de Classe<br />
setmapflag - Coloca uma certa restri&ccedil;&atilde;o no mapa<br />
<br />
5 Fazendo NPC usando Outros comandos:<br />
<br />
Vamos fazer um NPC quando a pessoa loga no servidor mensagem de bem vindo:<br />
[Cabe&ccedil;alho] este cabe&ccedil;alho deixar&aacute; o NPC invis&iacute;vel<br />
-[TAB]script[TAB]Nome do NPC[TAB]-1,{<br />
OnPCLoginEvent:<br />
mes "Bem vindo ao nosso Ragnarok";<br />
mes "Tenha um bom jogo";<br />
close;<br />
<br />
}<br />
[NPC fechado]<br />
Pronto toda vez que um player logar no servidor aparecer&aacute; est&aacute; mensagem<br />
Vamos colocar um an&uacute;ncio quando um player matar o outro ?<br />
[Cabe&ccedil;alho]<br />
-[TAB]script[TAB]Nome do NPC[TAB]-1,{<br />
OnPCKillEvent:<br />
announce "Esse morreu  feio !",3;<br />
close;<br />
<br />
}<br />
[NPC fechado]<br />
Pronto este foi a primeira parte que temos que aprender em Scripts<br />
<br />
<br />
6 Anota&ccedil;&otilde;es:<br />
<br />
Preste bem aten&ccedil;&atilde;o nas ; " {<br />
Tome cuidado quando for fechar o NPC<br />
Veja se voc&ecirc; n&atilde;o errou em nenhum comando<br />
Veja se tem erros de ortografia<br />
confira veja se algum NPC falto algo<br />
Olhe veja se ah algum bug se der reveja a Script</p>]]></description>
		<pubDate>Tue, 28 Feb 2012 12:21:17 +0000</pubDate>
		<guid isPermaLink="false">390</guid>
		<creator>Antonio Carlos</creator>
		<category>3</category>
	</item>
	<item>
		<title>Criando NPC cash com fala</title>
		<link>http://forum.cronus-emulator.com/index.php?/tutorials/article/387-criando-npc-cash-com-fala/</link>
		<description><![CDATA[<div class="message"><strong class='bbc'>Criando NPC de Cash com fala</strong></div>
<div class="message error"><p><strong class='bbc'>Requerimentos: Bloco de Notas(notepad)</strong></p></div>
Primeiro vamos criar o cabe&ccedil;alho<br />
<pre class='prettyprint'>mapa,X,Y,Z&#91;TAB&#93;script&#91;TAB&#93;Nome Do NPC&#91;TAB&#93;sprite,{</pre>
Etendendo cada parte<br />
<pre class='prettyprint'>mapa</pre>Nome do mapa onde ele ficar&aacute;, ex.: prontera<br />
<pre class='prettyprint'>X</pre>A primeira cordenada aonde no mapa ele ficar&aacute;<br />
<pre class='prettyprint'>Y</pre>A segunda cordenada onde o NPC ficar&aacute;<br />
<strong class='bbc'>Conseguindo cordenada do mapa.</strong><br />
Basta da um<pre class='prettyprint'>/where</pre> que ir&aacute; aparecer assim:<br />
<pre class='prettyprint'>prontera 150 150</pre><em class='bbc'>Isso foi um exemplo</em>								  &lt;-<br />
<pre class='prettyprint'>&#91;TAB&#93;</pre>Ele voc&ecirc; subistuir&aacute; pelo do seu teclado aquela tecla que tem duas setas -&gt;<br />
vamos usar um set para colocar o nome do npc, ex.:<pre class='prettyprint'>set .@npc$,"&#91;Cash Shop&#93;";</pre>
Dai vamos paara as falas, vamos usar um <pre class='prettyprint'>mes " ";</pre> para criar as falas e um"+strcharinfo(0)+" para mostra o nome do player no NPC e usar um <pre class='prettyprint'>"+#CASHPOINTS+"</pre> para mostrar quantia de cash que ele tem<br />
Lembrando vamos usar o set primeiro assim para ficar nome do NPC em cima<pre class='prettyprint'>mes .@npc$;</pre>
Dai voc&ecirc;s criam a falas com os comandos que coloquei acima ex.:<pre class='prettyprint'>mes "Ol&aacute; "+strcharinfo(0)+" voc&ecirc; possui "+#CASHPOINTS+" Cash's O que deseja comprar?";</pre>
Criando um menu:<br />
Agente vai usar um <pre class='prettyprint'>switch</pre>
Ent&atilde;o vai ser assim : <pre class='prettyprint'>switch(select("- Elmos:- Asas:- Auras:- Acess&oacute;rios")){</pre>
Ent&atilde;o depois usaramos os <pre class='prettyprint'>case</pre> de cada menu(se ah 3 op&ccedil;&otilde;es ser&aacute;m 3 case)<br />
Ent&atilde;o ficaria assim:<pre class='prettyprint'>case 1: close2; callshop "elmos",1; close;
case 2: close2; callshop "asas",1; close;
case 3: close2; callshop "auras",1; close;
case 4: close2; callshop "acessorios",1; close;</pre> e ent&atilde;o usaremos duas chaves( } ) para fechar, ent&atilde;o ficaria assim:<pre class='prettyprint'>case 1: close2; callshop "elmos",1; close;
case 2: close2; callshop "asas",1; close;
case 3: close2; callshop "auras",1; close;
case 4: close2; callshop "acessorios",1; close;
}
}</pre> para ficar bem organizado usar a tecla enter umas duas ou uma vez para fazer a loja<br />
Criando Loja:<br />
<pre class='prettyprint'>-&#91;Space&#93;cashshop&#91;TAB&#93;Loja1&#91;TAB&#93;item1,item2:pre&ccedil;o</pre>
Etendendo<pre class='prettyprint'>Space</pre> &eacute; aonde voc&ecirc; vai usar usa barra de espa&ccedil;o.<br />
<pre class='prettyprint'>cashshop</pre>E o tipo de loja nosso caso de cash ent&atilde;o &eacute; cashshop<br />
<pre class='prettyprint'>Loja1</pre>&Eacute; o nome da loja.<br />
<pre class='prettyprint'>item1</pre>&Eacute; o item no caso id ex.:607 ira aparecer uma ygg e assim por diante nos outros item2...<br />
<pre class='prettyprint'>pre&ccedil;o</pre>Por &uacute;ltimo o pre&ccedil;o dos itens ex.:10 &eacute; igual 10 mesmo<br />
Pronto loja feita.<br />
Resultado:<br />
<div class='bbc_spoiler'>
	<span class='spoiler_title'>Spoiler</span> <input type='button' class='bbc_spoiler_show' value='Show' />
	<div class='bbc_spoiler_wrapper'><div class='bbc_spoiler_content' style="display:none;"><br />
<pre class='prettyprint'>prontera,147,185,z&#91;TAB&#93;script&#91;TAB&#93;Nome Do NPCs&#91;TAB&#93;srpite,{

set .@npc$,"&#91;Cash Shop&#93;";

mes .@npc$;
mes "Ol&aacute; "+strcharinfo(0)+" Voc&ecirc; possui "+#CASHPOINTS+" Cash's O que deseja comprar?";
switch(select("- Elmos:- Asas:- Auras:- Acess&oacute;rios")){

case 1: close2; callshop "elmos",1; close;
case 2: close2; callshop "asas",1; close;
case 3: close2; callshop "auras",1; close;
case 4: close2; callshop "acessorios",1; close;
}
}



// Loja
-&#91;Space&#93;cashshop&#91;TAB&#93;Loja1&#91;TAB&#93;item1,item2:pre&ccedil;o
-&#91;Space&#93;cashshop&#91;TAB&#93;Loja2&#91;TAB&#93;item1,item2:pre&ccedil;o
-&#91;Space&#93;cashshop&#91;TAB&#93;Loja3&#91;TAB&#93;item1,item2:pre&ccedil;o
-&#91;Space&#93;cashshop&#91;TAB&#93;Loja4&#91;TAB&#93;item1,item2:pre&ccedil;o
</pre></div></div>
</div>]]></description>
		<pubDate>Mon, 20 Feb 2012 19:15:00 +0000</pubDate>
		<guid isPermaLink="false">387</guid>
		<creator>Antonio Carlos</creator>
		<category>3</category>
	</item>
	<item>
		<title>Aula basica sobre Script</title>
		<link>http://forum.cronus-emulator.com/index.php?/tutorials/article/386-aula-basica-sobre-script/</link>
		<description><![CDATA[//| ================================================================ |<br />
//| 1.0 - Criando o Cabe&ccedil;alho de um npc normal,que realiza comandos.<br />
//| 1.1 - Comandos b&aacute;sicos de um NPC !<br />
//| 1.2 - Agora vamos aprender outros comandos !<br />
//| 1.3 - Utilizando vari&aacute;veis !<br />
//| 1.4 - Comando percenthel !<br />
//| 1.5 - Adicionando ou retirando Itens<br />
//| 1.6 - NPC com fun&ccedil;&otilde;es invisiveis !<br />
//| 1.7 - Criando npcs com CALLSHOP!<br />
//|<br />
//| ================================================================ |<br />
//| [ 1.0 ] Criando o Cabe&ccedil;alho de um npc normal,que realiza comandos.<br />
//| ================================================================ |<br />
<br />
//| prontera,130,130,4 script nome do npc 48,{<br />
//| ================================================================ |<br />
<br />
prontera,130,130 - Mapa,cordenada X,cordenada Y;<br />
4 - Dire&ccedil;&atilde;o para qual o NPC est&aacute; virado;<br />
script - Indica que o npc &eacute; um npc que realiza comandos<br />
81 - Sprite do NPC<br />
<br />
//| ================================================================ |<br />
//| Est&eacute; &eacute; um Cabe&ccedil;alho de um npc de shop,que realiza apenas vendas.<br />
//| ================================================================ |<br />
<br />
prontera,130,130,4 shop shop blablabla 81,1599:1,2199:1;<br />
//| ================================================================ |<br />
<br />
- prontera,130,130 - Mapa,cordenada X,cordenada Y;<br />
- 4 - Dire&ccedil;&atilde;o para qual o NPC est&aacute; virado;<br />
- shop - Indica que o npc &eacute; um npc de shop;<br />
- 81 - Sprite do NPC<br />
- 1599 - ID do item que ser&aacute; vendido<br />
- 1 - Pre&ccedil;o que o item ser&aacute; vendido<br />
<br />
//| ================================================================ |<br />
- 2199 - ID do item que ser&aacute; vendido<br />
- 1 - Pre&ccedil;o que o item ser&aacute; vendido<br />
//| ================================================================ |<br />
<br />
Se voc&ecirc; quiser criar um shop de cash e so mudar o shop no cabe&ccedil;alho &eacute; botar cashshop por exemplo:<br />
//|<br />
prontera,130,130,4 cashshop shop blablabla 81,1599:1,2199:1;<br />
<br />
//| ================================================================ |<br />
//| [ 1.1 ] Comandos b&aacute;sicos de um NPC<br />
//| ================================================================ |<br />
<br />
mes - A fala que o NPC realiza por exemplo:<br />
<br />
mes "A fala aqui";<br />
<br />
<br />
switch(select("1:-2:-3:-1")){ - Uma forma de criar um menu por exemplo:<br />
<br />
Observa&ccedil;&atilde;o: A cada op&ccedil;&atilde;o por exemplo,voc&ecirc; vai criar a continua&ccedil;&atilde;o seguido de case 1: e<br />
assim por diante )<br />
Por exemplo:<br />
switch(select("Op&ccedil;&atilde;o 1:-Op&ccedil;&atilde;o 2:-Op&ccedil;&atilde;o 3:-Op&ccedil;&atilde;o 4")){<br />
<br />
Case 1: - Op&ccedil;&atilde;o 1<br />
Case 2: - Op&ccedil;&atilde;o 2<br />
e assim por diante<br />
<br />
//| ================================================================ |<br />
<br />
switch(select("Entrar:-Informar:-Nada")){<br />
<br />
Case 1:<br />
mes "Certo,ate mais";<br />
close;<br />
<br />
Case 2:<br />
mes "Informa&ccedil;&otilde;es";<br />
close;<br />
<br />
Case 3:<br />
close;<br />
<br />
//| ================================================================ |<br />
//| [ 1.2 ] Agora vamos aprender outros comandos !<br />
//| ================================================================ |<br />
<br />
next; - Passa para a pr&oacute;xima fala do NPC ou menu.<br />
close; - Termina a fala do NPC.<br />
<br />
//| ================================================================ |<br />
//| Por exemplo<br />
//| ================================================================ |<br />
<br />
switch(select("Entrar:-Informar:-Nada")){<br />
<br />
Case 1:<br />
mes "Certo,ate mais";<br />
close;<br />
<br />
Case 2:<br />
mes "Informa&ccedil;&otilde;es";<br />
next;<br />
switch(select("blabla:-blablabla:-blablablabla")){<br />
<br />
Case 3:<br />
close;<br />
<br />
//| ================================================================ |<br />
//| Agora vou fazer um exemplo de um NPC<br />
//| ================================================================ |<br />
<br />
Importante lembrar:<br />
Se voc&ecirc; encontrar um script com o cabe&ccedil;alho assim:<br />
prontera,154,132,5[TAB]script[TAB]Ajudante[TAB]811,{<br />
Esse [TAB] &eacute; uma tecla que fica em cima do Capslock que deixa um espa&ccedil;o maior<br />
<br />
//| ================================================================ |<br />
<br />
prontera,154,132,5 script Falador 81,{<br />
<br />
mes "Ol&aacute; oque deseja?";<br />
next;<br />
switch(select("Falar com voc&ecirc;:-Nada")){<br />
<br />
case 1:<br />
mes "Mais eu n&atilde;o tenho nada a falar com voc&ecirc;";<br />
close;<br />
<br />
case 2:<br />
mes "Certo,n&atilde;o tenho nada para voc&ecirc; mesmo";<br />
close;<br />
<br />
}<br />
<br />
//| ================================================================ |<br />
//| Voc&ecirc; ira utilizar assim:<br />
//| ================================================================ |<br />
<br />
prontera,150,150,3 script Teleportador 81,{<br />
<br />
warp "mapa",cordenada X,cordenada Y;<br />
<br />
}<br />
<br />
//| ================================================================ |<br />
//| Por exemplo:<br />
//| ================================================================ |<br />
prontera,150,150,3 script Teleportador 81,{<br />
<br />
warp "payon",150,150;<br />
<br />
}<br />
<br />
//| ================================================================ |<br />
//| [ 1.3 ] Utilizando vari&aacute;veis:<br />
//| ================================================================ |<br />
<br />
Vari&aacute;veis s&atilde;o palavras, letras, n&uacute;meros, etc...<br />
<br />
As vari&aacute;veis s&atilde;o:<br />
<br />
vari - Esse &eacute; um tipo de vari&aacute;vel (sem nada) que fica armazenada do char da pessoa para sempre.<br />
<br />
vari$ - Vari&aacute;vel armazenada no char que aceita letras<br />
<br />
#vari - Esse &eacute; um tipo de vari&aacute;vel que fica armazenada na conta da pessoa, para sempre, n&atilde;o importando com qual char ela esteja. N&atilde;o aceita letras.<br />
<br />
#vari$ - Esse &eacute; um tipo de vari&aacute;vel que fica armazenada na conta da pessoa, para sempre, n&atilde;o importando com qual char ela esteja. Aceita letras.<br />
<br />
##vari - Vari&aacute;vel inter server, ou seja, que funciona entre os servidores.<br />
<br />
##vari$ - Vari&aacute;vel inter server, ou seja, que funciona entre os servidores. Aceita letras.<br />
<br />
@vari - Essa &eacute; uma vari&aacute;vel temporaria, ou seja, quando o NPC acabar ela acaba tambem. S&oacute; aceita numeros.<br />
<br />
@vari$ - Essa &eacute; uma vari&aacute;vel temporaria, ou seja, quando o NPC acabar ela acaba tambem. Aceita letras.<br />
<br />
$vari - &Eacute; uma vari&aacute;vel global, ou seja, vale para todos os jogadores do server. Ela &eacute; permanente e s&oacute; aceita n&uacute;meros.<br />
<br />
$vari$ - &Eacute; uma vari&aacute;vel global, ou seja, vale para todos os jogadores do server. Ela &eacute; permanente e aceita letras.<br />
<br />
@$vari - Vari&aacute;vel global, ou seja, que vale apra todos, e temporaria, que existe enquanto o NPC funcionar.<br />
<br />
@$vari$ - Vari&aacute;vel igual a de cima, que aceita letras e n&uacute;meros.<br />
<br />
.vari - Vari&aacute;vel permanente do NPC ( quando o npc acaba ela n&atilde;o acaba junto ).<br />
<br />
.vari$ - Vari&aacute;vel permamente de letras.<br />
<br />
.@vari - Vari&aacute;vel temporaria do NPC( ou seja quando o npc acabar ela acaba tamb&eacute;m ).<br />
<br />
.@vari$ - Vari&aacute;vel tempor&aacute;ria do NPC que aceita letras ( ou seja quando o npc acabar ela acaba tamb&eacute;m ).<br />
<br />
Observa&ccedil;&atilde;o: Todas as vari&aacute;veis tem o valor inicial de 0;<br />
<br />
//| ================================================================ |<br />
//| [ 1.4 ] Comando percenthel:<br />
//| ================================================================ |<br />
<br />
O comando percenthel &eacute; utilizado para curar um personagem.<br />
<br />
Exemplo:<br />
<br />
prontera,123,123,4 script Curandeira 811,{<br />
<br />
mes "Pronto,voc&ecirc; foi curado";<br />
percenthel 100,100<br />
<br />
}<br />
<br />
//| ================================================================ |<br />
//| [ 1.5 ] Adicionando ou retirando Itens:<br />
//| ================================================================ |<br />
<br />
delitem - Reitra um item do personagem.<br />
additem - Adiciona um item ao personagem.<br />
<br />
Vai funcionar exatamente assim:<br />
//| ================================================================ |<br />
<br />
Removendo:<br />
//| ================================================================ |<br />
<br />
delitem 5111(ID DO ITEM ),1(QUANTIDADE);<br />
//| ================================================================ |<br />
<br />
Adicionando:<br />
//| ================================================================ |<br />
<br />
additem 5323(ID DO ITEM),1(QUANTIDADE);<br />
//| ================================================================ |<br />
<br />
Tamb&eacute;m pode usar variavel para dar itens por exemplo:<br />
<br />
set @iditem,2199; - ID do item que ser&aacute; dado<br />
set @quantia,1; - Quantidade que o item ser&aacute; dado<br />
//| ================================================================ |<br />
<br />
No Script fica assim<br />
getitem @iditem,@quantia;<br />
Ou se quiser remover<br />
delitem @iditem,@quantia;<br />
<br />
//| ================================================================ |<br />
<br />
IF - &Eacute; utilizado para enterpretar uma condi&ccedil;&atilde;o.<br />
GOTO - &Eacute; utilizado para passar para um bloco.<br />
COUNTITEM - &Eacute; utilizado para verifica&ccedil;&atilde;o de algum item.<br />
<br />
//| ================================================================ |<br />
<br />
<br />
 //| ================================================================ |<br />
<br />
OnPCLoginEvent - &Eacute; executado quando o player fizer login;<br />
OnPCLogoutEvent - &Eacute; executado quando o player fizer logout;<br />
OnPCLoadMapEvent - &Eacute; executado quando o player mudar de mapa;<br />
OnPCDieEvent - &Eacute; executado quando o player morre;<br />
OnPCKillEvent - &Eacute; executado quando o player mata outro player;<br />
OnNPCKillEvent - &Eacute; executado quando um player mata qualquer tipo de "mob"<br />
OnPCBaseUpEvent - &Eacute; executado quando um player evolui se n&iacute;vel base;<br />
<br />
//| ================================================================ |<br />
//| [ 1.6 ] NPC com fun&ccedil;&otilde;es invisiveis<br />
//| ================================================================ |<br />
<br />
NPCS sem localiza&ccedil;&atilde;o s&atilde;o npc's que s&atilde;o ocultos que realiza a&ccedil;&otilde;es no hide ( invisiveis ).<br />
Esses npcs tem um cabe&ccedil;alho pr&oacute;prio<br />
<br />
Por exemplo:<br />
<br />
prontera,0,0,0 script NOME DO NPC -1,{<br />
S&atilde;o esses npc's que realizam os eventos invisiveis.<br />
<br />
//| ================================================================ |<br />
<br />
prontera,0,0 - Pode deixa 0,0<br />
0 - N&atilde;o vai ter dire&ccedil;&atilde;o pois e invisivel.<br />
script - Indica que o npc &eacute; um npc que realiza comandos.<br />
-1 - Tem que ser -1 pois est&aacute; invisvel.<br />
- 1599 - ID do item que ser&aacute; vendido.<br />
- 1 - Pre&ccedil;o que o item ser&aacute; vendido.<br />
<br />
//| ================================================================ |<br />
<br />
Exemplo:<br />
<br />
prontera,0,0,0 script Nome do NPC -1,{<br />
<br />
OnPCLoginEvent:<br />
mes "Ol&aacute;,bem vindo ao Meu Servidor!";<br />
mes "Divirta-se!";<br />
close;<br />
<br />
}<br />
<br />
//| ================================================================ |<br />
//| [ 1.7 ] Criando npcs com CALLSHOP:<br />
//| ================================================================ |<br />
<br />
A estrutura de um npc que usa CALLSHOP ser&aacute; a mesma de um npc de evento.<br />
No final do script deve ter o shop aonde o npc vai chamar o shop !<br />
Quando for criar um npc com CALLSHOP voc&ecirc; ter&aacute; que fazer mais<br />
ou menos assim<br />
Por exemplo:<br />
<br />
mes "Ola";<br />
mes "blablablablabla";<br />
switch(select("shop1:shop2:-Sair")){<br />
<br />
case 1:<br />
next;<br />
mes .no$;<br />
mes "Boas compras!";<br />
callshop "shop1",1;<br />
close;<br />
<br />
case 2:<br />
next;<br />
mes .no$;<br />
mes "Boas compras!";<br />
callshop "shop2",1;<br />
close;<br />
<br />
case 3<br />
close;<br />
}<br />
<br />
- shop shop1 -1,13005:-1<br />
- shop shop2 -1,13005:-1<br />
<br />
<br />
Se quiser fazer um callshop com loja de rops<br />
e so trocar o shop para cashshop]]></description>
		<pubDate>Mon, 20 Feb 2012 02:46:37 +0000</pubDate>
		<guid isPermaLink="false">386</guid>
		<creator>LyDe</creator>
		<category>3</category>
	</item>
	<item>
		<title>Criando PvP simples</title>
		<link>http://forum.cronus-emulator.com/index.php?/tutorials/article/382-criando-pvp-simples/</link>
		<description><![CDATA[<div class="message"><strong class='bbc'>Criando uma arena PvP simples</strong></div>
<div class="message error"><p><strong class='bbc'>Requesitos: Bloco de Notas</strong></p></div>
Vamos l&aacute; abra o bloco de notas e fa&ccedil;a o cabe&ccedil;alho do NPC:<pre class='prettyprint'>prontera,150,170,5 script Arena sprite,{</pre>
Coloque umas 2 Falas ex.:<pre class='prettyprint'>prontera,150,170,5 script Arena sprite,{
mes "&#91; Arena &#93;";
mes  "Ol&aacute; "+strcharinfo(0)+"^ que entrar na arena PvP?";</pre>Coloque uma <pre class='prettyprint'>next;</pre> para ir para o menu<br />
fazendo o menu:<br />
use o c&oacute;digo <pre class='prettyprint'>menu " ", ," ";</pre>Ent&atilde;o fa&ccedil;a assim <pre class='prettyprint'>menu "- Quero ir para PvP",pvp,"- Quero sair, obrigado",sair;</pre>
use um <pre class='prettyprint'>close;</pre> para fechar e vai ficar assim<pre class='prettyprint'>prontera,150,170,5 script Arena sprite,{
mes "&#91; Arena &#93;";
mes  "Ol&aacute; "+strcharinfo(0)+"^ que entrar na arena PvP?";
next;
menu "- Quero ir para PvP",pvp,"- Quero sair, obrigado",sair;
close;</pre>
agora vamos para parte do teleporta e de sair do NPC.<br />
basta fazer isto <pre class='prettyprint'>pvp:</pre> que da parte do menu que tem <pre class='prettyprint'>",pvp,"</pre> ent&atilde;o va na parte de baixo coloque denovo umas duas falas usando <pre class='prettyprint'>mes " ";</pre> de um <pre class='prettyprint'>next;</pre> use o comando <pre class='prettyprint'>warp "warp",corx,cory;</pre> Ent&atilde;o coloque um warp uma cordenada(se quiser que nasce randomicamente basta colocar ,0,0; nas cordenadas) dando <pre class='prettyprint'>/where</pre> no jogo voc&ecirc; pode ver uns warps ent&atilde;o vamos colocar uma anuncio quando a pessoa entra no pvp ? ent&atilde;o use o c&oacute;digo<pre class='prettyprint'>announce " "bc_yellow;</pre> o yellow ira aparecer em amarelo o an&uacute;ncio vamos fechar est&aacute; parte do pvp ? ent&atilde;o coloque o anuncio assim <pre class='prettyprint'>announce " "+strcharinfo(0)+" acabou de entrar na pvp arena",bc_yellow;</pre> de um <pre class='prettyprint'>close;</pre> e uma <pre class='prettyprint'>}</pre>, ent&atilde;o ficaria assim <pre class='prettyprint'>pvp:
mes "&#91; Arena &#93;";
mes "Nos temos &#91;"+getmapusers("WarpDaArenaAqui")+"&#93;na aprena pvp";
next;
warp "MapaDoPvP",x,y;
announce " "+strcharinfo(0)+" acabou de entrar na pvp arena",bc_yellow;
close;
}</pre>
Para colocar a parte do "Quero Sair, obrigado" &eacute; facinho basta fazer mesma coisa que parte de cima mas tira os comandos<pre class='prettyprint'>next;</pre><pre class='prettyprint'>warp "map",corx,cory;</pre><pre class='prettyprint'>announce " "bc_yellow;</pre>
E deixar assim com as fala que quiser ex.:<pre class='prettyprint'>mes "Ok, volte quando quiser.";</pre> Ent&atilde;o ficaria assim:<pre class='prettyprint'>sair:
mes "&#91; Arena }";
mes "Ok, volte quando quiser.";
close;

}</pre>
pronto o pvp t&aacute; feito agora vamos fazer os map flags ?<br />
<pre class='prettyprint'>MapaDoPvP mapflag nomemo
MapaDoPvP mapflag nowarp //N&atilde;o poder&aacute; usar o warp
MapaDoPvP mapflag nowarpto //N&atilde;o poder&aacute; usar o warp
MapaDoPvP mapflag nomemo
MapaDoPvP mapflag noreturn //N&atilde;o poder&aacute; retorna apenas dando reload
MapaDoPvP mapflag nosave // N&atilde;o poder&aacute; salvar dentro da sala
MapaDoPvP mapflag noteleport // N&atilde;o poder&aacute; usar teleporte warp dentro da sala
MapaDoPvP mapflag nobranch
MapaDoPvP mapflag nosave SavePoint //N&atilde;o poder&aacute; usar @save dentro da sala
MapaDoPvP mapflag nostorage //N&atilde;o poder&aacute; abrir o @storage na arena</pre>
Resultado:<div class='bbc_spoiler'>
	<span class='spoiler_title'>Spoiler</span> <input type='button' class='bbc_spoiler_show' value='Show' />
	<div class='bbc_spoiler_wrapper'><div class='bbc_spoiler_content' style="display:none;"><br />
<pre class='prettyprint'>prontera,150,170,5 script Arena sprite,{
mes "&#91; Arena &#93;";
mes  "Ol&aacute; "+strcharinfo(0)+"^ que entrar na arena PvP?";
next;
menu "- Quero ir para PvP",pvp,"- Quero sair, obrigado",sair;
close;

pvp:
mes "&#91; Arena &#93;";
mes "Nos temos &#91;"+getmapusers("WarpDaArenaAqui")+"&#93;na aprena pvp";
next;
warp "MapaDoPvP",x,y;
announce " "+strcharinfo(0)+" acabou de entrar na pvp arena",bc_yellow;
close;
}

sair:
mes "&#91; Arena &#93;";
mes "Ok, volte quando quiser.";
close;

}

MapaDoPvP mapflag nomemo
MapaDoPvP mapflag nowarp
MapaDoPvP mapflag nowarpto
MapaDoPvP mapflag nomemo
MapaDoPvP mapflag noreturn
MapaDoPvP mapflag nosave
MapaDoPvP mapflag noteleport
MapaDoPvP mapflag nobranch
MapaDoPvP mapflag nosave SavePoint
MapaDoPvP mapflag nostorage</pre></div></div>
</div>
<br />
Pronto pvp feito agora s&oacute; entrar e matar]]></description>
		<pubDate>Sat, 18 Feb 2012 02:46:37 +0000</pubDate>
		<guid isPermaLink="false">382</guid>
		<creator>Antonio Carlos</creator>
		<category>3</category>
	</item>
	<item>
		<title>Alterando o packetver do servidor.</title>
		<link>http://forum.cronus-emulator.com/index.php?/tutorials/article/379-alterando-o-packetver-do-servidor/</link>
		<description><![CDATA[Ol&aacute; pessoal, vou postar esse tutorial aqui porque vi varias pessoas com o mesmo problema aqui no cronus ent&atilde;o pra mim n&atilde;o ta respondendo as mesmas coisas sempre vou postar um mini-tutorial aqui, ent&atilde;o vamos come&ccedil;ar:<br />
<br />
Primeiramente voc&ecirc; tem que saber qual &eacute; sua data/hexed vou usar como  exemplo o hexed <span style='color: #0000ff'>2010/07/30</span> e a <a href='http://forum.cronus-emulator.com/index.php?/files/file/455-data-r4/' class='bbc_url' title=''>data r4</a><br />
<br />
Agora fa&ccedil;a o seguinte, v&aacute; at&eacute; a pasta src/common<br />
Procure pelo arquivo mmo.h<br />
<br />
Abra ele e veja como est&aacute; l&aacute;<br />
<br />
<span style='color: #ff0000'>o meu no caso ta assim:</span><br />
<pre class='prettyprint lang-sql'>
#ifndef PACKETVER
#define PACKETVER 20110824 "Aqui &eacute; a data do seu hexed, ent&atilde;o voc&ecirc; tem que editar sempre esse aqui conforme a do seu hexed"
//#define PACKETVER 20100730
</pre>
mas eu quero colocar ele para o hexed <span style='color: #0000ff'>2010/07/30</span><br />
<br />
<span style='color: #008000'>Ent&atilde;o vamos alterar para:</span><br />
<pre class='prettyprint lang-sql'>
#ifndef PACKETVER
#define PACKETVER 20100730
//#define PACKETVER 20100730
</pre>
Pronto Feche o arquivo e salve.<br />
<br />
Depois disso vamos para o packet_db<br />
V&aacute; at&eacute; a pasta db e abra o arquivo packet_db<br />
<br />
<span style='color: #000000'><strong class='bbc'>Lembrando tamb&eacute;m que os hexed's 2011 s&atilde;o default ou 26 o 2010/07/30 &eacute; 25</strong></span><br />
<br />
<span style='color: #ff0000'>procure por:</span><br />
<pre class='prettyprint lang-sql'>
//packet_db_ver: 25
packet_db_ver: default
</pre>
<span style='color: #008000'>Altere para:</span><br />
<pre class='prettyprint lang-sql'>
packet_db_ver: 25
//packet_db_ver: default
</pre>
<span style='color: #000000'>Pronto Feche o arquivo e salve.</span><br />
<br />
<span style='color: #000000'><strong class='bbc'>Depois de ter feito isso &eacute; muito </strong></span><span style='color: #ff0000'><strong class='bbc'>importante</strong></span><span style='color: #000000'><strong class='bbc'> recopilar o emulador depois das altera&ccedil;&otilde;es ou n&atilde;o vai da certo.</strong></span><br />
<br />
<span style='color: #ff8c00'>Bom pessoal, ent&atilde;o &eacute; isso ai, se eu ajudei ou gostaram do tutorial reputa ai n&atilde;o custa nada <span rel='lightbox'><img src='http://www.ragnaperfect.net/forum/public/style_emoticons/default/biggrin.png' alt='Imagem' class='bbc_img' /></span></span>]]></description>
		<pubDate>Fri, 17 Feb 2012 05:30:02 +0000</pubDate>
		<guid isPermaLink="false">379</guid>
		<creator>Berserker</creator>
		<category>3</category>
	</item>
	<item>
		<title>Aula de Script #1</title>
		<link>http://forum.cronus-emulator.com/index.php?/tutorials/article/378-aula-de-script-1/</link>
		<description><![CDATA[<p class='bbc_center'><span style='font-family: tahoma,geneva,sans-serif'><span style='font-size: 24px;'>Aula de Script #1</span></span></p>
<br />
<p class='bbc_left'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>Nessa primeira aula, n&atilde;o espere aprender como fazer eventos din&acirc;micos, sistemas pvp's, sistemas vip's e etc. Hoje aprenderemos o b&aacute;sico, como iniciar com script, como desenvolver um script, como test&aacute;-lo e por que aprender a faz&ecirc;-lo.</span></span></p>
<br />
<p class='bbc_left'><strong class='bbc'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>- Como iniciar no mundo de script do Ragnar&ouml;k</span></span></strong></p>
<p class='bbc_left'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>Aos novos administradores ou membros que v&ecirc;em um script, lhe parece ser um bicho de sete cabe&ccedil;as... mas acredite, depois que entendermos o que cada comando faz, tudo ser&aacute; mais f&aacute;cil ! Enfim, para iniciarmos, eu recomendo voc&ecirc; a olhar muitos scripts e ter muitas d&uacute;vidas (sim, muitas d&uacute;vidas), para que mais na frente voc&ecirc; tire de cara todas elas e pense, 'como foi f&aacute;cil !'.</span></span></p>
<br />
<p class='bbc_left'><strong class='bbc'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>- Desenvolvendo um script</span></span></strong></p>
<p class='bbc_left'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>Recomendo a voc&ecirc;s utilizar o software Notepadd++ (notepadd plus plus). &Eacute; um software bem completo com suporte a varias linguagens de programa&ccedil;&atilde;o (infelizmente, n&atilde;o tem para script de ragnar&ouml;k). Ap&oacute;s baix&aacute;-lo, instale ele e execute, no menu superior, v&aacute; em Linguagens e escolha a linguagem C (ou C#/C++). Pronto, ficar&aacute; bem mais f&aacute;cil de criar nossos scripts com este software.</span></span></p>
<br />
<p class='bbc_left'><strong class='bbc'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>- Testando um script</span></span></strong></p>
<p class='bbc_left'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>Deixe um emulador separado apenas para teste de scripts, um emulador sem muitas frescuras, apenas o b&aacute;sico.</span></span></p>
<br />
<p class='bbc_left'><strong class='bbc'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>- Por que aprender a fazer script ?</span></span></strong></p>
<p class='bbc_left'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>Simples, n&atilde;o h&aacute; por que dependermos dos outros para fazermos algo ... Para quem &eacute; jovem, um dia ir&aacute; envelhecer e ter&aacute; que sair da casa dos pais (ou n&atilde;o n&eacute; ..) e viver sua vida. O mesmo &eacute; com script, aqui se encaixa uma frase que vi em algum lugar, era mais ou menos assim:</span></span></p>
<p class='bbc_left'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>"D&ecirc; um peixe ao homem e o homem n&atilde;o passar&aacute; fome por um dia. Ensine o homem a pescar e ele n&atilde;o passar&aacute; fome pelo resto de sua vida".</span></span></p>
<br />
<p class='bbc_left'><span style='font-size: 12px;'><span style='font-family: tahoma, geneva, sans-serif'>Enfim, o que tinha de apresentar foi apresentado, na aula #2, iremos dar in&iacute;cio a linguagem de script (aprendemos os comandos b&aacute;sicos e a estrutura de um script).</span></span></p>]]></description>
		<pubDate>Fri, 17 Feb 2012 02:55:35 +0000</pubDate>
		<guid isPermaLink="false">378</guid>
		<creator>Matheus</creator>
		<category>3</category>
	</item>
	<item>
		<title>Arrumando Homunculus - provisório</title>
		<link>http://forum.cronus-emulator.com/index.php?/tutorials/article/374-arrumando-homunculus-provisorio/</link>
		<description><![CDATA[Este tutorial, ir&aacute; ensinar como arrumar as fun&ccedil;&otilde;es dos homunculus (Andar, Apagar, Alimentar, etc.), que est&atilde;o ocorrendo em algumas das revis&otilde;es mais recentes.<br />
<br />
<br />
<strong class='bbc'>Aquivos q ser&atilde;o alterados:</strong><br />
<span style='color: #696969'>src/map/clif.c<br />
src/map/homunculus.h<br />
db/packet_db.txt</span><br />
<br />
<br />
<strong class='bbc'>Necess&aacute;rio saber Compilar o emulador.</strong><br />
Compilando com Visual C++ por <a href='http://forum.cronus-emulator.com/index.php?/user/38182-piradinhoo/' class='bbc_url' title=''>piradinhoo</a><br />
<a href='http://forum.cronus-emulator.com/index.php?/tutorials/article/68-compilando-com-visual-c/' class='bbc_url' title=''>http://forum.cronus-...o-com-visual-c/</a><br />
<br />
Compilando seu servidor em linux por <a href='http://forum.cronus-emulator.com/index.php?/user/60240-kavera33/' class='bbc_url' title=''>kavera33</a><br />
<a href='http://forum.cronus-emulator.com/index.php?/tutorials/article/159-compilando-seu-servidor-em-linux/' class='bbc_url' title=''>http://forum.cronus-...vidor-em-linux/</a><br />
<br />
*Os programas necess&aacute;rios para fazer a compila&ccedil;&atilde;o, est&atilde;o nos tutorias acima.<br />
<br />
<br />
<strong class='bbc'>Vamos l&aacute;:</strong><br />
<br />
<strong class='bbc'><em class='bbc'>src/map/clif.c</em></strong><br />
Procure esta parte do arquivo:<br />
<pre class='prettyprint'>
void clif_send_homdata(struct map_session_data *sd, int state, int param)
{ //&#91;orn&#93;
int fd = sd-&gt;fd;
WFIFOHEAD(fd, packet_len(0x230));
WFIFOW(fd,0)=0x230;
WFIFOB(fd,2)=0;
WFIFOB(fd,2)=state;
WFIFOL(fd,4)=sd-&gt;hd-&gt;bl.id;
WFIFOL(fd,8)=param;
WFIFOSET(fd,packet_len(0x230));
}
</pre>
<br />
substitua o valor de:<br />
<pre class='prettyprint'>
WFIFOB(fd,2)=state;
</pre>
por este:<br />
<pre class='prettyprint'>
WFIFOB(fd,3)=state;
</pre>
<br />
<strong class='bbc'><em class='bbc'>src/map/homunculus.h</em></strong><br />
Procure esta parte:<br />
<pre class='prettyprint'>
extern struct s_homunculus_db homuncumlus_db&#91;MAX_HOMUNCULUS_CLASS&#93;;
enum { HOMUNCULUS_CLASS, HOMUNCULUS_FOOD };
enum {
SP_ACK  = 0x00,
SP_INTIMATE  = 0x100,
SP_HUNGRY   = 0x200
};
</pre>
substitua os valos de:<pre class='prettyprint'>
SP_ACK  = 0x00,
SP_INTIMATE  = 0x100,
SP_HUNGRY   = 0x200
</pre>
por este:<br />
<pre class='prettyprint'>
SP_ACK	= 0x0,
SP_INTIMATE  = 0x1,
SP_HUNGRY   = 0x2,
</pre>
<br />
<strong class='bbc'><em class='bbc'>db/packet_db.txt</em></strong><br />
Procure por:<br />
<pre class='prettyprint'>
//2005-04-25aSakexe
0x022d,5,hommenu,4
0x0232,9,hommoveto,6
0x0233,11,homattack,0
0x0234,6,hommovetomaster,0
</pre>
e substitua por esta:<br />
<pre class='prettyprint'>
//2005-04-25aSakexe
0x022d,5,hommenu,2:4
0x0232,9,hommoveto,2:6
0x0233,11,homattack,2:6:10
0x0234,6,hommovetomaster,2
</pre>
<br />
<br />
Lembrando que sair&atilde;o revis&otilde;es futuras com esses erros j&aacute; solucionados.<br />
<br />
Este procedimento foi testado nas revis&otilde;es Trunk 3371 e 3382, e o funcionamento do homunculus voltou ao normal.<br />
Lembre-se sempre de fazer backup dos seus arquivos antes de alterar qualquer informa&ccedil;&atilde;o.]]></description>
		<pubDate>Wed, 15 Feb 2012 07:56:01 +0000</pubDate>
		<guid isPermaLink="false">374</guid>
		<creator>Ary</creator>
		<category>3</category>
	</item>
	<item>
		<title>Adicionando Skill de uma classe em outra .</title>
		<link>http://forum.cronus-emulator.com/index.php?/tutorials/article/365-adicionando-skill-de-uma-classe-em-outra/</link>
		<description><![CDATA[<span style='font-family: courier new,courier,monospace'>Notei que nos ultimos tempos uma galerinha vem tendo duvidas sobre o assunto  ent&atilde;o resolvi fazer esse mini tutorial .</span><br />
<br />
<br />
<span style='font-family: courier new,courier,monospace'>Indo na sua pasta db do emulador " emulador/db " voc&ecirc; ira encontrar o seguinte arquivo " <span style='color: #ff0000'>skill_tree.txt</span>" .</span><br />
<br />
<br />
<span style='font-family: courier new,courier,monospace'>Neste arquivo cont&eacute;m as classes e sua skills onde vamos aprender a alterar niveis da skill ou at&eacute; mesmo a adiciona - la em outra classe .</span><br />
<br />
<span style='font-family: courier new,courier,monospace'>Bom irei usar o "<span style='color: #ff0000'>Arquimago</span>" como exemplo </span><br />
<pre class='prettyprint'>
//HighWizard
4010,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Habilidades B&aacute;sicas #
4010,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#Primeiros Socorros #
4010,9,10,0,0,0,0,0,0,0,0,0,0 //MG_SRECOVERY#Aumentar Recupera&ccedil;&atilde;o de SP #
4010,10,1,0,0,0,0,0,0,0,0,0,0 //MG_SIGHT#Chama Reveladora #
4010,11,10,0,0,0,0,0,0,0,0,0,0 //MG_NAPALMBEAT#Ataque Espiritual #
4010,12,10,11,7,13,5,0,0,0,0,0,0 //MG_SAFETYWALL#Escudo M&aacute;gico #
4010,13,10,11,4,0,0,0,0,0,0,0,0 //MG_SOULSTRIKE#Esp&iacute;ritos Anci&otilde;es #
4010,14,10,0,0,0,0,0,0,0,0,0,0 //MG_COLDBOLT#Lan&ccedil;as de Gelo #
4010,15,10,14,5,0,0,0,0,0,0,0,0 //MG_FROSTDIVER#Rajada Congelante #
4010,16,10,0,0,0,0,0,0,0,0,0,0 //MG_STONECURSE#Petrificar #
4010,17,10,19,4,0,0,0,0,0,0,0,0 //MG_FIREBALL#Bolas de Fogo #
4010,18,10,17,5,10,1,0,0,0,0,0,0 //MG_FIREWALL#Barreira de Fogo #
4010,19,10,0,0,0,0,0,0,0,0,0,0 //MG_FIREBOLT#Lan&ccedil;as de Fogo #
4010,20,10,0,0,0,0,0,0,0,0,0,0 //MG_LIGHTNINGBOLT#Rel&acirc;mpago #
4010,21,10,20,4,0,0,0,0,0,0,0,0 //MG_THUNDERSTORM#Tempestade de Raios #
4010,157,1,0,0,0,0,0,0,0,0,0,0 //MG_ENERGYCOAT#Prote&ccedil;&atilde;o Arcana #
4010,80,10,18,1,0,0,0,0,0,0,0,0 //WZ_FIREPILLAR#Coluna de Fogo #
4010,81,10,20,1,10,1,0,0,0,0,0,0 //WZ_SIGHTRASHER#Supernova #
4010,83,10,81,2,21,1,0,0,0,0,0,0 //WZ_METEOR#Chuva de Meteoros #
4010,84,10,11,1,20,1,0,0,0,0,0,0 //WZ_JUPITEL#Trov&atilde;o e J&uacute;piter #
4010,85,10,21,1,84,5,0,0,0,0,0,0 //WZ_VERMILION#Ira de Thor #
4010,86,5,14,1,20,1,0,0,0,0,0,0 //WZ_WATERBALL#Esfera d'&Aacute;gua #
4010,87,10,16,1,15,1,0,0,0,0,0,0 //WZ_ICEWALL#Barreira de Gelo #
4010,88,10,87,1,0,0,0,0,0,0,0,0 //WZ_FROSTNOVA#Congelar #
4010,89,10,15,1,84,3,0,0,0,0,0,0 //WZ_STORMGUST#Nevasca #
4010,90,5,16,1,0,0,0,0,0,0,0,0 //WZ_EARTHSPIKE#Coluna de Pedra #
4010,91,5,90,3,0,0,0,0,0,0,0,0 //WZ_HEAVENDRIVE#F&uacute;ria da Terra #
4010,92,5,91,1,0,0,0,0,0,0,0,0 //WZ_QUAGMIRE#P&acirc;ntano dos Mortos #
4010,93,1,0,0,0,0,0,0,0,0,0,0 //WZ_ESTIMATION#Sentido Sobrenatural #
4010,1006,1,0,0,0,0,0,0,0,0,0,0 //WZ_SIGHTBLASTER#Explos&atilde;o Protetora #
4010,364,10,9,5,13,7,0,0,0,0,0,0 //HW_SOULDRAIN#Dreno de Alma #
4010,365,1,9,1,0,0,0,0,0,0,0,0 //HW_MAGICCRASHER#Esmagamento M&aacute;gico #
4010,366,10,0,0,0,0,0,0,0,0,0,0 //HW_MAGICPOWER#Amplifica&ccedil;&atilde;o M&iacute;stica #
4010,400,5,11,5,0,0,0,0,0,0,0,0 //HW_NAPALMVULCAN#Vulc&atilde;o Napalm #
4010,483,1,93,1,87,1,0,0,0,0,0,0 //HW_GANBANTEIN#Ganbantein #
4010,484,5,365,1,366,10,92,1,0,0,0,0 //HW_GRAVITATION#Campo Gravitacional #
4010,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Vem c&aacute; filhote! #
4010,681,1,0,0,0,0,0,0,0,0,0,0 //ALL_INCCARRY#Increase Weight Limit R #
</pre>
<br />
<span style='font-family: courier new,courier,monospace'>Como voc&ecirc; pode ver , todas as linhas come&ccedil;am com "4010" ou seja id da classe arquimago .<br />
<br />
Agora vamos adicionar uma skill na classe arquimago, vamos usar no exemplo a skill " Lan&ccedil;a congelante " da classe ninja.<br />
<br />
Esta &eacute; a linha da skill lan&ccedil;a congelante do ninja .<br />
<pre class='prettyprint'>
25,537,10,533,1,0,0,0,0,0,0,0,0 //NJ_HYOUSENSOU#Lan&ccedil;a Congelante #
</pre></span><br />
<br />
<span style='font-family: courier new,courier,monospace'>Agora vamos entender como funciona .</span><br />
<br />
<span style='font-family: courier new,courier,monospace'><strong class='bbc'><span style='color: #000000'>25</span></strong>,<span style='color: #FF0000'><strong class='bbc'>537</strong></span>,<strong class='bbc'><span style='color: #FFA07A'>10</span></strong>,<strong class='bbc'><span style='color: #40E0D0'>533</span></strong>,<span style='color: #008000'><strong class='bbc'>1</strong></span>,0,0,0,0,0,0,0,0 //NJ_HYOUSENSOU#Lan&ccedil;a Congelante #</span><br />
<br />
<br />
<span style='font-family: courier new,courier,monospace'>&bull; <strong class='bbc'>id da classe.</strong></span><br />
<span style='font-family: courier new,courier,monospace'>&bull; <span style='color: #FF0000'><strong class='bbc'>id da skill.</strong></span></span><br />
<span style='font-family: courier new,courier,monospace'>&bull; <span style='color: #FFA07A'><strong class='bbc'>nivel da skill.</strong></span></span><br />
<span style='font-family: courier new,courier,monospace'>&bull; <span style='color: #40E0D0'><strong class='bbc'>id skill requerida para abrir a skill.</strong></span>.</span><br />
<span style='font-family: courier new,courier,monospace'>&bull; <span style='color: #008000'><strong class='bbc'>nivel da skill requerida</strong></span>.</span><br />
<br />
<br />
<span style='font-family: courier new,courier,monospace'>Entendendo um pouco vamos adicionar na classe arquimago, ficando assim  .</span> ( adicionei  a mini legenda acima para facilitar entendimento ).<br />
<br />
<p class='citation'>Quote</p><div class="blockquote"><div class='quote'><strong class='bbc'>4010</strong>,<span style='color: #ff0000'><strong class='bbc'>537</strong></span>,<span style='color: #ffa07a'><strong class='bbc'>10</strong></span>,<strong class='bbc'><span style='color: #00ffff'>0</span></strong>,<span style='color: #00ffff'><strong class='bbc'>0</strong></span>,<strong class='bbc'><span style='color: #00FFFF'>0</span></strong>,<strong class='bbc'><span style='color: #00ffff'>0</span></strong>,<strong class='bbc'><span style='color: #00FFFF'>0</span></strong>,<strong class='bbc'><span style='color: #00ffff'>0</span></strong>,<strong class='bbc'><span style='color: #00FFFF'>0</span></strong>,<strong class='bbc'><span style='color: #00ffff'>0</span></strong>,<strong class='bbc'><span style='color: #00ffff'>0</span></strong>,<strong class='bbc'><span style='color: #00FFFF'>0</span></strong> //NJ_HYOUSENSOU#Lan&ccedil;a Congelante #</div></div>
<br />
<span style='font-family: courier new,courier,monospace'>observa&ccedil;&otilde;es : para alterar o nivel da skill &eacute; so alterar a parte " <span style='color: #FFA07A'><strong class='bbc'>laranja</strong></span> "</span><br />
<span style='font-family: courier new,courier,monospace'>creditos : <span style='font-family: tahoma,geneva,sans-serif'><strong class='bbc'>Pedrozeenho</strong> ou <strong class='bbc'>Kyu Elija</strong></span></span><span style='font-family: courier new,courier,monospace'><span style='font-family: tahoma,geneva,sans-serif'><strong class='bbc'>h </strong>( nick diferente mesma pessoa ).</span></span>]]></description>
		<pubDate>Mon, 30 Jan 2012 18:41:26 +0000</pubDate>
		<guid isPermaLink="false">365</guid>
		<creator>Kyu</creator>
		<category>3</category>
	</item>
</channel>
</rss>
