Acubens
Old Penguin
Mission NPC 2.0
Hello Otlanders, this is my first npc to otland, The idea is to give the required item to the npc and then give us a reward.
First Step: go to data/npcs and create new XML file and rename it with "Quest Maker.xml" or another name with you preference and put this into:
Now in data/npc/scripts copy any file and rename it with "questmaker.lua"
and put this in the file:
Rep++ me :thumbup:
Hello Otlanders, this is my first npc to otland, The idea is to give the required item to the npc and then give us a reward.
First Step: go to data/npcs and create new XML file and rename it with "Quest Maker.xml" or another name with you preference and put this into:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Quest Maker" script="data/npc/scripts/questmaker.lua" walkinterval="5000" floorchange="0">
<health now="100" max="100"/>
<look type="266" head="1" body="1" legs="1" feet="1" addons="3"/>
<parameters>
<parameter key="message_greet" value="Welcome |PLAYERNAME| Are your ready for this {mission}?" />
</parameters>
</npc>
and put this in the file:
PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:eek:nCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:eek:nCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:eek:nCreatureSay(cid, type, msg) end
function onThink() npcHandler:eek:nThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
--------------------------------
------- NPC MISION 2.0 --------
------ by Acubens - Otland.net -
--------------------------------
local first = {
-- Place true if you want to use the system of a gift for experience, false if you want to use items
useExpReward = false,
-- The experience that will get the player at the end of the mission
experience = 5000,
-- Id of the item that will be asking for the NPC to complete the mission
item = 2668,
-- Count of the item required
item_count = 1,
-- id of the gift that going to obtain the player at finish the mission
reward = 2160,
-- count of the gift item
reward_count = 1,
-- storage
storage = 60307,
-- name of the quest
questname = "Acubens Quest"
}
local npc_message ={
-- Procced - message
"I need some item to complete this mission, procced?",
-- if you dont have items - message
"You dont have any items to this mission.",
-- thanks - message
"Thank You for Help me, {take it}.",
-- already done - message
"You have already done this mision.",
-- ready to go - message
"The Mission {"..first.questname.."} is, really serius, i need your help to complete it, if you help me then i will give some items to you..",
-- congratulations - message
"Congratulations, you have finished the "..first.questname..""
}
if(msgcontains(msg, 'mission')) then
selfSay(npc_message[5], cid)
end
if(msgcontains(msg, first.questname)) then
selfSay(npc_message[1], cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if (getPlayerStorageValue(cid,first.storage) > 0) then
selfSay(npc_message[4], cid)
else
if(doPlayerRemoveItem(cid,first.item,first.item_count)) then
setPlayerStorageValue(cid,first.storage,1)
if(useExpReward) then
doPlayerAddExperience(cid,first.experience)
else
doPlayerAddItem(cid,first.reward,first.reward_count)
end
selfSay(npc_message[3], cid)
doSendMagicEffect(getCreaturePosition(cid), 10)
doCreatureSay(cid, npc_message[6], TALKTYPE_ORANGE_1)
else
selfSay(npc_message[2], cid)
end
end
return true
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Rep++ me :thumbup:
Last edited: