Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Warp System[1.0]

Olá a todos do TibiaKing!

Já estou a um tempo devendo mais um sisteminha para vocês e aqui está ele. Simples, eficaz e completamente editavel.

Utilidade

Esse sistema de Warp significa ao jogador poder teleportar para várias posições, já armazenadas no mapa, quando estiver em uma dessas posições.

Mapa

teleportplace.jpg

Estive imaginando como fazer essa posição no mapa e tive a ideia de deixa-la assim.. Porém vocês decidem, isso é só um exemplo.

Warp Helper

helperg.jpg

Quando o player utiliza o comando "!warp help" ou "!warp helper".

Warp Locations

locationsandvalues.jpg

Quando o player utiliza o comando "!warp pos" ou "!warp locations".

Informações Extras

  • Como você pode notar, quando o player utiliza o Warp Helper, aparece várias configurações extras. Por exemplo: premmium account, promotion, quest... Essas configurações você poderá editar no script para o jeito que desejar.

  • Do mesmo jeito que vocês poderam editar essas configurações, tambem poderam adicionar novos warps para a lista, com seu relativo valor.

Código

warpSystem.xml

<?xml version="1.0" encoding="UTF-8"?>

<mod name="Warp System" version="1.0" author="Aluccard" contact="" enabled="yes">

	<config name="warp_config"><![CDATA[

		configs = {


			needPremmy = "true",

			needPromotion = "false",

			needQuest = "false",

			withBattle = "false",


			questStorage = 22222,


			warpTotal = 3,

			warpNames = {"Carlin","Edron","Venore"}

			}


		POS = {

			[1] = {x=32345,y=32228,z=7},

			[2] = {x=32346,y=32228,z=7},

			[3] = {x=32347,y=32228,z=7}

			}


		VALUES = {150,200,350}

	]]></config>


	<talkaction words="!warp" event="buffer"><![CDATA[

		domodlib('warp_config')


local t = string.explode(param, " ")



	if (t[1] == "help") or (t[1] == "helper") then

		return doPlayerPopupFYI(cid, "Helper \n\nNeed premmy: ".. configs.needPremmy .."\nNeed promotion: ".. configs.needPromotion .."\nNeed quest: ".. configs.needQuest .."\nTeleport with battle: ".. configs.withBattle .."\n\nTo teleport say \"to POS\".\nExample: \"to ".. configs.warpNames[1] .."\".\nTo see all warps say: \"!warp pos\".")

	end


	if (configs.withBattle == "false") and (getCreatureCondition(cid, CONDITION_INFIGHT) == true) then

		return doPlayerSendCancel(cid, "You are with battle.")

	end		


	if (configs.needPremmy == "true") and (not isPremium(cid)) then

		return doPlayerSendCancel(cid, "You need to be premmium account.")	

	end


	if (configs.needPromotion == "true") and (getPlayerVocation(cid) < 5) then

		return doPlayerSendCancel(cid, "You need to get promotion.")		

	end


	if (configs.needQuest == "true") and (getPlayerStorageValue(cid, configs.questStorage) < 1) then

		return doPlayerSendCancel(cid, "You need to complete the quest.")

	end


	if ( t[1] == nill) then

		return doPlayerSendCancel(cid, "You need to put one parameter.")

	end


	if (t[1] == "locations") or (t[1] == "pos") then

	local locations = ""

		for i = 1, configs.warpTotal do

		locations = "".. locations .."\n".. i ..": ".. configs.warpNames[i] .." - Value: ".. VALUES[i] ..""

		end

		return doPlayerPopupFYI(cid, "Locations \n".. locations ..".")

	end



local teleportNumber = 0


	if (t[1] == "to") and (t[2] ~= nill) then

		for i = 1, configs.warpTotal do

			if (string.lower(t[2]) == string.lower(configs.warpNames[i])) then

				teleportNumber = i

			end

		end


		if (teleportNumber == 0) then

			return doPlayerSendCancel(cid, "This location doesnt exist!")

		end


	for i = 1, configs.warpTotal do

	local position = POS[i]

   	 if (getPlayerPosition(cid).x == position.x) and (getPlayerPosition(cid).y == position.y) and (getPlayerPosition(cid).z == position.z) then

		if doPlayerRemoveMoney(cid, VALUES[i]) then

			doTeleportThing(cid, POS[teleportNumber])

			doSendMagicEffect(getPlayerPosition(cid),10)

			return true

		else

			return doPlayerSendCancel(cid, "You dont have this money.")

		end

   	 end

	end


	return doPlayerSendCancel(cid, "You need to stay in warp position.")


	end	


	return doPlayerSendCancel(cid, "Wrong parameters...")


	]]></talkaction>

</mod>

Configs

needPremmy = "true", -- true = precisa / false = não precisa

needPromotion = "false", -- true = precisa / false = não precisa

needQuest = "false", -- true = precisa / false = não precisa

withBattle = "false", -- true = pode teleportar com battle.

Obs¹: Se necessitas que um player tenha feito alguma quest para utilizar o sistema, basta colocar em needQuest ( true ) e em questStorage o valor do storage da quest desejada.

Adicionando Warps

No próprio code você encontrará as seguintes variaveis:

  1. warpTotals;
  2. warpNames;
  3. POS;
  4. VALUES;

Para adicionar novas warps, precisamos somente altera-los... No código temos para três warps, adicionando mais uma:

warpTotal = 4, -- 3+1

warpNames = {"Carlin","Edron","Venore","Thais"} -- Thais é o novo warp

}

POS = {

[1] = {x=32345,y=32228,z=7},

[2] = {x=32346,y=32228,z=7},

[3] = {x=32347,y=32228,z=7},

[4] = {x=32348,y=32228,z=7} -- nova posição, para Thais

}

VALUES = {150,200,350,400} -- novo valor para Thais

Conclusões

Esse é um script fácil de se manipular, porém pode haver alguns erros que não foi percebidos ainda, por isso está na versão [1.0], pois já foi corrigido vários erros e assim modificado. A versão inicial foi [0.1] e pretendo altera-lo sempre que possivel. Deixando cada vez mais perfeito o sistema.

Obs²: Qualquer dúvida é só postar no tópico ou enviar uma mp.

Espero que tenham gostado,

Aproveitem!

Atenciosamente,

Aluccard.

Editado por Aluccard (veja o histórico de edições)

The life is hard: No projects for a while.

 

adfly.350x19.1.png

  • Respostas 5
  • Visualizações 2.6k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

Aluccard, este script até me impressionou!

É o melhor deste tema de "warp, go, teletransportar..." muito bom mesmo, Reputado!

@Aluccard

Você joga Zezenia?

Editado por Doughell (veja o histórico de edições)

E-mail para contato: [email protected]

Quer ter um fórum mais organizado? Cumpra as regras!

EU VOLTEI GAROTAS!

31/12/2011

Atenciosamente,

Guilherme Salviati.

Postado
  • Autor

@Aluccard

Você joga Zezenia?

Olá Doughell!

  • Sim, já joguei sim, mas parei porque ficou meio monótomo.

Olá lordbug!

  • Sobre a pasta, como o próprio titulo do tópico diz, "MODS"... o XML é para ser colocado na pasta MODs.

Grato,

Aluccard.

The life is hard: No projects for a while.

 

adfly.350x19.1.png

  • 3 weeks later...
Postado

Mas e se o cara estiver em X quest e usar o comando, se estiver envolvido em algum "evento" ele pode acabar bugando o servidor ou pelo menos a quest.

We are anonymous.

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo