Ir para conteúdo

Featured Replies

Postado
  • Autor
53 minutos atrás, KotZletY disse:

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!

vc pode fazer isso para mim?

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

Top Posters In This Topic

Posted Images

Postado
  • Autor
4 minutos atrás, KotZletY disse:

local npcn = math.random(15,21)

 

mude essa linha para:

 

local npcn = math.random(1,21)

cara, sempre que eu compro numero blza vai, ai quero parar ele fala isso.

 

18:24 Brian O'Conner: Desculpe, mais voce nao possui dinheiro esta aposta

 

sendo que ja apostei, comprei 3 numero, ai falo parar ele fala isso ai.

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(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())

 

 

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

Postado
  • Autor
35 minutos 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(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())

 

 

amigo parece que deu certo aqui, agora vc poderia me ajudar em uma outra coisa?

 

tenho esse outro script 

function isWalkable(pos, creature, proj, pz)-- by Nord
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
    if getTopCreature(pos).uid > 0 and creature then return false end
    if getTileInfo(pos).protection and pz then return false, true end
    local n = not proj and 3 or 2
    for i = 0, 255 do
        pos.stackpos = i
        local tile = getTileThingByPos(pos)
        if tile.itemid ~= 0 and not isCreature(tile.uid) then
            if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
                return false
            end
        end
    end
    return true
end
function doCreateFerumbras(amount)
    local vetor = 0
    local Area = {{x=7649,y=16379,z=5},{x=7735,y=16443,z=7}}
    repeat
        local pos = {x=math.random(Area[1].x, Area[2].x), y=math.random(Area[1].y,Area[2].y), z=math.random(Area[1].z,Area[2].z)}
        if isWalkable(pos, false, false, false) then
            doSummonCreature("Ferumbras", pos) 
            vetor = vetor + 1    
        end
    until vetor == amount
end
function onSay(cid, words, param, channel)
    local avisoproibido = "Desculpe isso não é possível."
    local horario = "Apenas uma vez por dia os deuses podem ser liberados."
    if getTileHouseInfo(getThingPos(cid)) then
        return doPlayerSendCancel(cid,avisoproibido)
    end
    if getTilePzInfo(getThingPos(cid)) then
        return doPlayerSendCancel(cid,avisoproibido)
    end
    if getTileHouseInfo(getThingPos(cid)) then
        return doPlayerSendCancel(cid,horario)
    end
    local M = {
        Pos = {x=7691,y=16409,z=5}, 
        id= 1355, 
    time = 86400}
    local x = M
    function criar()
        local parede = getTileItemById(x.Pos, x.id)
        doCreateItem(x.id, 1, x.Pos)
    end
    local tempo = 1*24*60*60
    local storage = 94368
    if x then
        local parede = getTileItemById(x.Pos, x.id)
        if getTileInfo(getCreaturePosition(cid)).itemid == 3217 or 3216 then
            if (getPlayerStorageValue(cid, storage) <= os.time()) then
                if parede then
                    setPlayerStorageValue(cid, storage, os.time()+tempo)
                    doRemoveItem(parede.uid, 1)
                    --doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))--
                    doPlayerSendTextMessage(cid, 25, "A furia dos Deuses foi liberada tenha cuidado")
                    doCreateFerumbras(30)
                    addEvent(criar, x.time*1000)
                end
            else
                doPlayerSendCancel(cid, "A furia dos deuses só pode ser liberada a cada 24 horas.")
            end
        end
    end
    return true
end

 

oq ele faz?? ele fala uma palavra q pode ser dita apenas 1 vez por dia e sumona 30 ferumbras, oq eu queria é que: tivesse um local especifico para essa palavra ser dita, e após matar todos os ferumbras abrir um tp que leve para outro local. Pode me ajudar nisso tbm? dou rep hje e amanha pra vc.

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