Postado Fevereiro 29, 2016 9 anos 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 Março 1, 2016 9 anos 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Fevereiro 29, 2016 9 anos @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 Erro no distro (nas três jogadas) Spoiler 2º Ele diz que já joguei as 3 vezes do dia, porém continua cobrando 30k '-'
Postado Fevereiro 29, 2016 9 anos 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Fevereiro 29, 2016 9 anos @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.
Postado Março 1, 2016 9 anos 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 (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.