Ir para conteúdo
  • 0

[Resolvido] Problemas na hora de remover a criatura


LeoTK

Pergunta

Salve galera recentemente estou editando um script e cheguei no seguinte problema o script funciona tudo corretamente o problema é quando eu possuo um e ele vai remover o que ele já criou ele remove e cria ele novamente e fica nessa em vez de remover ele e parar alguém ai poderia dar uma força ? ^^ 

 

Parte que esta com problema no script

 

Spoiler

 


            for i = 1, (#getCreatureSummons(cid)) do
                local v = getCreatureSummons(cid)
                if #getCreatureSummons(cid) >= 1 and getCreatureName(v[i]) ~= string.sub(desc, a + 2, b - 1) then
                    local x = doSummonMonster(cid, string.sub(desc, a + 2, b - 1))
                    doCreatureSay(cid, 'Go '..string.sub(desc, a + 2, b - 1)..'!', TALKTYPE_MONSTER_YELL)
                    --doSendMagicEffect(getThingPos(x), config.effect)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'You summoned monster.')
                else
                    if getCreatureName(v[i]) == string.sub(desc, a + 2, b - 1) then
                        doRemoveCreature(v[i])
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Your summon backed to vial.')
                    end
                    return
                end    
            end
        end

 

 

 

Script completo abaixo

Spoiler

 


function onUse(cid, item, fromPosition, itemEx, toPosition)
	local desc = getItemAttribute(item.uid, 'description') == nil and getItemInfo(item.itemid).description or getItemAttribute(item.uid, 'description')
	local config = {
		storageExhaust = 55668,
		exhaustTime = 0,
		effect = CONST_ME_HITBYFIRE
	}
	
	if exhaustion.check(cid, config.storageExhaust) ~= false then
		return doPlayerSendCancel(cid, 'You must wait '..exhaustion.get(cid, config.storageExhaust)..' seconds to use this item again.')
	end
	
	if not isCreature(itemEx.uid) then
		if string.find(desc, 'Alma selada:') ~= nil then
			local x, y = string.find(desc, ': %a+.')
			local a, b = string.find(desc, ': %a+ %a+.')
 
			if getTileInfo(getThingPos(cid)).protection then
				return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'You can\'t summon monster in protection zone.')
			end
 
			if a ~= nil then
        if #getCreatureSummons(cid) == 0 then
                    local x = doSummonMonster(cid, string.sub(desc, a + 2, b - 1))
                    doCreatureSay(cid, 'Go '..string.sub(desc, a + 2, b - 1)..'!', TALKTYPE_MONSTER_YELL)
                    --doSendMagicEffect(getThingPos(x), config.effect)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'You summoned monster.')
        else
            for i = 1, (#getCreatureSummons(cid)) do
                local v = getCreatureSummons(cid)
                if #getCreatureSummons(cid) >= 1 and getCreatureName(v[i]) ~= string.sub(desc, a + 2, b - 1) then
                    local x = doSummonMonster(cid, string.sub(desc, a + 2, b - 1))
                    doCreatureSay(cid, 'Go '..string.sub(desc, a + 2, b - 1)..'!', TALKTYPE_MONSTER_YELL)
                    --doSendMagicEffect(getThingPos(x), config.effect)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'You summoned monster.')
                else
                    if getCreatureName(v[i]) == string.sub(desc, a + 2, b - 1) then
                        doRemoveCreature(v[i])
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Your summon backed to vial.')
                    end
                    return
                end    
            end
        end
			elseif x ~= nil then
				if #getCreatureSummons(cid) == 0 then
					local x = doSummonMonster(cid, string.sub(desc, x + 2, y - 1))
					doCreatureSay(cid, 'Go '..string.sub(desc, x + 2, y - 1)..'!', TALKTYPE_MONSTER_YELL)
					--doSendMagicEffect(getThingPos(x), config.effect)
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'You summoned monster.')
				else
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'You already have summon.')
				end
			else
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Unknow monster.')
			end
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'You didn\'t catch anything into vial.')
		end
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'You can summon catched monster if you will use it on tile or, on self if you want to that summon back to vial.')
	end
	
	--exhaustion.set(cid, config.storageExhaust, config.exhaustTime)
	return true
end

 

 

 

 

Editado por LeoTK
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

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