Więc chciałem stworzyć NPC, który po krótkiej rozmowia da nam nagrodę, zrobiłem to:
Lecz nie wiem co dalej, jak zrobić, aby po napisaniu yes albo reward gracz dostał nagrodę i npc jeszcze coś do gracza powiedział ?
Ten lua jest za jakiegoś losowego NPCta
Próbowałem jeszcze to
Ale chyba mi nie wyszło ;P No i tak, żeby juz ten ktosnie mógł dostać tego ponownie.
Code:
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 creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'yes') or msgcontains(msg, 'sure')) then
selfSay('The road had to be hard, but you struggled to reach, so ... you deserve a {reward}.', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'reward') or msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
Lecz nie wiem co dalej, jak zrobić, aby po napisaniu yes albo reward gracz dostał nagrodę i npc jeszcze coś do gracza powiedział ?
Code:
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 creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'yes') or msgcontains(msg, 'sure')) then
selfSay('The road had to be hard, but you struggled to reach, so ... you deserve a {reward}.', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'reward') or msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, 6530) >= 1) then
if(doPlayerRemoveMoney(cid, 10000)) then
local item = getPlayerItemById(cid, true, 6530)
doTransformItem(item.uid, 6132)
selfSay('Here you are.', cid)
else
selfSay('Sorry, you don\'t have enough gold.', cid)
end
elseif(getPlayerItemCount(cid, 10021) >= 1) then
if(doPlayerRemoveMoney(cid, 10000)) then
local item = getPlayerItemById(cid, true, 10021)
doTransformItem(item.uid, 6132)
selfSay('Here you are.', cid)
else
selfSay('Sorry, you don\'t have enough gold.', cid)
end
else
selfSay('Sorry, you don\'t have the item.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser])) then
talkState[talkUser] = 0
selfSay('Ok then.', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Ten lua jest za jakiegoś losowego NPCta
Próbowałem jeszcze to
Code:
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 creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'yes') or msgcontains(msg, 'sure')) then
selfSay('The road had to be hard, but you struggled to reach, so ... you deserve a {reward}.', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'reward') or msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
doPlayerAddItem(cid,2160,5)
talkState[talkUser] = 0
selfSay('Use it well..', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Ale chyba mi nie wyszło ;P No i tak, żeby juz ten ktosnie mógł dostać tego ponownie.