Ir para conteúdo

ZeusMnc

Campones
  • Total de itens

    4
  • Registro em

  • Última visita

Posts postados por ZeusMnc

  1. 3 horas atrás, lSainty disse:

    Não lembro ao certo o funcionamento da função addEvent, mas tenta trocar isso:
     

    addEvent(function(playerSummons)
    				if (#playerSummons >= 1) then
    					doRemoveCreature(playerSummons[1])
    				end
    			end, 120000, getCreatureSummons(cid))

    Por isso:

    addEvent(function()
    				if (#getCreatureSummons(cid) >= 1) then
    					doRemoveCreature(playerSummons[1])
    				end
    			end, 120000)

     

    Resolvido. Obrigado!

  2. 11 horas atrás, lSainty disse:

    Não testei, mas creio que assim deva dar certo:

      Ocultar conteúdo
    function onUse(cid, item, fromPosition, itemEx, toPosition)    
    	
    	local dolls = {
    		
    		[13708] = {pet = "Fly Summon"},
    		[13711] = {pet = "Dragon Summon"}, -- ID DO ITEM E NOME DO MONSTRO QUE IRÁ SUMONAR
    		[13712] = {pet = "Dog Summon"},
    		[13714] = {pet = "Cat Summon"},
    		[13713] = {pet = "Gregory Summon"},
    		[13781] = {pet = "Power Oozaru Summon"},
    		[13715] = {pet = "Ghost Summon"},
    		[13717] = {pet = "Golden Power Summon"},
    		[13718] = {pet = "Mini Summon"},
    		[13716] = {pet = "Mini Golden Summon"},
    		[13782] = {pet = "Red Ghost Summon"},
    		[13707] = {pet = "Black Power Summon"},
    		[13709] = {pet = "Orc Summon"},
    		[13783] = {pet = "Karin Summon"},
    		[13706] = {pet = "Anjo Summon"},
    		[13710] = {pet = "Wolf God Helper"},
    		[13784] = {pet = "Patinho Summon"},
    	}
    	
    	local go = dolls[item.itemid]
    	local summon = getCreatureSummons(cid)
    	local waittime = 600 -- Tempo de exhaustion em segundos
    	local strtime = 250663 -- Storage, nunca usar a mesma em outra Script do mesmo tipo. Ex: mesmo creaturescript, mesmo action e etc...
    	
    	if exhaustion.check(cid, strtime) then
    		doPlayerSendTextMessage(cid, 19, "Aguarde " .. exhaustion.get(cid, strtime) .. " segundos para usar pet novamente .")
    		return true
    	end 
    	
    	if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid then  
    		doPlayerSendCancel(cid, "Voce deve colocar Contrato no lugar do escudo.") 
    		return true
    	end 
    	
    	---------------------------------------------------
    	if not (getTilePzInfo(getCreaturePosition(cid))) then
    		if #summon >= 1 then
    			for _, pid in ipairs(summon) do
    				doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você já tem criatura summonada")
    				exhaustion.set(cid, strtime, waittime)      -- checar time
    			end
    			return true
    		end
    		
    		if item.itemid == 13708 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13711 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13712 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13714 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		
    		if item.itemid == 13713 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		
    		if item.itemid == 13781 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13782 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13716 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13717 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13718 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13715 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13707 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13706 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13709 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13783 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13710 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		if item.itemid == 13784 then              -- ID DO ITEM 
    			doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    			doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    			addEvent(function(playerSummons)
    					if (#playerSummons >= 1) then
    						doRemoveCreature(playerSummons[1])
    					end
    				end, 120000, getCreatureSummons(cid))
    			exhaustion.set(cid, strtime, waittime)  
    		end 
    		
    		else
    		doPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")
    		return true
    	end
    end

     

    Acredito que dê para melhorar o código tirando todos esses 'ifs' também, pois se você já sabe o monstro que vai ser summonado e seu respectivo item dentro da tabela 'dolls', e posteriormente na variável 'go', não é necessário ficar checando pelo itemid infinitas vezes, dessa forma:

      Ocultar conteúdo
    function onUse(cid, item, fromPosition, itemEx, toPosition)    
    	
    	local dolls = {
    		
    		[13708] = {pet = "Fly Summon"},
    		[13711] = {pet = "Dragon Summon"}, -- ID DO ITEM E NOME DO MONSTRO QUE IRÁ SUMONAR
    		[13712] = {pet = "Dog Summon"},
    		[13714] = {pet = "Cat Summon"},
    		[13713] = {pet = "Gregory Summon"},
    		[13781] = {pet = "Power Oozaru Summon"},
    		[13715] = {pet = "Ghost Summon"},
    		[13717] = {pet = "Golden Power Summon"},
    		[13718] = {pet = "Mini Summon"},
    		[13716] = {pet = "Mini Golden Summon"},
    		[13782] = {pet = "Red Ghost Summon"},
    		[13707] = {pet = "Black Power Summon"},
    		[13709] = {pet = "Orc Summon"},
    		[13783] = {pet = "Karin Summon"},
    		[13706] = {pet = "Anjo Summon"},
    		[13710] = {pet = "Wolf God Helper"},
    		[13784] = {pet = "Patinho Summon"},
    	}
    	
    	local go = dolls[item.itemid]
    	local summon = getCreatureSummons(cid)
    	local waittime = 600 -- Tempo de exhaustion em segundos
    	local strtime = 250663 -- Storage, nunca usar a mesma em outra Script do mesmo tipo. Ex: mesmo creaturescript, mesmo action e etc...
    	
    	if exhaustion.check(cid, strtime) then
    		doPlayerSendTextMessage(cid, 19, "Aguarde " .. exhaustion.get(cid, strtime) .. " segundos para usar pet novamente .")
    		return true
    	end 
    	
    	if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid then  
    		doPlayerSendCancel(cid, "Voce deve colocar Contrato no lugar do escudo.") 
    		return true
    	end 
    	
    	---------------------------------------------------
    	if not (getTilePzInfo(getCreaturePosition(cid))) then
    		if #summon >= 1 then
    			for _, pid in ipairs(summon) do
    				doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você já tem criatura summonada")
    				exhaustion.set(cid, strtime, waittime)      -- checar time
    			end
    			return true
    		end
    		
    		doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    		doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    		doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    		addEvent(function(playerSummons)
    				if (#playerSummons >= 1) then
    					doRemoveCreature(playerSummons[1])
    				end
    			end, 120000, getCreatureSummons(cid))
    		exhaustion.set(cid, strtime, waittime)  
    	else
    		doPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")
    		return true
    	end
    end

     

     

    @lSainty

    Realizei o teste do segundo script e realmente foi bem otimizado/Resumido, porem acaba com o mesmo erro!
    [20:25:54.116] [Error - Action Interface]
    [20:25:54.117] In a timer event called from:
    [20:25:54.117] data/actions/scripts/Petsystemm.lua:onUse
    [20:25:54.118] Description:
    [20:25:54.118] (luaDoRemoveCreature) Creature not found

     

  3. Salve Xtibia tenho um Script de Summon!

    e utilizo o Addevent para fazer ele sumir depois de 2 minutos! 

    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))

    Porem caso ele morra, antes do evento sobe um retorno de erro na Distro!

    Erro:

    Spoiler

    [17:34:36.353] [Error - Action Interface]
    [17:34:36.354] In a timer event called from:
    [17:34:36.355] data/actions/scripts/Petsystemm.lua:onUse
    [17:34:36.355] Description:
    [17:34:36.356] (luaDoRemoveCreature) Creature not found



    Qual seria a forma de passar por isso ? sem tomar esse retorno de erro ?

    Script.
     

    Spoiler

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

    local dolls = {

    [13708] = {pet = "Fly Summon"},
    [13711] = {pet = "Dragon Summon"}, -- ID DO ITEM E NOME DO MONSTRO QUE IRÁ SUMONAR
    [13712] = {pet = "Dog Summon"},
    [13714] = {pet = "Cat Summon"},
    [13713] = {pet = "Gregory Summon"},
    [13781] = {pet = "Power Oozaru Summon"},
    [13715] = {pet = "Ghost Summon"},
    [13717] = {pet = "Golden Power Summon"},
    [13718] = {pet = "Mini Summon"},
    [13716] = {pet = "Mini Golden Summon"},
    [13782] = {pet = "Red Ghost Summon"},
    [13707] = {pet = "Black Power Summon"},
    [13709] = {pet = "Orc Summon"},
    [13783] = {pet = "Karin Summon"},
    [13706] = {pet = "Anjo Summon"},
    [13710] = {pet = "Wolf God Helper"},
    [13784] = {pet = "Patinho Summon"},
    }

    local go = dolls[item.itemid]
    local summon = getCreatureSummons(cid)
    local waittime = 600 -- Tempo de exhaustion em segundos
    local strtime = 250663 -- Storage, nunca usar a mesma em outra Script do mesmo tipo. Ex: mesmo creaturescript, mesmo action e etc...

    if exhaustion.check(cid, strtime) then
    doPlayerSendTextMessage(cid, 19, "Aguarde " .. exhaustion.get(cid, strtime) .. " segundos para usar pet novamente .")
    return true
    end 

    if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid then  
    doPlayerSendCancel(cid, "Voce deve colocar Contrato no lugar do escudo.") 
    return true
    end 

    ---------------------------------------------------
    if not (getTilePzInfo(getCreaturePosition(cid))) then
    if #summon >= 1 then
    for _, pid in ipairs(summon) do
    doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você já tem criatura summonada")
    exhaustion.set(cid, strtime, waittime)      -- checar time
    end
    return true
    end

    if item.itemid == 13708 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13711 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13712 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13714 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 


    if item.itemid == 13713 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 


    if item.itemid == 13781 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13782 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13716 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13717 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13718 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13715 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13707 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13706 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13709 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13783 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13710 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    if item.itemid == 13784 then              -- ID DO ITEM 
    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)      -- MENSAGEM AO SUMONAR O PET
    doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 350)
    addEvent(doRemoveCreature, 120000, (getCreatureSummons(cid)[1]))
    exhaustion.set(cid, strtime, waittime)  
    end 

    else
    doPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")
    return true
    end
    end

    E teria como implementar um sandCancel ? para ele checar o storage e ficar posicionando quanto tempo falta para o summon sumir ? ( e qual seria a forma se possivel detalhar para meu melhor aprendizado)

     

  4. Hello Xtibia!  TFS 0.4 8.60


    Estou com um problema no script e gostaria de uma ajuda! 

    Ele funciona da Seguinte forma apos matar x Creatures Spawn Boss na Regiao! 

    Porem nao esta contabilizando as creatures no chat!
    Acredito que tenho que alterar algo na

    function para identificar o player e soltar o aviso para ele! (Pelo oque entendi o script n consegue verificar quem e o player que esta matando a creature!


    Error Distro:

    Spoiler

    [11:34:38.369] [Error - CreatureScript Interface]
    [11:34:38.371] data/creaturescripts/scripts/BossCreature.lua:onDeath
    [11:34:38.372] Description:
    [11:34:38.372] (luaGetCreatureName) Creature not found

    [11:34:38.373] [Error - CreatureScript Interface]
    [11:34:38.373] data/creaturescripts/scripts/BossCreature.lua:onDeath
    [11:34:38.374] Description:
    [11:34:38.374] data/creaturescripts/scripts/BossCreature.lua:39: attempt to concatenate a boolean value
    [11:34:38.374] stack traceback:
    [11:34:38.375]  data/creaturescripts/scripts/BossCreature.lua:39: in function <data/creaturescripts/scripts/BossCreature.lua:16>

     

    Script : BossCreature.Lua (CreatureScript)
     

    Spoiler

    function doCreateMonsterWalkableAreaPosition(name, from, to)
       local pos = {x=math.random(from.x, to.x), y=math.random(from.y, to.y), z=math.random(from.z, to.z)}
       if isWalkable(pos, false, false, false) then
          doSummonCreature(name, pos)
       else
          doCreateMonsterWalkableAreaPosition(name, from, to)
       end
    end

    local t = {
       [{"Dragon", "Dragon lord"}] = {storage = 741320, amount = 10, boss = "Boss Dragon", from = {x = 80, y = 187, z = 8}, to = {x = 85, y = 191, z = 8}},
       [{"Black Dragon", " Black Dragon lord"}] = {storage = 741321, amount = 10, boss = "Boss Black Dragon", from = {x = 800, y = 1817, z = 8}, to = {x = 851, y = 1911, z = 8}},
    }


    function onDeath(cid, corpse, deathList)
       local killer = deathList[1]
       if not isMonster(cid) or not isPlayer(killer) then
          return true
       end
       for v , r in pairs(t) do
          if isInArray(v, getCreatureName(cid)) then
             local contador = getGlobalStorageValue(r.storage) <= 0 and 0 or getGlobalStorageValue(r.storage)
             if contador >= r.amount then
                for x = r.from.x - 1, r.to.x + 1 do
                   for y = r.from.y - 1, r.to.y + 1 do
                      local pos = {x=x, y=y, z=r.from.z}
                      local m = getTopCreature(pos).uid
                      if m ~= 0 and isMonster(m) then
                         doRemoveCreature(m)
                      end
                   end
                end
                doCreateMonsterWalkableAreaPosition(r.boss, r.from, r.to)
                setGlobalStorageValue(r.storage, 0)
                doBroadcastMessage("O monstro ".. r.boss .." nasceu!", 20)
             else
                setGlobalStorageValue(r.storage, contador + 1)
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Boss Spawning: '..(getGlobalStorageValue(r.storage)+1)..' of '..r.amount..' '..getCreatureName(target)..'s killed to spawn boss.') 
             end
          end
       end
       return true
    end

    Creature Script xml
        <event type="Death" name="BossSpawn" event="script" value="BossCreature.lua"/>

    Login.lua
    registerCreatureEvent(cid, "BossSpawn")

     

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...