Ir para conteúdo
  • Cadastre-se

Posts Recomendados

44 minutos atrás, Felipe Lotz disse:

 

Vacilo meu, achei que o position era a posição do SQM, mas o sqm é pela action... Valeu bro! Graças a você POI 100% funcionando e o NPC challenge também. Por acaso manja da funcionamento da Yalahar last room?

 

Meu script funciona até o final, ele tira os portais pra ninguém descer no meio da quest, porém quando acaba e eles voltam, param de funcionar. E também a sala não reseta pro próximo time.

Posta o script pra eu dar uma olhada

Link para o post
Compartilhar em outros sites

@Kemmlly

 

actions/scripts/azerus.lua

 

local BlindField = {x = 488, y = 179, z = 7, stackpos=1} 
 
function mapArea(fromPos, toPos, stack) 
        local pos = {x=fromPos.x, y=fromPos.y-1, z=fromPos.z} 
        return function() 
                if (pos.y < toPos.y) then 
                        pos.y = pos.y+1 
                elseif (pos.x <= toPos.x) then 
                        pos.y = fromPos.y 
                        pos.x = pos.x+1 
                else 
                        pos.x = fromPos.x 
                        pos.y = fromPos.y 
                        pos.z = pos.z+1 
                end 
                if (pos.x <= toPos.x and pos.y <= toPos.y or pos.z < toPos.z) then 
                        if (stack == nil) then 
                                return pos 
                        else 
                                pos.stackpos = stack  
                                return pos, getThingfromPos(pos) 
                        end 
                end 
        end 
end 


function getMonstersfromArea(fromPos, toPos) 
        local monsters = {}     
        for _, thing in mapArea(fromPos, toPos, 253) do 
                if isMonster(thing.uid) == TRUE then 
                        table.insert(monsters, thing.uid) 
            end 

        end 
          local bfm = getThingfromPos(BlindField) 
            if isMonster(bfm.uid) == TRUE then 
            table.insert(monsters, bfm.uid) 
            end 
        return monsters 
end 


function onUse(cid, item, fromPosition, itemEx, toPosition) 
	local topLeft = {x = 480, y = 178, z = 7}
	local buttomRight = {x = 499, y = 198, z = 7}
	local monsters = getMonstersfromArea(topLeft, buttomRight) 
	local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
	local tp = {x = 490, y = 197, z = 7}
	local glo = {x = 490, y = 188, z = 7}

	local function FirstWave() 
		doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z}) 
		doSummonCreature("Azerus", {x=glo.x,y=glo.y - 5,z=glo.z}) 
	end 
	local function FifthWave() 
		doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z}) 
	end 

	local function SecondWave() 
		local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
		for _, monster in pairs(monsters1) do 
			if getCreatureName(monster) == "Azerus" then 
				doRemoveCreature(monster) 
			end 
		end 
		
		doSummonCreature("Azerus1", {x=glo.x,y=glo.y - 5,z=glo.z}) 
		doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z}) 
	end 
	local function SixthWave() 
		doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z}) 
	end
	
	local function ThirdWave() 
		local monsters1 = getMonstersfromArea(topLeft, buttomRight) 

		for _, monster in pairs(monsters1) do 
			if getCreatureName(monster) == "Azerus" then 
				doRemoveCreature(monster) 
			end 
		end 
		doSummonCreature("Azerus2", {x= glo.x - 5,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z}) 
	end 

	local function ThirdWave1() --  with 2s delay 
		doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 5,z=glo.z}) 
	end 

	local function FourthWave() 
		doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z}) 
	end 

	local function SevenWave() 
		local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
		for _, monster in pairs(monsters1) do 
			if getCreatureName(monster) == "Azerus" then 
				doRemoveCreature(monster) 
			end 
		end 
		
		doSummonCreature("Azerus3", {x= glo.x - 5,y=glo.y,z=glo.z}) 
		doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z}) 
	end 

	local function Glllobe()
		local monst = getMonstersfromArea(topLeft, buttomRight) 
		for i = 1, #monst do
			doRemoveCreature(monst[i])

		end

		local item1 = getTileItemById(glo, 9767)
		doItemSetAttribute(item1.uid, "aid", 58261)
	end

	local function createWall(p)
		local janek = doCreateItem(1387,1,{x = 491, y = 199, z = 6})
		doItemSetAttribute(janek, "aid", 9105)
	end

	local function createWalll(i)
		local ela = doCreateItem(1387,1,{x = 490, y = 197, z = 7})
		doItemSetAttribute(ela, "aid", 9106)
	end
	
	local wall0 = {x = 491, y = 199, z = 6, stackpos=1}
	local getwall0 = getThingfromPos(wall0)
	local wall1 = {x = 490, y = 197, z = 7, stackpos=1}
	local getwall1 = getThingfromPos(wall1)
	local monsters = getMonstersfromArea(topLeft, buttomRight) 
	local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
	local tele_chk = getTileItemById(tp, 1387)
	if item.actionid == 58261 then
		doItemSetAttribute(item.uid, "aid", 58263)
	end

	if tele_chk.uid > 0 then 
		doRemoveItem(getTileItemById(tp,1387).uid) 
		doRemoveItem(getwall0.uid,1)
		addEvent(FirstWave, 0) 
		addEvent(FifthWave, 30000)
		addEvent(SecondWave, 60000) 
		addEvent(SixthWave, 90000) 
		addEvent(ThirdWave, 120000) 
		addEvent(ThirdWave1, 150000) 
		addEvent(FourthWave, 180000) 
		addEvent(SevenWave, 210000) 
		addEvent(Glllobe, 400000)  
		p = {wallid = getwall0.itemid}
		addEvent(createWall, 300*1000, p)
		i = {wallid = getwall1.itemid}
		addEvent(createWalll, 300*1000, i)
	end
	
	if item.actionid == 58263 then 
		doCreatureSay(cid, "You have to wait some time before this globe will charge.", TALKTYPE_ORANGE_1)
	end
	return TRUE 
end

movements/scripts/azerusarmy

function onStepIn(cid, item, position, fromPosition) 
        if item.actionid == 58262 then 
            if getPlayerStorageValue(cid,    10510) == -1  then         
            doCreatureSay(cid, "It seems by defating Azerus you have stopped this army from entering your world! Better leave this gastly place forever.", TALKTYPE_ORANGE_1) 
            setPlayerStorageValue(cid, 10510, 1) 
        end 
    return TRUE 
end  
end

movements/scripts/azerusdeath

function onStepIn(cid, item, position, fromPosition) 

local yalahar = {x = 543, y = 185, z = 5, stackpos=253} 
        if item.itemid == 9738 then 
        doTeleportThing(cid, yalahar, TRUE) 
        doSendMagicEffect(yalahar,12) 
        end 
     
    return TRUE 
end

E aproveitando eu fiz a WOTE e funcionou tudo certinho. Mas os itens de Zao paracem não estar danos os bonus de skill e absorb.

    <item id="12644" article="a" name="shield of corruption">
        <attribute key="weight" value="4900" />
        <attribute key="defense" value="36" />
        <attribute key="weaponType" value="shield" />
        <attribute key="skillSword" value="3" />
        <attribute key="showattributes" value="1" />
    </item>

O código parece estar certo e outros itens dão o bonus normal, apenas os de zao não.

Angelina_Me_by_msklotz.png

 

Atenciosamente,

Felipe Lotz.

 

Link para o post
Compartilhar em outros sites
57 minutos atrás, Felipe Lotz disse:

@Kemmlly

 

actions/scripts/azerus.lua

 


local BlindField = {x = 488, y = 179, z = 7, stackpos=1} 
 
function mapArea(fromPos, toPos, stack) 
        local pos = {x=fromPos.x, y=fromPos.y-1, z=fromPos.z} 
        return function() 
                if (pos.y < toPos.y) then 
                        pos.y = pos.y+1 
                elseif (pos.x <= toPos.x) then 
                        pos.y = fromPos.y 
                        pos.x = pos.x+1 
                else 
                        pos.x = fromPos.x 
                        pos.y = fromPos.y 
                        pos.z = pos.z+1 
                end 
                if (pos.x <= toPos.x and pos.y <= toPos.y or pos.z < toPos.z) then 
                        if (stack == nil) then 
                                return pos 
                        else 
                                pos.stackpos = stack  
                                return pos, getThingfromPos(pos) 
                        end 
                end 
        end 
end 


function getMonstersfromArea(fromPos, toPos) 
        local monsters = {}     
        for _, thing in mapArea(fromPos, toPos, 253) do 
                if isMonster(thing.uid) == TRUE then 
                        table.insert(monsters, thing.uid) 
            end 

        end 
          local bfm = getThingfromPos(BlindField) 
            if isMonster(bfm.uid) == TRUE then 
            table.insert(monsters, bfm.uid) 
            end 
        return monsters 
end 


function onUse(cid, item, fromPosition, itemEx, toPosition) 
	local topLeft = {x = 480, y = 178, z = 7}
	local buttomRight = {x = 499, y = 198, z = 7}
	local monsters = getMonstersfromArea(topLeft, buttomRight) 
	local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
	local tp = {x = 490, y = 197, z = 7}
	local glo = {x = 490, y = 188, z = 7}

	local function FirstWave() 
		doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z}) 
		doSummonCreature("Azerus", {x=glo.x,y=glo.y - 5,z=glo.z}) 
	end 
	local function FifthWave() 
		doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z}) 
	end 

	local function SecondWave() 
		local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
		for _, monster in pairs(monsters1) do 
			if getCreatureName(monster) == "Azerus" then 
				doRemoveCreature(monster) 
			end 
		end 
		
		doSummonCreature("Azerus1", {x=glo.x,y=glo.y - 5,z=glo.z}) 
		doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z}) 
	end 
	local function SixthWave() 
		doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z}) 
	end
	
	local function ThirdWave() 
		local monsters1 = getMonstersfromArea(topLeft, buttomRight) 

		for _, monster in pairs(monsters1) do 
			if getCreatureName(monster) == "Azerus" then 
				doRemoveCreature(monster) 
			end 
		end 
		doSummonCreature("Azerus2", {x= glo.x - 5,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z}) 
	end 

	local function ThirdWave1() --  with 2s delay 
		doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 5,z=glo.z}) 
	end 

	local function FourthWave() 
		doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z}) 
	end 

	local function SevenWave() 
		local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
		for _, monster in pairs(monsters1) do 
			if getCreatureName(monster) == "Azerus" then 
				doRemoveCreature(monster) 
			end 
		end 
		
		doSummonCreature("Azerus3", {x= glo.x - 5,y=glo.y,z=glo.z}) 
		doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z}) 
		doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z}) 
		doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z}) 
		doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z}) 
	end 

	local function Glllobe()
		local monst = getMonstersfromArea(topLeft, buttomRight) 
		for i = 1, #monst do
			doRemoveCreature(monst[i])

		end

		local item1 = getTileItemById(glo, 9767)
		doItemSetAttribute(item1.uid, "aid", 58261)
	end

	local function createWall(p)
		local janek = doCreateItem(1387,1,{x = 491, y = 199, z = 6})
		doItemSetAttribute(janek, "aid", 9105)
	end

	local function createWalll(i)
		local ela = doCreateItem(1387,1,{x = 490, y = 197, z = 7})
		doItemSetAttribute(ela, "aid", 9106)
	end
	
	local wall0 = {x = 491, y = 199, z = 6, stackpos=1}
	local getwall0 = getThingfromPos(wall0)
	local wall1 = {x = 490, y = 197, z = 7, stackpos=1}
	local getwall1 = getThingfromPos(wall1)
	local monsters = getMonstersfromArea(topLeft, buttomRight) 
	local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
	local tele_chk = getTileItemById(tp, 1387)
	if item.actionid == 58261 then
		doItemSetAttribute(item.uid, "aid", 58263)
	end

	if tele_chk.uid > 0 then 
		doRemoveItem(getTileItemById(tp,1387).uid) 
		doRemoveItem(getwall0.uid,1)
		addEvent(FirstWave, 0) 
		addEvent(FifthWave, 30000)
		addEvent(SecondWave, 60000) 
		addEvent(SixthWave, 90000) 
		addEvent(ThirdWave, 120000) 
		addEvent(ThirdWave1, 150000) 
		addEvent(FourthWave, 180000) 
		addEvent(SevenWave, 210000) 
		addEvent(Glllobe, 400000)  
		p = {wallid = getwall0.itemid}
		addEvent(createWall, 300*1000, p)
		i = {wallid = getwall1.itemid}
		addEvent(createWalll, 300*1000, i)
	end
	
	if item.actionid == 58263 then 
		doCreatureSay(cid, "You have to wait some time before this globe will charge.", TALKTYPE_ORANGE_1)
	end
	return TRUE 
end

movements/scripts/azerusarmy


function onStepIn(cid, item, position, fromPosition) 
        if item.actionid == 58262 then 
            if getPlayerStorageValue(cid,    10510) == -1  then         
            doCreatureSay(cid, "It seems by defating Azerus you have stopped this army from entering your world! Better leave this gastly place forever.", TALKTYPE_ORANGE_1) 
            setPlayerStorageValue(cid, 10510, 1) 
        end 
    return TRUE 
end  
end

movements/scripts/azerusdeath


function onStepIn(cid, item, position, fromPosition) 

local yalahar = {x = 543, y = 185, z = 5, stackpos=253} 
        if item.itemid == 9738 then 
        doTeleportThing(cid, yalahar, TRUE) 
        doSendMagicEffect(yalahar,12) 
        end 
     
    return TRUE 
end

E aproveitando eu fiz a WOTE e funcionou tudo certinho. Mas os itens de Zao paracem não estar danos os bonus de skill e absorb.


    <item id="12644" article="a" name="shield of corruption">
        <attribute key="weight" value="4900" />
        <attribute key="defense" value="36" />
        <attribute key="weaponType" value="shield" />
        <attribute key="skillSword" value="3" />
        <attribute key="showattributes" value="1" />
    </item>

O código parece estar certo e outros itens dão o bonus normal, apenas os de zao não.

Verifica no movements.xml se os itens estão declarados lá, se n tiver n funciona os atributos, e esse shield tá adicionando skill sword, mas n ta absorvendo nada, tem q adicionar outra tag para absorver.

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.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo