Tópico na área errada, movido para a correta.
5
1k
info
Grupo: Conde
Registrado: 07/04/15
Posts: 962
Reputação: +258
Gênero: Masculino

02 de junho de 2015 às 17:06
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: Masculino

02 de junho de 2015 às 17:46
Melhor resposta
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())
info
Grupo: Conde
Registrado: 07/04/15
Posts: 962
Reputação: +258
Gênero: Masculino

02 de junho de 2015 às 23:01
Tópico movido para pedidos e dúvidas resolvido.
info
Grupo: Campones
Registrado: 06/11/11
Posts: 93
Reputação: 0
Char no Tibia: Deprex

09 de junho de 2015 às 14:54
Me tire uma dúvida onde eu edito a chance dele de ganhar?Pq tô achando muito fácil



info
Grupo: Campones
Registrado: 06/11/11
Posts: 93
Reputação: 0
Char no Tibia: Deprex
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())