DE
talkaction

[Action]-[Talkaction] Fly System

Por DevilMoon, 15 de ago. de 2010 em Actions e Talkactions

action
tibia
script
otserv
20
5.7k
DevilMoonD
15 de agosto de 2010 às 21:31

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..

DoidinD
16 de agosto de 2010 às 00:17

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 Agosto 16 por Doidin

DevilMoonD
16 de agosto de 2010 às 09:46

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..

KydraiK
16 de agosto de 2010 às 11:59

Não gostei muito desse fly ai não, ta meio mal feito com umas coisas sem sentido.

2 semanas depois...
34402453
27 de agosto de 2010 às 11:16
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 Agosto 27 por Kovu

DevilMoonD
29 de agosto de 2010 às 00:38

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..

1 mês depois...
iago14I
07 de setembro de 2010 às 10:40

Mto bom o script ja vo testa ele :D

DevilMoonD
07 de setembro de 2010 às 11:05

ok se haver algum erro poste para eu ageitar..

DevilMoonD
07 de setembro de 2010 às 11:05

ok se haver algum erro poste para eu ageitar..

bagdarapaqB
11 de setembro de 2010 às 16:08

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!

BlackStonerB
12 de setembro de 2010 às 15:27

galera editei mais algumas coisas aki, quando sair minha suspensao edito o topic!!

2 semanas depois...
DevilMoonD
24 de setembro de 2010 às 09:58

[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..

19314611
24 de setembro de 2010 às 16:42

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 Setembro 24 por eduardo2000

LaisDosOtsL
25 de setembro de 2010 às 11:35

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 ' - ' ²

CaronteC
25 de setembro de 2010 às 12:38

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