Ir para conteúdo

Demonbholder

Infante
  • Total de itens

    1551
  • Registro em

  • Última visita

  • Dias Ganhos

    24

Tudo que Demonbholder postou

  1. Quando terminar de implantar esse sistema, começa com a postagem por pensamentos.
  2. Fala galera, vou postar uma função própria para scripters que sabem o que é progressão aritmética e progressão geométrica, conteúdos de matemática do segundo ano do ensino médio. Bom, não tem muito o que comentar, já que você só irá entender se souber o conteúdo. Vamos as funções: Progressão aritmética Retornar um certo valor de uma PA. function getArithmeticalProgression(a1, r, n) if type(a1) == "number" and type(r) == "number" and type(n) == "number" then return a1 + (n - 1)*r else error("Not number value.") end end Retornar uma PA. function doReturnPA(a1, r, n) local pa = {} for i = 1, n do pa[i] = a1 + (i-1)*r end return pa end Soma dos termos de uma PA. function getArithmeticalSum(a1, r, an) local n = an/r return ((a1 + (a1 + (n-1)*r))*n)/2 end Progressão geométrica Retorna um certo valor de uma PG. function getGeometricProgression(a1, q, n) if type(a1) == "number" and type(q) == "number" and type(n) == "number" then return a1 * (q^(n-1)) else error("Not number value.") end end Retorna uma PG. function doReturnPG(a1, q, n) local pg = {} for i = 1, n do pg[i] = a1 * (q^(i-1)) end return pg end Soma dos termos de uma PG. function getGeometricSum(a1, q, an) local n = 1 while an ~= a1 do an = an/q n = n + 1 end return (a1*(q^n-1))/(q -1) end Ainda nao consegui bolar uma formula para descobrir o n acima, entao tive que usar looping. É isso, até mais.
  3. Creio que pode ser feito pelo map editor. Seção incorreta, irei reportar para que movam.
  4. Wow, realmente incentivador! Se eu ainda estivesse jogando provavelmente compraria. Legal, tenho uns amigos que jogam ainda, vou indicar esta promoção a eles :smile_positivo:
  5. function onSay(cid, words, param) if param == "" then doPlayerSendCancel(cid, "Parâmetro necessário.") doSendMagicEffect(getCreaturePosition(cid), 2) else for _, pid in ipairs(getPlayersOnline()) do doShowTextDialog(pid, 2160, getCreatureName(cid) .. " diz: \n" .. param) end end return TRUE end Assim que tu quer?
  6. function onUse(cid, item) if getPlayerStorageValue(cid, 32000) == -1 then doRemoveItem(item.uid, 1) setPlayerGroupId(cid, 2) setPlayerStorageValue(cid, 32000, 1) doPlayerSendTextMessage(cid, 4, "Você foi promido a tutor.") else doPlayerSendCancel(cid, "Você ja fez esta quest.") end end
  7. Poderia melhorar, mas estão satisfatórias no momento, na minha opinião.
  8. Haha, vocês me deixam até meio atordoado que eu editei o tópico falando pra adicionar uma função nada a ver com o script kkkkk. Mas agora ta tudo certo, eu acho. @Up Quantas mais tu quer? :smile_positivo:
  9. VODKINHAA SUK MAI DIK
  10. Faaaala galera, e ai, tudo tranquilo? Já devem ter percebido que eu adoro talkactions, simplesmente gosto de fazer Talks. Essas informações são para caso se você um dia for fazer uma biografia minha ok? Haha, vamos deixar de brincadeira e ir logo para o script. Como funciona: É tipo um twitter, eu nunca usei o twitter ai não sei como funciona ele direito, mas eu fiz algo do tipo. Você fala !twitt Blablabla e é adicionada ao seu Twitter no Tibia, ai para ver os Twitts dos outros é só falar !follow NomeDoJogador e ver seus twitts. Não testei muito esse sistema, creio não há erros, mas não tenho certeza. Talkaction: function onSay(cid, words, param) if words == "!twitt" then if getGlobalStorageValue(30070) == -1 then db.executeQuery("ALTER TABLE `players` ADD twits TEXT NOT NULL DEFAULT twitter;") setGlobalStorageValue(30070, 1) end if param == "" then doPlayerSendCancel(cid, "Param required.") doSendMagicEffect(getCreaturePosition(cid), 2) else local datas = db.getResult("SELECT `twits` FROM `players` WHERE `id` = ".. getPlayerGUID(cid) .. ";") local sentense = datas:getDataString("twits") .. "\n" .. tostring(param) .. " " .. os.date("%c") db.executeQuery("UPDATE `players` SET `twits` = '".. sentense .. "' WHERE `id` = ".. getPlayerGUID(cid) .. ";") return TRUE end end if words == "!follow" then if param == "" then doPlayerSendCancel(cid, "Param required.") doSendMagicEffect(getCreaturePosition(cid), 2) else local id = playerExists(tostring(param)) and getPlayerGUIDByName(tostring(param)) or getPlayerGUID(cid) local datas = db.getResult("SELECT `twits` FROM `players` WHERE `id` = ".. id .. ";") local name = id == getPlayerGUID(cid) and getCreatureName(cid) or param doShowTextDialog(cid, 2160, name .. " " .. datas:getDataString("twits")) end end return TRUE end Lembrando que é um Twitter no OtServer, não tem nada a ver com o site. Tag: <talkaction words="!twitt;!follow" script="NomeDoArquivo.lua" /> Servidor Testado: New Styller Yourots 0.7.5 Qualquer erro, por favor me notifique imediatamente, até mais.
  11. Certo, irei reportar para que movam o tópico para seção de dúvidas resolvidas, considerando que eu não posso.
  12. Acho que o que ele queria era isso: function onSay(cid, words, param, channel) items1 = {2461, 2467, 2649} --Itens necessarios quanty = {100, 100, 1} --Quantidade de cada item em ordem items2 = {5937} --Itens q o player vai ganhar removeitems2 = true -- true pra remover os itens necessarios false para apenas checar se o player tem os intens necessários for i = 1, table.maxn(items1) do if getPlayerItemCount(cid, items1[i]) < quanty[i] then doPlayerSendTextMessage(cid, 27, 'Você não tem as paradas.') return true end end if removeitems2 == true then for i = 1, table.maxn(items1) do doPlayerRemoveItem(cid, items1[i], quanty[i]) end end for i = 1, table.maxn(items2) do doPlayerAddItem(cid, items2[i], 1) end doPlayerSendTextMessage(cid, 27, 'Você trocou as paradas.') return true end Edite Quanty se precisar, lembrando que deve ser em ordem de acordo com o item1
  13. Olá galera! Minha primeira contribuição oficial como colaborador. Eu queria fazer uma função que seria quase que uma extensão da getTabHighValue, assim eu decidi criar ou re-criar uma função que ordena a tabela em ordem crescente. Não sei se já existe uma função na própria linguagem lua pura, mas se existir, é desconhecida por mim, então decidi fazer a minha. Oks, lá vamos nós a função. function doOrderTab(tabela, value) max = nil for i = 1, table.maxn(tabela) do valor = value for a, b in ipairs(tabela) do if b > valor then valor = b end end table.remove(tabela, table.find(tabela, valor)) if valor ~= value then max = max == nil and valor or max .. ", " .. valor end end return max end 1º Parâmetro: Tabela a ser ordenada. 2º Parâmetro: Valor mínimo que o número deve ser para ser considerado na ordem. Exemplos em Talkactions: function onSay(cid, words, param) t = {} for pos, pid in ipairs(getPlayersOnline()) do t[pos] = getPlayerLevel(pid) end doShowTextDialog(cid, 2160, doOrderTab(t, 0)) end Ordena o nível dos jogadores online. function onSay(cid, words, param) t = {500, 700, 400} doShowTextDialog(cid, 2160, doOrderTab(t, 0)) end Ordena a tabela acima, retornando: 700, 500, 400 É isso, espero que ajude, até mais galera.
  14. Ja coloquei o vídeo mostrando que funciona, você deve ter esquecido de colocar alguma coisa. Testei em New Styller Yourots 0.7.5.
  15. Oh meu deus, por favor, explique direito, nem você consegue entender o que esta escrito acima. O meu script funciona assim: !jail Demonbholder, 10, Uso de bot Depois de 10 segundos ele poderá usar !out e sair da cadeia.
  16. É a primeira versão: http://www.xtibia.com/forum/topic/153561-talkaction-cadeia/
  17. Ta tranquilo, vou reportar para que movam, considerando que eu não posso.
  18. O fato é que são dois scripts diferentes, o dele heala o máximo de vida já de cara, o seu heala tanto de vida de tantos em tantos segundos. Uma formula legal que você poderia ter usado é: (getCreatureMaxHealth(cid) - getCreatureHealth(cid))/10 Nesse caso iria healar diferente de jogador para jogador e depois de 10 vezes que o addEvent é executado, a vida dele chega ao máximo. Seu script está bom, até.
  19. Vou reportar para que movam o tópico, considerando que eu não posso.
  20. function onSay(cid, words, param) if words == "!vida" then doShowTextDialog(cid, 2160, "Vida Máxima: ".. getCreatureMaxHealth(cid) .." \nVida Atual: ".. getCreatureHealth(cid) .. "") end if words == "!mana" then doShowTextDialog(cid, 2160, "Mana Máxima: ".. getCreatureMaxMana(cid) .." \nMana Atual: ".. getCreatureMana(cid) .. "") end return TRUE end tenta ai
  21. Irei reportar para que movam o tópico, considerando que eu não posso.
  22. Como prometido, adicionado vídeo de demonstração do sistema e instalação.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...