[Npc] Las Vegas V1.0

thalia
Por thalia
em NPCs, monsters e raids

thalia

Avatar Legends Online
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 03/07/07Posts: 104

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 +

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Ahuhauhauhua, gostei, parabéns, rep - pra ti. Opa, rep+ ahuhauhau. Te vicio nos jogos de azar nééé.

 

Até mais.

Oie :D

Matheuzinhoul

stay in rook
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 11/02/11Posts: 169

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/

thalia

Avatar Legends Online
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 03/07/07Posts: 104

@demonbholder

POIS È PCO, KOAPSPKOEKOAPSEKO (: RIRIA

 

@matheusguedes

Já coloquei, não prestei atenção!

(:

willscarlate

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/06Posts: 11

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

luisfelipinho15

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/03/11Posts: 35

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.

Ajudei??Rep+

Cotar.jpg

viniciusvasconcellos

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/12/12Posts: 7

copiou de outro forum --'

thalia

Avatar Legends Online
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 03/07/07Posts: 104

12OPK31OP2KQWLKE1OK31POKPOQWKOP1K4OP1K4 É NOIS'

AlexandreKG

Estudante de TI
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 30/10/11Posts: 1153Gênero: Masculino

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;

DinoAdmin

Ex Estagiário de Scripting
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 27/07/12Posts: 757Char no Tibia: [ADM] Bhoris

thalia

Avatar Legends Online
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 03/07/07Posts: 104

Bom, criei esse script quando eu estava começando nessa "carreira" quem sabe eu não posto um script bem legal aqui

Gabrielkss

lxl Gabrielks lxl
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 06/01/08Posts: 137Char no Tibia: LarissaxD

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 =/

Se der certo ou não, não importa

O que importa é que eu tentei e fui

O mais longe que pude.

SkyTheKing

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/01/12Posts: 50Char no Tibia: Sovietico

legal