Hello!
I've made this feature for my abandoned 7.4/7.6 project and want to share it with OTLand community.
What is it? It's an feature that allows using NPC The Oracle and The Gatekeeper with many players without staying in queues.
Players can just simply right-click (attack) NPC and modal window with vocation and town selection pop-outs.
"Disclaimer":I've made this feature for my abandoned 7.4/7.6 project and want to share it with OTLand community.
What is it? It's an feature that allows using NPC The Oracle and The Gatekeeper with many players without staying in queues.
Players can just simply right-click (attack) NPC and modal window with vocation and town selection pop-outs.
(I know in TFS 1.3 NPC Chat exist and everyone can talk with npc's without staying in queue, but as I said above, I made it specially for 7.4/7.6 project [I had crazy modified tfs and client so I made it because as oldschool feelings I disabled NPC Chat [by default 7.4/7.6 client don't have modal windows and shit so.. ])
Preview:
If preview don't work, just click on this text, lel.
Requirements:
If preview don't work, just click on this text, lel.
Requirements:
- TFS that handle Modal Windows
- Ability to "do it yourself" - add possibility to "attack NPC" with right-mouse-click; (it's turned off by default in TFS, you must figure out how to add this possibility)
- Client that handle Modal Windows
- Easy C++ knowledge and ability to understand whole code by reading it
In Data/Events/Scripts/Creature.lua add in function Creature : onTargetCombat(target) :
Lua:
if target:getName() == "The Oracle" or target:getName() == "The Gatekeeper" then
if self:getPosition():getDistance(target:getPosition()) < 3 then
if (self:isPlayer() and target:isNpc()) then
if self:isNone() then
if self:getLevel() >= 8 then
self:sendTextMessage(MESSAGE_INFO_DESCR, "Choose your destiny. Choose wisely!")
-- MODAL : The Oracle --
if target:getName() == "The Oracle" then
self:registerEvent("ModalWindow_StartOracle")
local title = "The Oracle: Choose your way!"
local message = "Are you prepared to face your destiny?"
local startOracle = ModalWindow(ID_STARTORACLE, title, message)
startOracle:addButton(100, "Yes")
startOracle:addButton(101, "No")
startOracle:setDefaultEnterButton(100)
startOracle:setDefaultEscapeButton(101)
startOracle:sendToPlayer(self)
end
if target:getName() == "The Gatekeeper" then
self:registerEvent("ModalWindow_StartGkeeper")
local title = "The Gatekeeper: Choose your way!"
local message = "Are you prepared to face your destiny?"
local startOracle = ModalWindow(ID_STARTGKEEPER, title, message)
startOracle:addButton(100, "Yes")
startOracle:addButton(101, "No")
startOracle:setDefaultEnterButton(100)
startOracle:setDefaultEscapeButton(101)
startOracle:sendToPlayer(self)
end
-----------
self:getPosition():sendMagicEffect(15)
else
doPlayerPopupFYI(self, "You need to get 8 Level to interact with ".. target:getName() ..".")
self:getPosition():sendMagicEffect(14)
end
else
doPlayerPopupFYI(self, "Only players without vocation may interact with ".. target:getName() ..".")
self:getPosition():sendMagicEffect(3)
return RETURNVALUE_NPCCONVERSATION
end
return RETURNVALUE_NPCCONVERSATION
end
else
doPlayerPopupFYI(self, "You need to get closer to interact with ".. target:getName() ..".")
self:getPosition():sendMagicEffect(3)
return RETURNVALUE_NPCCONVERSATION
end
else
return true
end
Lua:
<!-- Oracle -->
<event type="ModalWindow" name="ModalWindow_StartOracle" script="modals/oracle/startoracle.lua"/>
<event type="ModalWindow" name="ModalWindow_CityOracle" script="modals/oracle/cityoracle.lua"/>
<event type="ModalWindow" name="ModalWindow_VocOracle" script="modals/oracle/vocoracle.lua"/>
<event type="ModalWindow" name="ModalWindow_ChosenOracle" script="modals/oracle/areyousureoracle.lua"/>
<!-- Gatekeeper -->
<event type="ModalWindow" name="ModalWindow_StartGkeeper" script="modals/gatekeeper/startgkeeper.lua"/>
<event type="ModalWindow" name="ModalWindow_CityGkeeper" script="modals/gatekeeper/citygkeeper.lua"/>
<event type="ModalWindow" name="ModalWindow_VocGkeeper" script="modals/gatekeeper/vocgkeeper.lua"/>
<event type="ModalWindow" name="ModalWindow_ChosenGkeeper" script="modals/gatekeeper/areyousuregkeeper.lua"/>
modals
and download & copy-paste in scripts that I attached in attachment in this post.Have fun!
Have a nice day!
Peace!
Have a nice day!
Peace!
Attachments
-
modals.rar4.3 KB · Views: 42 · VirusTotal