Npc Que Joga Jokenpô

Nostradamus
em NPCs, monsters e raids
  • 1
  • 2

Nostradamus

Serviços Prestados ao XTibia.com
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 10/06/06Posts: 338Char no Tibia: Setyte Berseker

Explicação

 

Já jogou Jokenpô? Também é chamado de pedra, tesoura ou papel.

O jogo consiste no seguinte:

 

Uma pessoa escolhe pedra, tesoura ou papel.

O adversário faz o mesmo.

No mesmo tempo ambos mostram o escolhido e o resultado é o seguinte:

 

Tesoura ganha de papel

Tesoura perde de pedra

Papel ganha de pedra

 

NPC

 

Bom, o npc faz isso. Mas a diferença é que ele não mostrará as mãos, mas assim que você falar pedra, tesoura ou mesmo papel, ele falará o dele. Mas ele não "roubará" já que ele escolherá randômicamente.

 

 

Crie um arquivo chamado jokenpo.lua em: data\npc\scripts

 

------ NPC Jokenpô -------------
-- Data de criação:
--11/06/07 -> 10:30 - 10:32 
--Autor do script: Nostradamus
--Tipo: Release
---------------------------------------

-- Configuração-------------------
local price_to_play = 1 -- preço para se jogar em gps
local price = 200 -- preço para aposta
---------------------------------------
local focus = 0
local talk_start = 0
local npc_random = math.random(1, 3)
-- sendo 1 = pedra
-- sendo 2 = tesoura
-- sendo 3 = papel

function onCreatureAppear(creature) end
function onCreatureTurn(creature) end
function onCreatureChangeOutfit(creature) end

function onCreatureDisappear(cid, pos)
  if focus == cid then
	  selfSay('Tchau né!?')
	  focus = 0
	  talk_start = 0
  end
end





function msgcontains(txt, str)
  return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end


function onCreatureSay(cid, type, msg)
  msg = string.lower(msg)

  if (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then
	  selfSay('Olá ' .. getCreatureName(cid) .. '! O que acha de apostarmos ' .. price .. 'gps numa disputa de jokenpô? Se quiser, escolha "pedra", "tesoura" ou "papel".')
	  focus = cid
	talk_state = 0
	  talk_start = os.clock()

  elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
	  selfSay(getCreatureName(cid) .. ', por favor aguarde sua vez.')

  elseif focus == cid then
	talk_start = os.clock()

	if msgcontains(msg, 'pedra') and talk_state == 0 then
		talk_start = os.clock()
		talk_state = 0
			if doPlayerRemoveMoney(cid, price_to_play) == 1 then
					if  npc_random == 2 then
						selfSay('Parabéns! Você acaba de ganhar ' .. price .. '!')
						doPlayerAddMoney(cid, price)
					elseif npc_random == 3 then
						selfSay('Que pena, você perdeu  ' .. price .. '. Mais sorte da próxima vez.')
						doPlayerRemoveMoney(cid, price)
					else 
						selfSay('Empatamos!')
					end

			talk_state = 1
			else
			selfSay('Você não tem dinheiro o suficiente para jogar.')
			end				

		talk_state = 0
	end

	if msgcontains(msg, 'tesoura') and talk_state == 0 then
		talk_start = os.clock()
		talk_state = 0
			if doPlayerRemoveMoney(cid, price_to_play) == 1 then
					if  npc_random == 3 then
						selfSay('Parabéns! Você acaba de ganhar ' .. price .. '!')
						doPlayerAddMoney(cid, price)
					elseif npc_random == 1 then
						selfSay('Que pena, você perdeu  ' .. price .. '. Mais sorte da próxima vez.')
						doPlayerRemoveMoney(cid, price)
					else 
						selfSay('Empatamos!')
					end

			talk_state = 1
			else
			selfSay('Você não tem dinheiro o suficiente para jogar.')
			end				

		talk_state = 0
	end

	if msgcontains(msg, 'papel') and talk_state == 0 then
		talk_start = os.clock()
		talk_state = 0
			if doPlayerRemoveMoney(cid, price_to_play) == 1 then
					if  npc_random == 1 then
						selfSay('Parabéns! Você acaba de ganhar ' .. price .. '!')
						doPlayerAddMoney(cid, price)
					elseif npc_random == 2 then
						selfSay('Que pena, você perdeu  ' .. price .. '. Mais sorte da próxima vez.')
						doPlayerRemoveMoney(cid, price)
					else 
						selfSay('Empatamos!')
					end

			talk_state = 1
			else
			selfSay('Você não tem dinheiro o suficiente para jogar.')
			end				

		talk_state = 0
	end

	if msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
		selfSay('Até mais, ' .. getCreatureName(cid) .. '!')
		focus = 0
		talk_start = 0
	end
  end
end





function onThink()
doNpcSetCreatureFocus(focus)
  if (os.clock() - talk_start) > 45 then
	  if focus > 0 then
		  selfSay('Próximo por favor...')
	  end
		  focus = 0
  end
if focus ~= 0 then
	if getDistanceToCreature(focus) > 3 then
		selfSay('Antes de sair, é educado a pessoa falar tchau!')
		focus = 0
	end
end
end

 

A variável price_to_play determina o preço para se jogar.

A variável price determina o valor da aposta.

 

Agora vamos fazer o XML do NPC em: data\npc\

 

Crie um arquivo chamado Gamer2.xml

 

<?xml version="1.0"?>

<npc name="Gamer2" script="data/npc/scripts/jokempo.lua" autowalk="0" floorchange="0">

<health now="100" max="100"/>

<look type="133" head="20" body="39" legs="45" feet="7"/>

</npc>

 

Aí depois, é só mudar o nome do npc caso queira, e mudar a aparência do mesmo à gosto.

 

Até mais, espero que tenham gostado.

 

Não testei, mas provavelmente irá funcionar.

[twitter]ThomazYuji[/twitter]

Raphael Lion

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 07/02/07Posts: 162

Boa Yuji...

Não sabia de seus dotes como scripter.

 

Abraço,

Raphael Lion.




Jvchequer

"Veni, vidi, vici."
avatar
Lenda
Lenda

INFOS

Grupo: LendaRegistrado: 10/10/05Posts: 2161Char no Tibia: Master Chequer

Mais 1 excelente NPC (Y)

 

Bem legal esse, mais eu não sou muito bom em jokenpô :X

 

P.S: O NPC sempre roba :p

 

Cya

1271330714-U1306.gif

 

~ Fiz parte da Equipe Xtibia em um tempo que Tibia era minha família. Saudades de todos vocês.

fgerasimenko

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 31/05/07Posts: 27

Aqui no XTibia só tem gente boa, primeiro o npc ladrão, depois o npc policial e agora esse!!Muito ROX, o xtibia é muito bom mesmo!!!Adorei o NPC vo coloca no meu ot, com ele nosso "ibope"(rsrs) vai almentar

 

VLW

Eu sou:

80% [experiente] ja desenvolvi ^^




Te ajudei? Tirei sua duvida? Então use issu:


Sou fan de:


Velocidade da minha internet



Venha ver o meu site:
>>>>Clike Aki<<<<

gosta de estrategia medieval? então jogue issu:
Travian br1


[X] 50 posts, Eba cheguei!!!!!Vamo rumo ao 100 rsrs
[X] 100 posts, aeeeee, finalmente
[ ] 150 posts, falta poko!

Felipe Moraes

Java Developer
avatar
Grão-Duque
Grão-Duque

INFOS

Grupo: Grão-DuqueRegistrado: 02/10/06Posts: 3285Gênero: Masculino

nossa kra,vc sempre trazendo coisas novas,e interessantes...

mtu bacana esse npc ai,da ate pra apostar com ele :)...

parabens...mtu rox msm

~A nossa maior glória não reside no fato de nunca cairmos, mas sim em levantarmo-nos sempre depois de cada queda.~

 

 

 

 

Clique aqui para ver meus tutoriais !

 

 

 

Gamertag: cpmoraes

 

 

Nostradamus

Serviços Prestados ao XTibia.com
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 10/06/06Posts: 338Char no Tibia: Setyte Berseker

@JV Chequer

Quem treinou esse NPC foi o próprio Chuck Norris, portanto ele não rouba e sim ganha todas :)

 

(NOTA: Na verdade a chance é de 50% para cada)

[twitter]ThomazYuji[/twitter]

Lordfire

TFS Maintainer
avatar
Lenda
Lenda

INFOS

Grupo: LendaRegistrado: 04/10/06Posts: 2605Gênero: MasculinoChar no Tibia: Knight Orion

UAU

Você tem esse dom mais do que ninguém

Nunca vi NPCs melhores que os seus

Aí também tem aquele do Black Jack né ;)

Mustorze

Banido
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 28/04/06Posts: 46

suahsiasuhaish < q sux!!!!!!!!!!!!

[Banido por Ripping]

Nostradamus

Serviços Prestados ao XTibia.com
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 10/06/06Posts: 338Char no Tibia: Setyte Berseker

@Mustorze

Porque não mostra suas "incríveis" habilidades e faz melhor? :)

[twitter]ThomazYuji[/twitter]

Oakley

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 18/08/06Posts: 109

LOL

 

RoXXXX

 

muito loko isso véi

 

parabens aew c funfar pq vc flo q nem testo

 

mais muito loko aew

 

//OAkley

//Oakley









Processador:Intel® Core™2 CPU X6800 @ 2.93 GHz 2.93GHs
agora "overclockado" ta com 3.5GHz
Memoria(RAM) 4x1gb 4095MB
WinFast PX8800 GTS TDH(NVIDIA) 640 MB GDDR3
2x HD 500 GB,HD Externo 320 GB
1x HD 1TB
proximo upgrade +1 hd interno de 1.5 TB

Exordium

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 24/01/06Posts: 190

hudsahuhusdhua

isso sim eh inovador, muito bom :D

Sou fã de:







raul90

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/06/07Posts: 21

nus meos tempos de muleke adorava jogar jokempo

 

mt bom cara

xD

 

 

eh soh por papel q ganha xP

EI VOCÊ! Vamos nos unir? A HORA É AGORA! Aquecimento GLOBAL é coisa séria!



Meus Tópicos Uteis ~~~
Remote-Control - Diga Não!




;~ Simplesmente
Raul90

Bloods

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 19/05/07Posts: 255

Eu abri um server aqui em casa e puis ele.... bem loco vlw ai.

Obs: O npc me robo 90k mas eu ganhei 100 gp xD

Olá XTibiano:

Sua assinatura estava com um problema na TAG SPOILER e foi movida para a parte "Sobre mim".
Agradecemos a sua compreensão.

Atenciosamente,
JV Chequer

kaio

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/05/06Posts: 31

putz,que loko hahaha...só falta npc de corrida agora XD

Nada pra escreve...
Lelelele...

meu orkut, se for me add, manda mensagem!!!MEU PERFIL
meu msn ke-trento@hotmail.com

vashrox

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/01/07Posts: 3

Parabens cara,continue assim.

------------------------------------------------------------------------------------------------------------------------

VaShMeTaL




http://mad-hell.no-ip.info:8090


experiencia 5x , skills 15x , Servidor 24h , Magic level 15x , ROX A LOT :D



  • 1
  • 2