Ir para conteúdo

[Error - Npc interface]


Flavio Hunter

Posts Recomendados

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


--------------------MESSAGES------------------------------------------------------------------------------

if msgcontains(msg, 'deposit') then

selfSay('Please tell me how much gold it is you would like to deposit.', cid)

talkState[talkUser] = 1


elseif msgcontains(msg, 'withdraw') then

selfSay('Please tell me how much gold you would like to withdraw.', cid)

talkState[talkUser] = 3


elseif msgcontains(msg, 'transfer') then

selfSay('Please tell me the amount of gold coins you would like to transfer.', cid)

talkState[talkUser] = 5


elseif msgcontains(msg, 'balance') then

n = getPlayerBalance(cid)

selfSay('Your balance are '..n..' golds.', cid)

talkState[talkUser] = 0



----------------------DEPOSIT-------------------------------------------------------

elseif talkState[talkUser] == 1 then

if msgcontains(msg, 'all') then

n = getPlayerMoney(cid)

selfSay('Do you want deposit '..n..' golds ?', cid)

talkState[talkUser] = 2

else

n = getNumber(msg)

selfSay('Do you want deposit '..n..' golds ?', cid)

talkState[talkUser] = 2

end


elseif talkState[talkUser] == 2 then

if msgcontains(msg, 'yes') then

if getPlayerMoney(cid) >= n then

doPlayerDepositMoney(cid,n)

selfSay('a', cid)

talkState[talkUser] = 0

else

selfSay('You don\'t have money.', cid)

end

else

selfSay('Ok then', cid)

end


----------------------WITHDRAW------------------------------------------------------------------------------------------------------------------------------------


elseif talkState[talkUser] == 3 then

if msgcontains(msg, 'all') then

n = getPlayerBalance(cid)

selfSay('Do you want withdraw '..n..' golds ?', cid)

talkState[talkUser] = 4

else

n = getNumber(msg)

selfSay('Do you want withdraw '..n..' golds ?', cid)

talkState[talkUser] = 4

end


elseif talkState[talkUser] == 4 then

if msgcontains(msg, 'yes') then

if getPlayerBalance(cid) >= n then

doPlayerWithdrawMoney(cid, n)

selfSay('Here you are, '..n..' gold. Now your balance account is ' ..getPlayerBalance(cid)..' golds.', cid)

talkState[talkUser] = 0

else

selfSay('There is not enough gold on your account', cid)

end

else

selfSay('Ok then', cid)

end


----------------------TRANSFER----------------------------------------------------------------------------------------


elseif talkState[talkUser] == 5 then

if msgcontains(msg, 'all') then

n = getPlayerBalance(cid)

selfSay('Who would you like transfer '..n..' gold to?', cid)

talkState[talkUser] = 6

else

n = getNumber(msg)

selfSay('Who would you like transfer '..n..' gold to?', cid)

talkState[talkUser] = 6

end


elseif talkState[talkUser] == 6 then

p = msg

selfSay('So you would like to transfer '..n..' gold to '..p..'?', cid)

talkState[talkUser] = 7


elseif talkState[talkUser] == 7 then

if msgcontains(msg, 'yes') then

if getPlayerBalance(cid) >= n then

if doPlayerTransferMoneyTo(cid, p, n) == TRUE then

selfSay('You have transferred '..n..' gold to '..p..' and your account balance is '..getPlayerBalance(cid)..' golds.', cid)

talkState[talkUser] = 0

else

selfSay('This player does not exist. Please tell me a valid name!', cid)

end

else

selfSay('There is not enough gold on your account', cid)

end

else

selfSay('Ok then', cid)

end



end

end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())




-- function maded by Gesior--

function getNumber(txt) --return number if its number and is > 0, else return 0

x = string.gsub(txt,"%a","")

x = tonumber(x)

if x ~= nill and x > 0 then

return x

else

return 0

end

end

Link para o comentário
Compartilhar em outros sites

  • 8 months later...
×
×
  • Criar Novo...