Ir para conteúdo

[Npc] Las Vegas V1.0


thalia

Posts Recomendados

Caro players estou aqui depois de muito tempo sem postar nada.. enfim,

Não sei se tem algo do tipo já aqui, mais decidir fazer porque achei legal ^^

 

Nome: NPC Apostador Las Vegas

Versão: Testada na 8.54, mais provavelmente funfa 8.5+

Créditos: 100% by me (:

 

Como "fanuncia"?



 

È um npc de apostar, ele possuiu "por inquanto" dois jogos 21 e Jogo dos 6.

 

~~> Explicando o 21 <~~



O 21 funciona assim: Você ira ganhar 1 número e o número tem quer ser 21, ou chegar o mais próximo possível sem ultrapassar esse valor.

E a mesma coisa será feita com o npc, ele ganhará 1 número.

Você pode ir comprando mais números dizendo [comprar] e se quiser parar é só dizer [parar].

Se seu número for maior que o do npc, você leva o triplo do dinheiro apostado.

 

~~> Explicando o Jogo do 6 <~~



O Jogo do 6 funciona assim: O npc vai rodar um dado, e se cair no número 6 você ganha o sêxtuplo (6 vezes) do valor apostado.

Caso não caia no 6, você perde apenas o dinheiro da aposta.

 

 

Legal né?

 

 

Instalando o npc





-> Vá até a pasta data/npc e crie um arquivo xml com o nome lasvegas.xml e cole esse codigo dentro:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Apostador" script="data/npc/scripts/apostador_la.lua" walkinterval="2000" floorchange="0">
   <health now="100" max="100"/>
   <look type="138" head="96" body="95" legs="0" feet="95" addons="0"/>
   	<parameters>
	    <parameter key="message_greet" value="Como vai? |PLAYERNAME|, Quer {apostar} comigo?" />
	<parameter key="module_keywords" value="1" />
</parameters>
</npc>

 

 

-> Vá até a pasta data/npc/scripts e crie um arquivo lua com o nome apostador_la.lua e cole esse codigo dentro:

-- Preços das apostas --
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 faço 2 jogos: {21},{Jogo do 6} escolha um deles!', cid)
talkState[talkUser] = 5
elseif (msgcontains(msg, 'Jogo do 6') and talkState[talkUser] == 5)    then
selfSay('O Jogo do 6 funciona assim: Eu vou rodar um dado, e se cair no número 6 você ganha o sêxtuplo (6 vezes) do valor apostado.', cid)
selfSay('Caso não caia no 6, você perde apenas o dinheiro da aposta.', cid)
selfSay('Está pronto para {começar}?.', cid)
talkState[talkUser] = 3
elseif(msgcontains(msg, 'começar') and talkState[talkUser] == 3) then
selfSay('Você possui o {dinheiro} da aposta ('..price_jogo6..')golds ?', cid)
if doPlayerRemoveMoney(cid, price_jogo6) == TRUE then
talkState[talkUser] = 2
else
selfSay('Desculpe, mais você não 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('Parábens, o número sorteado foi 6 e você acaba de ganhar '..(price_jogo6*6) ..'golds, mais o dinheiro que você pagou da aposta.',cid)
doPlayerAddMoney(cid,price_jogo6*6) 
else
talkState[talkUser] = 2
selfSay('Que azar, o número sorteado foi '..sorteio6..', mais sorte na proxima.',cid)
end
elseif(msgcontains(msg, '21') and talkState[talkUser] == 5) then
selfSay('O 21 funciona assim: Você ira ganhar 1 número e o número tem quer ser 21, ou chegar o mais próximo possível sem ultrapassar esse valor.', cid)
selfSay('E a mesma coisa será feita comigo, ganharei 1 número.', cid)
selfSay('Você pode ir comprando mais números dizendo [comprar] e se quiser parar é só dizer [parar].', cid)
selfSay('Se você ganhar de mim, você leva o triplo do dinheiro apostado.', cid)
selfSay('Está pronto para {começar}?.', cid)
talkState[talkUser] = 0
elseif(msgcontains(msg, 'começar') and talkState[talkUser] == 0) then
selfSay('Você 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 número é '..pn..', quer comprar mais ou parar?',cid)
else
selfSay('Desculpe, mais você não 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 número é '..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 número é '..getPlayerStorageValue(cid, 2224)..'.',cid)       
selfSay('Seu número final é '..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 número é '..getPlayerStorageValue(cid, 2224)..'.',cid)       
selfSay('Seu número final é '..getPlayerStorageValue(cid, 55411)..'.',cid)  
selfSay('Empato, portanto ninguem ganha nada.',cid) 
talkState[talkUser] = 1
elseif  getPlayerStorageValue(cid, 55411) > getPlayerStorageValue(cid, 2224)  then
selfSay('Meu número é '..getPlayerStorageValue(cid, 2224)..'.',cid)       
selfSay('Seu número final é '..getPlayerStorageValue(cid, 55411)..'.',cid)  
local somag = (price_21*3)
selfSay('Você ganhou '..somag..'golds, mais os seus '..price_21..'golds de volta. Parábens !!!',cid)   
doPlayerAddMoney(cid, somag)
doPlayerAddMoney(cid, price_21)
talkState[talkUser] = 1
else
selfSay('Desculpe, mais você não possui dinheiro está aposta',cid)
end                       
end
return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Pronto, npc instalado.

 

Qualquer dúvida, tamo ae.

 

Gostou? REP +

Editado por thalia
Link para o comentário
Compartilhar em outros sites

Muito legal seu NPC Thalia, gostei. Achei muito criativo, parabéns.

 

Coloque a tag </npc> dentro da codebox, desatentos podem não ver ai vai ser complicado.

 

Só não te dou rep+ por que já dei hoje, quero ver mais npcs seus o/

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

Ficou muito bacana, mesmo.

Ideia bem original.

Mas não se é por causa da minha versão, mesmo passando de 21, eu continuo ganhando, posso comprar numeros até quantos quiser e venço mesmo passando de 21.

 

Estou usando 8.4

Link para o comentário
Compartilhar em outros sites

Pior mesmo o player passando do numero 21 ganha do mesmo jeito tem que arrumar isso em '-'

Talvez possa fazer por add um tanto de storage tipo random de 1 ate 21 storages dai depois que acaba o npc verifica se tem mais de 21

E diz se ganho ou perdeu.

Link para o comentário
Compartilhar em outros sites

  • 1 year later...

12OPK31OP2KQWLKE1OK31POKPOQWKOP1K4OP1K4 É NOIS'

 

Evite comentarios assim !

 

@Topic

 

Seu NPC,parece ser muito diferente e inovador no mundo Open Tibia,parabéns.Derrepente com uns ajustes eu possa usar em meu server,parabéns!

 

Abçs;

Link para o comentário
Compartilhar em outros sites

Porem esse npc tem um bug,eu tenho ele faz 1 ano mais ou menos,o jogo do 21 vc pode passar das regras dos jogo no caso de 21 e ele sempre vai falar que vc ganho,e outra vc pode ficar apostando sem gastar 1 centavo vc apostar 1 vez e depois não gasta mais antes de ganhar pelo menos 1 vez no jogo do 6 =/

Link para o comentário
Compartilhar em outros sites

  • 5 weeks later...
×
×
  • Criar Novo...