Ir para conteúdo

NPC do banco não responde a nenhum comando "deposit" "withdraw" "balance"

Featured Replies

Postado

Olá estou tentando fazer o ot funcionar, é tibia versão 7.6

TFS 0.3

 

GOD Tryller: hi
Eva: Welcome GOD Tryller! What can I do for you?
GOD Tryller: deposit 30
GOD Tryller: deposit =(
 
ela não responde a nenhum comando até de contas normais.
 
esse é o script:
 
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

 

  • Respostas 5
  • Visualizações 591
  • Created
  • Última resposta

Top Posters In This Topic

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo