Ir para conteúdo
  • 0

NPC Teleport c/ certo item, gold e level.


LbrS

Pergunta

Olá.
Andei tentando aqui um sistema de NPC para o barco do meu projeto, tentei pegar alguns scripts que encontrei pelo fórum e editar adicionando o que eu queria, mas acabei falhando completamente, então estou aqui pedindo á alguém que me ajude, se for possível.

Seguinte, gostaria de um NPC da seguinte forma :

1. Ele dá várias opções de locais que você pode teleportar.

Ex: Olá, posso te levar á diversos lugares. Diga travel.
*PLAYER DIZ TRAVEL*
Posso te levar á Cidade1 e Cidade2. Escolha seu destino.

2. O player irá escolher o local, porém o NPC só irá teleportá-lo caso ele tenha :

Um certo item.
(CADA DESTIDO TERÁ UM CERTO ITEM PARA PODER TELEPORTAR.)
(ex: CIDADE1 = Fire Sword, CIDADE2 = Wand of Vortex.)

Um certo nível.
(CADA DESTINO TERÁ UM CERTO NÍVEL PARA PODER TELEPORTAR.)
(ex: CIDADE1 = Lv.30, CIDADE2 = Lv.60)

Uma certa quantidade de gold.
(CADA DESTINO TERÁ UM CERTO VALOR PARA PODER TELEPORTAR.)
(ex: CIDADE1 = 1000 gold, CIDADE2 = 2000 gold.)

~

É basicamente isso, lembrando de uma coisa:
APÓS TELEPORTAR, O ITEM NÃO É CONSUMIDO, ELE CONTINUA NA BP.
(O gold é consumido, claro.)

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

travelnpc.xml

<?xml version="1.0"?>
<npc name="Travel NPC" script="data/npc/scripts/travelnpc.lua" walkinterval="1000" floorchange="0">
<health now="100" max="100"/>
<look type="155" head="115" body="76" legs="76" feet="83" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|. Posso levar voce para {carlin} ou {thais}!" />
</parameters>
</npc>

travelnpc.lua

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)				npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)			npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)			npcHandler:onCreatureSay(cid, type, msg)		end
function onThink()					npcHandler:onThink()					end

function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end

	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local a = {
levelcidade1 = 30, -- Level que necessita para ir na cidade 1
levelcidade2 = 60, -- Level que necessita para ir na cidade 2
itemcidade1 = 2392, -- Item que necessita para viajar para cidade 1
itemcidade2 = 2190, -- Item que necessita para viajar para cidade 2
goldcidade1 = 1000, -- Gold que precisa para viajar para cidade 1
goldcidade2 = 2000, -- Gold que precisa para viajar para cidade 2
poscidade1 = {x = 168, y = 57, z = 7}, -- Posição da cidade 1
poscidade2 = {x = 168, y = 58, z = 7}, -- Posição da cidade 2
}
 
    
	if msgcontains(msg, 'carlin') then
		if getPlayerItemCount(cid, a.itemcidade1) >= 1 then
			if getPlayerLevel(cid) >= a.levelcidade1 then
				if getPlayerMoney(cid) >= a.goldcidade1 then
					doTeleportThing(cid, a.poscidade1)
					doPlayerRemoveMoney(cid, a.goldcidade1)
					selfSay('Você foi teleportado para carlin!', cid)
				else
					selfSay('Você precisa de '..a.goldcidade1..' gold coins para viajar para {carlin}.', cid)
				end
			else
				 selfSay('Você precisa ser '..a.levelcidade1..' para viajar para {carlin}.', cid)
			end
		else
			selfSay('Você precisa de uma '..getItemNameById(a.itemcidade1)..' para ir até {carlin}!', cid)
		end
	end
	
		if msgcontains(msg, 'thais') then
		if getPlayerItemCount(cid, a.itemcidade2) >= 1 then
			if getPlayerLevel(cid) >= a.levelcidade2 then
				if getPlayerMoney(cid) >= a.goldcidade2 then
					doTeleportThing(cid, a.poscidade2)
					doPlayerRemoveMoney(cid, a.goldcidade2)
					selfSay('Você foi teleportado para thais!', cid)
				else
					selfSay('Você precisa de '..a.goldcidade2..' gold coins para viajar para {thais}.', cid)
				end
			else
				 selfSay('Você precisa ser '..a.levelcidade2..' para viajar para {thais}.', cid)
			end
		else
			selfSay('Você precisa de uma '..getItemNameById(a.itemcidade2)..' para ir até {thais}!', cid)
		end
	end
return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new()) 

Eu testei e funcionou, caso algum erro basta avisar happy.png

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

×
×
  • Criar Novo...