<?xml version="1.0"?>
<rss version="2.0"><channel><title>Tutoriais de Scripting Latest Topics</title><link>https://xtibia.com/forum/forum/572-tutoriais-de-scripting/</link><description>Tutoriais de Scripting Latest Topics</description><language>en</language><item><title>Como mudar o battle de um OT inteiro?</title><link>https://xtibia.com/forum/topic/259745-como-mudar-o-battle-de-um-ot-inteiro/</link><description><![CDATA[<p>
	Queria pegar o battle de meu poketibia é tirar os summons e toda mecanica de pokémon e fazer algum ot alternativo, sem batalha com summons. <br />
	Séria possivel sem mexer nas sources? É complicado? 
</p>
<p>
	Acabei postando no lugar errado. Se você puder apagar ai ADM
</p>
]]></description><guid isPermaLink="false">259745</guid><pubDate>Tue, 10 Sep 2024 01:13:56 +0000</pubDate></item><item><title>HND(Higher National Diploma) Assignment Help</title><link>https://xtibia.com/forum/topic/258193-hndhigher-national-diploma-assignment-help/</link><description><![CDATA[<p style="text-align:justify;">
	<b><span style="color:#252525;">Higher National Diploma (HND)</span></b>
</p>

<p style="text-align:justify;">
	<span><span style="color:#252525;"> In the United Kingdom and several other nations, the Higher National Diploma (HND), a component of the Higher Nationals suite of qualifications, is a degree-level academic credential. Together with the Ordinary National Diploma and the Higher National Certificate, they debuted in England and Wales in 1920.</span></span>
</p>

<p style="text-align:justify;">
	<span><span style="color:#252525;"> Higher National Certificates (HNCs) and Higher National Diplomas (HNDs) are higher education degrees with a vocational or work-related focus. Level 4 and Level 5 credentials, respectively.</span></span>
</p>

<p style="text-align:justify;">
	<span><span style="color:#252525;"> An HND (Higher National Diploma), a credential for academic higher education, is something that many students in the United Kingdom want to complete. It is a level 5 qualification, a work-related course, and it gets students ready for jobs in a particular field and industry. If you wish to receive the "sheepskin," a certificate of complete completion of this course, get HND assignment help from their qualified writers. You can complete this diploma with the help of their HND assignment writing staff if you work with them regularly.</span></span>
</p>

<p style="text-align:justify;">
	<span><span style="color:#252525;">They have employed professional writers to ensure you receive a well-written and thoroughly researched assignment. The writers have profound knowledge of the subjects and hold many doctoral and master's degrees in their respective fields.</span></span>
</p>

<p style="text-align:justify;">
	<span><span style="color:#252525;"> </span></span>
</p>

<p style="text-align:justify;">
	<span><b><span style="color:#252525;">Topics for which they provide HND assignment help services</span></b></span>
</p>

<p style="text-align:justify;">
	<span><span style="color:#252525;"> </span></span>
</p>

<p style="text-align:justify;vertical-align:baseline;">
	<span><span style="color:#252525;"><span>1.<span>    </span></span></span><span style="color:#252525;">Engineering</span></span>
</p>

<p style="text-align:justify;vertical-align:baseline;">
	<span><span style="color:#252525;"><span>2.<span>    </span></span></span><span style="color:#252525;">Hospitality Management</span></span>
</p>

<p style="text-align:justify;vertical-align:baseline;">
	<span><span style="color:#252525;"><span>3.<span>    </span></span></span><span style="color:#252525;">Retail and Distribution</span></span>
</p>

<p style="text-align:justify;vertical-align:baseline;">
	<span><span style="color:#252525;"><span>4.<span>    </span></span></span><span style="color:#252525;">Performing Arts</span></span>
</p>

<p style="text-align:justify;vertical-align:baseline;">
	<span><span style="color:#252525;"><span>5.<span>    </span></span></span><span style="color:#252525;">Sport and Exercise Sciences</span></span>
</p>

<p style="text-align:justify;vertical-align:baseline;">
	<span><span style="color:#252525;"><span>6.<span>    </span></span></span><span style="color:#252525;">Business &amp; Management</span></span>
</p>

<p style="text-align:justify;vertical-align:baseline;">
	<span><span style="color:#252525;"><span>7.<span>    </span></span></span><span style="color:#252525;">Health and Social Care</span></span>
</p>

<p style="text-align:justify;vertical-align:baseline;">
	<span><span style="color:#252525;"><span>8.<span>    </span></span></span><span style="color:#252525;">Construction and Civil Engineering</span></span>
</p>

<p style="text-align:justify;vertical-align:baseline;">
	<span><span style="color:#252525;"><span>9.<span>    </span></span></span><span style="color:#252525;">Computing and IT</span></span>
</p>

<p style="text-align:justify;vertical-align:baseline;">
	<span><span style="color:#252525;"><span>10.<span> </span></span></span><span style="color:#252525;">Agriculture</span></span>
</p>

<p style="text-align:justify;">
	<span><b><span style="color:#252525;">Reasons to Choose Their HND Engineering Assignment Writing Help</span></b></span>
</p>

<p style="text-align:justify;">
	<span><span style="color:#252525;">Here are a few factors that may encourage you to consider opting for an online assignment writing service. The assignment helpers are always available to provide nothing but the best. Because you desire so many things, choosing a writing service is not that simple. Here are some benefits that you may want to be aware of.</span></span>
</p>

<p style="text-align:justify;">
	<span><b><span style="color:#252525;">Quality Content:</span></b></span><span><span style="color:#252525;"> Their team of PhD-certified software engineers and experts provides quality assignment help.</span></span>
</p>

<p style="text-align:justify;">
	<span><b><span style="color:#252525;">Original Content:</span></b></span><span><span style="color:#252525;"> To ensure that your document is 100% original, there is always a free Turnitin report included with the order.</span></span>
</p>

<p style="text-align:justify;">
	<span><b><span style="color:#252525;">24-Hour Support:</span></b></span><span><span style="color:#252525;"> Since the writers are always available, students can get in touch with us whenever it is most convenient for them.</span></span>
</p>

<p style="text-align:justify;">
	<span><b><span style="color:#252525;">Free revisions:</span></b></span><span><span style="color:#252525;"> You can always get in touch with them if there are any modifications you would like to be made to the order. We won't charge you anything to make the modifications.</span></span>
</p>

<p style="text-align:justify;">
	<span><b><span style="color:#252525;">Easy and Valuable: </span></b></span><span><span style="color:#252525;">The assignments given by their experts are easy to read and valuable.</span></span>
</p>

<p style="text-align:justify;">
	 
</p>

<p><a href="//cdn.xtibia.com/monthly_2023_02/263369791_HNDAssignmentHelp.png.727c1492d11e48cfdccfd1caf295edbe.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="31572" src="https://cdn.xtibia.com/monthly_2023_02/1568625574_HNDAssignmentHelp.thumb.png.7349c2e155ba6822d8e6f92de9cb8e57.png" data-ratio="100" width="750" class="ipsImage ipsImage_thumbnailed" alt="HND Assignment Help.png"></a></p>]]></description><guid isPermaLink="false">258193</guid><pubDate>Fri, 03 Feb 2023 11:44:06 +0000</pubDate></item><item><title>PokeBar(Vers&#xE3;o:0.3.6)</title><link>https://xtibia.com/forum/topic/250408-pokebarvers%C3%A3o036/</link><description><![CDATA[
<p>
	Boa tarde, muito gente estava pedindo como adicionar essa pokemonbar ao jogo.
</p>

<p>
	 
</p>

<p>
	então decidi postar 
</p>

<p>
	 
</p>

<p>
	testado na pokemon dash bolz 2.0
</p>

<p>
	 
</p>

<p>
	futura atualização:
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			depois vou atualizar esse tópico, poderá revive seu pokemon pela pokemonbar
		</p>

		<p>
			 
		</p>

		<p>
			já tenho depois vou publicar.
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	foto:
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img alt="image.png.d0076038e253851aa3cacbf5fce875b4.png" class="ipsImage ipsImage_thumbnailed" data-fileid="27270" data-ratio="71.64" width="134" src="https://cdn.xtibia.com/monthly_2019_10/image.png.d0076038e253851aa3cacbf5fce875b4.png" />
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	vamos começar?
</p>

<p>
	 
</p>

<p>
	vá até servidor/data/action/goback.lua
</p>

<p>
	 
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			embaixo de:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					local effect = pokeballs[btype].effect<br />
					    if not effect then<br />
					        effect = 21<br />
					    end
				</p>
			</div>
		</div>

		<p>
			adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					if not getItemAttribute(item.uid, "tadport") and ballName then<br />
					    doItemSetAttribute(item.uid, "tadport", fotos[ballName])<br />
					end
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			embaixo de:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					doCreatureSay(cid, mgo, TALKTYPE_MONSTER)
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					if getItemAttribute(item.uid, "ballorder") then<br />
					        doPlayerSendCancel(cid, "KGT,"..getItemAttribute(item.uid, "ballorder").."|".."0")<br />
					        doPlayerSendCancel(cid, "")<br />
					end
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			embaixo de:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					if useOTClient then<br />
					       doPlayerSendCancel(cid, '12//,show') --alterado v1.7<br />
					 end
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					    local owner = getCreatureMaster(cid)<br />
					    doOTCSendPokemonHealth(owner)
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	agora em servidor/data/lib/ crie um arquivo chamado liferBar.lua
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			e coloque isso dentro:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					function onPokeBarLife(cid)<br />
					    if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then<br />
					        local itemBall = getPlayerSlotItem(getCreatureMaster(cid), CONST_SLOT_FEET)<br />
					        local hp = math.ceil((getCreatureHealth(cid) * 100) / getCreatureMaxHealth(cid))<br />
					        local orde = getItemAttribute(itemBall.uid, "ballorder")<br />
					        if orde then<br />
					            doPlayerSendCancel(getCreatureMaster(cid), "pGS,"..hp.."|"..orde.."|"..getPokeName(cid))<br />
					            doPlayerSendCancel(getCreatureMaster(cid), "")<br />
					        end<br />
					    end<br />
					end
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	agora em servido/data/lib/somefunctions.lua
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			procure por:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					doItemSetAttribute(item, "fakedesc", "Contains a "..pokemon..".") 
				</p>
			</div>
		</div>

		<p>
			em baixo adicione:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					doItemSetAttribute(item, "tadport", fotos[pokemon])
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			agora vá até ultima linha de dois espaços e adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					postado na pastebin pq aqui fica bugado:
				</p>

				<p>
					 
				</p>

				<p>
					<a href="https://pastebin.com/qTd3dEzs" rel="external nofollow">https://pastebin.com/qTd3dEzs</a>
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	agora vá em servidor/data/lib/catch system.lua
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			embaixo de 
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					doItemSetAttribute(item, "description", description)
				</p>
			</div>
		</div>

		<p>
			adicione embaixo isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					doItemSetAttribute(item, "tadport", fotos[poke])
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	agora vá em servidor/data/lib/cooldown bar.lua
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			troque por esse:<a href="https://pastebin.com/MLZsy8AK" rel="external nofollow">https://pastebin.com/MLZsy8AK</a>
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	agora vá em servidor/data/lib/level system.lua
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			procure por:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					doSendMagicEffect(getThingPos(item2.uid), 18)
				</p>
			</div>
		</div>

		<p>
			embaixo adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					doTransformItem(getPlayerSlotItem(cid, 7).uid, fotos[theevo])<br />
					doItemSetAttribute(pokeball.uid, "tadport", fotos[theevo])<br />
					doUpdatePokemonsBar(cid)
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	agora vá em servidor/data/creaturescript/script/exp2.0.lua
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			embaixo de <span>:</span>
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					if isSummon(cid) and valor ~= 0 then
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			adicione isso
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					local owner = getCreatureMaster(cid)<br />
					        doOTCSendPokemonHealth(owner)<br />
					        doUpdatePokeInfo(owner)<br />
					        onPokeBarLife(cid)
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			ficando assim:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					        if isSummon(cid) and valor ~= 0 then<br />
					local owner = getCreatureMaster(cid)<br />
					        doOTCSendPokemonHealth(owner)<br />
					        doUpdatePokeInfo(owner)<br />
					        onPokeBarLife(cid)
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	agora vá em servidor/data/creaturescript/script/goback.lua
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			dentro da função:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					if useOTClient then
				</p>

				<p>
					end
				</p>
			</div>
		</div>

		<p>
			deixe ela assim:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					if useOTClient then<br />
					       doPlayerSendCancel(owner, '12//,hide')      --alterado v1.7<br />
					       doPlayerSendCancel(owner, "pGS,".."0".."|"..getItemAttribute(thisball.uid, "ballorder").."|"..getPokeName(cid))<br />
					       doPlayerSendCancel(owner, "")<br />
					    end
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	agora vá em servidor/data/creaturescript/script/login.lua
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			procure por:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					function onLogin(cid)
				</p>
			</div>
		</div>

		<p>
			adicione embaixo
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					doUpdatePokemonsBar(cid)
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			procure por:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					registerCreatureEvent(cid, "task_count")
				</p>
			</div>
		</div>

		<p>
			adicione embaixo:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					doUpdatePokemonsBar(cid)
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	agora vá em servidor/data/talkactions/script
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			crie um arquivo chamado: poke.lua e adicione isso dentro
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					local EFFECTS = {<br />
					    ["Perfect Zygarde Full"] = 45,<br />
					    ["Mystic Mewtwo"] = 136,<br />
					    ["Groudon"] = 34,<br />
					    ["Shiny Groudon"] = 44,<br />
					    ["Arch Heatran"] = 105,<br />
					    ["Obscure Arceus"] = 55,<br />
					    ["Zygarde M1"] = 45,<br />
					    ["Zygarde M2"] = 45,<br />
					    ["Zygarde M3"] = 105,<br />
					    ["Tornadus"] = 152,<br />
					    ["Landorus"] = 152,<br />
					    ["Thundurus"] = 152,<br />
					    ["Majestic Lugia M1"] = 136,<br />
					    ["Majestic Lugia M2"] = 136,<br />
					    ["Majestic Lugia M3"] = 136,<br />
					    ["Mew"] = 136,<br />
					    ["Mewtwo"] = 136,<br />
					    ["Shiny Mew"] = 136,<br />
					    ["Shiny Mewtwo"] = 136,<br />
					    ["Giratina Star"] = 55,<br />
					    ["Giratina Star M1"] = 55,<br />
					    ["Giratina Star M2"] = 55,<br />
					    ["Giratina Star M3"] = 55,<br />
					    ["Raikou"] = 360,<br />
					    ["Kyogre"] = 17,<br />
					    ["Shiny Kyogre"] = 17,<br />
					    ["Rayquaza"] = 17,<br />
					    ["Suicune"] = 17,<br />
					    ["Ditto"] = 17,<br />
					    ["Phione"] = 17,<br />
					    ["Zoroak"] = 55,<br />
					    ["Shiny Zoroak"] = 55,<br />
					    ["Zygard"] = 55,<br />
					    ["Regigigas"] = 35,<br />
					    ["Shiny Regigigas"] = 26,<br />
					    ["Genesect"] = 26,<br />
					    ["Zekrom"] = 26,<br />
					    ["Shiny Zekrom"] = 26,    <br />
					    ["Black Zygarde"] = 55,  <br />
					    ["Black Alpha Zekrom"] = 55, <br />
					    ["Black Groudon"] = 55,   <br />
					    ["Deoxys Lunar"] = 55,      <br />
					}<br />
					 <br />
					local cd = 1
				</p>

				<p>
					local function volta(cid, init)
				</p>

				<p>
					exhausted = 10<br />
					storage = 31332
				</p>

				<p>
					if(getPlayerStorageValue(cid, storage) &gt; os.time() and getPlayerStorageValue(cid, storage) &lt; 100+os.time()) then<br />
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You must wait another " .. getPlayerStorageValue(cid, storage) - os.time() .. ' second' .. ((getPlayerStorageValue(cid, storage) - os.time()) == 1 and "" or "s") .. " to use new pokemon.")<br />
					   return true<br />
					end
				</p>

				<p>
					    -- if getPlayerStorageValue(cid, 69891) &gt;= 1 then<br />
					       -- doPlayerSendCancel(cid, "Voce nao pode chamar seu pokemon enquanto usa seu pet.")<br />
					      -- return false     --alterado v1.5<br />
					    -- end<br />
					    <br />
					    if getPlayerSlotItem(cid, CONST_SLOT_FEET).uid &gt; 0 then<br />
					        local item = getPlayerSlotItem(cid, CONST_SLOT_FEET)<br />
					       <br />
					if getPlayerStorageValue(cid, 912351) &gt; os.time () then<br />
					        doPlayerSendCancel(cid, "Espere "..getPlayerStorageValue(cid, 912351) - os.time ().." segundo(s) para usar novamente")<br />
					        return true<br />
					        end
				</p>

				<p>
					    if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) &gt; 0 then return true end<br />
					 <br />
					if getPlayerStorageValue(cid, 17000) &gt;= 1 or getPlayerStorageValue(cid, 17001) &gt;= 1 or getPlayerStorageValue(cid, 63215) &gt;= 1<br />
					or getPlayerStorageValue(cid, 75846) &gt;= 1 or getPlayerStorageValue(cid, 5700) &gt;= 1  then    --alterado v1.9 &lt;&lt;<br />
					   return true                                                                                                                        <br />
					end<br />
					 <br />
					local ballName = getItemAttribute(item.uid, "poke")<br />
					local btype = getPokeballType(item.itemid)<br />
					local usando = pokeballs[btype].use<br />
					 <br />
					local effect = pokeballs[btype].effect<br />
					    if not effect then<br />
					        effect = 21<br />
					    end<br />
					   <br />
					if not getItemAttribute(item.uid, "tadport") and ballName then<br />
					    doItemSetAttribute(item.uid, "tadport", fotos[ballName])<br />
					end<br />
					   <br />
					unLock(item.uid) --alterado v1.8<br />
					 <br />
					if item.itemid == usando then                          <br />
					 <br />
					    -- if getPlayerStorageValue(cid, 990) == 1 then -- GYM<br />
					        -- doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")<br />
					    -- return true<br />
					    -- end<br />
					    if #getCreatureSummons(cid) &gt; 1 and getPlayerStorageValue(cid, 212124) &lt;= 0 then     --alterado v1.6<br />
					       if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) &gt;= 1 then  <br />
					          BackTeam(cid)      <br />
					       end<br />
					    end  <br />
					    if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) &gt;= 1 then<br />
					       doPlayerSendCancel(cid, "You can't do that while is controling a mind")<br />
					       return true     --alterado v1.5<br />
					    end<br />
					    if #getCreatureSummons(cid) &lt;= 0 then<br />
					        if isInArray(pokeballs[btype].all, item.itemid) then<br />
					            doTransformItem(item.uid, pokeballs[btype].off)<br />
					            doItemSetAttribute(item.uid, "hp", 0)<br />
					            doPlayerSendCancel(cid, "This pokemon is fainted.")<br />
					            return true<br />
					        end<br />
					    end<br />
					 <br />
					    local cd = getCD(item.uid, "blink", 30)<br />
					    if cd &gt; 0 then<br />
					       setCD(item.uid, "blink", 0)<br />
					    end<br />
					   <br />
					    local z = getCreatureSummons(cid)[1]<br />
					 <br />
					    if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then<br />
					       return true<br />
					    end<br />
					    doReturnPokemon(cid, z, item, effect)<br />
					   <br />
					        end<br />
					 <br />
					        if init then<br />
					            if item.itemid == pokeballs[btype].on then<br />
					                if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then<br />
					        doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")<br />
					    return TRUE<br />
					    end<br />
					 <br />
					    local thishp = getItemAttribute(item.uid, "hp")<br />
					 <br />
					    if thishp &lt;= 0 then<br />
					        if isInArray(pokeballs[btype].all, item.itemid) then<br />
					            doTransformItem(item.uid, pokeballs[btype].off)<br />
					            doItemSetAttribute(item.uid, "hp", 0)<br />
					            doPlayerSendCancel(cid, "This pokemon is fainted.")<br />
					            return true<br />
					        end<br />
					    end<br />
					 <br />
					    local pokemon = getItemAttribute(item.uid, "poke")<br />
					 <br />
					    if not pokes[pokemon] then<br />
					    return true<br />
					    end<br />
					---------------------------------------------------------------------------------------------------------------------------------------------------<br />
					 <br />
					    local x = pokes[pokemon]<br />
					    local boost = getItemAttribute(item.uid, "boost") or 0<br />
					 <br />
					    if getPlayerLevel(cid) &lt; (x.level+boost) then<br />
					       doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.")<br />
					       return true<br />
					    end<br />
					   <br />
					    --------------------------------------------------------------------------------------<br />
					 <br />
					    doSummonMonster(cid, pokemon)<br />
					 <br />
					    local pk = getCreatureSummons(cid)[1]<br />
					    if not isCreature(pk) then return true end<br />
					   <br />
					    ------------------------passiva hitmonchan------------------------------<br />
					    if isSummon(pk) then                                                  --alterado v1.8 \/<br />
					       if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then<br />
					          if not getItemAttribute(item.uid, "hands") then<br />
					             doSetItemAttribute(item.uid, "hands", 0)<br />
					          end<br />
					          local hands = getItemAttribute(item.uid, "hands")<br />
					          doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1)<br />
					       end<br />
					    end<br />
					    -------------------------------------------------------------------------<br />
					    ---------movement magmar, jynx-------------<br />
					    if EFFECTS[getCreatureName(pk)] then            <br />
					       markPosEff(pk, getThingPos(pk))<br />
					       sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk))  <br />
					    end<br />
					    --------------------------------------------------------------------------      <br />
					 <br />
					    ---if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited<br />
					 <br />
					    --  local left = getItemAttribute(item.uid, "transLeft")<br />
					    --  local name = getItemAttribute(item.uid, "transName")<br />
					 <br />
					    --  if left and left &gt; 0 then<br />
					    --      setPlayerStorageValue(pk, 1010, name)<br />
					        --  doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)<br />
					        --  addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn"))<br />
					        --  doItemSetAttribute(item.uid, "transBegin", os.clock())<br />
					    --  else<br />
					    --      setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto")     --edited<br />
					    --  end<br />
					--  end<br />
					 <br />
					    if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end<br />
					 <br />
					    doCreatureSetLookDir(pk, 2)<br />
					 <br />
					    adjustStatus(pk, item.uid, true, true, true)<br />
					--    doCureWithY(getCreatureMaster(pk), pk)<br />
					 <br />
					    doTransformItem(item.uid, item.itemid+1)<br />
					 <br />
					    local pokename = getPokeName(pk) --alterado v1.7<br />
					 <br />
					    local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)<br />
					    doCreatureSay(cid, mgo, TALKTYPE_ORANGE_1)<br />
					    if getItemAttribute(item.uid, "ballorder") then<br />
					        doPlayerSendCancel(cid, "KGT,"..getItemAttribute(item.uid, "ballorder").."|".."0")<br />
					    end<br />
					setPlayerStorageValue(cid, 912351, os.time () + cd)<br />
					    doSendMagicEffect(getCreaturePosition(pk), effect)<br />
					 <br />
					local pk = getCreatureSummons(cid)[1]<br />
					    local pb = getPlayerSlotItem(cid, 8).uid<br />
					    local look = getItemAttribute(pb, "addon")<br />
					   <br />
					    if not look then<br />
					        doSetItemAttribute(pb, "addon", 0)  <br />
					    end<br />
					               <br />
					    if look and look &gt; 0 then<br />
					        doSetCreatureOutfit(pk, {lookType = look}, -1)<br />
					    end<br />
					   <br />
					    if useOTClient then<br />
					       doPlayerSendCancel(cid, '12//,show') --alterado v1.7<br />
					    end<br />
					 <br />
					local pk = getCreatureSummons(cid)[1]<br />
					                local pb = getPlayerSlotItem(cid, 8).uid<br />
					                local look = getItemAttribute(pb,"addon")<br />
					                if not look then<br />
					                                doSetItemAttribute(pb,"addon",0)<br />
					 <br />
					                end<br />
					                if look &gt; 0 then<br />
					                                doSetCreatureOutfit(pk, {lookType = look}, -1)<br />
					 <br />
					                end<br />
					 <br />
					 <br />
					        end<br />
					    end<br />
					end<br />
					    if useKpdoDlls then<br />
					        doUpdateMoves(cid)<br />
					    end<br />
					return true<br />
					end<br />
					 <br />
					function onSay(cid, words, param, channel)<br />
					    if getPlayerSlotItem(cid, CONST_SLOT_FEET).uid &gt; 0 then<br />
					        if getItemAttribute(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid, "ballorder") == tonumber(param) then<br />
					            volta(cid, true)<br />
					            return true<br />
					        else<br />
					            volta(cid, false)<br />
					        end
				</p>

				<p>
					    end<br />
					    doMoveBar(cid, tonumber(param))<br />
					    volta(cid, true)<br />
					    return true<br />
					end
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	agora em servidor/data/talkactions.xml
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			adicione essa tag
		</p>

		<p>
			 
		</p>

		<p>
			&lt;talkaction words="!@pokebar@" script="poke.lua"/&gt;
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	 
</p>

<p>
	agora vamos para source do jogo:
</p>

<p>
	 
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			vamos em game.cpp
		</p>

		<p>
			 
		</p>

		<p>
			embaixo de:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					void Game::showHotkeyUseMessage(Player* player, Item* item)<br />
					{<br />
					    int32_t subType = -1;<br />
					    if(item-&gt;hasSubType() &amp;&amp; !item-&gt;hasCharges())<br />
					        subType = item-&gt;getSubType();
				</p>

				<p>
					    const ItemType&amp; it = Item::items[item-&gt;getID()];<br />
					    uint32_t count = player-&gt;__getItemTypeCount(item-&gt;getID(), subType, false);
				</p>

				<p>
					    char buffer[40 + it.name.size()];<br />
					    if(count == 1)<br />
					        sprintf(buffer, "Using the last %s...", it.name.c_str());<br />
					    else<br />
					        sprintf(buffer, "Using one of %d %s...", count, it.pluralName.c_str());
				</p>

				<p>
					    player-&gt;sendTextMessage(MSG_INFO_DESCR, buffer);<br />
					}
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					bool Game::doMoveBar(uint32_t playerId, uint8_t opId)<br />
					{<br />
					    Player* player = getPlayerByID(playerId);<br />
					    Container* container;<br />
					    for(int32_t i = SLOT_FIRST; i &lt; SLOT_LAST; ++i)<br />
					    {<br />
					        if(Item* item = player-&gt;getInventoryItem((slots_t)i))<br />
					        {<br />
					            boost::any value = (item)-&gt;getAttribute("poke");<br />
					            boost::any border = (item)-&gt;getAttribute("ballorder");
				</p>

				<p>
					            if(value.type() == typeid(std::string) &amp;&amp; border.type() == typeid(int32_t))<br />
					            {<br />
					                   if(boost::any_cast&lt;int32_t&gt;(border) == opId &amp;&amp; i == <span class="ipsEmoji">?</span><br />
					                    return false;
				</p>

				<p>
					<br />
					                if(boost::any_cast&lt;int32_t&gt;(border) == opId &amp;&amp; i == 10)<br />
					                {<br />
					                    Thing* bthing = player-&gt;__getThing(10);<br />
					                    Thing* ballPoke = player-&gt;__getThing(8);<br />
					                    if(ballPoke &amp;&amp; !ballPoke-&gt;getItem()-&gt;isNotMoveable())<br />
					                    {<br />
					                        if(bthing)<br />
					                        {<br />
					                            boost::any bbpb1 = ballPoke-&gt;getItem()-&gt;getAttribute("poke");<br />
					                            boost::any bbpb2 = bthing-&gt;getItem()-&gt;getAttribute("poke");<br />
					                            boost::any borderS = bthing-&gt;getItem()-&gt;getAttribute("ballorder");
				</p>

				<p>
					<br />
					                            if (!bbpb1.empty() &amp;&amp; !bbpb2.empty() &amp;&amp; borderS.type() == typeid(int32_t))<br />
					                            {<br />
					                                 int32_t pouitS = boost::any_cast&lt;int32_t&gt;(borderS);<br />
					                                if(opId == pouitS)<br />
					                                {<br />
					                                    Cylinder* acylinder = ballPoke-&gt;getItem()-&gt;getParent();<br />
					                                    Cylinder* bcylinder = bthing-&gt;getItem()-&gt;getParent();<br />
					                                    int32_t aitemIndex = acylinder-&gt;__getIndexOfThing(ballPoke-&gt;getItem());<br />
					                                       int32_t bitemIndex = bcylinder-&gt;__getIndexOfThing(bthing-&gt;getItem());<br />
					                                       internalRemoveItem(NULL, ballPoke-&gt;getItem());<br />
					                                    internalRemoveItem(NULL, bthing-&gt;getItem());
				</p>

				<p>
					                                    Item* aa = Item::CreateItem(ballPoke-&gt;getItem()-&gt;getID(), ballPoke-&gt;getItem()-&gt;getItemCount());<br />
					                                    aa-&gt;copyAttributes(ballPoke-&gt;getItem());<br />
					                                    internalAddItem(NULL, acylinder, aa, INDEX_WHEREEVER, FLAG_NOLIMIT);<br />
					                                    int16_t stcpos;<br />
					                                    Position posa;<br />
					                                    Position posb;<br />
					                                    posb.x = 65535; posb.y = 10; posb.z = 0;<br />
					                                    internalGetPosition(aa, posa, stcpos);<br />
					                                    playerMoveThing(playerId, posa, aa-&gt;getClientID(), 0, posb, 1);
				</p>

				<p>
					                                    Item* bb = Item::CreateItem(bthing-&gt;getItem()-&gt;getID(), bthing-&gt;getItem()-&gt;getItemCount());<br />
					                                    bb-&gt;copyAttributes(bthing-&gt;getItem());<br />
					                                    internalAddItem(NULL, acylinder, bb, INDEX_WHEREEVER, FLAG_NOLIMIT);<br />
					                                    internalGetPosition(bb, posa, stcpos);<br />
					                                    posb.y = 8;<br />
					                                    playerMoveThing(playerId, posa, bb-&gt;getClientID(), 0, posb, 1);<br />
					                                    return true;<br />
					                                }<br />
					                            }<br />
					                        }<br />
					                    }else<br />
					                    {<br />
					                        if(bthing)<br />
					                        {<br />
					                            boost::any bbpb1 = bthing-&gt;getItem()-&gt;getAttribute("poke");<br />
					                            boost::any borderS = bthing-&gt;getItem()-&gt;getAttribute("ballorder");<br />
					                            if (!bbpb1.empty() &amp;&amp; borderS.type() == typeid(int32_t))<br />
					                            {<br />
					                                int32_t pouitS = boost::any_cast&lt;int32_t&gt;(borderS);<br />
					                                if(opId == pouitS)<br />
					                                {<br />
					                                    int16_t stcpos;<br />
					                                      Position posa;<br />
					                                    Position posb;<br />
					                                    posb.x = 65535; posb.y = 8; posb.z = 0;<br />
					                                    internalGetPosition(bthing-&gt;getItem(), posa, stcpos);<br />
					                                    playerMoveThing(playerId, posa, bthing-&gt;getItem()-&gt;getClientID(), 0, posb, 1);<br />
					                                    return true;<br />
					                                }<br />
					                            }<br />
					                        }<br />
					                    }<br />
					                }<br />
					            }<br />
					            ///////////////////////////////////////////////<br />
					            if(item-&gt;getContainer())<br />
					            {<br />
					                container = item-&gt;getContainer();<br />
					                for(ContainerIterator sb = container-&gt;begin(), end = container-&gt;end(); sb != end; ++sb)<br />
					                {<br />
					                    Item* ballSLot = (*sb)-&gt;getItem();<br />
					                    if(ballSLot);<br />
					                    {<br />
					                        boost::any value = ballSLot-&gt;getAttribute("poke");<br />
					                        boost::any border = ballSLot-&gt;getAttribute("ballorder");<br />
					                           if(value.type() == typeid(std::string) &amp;&amp; border.type() == typeid(int32_t))<br />
					                        {<br />
					                            int32_t pouit = boost::any_cast&lt;int32_t&gt;(border);<br />
					                            if(opId == pouit)<br />
					                            {<br />
					                                Thing* ballPoke = player-&gt;__getThing(8);<br />
					                                if(ballPoke &amp;&amp; !ballPoke-&gt;getItem()-&gt;isNotMoveable())<br />
					                                {<br />
					                                    Cylinder* ballPokeCylinder = ballPoke-&gt;getItem()-&gt;getParent(); //slot8<br />
					                                    Cylinder* ballOrderCylinder = ballSLot-&gt;getParent(); //slotbag<br />
					                                    int32_t ballPokeIndex = ballPokeCylinder-&gt;__getIndexOfThing(ballPoke-&gt;getItem()); //slot8<br />
					                                    int32_t ballOrderIndex = ballOrderCylinder-&gt;__getIndexOfThing(ballSLot); //slotbag<br />
					                                    internalRemoveItem(NULL, ballPoke-&gt;getItem()); //slot8<br />
					                                    internalRemoveItem(NULL, ballSLot); //slotbag
				</p>

				<p>
					                                    Item* CreateBallSLot = Item::CreateItem(ballSLot-&gt;getID(), ballSLot-&gt;getItemCount()); //slotbag<br />
					                                    CreateBallSLot-&gt;copyAttributes(ballSLot); //slotbag<br />
					                                    internalAddItem(NULL, ballPokeCylinder, CreateBallSLot, INDEX_WHEREEVER, FLAG_NOLIMIT); //slotbag
				</p>

				<p>
					                                    Item* CreateBallBag = Item::CreateItem(ballPoke-&gt;getItem()-&gt;getID(), ballPoke-&gt;getItem()-&gt;getItemCount()); //slot8<br />
					                                    CreateBallBag-&gt;copyAttributes(ballPoke-&gt;getItem()); //slot8<br />
					                                    internalPlayerAddItem(NULL, player, CreateBallBag, false);//<br />
					                                    return true;<br />
					                                }else<br />
					                                {<br />
					                                    Cylinder* ballOrderCylinder = ballSLot-&gt;getParent();<br />
					                                    int32_t ballOrderIndex = ballOrderCylinder-&gt;__getIndexOfThing(ballSLot);<br />
					                                    internalRemoveItem(NULL, ballSLot);<br />
					                                    Item* CreateBallSLot = Item::CreateItem(ballSLot-&gt;getID(), ballSLot-&gt;getItemCount());<br />
					                                    CreateBallSLot-&gt;copyAttributes(ballSLot);<br />
					                                    internalPlayerAddItem(NULL, player, CreateBallSLot, false);<br />
					                                    return true;<br />
					                                }<br />
					                            }<br />
					                        }<br />
					                    }<br />
					                }<br />
					            }<br />
					        }<br />
					    }<br />
					    return false;<br />
					}
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			agora em game.h:
		</p>

		<p>
			 
		</p>

		<p>
			embaixo de:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					bool playerCancelRuleViolation(uint32_t playerId);
				</p>
			</div>
		</div>

		<p>
			adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					bool doMoveBar(uint32_t playerId, uint8_t opId);
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			 
		</p>

		<p>
			agora em luascript.cpp:
		</p>

		<p>
			 
		</p>

		<p>
			embaixo de <span>:</span>
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					//getCreatureSummons(cid)<br />
					    lua_register(m_luaState, "getCreatureSummons", LuaScriptInterface::luaGetCreatureSummons);
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			adicione:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					    //doUpdatePokemonsBar(cid)<br />
					    lua_register(m_luaState, "doUpdatePokemonsBar", LuaScriptInterface::luaDoUpdatePokemonsBar);
				</p>

				<p>
					 
				</p>

				<p>
					    //doMoveBar(playerid, item)<br />
					    lua_register(m_luaState, "doMoveBar", LuaScriptInterface::luaDoMoveBar);
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			agora em baixo de:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					int32_t LuaScriptInterface::luaDoSendPlayerExtendedOpcode(lua_State* L)<br />
					{<br />
					//doSendPlayerExtendedOpcode(cid, opcode, buffer)<br />
					std::string buffer = popString(L);<br />
					int opcode = popNumber(L);
				</p>

				<p>
					ScriptEnviroment* env = getEnv();<br />
					if(Player* player = env-&gt;getPlayerByUID(popNumber(L))) {<br />
					player-&gt;sendExtendedOpcode(opcode, buffer);<br />
					lua_pushboolean(L, true);<br />
					}<br />
					lua_pushboolean(L, false);<br />
					return 1;<br />
					}
				</p>

				<p>
					 
				</p>

				<p>
					ou de 
				</p>

				<p>
					 
				</p>

				<p>
					int32_t LuaScriptInterface::luaBitUNot(lua_State* L)<br />
					{<br />
					    uint32_t number = (uint32_t)popNumber(L);<br />
					    lua_pushnumber(L, ~number);<br />
					    return 1;<br />
					}
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					int32_t LuaScriptInterface::luaDoMoveBar(lua_State* L)<br />
					{<br />
					    ScriptEnviroment* env = getEnv();<br />
					    uint8_t opId = popNumber(L);<br />
					    uint32_t playerId = popNumber(L);<br />
					    if(Player* player = env-&gt;getPlayerByUID(playerId))<br />
					        lua_pushboolean(L, g_game.doMoveBar(playerId, opId));<br />
					    else<br />
					    {<br />
					        errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));<br />
					        lua_pushboolean(L, false);<br />
					    }
				</p>

				<p>
					    return 1;<br />
					}
				</p>

				<p>
					int32_t LuaScriptInterface::luaDoUpdatePokemonsBar(lua_State* L)<br />
					{<br />
					    //doUpdatePokemonsBar(cid)<br />
					    ScriptEnviroment* env = getEnv();<br />
					    if(Player* player = env-&gt;getPlayerByUID(popNumber(L)))<br />
					    {<br />
					        player-&gt;doUpdatePokemonsBar();<br />
					        lua_pushboolean(L, true);<br />
					    }<br />
					    else<br />
					    {<br />
					        errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));<br />
					        lua_pushboolean(L, false);<br />
					    }<br />
					    return 1;<br />
					}
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			agora em luascript.h.
		</p>

		<p>
			 
		</p>

		<p>
			embaixo de <span>:</span>
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					//lua functions
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			adicione isso
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					static int32_t luaDoUpdatePokemonsBar(lua_State* L);<br />
					static int32_t luaDoMoveBar(lua_State* L);
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			agora em player.cpp:
		</p>

		<p>
			 
		</p>

		<p>
			embaixo de <span>:</span>
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					void Player::updateInventoryWeight()<br />
					{<br />
					    inventoryWeight = 0.00;<br />
					    if(hasFlag(PlayerFlag_HasInfiniteCapacity))<br />
					        return;
				</p>

				<p>
					    for(int32_t i = SLOT_FIRST; i &lt; SLOT_LAST; ++i)<br />
					    {<br />
					        if(Item* item = getInventoryItem((slots_t)i))<br />
					            inventoryWeight += item-&gt;getWeight();<br />
					    }<br />
					}
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					void Player::doUpdatePokemonsBar()<br />
					{<br />
					    uint32_t slot = SLOT_FEET;<br />
					    const Container* container;<br />
					    std::stringstream s;<br />
					    s &lt;&lt; "p#";<br />
					    std::stringstream sd;<br />
					    int32_t bo = 1;<br />
					     for(int32_t i = SLOT_LAST-1; i &gt;= SLOT_FIRST; --i)<br />
					    {<br />
					        if(Item* item = getInventoryItem((slots_t)i))<br />
					        {<br />
					            boost::any value = (item)-&gt;getAttribute("poke");<br />
					            if(value.type() == typeid(std::string))<br />
					            {<br />
					                boost::any vanick = (item)-&gt;getAttribute("nick");<br />
					                std::string pokename = boost::any_cast&lt;std::string&gt;(value);<br />
					                if(vanick.type() == typeid(std::string))<br />
					                    pokename = boost::any_cast&lt;std::string&gt;(vanick);
				</p>

				<p>
					                boost::any tapot = (item)-&gt;getAttribute("tadport");<br />
					                if(tapot.type() == typeid(int32_t))<br />
					                {<br />
					                    boost::any boostpo = (item)-&gt;getAttribute("boost");<br />
					                    boost::any hpPo = (item)-&gt;getAttribute("hp");<br />
					                    int32_t boost = 0;<br />
					                    int32_t hpPok = 0;<br />
					                    if(boostpo.type() == typeid(int32_t))<br />
					                        boost = boost::any_cast&lt;int32_t&gt;(boostpo);
				</p>

				<p>
					                    if(hpPo.type() == typeid(float))<br />
					                        hpPok = (int32_t)std::ceil((boost::any_cast&lt;float&gt;(hpPo)*100));<br />
					                    else if(hpPo.type() == typeid(int32_t))<br />
					                        hpPok = (int32_t)std::ceil((boost::any_cast&lt;int32_t&gt;(hpPo)*100));
				</p>

				<p>
					                    (item)-&gt;setAttribute("ballorder", bo);<br />
					                    const ItemType* foto;<br />
					                    if(!(foto = Item::items.getElement(boost::any_cast&lt;int32_t&gt;(tapot))))<br />
					                        foto = Item::items.getElement(2395);
				</p>

				<p>
					                    if(hpPok &lt;= 0)<br />
					                    {<br />
					                        sd &lt;&lt; "," &lt;&lt; foto-&gt;clientId &lt;&lt; "|" &lt;&lt; pokename &lt;&lt; "|" &lt;&lt; bo &lt;&lt; "|" &lt;&lt; hpPok &lt;&lt; "|" &lt;&lt; boost;
				</p>

				<p>
					                    bo += 1;<br />
					                        continue;<br />
					                    }<br />
					                        s &lt;&lt; "," &lt;&lt; foto-&gt;clientId &lt;&lt; "|" &lt;&lt; pokename &lt;&lt; "|" &lt;&lt; bo &lt;&lt; "|" &lt;&lt; hpPok &lt;&lt; "|" &lt;&lt; boost;
				</p>

				<p>
					                    bo += 1;<br />
					                }else<br />
					                {<br />
					                    (item)-&gt;setAttribute("ballorder", bo);<br />
					                    const ItemType* foto = Item::items.getElement(2395);<br />
					                    s &lt;&lt; "," &lt;&lt; foto-&gt;clientId &lt;&lt; "|" &lt;&lt; " " &lt;&lt; "|" &lt;&lt; bo &lt;&lt; "|" &lt;&lt; 0 &lt;&lt; "|" &lt;&lt; 0;<br />
					                    bo += 1;<br />
					                }<br />
					            }
				</p>

				<p>
					<br />
					            if(container = item-&gt;getContainer())<br />
					            {<br />
					                for(ContainerIterator it = container-&gt;begin(), end = container-&gt;end(); it != end; ++it)<br />
					                  {<br />
					                    boost::any value = (*it)-&gt;getAttribute("poke");<br />
					                    if(value.type() == typeid(std::string))<br />
					                    {<br />
					                        boost::any vanick = (*it)-&gt;getAttribute("nick");<br />
					                        std::string pokename = boost::any_cast&lt;std::string&gt;(value);<br />
					                        if(vanick.type() == typeid(std::string))<br />
					                            pokename = boost::any_cast&lt;std::string&gt;(vanick);
				</p>

				<p>
					                        boost::any tapot = (*it)-&gt;getAttribute("tadport");<br />
					                        if(tapot.type() == typeid(int32_t))<br />
					                        {<br />
					                            boost::any boostpo = (*it)-&gt;getAttribute("boost");<br />
					                            boost::any hpPo = (*it)-&gt;getAttribute("hp");
				</p>

				<p>
					                            int32_t boost = 0;<br />
					                            int32_t hpPok = 0;<br />
					                            if(boostpo.type() == typeid(int32_t))<br />
					                                boost = boost::any_cast&lt;int32_t&gt;(boostpo);
				</p>

				<p>
					                            if(hpPo.type() == typeid(float))<br />
					                                hpPok = (int32_t)std::ceil((boost::any_cast&lt;float&gt;(hpPo)*100));<br />
					                            else if(hpPo.type() == typeid(int32_t))<br />
					                                hpPok = (int32_t)std::ceil((boost::any_cast&lt;int32_t&gt;(hpPo)*100));
				</p>

				<p>
					                            (*it)-&gt;setAttribute("ballorder", bo);<br />
					                            const ItemType* foto;<br />
					                            if(!(foto = Item::items.getElement(boost::any_cast&lt;int32_t&gt;(tapot))))<br />
					                                foto = Item::items.getElement(2395);
				</p>

				<p>
					                            if(hpPok &lt;= 0)<br />
					                            {<br />
					                                sd &lt;&lt; "," &lt;&lt; foto-&gt;clientId &lt;&lt; "|" &lt;&lt; pokename &lt;&lt; "|" &lt;&lt; bo &lt;&lt; "|" &lt;&lt; hpPok &lt;&lt; "|" &lt;&lt; boost;
				</p>

				<p>
					                                bo += 1;<br />
					                                continue;<br />
					                            }<br />
					                                s &lt;&lt; "," &lt;&lt; foto-&gt;clientId &lt;&lt; "|" &lt;&lt; pokename &lt;&lt; "|" &lt;&lt; bo &lt;&lt; "|" &lt;&lt; hpPok &lt;&lt; "|" &lt;&lt; boost;
				</p>

				<p>
					                            bo += 1;<br />
					                        }else<br />
					                        {<br />
					                            (*it)-&gt;setAttribute("ballorder", bo);<br />
					                            const ItemType* foto = Item::items.getElement(2395);<br />
					                            s &lt;&lt; "," &lt;&lt; foto-&gt;clientId &lt;&lt; "|" &lt;&lt; " " &lt;&lt; "|" &lt;&lt; bo &lt;&lt; "|" &lt;&lt; 0 &lt;&lt; "|" &lt;&lt; 0;<br />
					                            bo += 1;<br />
					                        }<br />
					                    }<br />
					                }<br />
					            }<br />
					        }<br />
					    }<br />
					    s &lt;&lt; sd.str();<br />
					    sendCancel(s.str());<br />
					    sendCancel("");<br />
					}
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			 
		</p>

		<p>
			agora em player.h
		</p>

		<p>
			 
		</p>

		<p>
			embaixo de:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					void updateItemsLight(bool internal = false);
				</p>
			</div>
		</div>

		<p>
			 
		</p>

		<p>
			adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					void doUpdatePokemonsBar();
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	 
</p>

<p>
	Download:
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<a class="ipsAttachLink" data-fileext="rar" data-fileid="27271" href="https://xtibia.com/forum/applications/core/interface/file/attachment.php?id=27271" rel="">poke_bar.rar</a>
		</p>

		<p>
			 
		</p>

		<p>
			scan:<a href="https://www.virustotal.com/gui/file/43988896fa6ff61225182a6c713395cede7153bfb4ff31e63dc48ca69fba1575/detection" rel="external nofollow">https://www.virustotal.com/gui/file/43988896fa6ff61225182a6c713395cede7153bfb4ff31e63dc48ca69fba1575/detection</a>
		</p>
	</div>
</div>

<p>
	Creditos:
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<h3 style="background-color:#ffffff;color:#333333;font-size:1.4rem;text-align:center;">
			<strong><a data-ipshover="" data-ipshover-target="https://xtibia.com/forum/profile/390376-marshmello/?do=hovercard&amp;referrer=https%253A%252F%252Fwww.xtibia.com%252Fforum%252Ftopic%252F250256-base-pokemon-x-universion-vers%2525C3%2525A3o-shiny%252Fpage%252F2%252F" href="https://xtibia.com/forum/profile/390376-marshmello/" rel="" style="background-color:transparent;" title="Ir para o perfil de Marshmello">Marshmello</a></strong>
		</h3>

		<p>
			<span style="background-color:#ffffff;color:#666666;font-size:14px;">Gristony/viktor/pokevks.com</span>
		</p>

		<p>
			eu por posta no xtibia
		</p>
	</div>
</div>

<p>
	 
</p>
]]></description><guid isPermaLink="false">250408</guid><pubDate>Tue, 22 Oct 2019 19:01:21 +0000</pubDate></item><item><title>Poketibia com sistema de Cryptomoedas</title><link>https://xtibia.com/forum/topic/259290-poketibia-com-sistema-de-cryptomoedas/</link><description><![CDATA[<p>
	Gostaria de saber, como consigo colocar um sistema de cryptomoedas: exemplo a pessoa ira comprar vip 01 = e nesse vip 01 conforme for dropando item x = $0,001 dol para ser transferido direto pra "carteira" de alguma forma se possivel.
</p>
]]></description><guid isPermaLink="false">259290</guid><pubDate>Thu, 31 Aug 2023 19:42:45 +0000</pubDate></item><item><title>House look otPokemon</title><link>https://xtibia.com/forum/topic/254129-house-look-otpokemon/</link><description><![CDATA[<p style="text-align:center;">
	<strong>Fala galera , faz tempo que não venho aqui</strong>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<b>  estou postando pq vi uns frango vendendo o código idêntico ao meu</b>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="color:#e74c3c;"><b>Antes de começar já aviso que e necessário ter opcodes instalados na source do server</b></span>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<b>Vamos la</b>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<b>Em Creaturescript crie um arquivo chamado lookhouse.lua e cole isso lá</b>
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted"><span class="kwd">function</span><span class="pln"> stringValue</span><span class="pun">(</span><span class="pln">preco</span><span class="pun">)</span><span class="pln">

	</span><span class="kwd">if</span><span class="pln"> preco </span><span class="pun">&lt;</span><span class="pln"> </span><span class="lit">100</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
	 </span><span class="kwd">return</span><span class="pln"> tostring</span><span class="pun">(</span><span class="pln">preco</span><span class="pun">)</span><span class="pln">
	 
	 </span><span class="kwd">else</span><span class="pln">
	 </span><span class="kwd">return</span><span class="pln"> tostring</span><span class="pun">(</span><span class="pln">string</span><span class="pun">.</span><span class="pln">format</span><span class="pun">(</span><span class="str">"%1.01f"</span><span class="pun">,</span><span class="pln"> value</span><span class="pun">/</span><span class="lit">100</span><span class="pun">))</span><span class="pln">
	 </span><span class="kwd">end</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> </span><span class="str">'none'</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">



</span><span class="kwd">function</span><span class="pln"> onLook</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> thing</span><span class="pun">,</span><span class="pln"> position</span><span class="pun">,</span><span class="pln"> lookDistance</span><span class="pun">)</span><span class="pln">


</span><span class="kwd">if</span><span class="pln"> </span><span class="kwd">not</span><span class="pln"> isCreature</span><span class="pun">(</span><span class="pln">thing</span><span class="pun">.</span><span class="pln">uid</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
</span><span class="kwd">local</span><span class="pln"> house </span><span class="pun">=</span><span class="pln"> getHouseFromPos</span><span class="pun">(</span><span class="pln">position</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> house </span><span class="kwd">then</span><span class="pln">

</span><span class="kwd">local</span><span class="pln"> str </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Casa: "</span><span class="pun">..</span><span class="pln">getHouseName</span><span class="pun">(</span><span class="pln">house</span><span class="pun">)..</span><span class="str">".\n"</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> getHouseOwner</span><span class="pun">(</span><span class="pln">house</span><span class="pun">)</span><span class="pln"> </span><span class="pun">~=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
str </span><span class="pun">=</span><span class="pln"> str</span><span class="pun">..</span><span class="str">"Propietário: "</span><span class="pun">..</span><span class="pln">getPlayerNameByGUID</span><span class="pun">(</span><span class="pln"> getHouseOwner</span><span class="pun">(</span><span class="pln">house</span><span class="pun">)</span><span class="pln"> </span><span class="pun">)..</span><span class="str">"\nPreço: "</span><span class="pun">..</span><span class="pln">getHousePrice</span><span class="pun">(</span><span class="pln">house</span><span class="pun">)..</span><span class="str">" dólares"</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
str </span><span class="pun">=</span><span class="pln"> str</span><span class="pun">..</span><span class="str">"Propietário: Não tem\nPreço: "</span><span class="pun">..</span><span class="pln">getHousePrice</span><span class="pun">(</span><span class="pln">house</span><span class="pun">)..</span><span class="str">" dólares"</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">if</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1252</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1249</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1251</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1254</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1250</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1212</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1214</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">6891</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">6893</span><span class="pln"> </span><span class="kwd">or</span><span class="pln">
thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">6900</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">6902</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">6892</span><span class="pln"> </span><span class="kwd">or</span><span class="pln">  thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1213</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1219</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1220</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1222</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">1221</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5515</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5516</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5517</span><span class="pln"> </span><span class="kwd">or</span><span class="pln">
thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5518</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5119</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5120</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5128</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5129</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5098</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5100</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln"> </span><span class="lit">5107</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> thing</span><span class="pun">.</span><span class="pln">itemid </span><span class="pun">==</span><span class="pln">  </span><span class="lit">5109</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">

</span><span class="kwd">if</span><span class="pln"> getHouseOwner</span><span class="pun">(</span><span class="pln">house</span><span class="pun">)</span><span class="pln"> </span><span class="pun">~=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
doSendPlayerExtendedOpcode</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">78</span><span class="pun">,</span><span class="pln"> getHouseName</span><span class="pun">(</span><span class="pln">house</span><span class="pun">)..</span><span class="str">"@"</span><span class="pun">..</span><span class="pln">getPlayerNameByGUID</span><span class="pun">(</span><span class="pln"> getHouseOwner</span><span class="pun">(</span><span class="pln">house</span><span class="pun">)</span><span class="pln"> </span><span class="pun">)..</span><span class="str">"@"</span><span class="pun">..</span><span class="pln">getHousePrice</span><span class="pun">(</span><span class="pln">house</span><span class="pun">)..</span><span class="str">"@"</span><span class="pun">..</span><span class="pln">getHouseInfo</span><span class="pun">(</span><span class="pln">house</span><span class="pun">).</span><span class="pln">beds</span><span class="pun">/</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
doSendPlayerExtendedOpcode</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">78</span><span class="pun">,</span><span class="pln"> getHouseName</span><span class="pun">(</span><span class="pln">house</span><span class="pun">)..</span><span class="str">"@Não a Propietário@"</span><span class="pun">..</span><span class="pln">stringValue</span><span class="pun">(</span><span class="pln">getHousePrice</span><span class="pun">(</span><span class="pln">house</span><span class="pun">))..</span><span class="str">"@"</span><span class="pun">..</span><span class="pln">getHouseInfo</span><span class="pun">(</span><span class="pln">house</span><span class="pun">).</span><span class="pln">beds</span><span class="pun">/</span><span class="lit">2</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">




</span><span class="kwd">end</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">false</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
</span><span class="kwd">end</span></pre>

<p>
	 
</p>

<p style="text-align:center;">
	em login.lua registre o evento 
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted"><span class="pln">registerCreatureEvent</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="str">"LookHouse"</span><span class="pun">)</span></pre>

<p style="text-align:center;">
	em creaturescript.xml coloque a tag
</p>

<pre class="ipsCode prettyprint lang-xml prettyprinted"><span class="pln">	</span><span class="tag">&lt;event</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"look"</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"Lookhouse"</span><span class="pln"> </span><span class="atn">event</span><span class="pun">=</span><span class="atv">"script"</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"lookhouse.lua"</span><span class="tag">/&gt;</span></pre>

<p>
	 
</p>

<p style="text-align:center;">
	Modules do OTC
</p>

<p style="text-align:center;">
	<a class="ipsAttachLink" data-fileext="rar" data-fileid="31027" href="https://xtibia.com/forum/applications/core/interface/file/attachment.php?id=31027&amp;key=51cf79727baf340cdb32d8796219ea24" rel="">game_house.rar</a>
</p>

<p style="text-align:center;">
	Não esqueça de registrar o modulo no interface.otmod
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted"><span class="pun">-</span><span class="pln"> game_house</span></pre>

<p style="text-align:center;">
	 E isso bom proveito 
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="color:#e74c3c;"><strong>Créditos a mim por te feito o código e o modulo</strong></span>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<font color="#e74c3c"><b>Como vai ficar</b></font>
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			<img class="ipsImage ipsImage_thumbnailed" data-fileid="31028" data-ratio="66.74" width="430" alt="768279868_unknown(1).png.7017ad9ff44207719bddf8a34d22f7b2.png" src="https://cdn.xtibia.com/monthly_2022_08/768279868_unknown(1).png.7017ad9ff44207719bddf8a34d22f7b2.png" /></p>
	</div>
</div>

<p>
	 
</p>
]]></description><guid isPermaLink="false">254129</guid><pubDate>Fri, 19 Aug 2022 15:29:23 +0000</pubDate></item><item><title>[aula 1] l&#xF3;gica de programa&#xE7;&#xE3;o</title><link>https://xtibia.com/forum/topic/239427-aula-1-l%C3%B3gica-de-programa%C3%A7%C3%A3o/</link><description><![CDATA[
<p>	<img alt="ipcgUqq.png" src="http://i.imgur.com/ipcgUqq.png" /><img alt="lua.gif" src="http://www.lua.org/images/lua.gif" /><br /><strong><span style="font-size:22px;">Aula - Lógica de programação</span></strong><br />	fala pessoal, essa aula é a primeira do conjunto que estarei criando para ensinar programação através da linguagem LUA, e depois, aprender como aplicar no tibia. <br />	 <br /><em><span style="color:#808080;">as informações apresentadas a seguir são fundamentais para o apropriado entendimento da logica de programação, porém...</span></em><br /><em><span style="color:#808080;">Caso você esteja buscando a parte mais prática, pule para: </span><strong>Criando Algoritmos</strong></em><br />	 <br />	     Sem mais delongas, precisamos entender o que é o conceito de lógica de programação, <br />	Lógica está contida em um conjunto de atitudes/eventos que tem um sentido por trás, lógica pode tomar várias formas e definições, porém, a que vamos aprender é Lógica de Computador, ela é EXTREMAMENTE necessária para você poder criar scripts, e programar códigos de qualquer tipo e linguagem. A lógica de computador não pode ser argumentada, essa lógica tudo é ou não é, não existe o meio termo ou argumento, ela pode ser entendida na Lógica de Aristóteles com a lei da não contradição, ou é verdadeiro, ou falso.<br />	 <br />	    Nós somos quase totalmente diferentes de máquinas, apesar do nosso cérebro funcionar também por eletricidade, a voltagem é fraca e ele não depende só de eletricidade, mas isso não vem ao caso, o que interessa é a nossa maneira de pensar e agir, aí sim, é totalmente diferente de um computador, Porque Será?<br />	 <br />	    Ao pensarmos, nosso cérebro trabalha no consciente e inconsciente, alguns cientistas acreditam que a decisão acontece já no inconsciente, através de experiências já vividas e considerações, ou seja, você não sabe que seu cérebro já tomou a decisão, até ficar consciente dela (não acredito 100% nisso, essa informação não tem muita base, tem deduções), mas o que temos que entender é que a gente avalia de acordo com o nosso conhecimento já adquirido, e por meio disso, a decisão é tomada através do nosso conhecimento de certo ou errado, e a decisão não precisa ser exata.<br />	 <br />	   Já o computador trabalha através de instruções de linguagens não sofisticadas (códigos de máquina, exemplo: código binário, 0 ou 1), algo que é praticamente incompreensível para os humanos (se não fosse compreensível, não existiria computador), por causa da dificuldade de programar em código de máquina foi criada uma linguagem chamada Assembly que torna muito mais fácil programar, e depois dessa linguagem, foram criadas outras mais sofisticadas.<br />	 <br /><strong>Criando Algoritmos.</strong><br />	 <br />	   Agora o que precisamos entender é que a nossa maneira de pensar na resolução de problemas é diferente de como devemos escrever para um computador entender, o computador é muito mais burro na hora de interpretar as ideias, pois ele não tem quase nada para se basear além das suas instruções.<br />	 <br />	   Para explicar, vou criar um algoritmo simples para mandar um humano fazer uma determinada tarefa, comprar pão, e depois, vou explicar porque um computador não pode usar o mesmo algoritmo.<br />	 <br />	Vou usar os seguintes substantivos:</p>
<ul><li>		Pão	</li>	<li>		Dinheiro	</li>	<li>		Troco	</li>	<li>		Casa	</li>	<li>		Padaria	</li>	<li>		Compra	</li>
</ul><p>	Vou usar os seguintes verbos:</p>
<ul><li>		Pegar	</li>	<li>		Ir / Voltar	</li>	<li>		Fazer	</li>	<li>		Dar	</li>
</ul><p>	Essas são as palavras chaves.<br />	Os verbos numa linguagem normal são geralmente chamados de Sintaxe (ou parte dela), ela é quem dirige a logica, e que faz o script ter sentido.<br />	 <br />	     Já os substantivos são dados valiosos, são variáveis! , variável é uma incógnita sobre o qual você tem controle, e sabe o valor , ela serve para você resumir dados e guardar, vão ser muito usadas se você quiser programar bastante, ela ajuda a identificar dados, e tornar o programa mais legível.  <br />	 <br />	• <u>Vamos ao algoritmo:</u><br />	 <br /><img alt="7jl7PSq.png" src="http://i.imgur.com/7jl7PSq.png" /><br />	 <br /><span style="font-family:arial, sans-serif;">     </span>  Bom, uma tarefa com instruções tão gerais não poderia ser seguida por um computador. A menos que sejam funções, porém isso não é assunto para agora. O fato é que essas instruções são bem mais do que a quantidade necessária para um humano, você pode falar: “Vá à padaria comprar pão”, e ele irá executar perfeitamente.<br />	 <br />	      Porém, se você quer dar um algoritmo de como ir para a padaria para um computador executar terá que ser bem mais específico e falar todas as tarefas que ficam subentendidas para um humano, mas que não são nem um pouco claras para um computador.<br />	 <br />	      Para o computador entender algo parecido do que o humano entende, seria necessária muita inteligência artificial, o que não contamos quando vamos programar em LUA, novamente falo, o computador é burro.<br />	 <br />	   Agora vamos ao algoritmo mais próximo do que um computador precisa, vamos precisar adicionar mais termos ao nosso vocabulário:<br />	 <br />	Expressões condicionais:<br />	 <br /><img alt="3dMreHg.png" src="http://i.imgur.com/3dMreHg.png" /><br />	E alguns verbos e termos a mais. Vamos ao algoritmo:<br />	 <br /><img alt="8cLnRVI.png" src="http://i.imgur.com/8cLnRVI.png" /><br />	 <br />	      As expressões condicionais servem para verificar antes de fazer alguma tarefa, assim, evitamos possíveis erros, por exemplo, caso não tenha dinheiro! Se você mandar o computador pegar o dinheiro e o valor dinheiro não existe, irá gerar erros no seu script.<br />	      Expressões condicionais não servem somente para verificar, servem para selecionar também, por exemplo, uma Quest que precise de level 20 para entrar. <br /><img alt="ItPlq32.png" src="http://i.imgur.com/ItPlq32.png" /><br />	 <br /><span style="font-family:arial, sans-serif;">     </span> Esse algoritmo acima já dá uma parte de script, se escrito como LUA.<br />	A expressão condicional que acabei de passar é considerada fácil, mas para uma Quest é simplesmente isso e mais algumas coisas simples.<br />	 <br />	  <span style="font-family:arial, sans-serif;">   </span>Bom, esse é o final da aula de algoritmos, gostaria de saber se fui claro em relação ao tutorial e se alguma coisa passou despercebida que merece alguma atenção a mais, assim posso editar o tópico para ficar melhor.<br />	 <br /><span style="font-family:arial, sans-serif;">Exercício:</span><br /><span style="font-family:arial, sans-serif;"><img alt="xWNan0f.png" src="http://i.imgur.com/xWNan0f.png" /></span><br />	 <br /><span style="font-family:arial, sans-serif;">Resposta:</span></p>
<div class="ipsSpoiler" data-ipsspoiler="">	<div class="ipsSpoiler_header">		<span>Spoiler</span>	</div>	<div class="ipsSpoiler_contents">		<p>			 		</p>		<pre class="ipsCode prettyprint lang-html"><span class="pln">Se o Player tem esse item, então:    Remova esse item,    Dê aquele item,Senão:    Dê mensagem de erro,Fim. </span></pre>		<p>			 		</p>		<p>			 		</p>	</div>
</div>
<div>	 </div>
<div>	<div>		 	</div>	<p style="text-align:right;">		<strong><span style="font-size:18px;"><a href="" rel="">[Aula 2] Booleanos e Operadores ----&gt;&gt;</a></span></strong>	</p>
</div>
<p>	 </p>
]]></description><guid isPermaLink="false">239427</guid><pubDate>Sat, 13 Feb 2016 16:08:48 +0000</pubDate></item><item><title>Dual Wield</title><link>https://xtibia.com/forum/topic/189358-dual-wield/</link><description><![CDATA[
<p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;">Tendo visto a crescente quantidade de pedidos por armas que possam ser usadas simultaneamente nas duas mãos, resolvi criar um tutorial apenas para esclarecer que esse código já existe compilado nas mais recentes revisões do The Forgotten Server.</span></span></p>
<p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;"> </span></span></p>
<p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;">Você pode escolher quais itens poderão ser equipamentos nas duas mãos e claro restringir esses itens depois para apenas uma vocação.</span></span></p>
<p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;"> </span></span></p>
<p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;"></span></span></p>
<p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;"> </span></span></p>
<p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;">1. Para criar seu item que pode ser equipado nas duas mãos, abra o items.xml e navegue até o ID do item desejado. Por exemplo, mostrarei abaixo o ID da Magic Sword:</span></span></p>
<p> </p>
<p></p>
<pre class="ipsCode">

   &lt;item id="2400" article="a" name="magic sword"&gt;
       &lt;attribute key="description" value="It is the Sword of Valor." /&gt;
       &lt;attribute key="weight" value="4200" /&gt;
       &lt;attribute key="defense" value="35" /&gt;
       &lt;attribute key="attack" value="48" /&gt;
       &lt;attribute key="weaponType" value="sword" /&gt;
       &lt;attribute key="extradef" value="3" /&gt;
   &lt;/item&gt;
</pre>
<div></div>
<p></p>
<p> </p>
<p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;">2. Adicione o atributo dualwield com valor 1 no código XML do item.</span></span></p>
<p> </p>
<p></p>
<pre class="ipsCode">


   &lt;item id="2400" article="a" name="magic sword"&gt;
       &lt;attribute key="description" value="It is the Sword of Valor." /&gt;
       &lt;attribute key="weight" value="4200" /&gt;
       &lt;attribute key="defense" value="35" /&gt;
       &lt;attribute key="attack" value="48" /&gt;
       &lt;attribute key="weaponType" value="sword" /&gt;
       &lt;attribute key="extradef" value="3" /&gt;
       &lt;attribute key="dualwield" value="1" /&gt;
   &lt;/item&gt;
</pre>
<div></div>
<p></p>
<p> </p>
<p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;"></span></span></p>
<p> </p>
<p></p>
<div style="text-align:center;">
<p></p>
<img src="http://i.imgur.com/wVdM2.jpg" alt="wVdM2.jpg" /></div>
<p></p>
<p></p>
<p> </p>
<p></p>
<div style="text-align:left;"><p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;">Pelo que pude testar os danos não se somam, mas sim são causados dois ataques ao invés de um, ou seja a velocidade de ataque do jogador aumenta.</span></span></p></div>
<p></p>
<p></p>
<p> </p>
<p>Funciona com qualquer tipo de arma, desde swords até rods e wands.</p>
<p> </p>
<p></p>
<div style="text-align:left;"><p><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;">Funcional em: </span></span><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;"><strong>The Forgotten Server 0.4 rev3777</strong></span></span><span style="font-size:14px;"><span style="font-family:tahoma, geneva, sans-serif;"> em diante</span></span></p></div>
<p></p>
<p></p>
]]></description><guid isPermaLink="false">189358</guid><pubDate>Sat, 07 Jul 2012 00:07:59 +0000</pubDate></item><item><title>Central de Aprendizado LUA: Desvios condicionais!</title><link>https://xtibia.com/forum/topic/247905-central-de-aprendizado-lua-desvios-condicionais/</link><description><![CDATA[
<p style="text-align:center;">
	Bom, eu vou tentar trazer semanalmente umas dicas de programação, começando com LUA de após fechar todas as dicas eu irei começar o central de aprendizado em c++.
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	Hoje, sendo a primeira "aula" eu irei explicar os desvios condicionais, que são:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">If
else
elseif</span></pre>

<p style="text-align:center;">
	<b>Como utilizar IF?</b>
</p>

<p style="text-align:center;">
	Basicamente, o "if" se trata de uma condição, sendo utilizado da seguinte forma:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">if </span><span class="tag">&lt;condi</span><span class="pln">çã</span><span class="atn">o</span><span class="tag">&gt;</span><span class="pln"> then</span></pre>

<p style="text-align:center;">
	Como exemplo, irei fazer um desvio caso o nível do jogador seja maior ou igual a 15:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">if player:getLevel() &gt;= 15 then</span></pre>

<p style="text-align:center;">
	Após isto, deve se colocar oque o script irá realizar caso a condição seja satisfeita.
</p>

<p style="text-align:center;">
	No exemplo a seguir ele irá printar para o console o nível do jogador:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">if player:getLevel() &gt;= 15 then
  print(player:getLevel())
end</span></pre>

<p style="text-align:center;">
	<b>Else e Elseif: caso condição não seja satisfeita</b>
</p>

<p style="text-align:center;">
	Digamos que no script anterior eu queria que caso a condição não seja satisfeita o console printe "no", eu posso fazer com ajuda do "else":
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">if player:getLevel() &gt;= 15 then
  print(player:getLevel())
else
  print('no')
end</span></pre>

<p style="text-align:center;">
	O elseif é mais "complexo", por exemplo: ele nega a condição anterior e adiciona uma nova condição.
</p>

<p style="text-align:center;">
	Quero que de acordo com o nome do jogador ele printe uma informação como exemplo:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted">
<span class="kwd">if</span><span class="pln"> player</span><span class="pun">:</span><span class="pln">getName</span><span class="pun">()</span><span class="pln"> </span><span class="pun">==</span><span class="str">"Refe"</span><span class="pln"> then
  print</span><span class="pun">(</span><span class="str">'feio'</span><span class="pun">)</span><span class="pln">
elseif player</span><span class="pun">:</span><span class="pln">getName</span><span class="pun">()</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">"Sone"</span><span class="pln"> then
  print</span><span class="pun">(</span><span class="str">'lindo'</span><span class="pun">)</span><span class="pln">
elseif player</span><span class="pun">:</span><span class="pln">getName</span><span class="pun">()</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">"Frenvius"</span><span class="pln"> then
  print</span><span class="pun">(</span><span class="str">'feio'</span><span class="pun">)</span><span class="pln">
end</span></pre>

<p style="text-align:center;">
	<strong>Resumo das dicas:</strong>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<strong>If:</strong> Usado para adicionar uma condição<br /><strong>Else: </strong>Nega a condição anterior, ou caso ela não seja satisfeita
</p>

<p style="text-align:center;">
	<strong>Elseif:</strong> Nega a condição anterior e adiciona uma nova condição.
</p>
]]></description><guid isPermaLink="false">247905</guid><pubDate>Fri, 27 Jul 2018 14:12:07 +0000</pubDate></item><item><title>Limite de 1 pessoa por vez na dungeon</title><link>https://xtibia.com/forum/topic/251152-limite-de-1-pessoa-por-vez-na-dungeon/</link><description><![CDATA[
<p>
	Boa noite Galera alguem me ajuda em um script q estou fazendo   quero por pra quando tiver alguem fazendo a dungeon outras pessoas nao podem entrar enquanto a primeira nao termina 
</p>

<p>
	eu ja fiz uma parte falta por pra nao entrar mais gente  quando tiver alguem fazendo
</p>

<p>
	 
</p>

<p>
	alguem me ajuda pf 
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="kwd">local</span><span class="pln"> t </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
storage </span><span class="pun">=</span><span class="pln"> </span><span class="lit">6234</span><span class="pun">,</span><span class="pln"> </span><span class="com">-- n mexa</span><span class="pln">
storage2 </span><span class="pun">=</span><span class="pln"> </span><span class="lit">6235</span><span class="pun">,</span><span class="pln">
time </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="com">-- tempo em minutos</span><span class="pln">
monster </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Charizard"</span><span class="pun">,</span><span class="pln"> </span><span class="com">-- monstro</span><span class="pln">
monster2 </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Blastoise"</span><span class="pun">,</span><span class="pln">


pos </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1057</span><span class="pun">,</span><span class="pln"> y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1060</span><span class="pun">,</span><span class="pln"> z </span><span class="pun">=</span><span class="pln"> </span><span class="lit">7</span><span class="pun">},</span><span class="pln"> </span><span class="com">-- posição</span><span class="pln">
pos2 </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1059</span><span class="pun">,</span><span class="pln"> y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1060</span><span class="pun">,</span><span class="pln"> z </span><span class="pun">=</span><span class="pln"> </span><span class="lit">7</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
posplayer </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1041</span><span class="pun">,</span><span class="pln"> y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1044</span><span class="pun">,</span><span class="pln"> z </span><span class="pun">=</span><span class="pln"> </span><span class="lit">10</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">function</span><span class="pln"> onUse</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> item</span><span class="pun">,</span><span class="pln"> fromPosition</span><span class="pun">,</span><span class="pln"> itemEx</span><span class="pun">,</span><span class="pln"> toPosition</span><span class="pun">)</span><span class="pln">
	 
</span><span class="kwd">local</span><span class="pln"> itemid </span><span class="pun">=</span><span class="pln"> </span><span class="lit">24910</span><span class="pln"> </span><span class="com">---- ITEM QUER PRECISAR PARA PASSAR PELA PORTA</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> getPlayerItemCount</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> itemid</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&gt;=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
doPlayerSendCancel</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Bem vindo a Dungeon!"</span><span class="pun">)</span><span class="pln">
doTeleportThing</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> posplayer</span><span class="pun">)</span><span class="pln">
doPlayerRemoveItem</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> itemid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">)</span><span class="pln"> 

</span><span class="com">--monstro 1</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> getPlayerStorageValue</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">storage</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&lt;</span><span class="pln"> os</span><span class="pun">.</span><span class="pln">time</span><span class="pun">()</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
doSummonCreature</span><span class="pun">(</span><span class="pln">t</span><span class="pun">.</span><span class="pln">monster</span><span class="pun">,</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">pos</span><span class="pun">)</span><span class="pln">
doSummonCreature</span><span class="pun">(</span><span class="pln">t</span><span class="pun">.</span><span class="pln">monster</span><span class="pun">,</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">pos2</span><span class="pun">)</span><span class="pln">
doPlayerSendTextMessage</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">22</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Você sumonou um "</span><span class="pun">..</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">monster </span><span class="pun">..</span><span class="str">"."</span><span class="pun">)</span><span class="pln">
setPlayerStorageValue</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">storage</span><span class="pun">,</span><span class="pln"> os</span><span class="pun">.</span><span class="pln">time</span><span class="pun">()</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">time</span><span class="pun">*</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
doPlayerSendCancel</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Você deve esperar "</span><span class="pun">..</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">time </span><span class="pun">..</span><span class="str">" minutos."</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="com">--monstro 2 -</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> getPlayerStorageValue</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">storage2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&lt;</span><span class="pln"> os</span><span class="pun">.</span><span class="pln">time</span><span class="pun">()</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
doSummonCreature</span><span class="pun">(</span><span class="pln">t</span><span class="pun">.</span><span class="pln">monster2</span><span class="pun">,</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">pos</span><span class="pun">)</span><span class="pln">
doSummonCreature</span><span class="pun">(</span><span class="pln">t</span><span class="pun">.</span><span class="pln">monster2</span><span class="pun">,</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">pos2</span><span class="pun">)</span><span class="pln">
doPlayerSendTextMessage</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">22</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Você sumonou um "</span><span class="pun">..</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">monster2 </span><span class="pun">..</span><span class="str">"."</span><span class="pun">)</span><span class="pln">
setPlayerStorageValue</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">storage</span><span class="pun">,</span><span class="pln"> os</span><span class="pun">.</span><span class="pln">time</span><span class="pun">()</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">time</span><span class="pun">*</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">else</span><span class="pln">
doPlayerSendCancel</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Você deve esperar "</span><span class="pun">..</span><span class="pln"> t</span><span class="pun">.</span><span class="pln">time </span><span class="pun">..</span><span class="str">" minutos."</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">else</span><span class="pln"> 

doPlayerSendCancel</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Voce nao possui a Chave !"</span><span class="pun">)</span><span class="pln">

</span><span class="kwd">end</span><span class="pln">

</span><span class="kwd">local</span><span class="pln"> pos </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln">x </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1057</span><span class="pun">,</span><span class="pln"> y </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1060</span><span class="pun">,</span><span class="pln"> z </span><span class="pun">=</span><span class="pln"> </span><span class="lit">7</span><span class="pun">}</span><span class="pln"> </span><span class="com">-- posição pra onde sera teleportado</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
</span><span class="kwd">end</span><span class="pln">



</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">251152</guid><pubDate>Wed, 04 Mar 2020 17:31:00 +0000</pubDate></item><item><title>Aprender a programar</title><link>https://xtibia.com/forum/topic/252785-aprender-a-programar/</link><description><![CDATA[<p>
	Pessoal, bom dia.
</p>

<p>
	Faz muito tempo que queria aprender a programar, e ultimamente começou a dar certo essa ideia, minha ideia é mesclar .lua com c++, aprender a duas linguagens, queria saber se tem alguma coisa voltada aqui no forum para isso ?
</p>

<p>
	Eu estou usando como material de estudos o livro programando em lua, estudando por ele consigo me virar com o meu server, ou tenho que ter algo a mais voltado para o tibia ?
</p>

<p>
	Será que alguém se disponibilizaria a ajudar a entender tudo isso, ser meu tutor mesmo ? valeu gente !!
</p>]]></description><guid isPermaLink="false">252785</guid><pubDate>Tue, 09 Feb 2021 13:26:26 +0000</pubDate></item><item><title>7&#xB0; pokemon nao vai para depot e nao tem erro no distrito</title><link>https://xtibia.com/forum/topic/252439-7%C2%B0-pokemon-nao-vai-para-depot-e-nao-tem-erro-no-distrito/</link><description><![CDATA[<p>
	salve galera estou com um erro o 7º pokemon não vai o depot o player não e god já olhei os tutorial aqui mais não deu certo pode ser poque fiz o mapa do zero.
</p>]]></description><guid isPermaLink="false">252439</guid><pubDate>Sun, 04 Oct 2020 16:37:49 +0000</pubDate></item><item><title>CONFIGURA&#xC7;&#xC3;O CLIENTE</title><link>https://xtibia.com/forum/topic/252703-configura%C3%A7%C3%A3o-cliente/</link><description><![CDATA[<p>
	Pessoal, por gentileza
</p>

<p>
	 
</p>

<p>
	Quem poderia me ajudar a corrigir os dois erros do meu cliente, não tenho conhecimento para essa configuração.
</p>

<p>
	 
</p>

<p>
	1. Mostras os jogadores on.
</p>

<p>
	 
</p>

<p>
	2. Tirar essa mensagem
</p>

<p>
	 
</p>

<p>
	No aguardo
</p>

<p>
	 
</p>

<p>
	Muito obrigado
</p>
<p><a href="//cdn.xtibia.com/monthly_2021_01/1077308613_5fe906b6dd2ac_Semttulo.png.20ef6f5d58caf8287c285c568a90541d.png.af0d64a25a9ae6dbbccc86c5e59079bd(1).png.2ad0051b3e1108541b2265b31214eecb.png" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="29556" src="https://cdn.xtibia.com/monthly_2021_01/1077308613_5fe906b6dd2ac_Semttulo.png.20ef6f5d58caf8287c285c568a90541d.png.af0d64a25a9ae6dbbccc86c5e59079bd(1).png.2ad0051b3e1108541b2265b31214eecb.png" data-ratio="56.24" width="857" class="ipsImage ipsImage_thumbnailed" alt="5fe906b6dd2ac_Semttulo.png.20ef6f5d58caf8287c285c568a90541d.png.af0d64a25a9ae6dbbccc86c5e59079bd (1).png"></a></p>]]></description><guid isPermaLink="false">252703</guid><pubDate>Fri, 15 Jan 2021 03:25:26 +0000</pubDate></item><item><title>[PEDIDO] BASE SEM SITE OPEN SOURCE(POKETIBIA)</title><link>https://xtibia.com/forum/topic/250464-pedido-base-sem-site-open-sourcepoketibia/</link><description><![CDATA[
<p>
	Existe alguma base poketibia open source sem site?
</p>
]]></description><guid isPermaLink="false">250464</guid><pubDate>Sat, 02 Nov 2019 15:08:11 +0000</pubDate></item><item><title>System de coroa para vip</title><link>https://xtibia.com/forum/topic/252189-system-de-coroa-para-vip/</link><description><![CDATA[
<p>
	Boa noite, basicamente deixa com a coroa quem tem vip ou god.
</p>

<p>
	 
</p>

<p>
	Bem simples de colocar e usar:
</p>

<p>
	 
</p>

<p>
	servidor/data/creaturescripts/script:
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			crie um arquivo chamado 'crown.lua' e coloque isso dentro
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					function onThink(cid, interval)<br />
					    if isPremium(cid) or isGod(cid) then<br />
					        doCreatureSetSkullType(cid, 2)<br />
					    end<br />
					    return true<br />
					end
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	servidor/data/creaturescripts.xml:
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			dentro do arquivo adicione isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					&lt;event type="think" name="Idle" event="script" value="crown.lua"/&gt;
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	servidor/data/creaturescripts/script
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			abra arquivo login.lua, procure por isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					registerCreatureEvent(cid, "dropStone")
				</p>
			</div>
		</div>

		<p>
			embaixo coloque isso:
		</p>

		<div class="ipsSpoiler" data-ipsspoiler="">
			<div class="ipsSpoiler_header">
				<span>Spoiler</span>
			</div>

			<div class="ipsSpoiler_contents">
				<p>
					registerCreatureEvent(cid, "PlayerCrown")
				</p>
			</div>
		</div>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>

<p>
	<span>agora em seu otclient:</span>
</p>

<p>
	 
</p>

<p>
	<span>procure por:otclient/data/images/game/skulls:</span>
</p>

<p>
	 
</p>

<p>
	<span>e adicione esse icone que está dentro do zip</span>
</p>

<p>
	<a class="ipsAttachLink" data-fileext="7z" data-fileid="29012" href="https://xtibia.com/forum/applications/core/interface/file/attachment.php?id=29012" rel="">skull_black.7z</a>
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	Creditos:
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			Não sei quem fez.
		</p>

		<p>
			 
		</p>

		<p>
			eu por postar no xtibia
		</p>
	</div>
</div>

<p>
	 
</p>
]]></description><guid isPermaLink="false">252189</guid><pubDate>Mon, 10 Aug 2020 00:11:21 +0000</pubDate></item><item><title>Aprenda A Balancear Voca&#xE7;&#xF5;es Em Seu Otserver</title><link>https://xtibia.com/forum/topic/73067-aprenda-a-balancear-voca%C3%A7%C3%B5es-em-seu-otserver/</link><description><![CDATA[
<p>Pessoal, depois de muito tempo, eu descobri um jeito muito bom de balancear as vocações, deixando elas bem parecidas!</p>
<p> </p>
<p>É chato, mais vale a pena!</p>
<p> </p>
<p>Ja vou avisando que as partes de editar é você quem faz, só estou explicando aqui como você pode balancear as vocações de seus otservers</p>
<p> </p>
<p><span style="color:#FF0000;"><span style="font-size:14px;">PRIMEIRO</span></span></p>
<p> </p>
<p>Na pasta /data do seu ot, tem o arquivo vocations.xml, que contém as vocações: <span style="color:#000000;"><span style="font-size:12px;">knight, sorcerer, paladin e druid</span></span></p>
<p> </p>
<p>Nela você balanceia exatamente como vou por aqui:</p>
<p> </p>
<p>Veja:</p>
<p> </p>
<p></p>
<pre class="ipsCode">&lt;skill id="0" multiplier="1.5"/&gt;
&lt;skill id="1" multiplier="2.0"/&gt;
&lt;skill id="2" multiplier="2.0"/&gt;
&lt;skill id="3" multiplier="2.0"/&gt;
&lt;skill id="4" multiplier="2.0"/&gt;
&lt;skill id="5" multiplier="1.5"/&gt;
&lt;skill id="6" multiplier="1.1"/&gt;</pre>
<div></div>
<p></p>
<p> </p>
<p>Esses são os skills do Sorcerers, mais se vocês verem sequencialmente, os skills estão em ordem: Fist, Club, Sword, Axe, Distance, Shielding e Fishing(0,1,2,3,4,5,6) que será a velocidade que o player vai subir seus skills, o normal é 1.0 (para subir normalmente) mas o code acima é o dos sorcerers, então, mago tem que ser pelo menos 2.0 (2x) mais demorados pra subir os skills, do que um Knight (1.0[1x])</p>
<p> </p>
<p>OBS: magic level tem no final da linha:</p>
<p> </p>
<p></p>
<pre class="ipsCode">manamultiplier="1.1"</pre>
<div></div>
<p></p>
<p> </p>
<p>Então você faz assim:</p>
<p> </p>
<p>SKILLS DE FISHING SEMPRE COM 1.0</p>
<p> </p>
<p>Sorcerers: Skills de Melee(menos o Fist Fightning) e Distance (2.0) Shielding e Fist (1.5) magic level (1.0)</p>
<p>Knights: Skills de Melee e Shielding (1.0), Distance (1.5) Magic Level (4.0)</p>
<p>Paladins: Skills de Distance e Shielding (1.0) Melee (1.5) Magic Level (2.5)</p>
<p>Druids: Skills de Melee(menos o Fist Fightning) e Distance (1.9) Shielding e Fist (1.4) magic level (1.1)</p>
<p> </p>
<p>Depois disso, balanceie os status de mana e vida das vocações, de um modo que não exagere(por exemplo, knight quando upa level ganha 30 de life e sorcerer ganha 300 [LOL])</p>
<p> </p>
<p>Após disso, Deixe os skills do seu ot alto, sempre pra cima de 25x, no mínimo 25x, e skills de magic level pode ser 2x.</p>
<p> </p>
<p>Va no /data/weapons/weapons.xml copie o code abaixo e cole no arquivo weapons.xml</p>
<p> </p>
<p></p>
<pre class="ipsCode">&lt;?xml version="1.0"?&gt;
&lt;weapons&gt;

----------------- Sorcerer Wands -----------------
&lt;wand id="2190" lvl="8" range="7" mana="0" enabled="1" script="wand of vortex.lua"&gt;&lt;vocation name="Sorcerer"/&gt;&lt;vocation name="Master Sorcerer"/&gt;&lt;vocation name="Supreme Sorcerer"/&gt;&lt;/wand&gt;
&lt;wand id="2191" lvl="15" range="6" mana="0" enabled="1" script="wand of dragonbreath.lua"&gt;&lt;vocation name="Sorcerer"/&gt;&lt;vocation name="Master Sorcerer"/&gt;&lt;vocation name="Supreme Sorcerer"/&gt;&lt;/wand&gt;
&lt;wand id="2188" lvl="22" range="5" mana="0" enabled="1" script="wand of plague.lua"&gt;&lt;vocation name="Sorcerer"/&gt;&lt;vocation name="Master Sorcerer"/&gt;&lt;vocation name="Supreme Sorcerer"/&gt;&lt;/wand&gt;
&lt;wand id="2189" lvl="30" range="4" mana="0" enabled="1" script="wand of cosmic energy.lua"&gt;&lt;vocation name="Sorcerer"/&gt;&lt;vocation name="Master Sorcerer"/&gt;&lt;vocation name="Supreme Sorcerer"/&gt;&lt;/wand&gt;
&lt;wand id="2187" lvl="40" range="3" mana="0" enabled="1" script="wand of inferno.lua"&gt;&lt;vocation name="Sorcerer"/&gt;&lt;vocation name="Master Sorcerer"/&gt;&lt;vocation name="Supreme Sorcerer"/&gt;&lt;/wand&gt;

------------------- Druid Rods -------------------
&lt;wand id="2182" lvl="8" range="7" mana="0" enabled="1" script="snakebite rod.lua"&gt;&lt;vocation name="Druid"/&gt;&lt;vocation name="Elder Druid"/&gt;&lt;vocation name="Druid of Wrath"/&gt;&lt;/wand&gt;
&lt;wand id="2186" lvl="15" range="6" mana="0" enabled="1" script="moonlight rod.lua"&gt;&lt;vocation name="Druid"/&gt;&lt;vocation name="Elder Druid"/&gt;&lt;vocation name="Druid of Wrath"/&gt;&lt;/wand&gt; 
&lt;wand id="2185" lvl="22" range="5" mana="0" enabled="1" script="volcanic rod.lua"&gt;&lt;vocation name="Druid"/&gt;&lt;vocation name="Elder Druid"/&gt;&lt;vocation name="Druid of Wrath"/&gt;&lt;/wand&gt;
&lt;wand id="2181" lvl="30" range="4" mana="0" enabled="1" script="quagmire rod.lua"&gt;&lt;vocation name="Druid"/&gt;&lt;vocation name="Elder Druid"/&gt;&lt;vocation name="Druid of Wrath"/&gt;&lt;/wand&gt;
&lt;wand id="2183" lvl="40" range="3" mana="0" enabled="1" script="tempest rod.lua"&gt;&lt;vocation name="Druid"/&gt;&lt;vocation name="Elder Druid"/&gt;&lt;vocation name="Druid of Wrath"/&gt;&lt;/wand&gt;

------------ Paladin Spears and Arrow ------------
&lt;distance id="2545" range="6" enabled="1" exhaustion="0" hitchance="70" ammo="removecount" script="poison arrow.lua"&gt;&lt;/distance&gt;
&lt;distance id="2546" range="6" enabled="1" exhaustion="0" hitchance="60" ammo="removecount" script="explosive arrow.lua"&gt;&lt;/distance&gt;

&lt;/weapons&gt;</pre>
<div></div>
<p></p>
<p> </p>
<p>Isso fará com que todas as suas wands <span style="font-size:14px;">NÃO UTILIZEM MANA PARA SEREM USADAS</span></p>
<p> </p>
<p>Depois, dentro da pasta /data/weapons/scripts/ modifique todas as suas wands e rods.</p>
<p> </p>
<p></p>
<pre class="ipsCode">local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, &gt;&gt;&gt;&gt;&gt;&gt;&gt;ATAQUE MINIMO&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;, 0, &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;ATAQUE MÁXIMO&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;)

function onUseWeapon(cid, var)
return doCombat(cid, combat, var)
end</pre>
<div></div>
<p></p>
<p> </p>
<p>Então você edita o Ataque Mínimo e o Ataque Maximo de cada uma, <span style="font-size:14px;">SEM MUDAR MAIS </span><span style="font-size:14px;"><span style="color:#FF0000;">NADA</span></span> Lembrando que, onde esta escrito ATAQUE MINIMO e ATAQUE MAXIMO no code acima, você deve adicionar o sinal de menos, se não a varinha ao invés de causar dano, vai curar quem você esta atacando!</p>
<p> </p>
<p>Primeira Wand: -20 a -40</p>
<p>Segunda Wand: -40 a -70</p>
<p>Terceira Wand: -70 a -110</p>
<p>Quarta Wand: -110 a -160</p>
<p>Quinta Wand: -160 a -220</p>
<p> </p>
<p>Pelo que vocês devem estar notando, as varinhas ALÉM de não diminuir sua mana, terá quase o TRIPLO, de ataque que tinha antes, então fica bem rox assim!</p>
<p> </p>
<p><span style="color:#000000;"><span style="font-size:18px;">MINHA OPINIÃO (PODEM PULAR ESSA PARTE SE QUISEREM, POIS ELA EXPLICA O QUE EU ACHO LITERALMENTE SOBRE O BALANCEAMENTO)</span></span></p>
<p> </p>
<blockquote data-ipsquote="" class="ipsQuote" data-ipsquote-contentapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentid="73067" data-ipsquote-contentclass="forums_Topic"><div>No meu ot offline, eu utilizo a Sprite Wand, eu fiz ela com -220 a -440<p> </p>
<p>Os knights level 100+ usam Stonecutter Axe com uns 80 de atk e eles tem skills 100+ também, dai ficam tirando, 400, 800, 700, 400, 900, e assim vai, enquanto mago, pode usar varinha (como se fosse um kina), sem gastar nada de mana, tirando a METADE, mais assim, podendo usar magias, sendo que o knight só usa exori e utani hur de magia praticamente.</p>
<p> </p>
<p>Pra ficar mais balanceado, Faça os mages criarem runas com 3x mais cargas (sd de 3x, hmm de 15x, e assim por diante) e aumente o ataque das armas dos knights em 50% maior (de atk 30 para 45, 45 para 67 ou 68[67.5]) e caso queira deixar o jogo mais facil, duplicar a defesa das armaduras ou escudos, deixando os 2 com defesas dobradas poderá deixar todos com imunidade aos ataques físicos.</p>
<p> </p>
<p>Uma coisa pra fazerem os players jogarem com mais frequência com druid do que com sorcerer, faça com que apenas os druids podem fazer monstros, qualquer monstro, até demon, e sorcerers levels alto, inventem uma magia, no meu ot eu fiz a magia armageddon(exevo gran mas vis hur) gasta 2500 de mana e precisa level 100+, tira 3000~7000, enquanto mago tem essa magia, druid, pode criar demons, e inclusive, curar eles, ja q é um druid né.</p>
<p> </p>
<p>Todos devem estar pensando, ué, mais isso é balanceamento? Druid fazendo demon, sorc tirando 3000~7000 enquanto os knights e palys ficam de 600 em 600? NÃO, muito enganado, no /data/vocations.xml você edita para somente os knights e paladins terem o ataque mais rapido &gt;&gt;&gt;&gt; atkspeed="1500" promoted_atkspeed="1000" &gt;&gt;&gt; deixem atkspeed="500" e o promoted ="250", assim, enquanto SORCERERS tiram 3000~7000, DRUIDS fazem 2 demons, os PALYS, tiram um monte com infernal bolt ou power bolt, com ataques muito rapidos, por exemplo, de 600 em 600, se o atkspeed for 500 (0.5 segundos) vai demorar 3 segundos pro cara levar cerca de 3000~4000 também, mais dai vem o esquema de cima (aumente 50% do ataque das armas), power bolts com 80 de atk e infernal bolt com uns 110.</p>
</div></blockquote>
<p> </p>
<p>Utilize o OT itemeditor e deixem as armas de knight mais fortes, avenger por exemplo, é bom por uns 75/75, dependendo da arma, aumenta só uns 5 de atk, defesa tambem</p>
<p> </p>
<p>Armaduras não tem muita importância aumentar, pois afetaria todas as vocações.</p>
<p> </p>
<p>Na pasta /data/spells/spells.xml na magia Summon Creature, coloque para somente os druids fazerem monstros, e coloquem para que eles façam qualquer tipo de monstro, isso os deixaria mais "cobiçados", sorcerers façam magias novas, como a que eu citei no quote (armageddon[uE 5x mais forte]), Paladins e Knights, va no /data/vocations.xml e mudem o:</p>
<p> </p>
<p></p>
<pre class="ipsCode">atkspeed="1500" promoted_atkspeed="1000"</pre>
<div></div>
<p></p>
<p> </p>
<p>Para</p>
<p> </p>
<p></p>
<pre class="ipsCode">atkspeed="500" promoted_atkspeed="250"</pre>
<div></div>
<p></p>
<p> </p>
<p>Assim seus ataques teriam mais velocidade, e poderiam chegar ao nível dos mages.</p>
<p> </p>
<p>Faça os mages terem</p>
<p> </p>
<p>Concluindo:</p>
<p> </p>
<p>Knights e Palys batendo 1000 por segundo.</p>
<p>Sorcerers podendo tirar entre 200 a 5000 (dependendo do quanto de mana eles tiverem para uma magia poderosa como a armageddon, ou algo parecido, É LÓGICO!!! Eles não vão ficar soltando armageddon a cada segundo, imagine o que seria do server assim??? <span style="font-size:14px;">ACONSELHO USAR REGENERAÇÃO DE MANA RAPIDO OU MANA RUNE</span>)</p>
<p>Druids criando demons, que podem tirar de 0 a 600 por segundos, sem contar as varinhas que eles podem usar e/ou SD's.</p>
<p> </p>
<p>Ta ae, no meu ot, é balanceado desse jeito, e ninguem reclama muito do balanceamento, pelo contrário, acham muito bom!</p>
<p> </p>
<p><span style="color:#FF0000;"><span style="font-size:36px;">FIM!</span></span></p>
<p> </p>
<p>Quem tem dúvidas, favor postar, e comentem plx.</p>
<p> </p>
<p>Obrigado a todos que pelo menos vieram ver meu tópico.</p>
<p> </p>
<p><span style="color:#008000;"><span style="font-size:18px;">E Feliz 2008 xD</span></span></p>
]]></description><guid isPermaLink="false">73067</guid><pubDate>Tue, 01 Jan 2008 07:27:49 +0000</pubDate></item><item><title>[Tutorial b&#xE1;sico] Chest de quest por script</title><link>https://xtibia.com/forum/topic/225404-tutorial-b%C3%A1sico-chest-de-quest-por-script/</link><description><![CDATA[
<p>Esse tutorial é para você criar uma chest por meio de script e adicionando um determinado level para abrir o baú então lá vai.</p>
<p>Em action/script crie um arquivo lua com um nome da sua quest , exemplo moltresquest.lua</p>
<p> </p>
<div class="ipsSpoiler" data-ipsspoiler="">
<div class="ipsSpoiler_header"><span></span></div>
<div class="ipsSpoiler_contents">
<p> </p>
<p>function onUse (cid,item,frompos,item2,topos)</p>
<p>pos = <span style="color:#daa520;">{x=1053, y=1049, z=7}</span></p>
<p>pos2 = getPlayerPosition(cid)</p>
<p> </p>
<p>UID_DO_BAU = <span style="color:#ff0000;">33333</span></p>
<p>STORAGE_VALUE = <span style="color:#ff0000;">33333</span></p>
<p>ID_DO_PREMIO = <span style="color:#008000;">2145</span></p>
<p>ID_DO_PREMIO2 = <span style="color:#008000;">11449</span></p>
<p>ID_DO_PREMIO3 = <span style="color:#008000;">2160</span></p>
<p> </p>
<p>if getPlayerLevel(cid) &gt;= <span style="color:#0000ff;">100</span> then</p>
<p>if item.uid == 33333 then</p>
<p>queststatus = getPlayerStorageValue(cid,<span style="color:#ff0000;">33333</span>)</p>
<p>if queststatus == -1 then</p>
<p>doTeleportThing(cid,pos)</p>
<p>doPlayerSendTextMessage(cid,22,"Parabens,Você completou a Moltres Quest.")</p>
<p>doPlayerAddItem(cid,<span style="color:#008000;">2145</span>,<span style="color:#ff8c00;">2</span>)</p>
<p>doPlayerAddItem(cid,<span style="color:#008000;">11449</span>,<span style="color:#ff8c00;">2</span>)</p>
<p>doPlayerAddItem(cid,<span style="color:#008000;">2160</span>,<span style="color:#ff8c00;">80</span>)</p>
<p>setPlayerStorageValue(cid,5963,1)</p>
<p>doTeleportThing(cid, pos)</p>
<p>doSendMagicEffect(getThingPos(cid), 29)</p>
<p>else</p>
<p>doPlayerSendTextMessage(cid,22,"Vazio.")</p>
<p>end</p>
<p>end</p>
<p>else</p>
<p>doPlayerSendCancel(cid,'Somente players level 100+ podem abrir este bau.')</p>
<p>end</p>
<p>return 1</p>
<p>end</p>
</div>
</div>
<p> </p>
<p>Editando </p>
<div class="ipsSpoiler" data-ipsspoiler="">
<div class="ipsSpoiler_header"><span></span></div>
<div class="ipsSpoiler_contents">
<p>Em <span style="color:#ff0000;">Vermelho </span>coloque um Unique ID que você não use.</p>
<p>Em <span style="color:#008000;">Verde </span>coloque o id dos prêmios que irá receber.</p>
<p>Em <span style="color:#ff8c00;">Laranja </span>coloque a quantidade do item que irá receber (cid,<span style="color:#008000;">2160</span>,<span style="color:#ff8c00;">80</span>) -- receberá 80 TD. Em <span style="color:#0000ff;">Azul </span>configure o level que abrirá a chest.</p>
<p>E em <span style="color:#ffd700;">Amarelo </span>coloque a posição que o player será teleportado ao abrir a chest.</p>
</div>
</div>
<p> </p>
<p>Tag em action.xml </p>
<div class="ipsSpoiler" data-ipsspoiler="">
<div class="ipsSpoiler_header"><span></span></div>
<div class="ipsSpoiler_contents"><p>  &lt;action uniqueid="<span style="color:#ff0000;">33333</span>" event="script" value="moltresquest.lua"/&gt;</p></div>
</div>
<p> </p>
<p>Editando a tag </p>
<div class="ipsSpoiler" data-ipsspoiler="">
<div class="ipsSpoiler_header"><span></span></div>
<div class="ipsSpoiler_contents"><p>Em <span style="color:#ff0000;">Vermelho </span>coloque o unique id que você colocou no script</p></div>
</div>
<p> </p>
<p>Por último pelo remere´s map editor , coloque uma chest no lugar desejado e em "properties" coloque no Unique ID número do unique que você colocou no script.</p>
<p>Bom se a área estiver errada podem mover porfavor. Obrigado pela compreensão</p>
<p>MaxxSila <img src="https://cdn.xtibia.com/emoticons/smile_2.png" alt=":D" /></p>
]]></description><guid isPermaLink="false">225404</guid><pubDate>Tue, 10 Dec 2013 20:18:31 +0000</pubDate></item><item><title>Adicionando Novos Monstros Em Seu Ot!</title><link>https://xtibia.com/forum/topic/101659-adicionando-novos-monstros-em-seu-ot/</link><description><![CDATA[
<p><strong><span style="font-size:24px;"><span style="color:#0000FF;">O</span></span></strong><strong>lá galera do  :XTibia_smile: , estou com este tutorial para iniciantes!</strong></p>
<p><strong> </strong></p>
<p><strong><span style="font-size:14px;"><span style="color:#FF0000;">Adicionando novos monstros em seu OT!</span></span></strong></p>
<p> </p>
<p><em>Isto é bastante simples, e muitas pessoas quando começa a mecher com OTserver's não sabe. (Eu não sabia  </em><img src="https://cdn.xtibia.com/emoticons/default_icon2.gif" alt="¬¬" /><em>)</em></p>
<p><em> </em></p>
<p><em>Vá na seção de Scripting - Npcs e Monsters!    (</em><a href="https://xtibia.com/forum/Npc-Monsters-f376.html" rel=""><em><span style="color:#4169E1;">CLIQUE AQUI</span></em></a><em>)</em></p>
<p><em> </em></p>
<p><em>Encontre um monstro que você goste ou crie um você mesmo!      (</em><a href="https://xtibia.com/forum/Saiba-Tudo-Sobre-Npc-monster-Spells-t27849.html" rel=""><em><span style="color:#4169E1;">CLIQUE AQUI E SAIBA TUDO SOBRE NPCS, MONSTER E SPELLS</span></em></a><em>)</em></p>
<p><em> </em></p>
<p><strong><span style="font-size:14px;"><span style="color:#FF0000;">Sim, você pegou ou criou um monstro...</span></span></strong></p>
<p> </p>
<p><em>Sim, você pegou ou criou um monstro...Só que na hora de sumona-lo deu um erro, e o monstro não apareceu!</em></p>
<p><em> </em></p>
<p><em>Simples, na pasta </em><em><strong>&lt;data/monster&gt;</strong></em><em> tem um arquivo </em><em><strong>monsters</strong></em><em>, e nele precisa ser adicionado o novo monstro de seu OT!</em></p>
<p><em>Para adiciona-lo adicione esta linha:</em></p>
<blockquote data-ipsquote="" class="ipsQuote" data-ipsquote-contentapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentid="101659" data-ipsquote-contentclass="forums_Topic"><div>
<em>&lt;monster name=</em><em><strong>"Amazon"</strong></em><em> file=</em><em><strong>"Amazon.xml"</strong></em><em> /&gt;</em>
</div></blockquote>
<p><em> </em></p>
<p><em>monster name=</em><em><strong>"Amazon"</strong></em><em>  (Basta colocar o nome do novo monstro!)</em></p>
<p>file=<strong>"Amazon.xml"</strong>  (Coloque o nome do arquivo XML, arquivo do monstro)</p>
<p> </p>
<p> </p>
<p><strong><span style="color:#00FF00;"><span style="font-size:14px;">Espero que gostem deste meu tutorial!</span></span></strong></p>
<p><strong><span style="color:#00FF00;"><span style="font-size:14px;">Comentem!!!</span></span></strong></p>
]]></description><guid isPermaLink="false">101659</guid><pubDate>Fri, 05 Dec 2008 04:44:29 +0000</pubDate></item><item><title>Arrumar XP - DXP</title><link>https://xtibia.com/forum/topic/242146-arrumar-xp-dxp/</link><description><![CDATA[
<p>	Eai galerous, vim dizer que, para alterar a EXP que está relativamente alta no server dxp, basta ir em creaturescript/player/pokedeath e procurar está função:</p>
<pre class="ipsCode prettyprint prettyprinted"><span class="pln">function playerAddExp</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> exp</span><span class="pun">)</span><span class="pln"></span><span class="kwd">if</span><span class="pln"> not isCreature</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">)</span><span class="pln"> then </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pln"> end	</span><span class="kwd">if</span><span class="pln"> isInPartyAndSharedExperience</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">)</span><span class="pln"> then		local partyPlayers </span><span class="pun">=</span><span class="pln"> getPartyMembers</span><span class="pun">(</span><span class="pln">getPlayerParty</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">))</span><span class="pln">		local partyExp </span><span class="pun">=</span><span class="pln"> math</span><span class="pun">.</span><span class="pln">ceil</span><span class="pun">(</span><span class="pln">exp </span><span class="pun">/</span><span class="pln"> </span><span class="com">#partyPlayers)</span><span class="pln">			  </span><span class="kwd">for</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="com">#partyPlayers do</span><span class="pln">				 </span><span class="kwd">if</span><span class="pln"> isPlayer</span><span class="pun">(</span><span class="pln">partyPlayers</span><span class="pun">[</span><span class="pln">i</span><span class="pun">])</span><span class="pln"> then				    doPlayerAddExp</span><span class="pun">(</span><span class="pln">partyPlayers</span><span class="pun">[</span><span class="pln">i</span><span class="pun">],</span><span class="pln"> partyExp </span><span class="pun">*</span><span class="pln"> </span><span class="lit">30</span><span class="pun">)</span><span class="pln">				    doSendAnimatedText</span><span class="pun">(</span><span class="pln">getThingPos</span><span class="pun">(</span><span class="pln">partyPlayers</span><span class="pun">[</span><span class="pln">i</span><span class="pun">]),</span><span class="pln"> partyExp </span><span class="pun">*</span><span class="pln"> </span><span class="lit">30</span><span class="pun">,</span><span class="pln"> </span><span class="lit">215</span><span class="pun">)</span><span class="pln">				 end			  end		</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">	end	doPlayerAddExp</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> exp </span><span class="pun">*</span><span class="pln"> </span><span class="lit">30</span><span class="pun">)</span><span class="pln">	doSendAnimatedText</span><span class="pun">(</span><span class="pln">getThingPos</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">),</span><span class="pln"> exp </span><span class="pun">*</span><span class="pln"> </span><span class="lit">30</span><span class="pun">,</span><span class="pln"> </span><span class="lit">215</span><span class="pun">)</span><span class="pln">end</span></pre>
<p>	Função arrumada para pegar apenas a XP que está configurada para cada pokémon.</p>
<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">function playerAddExp(cid, exp)if not isCreature(cid) then return true end	if isInPartyAndSharedExperience(cid) then		local partyPlayers = getPartyMembers(getPlayerParty(cid))		local partyExp = math.ceil(exp / #partyPlayers)			  for i = 1, #partyPlayers do				 if isPlayer(partyPlayers[i]) then				    doPlayerAddExp(partyPlayers[i], partyExp)				    doSendAnimatedText(getThingPos(partyPlayers[i]), partyExp, 215)				 end			  end		return true	end	doPlayerAddExp(cid, exp)	doSendAnimatedText(getThingPos(cid), exp, 215)end</span></pre>
<p>	 </p>
]]></description><guid isPermaLink="false">242146</guid><pubDate>Sun, 11 Sep 2016 22:15:18 +0000</pubDate></item><item><title>Exp Premium (DxP)</title><link>https://xtibia.com/forum/topic/243115-exp-premium-dxp/</link><description><![CDATA[
<p>	Alterando EXP da base DxP e colocando EXP Premium. Em creaturescripts\scripts\player\PokeDeath.lua procure a parte do código abaixo e substitua pela seguinte (não substituir todo o arquivo, apenas a function citada abaixo).</p>
<p>	 </p>
<div class="ipsSpoiler" data-ipsspoiler="">	<div class="ipsSpoiler_header">		<span>Spoiler</span>	</div>	<div class="ipsSpoiler_contents">		<p>			function playerAddExp(cid, exp)<br />			if not isCreature(cid) then return true end<br />			    if isInPartyAndSharedExperience(cid) then<br />			        local partyPlayers = getPartyMembers(getPlayerParty(cid))<br />			        local partyExp = math.ceil(exp / #partyPlayers)<br />			              for i = 1, #partyPlayers do<br />			                 if isPlayer(partyPlayers<em>) then</em><br /><em>                    doPlayerAddExp(partyPlayers</em><em><em>, partyExp * 10)</em></em><br /><em><em>                    doSendAnimatedText(getThingPos(partyPlayers</em></em><em><em><em>), partyExp * 10, 215)</em></em></em><br /><em><em><em>                 end</em></em></em><br /><em><em><em>              end</em></em></em><br /><em><em><em>        return true</em></em></em><br /><em><em><em>    end</em></em></em><br /><em><em><em>    if isPremium(cid) then</em></em></em><br /><em><em><em>        doPlayerAddExp(cid, exp * 20)  </em></em></em><span style="color:#FF0000;"><em><em><em>-- Multiplicador 20 da exp de jogadores PREMIUM</em></em></em></span><br /><em><em><em>        doSendAnimatedText(getThingPos(cid), exp * 20, 215) </em></em></em><span style="color:#FF0000;"><em><em><em> -- alterar este igualmente pois é o texto que aparece ao  ganhar xp</em></em></em></span><br /><em><em><em>    else</em></em></em><br /><em><em><em>        doPlayerAddExp(cid, exp * 10)  </em></em></em><span style="color:#FF0000;"><em><em><em>-- Multiplicador 10 da exp de jogadores FRE</em></em></em></span><em><em><em>E</em></em></em><br /><em><em><em>        doSendAnimatedText(getThingPos(cid), exp * 10, 215) </em></em></em><span style="color:#FF0000;"><em><em><em> -- alterar este igualmente pois é o texto que aparece ao  ganhar xp</em></em></em></span><br /><em><em><em>    end</em></em></em><br /><em><em><em>end </em></em></em>		</p>	</div>
</div>
<p>	<em><em><em>  </em></em></em></p>
]]></description><guid isPermaLink="false">243115</guid><pubDate>Sat, 24 Dec 2016 14:08:08 +0000</pubDate></item><item><title>Como upar arquivos, ex. Config.lua reconfigurado da minha m&#xE1;quina pelo fillezila para o host</title><link>https://xtibia.com/forum/topic/251400-como-upar-arquivos-ex-configlua-reconfigurado-da-minha-m%C3%A1quina-pelo-fillezila-para-o-host/</link><description><![CDATA[
<p>
	Pessoal, sou meio leigo no assunto, tenho um amigo trabalhando em um projeto de um ot, lido com a parte dos mapas, alguns scripts, tive ot a muito tempo atrás e hospedava o mesmo na minha própria casa, agora com host estamos com dúvidas no quesito de lidar com fillezila e fazer o upload de arquivos reconfigurados para o host...
</p>
]]></description><guid isPermaLink="false">251400</guid><pubDate>Mon, 13 Apr 2020 03:34:44 +0000</pubDate></item><item><title>Carpet System</title><link>https://xtibia.com/forum/topic/248146-carpet-system/</link><description><![CDATA[
<p style="background-color:#ffffff;color:#1d2129;font-size:14px;">
	Boa noite!
</p>

<p style="background-color:#ffffff;color:#1d2129;font-size:14px;">
	 
</p>

<p style="background-color:#ffffff;color:#1d2129;font-size:14px;">
	Trago para vocês um dos exemplares do <strong>Carpet System</strong> que eu usei para testes, apenas uma versão antiga da que eu já tenho atualmente.<br />
	LINK:<span> </span><strong><a href="https://hastebin.com/tilavepoxe.cs" rel="external nofollow">https://hastebin.com/tilavepoxe.cs</a></strong>
</p>

<p style="background-color:#ffffff;color:#1d2129;font-size:14px;">
	Não é este que eu uso, certamente não irei disponibilizar para usarem como suas criações, mas editei um simples para quem quiser usar. Está configurado a tag junto, logo à baixo do end no código, eu fiz um comentário sobre a <strong>tag</strong>. Bom uso.
</p>

<div style="background-color:#ffffff;color:#1d2129;font-size:14px;">
	<p>
		Na pasta <strong>datapack/actions/scripts/other</strong> crie um arquivo .lua chamado <strong>yucashcarpet.lua</strong> (Escolha o nome que quer).
	</p>

	<p>
		Volte para a <strong>datapack/actions</strong> e abra a <strong>actions.xml</strong> e cole à <strong>tag</strong> que está à baixo do código em que postei no hastebin<strong><span style="color:#2980b9;"> (</span><a href="https://hastebin.com/tilavepoxe.cs" rel="external nofollow">https://hastebin.com/tilavepoxe.cs</a><span style="color:#2980b9;">).</span></strong>
	</p>

	<div class="ipsSpoiler" data-ipsspoiler="">
		<div class="ipsSpoiler_header">
			<span>Spoiler</span>
		</div>

		<div class="ipsSpoiler_contents">
			<p>
				<code style="padding:0px;"> </code>
			</p>

			<p>
				<code style="padding:0px;"> -- Edited By Yucash Cifer --<br />
				 -- mantenha os créditos <span class="ipsEmoji">❤️</span> --<br />
				 -- NÃO É IDENTICO ao otpokémon. Ele apenas TRANSFORMA e VOLTA o item de acordo com a function. (onUse). É algo simples. Espero ter ajudado.<br />
				 -- FAÇA exatamente como está REGISTRADO neste código. Eu não me responsabilizo pelas suas edições futuras. xD</code>
			</p>

			<p>
				<code style="padding:0px;">local Carpetyucash = {<br />
				    -- carpet --<br />
				    [13156] = 13157, -- [ ] = id que está o item<br />
				    [13157] = 13156, -- id fora das caixas = id que ele vai virar<br />
				    -- mystical --<br />
				    [13033] = 13034,<br />
				    [13034] = 13033,<br />
				    -- outros carpet kk --<br />
				        [13021] = 13027,<br />
				        [13027] = 13021,<br />
				}</code>
			</p>

			<p>
				<code style="padding:0px;">function onUse(cid, item, fromPosition, itemEx, toPosition)<br />
				    if(not Carpetyucash[item.itemid]) then<br />
				        return true<br />
				    end</code>
			</p>

			<p>
				<code style="padding:0px;">    doTransformItem(item.uid, Carpetyucash[item.itemid])<br />
				    doDecayItem(item.uid)<br />
				    return true<br />
				end</code>
			</p>

			<p>
				<code style="padding:0px;">-- tags que eu usei e que não constam erros na distro nem na function --</code>
			</p>

			<p>
				<code style="padding:0px;">--     &lt;action fromid="13156" toid="13157" event="script" value="other/yucashcarpet.lua"/&gt;<br />
				--    &lt;action fromid="13033" toid="13034" event="script" value="other/yucashcarpet.lua"/&gt;<br />
				--    &lt;action fromid="13021" toid="13027" event="script" value="other/yucashcarpet.lua"/&gt;</code>
			</p>
		</div>
	</div>

	<pre style="border:0px;color:#839496;font-size:13px;padding:0px 360px 0px 0px;">
<code style="padding:0px;"><span>



-- tags que eu usei e que não constam erros na distro nem na function --

-- 	&lt;action fromid</span>=<span style="color:#2aa198;">"13156"</span> toid=<span style="color:#2aa198;">"13157"</span> <span style="color:#859900;">event</span>=<span style="color:#2aa198;">"script"</span> <span style="color:#859900;">value</span>=<span style="color:#2aa198;">"other/yucashcarpet.lua"</span>/&gt;
--	&lt;action fromid=<span style="color:#2aa198;">"13033"</span> toid=<span style="color:#2aa198;">"13034"</span> <span style="color:#859900;">event</span>=<span style="color:#2aa198;">"script"</span> <span style="color:#859900;">value</span>=<span style="color:#2aa198;">"other/yucashcarpet.lua"</span>/&gt;
--	&lt;action fromid=<span style="color:#2aa198;">"13021"</span> toid=<span style="color:#2aa198;">"13027"</span> <span style="color:#859900;">event</span>=<span style="color:#2aa198;">"script"</span> <span style="color:#859900;">value</span>=<span style="color:#2aa198;">"other/yucashcarpet.lua"</span>/&gt;</code></pre>

	<p>
		<span style="color:#2980b9;"><em><strong>Configuração: </strong></em></span><br /><strong><span style="color:#e74c3c;">[ID DO ITEM]</span> = <span style="color:#f1c40f;">ID QUE VAI VIRAR</span></strong><br /><strong><span style="color:#f1c40f;">[ID DO ITEM QUE VIROU]</span> = <span style="color:#e74c3c;">ID DO PRIMEIRO ITEM</span></strong>
	</p>

	<p>
		Exemplo:
	</p>

	<p>
		<strong><span style="color:#e74c3c;">[10000]</span> = <span style="color:#f1c40f;">10001</span></strong><br /><strong><span style="color:#f1c40f;">[10001]</span></strong> <strong>=</strong> <strong><span style="color:#e74c3c;">10000.</span></strong>
	</p>

	<p>
		<strong>Na tag</strong>, faça o mesmo, mas apenas com o primeiro ID, o ID DO ITEM (10000) no fromid e o do item que vai virar (10001) no toid, desta forma aqui:
	</p>

	<p>
		fromid="<span style="color:#e74c3c;"><strong>10000</strong></span>" toid="<span style="color:#f1c40f;"><strong>10001</strong></span>"
	</p>

	<p>
		Bom uso!!!
	</p>

	<p>
		<span style="color:#27ae60;"><strong>*** TAG ***</strong></span><br />
		&lt;action fromid="<strong><span style="color:#e74c3c;">10000</span></strong>" toid="<strong><span style="color:#f1c40f;">10001</span></strong>" event="script" value="<strong>other/yucashcarpet.lua</strong>"/&gt;
	</p>

	<p>
		 
	</p>

	<p>
		 
	</p>

	<p>
		<span><img alt=":D" data-emoticon="" src="https://cdn.xtibia.com/emoticons/smile_2.png" title=":D" /> <br />
		Créditos por fazer e trazer até ao fórum: YuCash (Eu).</span>
	</p>

	<p>
		<span>*Isto é apenas um doTransformItem, nada muito dificil e nem complicado de se fazer. ^.^</span><br />
		 
	</p>
</div>
]]></description><guid isPermaLink="false">248146</guid><pubDate>Tue, 04 Sep 2018 01:05:50 +0000</pubDate></item><item><title>[8.5X - 8.6X] Colocando Potions Infinitas (3 M&#xE9;todos)</title><link>https://xtibia.com/forum/topic/144262-85x-86x-colocando-potions-infinitas-3-m%C3%A9todos/</link><description><![CDATA[
<p></p>
<div style="text-align:left;">
<p><strong>Olá a todos, eu não achei nenhum tutorial nesta página de como colocar potions infinitas, então resolvi elaborar um:</strong></p>
<br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><ul><li>
<br /><strong> </strong><br /></li>
<li>
<strong><span style="text-decoration:underline;">Primeiro</span></strong><strong> Método:</strong><br /></li>
</ul><p><br /><br /><strong> </strong><br /><br /><strong>Na pasta do seu servidor, entrar na pasta "data", depois na pasta "actions" e por último na pasta "liquids"</strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><strong>"</strong><strong><span style="text-decoration:underline;">Pasta do Servidor/data/actions/liquids/</span></strong><strong>"</strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><strong>Procure pelo arquivo "potions.lua" e abra ele com algum editor. (bloco de notas, etc..)</strong><br /><br /><strong>(se não tiver esse arquivo veja o segundo método)</strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><strong>Depois de ter aberto o arquivo procure por essa linha:</strong><br /><br /><strong>(dica: Control + F)</strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /></p>
<pre class="ipsCode">[8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion </pre>
<div></div>
<p><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><strong>Copie o primeiro ID da linha (no caso 8704) e coloque-o no lugar do ID que se encontra depois de "empty = " (no caso 7636)</strong><br /><br /><strong>Ficará assim:</strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /></p>
<pre class="ipsCode">[8704] = {empty = 8704, splash = 2, health = {50, 100}}, -- small health potion </pre>
<div></div>
<p><br /><br /><strong> </strong><br /><br /><strong>Depois faça isso com todas as outras linhas de potions.</strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /></p>
<ul><li>
<br /><strong> </strong><br /></li>
<li>
<strong><span style="text-decoration:underline;">Segundo</span></strong><strong> Método:</strong><br /></li>
</ul><p><br /><br /><strong> </strong><br /><br /><strong>O início é o mesmo do primeiro método:</strong><br /><br /><strong> </strong><br /><br /><strong>Na pasta do seu servidor, entrar na pasta "data", depois na pasta "actions" e por último na pasta "liquids"</strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><strong>"</strong><strong><span style="text-decoration:underline;">Pasta do Servidor/data/actions/liquids/</span></strong><strong>"</strong><br /><br /><strong> </strong><br /><br /><strong>Abra o arquivo de uma potion (exemplo: great_mana), e você terá isso:</strong><br /><br /><strong> </strong><br /><br /></p>
<pre class="ipsCode">local MIN = 200
local MAX = 300
local EMPTY_POTION = 7635

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
if isPlayer(itemEx.uid) == FALSE then
	return FALSE
end

if hasCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE then
	doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
	return TRUE
end

if((not(isSorcerer(itemEx.uid) or isDruid(itemEx.uid)) or getPlayerLevel(itemEx.uid) &lt; 80) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then
	doCreatureSay(itemEx.uid, "Only sorcerers and druids of level 80 or above may drink this fluid.", TALKTYPE_ORANGE_1)
	return TRUE
end

if doPlayerAddMana(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then
	return FALSE
end

doAddCondition(cid, exhaust)
doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
doRemoveItem(item.uid, 1)
    doPlayerAddItem(cid, EMPTY_POTION, 1)
return TRUE
end
</pre>
<div></div>
<p><br /><br /><strong> </strong><br /><br /><strong>Remova essas 2 linhas:</strong><br /><br /><strong> </strong><br /><br /></p>
<div>
<br />	doRemoveItem(item.uid, 1)<br />     doPlayerAddItem(cid, EMPTY_POTION, 1)<br /></div>
<pre class="ipsCode"></pre>
<div></div>
<p><br /><br /><strong>(Se você não encontrar essas 2 linhas, veja o terceiro método, MAS NÃO FECHE O SCRIPT DA POTION!)</strong><br /><br /><strong> </strong><br /><br /><strong>Pronto, depois é só fazer isso com as outras potions!</strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /></p>
<ul><li>
<br /><strong> </strong><br /></li>
<li>
<strong><span style="text-decoration:underline;">Terceiro</span></strong><strong> Método:</strong><br /></li>
</ul><p><br /><br /><strong> </strong><br /><br /><strong>Bom, continuando, depois de ter aberto o script da potion, procure por essa parte:</strong><br /><br /><strong>(dica: Control + F)</strong><br /><br /><strong> </strong><br /><br /></p>
<div>
<br />        doTransformItem(item.uid,<br /></div>
<pre class="ipsCode"></pre>
<div></div>
<p><br /><br /><strong> </strong><br /><br /><strong>Essa mesma linha (</strong><strong><span style="text-decoration:underline;">completa</span></strong><strong>) da health_potion é assim:</strong><br /><br /><strong> </strong><br /><br /></p>
<div>
<br />        doTransformItem(item.uid, 7618)<br /></div>
<pre class="ipsCode"></pre>
<div></div>
<p><br /><br /><strong> </strong><br /><br /><strong>Retire essa linha, pronto, depois é só fazer o mesmo com as outras potions!</strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><strong><span style="color:#FF0000;">OBS:. No terceiro método usei como exemplo uma health_potion, então o "... 7618)" não terá nas outras potions!</span></strong><br /><br /><strong> </strong><br /><br /><strong> </strong><br /><br /><strong>Obrigado, e tomara que resolva o seu problema!</strong>  :positive:</p>
</div>
<p></p>
<p></p>
]]></description><guid isPermaLink="false">144262</guid><pubDate>Fri, 05 Nov 2010 14:18:39 +0000</pubDate></item><item><title>Exemplo de quest (Pokemon e Itens )</title><link>https://xtibia.com/forum/topic/247391-exemplo-de-quest-pokemon-e-itens/</link><description><![CDATA[
<p>
	<strong><span style="background-color:#ffffff;color:#1d2129;font-size:14px;">Fala pessoal Então tava sem nada pra fazer decidir ajudar um pouco quem ta começando</span></strong>
</p>

<p>
	 
</p>

<p style="background-color:#ffffff;color:#1d2129;font-size:14px;">
	<span style="color:#000000;"><strong>Trazendo Exemplo de quest (tanto item e pokemon)</strong></span>
</p>

<p style="background-color:#ffffff;color:#1d2129;font-size:14px;">
	 
</p>

<p style="background-color:#ffffff;color:#1d2129;font-size:14px;">
	<span style="color:#000000;"><strong>Então vamos lá</strong></span>
</p>

<p style="background-color:#ffffff;color:#1d2129;font-size:14px;">
	 
</p>

<p style="background-color:#ffffff;color:#1d2129;font-size:14px;">
	<span style="color:#000000;"><strong>Exempo de quest Que ganha Item</strong></span>
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="com">--[[

Script: Exemplo Quest Item
AUTOR: Brendo Hiesttfer
EMAIL: bndgraphics0@gmail.com
]]</span><span class="pln">

</span><span class="kwd">function</span><span class="pln"> onUse</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln">item</span><span class="pun">,</span><span class="pln">fropos</span><span class="pun">,</span><span class="pln">topos</span><span class="pun">)</span><span class="pln">

  storage </span><span class="pun">=</span><span class="pln"> </span><span class="lit">587954</span><span class="pln"> </span><span class="com">-- Storage da quest (troque quando for fezer outra quest)</span><span class="pln">
  item </span><span class="pun">=</span><span class="pln"> </span><span class="lit">9999</span><span class="pln">  </span><span class="com">-- id do Item</span><span class="pln">
  valor </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="com">-- quantidade de item que o player vai ganhar na quest</span><span class="pln">
  itemname </span><span class="pun">=</span><span class="pln"> </span><span class="str">"NomeItem"</span><span class="pln"> </span><span class="com">-- nome do Item que vai ser ganho na quest</span><span class="pln">
  level </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="com">--  Level minimo para completar a quest</span><span class="pln">


  </span><span class="kwd">if</span><span class="pln"> getPlayerStorageValue</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln">storage</span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="lit">-1</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> getPlayerLevel</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&gt;=</span><span class="pln"> level </span><span class="kwd">then</span><span class="pln">
      doPlayerAddItem</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln">item</span><span class="pun">,</span><span class="pln">Valor</span><span class="pun">)</span><span class="pln">
      doPlayerSendTextMessage</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="lit">25</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Parabéns você ganhou um "</span><span class="pun">..</span><span class="pln">itemname</span><span class="pun">..</span><span class="str">" como premio"</span><span class="pun">)</span><span class="pln"> </span><span class="com">-- Msg ao completar a quest</span><span class="pln">
      setPlayerStorageValue</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln">storage</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">else</span><span class="pln">
      doPlayerSendTextMessage</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">26</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Desculpe, mais você precisa ter no minimo level "</span><span class="pun">..</span><span class="pln">level</span><span class="pun">..</span><span class="str">" para completar a quest"</span><span class="pun">)</span><span class="pln"> </span><span class="com">--- Msg quando não tiver o level</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln">
  </span><span class="kwd">else</span><span class="pln">
    doPlayerSendTextMessage</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="lit">26</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Você já pegou oque estava dentro"</span><span class="pun">)</span><span class="pln"> </span><span class="com">-- Msg quando tentar fazer novamente</span><span class="pln">
  </span><span class="kwd">end</span><span class="pln">
  </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
</span><span class="kwd">end</span></pre>

<p>
	 
</p>

<p>
	<strong><span style="color:#000000;">EXEMPLO QUEST QUE GANHA POKEMON:</span></strong>
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="com">--[[

Script: Exemplo Quest Pokemon
AUTOR: Brendo Hiesttfer
EMAIL: bndgraphics0@gmail.com
]]</span><span class="pln">

</span><span class="kwd">function</span><span class="pln"> onUse</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln">item</span><span class="pun">,</span><span class="pln">fropos</span><span class="pun">,</span><span class="pln">topos</span><span class="pun">)</span><span class="pln">

  storage </span><span class="pun">=</span><span class="pln"> </span><span class="lit">587954</span><span class="pln"> </span><span class="com">-- Storage da quest (troque quando for fezer outra quest)</span><span class="pln">
  pokemon </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Pikachu"</span><span class="pln"> </span><span class="com">-- Pokemon Que o player vai ganhar</span><span class="pln">
  TypeBall </span><span class="pun">=</span><span class="pln"> </span><span class="str">"Normal"</span><span class="pln">  </span><span class="com">-- type da ball</span><span class="pln">
  level </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="com">-- Level que precisa para completar a quest</span><span class="pln">

  </span><span class="kwd">if</span><span class="pln"> getPlayerStorageValue</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln">storage</span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="lit">-1</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> getPlayerLevel</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&gt;=</span><span class="pln"> level </span><span class="kwd">then</span><span class="pln">

      addPokeToPlayer</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln">pokemon</span><span class="pun">,</span><span class="lit">0</span><span class="pln"> </span><span class="pun">,</span><span class="kwd">nil</span><span class="pln"> </span><span class="pun">,</span><span class="pln">TypeBall</span><span class="pun">)</span><span class="pln">
      doPlayerSendTextMessage</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="lit">25</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Parabéns você ganhou um "</span><span class="pun">..</span><span class="pln">pokemon</span><span class="pun">..</span><span class="str">" como premio! "</span><span class="pun">)</span><span class="pln"> </span><span class="com">-- Msg ao completar a quest</span><span class="pln">
      setPlayerStorageValue</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln">storage</span><span class="pun">,</span><span class="lit">1</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">else</span><span class="pln">
      doPlayerSendTextMessage</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">26</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Desculpe, mais você precisa ter no minimo level "</span><span class="pun">..</span><span class="pln">level</span><span class="pun">..</span><span class="str">" para completar a quest"</span><span class="pun">)</span><span class="pln"> </span><span class="com">--- Msg quando não tiver o level</span><span class="pln">
    </span><span class="kwd">end</span><span class="pln">
  </span><span class="kwd">else</span><span class="pln">
    doPlayerSendTextMessage</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="lit">26</span><span class="pun">,</span><span class="pln"> </span><span class="str">"Você já fez essa quest"</span><span class="pun">)</span><span class="pln"> </span><span class="com">-- Msg quando tentar fazer novamente</span><span class="pln">
  </span><span class="kwd">end</span><span class="pln">

  </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
</span><span class="kwd">end</span></pre>

<p>
	<strong><span style="color:#000000;">E isso coisa simples para quem está começando agora com poketibias , abraços <span class="ipsEmoji">♥</span></span></strong>
</p>
]]></description><guid isPermaLink="false">247391</guid><pubDate>Mon, 30 Apr 2018 15:47:57 +0000</pubDate></item><item><title>Sistema De Gema Espiritual Igual Do Foxworld</title><link>https://xtibia.com/forum/topic/179313-sistema-de-gema-espiritual-igual-do-foxworld/</link><description><![CDATA[
<p><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;">Bom resolvi fazer este tutorial por que eu procurava muito ate que baixei um ot e nele contia a sistema inteiro bom ele e comprido então vamos começar!</span></span></p>
<p> </p>
<p><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;">Vá na pasta do seu ot entre em </span></span><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;"><strong>data/lib</strong></span></span><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;"> copie e cole qualquer arquivo .lua e renomeie ele para </span></span></p>
<p><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;"><strong>gems.lua</strong></span></span></p>
<p> </p>
<p><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;">dentro adicione isto:</span></span></p>
<p> </p>
<pre class="ipsCode">function onUse(cid, item, fromPosition, itemEx, toPosition)
 gem = gems.id[getPlayerVocation(cid)]
 if item.itemid == gem then
doUseGem(cid, item, getPlayerVocation(cid))
 end
 return TRUE
end</pre>
<div></div>
<p> </p>
<p><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;">ainda na pasta lib copie e cole outro arquivo .lua e renomeie para </span></span><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;"><strong>pivi.lua</strong></span></span></p>
<p> </p>
<p><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;">dentro adicione isto:</span></span></p>
<pre class="ipsCode">function doUseGem(cid, item)
local voc = getPlayerVocation(cid)
 local interval = gems.interval[voc]
if item.itemid ~= gems.id[voc] or getPlayerStorageValue(cid, gems.storage[voc]) &gt; 0 then
return FALSE
 end
 setPlayerStorageValue(cid, gems.storage[voc], 1)
 sendGemEffect(cid, gems.storage[voc], gems.interval[voc])
 doRemoveItem(item.uid, 1)
 return TRUE
end

function sendGemEffect(cid, storage, interval)
local pos = getThingPos(cid)
local voc = getPlayerVocation(cid)
local color = 1
if voc == 1 then
 color = gemMsg.colorDruid[math.random(1,#gemMsg.colorElderDruid)]
elseif voc == 2 then
 color = gemMsg.colorSorcerer[math.random(1,#gemMsg.colorMasterSorcerer)]
elseif voc == 3 then
 color = gemMsg.colorPaladin[math.random(1,#gemMsg.colorRoyalPaladin)]
elseif voc == 4 then
 color = gemMsg.colorKnight[math.random(1,#gemMsg.colorEliteKnight)]
end
doSendAnimatedText(pos, gemMsg.rnd[math.random(1,#gemMsg.rnd)], color)
 if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) &gt;= 1 then
addEvent(sendGemEffect, interval, cid, storage, interval)
 end
end
function doRemoveGemEffect(cid)
 if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) &lt; 1 then
return FALSE
 end
 setPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)], 0)
 return TRUE
end
function doRemoveAllGemEffect(cid)
 for i = 1, table.maxn(gms.storage) do
setPlayerStorageValue(cid, gems.storage[i], 0)
 end
 return TRUE
function isGemActivated(cid)
if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) &gt; 0 then
 return TRUE
 end
 return FALSE
end
</pre>
<div></div>
<p><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;">Ainda em lib copie otro arquivo cole e renomeie ele para </span></span><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;"><strong>pivi_const.lua</strong></span></span></p>
<p> </p>
<p><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;">detro adicione isto:</span></span></p>
<pre class="ipsCode">gems = {
id = {2156, 2155, 2158, 2154, 2156, 2155, 2158, 2154},
storage = {5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008},
interval = {750, 750, 750, 750, 750, 750, 750, 750}, -- Intervalo dos efeitos
}
gemMsg = {
rnd = {"´ .	,", ".	´ ,", "`  .  ,", ",	` ."},
colorDruid = {180,180},
colorSorcerer = {30,215},
colorPaladin = {251,10},
colorKnight = {204,212},
colorElderDruid = {180,180},
colorMasterSorcerer = {30,215},
colorRoyalPaladin = {251,10},
colorEliteKnight = {204,212}
}
</pre>
<div></div>
<p> </p>
<p><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;">pronto agora vamos na pasta </span></span><span style="font-size:14px;"><span style="font-family:arial, helvetica, sans-serif;"><strong>data/actions/scripte</strong></span></span></p>
<p><span style="font-family:arial, helvetica, sans-serif;">copie e cole qualquer arquivo.lua e renomeie ele para</span><span style="font-family:arial, helvetica, sans-serif;"><span style="font-size:18px;"><strong> gems.lua</strong></span></span></p>
<p> </p>
<p>adicione isto dentro:</p>
<p></p>
<pre class="ipsCode">local config =
{
minLevel = 200, -- Level mínimo para adquirir a gema.
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerLevel(cid) &gt;= config.minLevel then
 gem = gems.id[getPlayerVocation(cid)]
 if item.itemid == gem then
doUseGem(cid, item, getPlayerVocation(cid))
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você adquiriu uma gema espíritual.")
  doSendMagicEffect(getCreaturePosition(cid), 65)
 end
else
  doPlayerSendCancel(cid, "Voc\ê precisa ser level "..config.minLevel.." para adquirir a gema esp\íritual.")
 end
 return TRUE
end</pre>
<div></div>
<p></p>
<p> </p>
<p>feito isto va no seu actions.xml e adicione os seguintes tags :</p>
<p></p>
<pre class="ipsCode"> &lt;action itemid="2156" script="gems.lua" /&gt;
	&lt;action itemid="2155" script="gems.lua" /&gt;
	&lt;action itemid="2154" script="gems.lua" /&gt;
	&lt;action itemid="2158" script="gems.lua" /&gt;</pre>
<div></div>
<p></p>
<p> </p>
<p>feche e salve. Agora vamos na pasta <strong>data</strong><strong>\creaturescripts\scripts</strong></p>
<p>copie e cole qualquer arquivo lua renomeie para <strong>logingema.lua</strong> dentro adicione isto:</p>
<p></p>
<pre class="ipsCode">function onLogin(cid)
setPlayerStorageValue(cid, 47112120, 2)
local voc = getPlayerVocation(cid)
if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) &gt; 0 then
sendGemEffect(cid, gems.storage[voc], gems.interval[voc])
end
return TRUE
end
</pre>
<div></div>
<p></p>
<p> </p>
<p>feito isto abra o creaturescripts.xml e adicione este tag:</p>
<p></p>
<pre class="ipsCode">
&lt;event value="logingema.lua" event="script" name="gema" type="login"/&gt;</pre>
<div></div>
<p></p>
<p> </p>
<p>agora na ultima parte va na pasta <strong>data/talkactions/scripts</strong> copie e cole qualquer arquivo lua e renomeie para <strong>gemasorc.lua</strong></p>
<p> </p>
<p>dentro adicione isto:</p>
<p></p>
<pre class="ipsCode">function onSay(cid, words, param)
if(words == "!buygemasorcerer") then
if(doPlayerRemoveMoney(cid, 1000000) == TRUE) then
doPlayerAddItem(cid,2156,1)
doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED)
else
doPlayerSendCancel(cid, "Você não tem o dinheiro suficiente.")
return TRUE
end

elseif(words == "!sellaol") then
if doPlayerRemoveItem(cid,2173,1) == TRUE then
doPlayerAddMoney(cid, 10000)
doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED)
else
doPlayerSendCancel(cid, "Você não tem o Amulet of Loss(AoL)")
end
end
return TRUE
end</pre>
<div></div>
<p></p>
<p> </p>
<p>ainda em scripts copie e cole otro arquivo.lua e renomeie para <strong>gemapally.lua</strong></p>
<p> </p>
<p>dentro adicione isto:</p>
<p></p>
<pre class="ipsCode">function onSay(cid, words, param)
if(words == "!buygemapally") then
if(doPlayerRemoveMoney(cid, 1000000) == TRUE) then
doPlayerAddItem(cid,2158,1)
doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED)
else
doPlayerSendCancel(cid, "Você não tem o dinheiro suficiente.")
return TRUE
end

elseif(words == "!sellaol") then
if doPlayerRemoveItem(cid,2173,1) == TRUE then
doPlayerAddMoney(cid, 10000)
doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED)
else
doPlayerSendCancel(cid, "Você não tem o Amulet of Loss(AoL)")
end
end
return TRUE
end</pre>
<div></div>
<p></p>
<p> </p>
<p>copie e cole qualquer arquivo.lua e renomeie para <strong>gemakina.lua</strong></p>
<p> </p>
<p>dentro adicione isto:</p>
<p></p>
<pre class="ipsCode">function onSay(cid, words, param)
if(words == "!buygemakina") then
if(doPlayerRemoveMoney(cid, 1000000) == TRUE) then
doPlayerAddItem(cid,2154,1)
doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED)
else
doPlayerSendCancel(cid, "Você não tem o dinheiro suficiente.")
return TRUE
end

elseif(words == "!sellaol") then
if doPlayerRemoveItem(cid,2173,1) == TRUE then
doPlayerAddMoney(cid, 10000)
doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED)
else
doPlayerSendCancel(cid, "Você não tem o Amulet of Loss(AoL)")
end
end
return TRUE
end</pre>
<div></div>
<p></p>
<p> </p>
<p>ainda em scripts copie e cole qualquer arquivo.lua e renomeie para <strong>gemadruid.lua</strong></p>
<p> </p>
<p>dentro adicione isto:</p>
<p></p>
<pre class="ipsCode">function onSay(cid, words, param)
if(words == "!buygemadruid") then
if(doPlayerRemoveMoney(cid, 1000000) == TRUE) then
doPlayerAddItem(cid,2155,1)
doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED)
else
doPlayerSendCancel(cid, "Você não tem o dinheiro suficiente.")
return TRUE
end

elseif(words == "!sellaol") then
if doPlayerRemoveItem(cid,2173,1) == TRUE then
doPlayerAddMoney(cid, 10000)
doSendMagicEffect(getCreaturePosition(cid),tmp, CONST_ME_MAGIC_RED)
else
doPlayerSendCancel(cid, "Você não tem o Amulet of Loss(AoL)")
end
end
return TRUE
end</pre>
<div></div>
<p></p>
<p> </p>
<p>agora para finalizar va no se<strong> talkactions.xml </strong>e adicione estas tags:</p>
<p></p>
<pre class="ipsCode">		&lt;talkaction words="!buygemasorcerer" script="gemasorc.lua"/&gt;
	&lt;talkaction words="!buygemapally" script="gemapally.lua"/&gt;
	&lt;talkaction words="!buygemadruid" script="gemadruid.lua"/&gt;
	&lt;talkaction words="!buygemakina" script="gemakina.lua"/&gt;</pre>
<div></div>
<p></p>
<p> </p>
<p>e pronto e so vc ter 1kk ser level 200 e falar !buygema e sua vocaçao</p>
<p>e voce ganhara uma gema ai e so clicar com o botao direito e vc vai começar a brilhar</p>
<p> </p>
<p>é isso pessoal caso ajudei rep+  se tiverem duvidas postem aqui que eu ajudo</p>
<p> </p>
<p> </p>
<p><span style="text-decoration:underline;"><strong><span style="color:#00ff00;">Editado e pronto para usar vlw por reportarem ^^</span></strong></span></p>
]]></description><guid isPermaLink="false">179313</guid><pubDate>Fri, 27 Jan 2012 23:14:03 +0000</pubDate></item><item><title>Security House [OtPokemon]</title><link>https://xtibia.com/forum/topic/249854-security-house-otpokemon/</link><description><![CDATA[
<p style="text-align:center;">
	<span style="background-color:#ffffff;color:#c0392b;font-size:16.8px;text-align:center;"><span style="font-size:26px;"><strong>Security House</strong></span></span>
</p>

<p style="text-align:center;">
	<span style="background-color:#ffffff;color:#000000;font-size:18px;text-align:center;">Fala galera do Xtibia, como minha primeira de muitas contribuições, hoje venho trazer para vocês um sistema bem bacana visto no otPokemon.</span>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<img alt="" class="ipsImage ipsImage_thumbnailed" data-fileid="o_1dd4jnstj9h94tv1n6p1tqk1bub" src="" /><img alt="TwyIHBJ.png" data-ratio="5.87" width="750" src="https://i.imgur.com/TwyIHBJ.png" /></p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<strong style="background-color:#ffffff;color:#000000;font-size:18px;text-align:center;"><span style="color:#000066;">Como funciona?</span></strong>
</p>

<p style="text-align:center;">
	<span style="background-color:#ffffff;color:#000000;font-size:18px;text-align:center;">Basicamente o script não deixa que outras pessoas invitado nas houses pegue seus itens, </span>
</p>

<p style="text-align:center;">
	<span style="background-color:#ffffff;color:#000000;font-size:18px;text-align:center;">somente o dono ou alguém invitado com aleta som pode pegar os itens da house.</span>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<img alt="TwyIHBJ.png" data-ratio="5.87" width="750" src="https://i.imgur.com/TwyIHBJ.png" /></p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<strong style="background-color:#ffffff;color:#000000;font-size:18px;text-align:center;"><span style="color:#000066;">Script:</span></strong><br /><span style="background-color:#ffffff;color:#000000;font-size:18px;text-align:center;">Coloque na posta do seu servidor em <strong><u>data/creaturescript/</u></strong> e coloque o nome <strong><u>securityHouse.lua</u></strong></span>
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<pre class="ipsCode prettyprint lang-lua prettyprinted">

<span class="kwd">function</span><span class="pln"> onMoveItem</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> item</span><span class="pun">,</span><span class="pln"> count</span><span class="pun">,</span><span class="pln"> toContainer</span><span class="pun">,</span><span class="pln"> fromContainer</span><span class="pun">,</span><span class="pln"> fromPos</span><span class="pun">,</span><span class="pln"> toPos</span><span class="pun">)</span><span class="pln">

	</span><span class="kwd">if</span><span class="pln">  toPos</span><span class="pun">.</span><span class="pln">x </span><span class="pun">==</span><span class="pln"> CONTAINER_POSITION  </span><span class="kwd">then</span><span class="pln">
		</span><span class="kwd">if</span><span class="pln">  getTileInfo</span><span class="pun">(</span><span class="pln">getCreaturePosition</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">)).</span><span class="pln">house </span><span class="kwd">then</span><span class="pln">
			</span><span class="kwd">local</span><span class="pln"> houseId </span><span class="pun">=</span><span class="pln"> getHouseFromPos</span><span class="pun">(</span><span class="pln">fromPos</span><span class="pun">)</span><span class="pln">
			</span><span class="kwd">local</span><span class="pln"> cidHouse </span><span class="pun">=</span><span class="pln"> getHouseByPlayerGUID</span><span class="pun">(</span><span class="pln">getPlayerGUID</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">))</span><span class="pln">
			</span><span class="kwd">local</span><span class="pln"> listInvite </span><span class="pun">=</span><span class="pln"> getHouseAccessList</span><span class="pun">(</span><span class="pln">houseId</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0x101</span><span class="pun">):</span><span class="pln">explode</span><span class="pun">(</span><span class="str">'\n'</span><span class="pun">)</span><span class="pln">
			</span><span class="kwd">if</span><span class="pln">  houseId </span><span class="pun">==</span><span class="pln"> cidHouse  </span><span class="kwd">or</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> </span><span class="pun">#</span><span class="pln">listInvite </span><span class="pun">&gt;</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="kwd">and</span><span class="pln"> table</span><span class="pun">.</span><span class="pln">find</span><span class="pun">(</span><span class="pln">listInvite</span><span class="pun">,</span><span class="pln"> getCreatureName</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">))</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="kwd">then</span><span class="pln">
				</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
			</span><span class="kwd">end</span><span class="pln">
			doPlayerSendCancel</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="str">'You are not the owner of this house.'</span><span class="pun">)</span><span class="pln">
			</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">false</span><span class="pln">
		</span><span class="kwd">end</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
	</span><span class="kwd">end</span><span class="pln">
	
	</span><span class="kwd">if</span><span class="pln"> </span><span class="kwd">not</span><span class="pln"> getTileInfo</span><span class="pun">(</span><span class="pln">toPos</span><span class="pun">).</span><span class="pln">house  </span><span class="kwd">and</span><span class="pln">  getTileInfo</span><span class="pun">(</span><span class="pln">getCreaturePosition</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">)).</span><span class="pln">house  </span><span class="kwd">then</span><span class="pln">
		doPlayerSendCancel</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="str">'You can not drag the item out of the house.'</span><span class="pun">)</span><span class="pln">
		</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">false</span><span class="pln">
	</span><span class="kwd">end</span><span class="pln">
	</span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
</span><span class="kwd">end</span></pre>

		<p>
			 
		</p>
	</div>
</div>

<p>
	 
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<span style="background-color:#ffffff;color:#000000;font-size:18px;text-align:center;">Coloque a seguinte tag no arquivo do <u><strong>creaturescripts.xml</strong></u>:</span>
</p>

<pre class="ipsCode prettyprint lang-xml prettyprinted">
<span class="tag">&lt;event</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"moveitem"</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"securityHouse"</span><span class="pln"> </span><span class="atn">event</span><span class="pun">=</span><span class="atv">"script"</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"player/securityHouse.lua"</span><span class="tag">/&gt;</span></pre>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<font color="#000000"><span style="font-size:18px;">Registre o evento no arquivo <u><strong>onLogin.lua</strong></u> onde se encontra na mesma pasta:</span></font>
</p>

<pre class="ipsCode prettyprint lang-lua prettyprinted">
<span class="pln">registerCreatureEvent</span><span class="pun">(</span><span class="pln">cid</span><span class="pun">,</span><span class="pln"> </span><span class="str">"securityHouse"</span><span class="pun">)</span></pre>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<img alt="TwyIHBJ.png" data-ratio="5.87" width="750" src="https://i.imgur.com/TwyIHBJ.png" /></p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<font color="#000000"><span style="font-size:18px;">É só isso mesmo, espero que a comunidade goste, pois estarei trazendo muito mais scripts.</span></font>
</p>

<p style="text-align:center;">
	 
</p>

<p style="text-align:center;">
	<strong style="background-color:#ffffff;color:#000000;font-size:18px;text-align:center;"><span style="color:#000066;">Observações:</span></strong>
</p>

<p style="text-align:center;">
	<font color="#000000"><span style="font-size:18px;">Caso haja algum erro na execução do script ou você esteja tendo problemas, só darei suporte aqueles que deixaram seu </span></font><span style="color:#c0392b;"><span style="font-size:18px;"><strong>rep+</strong></span></span>
</p>
]]></description><guid isPermaLink="false">249854</guid><pubDate>Wed, 12 Jun 2019 01:18:31 +0000</pubDate></item></channel></rss>
