Ir para conteúdo
  • Cadastre-se

(Resolvido)Annihilator Quest


Ir para solução Resolvido por Rusherzin,

Posts Recomendados

Testa esse:

function onUse(cid, item, frompos, item2, topos)
if item.uid == 7000 then
if item.itemid == 1946 then


player1pos = {x=194, y=118, z=9, stackpos=253}
player1 = getThingfromPos(player1pos)


player2pos = {x=193, y=118, z=9, stackpos=253}
player2 = getThingfromPos(player2pos)


player3pos = {x=192, y=118, z=9, stackpos=253}
player3 = getThingfromPos(player3pos)


player4pos = {x=191, y=118, z=9, stackpos=253}
player4 = getThingfromPos(player4pos)




if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then


player1level = getPlayerLevel(player1.uid)
player2level = getPlayerLevel(player2.uid)
player3level = getPlayerLevel(player3.uid)
player4level = getPlayerLevel(player4.uid)


questlevel = 100


if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then


demon1pos = {x=190, y=116, z=10} -- Posições para summonar o demon
demon2pos = {x=192, y=116, z=10}
demon3pos = {x=191, y=120, z=10}
demon4pos = {x=193, y=120, z=10}
demon5pos = {x=194, y=118, z=10}
demon6pos = {x=195, y=118, z=10}


doSummonCreature("Demon", demon1pos)
doSummonCreature("Demon", demon2pos)
doSummonCreature("Demon", demon3pos)
doSummonCreature("Demon", demon4pos)
doSummonCreature("Demon", demon5pos)
doSummonCreature("Demon", demon6pos)


nplayer1pos = {x=193, y=118, z=10 -- Posições dos players dentro da sala com os demons
nplayer2pos = {x=192, y=118, z=10}
nplayer3pos = {x=191, y=118, z=10}
nplayer4pos = {x=190, y=118, z=10}


doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)
doSendMagicEffect(player3pos,2)
doSendMagicEffect(player4pos,2)


doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doTeleportThing(player3.uid,nplayer3pos)
doTeleportThing(player4.uid,nplayer4pos)


doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)
doSendMagicEffect(nplayer3pos,10)
doSendMagicEffect(nplayer4pos,10)


doTransformItem(item.uid,1945)


else
doPlayerSendCancel(cid,"All players must have level 100 to enter.")
end
else
doPlayerSendCancel(cid,"You need 4 players in your team.")
end
end
if item.itemid == 1945 then


starting={x=188, y=111, z=10, stackpos=253}
checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos}
ending={x=210, y=122, z=10, stackpos=253}
players=0
totalmonsters=0
monster = {}
repeat
creature= getThingfromPos(checking)
if creature.itemid > 0 then
if getPlayerAccess(creature.uid) == 0 then
players=players+1
end
if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then
totalmonsters=totalmonsters+1
monster[totalmonsters]=creature.uid
end
end
checking.x=checking.x+1
if checking.x>ending.x then
checking.x=starting.x
checking.y=checking.y+1
end
until checking.y>ending.y
if players==0 then
trash= {x=233, y=125, z=10}
current=0
repeat
current=current+1
doTeleportThing(monster[current],trash)
until current>=totalmonsters
doTransformItem(item.uid,1946)
end




end
end
if item.uid == 5006 then
queststatus = getPlayerStorageValue(cid,100)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"You have found a demon armor.")
doPlayerAddItem(cid,2494,1)
setPlayerStorageValue(cid,100,1)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
end
if item.uid == 5007 then
queststatus = getPlayerStorageValue(cid,100)
if queststatus ~= 1 then
doPlayerSendTextMessage(cid,22,"You have found a magic sword.")
doPlayerAddItem(cid,2400,1)
setPlayerStorageValue(cid,100,1)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
end
if item.uid == 5008 then
queststatus = getPlayerStorageValue(cid,100)
if queststatus ~= 1 then
doPlayerSendTextMessage(cid,22,"You have found a stonecutter axe.")
doPlayerAddItem(cid,2431,1)
setPlayerStorageValue(cid,100,1)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
end
if item.uid == 5009 then
queststatus = getPlayerStorageValue(cid,100)
if queststatus ~= 1 then
doPlayerSendTextMessage(cid,22,"You have found a Thunder Hammer.")
doPlayerAddItem(cid,2421,1)
setPlayerStorageValue(cid,100,1)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
end
return 1
end

Note que as unique dos baús também estão no script então para adicionar no actions.xml é só colocar:

<action uniqueid="5006" script="quests/anihi.lua" />
<action uniqueid="5007" script="quests/anihi.lua" />
<action uniqueid="5008" script="quests/anihi.lua" />
<action uniqueid="5009" script="quests/anihi.lua" />

E a unique da alavanca:

<action uniqueid="7000" script="quests/anihi.lua" />
Link para o post
Compartilhar em outros sites

Qual a versão do seu servidor? Tenho esse para TFS V 0.3.6. (8.54)

 

local config = {


daily = "no", -- allow only one enter per day? (like in global Tibia)
level = 100,
storage = 30015
entry =
{
{x = 247, y = 659, z = 13},
{x = 247, y = 660, z = 13},
{x = 247, y = 661, z = 13},
{x = 247, y = 662, z = 13}
}
destination =
{
{x = 189, y = 650, z = 13},
{x = 189, y = 651, z = 13},
{x = 189, y = 652, z = 13},
{x = 189, y = 653, z = 13}
}
}

config.daily = getBooleanFromString(config.daily)
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(item.itemid == 1946) then
if(config.daily) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
else
doTransformItem(item.uid, item.itemid - 1)
end

return true
end

if(item.itemid ~= 1945) then
return true
end

local players = {}
for _, position in ipairs(config.entry) do
local pid = getTopCreature(position).uid
if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, config.storage) > 0 or getPlayerLevel(pid) < config.level) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
return true
end

table.insert(players, pid)
end

for i, pid in ipairs(players) do
doSendMagicEffect(config.entry, CONST_ME_POFF)
doTeleportThing(pid, config.destination, false)
doSendMagicEffect(config.destination, CONST_ME_ENERGYAREA)
end

doTransformItem(item.uid, item.itemid + 1)
return true
end

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

Espero ter ajudado, até logo.

 

 

DarkXPoke - Servidor para Download

 

 

Link para o post
Compartilhar em outros sites

Qual a versão do seu servidor? Tenho esse para TFS V 0.3.6. (8.54)

 

local config = {

daily = "no", -- allow only one enter per day? (like in global Tibia)

level = 100,

storage = 30015

entry =

{

{x = 247, y = 659, z = 13},

{x = 247, y = 660, z = 13},

{x = 247, y = 661, z = 13},

{x = 247, y = 662, z = 13}

}

destination =

{

{x = 189, y = 650, z = 13},

{x = 189, y = 651, z = 13},

{x = 189, y = 652, z = 13},

{x = 189, y = 653, z = 13}

}

}

config.daily = getBooleanFromString(config.daily)

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

if(item.itemid == 1946) then

if(config.daily) then

doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)

else

doTransformItem(item.uid, item.itemid - 1)

end

return true

end

if(item.itemid ~= 1945) then

return true

end

local players = {}

for _, position in ipairs(config.entry) do

local pid = getTopCreature(position).uid

if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, config.storage) > 0 or getPlayerLevel(pid) < config.level) then

doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)

return true

end

table.insert(players, pid)

end

for i, pid in ipairs(players) do

doSendMagicEffect(config.entry, CONST_ME_POFF)

doTeleportThing(pid, config.destination, false)

doSendMagicEffect(config.destination, CONST_ME_ENERGYAREA)

end

doTransformItem(item.uid, item.itemid + 1)

return true

end

 

A versão do meu é TFS 0.4, 8.60. Eu queria um um pouquinho mais completo, que verificasse pelo menos se outro time já entrou... que sumonasse o Demon...

Mas agradeço por sua ajuda.

 

@Wakon

Eu usava justamente esse quando resolvi procurar outro... esse deu erro aqui :(

Editado por ScythePhantom (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
local playerPosition =

{

	{x = 500, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 499, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 498, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 497, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE}

}



local newPosition =

{

	{x=500, y=755, z=10},

	{x=499, y=755, z=10},

	{x=498, y=755, z=10},

	{x=497, y=755, z=10}

}



local demonPosition =

{

	{x=498, y=753, z=10},

	{x=500, y=753, z=10},

	{x=499, y=757, z=10},

	{x=497, y=757, z=10},

	{x=502, y=755, z=10},

	{x=501, y=755, z=10}

}



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

	local player = {0, 0, 0, 0}

	local failed = TRUE

	local count = 0

	item.new = 1946



	if(item.itemid == 1945) then

		if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

			for i = 1, 4 do

				player[i] = getThingfromPos(playerPosition[i])

				if(player[i].itemid > 0) then

					if(isPlayer(player[i].uid) == TRUE) then

						if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then

							if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then

								failed = FALSE

								count = count + 1

							end

						end

					end

				end



				if(failed == TRUE) then

					doTransformItem(item.uid, 1946)

					return TRUE

				end

			end



			if(count == 4) then

				for i = 1, 6 do

					doSummonCreature("Demon", demonPosition[i])

				end



				for i = 1, 4 do

					doSendMagicEffect(playerPosition[i], CONST_ME_POFF)

					doTeleportThing(player[i].uid, newPosition[i], FALSE)

					doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)

					setPlayerStorageValue(player[i].uid, 9000, 1)

				end



				setGlobalStorageValue(9000, os.time(t))

			end

		end

	else

		item.new = 1945

	end



	doTransformItem(item.uid, item.new)

	return TRUE

end

Coloca actionid 9000 na alavanca e configura as posições no script..

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites
local playerPosition =

{

	{x = 500, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 499, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 498, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 497, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE}

}



local newPosition =

{

	{x=500, y=755, z=10},

	{x=499, y=755, z=10},

	{x=498, y=755, z=10},

	{x=497, y=755, z=10}

}



local demonPosition =

{

	{x=498, y=753, z=10},

	{x=500, y=753, z=10},

	{x=499, y=757, z=10},

	{x=497, y=757, z=10},

	{x=502, y=755, z=10},

	{x=501, y=755, z=10}

}



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

	local player = {0, 0, 0, 0}

	local failed = TRUE

	local count = 0

	item.new = 1946



	if(item.itemid == 1945) then

		if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

			for i = 1, 4 do

				player[i] = getThingfromPos(playerPosition[i])

				if(player[i].itemid > 0) then

					if(isPlayer(player[i].uid) == TRUE) then

						if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then

							if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then

								failed = FALSE

								count = count + 1

							end

						end

					end

				end



				if(failed == TRUE) then

					doTransformItem(item.uid, 1946)

					return TRUE

				end

			end



			if(count == 4) then

				for i = 1, 6 do

					doSummonCreature("Demon", demonPosition[i])

				end



				for i = 1, 4 do

					doSendMagicEffect(playerPosition[i], CONST_ME_POFF)

					doTeleportThing(player[i].uid, newPosition[i], FALSE)

					doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)

					setPlayerStorageValue(player[i].uid, 9000, 1)

				end



				setGlobalStorageValue(9000, os.time(t))

			end

		end

	else

		item.new = 1945

	end



	doTransformItem(item.uid, item.new)

	return TRUE

end

Coloca actionid 9000 na alavanca e configura as posições no script..

 

 

Funcionou, porém tentei fazer novamente e não foi... sabe me dizer quais são as restrições e verificações do script?

 

Não tem nenhuma mensagem ou aviso também... haveria possibilidade de adicioná-las?

Editado por ScythePhantom (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Ela só pode ser feita uma vez no dia, eu creio.. tenta assim:

local playerPosition =

{

	{x = 500, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 499, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 498, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 497, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE}

}



local newPosition =

{

	{x=500, y=755, z=10},

	{x=499, y=755, z=10},

	{x=498, y=755, z=10},

	{x=497, y=755, z=10}

}



local demonPosition =

{

	{x=498, y=753, z=10},

	{x=500, y=753, z=10},

	{x=499, y=757, z=10},

	{x=497, y=757, z=10},

	{x=502, y=755, z=10},

	{x=501, y=755, z=10}

}



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

	local player = {0, 0, 0, 0}

	local failed = TRUE

	local count = 0

	item.new = 1946



	if(item.itemid == 1945) then

		if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

			for i = 1, 4 do

				player[i] = getThingfromPos(playerPosition[i])

				if(player[i].itemid > 0) then

					if(isPlayer(player[i].uid) == TRUE) then

						if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then

							if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then

								failed = FALSE

								count = count + 1

							end

						end

					end

				end



				if(failed == TRUE) then

					doTransformItem(item.uid, 1946)

					return TRUE

				end

			end



			if(count == 4) then

				for i = 1, 6 do

					doSummonCreature("Demon", demonPosition[i])

				end



				for i = 1, 4 do

					doSendMagicEffect(playerPosition[i], CONST_ME_POFF)

					doTeleportThing(player[i].uid, newPosition[i], FALSE)

					doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)

					setPlayerStorageValue(player[i].uid, 9000, 1)

				end


			end

		end

	else

		item.new = 1945

	end



	doTransformItem(item.uid, item.new)

	return TRUE

end

Quais mensagens queres adicionar? E em qual situação?

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

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

 

Ela só pode ser feita uma vez no dia, eu creio.. tenta assim:

local playerPosition =

{

	{x = 500, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 499, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 498, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE},

	{x = 497, y = 755, z = 9, stackpos = STACKPOS_TOP_CREATURE}

}



local newPosition =

{

	{x=500, y=755, z=10},

	{x=499, y=755, z=10},

	{x=498, y=755, z=10},

	{x=497, y=755, z=10}

}



local demonPosition =

{

	{x=498, y=753, z=10},

	{x=500, y=753, z=10},

	{x=499, y=757, z=10},

	{x=497, y=757, z=10},

	{x=502, y=755, z=10},

	{x=501, y=755, z=10}

}



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

	local player = {0, 0, 0, 0}

	local failed = TRUE

	local count = 0

	item.new = 1946



	if(item.itemid == 1945) then

		if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

			for i = 1, 4 do

				player[i] = getThingfromPos(playerPosition[i])

				if(player[i].itemid > 0) then

					if(isPlayer(player[i].uid) == TRUE) then

						if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then

							if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then

								failed = FALSE

								count = count + 1

							end

						end

					end

				end



				if(failed == TRUE) then

					doTransformItem(item.uid, 1946)

					return TRUE

				end

			end



			if(count == 4) then

				for i = 1, 6 do

					doSummonCreature("Demon", demonPosition[i])

				end



				for i = 1, 4 do

					doSendMagicEffect(playerPosition[i], CONST_ME_POFF)

					doTeleportThing(player[i].uid, newPosition[i], FALSE)

					doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)

					setPlayerStorageValue(player[i].uid, 9000, 1)

				end


			end

		end

	else

		item.new = 1945

	end



	doTransformItem(item.uid, item.new)

	return TRUE

end

Quais mensagens queres adicionar? E em qual situação?

 

 

Tipo; "Essa quest já foi feita hoje, retorne depois.", "Essa quest só é feita por um quarteto em level 100." São mensagens "generalizadas"...

 

SCRIPT: (esse já está com as posições editadas)

 

local playerPosition =

{

{x = 236, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 235, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 234, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 233, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE}

}

local newPosition =

{

{x=230, y=294, z=7},

{x=229, y=294, z=7},

{x=228, y=294, z=7},

{x=227, y=294, z=7}

}

local demonPosition =

{

{x=230, y=297, z=7},

{x=230, y=291, z=7},

{x=227, y=297, z=7},

{x=227, y=291, z=7},

{x=226, y=294, z=7},

{x=225, y=294, z=7}

}

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

local player = {0, 0, 0, 0}

local failed = TRUE

local count = 0

item.new = 1946

if(item.itemid == 1945) then

if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

for i = 1, 4 do

player = getThingfromPos(playerPosition)

if(player.itemid > 0) then

if(isPlayer(player.uid) == TRUE) then

if(getPlayerStorageValue(player.uid, 9000) <= 0) then

if(getPlayerLevel(player.uid) >= 100 or getPlayerAccess(player.uid) >= 3) then

failed = FALSE

count = count + 1

end

end

end

end

if(failed == TRUE) then

doTransformItem(item.uid, 1946)

return TRUE

end

end

if(count == 4) then

for i = 1, 6 do

doSummonCreature("Demon", demonPosition)

end

for i = 1, 4 do

doSendMagicEffect(playerPosition, CONST_ME_POFF)

doTeleportThing(player.uid, newPosition, FALSE)

doSendMagicEffect(newPosition, CONST_ME_ENERGYAREA)

setPlayerStorageValue(player.uid, 9000, 1)

end

setGlobalStorageValue(9000, os.time(t))

end

end

else

item.new = 1945

end

doTransformItem(item.uid, item.new)

return TRUE

end

Link para o post
Compartilhar em outros sites

Tenta assim:

local playerPosition =

{

{x = 236, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 235, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 234, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 233, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE}

}



local newPosition =

{

{x=230, y=294, z=7},

{x=229, y=294, z=7},

{x=228, y=294, z=7},

{x=227, y=294, z=7}

}



local demonPosition =

{

{x=230, y=297, z=7},

{x=230, y=291, z=7},

{x=227, y=297, z=7},

{x=227, y=291, z=7},

{x=226, y=294, z=7},

{x=225, y=294, z=7}

}



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

local player = {0, 0, 0, 0}

local failed = TRUE

local count = 0

item.new = 1946



if(item.itemid == 1945) then

if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

for i = 1, 4 do

player[i] = getThingfromPos(playerPosition[i])

if(player[i].itemid > 0) then

if(isPlayer(player[i].uid) == TRUE) then

if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then

if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then

failed = FALSE

count = count + 1

else
doPlayerSendTextMessage(cid, 25, "Apenas level 100 ou mais podem fazer esta quest.")

else
doPlayerSendTextMessage(cid, 25, "Voce ja completou essa quest.")

else 
doPlayerSendTextMessage(cid, 25, "Voce so pode entrar com 4 players.")

else
doPlayerSendTextMessage(cid, 25, "Voce so pode entrar com 4 players.")

else
doPlayerSendTextMessage(cid, 25, "A quest ja foi feita, volte mais tarde.")

end

end

end

end



if(failed == TRUE) then

doTransformItem(item.uid, 1946)


return TRUE

end

end



if(count == 4) then

for i = 1, 6 do

doSummonCreature("Demon", demonPosition[i])

end



for i = 1, 4 do

doSendMagicEffect(playerPosition[i], CONST_ME_POFF)

doTeleportThing(player[i].uid, newPosition[i], FALSE)

doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)

setPlayerStorageValue(player[i].uid, 9000, 1)

end



setGlobalStorageValue(9000, os.time(t))

end

end

else

item.new = 1945

end



doTransformItem(item.uid, item.new)

return TRUE

end


                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

 

Tenta assim:

local playerPosition =

{

{x = 236, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 235, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 234, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 233, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE}

}



local newPosition =

{

{x=230, y=294, z=7},

{x=229, y=294, z=7},

{x=228, y=294, z=7},

{x=227, y=294, z=7}

}



local demonPosition =

{

{x=230, y=297, z=7},

{x=230, y=291, z=7},

{x=227, y=297, z=7},

{x=227, y=291, z=7},

{x=226, y=294, z=7},

{x=225, y=294, z=7}

}



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

local player = {0, 0, 0, 0}

local failed = TRUE

local count = 0

item.new = 1946



if(item.itemid == 1945) then

if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

for i = 1, 4 do

player[i] = getThingfromPos(playerPosition[i])

if(player[i].itemid > 0) then

if(isPlayer(player[i].uid) == TRUE) then

if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then

if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then

failed = FALSE

count = count + 1

else
doPlayerSendTextMessage(cid, 25, "Apenas level 100 ou mais podem fazer esta quest.")

else
doPlayerSendTextMessage(cid, 25, "Voce ja completou essa quest.")

else 
doPlayerSendTextMessage(cid, 25, "Voce so pode entrar com 4 players.")

else
doPlayerSendTextMessage(cid, 25, "Voce so pode entrar com 4 players.")

else
doPlayerSendTextMessage(cid, 25, "A quest ja foi feita, volte mais tarde.")

end

end

end

end



if(failed == TRUE) then

doTransformItem(item.uid, 1946)


return TRUE

end

end



if(count == 4) then

for i = 1, 6 do

doSummonCreature("Demon", demonPosition[i])

end



for i = 1, 4 do

doSendMagicEffect(playerPosition[i], CONST_ME_POFF)

doTeleportThing(player[i].uid, newPosition[i], FALSE)

doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)

setPlayerStorageValue(player[i].uid, 9000, 1)

end



setGlobalStorageValue(9000, os.time(t))

end

end

else

item.new = 1945

end



doTransformItem(item.uid, item.new)

return TRUE

end

 

 

Deu erro... mas me diz, as mensagens estão aleatórias? o.O

 

ERRO:

 

8AgaOeD.png?1

Link para o post
Compartilhar em outros sites

Ué, tenta assim então:

local playerPosition =

{

{x = 236, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 235, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 234, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 233, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE}

}



local newPosition =

{

{x=230, y=294, z=7},

{x=229, y=294, z=7},

{x=228, y=294, z=7},

{x=227, y=294, z=7}

}



local demonPosition =

{

{x=230, y=297, z=7},

{x=230, y=291, z=7},

{x=227, y=297, z=7},

{x=227, y=291, z=7},

{x=226, y=294, z=7},

{x=225, y=294, z=7}

}


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

	local player = {0, 0, 0, 0}

	local failed = TRUE

	local count = 0

	item.new = 1946



	if(item.itemid == 1945) then

		if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

			for i = 1, 4 do

				player[i] = getThingfromPos(playerPosition[i])

				if(player[i].itemid > 0) then

					if(isPlayer(player[i].uid) == TRUE) then

						if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then

							if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then

								failed = FALSE

								count = count + 1
								
									else
										doPlayerSendTextMessage(cid, 25, "Apenas level 100 ou mais podem fazer esta quest.")

									else
										doPlayerSendTextMessage(cid, 25, "Voce ja completou essa quest.")

									else 
										doPlayerSendTextMessage(cid, 25, "Voce so pode entrar com 4 players.")

									else
										doPlayerSendTextMessage(cid, 25, "Voce so pode entrar com 4 players.")

									else
										doPlayerSendTextMessage(cid, 25, "A quest ja foi feita, volte em 1 hora.")
							end

						end

					end

				end



				if(failed == TRUE) then

					doTransformItem(item.uid, 1946)

					return TRUE

				end

			end



			if(count == 4) then

				for i = 1, 6 do

					doSummonCreature("Demon", demonPosition[i])

				end



				for i = 1, 4 do

					doSendMagicEffect(playerPosition[i], CONST_ME_POFF)

					doTeleportThing(player[i].uid, newPosition[i], FALSE)

					doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)

					setPlayerStorageValue(player[i].uid, 9000, 1)

				end



				setGlobalStorageValue(9000, os.time(t))

			end

		end

	else

		item.new = 1945

	end



	doTransformItem(item.uid, item.new)

	return TRUE

end

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

 

Ué, tenta assim então:

local playerPosition =

{

{x = 236, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 235, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 234, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 233, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE}

}



local newPosition =

{

{x=230, y=294, z=7},

{x=229, y=294, z=7},

{x=228, y=294, z=7},

{x=227, y=294, z=7}

}



local demonPosition =

{

{x=230, y=297, z=7},

{x=230, y=291, z=7},

{x=227, y=297, z=7},

{x=227, y=291, z=7},

{x=226, y=294, z=7},

{x=225, y=294, z=7}

}


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

	local player = {0, 0, 0, 0}

	local failed = TRUE

	local count = 0

	item.new = 1946



	if(item.itemid == 1945) then

		if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

			for i = 1, 4 do

				player[i] = getThingfromPos(playerPosition[i])

				if(player[i].itemid > 0) then

					if(isPlayer(player[i].uid) == TRUE) then

						if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then

							if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then

								failed = FALSE

								count = count + 1
								
									else
										doPlayerSendTextMessage(cid, 25, "Apenas level 100 ou mais podem fazer esta quest.")

									else
										doPlayerSendTextMessage(cid, 25, "Voce ja completou essa quest.")

									else 
										doPlayerSendTextMessage(cid, 25, "Voce so pode entrar com 4 players.")

									else
										doPlayerSendTextMessage(cid, 25, "Voce so pode entrar com 4 players.")

									else
										doPlayerSendTextMessage(cid, 25, "A quest ja foi feita, volte em 1 hora.")
							end

						end

					end

				end



				if(failed == TRUE) then

					doTransformItem(item.uid, 1946)

					return TRUE

				end

			end



			if(count == 4) then

				for i = 1, 6 do

					doSummonCreature("Demon", demonPosition[i])

				end



				for i = 1, 4 do

					doSendMagicEffect(playerPosition[i], CONST_ME_POFF)

					doTeleportThing(player[i].uid, newPosition[i], FALSE)

					doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)

					setPlayerStorageValue(player[i].uid, 9000, 1)

				end



				setGlobalStorageValue(9000, os.time(t))

			end

		end

	else

		item.new = 1945

	end



	doTransformItem(item.uid, item.new)

	return TRUE

end

 

 

Deu erro...

 

4JLJoW5.png?1

Link para o post
Compartilhar em outros sites

Desculpa, às vezes eu sou uma legítima topeira. ;v
Agora vai funcionar..

local playerPosition =

{

{x = 236, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 235, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 234, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 233, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE}

}



local newPosition =

{

{x=230, y=294, z=7},

{x=229, y=294, z=7},

{x=228, y=294, z=7},

{x=227, y=294, z=7}

}



local demonPosition =

{

{x=230, y=297, z=7},

{x=230, y=291, z=7},

{x=227, y=297, z=7},

{x=227, y=291, z=7},

{x=226, y=294, z=7},

{x=225, y=294, z=7}

}


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

	local player = {0, 0, 0, 0}

	local failed = TRUE

	local count = 0

	item.new = 1946



	if(item.itemid == 1945) then

		if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

			for i = 1, 4 do

				player[i] = getThingfromPos(playerPosition[i])

				if(player[i].itemid > 0) then

					if(isPlayer(player[i].uid) == TRUE) then

						if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then

							if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then

								failed = FALSE

								count = count + 1
								
									elseif (getPlayerLevel(player[i].uid) <= 100) then
										doPlayerSendTextMessage(cid, 25, "Apenas level 100 ou mais podem fazer esta quest.")

									elseif (getPlayerStorageValue(player[i].uid, 9000) > 0) then
										doPlayerSendTextMessage(cid, 25, "Voce ja completou essa quest.")

									elseif (isPlayer(player[i].uid) == FALSE) then
										doPlayerSendTextMessage(cid, 25, "Voce so pode entrar com 4 players.")


									elseif (os.time(t) < (getGlobalStorageValue(9000) + 3600)) then
										doPlayerSendTextMessage(cid, 25, "A quest ja foi feita, volte em 1 hora.")
							end

						end

					end

				end



				if(failed == TRUE) then

					doTransformItem(item.uid, 1946)

					return TRUE

				end

			end



			if(count == 4) then

				for i = 1, 6 do

					doSummonCreature("Demon", demonPosition[i])

				end



				for i = 1, 4 do

					doSendMagicEffect(playerPosition[i], CONST_ME_POFF)

					doTeleportThing(player[i].uid, newPosition[i], FALSE)

					doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)

					setPlayerStorageValue(player[i].uid, 9000, 1)

				end



				setGlobalStorageValue(9000, os.time(t))

			end

		end

	else

		item.new = 1945

	end



	doTransformItem(item.uid, item.new)

	return TRUE

end

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

 

Desculpa, às vezes eu sou uma legítima topeira. ;v

Agora vai funcionar..

local playerPosition =

{

{x = 236, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 235, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 234, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE},

{x = 233, y = 294, z = 7, stackpos = STACKPOS_TOP_CREATURE}

}



local newPosition =

{

{x=230, y=294, z=7},

{x=229, y=294, z=7},

{x=228, y=294, z=7},

{x=227, y=294, z=7}

}



local demonPosition =

{

{x=230, y=297, z=7},

{x=230, y=291, z=7},

{x=227, y=297, z=7},

{x=227, y=291, z=7},

{x=226, y=294, z=7},

{x=225, y=294, z=7}

}


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

	local player = {0, 0, 0, 0}

	local failed = TRUE

	local count = 0

	item.new = 1946



	if(item.itemid == 1945) then

		if(os.time(t) >= (getGlobalStorageValue(9000) + 3600)) then

			for i = 1, 4 do

				player[i] = getThingfromPos(playerPosition[i])

				if(player[i].itemid > 0) then

					if(isPlayer(player[i].uid) == TRUE) then

						if(getPlayerStorageValue(player[i].uid, 9000) <= 0) then

							if(getPlayerLevel(player[i].uid) >= 100 or getPlayerAccess(player[i].uid) >= 3) then

								failed = FALSE

								count = count + 1
								
									elseif (getPlayerLevel(player[i].uid) <= 100) then
										doPlayerSendTextMessage(cid, 25, "Apenas level 100 ou mais podem fazer esta quest.")

									elseif (getPlayerStorageValue(player[i].uid, 9000) > 0) then
										doPlayerSendTextMessage(cid, 25, "Voce ja completou essa quest.")

									elseif (isPlayer(player[i].uid) == FALSE) then
										doPlayerSendTextMessage(cid, 25, "Voce so pode entrar com 4 players.")


									elseif (os.time(t) < (getGlobalStorageValue(9000) + 3600)) then
										doPlayerSendTextMessage(cid, 25, "A quest ja foi feita, volte em 1 hora.")
							end

						end

					end

				end



				if(failed == TRUE) then

					doTransformItem(item.uid, 1946)

					return TRUE

				end

			end



			if(count == 4) then

				for i = 1, 6 do

					doSummonCreature("Demon", demonPosition[i])

				end



				for i = 1, 4 do

					doSendMagicEffect(playerPosition[i], CONST_ME_POFF)

					doTeleportThing(player[i].uid, newPosition[i], FALSE)

					doSendMagicEffect(newPosition[i], CONST_ME_ENERGYAREA)

					setPlayerStorageValue(player[i].uid, 9000, 1)

				end



				setGlobalStorageValue(9000, os.time(t))

			end

		end

	else

		item.new = 1945

	end



	doTransformItem(item.uid, item.new)

	return TRUE

end

 

 

Agora não deu erro, porém não funcionou, nem mensagens, nem o script propriamente dito.

Link para o post
Compartilhar em outros sites
  • Solução

Coloquei a parte de sumonar demons nesse aqui.. Tenta:

local config = {
	daily = "no", -- allow only one enter per day? (like in global Tibia)
	level = 100,
	storage = 30015,
	entry =
	{
		{x = 247, y = 72, z = 7},
		{x = 246, y = 72, z = 7},
		{x = 245, y = 72, z = 7},
		{x = 244, y = 72, z = 7}
	},
	destination =
	{
		{x = 247, y = 76, z = 14},
		{x = 246, y = 76, z = 14},
		{x = 245, y = 76, z = 14},
		{x = 244, y = 76, z = 14}
	},
	demonPosition =
	{
	{x=498, y=753, z=10},
	{x=500, y=753, z=10},
	{x=499, y=757, z=10},
	{x=497, y=757, z=10},
	{x=502, y=755, z=10},
	{x=501, y=755, z=10}
}
	
}

config.daily = getBooleanFromString(config.daily)
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(item.itemid == 1946) then
		if(config.daily) then
			doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
		else
			doTransformItem(item.uid, item.itemid - 1)
		end

		return true
	end

	if(item.itemid ~= 1945) then
		return true
	end

	local players = {}
	for _, position in ipairs(config.entry) do
		local pid = getTopCreature(position).uid
		if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, config.storage) > 0 or getPlayerLevel(pid) < config.level) then
			doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
			return true
		end

		table.insert(players, pid)
	end
	
	for j = 1, 6 do

		doSummonCreature("Demon", config.demonPosition[j])
	end

	for i, pid in ipairs(players) do
		doSendMagicEffect(config.entry[i], CONST_ME_POFF)
		doTeleportThing(pid, config.destination[i], false)
		doSendMagicEffect(config.destination[i], CONST_ME_ENERGYAREA)
	end

	doTransformItem(item.uid, item.itemid + 1)
	return true
end


 

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

 

Coloquei a parte de sumonar demons nesse aqui.. Tenta:

local config = {
	daily = "no", -- allow only one enter per day? (like in global Tibia)
	level = 100,
	storage = 30015,
	entry =
	{
		{x = 247, y = 72, z = 7},
		{x = 246, y = 72, z = 7},
		{x = 245, y = 72, z = 7},
		{x = 244, y = 72, z = 7}
	},
	destination =
	{
		{x = 247, y = 76, z = 14},
		{x = 246, y = 76, z = 14},
		{x = 245, y = 76, z = 14},
		{x = 244, y = 76, z = 14}
	},
	demonPosition =
	{
	{x=498, y=753, z=10},
	{x=500, y=753, z=10},
	{x=499, y=757, z=10},
	{x=497, y=757, z=10},
	{x=502, y=755, z=10},
	{x=501, y=755, z=10}
}
	
}

config.daily = getBooleanFromString(config.daily)
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(item.itemid == 1946) then
		if(config.daily) then
			doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
		else
			doTransformItem(item.uid, item.itemid - 1)
		end

		return true
	end

	if(item.itemid ~= 1945) then
		return true
	end

	local players = {}
	for _, position in ipairs(config.entry) do
		local pid = getTopCreature(position).uid
		if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, config.storage) > 0 or getPlayerLevel(pid) < config.level) then
			doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
			return true
		end

		table.insert(players, pid)
	end
	
	for j = 1, 6 do

		doSummonCreature("Demon", config.demonPosition[j])
	end

	for i, pid in ipairs(players) do
		doSendMagicEffect(config.entry[i], CONST_ME_POFF)
		doTeleportThing(pid, config.destination[i], false)
		doSendMagicEffect(config.destination[i], CONST_ME_ENERGYAREA)
	end

	doTransformItem(item.uid, item.itemid + 1)
	return true
end

 

 

 

Funcionou direitinho, porém deu esse erro na questão "criação" do "demons"...

 

7CUUnzw.png?1

Link para o post
Compartilhar em outros sites

Configurou direito as posições? Aqui funcionou tudo direitinho..

                                                                     Ajudei? De nada \o/                                            Att Rusherzin

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo