Ir para conteúdo
  • 0

Npc Bugado


damiaotorres

Pergunta

Meu npc de aposta faz 3 aposta diferente mais remove todos a mesma quantia e coloca a mesma quantia e a 1 aposta não tá prestando alguém ajude a versão é e Do OTS, version 0.1.0 (Beta Version) 8.6

 

 

local tab = {
aposta1 = {10000, 20000}, -- apostaN = {custo, premio},
aposta2 = {100000, 2000000},
aposta3 = {1000000, 2000000}
}

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

function thinkCallback(cid)
local rand = math.random(1,100)
if rand == 1 then
selfSay('Oi! Ganhe dinheiro com sua sorte!')
end
if rand == 2 then
selfSay ('Só entendo português, diga oi.')
end
if rand == 3 then
selfSay ('Posso te ajudar?')
end
return true
end

function greetCallback(cid)
return true
end

local mpn = math.random(1,10)
local npcn = math.random(1,10)
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'jogar')) then
selfSay('O jogo é bem simples, você só precisa decidir se quer apostar 1 crystal coin, 10 crystal coins ou 100 crystal coins. Após decidir sua aposta, será sorteado um número entre 1 e 10 para mim e para você, vence quem sortear o maior número. Se der empate, você recebe o dinheiro da aposta de volta, se você ganhar receberá o dobro do valor da aposta e se perder eu fico com o seu dinheiro da aposta. Diga {1 crystal coin}, {10 crystal coins} ou {100 crystal coins} para começar o jogo.', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, '1 crystal coin') and talkState[talkUser] == 1) then
selfSay('Você tem certeza que quer apostar 1 crystal coin?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'sim') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) >= tab.aposta1[1] then
doPlayerRemoveMoney(cid, tab.aposta1[1])
setPlayerStorageValue(cid, 2224, npcn)
setPlayerStorageValue(cid, 55411, mpn)
talkState[talkUser] = 0
if getPlayerStorageValue(cid, 55411) < getPlayerStorageValue(cid, 2224)then
selfSay('Seu número: '..getPlayerStorageValue(cid, 55411)..'. Meu número: '..getPlayerStorageValue(cid, 2224)..'. Você Perdeu!',cid)
talkState[talkUser] = 1
elseif getPlayerStorageValue(cid, 55411) == getPlayerStorageValue(cid, 2224) then
selfSay('Seu número: '..getPlayerStorageValue(cid, 55411)..'. Meu número: '..getPlayerStorageValue(cid, 2224)..'. Deu Empate!',cid)
talkState[talkUser] = 1
elseif getPlayerStorageValue(cid, 55411) > getPlayerStorageValue(cid, 2224) then
selfSay('Seu número: '..getPlayerStorageValue(cid, 55411)..'. Meu número: '..getPlayerStorageValue(cid, 2224)..'. Você Venceu!',cid)
doPlayerAddMoney(cid, tab.aposta1[2])
talkState[talkUser] = 1
end
else
selfSay('Desculpe, mas você não possui dinheiro para esta aposta',cid)
end
elseif(msgcontains(msg, '10 crystal coin') and talkState[talkUser] == 1) then
selfSay('Você tem certeza que quer apostar 10 crystal coin?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'sim') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) >= tab.aposta2[2] then
doPlayerRemoveMoney(cid, tab.aposta2[1])
setPlayerStorageValue(cid, 2225, npcn)
setPlayerStorageValue(cid, 55412, mpn)
talkState[talkUser] = 0
if getPlayerStorageValue(cid, 55412) < getPlayerStorageValue(cid, 2225)then
selfSay('Seu número: '..getPlayerStorageValue(cid, 55412)..'. Meu número: '..getPlayerStorageValue(cid, 2225)..'. Você Perdeu!',cid)
talkState[talkUser] = 1
elseif getPlayerStorageValue(cid, 55412) == getPlayerStorageValue(cid, 2225) then
selfSay('Seu número: '..getPlayerStorageValue(cid, 55412)..'. Meu número: '..getPlayerStorageValue(cid, 2225)..'. Deu Empate!',cid)
talkState[talkUser] = 1
elseif getPlayerStorageValue(cid, 55412) > getPlayerStorageValue(cid, 2225) then
selfSay('Seu número: '..getPlayerStorageValue(cid, 55412)..'. Meu número: '..getPlayerStorageValue(cid, 2225)..'. Você Venceu!',cid)
doPlayerAddMoney(cid, tab.aposta2[2])
talkState[talkUser] = 1
end
else
selfSay('Desculpe, mas você não possui dinheiro para esta aposta',cid)
end
elseif(msgcontains(msg, '100 crystal coin') and talkState[talkUser] == 1) then
selfSay('Você tem certeza que quer apostar 100 crystal coin?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'sim') and talkState[talkUser] == 1) then
if getPlayerMoney(cid) >= tab.aposta3[2] then
doPlayerRemoveMoney(cid, tab.aposta3[1])
setPlayerStorageValue(cid, 2226, npcn)
setPlayerStorageValue(cid, 55413, mpn)
talkState[talkUser] = 0
if getPlayerStorageValue(cid, 55413) < getPlayerStorageValue(cid, 2226)then
selfSay('Seu número: '..getPlayerStorageValue(cid, 55413)..'. Meu número: '..getPlayerStorageValue(cid, 2226)..'. Você Perdeu!',cid)
talkState[talkUser] = 1
elseif getPlayerStorageValue(cid, 55413) == getPlayerStorageValue(cid, 2226) then
selfSay('Seu número: '..getPlayerStorageValue(cid, 55413)..'. Meu número: '..getPlayerStorageValue(cid, 2226)..'. Deu Empate!',cid)
talkState[talkUser] = 1
elseif getPlayerStorageValue(cid, 55413) > getPlayerStorageValue(cid, 2226) then
selfSay('Seu número: '..getPlayerStorageValue(cid, 55413)..'. Meu número: '..getPlayerStorageValue(cid, 2226)..'. Você Venceu!',cid)
doPlayerAddMoney(cid, tab.aposta3[2])
talkState[talkUser] = 1
end
else
selfSay('Desculpe, mas você não possui dinheiro para esta aposta',cid)
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Tenta assim:

local tab = {
	aposta1 = {10000, 20000}, -- apostaN = {custo, premio},
	aposta2 = {100000, 2000000},
	aposta3 = {1000000, 2000000}
}

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

function thinkCallback(cid)
	local rand = math.random(1,100)
	if rand == 1 then
		selfSay('Oi! Ganhe dinheiro com sua sorte!')
	end
	if rand == 2 then
	selfSay ('Só entendo português, diga oi.')
end
if rand == 3 then
selfSay ('Posso te ajudar?')
end
return true
end

function greetCallback(cid)
return true
end

local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'jogar')) then
	selfSay('O jogo é bem simples, você só precisa decidir se quer apostar 1 crystal coin, 10 crystal coins ou 100 crystal coins. Após decidir sua aposta, será sorteado um número entre 1 e 10 para mim e para você, vence quem sortear o maior número. Se der empate, você recebe o dinheiro da aposta de volta, se você ganhar receberá o dobro do valor da aposta e se perder eu fico com o seu dinheiro da aposta. Diga {1 crystal coin}, {10 crystal coins} ou {100 crystal coins} para começar o jogo.', cid)
	talkState[talkUser] = 1
elseif(msgcontains(msg, '1 crystal coin') and talkState[talkUser] == 1) then
	selfSay('Você tem certeza que quer apostar 1 crystal coin?', cid)
	talkState[talkUser] = 2
elseif(msgcontains(msg, '10 crystal coins') and talkState[talkUser] == 1) then
	selfSay('Você tem certeza que quer apostar 1 crystal coin?', cid)
	talkState[talkUser] = 3
elseif(msgcontains(msg, '100 crystal coins') and talkState[talkUser] == 1) then
	selfSay('Você tem certeza que quer apostar 1 crystal coin?', cid)
	talkState[talkUser] = 4
elseif(msgcontains(msg, 'sim') and talkState[talkUser] == 2) then
	if doPlayerRemoveMoney(cid, tab.aposta1[1]) then
		local playerNumber = math.random(1, 10)
		local npcNumber = math.random(1, 10)
		
		if playerNumber < npcNumber then
			selfSay('Seu número: '.. playerNumber ..'.\nMeu número: '.. npcNumber ..'.\nVocê Perdeu! Vamos {jogar} novamente?',cid)
			talkState[talkUser] = 0
		elseif playerNumber == npcNumber then
			selfSay('Seu número: '.. playerNumber ..'.\nMeu número: '.. npcNumber ..'.\nDeu Empate! Vamos {jogar} novamente?',cid)
			talkState[talkUser] = 0
		elseif playerNumber > npcNumber then
			selfSay('Seu número: '.. playerNumber ..'.\nMeu número: '.. npcNumber ..'.\nVocê Venceu! Hoje é seu dia de sorte, vamos {jogar} novamente?',cid)
			doPlayerAddMoney(cid, tab.aposta1[2])
			talkState[talkUser] = 0
		end
	else
		selfSay('Desculpe, mas você não possui dinheiro para esta aposta',cid)
	end
elseif(msgcontains(msg, 'sim') and talkState[talkUser] == 3) then
	if doPlayerRemoveMoney(cid, tab.aposta2[1]) then
		local playerNumber = math.random(1, 10)
		local npcNumber = math.random(1, 10)
		
		if playerNumber < npcNumber then
			selfSay('Seu número: '.. playerNumber ..'.\nMeu número: '.. npcNumber ..'.\nVocê Perdeu! Vamos {jogar} novamente?',cid)
			talkState[talkUser] = 0
		elseif playerNumber == npcNumber then
			selfSay('Seu número: '.. playerNumber ..'.\nMeu número: '.. npcNumber ..'.\nDeu Empate! Vamos {jogar} novamente?',cid)
			talkState[talkUser] = 0
		elseif playerNumber > npcNumber then
			selfSay('Seu número: '.. playerNumber ..'.\nMeu número: '.. npcNumber ..'.\nVocê Venceu! Hoje é seu dia de sorte, vamos {jogar} novamente?',cid)
			doPlayerAddMoney(cid, tab.aposta2[2])
			talkState[talkUser] = 0
		end
	else
		selfSay('Desculpe, mas você não possui dinheiro para esta aposta',cid)
	end
elseif(msgcontains(msg, 'sim') and talkState[talkUser] == 4) then
	if doPlayerRemoveMoney(cid, tab.aposta3[1]) then
		local playerNumber = math.random(1, 10)
		local npcNumber = math.random(1, 10)
		
		if playerNumber < npcNumber then
			selfSay('Seu número: '.. playerNumber ..'.\nMeu número: '.. npcNumber ..'.\nVocê Perdeu! Mas não desanime, vamos {jogar} novamente?',cid)
			talkState[talkUser] = 0
		elseif playerNumber == npcNumber then
			selfSay('Seu número: '.. playerNumber ..'.\nMeu número: '.. npcNumber ..'.\nDeu Empate! Vamos {jogar} novamente?',cid)
			talkState[talkUser] = 0
		elseif playerNumber > npcNumber then
			selfSay('Seu número: '.. playerNumber ..'.\nMeu número: '.. npcNumber ..'.\nVocê Venceu! Hoje é seu dia de sorte, vamos {jogar} novamente?',cid)
			doPlayerAddMoney(cid, tab.aposta3[2])
			talkState[talkUser] = 0
		end
	else
		selfSay('Desculpe, mas você não possui dinheiro para esta aposta',cid)
	end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...