Ir para conteúdo

Oneshot

Marquês
  • Total de itens

    1347
  • Registro em

  • Última visita

  • Dias Ganhos

    36

Tudo que Oneshot postou

  1. Auto-agrupamento de itens só com várias edições no código-fonte de um servidor. O máximo que você pode fazer são pequenas gambiarras na action de trocar o tipo de moeda. Creio que as revisões acima da rev3777 do projeto The Forgotten Server 0.4_DEV já possuem esse auto-agrupamento.
  2. Oneshot

    Vip By Mock

    Carnavotu, Há um modo simples de fazer isso funcionar, mas vou precisar da sua ajuda na edição de seu banco de dados com uma simples query. ALTER TABLE `accounts` ADD `gift_interval` INTEGER NOT NULL DEFAULT 0 Isso vai adicionar um campo de nome gift_interval que iremos usar. local config = { days = 1, interval = 3 * 24 * 60 * 60 msg = "Você recebeu um presente de %s dia(s) de VIP.", msgtype = MESSAGE_INFO_DESCR } local function getLastGiftTime(cid) local result, ret = db.getResult("SELECT `gift_interval` FROM `accounts` WHERE `id` = ".. getPlayerAccountId(cid) ..";") if result:getID() == -1 then return false end ret = result:getDataInt("gift_interval") result:free() return ret end function onLogin(cid) if os.time() >= getLastGiftTime(cid) then db.executeQuery("UPDATE `accounts` SET `gift_interval` = ".. os.time() + config.interval .." WHERE `id` = ".. getPlayerAccountId(cid) ..";") vip.addVipByAccount(getPlayerAccount(cid), vip.getDays(config.days)) doPlayerSendTextMessage(cid, config.msgtype, config.msg:format(config.days)) end return true end Pronto, mudei o tipo do creaturescript para login, assim a cada três dias quando o jogador entrar ele receberá uma quantidade configurável de dias VIP. Então peço que você mude também lá no creaturescripts.xml. Onde estiver advance na chave que diz respeito a esse script, mude para login.
  3. Pois é, fiz por isso mesmo. =P
  4. Como eu não tinha nada pra fazer, fiz essa inútil função abaixo: function putkks(value) local e = 0 for _ in tostring(value):gmatch("000") do e = e + 1 end local n = value / 1000^e for i = 1, e do n = n .."k" end return n end Creio que não tem nenhuma utilidade, ela simplesmente faz isso: 1000000 -> 1kk Ela abrevia um grande número na gíria de jogos de RPG.
  5. Acho que não, andei testando essa query aqui e ao entrar no jogo, o campo experience é atualizado para o valor da experiência ao ter atingido o level. Ao criador do tópico, isso é um creaturescript, siga o mesmo procedimento de instalação passado acima.
  6. Oneshot

    Vip By Mock

    Nesse caso aí, Vilden, parece que é ainda pior. Um jogador com uma conta só cria vários personagens e ganha 1 (um) dia de VIP para cada.
  7. Acho que essa tentativa de adicionar pontos de experiência negativos foi uma teoria que não deu certo. Ou seja só com query. function onKill(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerIp(cid) == getPlayerIp(target) then local pid, level = getPlayerGUID(cid), getPlayerLevel(cid) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = ".. level - 1 .." WHERE `id` = ".. pid ..";") end end return true end O jogador que matou o multiclient então será kickado e quando voltar a entrar no jogo, terá um level a menos.
  8. Oneshot

    Vip By Mock

    Não entendi. Você quer que a cada três dias, o código faça jogadores ganharem um dia de VIP ou que o código apresenta esse 'problema'?
  9. Bom, acho que o modo mais fácil, seria, bem, usar essa função: setPromotionLevel(cid, 1) Abraços.
  10. local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 1 * 1000) setConditionFormula(condition, -0.9, 0, -0.9, 0) function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) doAddCondition(cid, condition) return doAreaCombatHealth(0, COMBAT_ICEDAMAGE, getThingPosition(cid), 0, -150, -150, CONST_ME_ICEATTACK) end Pedi prum amg meu fazer proc abçs.
  11. ah n sabia disso kra ta aprovado então abçs
  12. Só não é fake com plaquinha agora. Fazer o quê se a Silvana lançou a moda. ps: Quem sou eu para citar a mina do Pesszeroa, né?
  13. Quando disse uniqueid não me referia 'literalmente'. Eu precisaria dar uma olhada na estrutura das tabelas do Shop System do Gesior para desenvolver esse script que você precisa, então se você puder postar o DDL¹ delas ou uma screenshot mesmo, ficaria grato. ¹ - Normalmente é a query para criar toda uma tabela. Att.
  14. Não existe uma função que retire levels do jogador. Acho que dá até para fazer com querys na database, mas aí teria que ficar kickando o jogador se ele matasse um multiclient dele.
  15. Se você usa Modern AAC ou Gesior, o sistema de shop deles cria um tipo de uniqueid para produtos comprados registrados no nome de uma pessoa. Para fazer o que você quer, é muito simples. - Crie uma talkaction, action, globalevent, o que você quiser. - Faça uma verificação profunda em todos os jogadores online. - Retorne uma tabela com itens VIP de cada jogador. - Verifique esses itens VIP e encontre itens que não estão registrados no nome do jogador em questão.
  16. Quantos tutoriais de tabelas, if, elseif e else. Pô galerinha criem uns tutoriais de loops, luasql, metatabelas, manipulação de strings, co-rotinas... tem tanta coisa legal em Lua
  17. Parei de ler no primeiro ç em você. Boa entrevista, ui ui, estou no topo da lista dos mentores. Brigadão, Vodkart.
  18. E há algumas dessas empresas que além de vender conteúdo Open Source, se apoderam de scripts que existem em fóruns internacionais como OTLand e comercializam como se fossem de sua autoria. Me dói a alma ver o número de empresas que comercializam o sistema do evento Zombie.
  19. Revisão Só há uma coisa que define esse servidor, o advérbio Incrivelmente. Porque este servidor é incrivelmente mal planejado com um mapa incrivelmente sem noção (afinal quem já viu Ghazbarans a 20 sqm. do templo principal?), com scripts apresentando um monte de problemas (Consigo GOD em qualquer servidor usando esse mapa com o comando /changename) e sem contar a quantidade extensa de bugs, como 'Duplicate uniqueid' (Vários desse tipo). Aah, mais uma coisa, quem quer criar um servidor com essa base, vai passar vergonha pois além dos inúmeros itens customizados mal equilibrados, o amigo Subwat deixou presentinhos como: gay helmet, sexo oral armor e botas de viadinho. Prós - Um mapa extremamente editado; - Base para muitos dos servidores high-rate. Contras - Muitos bugs; - Falhas de segurança; - Por não ter nenhum sentido, o mapa editado do servidor não deixa de ser ruim. (Apocalypses logo abaixo da cidade? Ãh?); - Vocações desequilibradas, itens editados desequilibrados; - O arquivo vocations.xml possui um monte de vocações que nem sequer são usadas; - As pastas de scripts, como actions e spells, possuem um monte de arquivos que não são usados Att.
  20. Apoiado, tô precisando aprender scripting. Conhecimento nunca é demais Att.
  21. Servidores 9.x não possuem mais essa função. Parece que textos animados foram retirados do Tibia depois do grande update
  22. Contribuição bem legal para os donos de servidores sem site que além de tudo pensam em lucrar com Open Tibia. Mas, como relatado aqui, o código do NPC do tal LucasOlzon está muito simplista e adicionar mais de cinco itens diferentes já tornaria o código em um amontoado maçante e macarrônico. Ele poderia ter usado muito bem tabelas para simplificar o código e apenas uma sintaxe relacionando a tabela. Não tiro os créditos pela funcionalidade, mas o código não está bom e eu como scripter não posso simplesmente sorrir e falar "Ai que lindo amiguh, tá muito daora rep+"
  23. tipo isso kra
  24. Deu para entender sua mensagem agora. Obrigado. Sobre o tópico, não tenho interesse justamente por ser um estágio. Já fui moderador de três fóruns brasileiros de Open Tibia e sei como funciona um estágio, é como se ele nunca acabasse. Sem contar que entrar como estagiário para virar colaborador e só depois moderador, caraca, não posso investir tanto do meu tempo para esse ciclo. Boa sorte aos inscritos, façam dessa comunidade o melhor.
  25. arithmetical = { progression = function(omega, ratio, amount) local ret = {} local new = omega for j = 1, amount do table.insert(ret, new) new = new + ratio end return ret end } Acho que fazendo isso com o código acima: arithmetical.progression(1, 2, 2) Retornará {1, 3}
  • Quem Está Navegando   0 membros estão online

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