Ir para conteúdo
Entre para seguir isso  
tigerx2

Cassino slot machine

Recommended Posts

tigerx2    1
tigerx2
Nome: Cassino slot machine

Autor: CyberM // otland

Versão Testada: tfs 0.4

Informações Adicionais: video auto-explicativo.

 

Video:

 

Frutas padrões

lCbgq9mQDC.png

 

Ganho padrão de combos

bMbkthqsZr.png

 

Outras infos

-Qualquer item jogado nos grounds de slot são deletados, para prevenir bugs e trapaças

-Ao player "usar" a alavanca ele não pode se mover até o jogo acabar

-Se o player "desaparecer" o jogo renicia

 

Em actions/scripts crie um arquivo .lua chamado cassino e coloque isto dentro:

 
--[[
Advanced Slot Machine
	by Cybermaster	 
]]--

--REQUIRED MONEY(gp) TO PLAY SLOT MACHINE
local money = 1000

--MILISECONDS TO CHANGE FRUITS
local time = 200

--ITERATOR TIME TO STOP CHANGING FRUIT IF PLAYER DOESN'T (30 is like 7 seconds)
local limit = 30

--FRUITS THAT WILL RANDOMLY APPEAR AND SWITCH
local fruits = {2674,2675,2676,2679,2680,2682,2683,5097,8841}

--PRIZES TABLES
local win = {
-- [{FRUIT.1,FRUIT.2,FRUIT.3} = {PRIZE,#PRIZE}]
--MIXED COMBOS
[{2679,2683,2679}] = {2160,2},  -- cherry-pumpkin-cherry
[{8841,2682,8841}] = {2160,1},  -- lemon-melon-lemon
--TRIPLE COMBOS
[{2680,2680,2680}] = {2152,80}, -- triple strawberry
[{5097,5097,5097}] = {2152,60}, -- triple mango
[{2683,2683,2683}] = {2152,80}, -- triple pumpkin
[{2682,2682,2682}] = {2152,50}, -- triple melon
[{2676,2676,2676}] = {2152,40}, -- triple banana
[{8841,8841,8841}] = {2152,25}, -- triple lemon
[{2679,2679,2679}] = {2152,20}, -- triple cherry
[{2675,2675,2675}] = {2152,30}, -- triple orange
[{2674,2674,2674}] = {2152,10}, -- triple apple
--ANY COMBOS
[{ANY,2683,2683}] = {2152,5}, -- double pumpkin right
[{2683,2683,ANY}] = {2152,5}, -- double pumpkin left
[{2683,ANY,2683}] = {2152,10}, -- pumpkin sides combo
[{ANY,2679,2679}] = {2152,4}, -- double cherry right
[{2679,2679,ANY}] = {2152,4}, -- double cherry left
[{2679,ANY,2679}] = {2152,8}, -- cherry sides combo
[{ANY,8841,8841}] = {2152,5}, -- double lemon right
[{8841,8841,ANY}] = {2152,5}, -- double lemon left
[{8841,ANY,8841}] = {2152,5}, -- lemon sides combo
}

--MESSAGES THAT RANDOMLY APPEAR WHEN PLAYER WINS
local messages = {'Bingo!','Lucky!','Jackpot!','Win!'}

--FRUITS ROWS
local p = { --[LEVER.UNIQUEID]
[6297] = {},[6298] = {},[6299] = {},[6300] = {}, --[6301] = {},
} --JUST PUT THE INITIAL ROW POS FROM LEFT, SECOND & THIRD WILL BE AUTOM. GENERATED
for i = 1,3 do --p, UNIQUEID.LEVER, {POS FROM TILE OF LEFT}
table.insert(p[6297],i,{x=91+(i-1),y=145,z=7,stackpos=1})
table.insert(p[6298],i,{x=95+(i-1),y=145,z=7,stackpos=1})
table.insert(p[6299],i,{x=99+(i-1),y=145,z=7,stackpos=1})
table.insert(p[6300],i,{x=103+(i-1),y=145,z=7,stackpos=1})
-- table.insert(p[6301],i,{x=19+(i-1),y=145,z=7,stackpos=1})
end

function verifyRow(cid, array, pos)
local result, prize = false, ''
for a, b in pairs(win) do
	if getTileItemById(pos[1],a[1]).uid > 1 or a[1] == ANY then
		if getTileItemById(pos[2],a[2]).uid > 1 or a[2] == ANY then
			if getTileItemById(pos[3],a[3]).uid > 1 or a[3] == ANY then
				doPlayerAddItem(cid, b[1], b[2] or 1, true)
				doSendAnimatedText(getThingPos(cid), messages[math.random(#messages)], math.random(255))
				result, prize, amount = true, b[1], b[2]
			end
		end
	end	
end
if prize ~= '' then 
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, 'Congratulations!! You won '..amount..' '..getItemPluralNameById(prize)..'!')
end
for i = 1,3 do 
	doSendMagicEffect(pos[i], result and CONST_ME_GIFT_WRAPS or CONST_ME_EXPLOSIONHIT)
	doRemoveItem(getTileThingByPos(pos[i]).uid)
end
return not result and doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, 'You have lost in the Slot Machine  Try again')
end

function onUse(cid, item, fromPosition, itemEx, toPosition)

local function doFruit(pos,cid,id,limit)
	if not isPlayer(cid) then
		return doItemEraseAttribute(item.uid, 'aid'), getTileThingByPos(pos).uid > 0 and doRemoveItem(getTileThingByPos(pos).uid)
	end
	if getTileThingByPos(pos).itemid < 1 then
		doSendMagicEffect(pos, CONST_ME_POFF)
		doCreateItem(fruits[math.random(#fruits)], 1, pos)
	else
		doTransformItem(getTileThingByPos(pos).uid,fruits[math.random(#fruits)],1)
	end
	if limit <= 0 then
		doSendMagicEffect(pos,math.random(28,30))		
		doTransformItem(getTileThingByPos(pos).uid,fruits[math.random(#fruits)],1)
		doItemSetAttribute(getTileThingByPos(fromPosition)  .uid, 'aid', getTileThingByPos(fromPosition).actionid+1)
		doTransformItem(getTileThingByPos(fromPosition).ui  d, getTileThingByPos(fromPosition).itemid == 9826 and 9825 or 9826)
	elseif getTileThingByPos(fromPosition).actionid > id then
		doSendMagicEffect(pos,math.random(28,30))
		doTransformItem(getTileThingByPos(pos).uid,fruits[math.random(#fruits)],1)
	else
		addEvent(doFruit,time,pos,cid,id,limit-1)
	end
end

if item.actionid == 0 then
	if not doPlayerRemoveMoney(cid, money) then	
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, 'You need '..money..' gps to play Slot Machine.')
	end
	doItemSetAttribute(item.uid, 'aid', 1)
	doCreatureSetNoMove(cid, true)
	doTransformItem(item.uid, item.itemid == 9826 and 9825 or 9826)
	doSendAnimatedText(getThingPos(cid), '-$'..money,COLOR_RED)
	for i = 1,3 do doFruit(p[item.uid][i],cid,i,i*limit) end
elseif isInArray({1,2,3},item.actionid) then
	doItemSetAttribute(item.uid, 'aid', item.actionid+1)
	doTransformItem(item.uid, item.itemid == 9826 and 9825 or 9826)
elseif item.actionid == 4 then
	doCreatureSetNoMove(cid, false)
	doItemEraseAttribute(item.uid, 'aid')
	doTransformItem(item.uid, item.itemid == 9826 and 9825 or 9826)
	verifyRow(cid, win, p[item.uid])	
end		
return true
end

 

E em actions.xml adicione esta tag:

<action uniqueid="6297-6300" event="script" value="cassino.lua"/>

 

Agora em movements/scripts crie um arquivo .lua chamado cassino e coloque isto dentro:

function onAddItem(moveItem, tileItem, position, cid)
if isPlayer(cid) then
	doRemoveItem(moveItem.uid)
	doSendMagicEffect(position, CONST_ME_EXPLOSIONHIT)
end
end

 

Agora em movements.xml adicione esta tag:

<movevent type="AddItem" tileitem="1" actionid="6577" event="script" value="cassino.lua"/>

 

Mapa

Ecioyo0n15.png

 

--FRUITS ROWS
local p = { --[LEVER.UNIQUEID]
[6297] = {},[6298] = {},[6299] = {},[6300] = {}, --[6301] = {},
} --JUST PUT THE INITIAL ROW POS FROM LEFT, SECOND & THIRD WILL BE AUTOM. GENERATED
for i = 1,3 do --p, UNIQUEID.LEVER, {POS FROM TILE OF LEFT}
table.insert(p[6297],i,{x=91+(i-1),y=145,z=7,stackpos=1})
table.insert(p[6298],i,{x=95+(i-1),y=145,z=7,stackpos=1})
table.insert(p[6299],i,{x=99+(i-1),y=145,z=7,stackpos=1})
table.insert(p[6300],i,{x=103+(i-1),y=145,z=7,stackpos=1})
-- table.insert(p[6301],i,{x=19+(i-1),y=145,z=7,stackpos=1})
end

 

NOTA: Coloque o actionid 6577 ao tile embaixo da alavanca

Itemid das alavancas usadas: 9825 - 9826

Actionid usado: 6577

Uniqueid usado: 6297, ... etc (para cada alavanca usa-se um diferente uid)

 

Espero que gostem :D

Editado por Mickfern

Compartilhar este post


Link para o post
Lwkass    1
Lwkass

Legal esse cassino, muito bem feito,

 

Aprovado

Compartilhar este post


Link para o post
Wakachizi    0
Wakachizi

Bom amigo, eu fiz tudo como voce disse ai, so que o meu problema e o seguinte, eu utilizei outra alavanca, o ID dela e 1945, E tipo quando eu clico la na alavanca nao acontece simplesmente nada .... ;s

Coloquei o UNIQUE ID na alavanca de 6297

Coloquei action ID nos 3 SQM de 6577

Arrumei movements tudo certinho

 

Poderia mi dizer onde eu errrei por nao tar aconteceno simplesmente nada? :[

Vou dar REP+ se a minha duvida for respondida :}

Compartilhar este post


Link para o post
tigerx2    1
tigerx2

@up

Atualizei a imagem do tópico (a última),

veja se você configurou corretamente,

tanto o script quanto o mapa.

Compartilhar este post


Link para o post
Wakachizi    0
Wakachizi

Sim eu fiz corretamente, porem foi so 1 cassino qui eu fiz,

Eu fiz 1 conforme voce ensina, Porem quando eu puxo a alavanca nao acontece nada,

 

Bom eu olhei tudo eu configurei corretamente ;{

Nao sei o qui é, mais eu fiquei muito interesado nese negocio ai :}

Curti ate eu sei qui funciona por que eu ja vi em outros Ot,

 

Bom mesmo assim vo tentar ajeitar aki,

Vlw :}

Compartilhar este post


Link para o post
leolui    0
leolui

Aonde é para Por aqele Ultimo Script ?

 

--FRUITS ROWS

local p = { --[LEVER.UNIQUEID]

[6297] = {},[6298] = {},[6299] = {},[6300] = {}, --[6301] = {},

} --JUST PUT THE INITIAL ROW POS FROM LEFT, SECOND & THIRD WILL BE AUTOM. GENERATED

for i = 1,3 do --p, UNIQUEID.LEVER, {POS FROM TILE OF LEFT}

table.insert(p[6297],i,{x=91+(i-1),y=145,z=7,stackpos=1})

table.insert(p[6298],i,{x=95+(i-1),y=145,z=7,stackpos=1})

table.insert(p[6299],i,{x=99+(i-1),y=145,z=7,stackpos=1})

table.insert(p[6300],i,{x=103+(i-1),y=145,z=7,stackpos=1})

-- table.insert(p[6301],i,{x=19+(i-1),y=145,z=7,stackpos=1})

end

por favor , eu nao sei aonde é para por essa ultima parte

voce nao explicou

Vlws!

Compartilhar este post


Link para o post
tigerx2    1
tigerx2

@up

No script que fica em actions/scripts, tem essa parte,

soh estou mostrando ali pra ficar mais facil, e voce ver

como configurar.

Compartilhar este post


Link para o post
leolui    0
leolui

Tipo Sabe os Pontos Verde e Rosa que se pois la na fotinha?

tipo , qeria sabe o q é pra por la ?

 

e tem como se passa o msn pra explica melhor ?

pq fika toda hora dando esse erro:

 

[12/01/2011 12:12:34] [Error - LuaScriptInterface::loadFile] data/actions/scripts/cassino.lua:100: ')' expected near 'd'

[12/01/2011 12:12:34] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/cassino.lua)

[12/01/2011 12:12:34] data/actions/scripts/cassino.lua:100: ')' expected near 'd'

 

por favor kra

gostei mt do script

xD

Editado por leolui

Compartilhar este post


Link para o post
leolui    0
leolui

xD

tbm curti mt esse cassino

nao tem igual ao do kra

mais fika dando erro

ele tem q explica melhor =/

Compartilhar este post


Link para o post
gutinkk    0
gutinkk

De fato passa msn pra vc explicar mais detalhado

Compartilhar este post


Link para o post
manchinhaot    0
manchinhaot

Muito legal pena que já tenho um parecido no meu serv :D

Compartilhar este post


Link para o post
drakonious    0
drakonious

hey o meu da esse errinho aki plixs me ajuda

 

bugcasino.png

 

fica criando item sem parar e escrito 'TILE NOT FOUND' o q é isso ?

Compartilhar este post


Link para o post
tigerx2    1
tigerx2

O tenso eh que na otland todos entendem,

e aqui nao. Gente, nao adianta voce fazer as

coisas sem prestar atenção e sem saber nada.

Editado por tigerx2

Compartilhar este post


Link para o post
VittinhoO    0
VittinhoO

Legal cara fico muito bem feito so tems Ums bugs ai no script mais nada grave

ahh sera que alguem sabe o nome dessa musica :S ?

Compartilhar este post


Link para o post
Kekezito_LHP    1
Kekezito_LHP

Muito bom funfiono perfeitamente vlws por posta

Compartilhar este post


Link para o post
Ribas1574    1
Ribas1574

bem legal, mais não entendi a configuração, vou da uma "mexida" nele...

Compartilhar este post


Link para o post
Dargosh    0
Dargosh

Bem irado, ao contrario de algums outros sistemas, tipo Tetris, esse tem uma recompensa, os players concerteza iram querer brincar um poco =)

Compartilhar este post


Link para o post
kacalsilvera    0
kacalsilvera

tem como eu dificultar ele tipow o players poder mexer na alavanca somente uma ate parar a aposta? porque quando o player clicka direto na alavanca sem para ele sempre acaba ganhando dinheiro!

Compartilhar este post


Link para o post
Skankamui    0
Skankamui

Sinceridade... nun manjo muito de script nem nada dessas coisas, mas tenho capacidade de assimilar positions e tentar "copialas" de tal forma que funcione nu meu ot... mas na boa cara, esse tuto deixou a desejar!!! ... ta dando esse erro aki... se alguem achar a solução, desde já, agradeço de coração.

 

 

[2:37:28.489] >> Loading actions ... [Error - LuaInterface::loadFile] data/actio

ns/scripts/cassino.lua:100: ')' expected near 'd'

[2:37:28.510] [Error - Event::checkScript] Cannot load script (data/actions/scri

pts/cassino.lua)

[2:37:28.525] data/actions/scripts/cassino.lua:100: ')' expected near 'd'

Compartilhar este post


Link para o post
Merfolk    0
Merfolk

legal, vamos viciar os players em jogos de azar! =D

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×