Ir para conteúdo

Featured Replies

Postado

Galera tenho esse npc que peguei de um outro tópico.


price_21 = 1000 -- 1k ou 1000gold

price_jogo6 = 5000


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, 'apostar')) then

selfSay('Eu faco 2 jogos: {21}, e jogo do {6}, escolha um deles!', cid)

talkState[talkUser] = 5

elseif (msgcontains(msg, '6') and talkState[talkUser] == 5)    then

selfSay('O Jogo do 6 funciona assim: Eu vou rodar um dado, e se cair no numero 6 voce ganha o sextuplo (6 vezes) do valor apostado.', cid)

selfSay('Caso nao caia no 6, voce perde apenas o dinheiro da aposta.', cid)

selfSay('Esta pronto para {comecar}?.', cid)

talkState[talkUser] = 3

elseif(msgcontains(msg, 'comecar') and talkState[talkUser] == 3) then

selfSay('Voce possui o {dinheiro} da aposta ('..price_jogo6..')golds ?', cid)

if doPlayerRemoveMoney(cid, price_jogo6) == TRUE then

talkState[talkUser] = 2

else

selfSay('Desculpe, mais voce nao tem dinheiro para apostar comigo.',cid)

end

elseif(msgcontains(msg, 'dinheiro') and talkState[talkUser] == 2) then

sorteio6 = math.random(1,6)

if sorteio6 == 6 then

talkState[talkUser] = 3

selfSay('Parabens, o numero sorteado foi 6 e voce acaba de ganhar '..(price_jogo6*6) ..'golds, mais o dinheiro que voce pagou da aposta.',cid)

doPlayerAddMoney(cid,price_jogo6*6) 

else

talkState[talkUser] = 2

selfSay('Que azar, o numero sorteado foi '..sorteio6..', mais sorte na proxima.',cid)

end

elseif(msgcontains(msg, '21') and talkState[talkUser] == 5) then

selfSay('O 21 funciona assim: Voce ira ganhar 1 numero e o numero tem quer ser 21, ou chegar o mais proximo possivel sem ultrapassar esse valor.', cid)

selfSay('E a mesma coisa sera feita comigo, ganharei 1 numero.', cid)

selfSay('Voce pode ir comprando mais numeros dizendo {comprar} e se quiser parar e so dizer {parar}.', cid)

selfSay('Se voce ganhar de mim, voce leva o triplo do dinheiro apostado.', cid)

selfSay('Esta pronto para {comecar}?.', cid)

talkState[talkUser] = 0

elseif(msgcontains(msg, 'comecar') and talkState[talkUser] == 0) then

selfSay('Voce possui o {dinheiro} da aposta ('..price_21..')golds ?', cid)

talkState[talkUser] = 1

elseif(msgcontains(msg, 'dinheiro') and talkState[talkUser] == 1) then

if doPlayerRemoveMoney(cid, price_21) == TRUE then

talkState[talkUser] = 0

local mpn = math.random(1,21) 

setPlayerStorageValue(cid, 55411,mpn)  

local pn = getPlayerStorageValue(cid, 55411)        

selfSay('Seu numero e '..pn..', quer comprar mais ou parar?',cid)

else

selfSay('Desculpe, mais voce nao tem dinheiro para apostar comigo.',cid)

end

elseif(msgcontains(msg, 'comprar') and talkState[talkUser] == 0) then

local cp = math.random(1,10)

setPlayerStorageValue(cid, 55411, (getPlayerStorageValue(cid, 55411))+cp)

selfSay('Seu numero e '..getPlayerStorageValue(cid, 55411)..', quer comprar mais ou parar?',cid)

talkState[talkUser] = 0  

elseif(msgcontains(msg, 'parar') and talkState[talkUser] == 0) then

local npcn = math.random(15,21)

setPlayerStorageValue(cid, 2224, npcn)

if getPlayerStorageValue(cid, 55411) < getPlayerStorageValue(cid, 2224)then

selfSay('Meu numero e '..getPlayerStorageValue(cid, 2224)..'.',cid)       

selfSay('Seu numero final e '..getPlayerStorageValue(cid, 55411)..'.',cid)  

selfSay('Ganhei, mais sorte na proxima vez.',cid)   

talkState[talkUser] = 1

elseif getPlayerStorageValue(cid, 55411) == getPlayerStorageValue(cid, 2224) then

selfSay('Meu numero e '..getPlayerStorageValue(cid, 2224)..'.',cid)       

selfSay('Seu numero final e '..getPlayerStorageValue(cid, 55411)..'.',cid)  

selfSay('Empato, portanto ninguem ganha nada.',cid) 

talkState[talkUser] = 1

elseif  getPlayerStorageValue(cid, 55411) > getPlayerStorageValue(cid, 2224)  then

selfSay('Meu numero e '..getPlayerStorageValue(cid, 2224)..'.',cid)       

selfSay('Seu numero final e '..getPlayerStorageValue(cid, 55411)..'.',cid)  

local somag = (price_21*3)

selfSay('Voce ganhou '..somag..'golds, mais os seus '..price_21..'golds de volta. Parabens !!!',cid)   

doPlayerAddMoney(cid, somag)

doPlayerAddMoney(cid, price_21)

talkState[talkUser] = 1

else

selfSay('Desculpe, mais voce nao possui dinheiro esta aposta',cid)

end                       

end

return true

end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

Na parte do jogo 21, se eu fizer 30, 40, 40...pontos eu ganho, o certo se eu fizer isso eu perco, e se eu fizer 21 ou menos q o npc eu ganhar, alguem me ajuda pelo mor de gzuis?

  • Respostas 26
  • Visualizações 674
  • Created
  • Última resposta

Top Posters In This Topic

Posted Images

Postado
  • Autor

caraca, ta foda, ngm ajuda nesse forum...não é atoa que caiu a qualidade de suporte e ajuda aqui.

Postado

@Luzetti

Spoiler

price_21 = 1000 -- 1k ou 1000gold

price_jogo6 = 5000


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, 'apostar')) then

selfSay('Eu faco 2 jogos: {21}, e jogo do {6}, escolha um deles!', cid)

talkState[talkUser] = 5

elseif (msgcontains(msg, '6') and talkState[talkUser] == 5)    then

selfSay('O Jogo do 6 funciona assim: Eu vou rodar um dado, e se cair no numero 6 voce ganha o sextuplo (6 vezes) do valor apostado.', cid)

selfSay('Caso nao caia no 6, voce perde apenas o dinheiro da aposta.', cid)

selfSay('Esta pronto para {comecar}?.', cid)

talkState[talkUser] = 3

elseif(msgcontains(msg, 'comecar') and talkState[talkUser] == 3) then

selfSay('Voce possui o {dinheiro} da aposta ('..price_jogo6..')golds ?', cid)

if doPlayerRemoveMoney(cid, price_jogo6) == TRUE then

talkState[talkUser] = 2

else

selfSay('Desculpe, mais voce nao tem dinheiro para apostar comigo.',cid)

end

elseif(msgcontains(msg, 'dinheiro') and talkState[talkUser] == 2) then

sorteio6 = math.random(1,6)

if sorteio6 == 6 then

talkState[talkUser] = 3

selfSay('Parabens, o numero sorteado foi 6 e voce acaba de ganhar '..(price_jogo6*6) ..'golds, mais o dinheiro que voce pagou da aposta.',cid)

doPlayerAddMoney(cid,price_jogo6*6) 

else

talkState[talkUser] = 2

selfSay('Que azar, o numero sorteado foi '..sorteio6..', mais sorte na proxima.',cid)

end

elseif(msgcontains(msg, '21') and talkState[talkUser] == 5) then

selfSay('O 21 funciona assim: Voce ira ganhar 1 numero e o numero tem quer ser 21, ou chegar o mais proximo possivel sem ultrapassar esse valor.', cid)

selfSay('E a mesma coisa sera feita comigo, ganharei 1 numero.', cid)

selfSay('Voce pode ir comprando mais numeros dizendo {comprar} e se quiser parar e so dizer {parar}.', cid)

selfSay('Se voce ganhar de mim, voce leva o triplo do dinheiro apostado.', cid)

selfSay('Esta pronto para {comecar}?.', cid)

talkState[talkUser] = 0

elseif(msgcontains(msg, 'comecar') and talkState[talkUser] == 0) then

selfSay('Voce possui o {dinheiro} da aposta ('..price_21..')golds ?', cid)

talkState[talkUser] = 1

elseif(msgcontains(msg, 'dinheiro') and talkState[talkUser] == 1) then

if doPlayerRemoveMoney(cid, price_21) == TRUE then

talkState[talkUser] = 0

local mpn = math.random(1,21) 

setPlayerStorageValue(cid, 55411,mpn)  

local pn = getPlayerStorageValue(cid, 55411)        

selfSay('Seu numero e '..pn..', quer comprar mais ou parar?',cid)

else

selfSay('Desculpe, mais voce nao tem dinheiro para apostar comigo.',cid)

end

elseif(msgcontains(msg, 'comprar') and talkState[talkUser] == 0) then

local cp = math.random(1,10)

setPlayerStorageValue(cid, 55411, (getPlayerStorageValue(cid, 55411))+cp)

selfSay('Seu numero e '..getPlayerStorageValue(cid, 55411)..', quer comprar mais ou parar?',cid)

talkState[talkUser] = 0  

elseif(msgcontains(msg, 'parar') and talkState[talkUser] == 0) then

local npcn = math.random(15,21)

setPlayerStorageValue(cid, 2224, npcn)

if getPlayerStorageValue(cid, 55411) < getPlayerStorageValue(cid, 2224) then

selfSay('Meu numero e '..getPlayerStorageValue(cid, 2224)..'.',cid)       

selfSay('Seu numero final e '..getPlayerStorageValue(cid, 55411)..'.',cid)  

selfSay('Ganhei, mais sorte na proxima vez.',cid)   

talkState[talkUser] = 1

elseif getPlayerStorageValue(cid, 55411) == getPlayerStorageValue(cid, 2224) then

selfSay('Meu numero e '..getPlayerStorageValue(cid, 2224)..'.',cid)       

selfSay('Seu numero final e '..getPlayerStorageValue(cid, 55411)..'.',cid)  

selfSay('Empato, portanto ninguem ganha nada.',cid) 

talkState[talkUser] = 1

elseif  getPlayerStorageValue(cid, 55411) > getPlayerStorageValue(cid, 2224) and getPlayerStorageValue(cid, 55411) <= 21 then

selfSay('Meu numero e '..getPlayerStorageValue(cid, 2224)..'.',cid)       

selfSay('Seu numero final e '..getPlayerStorageValue(cid, 55411)..'.',cid)  

local somag = (price_21*3)

selfSay('Voce ganhou '..somag..'golds, mais os seus '..price_21..'golds de volta. Parabens !!!',cid)   

doPlayerAddMoney(cid, somag)

doPlayerAddMoney(cid, price_21)

talkState[talkUser] = 1

else

selfSay('Desculpe, mais voce nao possui dinheiro esta aposta',cid)

end                       

end

return true

end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Postado
  • Autor
2 horas atrás, KotZletY disse:

@Luzetti

  Ocultar conteúdo


price_21 = 1000 -- 1k ou 1000gold

price_jogo6 = 5000


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, 'apostar')) then

selfSay('Eu faco 2 jogos: {21}, e jogo do {6}, escolha um deles!', cid)

talkState[talkUser] = 5

elseif (msgcontains(msg, '6') and talkState[talkUser] == 5)    then

selfSay('O Jogo do 6 funciona assim: Eu vou rodar um dado, e se cair no numero 6 voce ganha o sextuplo (6 vezes) do valor apostado.', cid)

selfSay('Caso nao caia no 6, voce perde apenas o dinheiro da aposta.', cid)

selfSay('Esta pronto para {comecar}?.', cid)

talkState[talkUser] = 3

elseif(msgcontains(msg, 'comecar') and talkState[talkUser] == 3) then

selfSay('Voce possui o {dinheiro} da aposta ('..price_jogo6..')golds ?', cid)

if doPlayerRemoveMoney(cid, price_jogo6) == TRUE then

talkState[talkUser] = 2

else

selfSay('Desculpe, mais voce nao tem dinheiro para apostar comigo.',cid)

end

elseif(msgcontains(msg, 'dinheiro') and talkState[talkUser] == 2) then

sorteio6 = math.random(1,6)

if sorteio6 == 6 then

talkState[talkUser] = 3

selfSay('Parabens, o numero sorteado foi 6 e voce acaba de ganhar '..(price_jogo6*6) ..'golds, mais o dinheiro que voce pagou da aposta.',cid)

doPlayerAddMoney(cid,price_jogo6*6) 

else

talkState[talkUser] = 2

selfSay('Que azar, o numero sorteado foi '..sorteio6..', mais sorte na proxima.',cid)

end

elseif(msgcontains(msg, '21') and talkState[talkUser] == 5) then

selfSay('O 21 funciona assim: Voce ira ganhar 1 numero e o numero tem quer ser 21, ou chegar o mais proximo possivel sem ultrapassar esse valor.', cid)

selfSay('E a mesma coisa sera feita comigo, ganharei 1 numero.', cid)

selfSay('Voce pode ir comprando mais numeros dizendo {comprar} e se quiser parar e so dizer {parar}.', cid)

selfSay('Se voce ganhar de mim, voce leva o triplo do dinheiro apostado.', cid)

selfSay('Esta pronto para {comecar}?.', cid)

talkState[talkUser] = 0

elseif(msgcontains(msg, 'comecar') and talkState[talkUser] == 0) then

selfSay('Voce possui o {dinheiro} da aposta ('..price_21..')golds ?', cid)

talkState[talkUser] = 1

elseif(msgcontains(msg, 'dinheiro') and talkState[talkUser] == 1) then

if doPlayerRemoveMoney(cid, price_21) == TRUE then

talkState[talkUser] = 0

local mpn = math.random(1,21) 

setPlayerStorageValue(cid, 55411,mpn)  

local pn = getPlayerStorageValue(cid, 55411)        

selfSay('Seu numero e '..pn..', quer comprar mais ou parar?',cid)

else

selfSay('Desculpe, mais voce nao tem dinheiro para apostar comigo.',cid)

end

elseif(msgcontains(msg, 'comprar') and talkState[talkUser] == 0) then

local cp = math.random(1,10)

setPlayerStorageValue(cid, 55411, (getPlayerStorageValue(cid, 55411))+cp)

selfSay('Seu numero e '..getPlayerStorageValue(cid, 55411)..', quer comprar mais ou parar?',cid)

talkState[talkUser] = 0  

elseif(msgcontains(msg, 'parar') and talkState[talkUser] == 0) then

local npcn = math.random(15,21)

setPlayerStorageValue(cid, 2224, npcn)

if getPlayerStorageValue(cid, 55411) < getPlayerStorageValue(cid, 2224) then

selfSay('Meu numero e '..getPlayerStorageValue(cid, 2224)..'.',cid)       

selfSay('Seu numero final e '..getPlayerStorageValue(cid, 55411)..'.',cid)  

selfSay('Ganhei, mais sorte na proxima vez.',cid)   

talkState[talkUser] = 1

elseif getPlayerStorageValue(cid, 55411) == getPlayerStorageValue(cid, 2224) then

selfSay('Meu numero e '..getPlayerStorageValue(cid, 2224)..'.',cid)       

selfSay('Seu numero final e '..getPlayerStorageValue(cid, 55411)..'.',cid)  

selfSay('Empato, portanto ninguem ganha nada.',cid) 

talkState[talkUser] = 1

elseif  getPlayerStorageValue(cid, 55411) > getPlayerStorageValue(cid, 2224) and getPlayerStorageValue(cid, 55411) <= 21 then

selfSay('Meu numero e '..getPlayerStorageValue(cid, 2224)..'.',cid)       

selfSay('Seu numero final e '..getPlayerStorageValue(cid, 55411)..'.',cid)  

local somag = (price_21*3)

selfSay('Voce ganhou '..somag..'golds, mais os seus '..price_21..'golds de volta. Parabens !!!',cid)   

doPlayerAddMoney(cid, somag)

doPlayerAddMoney(cid, price_21)

talkState[talkUser] = 1

else

selfSay('Desculpe, mais voce nao possui dinheiro esta aposta',cid)

end                       

end

return true

end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

obg por tentar ajudar, porem ele mostra meu numero final, tipo eu tiro 11, ai compro mais 1 e sai 12.

como na foto abaixo, seria possivel fazer a soma de tudo?

 

 

asdddd.png

 

ele ta dando o resultado da aposta baseado no 2 numero.

 

No caso o jogo 21 se joga assim:

 

eu e vc:

vc compra 1 carta somando 21 vc ganha

eu compro 1 ou mais cartas passando de 21 perco,

 

queria que mostrasse a soma dos numeros tanto meu quanto dele e desse o resultado.

Editado por Luzetti (veja o histórico de edições)

Postado

O NPC é só uma, vez, o npc tem mais chance, veja bem nessa parte do código:

elseif(msgcontains(msg, 'dinheiro') and talkState[talkUser] == 1) then
if doPlayerRemoveMoney(cid, price_21) == TRUE then
talkState[talkUser] = 0
local mpn = math.random(1,21) 
setPlayerStorageValue(cid, 55411, mpn)  
local pn = getPlayerStorageValue(cid, 55411)        
selfSay('Seu numero e '..pn..', quer comprar mais ou parar?',cid)
else
selfSay('Desculpe, mais voce nao tem dinheiro para apostar comigo.',cid)
end

Ao falar "dinheiro" pro npc, você irá ganhar um numero, vamos supor que você ganhe 5, ae ele pergunta se você quer continuar com esse numero ou tentar mais uma vez, dessa vez somando o 5 já ganhado + o próximo valor,  se você falar parar, o npc vai gerá um numero para ele entre 15 e 21, tendo então muito mais vantagem, como mostra a parte do script a seguir:

elseif(msgcontains(msg, 'parar') and talkState[talkUser] == 0) then
local npcn = math.random(15,21)
setPlayerStorageValue(cid, 2224, npcn)
if getPlayerStorageValue(cid, 55411) < getPlayerStorageValue(cid, 2224) then
selfSay('Meu numero e '..getPlayerStorageValue(cid, 2224)..'.',cid)       
selfSay('Seu numero final e '..getPlayerStorageValue(cid, 55411)..'.',cid)  
selfSay('Ganhei, mais sorte na proxima vez.',cid)  

mais precisamente nessa parte: local npcn = math.random(15,21) ele fará um random entre 15 e 21 para ser o valor do NPC, então o NPC tem mais chance:

 

 

caso você compre:

elseif(msgcontains(msg, 'comprar') and talkState[talkUser] == 0) then
local cp = math.random(1,10)
setPlayerStorageValue(cid, 55411, (getPlayerStorageValue(cid, 55411))+cp)
selfSay('Seu numero e '..getPlayerStorageValue(cid, 55411)..', quer comprar mais ou parar?',cid)
talkState[talkUser] = 0  

 

Ele vai pegar um numero aleatório entre 1 e 10, e depois vai somar com o 5(da suposição) que você já tem, vamos supor que você tire 10, no total será 15, então você irá, perder, a menos que de 15 a 21 ele ganhe 15 e saia um empate, hahahaha.

 

Em fim, na alteração de cima que eu fiz, está tudo 100, então se você tirar mais que o NPC e menos que 21 você ganha, se não, você perde.

 

O certo seria você diminuir o valor do NPC e colocar para ele tirar de 1 a 21, em vez de 15 a 21 dando uma vantagem do karalho para ele, me perdoe o palavrão, mas é uma injustica do capeta Kkkkkkk.

 

 

Em fim cara... Ta explicado o que você precisa saber sobre seu script.

Agora você decide o que você quer agora!

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

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.7k

Informação Importante

Confirmação de Termo