eluna-scripts-ornfelt/lua/Scripts/Example Scripts/example_gossip.lua
2024-09-23 07:59:23 +02:00

54 lines
2 KiB
Lua

local GobId = 123
local NpcId = 123
local ItemId = 123 -- Item needs to have spell on use
local MenuId = 123 -- Unique ID to recognice player gossip menu among others
local function OnGossipHello(event, player, object)
player:GossipClearMenu() -- required for player gossip
player:GossipMenuAddItem(0, "Open submenu", 1, 1)
player:GossipMenuAddItem(0, "Test popup box", 1, 2, false, "Test popup")
player:GossipMenuAddItem(0, "Test codebox", 1, 3, true, nil)
player:GossipMenuAddItem(0, "Test money requirement", 1, 4, nil, nil, 50000)
player:GossipSendMenu(1, object, MenuId) -- MenuId required for player gossip
end
local function OnGossipSelect(event, player, object, sender, intid, code, menuid)
if (intid == 1) then
player:GossipMenuAddItem(0, "Close gossip", 1, 5)
player:GossipMenuAddItem(0, "Back ..", 1, 6)
player:GossipSendMenu(1, object, MenuId) -- MenuId required for player gossip
elseif (intid == 2) then
OnGossipHello(event, player, object)
elseif (intid == 3) then
player:SendBroadcastMessage(code)
OnGossipHello(event, player, object)
elseif (intid == 4) then
if (player:GetCoinage() >= 50000) then
player:ModifyMoney(-50000)
end
OnGossipHello(event, player, object)
elseif (intid == 5) then
player:GossipComplete()
elseif (intid == 6) then
OnGossipHello(event, player, object)
end
end
local function OnPlayerCommand(event, player, command)
if (command == "test gossip") then
OnGossipHello(event, player, player)
return false
end
end
RegisterCreatureGossipEvent(NpcId, 1, OnGossipHello)
RegisterCreatureGossipEvent(NpcId, 2, OnGossipSelect)
RegisterGameObjectGossipEvent(GobId, 1, OnGossipHello)
RegisterGameObjectGossipEvent(GobId, 2, OnGossipSelect)
RegisterItemGossipEvent(ItemId, 1, OnGossipHello)
RegisterItemGossipEvent(ItemId, 2, OnGossipSelect)
RegisterPlayerEvent(42, OnPlayerCommand)
RegisterPlayerGossipEvent(MenuId, 2, OnGossipSelect)