Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Oi gente, eu estava procurando aqui um npc de aposta de 21 e achei no meio das minhas coisas vou disponibilizar pra vcs.

 

Testado em 0.3.6 e 0.4

 

XML


<?xml version="1.0"?>
<npc name="Brian O'Conner" script="data/npc/scripts/dicer.lua" walkinterval="0" floorchange="0">
<health now="100" max="100"/>
<look type="132" head="114" body="0" legs="0" feet="114" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|, quer {apostar} comigo? " />
</parameters>
</npc>

 

 

 

 

LUA


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(1,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('Você tirou um numero maior que 21, então você perdeu.',cid)

end                       

end

return true

end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Postado
  • Diretor

Tópico aprovado e agradecemos pela contribuição.

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

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