Ir para conteúdo
  • Cadastre-se

(Resolvido)[TFS 1.3] [AJUDA] Sumonar NPC por tempo


Ir para solução Resolvido por luanluciano93,

Posts Recomendados

.Qual servidor ou website você utiliza como base? 

 

Qual o motivo deste tópico? 

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

 

 

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

  function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	local playerPos = player:getPosition()
	local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
	local npcName = "Mad"
	local storage = "2252"
	local npc = Game.createNpc(npcName, position)

	function removeNpc(creature)
		local target = Npc(npc)
		target:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
		player:setStorageValue(storage, 0)
		target:remove()
	end
	
	if npc then
		npc:setMasterPos(position)
		position:sendMagicEffect(CONST_ME_POFF)
		player:say("can you help me?", TALKTYPE_MONSTER_SAY)
		player:setStorageValue(storage, os.time() + 1*60)
		addEvent(removeNpc, 1*60*1000, npcName)
		return true
	else
		position:sendMagicEffect(CONST_ME_POFF)
	end
end

Bom vamos lá Fiz um action que ao usar um certo scroll tu sumona um npc por 1 minuto. O codigo em si está 100% funcional porém quanto mais eu clico no scroll mais npcs eu gero. Queria limitar apenas a 1 npc. Mas não estou conseguindo... Alguem pode me auxiliar?

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Link para o post
Compartilhar em outros sites
local function removeNpc(creature)
	local target = Npc(npc)
	target:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
	player:setStorageValue(storage, 0)
	target:remove()
end

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	if player:getStorageValue(storage) >= os.time() then
		local playerPos = player:getPosition()
		local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
		local npcName = "Mad"
		local storage = 2252
		local npc = Game.createNpc(npcName, position)

		if npc then
			npc:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_POFF)
			player:say("can you help me?", TALKTYPE_MONSTER_SAY)
			player:setStorageValue(storage, os.time() + 1 * 60)
			addEvent(removeNpc, 1 * 60 * 1000, npcName)
		end
	else
		position:sendMagicEffect(CONST_ME_POFF)
	end
	return true
end

 

Editado por Marco Oliveira (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
1 hora atrás, Marco Oliveira disse:

local function removeNpc(creature)
	local target = Npc(npc)
	target:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
	player:setStorageValue(storage, 0)
	target:remove()
end

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	if player:getStorageValue(storage) >= os.time() then
		local playerPos = player:getPosition()
		local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
		local npcName = "Mad"
		local storage = 2252
		local npc = Game.createNpc(npcName, position)

		if npc then
			npc:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_POFF)
			player:say("can you help me?", TALKTYPE_MONSTER_SAY)
			player:setStorageValue(storage, os.time() + 1 * 60)
			addEvent(removeNpc, 1 * 60 * 1000, npcName)
		end
	else
		position:sendMagicEffect(CONST_ME_POFF)
	end
	return true
end

 

não deu certo, dessa forma nem sumona o npc fica dando o poff mesmo se eu nao tiver com o os.time

Link para o post
Compartilhar em outros sites
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	local playerPos = player:getPosition()
	local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
	local npcName = "Mad"
	local function removeNpc(name)
		local var = Npc(name)
		if var and var:isNpc() then
			var:remove()
		end
	end	
	if not Npc(npcName) then
		local create = Game.createNpc(npcName, position)
		if create then
			create:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_POFF)
			player:say("can you help me?", TALKTYPE_MONSTER_SAY)
			addEvent(removeNpc, 1*60*1000, npcName)
			return true
		end
	else
		position:sendMagicEffect(CONST_ME_POFF)
	end
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
6 horas atrás, Vodkart disse:

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	local playerPos = player:getPosition()
	local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
	local npcName = "Mad"
	local function removeNpc(name)
		local var = Npc(name)
		if var and var:isNpc() then
			var:remove()
		end
	end	
	if not Npc(npcName) then
		local create = Game.createNpc(npcName, position)
		if create then
			create:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_POFF)
			player:say("can you help me?", TALKTYPE_MONSTER_SAY)
			addEvent(removeNpc, 1*60*1000, npcName)
			return true
		end
	else
		position:sendMagicEffect(CONST_ME_POFF)
	end
end

 

 

testei aqui ele não sumona, fica dando poff como se ja existisse um npc criado. Vou mandar um video

Link para o post
Compartilhar em outros sites
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	local playerPos = player:getPosition()
	local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
	local npcName = "Mad"
	local function removeNpc(name)
		local var = Npc(name)
		if var and var:isNpc() then
			var:remove()
		end
	end    
	local creature = Creature(npcName)
	if not creature then
		local create = Game.createNpc(npcName, position)
		if create then
			create:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_POFF)
			player:say("can you help me?", TALKTYPE_MONSTER_SAY)
			addEvent(removeNpc, 1*60*1000, npcName)
			return true
		end
	else
		position:sendMagicEffect(CONST_ME_POFF)
	end
end

 

 

só pode ter 1 npc no server inteiro... certo?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
local function removeNpc(creature)
	local target = Npc(npc)
	target:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
	player:setStorageValue(storage, 0)
	target:remove()
end

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	if player:getStorageValue(storage) < os.time() then
		local playerPos = player:getPosition()
		local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
		local npcName = "Mad"
		local storage = 2252
		local npc = Game.createNpc(npcName, position)

		if npc then
			npc:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_POFF)
			player:say("can you help me?", TALKTYPE_MONSTER_SAY)
			player:setStorageValue(storage, os.time() + 1 * 60)
			addEvent(removeNpc, 1 * 60 * 1000, npcName)
		end
	else
		position:sendMagicEffect(CONST_ME_POFF)
	end
	return true
end

 

Link para o post
Compartilhar em outros sites
4 horas atrás, Vodkart disse:




function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	local playerPos = player:getPosition()
	local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
	local npcName = "Mad"
	local function removeNpc(name)
		local var = Npc(name)
		if var and var:isNpc() then
			var:remove()
		end
	end    
	local creature = Creature(npcName)
	if not creature then
		local create = Game.createNpc(npcName, position)
		if create then
			create:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_POFF)
			player:say("can you help me?", TALKTYPE_MONSTER_SAY)
			addEvent(removeNpc, 1*60*1000, npcName)
			return true
		end
	else
		position:sendMagicEffect(CONST_ME_POFF)
	end
end

 

 

só pode ter 1 npc no server inteiro... certo?

Não, este script vai servir pra sumonar npcs proprios do server que vai auxiliar nas caves, vendas de itens e tudo mais... vai ser um item pra vender no store no caso

No caso cada pessoa que tiver o scroll pode sumonar apenas 1 npc até o outro que ele sumonou sumir, é como se fosse aqueles summons da vocação do global

Editado por Sh0z (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	local storage = "2252"
	
	if player:getStorageValue(storage) < os.time() then
		local playerPos = player:getPosition()
		local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
		local npcName = "Mad"
		local npc = Game.createNpc(npcName, position)

		function removeNpc(creature)
			local target = Npc(npc)
			target:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
			player:setStorageValue(storage, 0)
			target:remove()
		end
		
		if npc then
			npc:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_POFF)
			player:say("can you help me?", TALKTYPE_MONSTER_SAY)
			player:setStorageValue(storage, os.time() + 1*60)
			addEvent(removeNpc, 1*60*1000, npcName)
			return true
		else
			position:sendMagicEffect(CONST_ME_POFF)
		end
	else
		player:sendCancelMessage("You need to wait a minute.")
		position:sendMagicEffect(CONST_ME_POFF)
	end
end

 

Se quiser testar esse tbem ... 

 

local storage = 2252

local function removeNpc(creature)
	local target = Npc(creature)
	target:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
	target:remove()
end

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	
	if player:getStorageValue(storage) < os.time() then

		local npcName = "Mad"
		local playerPos = player:getPosition()
		local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
		local npc = Game.createNpc(npcName, position)

		if npc then
			npc:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_MAGIC_RED)
			position:say("Can you help me?", TALKTYPE_MONSTER_SAY)
			player:setStorageValue(storage, os.time() + 1 * 60)
			addEvent(removeNpc, 1 * 60 * 1000, npc:getGuid())
		else
			player:sendCancelMessage("There is not enough room.")
			position:sendMagicEffect(CONST_ME_POFF)
		end
	else
		player:sendCancelMessage("You need to wait a minute.")
		position:sendMagicEffect(CONST_ME_POFF)
	end

	return true
end

 

Link para o post
Compartilhar em outros sites
1 hora atrás, luanluciano93 disse:

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	local storage = "2252"
	
	if player:getStorageValue(storage) < os.time() then
		local playerPos = player:getPosition()
		local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
		local npcName = "Mad"
		local npc = Game.createNpc(npcName, position)

		function removeNpc(creature)
			local target = Npc(npc)
			target:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
			player:setStorageValue(storage, 0)
			target:remove()
		end
		
		if npc then
			npc:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_POFF)
			player:say("can you help me?", TALKTYPE_MONSTER_SAY)
			player:setStorageValue(storage, os.time() + 1*60)
			addEvent(removeNpc, 1*60*1000, npcName)
			return true
		else
			position:sendMagicEffect(CONST_ME_POFF)
		end
	else
		player:sendCancelMessage("You need to wait a minute.")
		position:sendMagicEffect(CONST_ME_POFF)
	end
end

 

Se quiser testar esse tbem ... 

 


local storage = 2252

local function removeNpc(creature)
	local target = Npc(creature)
	target:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
	target:remove()
end

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	
	if player:getStorageValue(storage) < os.time() then

		local npcName = "Mad"
		local playerPos = player:getPosition()
		local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
		local npc = Game.createNpc(npcName, position)

		if npc then
			npc:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_MAGIC_RED)
			position:say("Can you help me?", TALKTYPE_MONSTER_SAY)
			player:setStorageValue(storage, os.time() + 1 * 60)
			addEvent(removeNpc, 1 * 60 * 1000, npc:getGuid())
		else
			player:sendCancelMessage("There is not enough room.")
			position:sendMagicEffect(CONST_ME_POFF)
		end
	else
		player:sendCancelMessage("You need to wait a minute.")
		position:sendMagicEffect(CONST_ME_POFF)
	end

	return true
end

O primeiro deu certo, só tive que colocar um novo local pos junto com o ultimo else, estava dando erro na hora de soltar o efeito, Mas agora está perfeito. Só tenho que testar com 2 ou mais pessoas sumonando o npc... Vou fazer uns testes e depois edito aqui

 

Link para o post
Compartilhar em outros sites
  • Solução
9 minutos atrás, Sh0z disse:

O primeiro deu certo, só tive que colocar um novo local pos junto com o ultimo else, estava dando erro na hora de soltar o efeito, Mas agora está perfeito. Só tenho que testar com 2 ou mais pessoas sumonando o npc... Vou fazer uns testes e depois edito aqui

 

ótimo, editei aqui ... 

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	local storage = "2252"
	local playerPos = player:getPosition()	

	if player:getStorageValue(storage) < os.time() then
		local position = Position(playerPos.x, playerPos.y + 1, playerPos.z)
		local npcName = "Mad"
		local npc = Game.createNpc(npcName, position)

		function removeNpc(creature)
			local target = Npc(npc)
			target:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
			player:setStorageValue(storage, 0)
			target:remove()
		end
		
		if npc then
			npc:setMasterPos(position)
			position:sendMagicEffect(CONST_ME_MAGIC_RED)
			player:say("can you help me?", TALKTYPE_MONSTER_SAY)
			player:setStorageValue(storage, os.time() + 1*60)
			addEvent(removeNpc, 1*60*1000, npcName)
			return true
		else
			player:sendCancelMessage("There is not enough room.")
			playerPos:sendMagicEffect(CONST_ME_POFF)
		end
	else
		player:sendCancelMessage("You need to wait a minute.")
		playerPos:sendMagicEffect(CONST_ME_POFF)
	end
end

 

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