Ir para conteúdo

Npc Que Joga Jokenpô


Posts Recomendados

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.

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

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

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

nus meos tempos de muleke adorava jogar jokempo

 

mt bom cara

xD

 

 

eh soh por papel q ganha xP

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

  • 1 month later...
  • 2 weeks later...
×
×
  • Criar Novo...