- Awards
- 12
Hola estoy tratando de hacer un Npc que su funcion sea el de dar teleportear a un jugador que traiga cierto item.
Este item que el revisa que traigan los jugadores el mismo lo otorga al intercambiar 4 items por ese item.
Una vez que ya tiene ese item para poder acceder a la sala donde los envia ya no les pedira esos 4 items solo revisara que siempre que quieran ir a la sala tengan ese item.
Codigo:
Gracias.
Este item que el revisa que traigan los jugadores el mismo lo otorga al intercambiar 4 items por ese item.
Una vez que ya tiene ese item para poder acceder a la sala donde los envia ya no les pedira esos 4 items solo revisara que siempre que quieran ir a la sala tengan ese item.
Codigo:
local internalNpcName = "Torkada"
local npcType = Game.createNpcType(Torkada_hall)
local npcConfig = {}
npcConfig.name = internalNpcName
npcConfig.description = internalNpcName
npcConfig.health = 100
npcConfig.maxHealth = npcConfig.health
npcConfig.walkInterval = 2000
npcConfig.walkRadius = 2
npcConfig.outfit = {
lookType = 1243,
lookHead = 95,
lookBody = 113,
lookLegs = 39,
lookFeet = 115
}
npcConfig.flags = {
floorchange = false
}
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
npcType.onThink = function(npc, interval)
npcHandlernThink(npc, interval)
end
npcType.onAppear = function(npc, creature)
npcHandlernAppear(npc, creature)
end
npcType.onDisappear = function(npc, creature)
npcHandlernDisappear(npc, creature)
end
npcType.onMove = function(npc, creature, fromPosition, toPosition)
npcHandlernMove(npc, creature, fromPosition, toPosition)
end
npcType.onSay = function(npc, creature, type, message)
npcHandlernSay(npc, creature, type, message)
end
npcType.onCloseChannel = function(npc, creature)
npcHandlernCloseChannel(npc, creature)
end
keywordHandler:addKeyword({'hi'}, StdModule.say, {npcHandler = npcHandler, text = "Hello mortal, do you have what it takes to prove your entry into the abode of my blood lord?"})
local ItemID = {43501,43502,43503,43504}
local pergamin = {12540}
local function creatureSayCallback(npc, creature, type, message)
local player = Player(creature)
if MsgContains(message, 'yes') then
for i=1, #ItemID do
if player:getItemCount(ItemID) >= 1 then
player:removeItem(ItemID, 1)
player:addItem(12540, 1)
npcHandler:say("Very well take this as a reward for defeating the main servants.!", npc, creature)
break
else
for i=1, #pergamin do
if player:getItemCount(pergamin) >= 1 then
local travelNode = keywordHandler:addKeyword({'Bakragore'}, StdModule.say, {npcHandler = npcHandler, text = 'Are you ready to face my lord {Bakragore}?'})
travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = false, level = 0, cost = 0, destination = Position(34141, 32049, 13) })
travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, reset = true, text = 'When you stop shaking, come back to me.'})
break
if MsgContains(message, 'no') then
npcHandler:say("Get away from my mortal presence!", npc, creature)
break
end
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true)
-- npcType registering the npcConfig table
npcType:register(npcConfig)
Gracias.