Jump to content
Close

Zanrix

Member
  • Content Count

    118
  • Joined

  • Last visited

  • Days Won

    2

Zanrix last won the day on September 1 2018

Zanrix had the most liked content!

2 Followers

About Zanrix

  • Rank
    Squire

Profile Information

  • Gender
    Masculino
  • I am
    Programmer

Recent Profile Visitors

688 profile views
  1. Tem certeza que é esse o script? Esse script é da pasta weapons, mas o erro está apontando na pasta creaturescripts. Apesar disso, parece estar errado na primeira linha o espaçamento: "comba t"
  2. Obrigado @nandoedp! Estamos estudando sim a possibilidade de fazer em inglês também, até porque estamos usando otclient, então 90% do jogo já teria a opção pt/en. Agradeço o feedback, nos siga também no facebook pra ficar por dentro de todas as novidades e esperamo ver você in-game!
  3. Árvore de Habilidades A Árvore de Habilidades te permite distribuir pontos para liberar novas magias e personificar ainda mais seu personagem o deixando mais versátil de acordo com sua preferência. Cada classe tem dois caminhos na árvore, e cada um deles é voltado para uma jogabilidade diferente, mas não se engane, você não é obrigado a seguir somente um caminho. É necessário aumentar 10 pontos em uma habilidade para liberar a próxima magia, além disso, cada fileira tem seu requerimento de level, por exemplo, a primeira fileira é necessário ser level 25 para poder aumentar seus pontos. No exemplo da imagem temos a árvore de habilidades de Necromancer, o primeiro caminho dele é de dano mágico, onde o foco são as magias de dano elementais de morte. No segundo caminho, o foco são as invocações, aumentar pontos nesse caminho irá desbloquear novas criaturas para serem sumonadas, além de aumentar suas resistências, ataques e etc. Já no Guerreiro, você tem o caminho de Dano e o caminho de Defesa, e assim por diante, cada classe com sua própria árvore, e cada lado da árvore com seu próprio foco, fazendo com que você possa escolher exatamente o que lhe agrada mais! Visao geral da árvore de habilidades de Necromancer. Habilidade passiva de atribuir resistência a terra à todos seus esqueletos sumonados. Habilidade que desbloqueia uma magia nova: "Death Bomb". Além de cada ponto aumentado diminuir seu custo de mana e aumentar seu dano.
  4. Valeu brother! Vai rolar sim, no momento estamos fazendo testes internamente, corrigindo bugs mais gritantes e desenvolvendo as partes principais que ainda faltam. Depois disso, iremos fazer um Closed Beta (esperamos que ainda esse ano) onde iremos convidar/sortear algumas pessoas e analisar como tudo se sai para então fazer um Open Beta.
  5. Agora que o projeto está mais completo, vou começar a explicar melhor os sistemas de tempo em tempo aqui! Sobre o sistema de atributos Mudança na tela Antes: Agora: Os atributos são: - Strength (Força): Aumenta todo dano físico causado, tanto em ataques básicos como em magias. - Vitality (Vitalidade): Aumenta seus pontos de vida. - Intelligence (Inteligência): Aumenta todo dano mágico causado. - Energy (Energia): Aumenta seus pontos de mana. - Agility (Agilidade): Aumenta sua velocidade de ataque. - Luck (Sorte): Aumenta a chance de causar um ataque crítico. Algumas interações com o mapa exigem certo atributo. Alguns exemplos: - Existem algumas alavancas emperradas que exigem diversos níveis diferentes de força. - Existem livros escondidos que requerem inteligência para ler. - Ao procurar itens em objetos aleatórios do mapa, a sorte melhora a chance de achar algum item. Alguns itens precisam de atributos para serem equipados. Além disso, algumas magias também precisam de atributos para aprender/usar. Alguns exemplos: - Knight Armor exige que você tenha 15 pontos em Strength (Força) para a equipar. - Magic Shield (Utamo Vita) exige que você tenha 20 pontos em Energy (Energia) para poder conjura-la.
  6. Posso estar errado, mas aí acredito que tem que usar globalevent em vez de raid. O Vodkart tem um mod que funciona desse jeito que você falou, no tópico tem explicações e tudo mais.
  7. local config = { chance = 40, -- chance de sair o reflect, em % dano = 10, -- dano, em % itemid = 2477, -- id do equipamento que da reflect equipslot = 7 -- slot do equipamento } function onStatsChange(cid, attacker, type, combat, value) if getPlayerSlotItem(cid, config.equipslot).itemid == config.itemid then if isPlayer(cid) then if math.random(1,100) <= config.chance then doCreatureSay(cid, "Reflect!", TALKTYPE_MONSTER_SAY) local danoReflect = value * (1 - (100 / config.dano)) doTargetCombatHealth(cid, attacker, COMBAT_PHYSICALDAMAGE, -danoReflect, -danoReflect, CONST_ME_EXPLOSIONAREA) return true end end end return true end Testei em 0.3.7, mas deve funcionar em 0.4
  8. <raid name="Demodras" file="bosses/Demodras.xml" interval2="1440" margin="120" chance="15" /> file = Nesse arquivo vai ter as informações sobre a raid, quais criaturas serão sumonadas, em quais coordenadas cada uma delas vai aparecer. margin = O tempo em minutos, depois de aberto o servidor, que vai acontecer a raid. interval2 = O tempo em minutos, que depois de ter acontecido a raid pela primeira vez, vai acontecer novamente. chance = Um outro parâmetro que você pode colocar, pra caso não queira que aconteça sempre a cada intervalo de tempo, ou seja, a cada 1440 minutos vai ter 15% de chance de acontecer.
  9. Unique id do piso no map editor: 8321 movements.xml <movevent event="StepIn" uniqueid="8321" script="pisosemanal.lua" /> pisosemanal.lua local config = { uniqueid = 8321, dia_semana = "sunday", mensagem = "Você só pode passar aqui domingo" } local function pushBack(cid, position, fromPosition) doTeleportThing(cid, fromPosition, false) doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.mensagem) end function onStepIn(cid, item, position, fromPosition) if item.uid == config.uniqueid then local day = string.lower(os.date("%A")) if day ~= config.dia_semana then pushBack(cid, position, fromPosition) end end return true end
  10. Em lua a palavra chave é nil getPlayerStorageValue(cid, 9999) == nil Edit: @Dedo Se você quiser que um valor do banco tenha um valor padrão em vez de null, é só usar a palavra default Por exemplo: ALTER TABLE players ADD COLUMN idade INT DEFAULT 0; Vai criar uma coluna no banco que em vez de null, ela recebe 0 por padrão.
  11. Não conheço as sources do TFS 1.x, mas se for no mesmo lugar da 0.x é em player.h Procure pela função void updateBaseSpeed() Dentro da função tem: baseSpeed = vocation->getBaseSpeed() + (2 * (level - 1)); Ou seja, seria só alterar o "2", que por padrão é 2 de speed por level.
  12. local focuses = {} local function isFocused(cid) for i, v in pairs(focuses) do if(v == cid) then return true end end return false end local function addFocus(cid) if(not isFocused(cid)) then table.insert(focuses, cid) end end local function removeFocus(cid) for i, v in pairs(focuses) do if(v == cid) then table.remove(focuses, i) break end end end local function lookAtFocus() for i, v in pairs(focuses) do if(isPlayer(v)) then doNpcSetCreatureFocus(v) return end end doNpcSetCreatureFocus(0) end local price = 500000 -- Valor da bless function onCreatureSay(cid, type, msg) if(not (isFocused(cid)) and (msg == "hi" or msg == "hello")) then selfSay("Welcome, ".. getCreatureName(cid) ..". Estou aqui para oferecer protecao extra para seus niveis, diga {protecao}, para ter minha benção.", cid) addFocus(cid) elseif((isFocused(cid)) and (msg == "bless" or msg == "protecao")) then selfSay("Você quer a protecao por {200000 cents}?", cid) elseif((isFocused(cid)) and (msg == "yes")) then if isPremium(cid) then if getPlayerBlessing(cid, 1) == false then if getPlayerMoney(cid) >= price then selfSay("Agora voce esta {protegido}.", cid) doPlayerRemoveMoney(cid, price) doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) else selfSay("You don't have enough money.", cid) end else selfSay("Voce ja tem bless.", cid) end else selfSay("You need {Premium account}!.", cid) end elseif((isFocused(cid)) and (msg == "bye" or msg == "goodbye" or msg == "cya")) then selfSay("Goodbye!".. getCreatureName(cid) .."", cid) closeShopWindow(cid) removeFocus(cid) end end function onThink() for i, focus in pairs(focuses) do if(not isCreature(focus)) then removeFocus(focus) else local distance = getDistanceTo(focus) or -1 if((distance > 4) or (distance == -1)) then selfSay("Hey, where you going?") removeFocus(focus) end end end lookAtFocus() end

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...