Skip to content

Commit

Permalink
feat: Galthen's Satchel and Artefact Box (#2149)
Browse files Browse the repository at this point in the history
Fixes from map on pr #2314
  • Loading branch information
GuiValladao authored May 20, 2024
1 parent 7dda937 commit 50b4c26
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 1 deletion.
68 changes: 68 additions & 0 deletions data-otservbr-global/npc/an_idol.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
local internalNpcName = "An Idol"
local npcType = Game.createNpcType(internalNpcName)
local npcConfig = {}

npcConfig.name = internalNpcName
npcConfig.description = internalNpcName

npcConfig.health = 100
npcConfig.maxHealth = npcConfig.health
npcConfig.walkInterval = 0
npcConfig.walkRadius = 2

npcConfig.outfit = {
lookTypeEx = 15894,
}

npcConfig.flags = {
floorchange = false,
}

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)

npcType.onThink = function(npc, interval)
npcHandler:onThink(npc, interval)
end

npcType.onAppear = function(npc, creature)
npcHandler:onAppear(npc, creature)
end

npcType.onDisappear = function(npc, creature)
npcHandler:onDisappear(npc, creature)
end

npcType.onMove = function(npc, creature, fromPosition, toPosition)
npcHandler:onMove(npc, creature, fromPosition, toPosition)
end

npcType.onSay = function(npc, creature, type, message)
npcHandler:onSay(npc, creature, type, message)
end

npcType.onCloseChannel = function(npc, creature)
npcHandler:onCloseChannel(npc, creature)
end

local function creatureSayCallback(npc, creature, type, message)
local player = Player(creature)

if not npcHandler:checkInteraction(npc, creature) then
return false
end

if MsgContains(message, "VBOX") then
npcHandler:say("J-T B^C J^BXT°", npc, creature)
player:teleportTo(Position(32366, 32531, 8), false)
player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, false)

-- npcType registering the npcConfig table
npcType:register(npcConfig)
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
local galthensTree = Action()
function galthensTree.onUse(player, item, fromPosition, target, toPosition, isHotkey)
local hasExhaustion, message = player:kv():get("galthens-satchel") or 0, "Empty."
if hasExhaustion < os.time() then
local container = player:addItem(36813)
container:addItem(36810, 1)
player:kv():set("galthens-satchel", os.time() + 30 * 24 * 60 * 60)
message = "You have found a galthens satchel."
end

player:teleportTo(Position(32396, 32520, 7))
player:getPosition():sendMagicEffect(CONST_ME_WATERSPLASH)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, message)

return true
end

galthensTree:position(Position(32366, 32542, 8))
galthensTree:register()
5 changes: 4 additions & 1 deletion data-otservbr-global/world/otservbr-npc.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2994,5 +2994,8 @@
</npc>
<npc centerx="33068" centery="32917" centerz="7" radius="1">
<npc name="Tonar Oskayaat" x="0" y="0" z="7" spawntime="60" />
</npc>
</npc>
<npc centerx="32398" centery="32509" centerz="7" radius="1">
<npc name="An Idol" x="0" y="0" z="15" spawntime="60" />
</npc>
</npcs>

0 comments on commit 50b4c26

Please sign in to comment.