Ir para conteúdo

Ajuda Novamente Com Add Event ¬¬


Skyblade

Posts Recomendados

seguinte²

 

desta vez eu tentei fazer um "cassino" no meu ot de esportes..

 

qndo eu criei esse script nao tinha quase nenhuma noção de scripts, e deixei ele funcionando meia boca... achando que era

normal o que acontecia ( usa a 1º vez e nao funfa, ja a 2º funfa tudo 100%).

ai o ot foi evoluindo e tudo mais ai tive que aumentar o cassino, resultado.. nao consigo fazer 2 funcionarem, pois o script parece que nao esta bem "compactado" pra funcionar perfeitamente.

 

Conclusão: axo que deve ter algo "duplicado"(variavel) ou outra coisa mas com os conhecimentos que possuo naão consigo encontra-los :/

 

peço para que alguem que tenha experiencia analise e me de resposta

function onUse(cid, item, frompos, item2, topos)
time = 6

local parametro = {cid = cid}
pp = getPlayerPosition(cid)




goldpos = {x=pp.x-1,y=pp.y-1,z=pp.z,stackpos=1} 
gold = getThingfromPos(goldpos) 
um1 = {x=pp.x-2,y=pp.y-1,z=pp.z,stackpos=1} 
um = getThingfromPos(um1) 
dois2 = {x=pp.x-2,y=pp.y,z=pp.z,stackpos=1} 
dois = getThingfromPos(dois2) 
tres3 = {x=pp.x-2,y=pp.y+1,z=pp.z,stackpos=1} 
tres = getThingfromPos(tres3) 
premio1 = {x=pp.x-1,y=pp.y+1,z=pp.z,stackpos=1}  
premio = getThingfromPos(premio1) 


    if item.itemid == 1945 then 
	if gold.itemid == 2148 then
		doRemoveItem(gold.uid,1)
if (um.itemid == 2639) or (um.itemid == 2638) then
		doRemoveItem(um.uid,1)
end
if (dois.itemid == 2639) or (dois.itemid == 2638) then
		doRemoveItem(dois.uid,1)
end
if (tres.itemid == 2639) or (tres.itemid == 2638) then
		doRemoveItem(tres.uid,1)
end
		addEvent(wait1,1000,parametro)
		addEvent(wait2,2000,parametro)  
		addEvent(wait3,3000,parametro)  
		doTransformItem(item.uid,item.itemid+1)  
else
  doPlayerSendTextMessage(cid,22,'Ponha o dinheiro em cima do coal basin')
end

elseif item.itemid == 1946 then
if getPlayerExhaust(cid,9547,time) == -1 then

doTransformItem(item.uid,item.itemid-1)  

if um.itemid == 2639 then
if tres.itemid == 2639 then
if dois.itemid == 2639 then
doSendMagicEffect(premio1,22)
doCreateItem(2148, 10, premio1)
end
end
end

if um.itemid == 2638 then
if tres.itemid == 2638 then
if dois.itemid == 2638 then
doSendMagicEffect(premio1,22)
doCreateItem(2148, 5, premio1)
end
end
end

if um.itemid == 2638 then
if tres.itemid == 2638 then
if dois.itemid == 2639 then
doSendMagicEffect(premio1,22)
doCreateItem(2148, 2, premio1)
end
end
end

if um.itemid == 2639 then
if tres.itemid == 2639 then
if dois.itemid == 2638 then
doSendMagicEffect(premio1,22)
doCreateItem(2148, 2, premio1)
end
end
end


else
doPlayerSendTextMessage(cid,22,'Espere 5 seg para reutilizar')
end
return 1
end





function wait1(parametro)



sorte1 = math.random(1,2)
if sorte1 == 1 then
item3 = 2638
else
item3 = 2639
end 
efeito1 = math.random(22,24)
	doCreateItem(item3, 1, um1) 
	doSendMagicEffect(um1,efeito1) 


end



function wait2(parametro)

sorte2 = math.random(1,2)
if sorte2 == 1 then
item2 = 2638
else
item2 = 2639
end 
efeito2 = math.random(22,24)
	doCreateItem(item2, 1, dois2)
	doSendMagicEffect(dois2,efeito2)   


end


function wait3(parametro)

cid = parametro.cid

sorte3 = math.random(1,2)
if sorte3 == 1 then
item1 = 2638
else
item1 = 2639
end 
efeito3 = math.random(22,24)
	doCreateItem(item1, 1, tres3)
	doSendMagicEffect(tres3,efeito3)
	doPlayerSendTextMessage(cid,22,'Puxe a alavanca novamente para ver se ganhou algo!')  


end




end



function getPlayerExhaust(player,number,time)

now = os.time()
before = getPlayerStorageValue(player,number)

exhaust = os.difftime(now,before)

if before == -1 then
setPlayerStorageValue(player,number,now)
return -1
else
if exhaust >= time then
setPlayerStorageValue(player,number,now)
return -1
else
return 1
end
end
end


Explicando...

vc puxa uma alvanca..

ela verifica se tem moedas no tal sqm...

se tiver...ela pega 1 e randomiza os "X" e "O" em 3 sqm...

que seriam os um1, dois2, tres3...

e manda msg pro player puxar devolta pra ver se teve sorte...

ele puxa devolta ela verifica se deu alguma combinaçao "vencedora" e faz o valor do premio aparecer na pos "Premio"..

só q nao ta funfando direito =/

 

 

Grato desde já

att. Skyblade

 

Edit: "explicando"

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

Arrumei alguns END's que estavam fora do lugar.

 

function onUse(cid, item, frompos, item2, topos)

local time = 6

local parametro = {cid = cid}

pp = getPlayerPosition(cid)

goldpos = {x=pp.x-1,y=pp.y-1,z=pp.z,stackpos=1}

gold = getThingfromPos(goldpos)

 

um1 = {x=pp.x-2,y=pp.y-1,z=pp.z,stackpos=1}

um = getThingfromPos(um1)

 

dois2 = {x=pp.x-2,y=pp.y,z=pp.z,stackpos=1}

dois = getThingfromPos(dois2)

 

tres3 = {x=pp.x-2,y=pp.y+1,z=pp.z,stackpos=1}

tres = getThingfromPos(tres3)

 

premio1 = {x=pp.x-1,y=pp.y+1,z=pp.z,stackpos=1}

premio = getThingfromPos(premio1)

 

if item.itemid == 1945 then

 

if gold.itemid == 2148 then

doRemoveItem(gold.uid,1)

 

if (um.itemid == 2639) or (um.itemid == 2638) then

doRemoveItem(um.uid,1)

end

 

if (dois.itemid == 2639) or (dois.itemid == 2638) then

doRemoveItem(dois.uid,1)

end

 

if (tres.itemid == 2639) or (tres.itemid == 2638) then

doRemoveItem(tres.uid,1)

end

 

addEvent(wait1,1000,parametro)

addEvent(wait2,2000,parametro)

addEvent(wait3,3000,parametro)

doTransformItem(item.uid,item.itemid+1)

 

else

 

doPlayerSendTextMessage(cid,22,'Ponha o dinheiro em cima do coal basin')

end

 

elseif item.itemid == 1946 then

if getPlayerExhaust(cid,9547,time) == -1 then

 

doTransformItem(item.uid,item.itemid-1)

 

if um.itemid == 2639 then

if tres.itemid == 2639 then

if dois.itemid == 2639 then

 

doSendMagicEffect(premio1,22)

doCreateItem(2148, 10, premio1)

end

end

end

 

if um.itemid == 2638 then

if tres.itemid == 2638 then

if dois.itemid == 2638 then

 

doSendMagicEffect(premio1,22)

doCreateItem(2148, 5, premio1)

end

end

end

 

if um.itemid == 2638 then

if tres.itemid == 2638 then

if dois.itemid == 2639 then

 

doSendMagicEffect(premio1,22)

doCreateItem(2148, 2, premio1)

end

end

end

 

if um.itemid == 2639 then

if tres.itemid == 2639 then

if dois.itemid == 2638 then

 

doSendMagicEffect(premio1,22)

doCreateItem(2148, 2, premio1)

end

end

end

 

else

doPlayerSendTextMessage(cid,22,'Espere 5 seg para reutilizar')

end

end

 

return 1

 

end

 

function wait1(parametro)

sorte1 = math.random(1,2)

if sorte1 == 1 then

item3 = 2638

else

item3 = 2639

end

efeito1 = math.random(22,24)

doCreateItem(item3, 1, um1)

doSendMagicEffect(um1,efeito1)

end

 

function wait2(parametro)

sorte2 = math.random(1,2)

if sorte2 == 1 then

item2 = 2638

else

item2 = 2639

end

efeito2 = math.random(22,24)

doCreateItem(item2, 1, dois2)

doSendMagicEffect(dois2,efeito2)

end

 

function wait3(parametro)

cid = parametro.cid

sorte3 = math.random(1,2)

if sorte3 == 1 then

item1 = 2638

else

item1 = 2639

end

efeito3 = math.random(22,24)

doCreateItem(item1, 1, tres3)

doSendMagicEffect(tres3,efeito3)

doPlayerSendTextMessage(cid,22,'Puxe a alavanca novamente para ver se ganhou algo!')

end

 

-- Pega exaustão do player.

function getPlayerExhaust(player,number,time)

now = os.time()

before = getPlayerStorageValue(player,number)

exhaust = os.difftime(now,before)

if before == -1 then

setPlayerStorageValue(player,number,now)

return -1

elseif exhaust >= time then

setPlayerStorageValue(player,number,now)

return -1

else

return 1

end

end

Link para o comentário
Compartilhar em outros sites

addEvent(wait1,1000,parametro) 
addEvent(wait2,2000,parametro) 
addEvent(wait3,3000,parametro)

 

Seria isso?

 

Mude para:

 

addEvent(wait1,1000,parametro) 
addEvent(wait2,1000,parametro) 
addEvent(wait3,1000,parametro)

 

Procure sempre comentar o código ao estar sendo construído, permitindo melhor correção de erros.

 

-- Comentário

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...