Siemka mam taki przykładowy skrypt na npc'a:
I mam pytanie, bo po wpisaniu 'city' , talkState[talkUser] zamienia się na 1 i jak np. wpiszemy 'yes' to talkState[talkUser] zmieni się na 0, ale gdy np odejdę od npca tak aby zakończyć z nim rozmowę podczas gdy talkState[talkUser] równa się 1 to po ponownym przyjściu do niego i rozpoczęciu rozmowy talkState[talkUser] nadal równa się 1 i moje pytanie jest takie, czy da się jakoś zrobić, że po odejściu od npc'a talkState[talkUser] zmianiał się na 0 a nie zostawał taki jak przed odejściem?
PHP:
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, 'travel') then
selfSay('I can take you to the {city}.', cid)
talkState[talkUser] = 0
elseif msgcontains(msg, 'city') then
selfSay('Are you sure to send you to the city?',cid)
talkState[talkUser] = 1
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
if(doPlayerRemoveMoney(cid, 100)) then
selfSay('Lets go.',cid)
doTeleportThing(cid,{x=5037,y=4982,z=7})
talkState[talkUser] = 0
end
elseif msgcontains(msg, 'no') and talkState[talkUser] == 1 then
talkState[talkUser] = 0
selfSay('Ok, then.',cid)
end
end
npcHandler:setMessage(MESSAGE_GREET, "Hello |PLAYERNAME|. I send you to {city}.")
npcHandler:setMessage(MESSAGE_FAREWELL, 'Good bye |PLAYERNAME|!')
npcHandler:setMessage(MESSAGE_WALKAWAY, 'Bye then...')
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
I mam pytanie, bo po wpisaniu 'city' , talkState[talkUser] zamienia się na 1 i jak np. wpiszemy 'yes' to talkState[talkUser] zmieni się na 0, ale gdy np odejdę od npca tak aby zakończyć z nim rozmowę podczas gdy talkState[talkUser] równa się 1 to po ponownym przyjściu do niego i rozpoczęciu rozmowy talkState[talkUser] nadal równa się 1 i moje pytanie jest takie, czy da się jakoś zrobić, że po odejściu od npc'a talkState[talkUser] zmianiał się na 0 a nie zostawał taki jak przed odejściem?