Hi there, i need help with a script where i need it edited so that the players that want to continue too rook, can say the keywords without using caps lock on some letter.
For instance "Lightonia" - I want it to be able to be said when a player says "lightonia" which it cant now.
The reason why i want this specific script is because it hands out items immediately after leaving rookgaard.
All help is much appreciated!
Lightonia
For instance "Lightonia" - I want it to be able to be said when a player says "lightonia" which it cant now.
The reason why i want this specific script is because it hands out items immediately after leaving rookgaard.
All help is much appreciated!
Lightonia
Code:
--[[
!---------------------------------!
!---Created by Teh Maverick-------!
!-------www.otland.net------------!
!---------------------------------!
]]
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talktopic, town, vocation, destination, voc = {}, {}, {}, {}, {}
--!!Config!!--
--Vocation setup
local vocation1 = {name = "Mage", id = 1,
text = "Are you sure that a Mage is what you wish to become? This decision is irreversible!"}
local vocation2 = {name = "Herbalist", id = 2,
text = "Are you sure that a Herbalist is what you wish to become? This decision is irreversible!"}
local vocation3 = {name = "Hunter", id = 3,
text = "Are you sure that a Hunter is what you wish to become? This decision is irreversible!"}
local vocation4 = {name = "Warrior", id = 4,
text = "Are you sure that a Warrior is what you wish to become? This decision is irreversible!"}
--Item setup
local firstItems = {
{ -- sorcerer items
{itemid=2458, count=1}, -- Steel Helmet
{itemid=2465, count=1}, -- Ranger's cloak
{itemid=2478, count=1}, -- Ranger legs
{itemid=2643, count=1}, -- Leather Boots
{itemid=2525, count=1}, -- Dark Shield
{itemid=2190, count=1}, -- Wand of vortex
},
{ -- druid items
{itemid=2458, count=1}, -- Steel Helmet
{itemid=2465, count=1}, -- Ranger's cloak
{itemid=2478, count=1}, -- Ranger legs
{itemid=2643, count=1}, -- Leather Boots
{itemid=2525, count=1}, -- Dark Shield
{itemid=2182, count=1}, -- Snakebite Rod
},
{ -- paladin items
{itemid=2458, count=1}, -- Steel Helmet
{itemid=2465, count=1}, -- Ranger's cloak
{itemid=2478, count=1}, -- Ranger legs
{itemid=2643, count=1}, -- Leather Boots
{itemid=2525, count=1}, -- Dark Shield
{itemid=2389, count=10}, -- Spears
},
{ -- knight items
{itemid=2458, count=1}, -- Steel Helmet
{itemid=2465, count=1}, -- Ranger's cloak
{itemid=2478, count=1}, -- Ranger legs
{itemid=2643, count=1}, -- Leather Boots
{itemid=2525, count=1}, -- Dark Shield
{itemid=8602, count=1}, -- Jagged Sword
{itemid=8601, count=1}, -- Steel Axe
{itemid=2398, count=1}, -- Clerical Mace
}
}
--Home Town setup
local city1 = {name = "Lightonia", id = 1, destination = {x=345, y=387, z=7},
text = "Lightonia City, the only place to be. So what vocation do you wish to become? {"..vocation1.name .."}, {"..vocation2.name .."}, {"..vocation3.name .."} or {"..vocation4.name .."}?"}
local towntext = "You can only live in {".. city1.name .."}."
--Text setup
local requiredlevel = 8
local lowlevel = "COME BACK WHEN YOU ARE LEVEL 8!"
local refuse = "Then come back when you are ready."
local refuse_voc = "Then what vocation do you want to become?"
----End Config-----
for _, items in ipairs(firstItems) do
table.insert(items, item)
end
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 greetCallback(cid)
if(getPlayerLevel(cid) < requiredlevel) then
npcHandler:say(lowlevel, cid)
return false
else
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
talktopic[talkUser], town[talkUser], vocation[talkUser], destination[talkUser], voc[talkUser] = 0, 0, 0, 0, 0
return true
end
end
function creatureSayCallback(cid, type, msg)
talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if(not npcHandler:isFocused(cid)) then
return false
end
--Select Home Town control
if talktopic[talkUser] == 0 and msgcontains(msg, "yes") then
talktopic[talkUser] = 1 --question one, what city do you want?
npcHandler:say(towntext, cid)
elseif talktopic[talkUser] == 0 and msgcontains(msg, "no") then
talktopic[talkUser] = 0
npcHandler:unGreet(cid)
elseif talktopic[talkUser] == 1 and msgcontains(msg, city1.name) then
town[talkUser] = city1.id
destination[talkUser] = city1.destination
npcHandler:say(city1.text, cid)
talktopic[talkUser] = 2 --question two, what vocation do you want?
elseif talktopic[talkUser] == 1 and msgcontains(msg, city2.name) then
town[talkUser] = city2.id
destination[talkUser] = city2.destination
npcHandler:say(city2.text, cid)
talktopic[talkUser] = 2 --question two, what vocation do you want?
end
--Select Vocation control
if talktopic[talkUser] == 2 and msgcontains(msg, vocation1.name) then
talktopic[talkUser] = 3 --confirm dicision: are you sure you want to become...
voc[talkUser] = vocation1.id
npcHandler:say(vocation1.text, cid)
elseif talktopic[talkUser] == 2 and msgcontains(msg, vocation2.name) then
talktopic[talkUser] = 3 --confirm dicision: are you sure you want to become...
voc[talkUser] = vocation2.id
npcHandler:say(vocation2.text, cid)
elseif talktopic[talkUser] == 2 and msgcontains(msg, vocation3.name) then
talktopic[talkUser] = 3 --confirm dicision: are you sure you want to become...
voc[talkUser] = vocation3.id
npcHandler:say(vocation3.text, cid)
elseif talktopic[talkUser] == 2 and msgcontains(msg, vocation4.name) then
talktopic[talkUser] = 3 --confirm dicision: are you sure you want to become...
voc[talkUser] = vocation4.id
npcHandler:say(vocation4.text, cid)
end
--Confirm your choice control
if talktopic[talkUser] == 3 and msgcontains(msg, 'yes') then
talktopic[talkUser] = 4
vocation[talkUser] = voc[talkUser]
elseif talktopic[talkUser] == 3 and msgcontains(msg, 'no') then
talktopic[talkUser] = 2
npcHandler:say(refuse_voc, cid)
voc[talkUser] = 0
end
if(destination[talkUser] ~= 0 and vocation[talkUser] ~= 0 and town[talkUser] ~= 0 and talktopic[talkUser] == 4) then
if(getPlayerLevel(cid) < requiredlevel) then
npcHandler:say('You must first reach level ' .. requiredlevel .. '!', cid)
npcHandler:resetNpc()
else
if(getPlayerVocation(cid) > 0) then
npcHandler:say('Sorry, You already have a vocation!', cid)
npcHandler:resetNpc()
else
doPlayerSetVocation(cid, vocation[talkUser])
doPlayerSetTown(cid, town[talkUser])
npcHandler:resetNpc()
local tmp = getCreaturePosition(cid)
doTeleportThing(cid, destination[talkUser])
doSendMagicEffect(tmp, CONST_ME_POFF)
doSendMagicEffect(destination, CONST_ME_TELEPORT)
itemThink(cid)
end
end
end
return true
end
function itemThink(cid)
talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local backpack = doCreateItemEx(1988, 1)
local giveItems = firstItems[vocation[talkUser]]
if giveItems ~= nil then
for _, v in ipairs(giveItems) do
doAddContainerItem(backpack, v.itemid, v.count or 1)
end
local addItem = doPlayerAddItemEx(cid, backpack, 0)
if (addItem == RETURNVALUE_NOERROR and getPlayerStorageValue(cid,9011) < 1) then
setPlayerStorageValue(cid,9011,1)
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,'You recieved items from Isa.')
return true
elseif addItem == RETURNVALUE_NOTENOUGHCAPACITY then
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,'You don\'t have enough capacity for your start items, please make capacity by getting rid of some items.')
addEvent(itemThink,10000,cid)
return true
end
end
return true
end
npcHandler:setMessage(MESSAGE_GREET, "Hello |PLAYERNAME|. Are you prepared to face your destiny?")
npcHandler:setMessage(MESSAGE_WALKAWAY, "Goodbye adventurer!")
npcHandler:setMessage(MESSAGE_FAREWELL, "Come back when you are ready!")
npcHandler:setCallback(CALLBACK_GREET, greetCallback)
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())