Ir para conteúdo

Killua

Membro
  • Registro em

  • Última visita

Tudo que Killua postou

  1. Só hoje fui ver que postaram esse meu script. Eu sabia q ele tinha vazado junto com um datapack meu, mas nunca tinho visto ele solto aqui. Eu fiz ele em 2013 ou no começo de 2014 e o motivo de eu ter feito simulando OOP é muito simples: Eu estava estudando OOP em lua e queria usar em algum script pra testar xD
  2. Bom dia, estou precisando contratar alguém para fazer uma imagem de fundo e um ícone para o meu cliente e acho que aqui é um bom lugar para procurar. No aguardo!
  3. Pois é, eu acredita que seja alguma falha aproveitada para SQL Injection, mas não disse isso para não limitar as opções... O sistema operacional é o Windows. Obrigado
  4. Ainda estou a procura de alguem qualificado.
  5. Não é no otpokemon o problema rs, é no servidor de um amigo meu. O Xampp já está configurado para somente acessar pelo ip do dedicado e o pma não estã exposto... LF, Elwyn e menani, vou passar pra vcs por PM o link do server
  6. Estou passando por alguns problemas relacionados à invasão de banco de dados phpMyAdmin e estou procurando alguém com experiência no assunto. Quem tiver experiência e interesse em receber por um serviço (basta conseguir invadir e me dizer o caminho usado), entre em contato.
  7. Killua postou uma resposta no tópico em Suporte & Pedidos
    É uma ideia bem legal Bruno, mas esbarraria na velha falta de interesse... Acho que para open tibia não daria certo :/
  8. Obrigado Eu realmente não gastei muito tempo pensando o que fazer, fiz a primeira coisa que me veio a mente kkkk
  9. Killua postou uma resposta no tópico em Eventos de Scripting
    Legal, gostei de ter participado e espero que hajam outros. A ideia do Frenesy foi muito boa mesmo
  10. Em todas as linhas que tem isso isInArea(getCreaturePosition(cid), bloodconfig.fromPos, bloodconfig.toPos) Vc vai ter que ficar pondo or isInArea(getCreaturePosition(cid), {frompos do andar}, {topos do andar}) Pra cada andar
  11. Gostei da iniciativa do concurso e já me inscrevi
  12. Sala Secreta Esse código foi testado no TFS 0.3.6 mas da maneira que fiz deve funcionar em todos os demais. O script é de uma sala misteriosa na qual os players vão parar por acidente (Não serão teleportados). Ao pisar em um determinado SQM, a sala é inteira trancada em volta do player, deixando ele sozinho ali dentro. Após isso, 3 pilares começam a "atirar" uns nos outros e, em seguida, começam a atirar no player. Nesse momento, o player deve sair andando pela sala até encontrar o SQM correto, onde deve permancer. Quando ele levar os "tiros" estando no SQM correto, uma chest aparecerá na sua frente. Ao abrir a chest, ele recebe o prêmio, a chest some, a sala é destrancada e ele é enviado para fora. OBS: As posições dos pilares, SQM correto e chest, bem como o prêmio da quest são de fácil configuração nas tabelas no início do código. Vídeo demonstrativo: Instalação Crie secretRoom.lua em data/movements/scripts e cole este código: Em movements.xml, cole esta TAG: <movevent type="StepIn" actionid="3781" event="script" value="secretRoom.lua"/> Crie secretRoomChest.lua em data/actions/scripts e cole este código: Em actions.xml, cole esta TAG: <action uniqueid="9123" event="script" value="secretRoomChest.lua"/> Coloque actionID 3781 nos pisos que servirão de entrada para a sala. Está feito, espero que gostem. Com criatividade dá pra montar uma quest legal e com bastante RPG. Eu irei aproveitar esse script no otPokémon também
  13. Killua postou uma resposta no tópico em Suporte & Pedidos
    Boa noite a todos, venho apresentar a nova versão do nosso New Client que está sendo desenvolvido pela nossa equipe. É uma versão inovadora que proporciona uma experiência de jogo diferente das que estamos acostumados. Novidades Nova tela de entrada Nova lista de personagens com mais informações Mais SQMs na tela Janela de chat transparente Novo design Nova pokédex Nova lista de pokémon Veja abaixo algumas imagens. Nova tela de entrada Nova lista de personagens com mais informações Nessa nova lista, sempre que um personagem é selecionado, é mostrado seu outfit e gifs de todos os pokémon que ele está carregando. Mais SQMs na tela, novo design e janela de chat transparente Com esse novo design, chat transparente e mais SQMs na tela, a tela inteira é aproveitada para o jogo. Nova pokédex Nova lista de pokémon Esperamos que gostem da nova versão, nossa equipe trabalhou bastante para poder liberá-la. Até mais e esperamos vocês no jogo Acessem: www.otpokemon.com
  14. printTable(getThingFromPos(pos)) printTable(getTopCreature(pos)) printTable(item) printTable(getThing(uid)) vai mostrar como são essas tabelas que nunca vemos
  15. Se você já leu o manual de referência já deve ter visto uma função parecida com essa. O que ela faz? Ela printa uma tabela completa, por exemplo: Executando ela em seu OT: O chamado printTable{1,3,4,[5] = 5, [6] = 1} retorna Instalação Crie printTable.lua em data/lib e cole: function printTable(table, includeIndices,prnt) -- By Killua if includeIndices == nil then includeIndices = true end if prnt == nil then prnt = true end if type(table) ~= "table" then error("Argument must be a table") return end local str, c = "{", "" for v, b in pairs(table) do if type(b) == "table" then str = includeIndices and str..c.."["..v.."]".." = "..printTable(b,true,false) or str..c..printTable(b,false,false) else str = includeIndices and str..c.."["..v.."]".." = "..b or str..c..b end c = ", " end str = str.."}" if prnt then print(str) end return str end Utilização Basta chamar ela colocoando sua tabela como primeiro argumento, exemplo: printTable({1,2,3,4}) O segundo parâmetro (includeIndices) define se os indices vão ou não ser mostrados no print. Como padrão, ele tem valor true. Por exemplo: printTable({1,2,3,4}) ou printTable({1,2,3,4}, true) Vai printar: {[1] = 1, [2] = 2, [3] = 3, [4] = 4} E printTable({1,2,3,4}, false) Vai printar: {1, 2, 3 ,4} Além de printar sua tabela, a função ainda retorna ela como string. Sendo assim, você pode usar essa string para oque precisar. Por exemplo: doPlayerSendTextMessage(cid, 25, printTable{1,2,3,4}) Vai enviar para o player a mensagem: "{[1] = 1, [2] = 2, [3] = 3, [4] = 4}" Obrigado, espero que sjea útil.
  16. De nada, gosto de tirar dúvidas de pessoas que estão tentando aprender
  17. Você cometeu muitos erros... Vou te ajudar 1 - Pra declarar uma variável local vc usa 'local' (não 'Local') seguido por um '=' e o valor que vc quer armazenar. 2 - Você usou a função getPlayerSlotItem(cid, slot) entre '', fazendo ela ser somente uma string e não uma função. 3 - A variável global 'RING' provavelmente não foi declarada em nenhum lugar, os servidores normalmente vem com a variável CONST_SLOT_RING, que se refere ao slot de id 9. 4 - getPlayerSlotItem(cid, slot) vai te retornar uma tabela com várias informações sobre o item, (exemplos: itemid, uid, itemtype). Quando você vai fazer a comparação em if isInArray({2207,2208,2209,2210,2211}, Ringbase) then você deve especificar quais das informações vc quer usar. No caso vc precisaria usar o id, portanto ficaria assim: if isInArray({2207,2208,2209,2210,2211}, Ringbase.itemid) then 5 - A função doPlayerRemoveItem(cid, item) precisa de um uniqueid (quase o mesmo caso do item 4), então você deveria usar: doPlayerRemoveItem(cid, Ringbase.uid, 1) 6 - elseif getPlayerSlotItem(cid, RING) == 2216 then Além de estar totalmente errada é desnecessária pq vc já guardou o valor de getPlayerSlotItem(cid, slot) em um variável. Além disso, vc está tentando comparar uma tabela com um número. O correto seria: elseif Ringbase.itemid == 2216 then 7 - Não há necessidade de ficar usando esses returns dentro do escopo, os ifs, elseifs e elses já estão fazendo esse trabalho 8 - Você não retornou true a function onSay(cid, words, param), por conta disso, sempre que o jogador usar o comando ele vai aparecer como fala. Espero que vc leia tudo que eu falei e que isso te ajude a aprender. Aqui está o script corrigido: function onSay(cid, words, param) local Ringbase = getPlayerSlotItem(cid, CONST_SLOT_RING) if isInArray({2207,2208,2209,2210,2211}, Ringbase.itemid) then doPlayerRemoveItem(cid, Ringbase.uid, 1) doPlayerAddItem(cid, 2216, 1) elseif Ringbase.itemid == 2216 then doPlayerSendCancel(cid, "Você já esta nesta forma!") else doPlayerSendCancel(cid, "Você precisa do transformador equipado!") end return true end
  18. Killua postou uma resposta no tópico em Formação de Equipe
    Estamos procurando um bom spriter para trabalhar com o otPokémon. Se tiver interesse, poste aqui dizendo quais são suas experiencias e mostrando o quão bom você é, se possível mostre imagens de seus trabalhos. Os valores e formas de pagamento serão discutidos depois que você for selecionado.
  19. Você só precisa chamar a função, por exeplo: setPlayerTableStorage(cid, 11132, {["vitorias"] = 10, ["derrotas"] = 4, ["empates"] = 1}) Pode preencher a tabela do jeito que quiser que ela será armazenada e estará pronta para uso sempre que precisar.
  20. Introdução: Esses dias eu estava fazendo um sistema e senti a necessidade de armazenar várias informações (por player) em um só lugar. Porém, todos nós sabemos que não é possível colocar uma tabela como valor de um storage. Por conta disso, decidi tornar possível esse armazenamento. Tenho certeza de que essa biblioteca será uma ferramenta extremamente útil para todos os scripters. Ela abre muitas portas e vai permitir a criação de muitos sistemas interessantes. Instalação: Simplesmente crie o arquivo tableStorage.lua em data/lib e coloque esse código: Utilização: Para armazenar uma tabela em um storage de um player, use: setPlayerTableStorage(cid, key, tabela) Exemplo: setPlayerTableStorage(cid, 199991, {["primeiro"] = 4, [8] = "Killua", [3] = 22}) Para armazenar uma tabela em um storage global, use: setGlobalTableStorage(key, tabela) Exemplo: setGlobalStorageValue(123412, {1, 55, "c", 3}) Para retornar as tabelas, use: getGlobalTableStorage(key) ou getPlayerTableStorage(cid, key) Esclarecimento: As tabelas retornadas pelas funções getGlobalTableStorage e getPlayerTableStorage são tabelas normais e podem ser manipuladas como qualquer outra, por exemplo: for t, k in pairs(getPlayerTableStorage(cid, 123444)) do print("["..t.."] "..v) end Observações: As tabelas não armazenam valores booleanos, outras tabelas e nem funções, apenas strings e números. No entanto é claro que ela pode armazenar valores recebidos de funções, por exemplo: setPlayerTableStorage(cid, 17271, {["level"] = getPlayerLevel(cid), ["sex"] = getPlayerSex(cid) == 1 and "female" or "male"}) Funcionará perfeitamente. Mas: setPlayerTableStorage(cid, 17271, {returnDouble = function(value) return value*2 end, try = 11, [2] = 10}) Não irá funcionar. As tabelas podem ser preenchidas com ou sem index definido, de forma que os não definidos serão definidos automaticamente numa sequencia (Como qualquer tabela). Sendo assim: setPlayerTableStorage(cid, 12344, {1,3,23,1999,"test"})setPlayerTableStorage(cid, 12344, {[5] = "hi", ["mia"] = 32, c = 18})setPlayerTableStorage(cid, 12344, {1, "c", 6, ["test"] = 18, b = "c", "hello world"}) São todas válidas. Cuidado com com tabelas muito grandes! Elas podem acabar pesando bastante e consumindo bastante de sua database. Eu aconselho não ultrapassar 4 elementos. É claro que apenas um storage com uma tabela bem grande não vai causar problema mas, em um servidor com muitos jogadores, pode ser perigoso adicionar muitas tabelas grandes (1 por jogador). Considerações: Eu realmente acho que essa biblioteca vai abrir várias possibilidades para todos vocês, scripters. E espero que criem muitos sistemas legais a partir dela. Se tiverem dúvidas ou sugestões, podem dizer. Abraços.
  21. Killua postou uma resposta no tópico em Ouvidoria
    Ok, obrigado
  22. Killua postou uma resposta no tópico em Ouvidoria
    Oi, gostaria de entrar em contato com alguém da administração. Quem puder, me adicione no skype: vitorbertolucci. Obrigado.
  23. Coloca outro parametro que seria a string com a guild que vc quer, dps faz um loop na string checando os bytes dela e comparando com os da string da guild

Informação Importante

Confirmação de Termo