Postado Março 17, 2017 8 anos 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?
Postado Março 17, 2017 8 anos local npcn = math.random(15,21) mude essa linha para: local npcn = math.random(1,21)
Postado Março 17, 2017 8 anos 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 Março 17, 2017 8 anos @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())
Postado Março 17, 2017 8 anos 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.