Ir para conteúdo

Featured Replies

Postado
  • Autor

@eviltox

 

Spoiler

local function isRoomEmpty() -- funcao que verifica se a sala nao esta ocupada
    return getGlobalStorageValue(19281) < 1 and true or false
end

local npos = {x = 141, y = 51, z = 7} -- posicao mais da esquerda que as notas nascem, as outras duas vao ser baseadas nessa daqui x = 142 e x = 143
local startPos = {x = 142, y = 58, z= 7} -- posicao que vc vai ao clicar na alavanca
local finalPos = {x = 145, y = 57, z= 7} -- poscao q vc vai ao terminar o tempo

local storage_point = 12721 -- storage que salva os pontos
local storage_erradas = 12722 -- storage que salva as notas erradas
local storage_passadas = 12723 -- storage que salva as notas que passaram

local config = {
vezes = 3, -- vezes a cada X tempo
tempo = 24, -- horas pra resetar as vezes
stortempo = 12720, -- salva o tempo
storvezes = 12719, -- salva o numero de vezes
price = 30000 -- preco por jogatina
}

local prizes = {
itemid = 2160, -- id do item que ganha
[1] = 1, -- quantidade pra cada 10 notas acertadas (por cada dificuldade)
[2] = 7,
[3] = 10
}

function onUse(cid, item, itemEx, fromPos, toPos)
	local quant = getPlayerStorageValue(cid, config.storvezes) >= 0 and getPlayerStorageValue(cid, config.storvezes) or 0	
	if isRoomEmpty() then
		if quant < config.vezes or getPlayerStorageValue(cid, config.stortempo) - os.time() <= 0 then	
			if doPlayerRemoveMoney(cid, config.price) then
				if quant >= config.vezes then
					setPlayerStorageValue(cid, config.storvezes, 1)
				end
				setPlayerStorageValue(cid, config.stortempo, os.time() + (config.tempo * 60 * 60))
				setPlayerStorageValue(cid, config.storvezes, quant + 1)
				doTeleportThing(cid, startPos)
				setGlobalStorageValue(19281, 1)
				setGlobalStorageValue(19282, 0)
				local d = dif[item.actionid - 100] and item.actionid - 100 or 1
				addEvent(function()
					setGlobalStorageValue(19281, 0)
					if isCreature(cid) then
						if getPlayerStorageValue(cid, storage_point) > getPlayerStorageValue(cid, recorde[d]) then
							setPlayerStorageValue(cid, recorde[d], getPlayerStorageValue(cid, storage_point))
						end
						setPlayerStorageValue(cid, storage_passadas, getGlobalStorageValue(19282))
						local msg = "Estatísticas da partida:\n\n| Notas acertadas: ".. getPlayerStorageValue(cid, storage_point) .."\n| Movimentos errados: ".. getPlayerStorageValue(cid, storage_erradas) .."\n| Notas passadas: ".. getPlayerStorageValue(cid, storage_passadas) .."\n\n| Seu recorde pessoal para esta dificulade é: ".. getPlayerStorageValue(cid, recorde[d]) .. ""		
						local prizecount = math.floor(getPlayerStorageValue(cid, storage_point)/10)
						if prizecount > 0 then
							doPlayerAddItem(cid, prizes.itemid, prizecount * prizes[d])
						end
						doShowTextDialog(cid, 2349, msg)
						doTeleportThing(cid, finalPos)
					end
				end, (#dif[d] + 9) * delay[d])
				for j = 1, #dif[d] do
					addEvent(function()
						if dif[d][j] ~= nil then
							callWave({x= npos.x + dif[d][j], y = npos.y, z = npos.z}, 0, 1679 + dif[d][j], delay[d], 19282)
						end
					end, (delay[d] + 30) * j)
				end
			else
				doPlayerSendCancel(cid, "You need at least "..config.price/1000 .."K to play this game.")
			end
		else
			doPlayerSendCancel(cid, "You already enter ".. config.vezes .." time(s) today.")			
		end
	else
		doPlayerSendCancel(cid, "The room is busy right now, try again later.")
    end
return true
end

 

só trocar seu actions por esse daqui, o npc é relativamente fácil.. só fazer ele comprar as scarab coins pelo preço que vc quiser.

Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

  • Respostas 39
  • Visualizações 3.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @eviltox   só trocar seu actions por esse daqui, o npc é relativamente fácil.. só fazer ele comprar as scarab coins pelo preço que vc quiser.

  • usa esse script aqui, ele verifica se a quantidade de acertos é maior que a quantidade de notas e aí teleporta o cara  pra fora do evento sem premiação e sem salvar score.

  • gostei, vou refazer o script dessa forma e já criar o npc.  Só me dá uns dias q to meio ocupado com coisas da faculdade e fds eu fico sem sentar no pc praticamente

Postado

 

@xWhiteWolf

 

Então, o script rodou normal, clico na alavanca e ele cobra os 30k. Porém, está com dois bugs:
1º ao terminar o game o prêmio não é adicionado: 

Spoiler

gqFpcJg.png

 

 

Erro no distro (nas três jogadas)

Spoiler

T3qpKzB.png

 

2º Ele diz que já joguei as 3 vezes do dia, porém continua cobrando 30k

'-' 

                                                                                                230x230.jpg

 

Postado
  • Autor

@eviltox agora arrumei, testa pra mim pfv

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado

@xWhiteWolf

Então, testei novamente várias vezes para fazer uma média de erros ou tentar entender o erro.
Cheguei a seguinte conclusão: Não entendi porra nenhuma nada.

Nos dois primeiros games (facil e medio) a partir do momento em que ele bate os 10 pontos, ele faz uma média referente as configurações (1 e 7) e começa a adicionar moedas.

Exemplo: a configuração é 1, ele adiciona 1 ao fazer 10 pontos, mas se fizer 11 ele adiciona +1 quando sendo que só deveria adicionar +1 quando fizesse 20 (Se você fizer qualquer quantia de pontos 1~10 ele vai te dar 1 moeda quando deveria dar apenas em 10).

Se a configuração é 7 e você fizer entre 1~10 ele irá te dar sempre 7(seguindo o erro do fácil), mas em 11 ele da 14 moedas '-'  e em 20 também te dará 20 moedas.

O ultimo game é o mais cabuloso, te da 10 moedas mesmo acertando apenas 1 nota ou até mesmo 20. 
E por fim as duas mensagem de uso da alavanca (Avisa que precisa de 30k pra entrar e as das 3 tentativas) estão invertidas, uma saindo no lugar da outra kk
Não sei se consegui ser claro, mas aparentemente ele está dando uma quantidade aleatória de moedas. 
Caso precise de uma explicação melhor me avisa. 

                                                                                                230x230.jpg

 

Postado
  • Autor

@eviltox eu fiz correndo pq queria terminar antes da aula e esqueci de inverter o else quando inverti o if haha o problema das moedas é que eu tinha colocado um math.ceil (arredondar pra cima) em vez de math.floor (arredondar pra baixo).

Agora ele vai te dar aquela quantidade de moedas pra cada 10 notas. Se vc fizer 10 notas vc ganha X, se vc tiver 19 vc ganha X se fizer 20 ganha 2X. Tá certo assim?

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo