Ir para conteúdo

[Action]-[Talkaction] Fly System


DevilMoon

Posts Recomendados

Ola Eks Tibianos, Vim postar um Script de Fly System dando Use em Um Item!!!

Voce esta se Perguntando!! Nummm Item????

Isso Mesmo!!

 

Talkaction Explicaçao:

 

/flyup = Verifica se tem o Piso itemid= 260 que é o Tile Invisivel e ve se nao tem nada acima para voce subir!!

 

/flydown = Verifica se tem tem algo que voce nao pode descer como arvores paredes e etc....

 

-------------

 

Action Explicaçao: Voce da Use no Item e Sobe a Cima no Tile! ou Descee!!

 

vá em Data>Actions>Scripts crie uma pasta.lua chamada actionfly e coloque isso:

 

local t =   {
[150] = {outfit='dragon', text='Fly, dragon!', dtext='Go down, dragon!'} -- Falas
}       
local thisCondition = createConditionObject(CONDITION_OUTFIT)
setConditionParam(thisCondition, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(thisCondition, {lookType = 32, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0}) -- Outfit
function onUse(cid, item, fromPosition, itemEx, toPosition)
local v, r, s = getCreaturePosition(cid), t[item.itemid], 100
local pos = {x = v.x, y = v.y, z = 6} ----- Onde ele Precisa para dar Down -- Pode Modificar do 0 ao 7
local posd = {x = v.x, y = v.y, z = 7} ---- Onde ele Precisa para Dar Up -- Pode Modificar do 7 ao 0
if r then
	if v.z == 7 then
		if getTileItemById(pos, 460).uid > 0 then -- id do tile
			if doTeleportThing(cid, pos, false) then
				doSendMagicEffect(pos, 10) -- efeito
				doCreatureSay(cid, r.text, 19)
				return doAddCondition(cid, thisCondition)
			else
				return doPlayerSendCancel(cid, 'You can\'t fly here.')
			end    
		else
			return doPlayerSendCancel(cid, 'You can\'t fly here.')
		end
	elseif v.z == 6 then
		if doTeleportThing(cid, posd, false) then
			doSendMagicEffect(posd, 10) -- efeito
			doCreatureSay(cid, r.dtext, 19)
			return doRemoveCondition(cid, CONDITION_OUTFIT)
		else
			return doPlayerSendCancel(cid, 'You can\'t land here.')
		end
	else
		return doPlayerSendCancel(cid, 'You can\'t fly here.')
	end
else
	return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'There has been some error, try contacting a staff member.')
end
end

 

Ok Acabamos... Uffa agora vamos ao Action.xml Adicione Isso:

 

<action itemid="SEU ITEM" event="script" value="actionfly.lua"/>

 

Ok Agora vamos em Talkaction...

 

Vá em Data>Talkactions>Scripts crie uma pasta.lua chamada flyinfo e Adicione isso:

 

local s = {
{100}
}

local water = {4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4664,4665,4666,5757,5756,5755,5759,5760,5758,5761}
function onSay(cid,words,param)
for _,i in ipairs(s) do
	local r = i[1]
	local v = getThingPos(cid)
	local up,down = {x=v.x,y=v.y,z=v.z-1},{x=v.x,y=v.y,z=v.z+1}
	if words == '/flyup' then
		if getPlayerStorageValue(cid,r) > 0 then
			if getTileItemById(up,460).uid > 0 then
				doPlayerSendTextMessage(cid,20,'[Flying] You have flown up.')
				doSendMagicEffect(up,10)
				doCreatureSay(cid,'Up!',19)
				doTeleportThing(cid,up)
				return doSendMagicEffect(up,10)
			else
				doPlayerSendTextMessage(cid,20,'[Flying] You can\'t fly here.')
			end
		else
			doPlayerSendTextMessage(cid,20,'[Flying] You aren\'t mounted.')
		return true
		end
	elseif words == '/flydown' then
		if getPlayerStorageValue(cid,r) > 0 then
			if v.z >= 7 == false then
				if getHouseFromPos(down) == false then
					if(getTileItemById(down,(isInArray(water,itemid)),false).uid) then
						if getTileItemById(v,460).uid > 0 then
							doPlayerSendTextMessage(cid,20,'[Flying] You have flown down.')
							doSendMagicEffect(down,10)
							doCreatureSay(cid,'Down!',19)
							doTeleportThing(cid,down)
							return doSendMagicEffect(down,10)
						else
							doPlayerSendTextMessage(cid,20,'[Flying] You can\'t fly into ground.')
						end
					else
						doPlayerSendTextMessage(cid,20,'[Flying] You can\'t fly on water.')
					end
				else
					doPlayerSendTextMessage(cid,20,'[Flying] This is a house!')
				end
			else
				doPlayerSendTextMessage(cid,20,'[Flying] You can\'t fly into ground.')
			end
		else
			doPlayerSendTextMessage(cid,20,'[Flying] You aren\'t mounted!')
		return true
	end
end
return true
end
end

 

Ufa, Agora vamos a Data>Talkactions.xml e Adicione Isso!!

 

<talkaction words="/flyup;/flydown" event="script" value="flyinfo.lua"/>

 

Creditos:

 

Google Tradutor

unknown666

 

Gostou do Script? Rep+ :p

 

Duvidas, Elogios neste Topico!!

 

Abraços..

Link para o comentário
Compartilhar em outros sites

Cara você testou o script onUse?

Que eu saiba não funciona funções condition em scripts onUse... Posso estar enganado. =)

 

Tem um script semelhante a essa aqui no XTibia, mas o seu script ficou ótimo, parabéns! (;

Editado por Doidin
Link para o comentário
Compartilhar em outros sites

Nao eu Testei aki em Casa do Loko, Tive que da umas ageitadas o Original tava Meio Bugado!!

Tipow do Use no Item e Vo para o Floor 0....La em Cima do Use denovo vou pro 7 !! So um Exemplo..

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
local pos = {x = v.x, y = v.y, z = 6} ----- Onde ele Precisa para dar Down -- Pode Modificar do 0 ao 7

local posd = {x = v.x, y = v.y, z = 7} ---- Onde ele Precisa para Dar Up -- Pode Modificar do 7 ao 0

 

isso significa que o cara só pode dizer o /flyup quando tiver no andar 6

e o /flydown quando tiver no andar 7?

 

tem como eu acrescentar pra ele poder usar em todos,

e se tiver em um determinado andar ele n pode subir mais?

pq no meu server tem várias "dimensões" e a partir de certo andar, começa o piso da outra dimensão

 

tipo assim, se tiver no andar 7, o player pode subir 3 andares, mas n pode subir mais que o andar 10

 

dai se o player tiver no andar 11, ele pode subir até o 14

mas se tiver no 11, não pode descer mesmo se encontrar um lugar vago

 

acho que esses ajustes são simples...

só me diz mais ou menos se tem como que eu tento ajeitar aqui :D

 

já dei +rep

Editado por Kovu
Link para o comentário
Compartilhar em outros sites

Se Ele , Estiver no Andar 7 E Falar /flydown aparecera que oque tem em bacho.. Porque o Tile 260 ( N Lembro se é Esse ) o Invisivel é um Tile normal como qualquer outro so que invisivel, entao vai dizer oque tem abaicho!!

e no Ultimo .Nao Testei ainda. Vou testar e dou um Edit!!

 

Abraços..

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

ajuda o meu da erro

[11/09/2010 16:08:29] luaAddOutfitCondition(). Condition not found

[11/09/2010 16:08:29] [Warning - BaseEvents::loadFromXml] Cannot open talkactions.xml file.

[11/09/2010 16:08:29] Line: 106, Info: Extra content at the end of the document

 

 

[11/09/2010 16:08:29] > ERROR: Unable to load TalkActions!

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

[11/09/2010 16:08:29] luaAddOutfitCondition(). Condition not found

[11/09/2010 16:08:29] [Warning - BaseEvents::loadFromXml] Cannot open talkactions.xml file.

[11/09/2010 16:08:29] Line: 106, Info: Extra content at the end of the document

 

 

[11/09/2010 16:08:29] > ERROR: Unable to load TalkActions!

 

Voce colocou Algo Errado na Talkactions.xml que ela nao Esta Abrindo.

Abrá-la, Coloque CTRL+G e coloca 106 lá estara o Erro, que nem Diz o Erro no Distro.

 

 

Line: 106 = Linha: 106

 

na Linha 106 Esta o Erro do Script, Aperte CTRL + G coloque 106 e De Ok e Mande para min se Conseguir Arrumar Pronto.

 

 

Abraços..

Link para o comentário
Compartilhar em outros sites

bom não sei o que houve o script num da debug mais quando eu usso o comando /flyup ele aparece essa mensaguem 04:45 [Flying] You aren't mounted. oque é isso alguem me ajuda

 

Edit e tambem daesse erro quando eu uso o item 04:56 There has been some error, try contacting a staff member.

Editado por eduardo2000
Link para o comentário
Compartilhar em outros sites

Sim ficou bom... Mas dava pra melhorar.

E você fez um Duplo post

Postou 07 setembro 2010 - 11:05

 

ok se haver algum erro poste para eu ageitar..

 

Pergunta:

É tipo o !fly system do Forcera mas Modificado do ZERO? ' - '

 

@Edit

Desculpa por ter falado do Duplo Post. Postou os doisna mesma hora, só pode ter sido erro.

Desculpa ' - ' ²

Link para o comentário
Compartilhar em outros sites

consegui fazer mas é muito complicado na primeira vez

em que eu fiz nao consegui tive que trocar de map

mas ae na segunda deu certo maneiro o script do pet !! VLW

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...