Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? TFS 0.4

 

estou tentando adaptar esse script para uma quest de "sacrificio", o script está funcionando perfeitamente.

O script funciona da seguinte forma, após clicar na alavanca ele remove uma parede por "x" tempo e depois cria novamente. Mas eu preciso que tenha um "sacrificio" para poder abrir essa parede, seja necessario ter um item em x posição para poder clicar na alavanca, se o item não estiver lá retornar uma mensagem falando para o player (o item não está na posição certa). se ele estiver, após o player clicar na alavanca o item será removido e o script funcionará (irá abrir a parede).

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

function onUse(cid, item, fromPosition, itemEx, toPosition)
piece1pos = {x=1554, y=1507, z=10, stackpos=1}
local tempo = 2*60*1000 -- tempo para parede voltar
getpiece1 = getThingfromPos(piece1pos)
if item.uid == 7001 and item.itemid == 1945 and getpiece1.itemid == 11806 then
doRemoveItem(getpiece1.uid,1)
doTransformItem(item.uid,item.itemid+1)
doPlayerSendTextMessage(cid,22,"A passagem abriu, avise seus companheiros.")
addEvent(doCreateItem, tempo, 11806, piece1pos)
addEvent(doTransformItem, tempo, item.uid,1945)
elseif item.uid == 7001 and item.itemid == 1945 then
doTransformItem(item.uid,item.itemid-1)
addEvent(doCreateItem, 2*60*1000, item.itemid, piece1pos)
else
doPlayerSendTextMessage(cid,22,"A passagem ja está aberta.")
end
return 1
end 

 

Postado

@hiquezerah A posição da variável 'out' é para teleportar o player caso ele esteja na posição da parede quando ela for criada.

 

Spoiler

function onUse(cid, item, fromPosition, itemEx, toPosition)

	local time = 15 -- Tempo para a parede ser criada // Em segundos
	local wallID = 1285 -- ID da parede
	local sacrID  = 2160 -- ID do item a ser sacrificado
	local wallPos = {x = 94, y = 111, z = 7, stackpos = 1} -- Posição da parede
	local sacrPos = {x = 95, y = 111, z = 7, stackpos = 1} -- Posição do sacrifício

	if (item.itemid == 1945) then
		doTransformItem(item.uid, item.itemid + 1)
	else
		doTransformItem(item.uid, item.itemid - 1)
	end

	if (getThingFromPos(wallPos).uid > 0) then
		if (getThingFromPos(sacrPos).uid > 0 and getThingFromPos(sacrPos).itemid == sacrID) then
			doRemoveItem(getThingFromPos(wallPos).uid, 1)
			doRemoveItem(getThingFromPos(sacrPos).uid, 1)
			doSendMagicEffect(wallPos, 2)
			doSendMagicEffect(sacrPos, 2)
			addEvent(function()
				local check = getThingFromPos({x = wallPos.x, y = wallPos.y, z = wallPos.z, stackpos = 255}).uid
				local out = {x = 94, y = 112, z = 7}
				if (isPlayer(check)) then
					doTeleportThing(cid, out)
				end

				doCleanTile(wallPos)
				doCreateItem(wallID, 1, wallPos)
			end, time * 1000)
		else
			doPlayerSendTextMessage(cid, 27, "Wrong sacrifice item or position.")
		end
	else
		doPlayerSendTextMessage(cid, 27, "The wall has already been removed.")
	end
	return true
end

 

 

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

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo