paste this script here
data/npcs/scripts/BlessMan.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 onPlayerEndTrade(cid) npcHandler:onPlayerEndTrade(cid) end
function onPlayerCloseChannel(cid) npcHandler:onPlayerCloseChannel(cid) end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = cid
local p = Player(cid)
local heal = false
local hp = p:getHealth()
if msgcontains(msg, "heal") then
if getCreatureCondition(cid, CONDITION_FIRE) then
selfSay("You are burning. I will help you.", cid)
doRemoveCondition(cid, CONDITION_FIRE)
heal = true
elseif getCreatureCondition(cid, CONDITION_POISON) then
selfSay("You are poisoned. I will cure you.", cid)
doRemoveCondition(cid, CONDITION_POISON)
heal = true
elseif getCreatureCondition(cid, CONDITION_ENERGY) then
selfSay("You are electrificed. I will help you.", cid)
doRemoveCondition(cid, CONDITION_ENERGY)
heal = true
elseif getCreatureCondition(cid, CONDITION_PARALYZE) then
selfSay("You are paralyzed. I will cure you.", cid)
doRemoveCondition(cid, CONDITION_PARALYZE)
heal = true
elseif getCreatureCondition(cid, CONDITION_DROWN) then
selfSay("You are drowing. I will help you.", cid)
doRemoveCondition(cid, CONDITION_DROWN)
heal = true
elseif getCreatureCondition(cid, CONDITION_FREEZING) then
selfSay("You are cold! I will help you.", cid)
doRemoveCondition(cid, CONDITION_FREEZING)
heal = true
elseif getCreatureCondition(cid, CONDITION_BLEEDING) then
selfSay("You are bleeding! I will help you.", cid)
doRemoveCondition(cid, CONDITION_BLEEDING)
heal = true
elseif getCreatureCondition(cid, CONDITION_DAZZLED) then
selfSay("You are dazzled! Do not mess with holy creatures anymore!", cid)
doRemoveCondition(cid, CONDITION_DAZZLED)
heal = true
elseif getCreatureCondition(cid, CONDITION_CURSED) then
selfSay("You are cursed! I will remove it.", cid)
doRemoveCondition(cid, CONDITION_CURSED)
heal = true
elseif hp < 65 then
selfSay("You are looking really bad. Let me heal your wounds.", cid)
p:addHealth(65 - hp)
heal = true
elseif hp < 2000 then
selfSay("I did my best to fix your wounds.", cid)
p:addHealth(2000 - hp)
heal = true
end
if heal then
p:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
else
local msgheal = {
"You aren't looking really bad, " .. getCreatureName(cid) .. ". I only help in cases of real emergencies. Raise your health simply by eating {food}.",
"Seriously? It's just a scratch",
"Don't be a child. You don't need any help with your health.",
"I'm not an expert. If you need help find a medic.",
"Don't even waste my time, I have bigger problems than your scratched armor."
}
selfSay("" .. msgheal[math.random(1, #msgheal)] .. "", cid)
end
return true
end
if msgcontains(msg, "yes") and talkState[talkUser] > 90 and talkState[talkUser] < 96 then
if getPlayerBlessing(cid, talkState[talkUser] - 90) then
selfSay("You already have this blessing!", cid)
else
b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200))
if b_price < 2000 then b_price = 2000 end
if doPlayerRemoveMoney(cid, b_price) then
selfSay("You have been blessed by one of the five gods!", cid)
doPlayerAddBlessing(cid, talkState[talkUser] - 90)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
else
selfSay("I'm sorry. We need money to keep this temple up.", cid)
end
end
talkState[talkUser] = 0
return true
end
if msgcontains(msg, "yes") and talkState[talkUser] == 96 then
havebless = {}
for i = 1, 5 do
if(getPlayerBlessing(cid, i)) then
table.insert(havebless,i)
end
end
if #havebless == 5 then
selfSay('You already have all available blessings.',cid)
talkState[talkUser] = 0
return true
end
b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200))
if b_price < 2000 then b_price = 2000 end
b_price = ((5 - #havebless) * b_price)
if doPlayerRemoveMoney(cid, b_price) then
selfSay("You have been blessed by the five gods!", cid)
for i = 1, 5 do doPlayerAddBlessing(cid, i) end
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
else
selfSay("I'm sorry. We need money to keep this temple up.", cid)
end
talkState[talkUser] = 0
return true
end
if msgcontains(msg, "all") then
havebless = {}
b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200))
if b_price < 2000 then b_price = 2000 end
for i = 1, 5 do
if(getPlayerBlessing(cid, i)) then
table.insert(havebless,i)
end
end
b_price = ((5 - #havebless) * b_price)
if b_price == 0 then
selfSay('You already have all available blessings.',cid)
talkState[talkUser] = 0
return true
end
selfSay('Do you want to receive all blessings for ' .. b_price .. ' gold?',cid)
talkState[talkUser] = 96
return true
end
local blesskeywords = {'wisdom', 'spark', 'fire', 'spiritual', 'embrace'}
local blessnames = {'Wisdom of Solitude', 'Spark of The Phoenix', 'Fire of Two Suns', 'Spiritual Shielding', 'The Embrace'}
for i = 1, #blesskeywords do
if msgcontains(msg, blesskeywords[i]) then
b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200))
if b_price < 2000 then b_price = 2000 end
selfSay('Do you want me to grant you ' .. blessnames[i] .. ' blessing for ' .. b_price .. ' gold?',cid)
talkState[talkUser] = 90 + i
return true
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
data/npcs/BlessMan.xml
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Willian" script="BlessMan.lua" walkinterval="2000" floorchange="0" speechbubble="1">
<health now="100" max="100"/>
<look type="134" head="58" body="114" legs="87" addons="3"/>
<parameters>
<parameter key="module_keywords" value="1" />
<parameter key="keywords" value="bless;blessings" />
<parameter key="keyword_reply1" value="I can grant you blessings such as {Wisdom} {of} {Solitude}, {Spark} {of} {The} {Phoenix}, our {Fire} {of} {Two} {Suns}, {Spiritual} {Shielding} and {The Embrace}. I can also grant you {all} of these blessings, just ask me." />
<parameter key="keyword_reply2" value="I can grant you blessings such as {Wisdom} {of} {Solitude}, {Spark} {of} {The} {Phoenix}, our {Fire} {of} {Two} {Suns}, {Spiritual} {Shielding} and {The Embrace}. I can also grant you {all} of these blessings, just ask me." />
</parameters>
</npc>
**paste this script here**
data/npcs/scripts/BlessMan.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 onPlayerEndTrade(cid) npcHandler:onPlayerEndTrade(cid) end
function onPlayerCloseChannel(cid) npcHandler:onPlayerCloseChannel(cid) end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = cid
local p = Player(cid)
local heal = false
local hp = p:getHealth()
if msgcontains(msg, "heal") then
if getCreatureCondition(cid, CONDITION_FIRE) then
selfSay("You are burning. I will help you.", cid)
doRemoveCondition(cid, CONDITION_FIRE)
heal = true
elseif getCreatureCondition(cid, CONDITION_POISON) then
selfSay("You are poisoned. I will cure you.", cid)
doRemoveCondition(cid, CONDITION_POISON)
heal = true
elseif getCreatureCondition(cid, CONDITION_ENERGY) then
selfSay("You are electrificed. I will help you.", cid)
doRemoveCondition(cid, CONDITION_ENERGY)
heal = true
elseif getCreatureCondition(cid, CONDITION_PARALYZE) then
selfSay("You are paralyzed. I will cure you.", cid)
doRemoveCondition(cid, CONDITION_PARALYZE)
heal = true
elseif getCreatureCondition(cid, CONDITION_DROWN) then
selfSay("You are drowing. I will help you.", cid)
doRemoveCondition(cid, CONDITION_DROWN)
heal = true
elseif getCreatureCondition(cid, CONDITION_FREEZING) then
selfSay("You are cold! I will help you.", cid)
doRemoveCondition(cid, CONDITION_FREEZING)
heal = true
elseif getCreatureCondition(cid, CONDITION_BLEEDING) then
selfSay("You are bleeding! I will help you.", cid)
doRemoveCondition(cid, CONDITION_BLEEDING)
heal = true
elseif getCreatureCondition(cid, CONDITION_DAZZLED) then
selfSay("You are dazzled! Do not mess with holy creatures anymore!", cid)
doRemoveCondition(cid, CONDITION_DAZZLED)
heal = true
elseif getCreatureCondition(cid, CONDITION_CURSED) then
selfSay("You are cursed! I will remove it.", cid)
doRemoveCondition(cid, CONDITION_CURSED)
heal = true
elseif hp < 65 then
selfSay("You are looking really bad. Let me heal your wounds.", cid)
p:addHealth(65 - hp)
heal = true
elseif hp < 2000 then
selfSay("I did my best to fix your wounds.", cid)
p:addHealth(2000 - hp)
heal = true
end
if heal then
p:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
else
local msgheal = {
"You aren't looking really bad, " .. getCreatureName(cid) .. ". I only help in cases of real emergencies. Raise your health simply by eating {food}.",
"Seriously? It's just a scratch",
"Don't be a child. You don't need any help with your health.",
"I'm not an expert. If you need help find a medic.",
"Don't even waste my time, I have bigger problems than your scratched armor."
}
selfSay("" .. msgheal[math.random(1, #msgheal)] .. "", cid)
end
return true
end
if msgcontains(msg, "yes") and talkState[talkUser] > 90 and talkState[talkUser] < 96 then
if getPlayerBlessing(cid, talkState[talkUser] - 90) then
selfSay("You already have this blessing!", cid)
else
b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200))
if b_price < 2000 then b_price = 2000 end
if doPlayerRemoveMoney(cid, b_price) then
selfSay("You have been blessed by one of the five gods!", cid)
doPlayerAddBlessing(cid, talkState[talkUser] - 90)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
else
selfSay("I'm sorry. We need money to keep this temple up.", cid)
end
end
talkState[talkUser] = 0
return true
end
if msgcontains(msg, "yes") and talkState[talkUser] == 96 then
havebless = {}
for i = 1, 5 do
if(getPlayerBlessing(cid, i)) then
table.insert(havebless,i)
end
end
if #havebless == 5 then
selfSay('You already have all available blessings.',cid)
talkState[talkUser] = 0
return true
end
b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200))
if b_price < 2000 then b_price = 2000 end
b_price = ((5 - #havebless) * b_price)
if doPlayerRemoveMoney(cid, b_price) then
selfSay("You have been blessed by the five gods!", cid)
for i = 1, 5 do doPlayerAddBlessing(cid, i) end
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
else
selfSay("I'm sorry. We need money to keep this temple up.", cid)
end
talkState[talkUser] = 0
return true
end
if msgcontains(msg, "all") then
havebless = {}
b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200))
if b_price < 2000 then b_price = 2000 end
for i = 1, 5 do
if(getPlayerBlessing(cid, i)) then
table.insert(havebless,i)
end
end
b_price = ((5 - #havebless) * b_price)
if b_price == 0 then
selfSay('You already have all available blessings.',cid)
talkState[talkUser] = 0
return true
end
selfSay('Do you want to receive all blessings for ' .. b_price .. ' gold?',cid)
talkState[talkUser] = 96
return true
end
local blesskeywords = {'wisdom', 'spark', 'fire', 'spiritual', 'embrace'}
local blessnames = {'Wisdom of Solitude', 'Spark of The Phoenix', 'Fire of Two Suns', 'Spiritual Shielding', 'The Embrace'}
for i = 1, #blesskeywords do
if msgcontains(msg, blesskeywords[i]) then
b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200))
if b_price < 2000 then b_price = 2000 end
selfSay('Do you want me to grant you ' .. blessnames[i] .. ' blessing for ' .. b_price .. ' gold?',cid)
talkState[talkUser] = 90 + i
return true
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
data/npcs/BlessMan.xml
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Willian" script="BlessMan.lua" walkinterval="2000" floorchange="0" speechbubble="1">
<health now="100" max="100"/>
<look type="134" head="58" body="114" legs="87" addons="3"/>
<parameters>
<parameter key="module_keywords" value="1" />
<parameter key="keywords" value="bless;blessings" />
<parameter key="keyword_reply1" value="I can grant you blessings such as {Wisdom} {of} {Solitude}, {Spark} {of} {The} {Phoenix}, our {Fire} {of} {Two} {Suns}, {Spiritual} {Shielding} and {The Embrace}. I can also grant you {all} of these blessings, just ask me." />
<parameter key="keyword_reply2" value="I can grant you blessings such as {Wisdom} {of} {Solitude}, {Spark} {of} {The} {Phoenix}, our {Fire} {of} {Two} {Suns}, {Spiritual} {Shielding} and {The Embrace}. I can also grant you {all} of these blessings, just ask me." />
</parameters>
</npc>
````