Jump to content

luanluciano93

Hero
  • Content Count

    5634
  • Joined

  • Last visited

  • Days Won

    65

luanluciano93 last won the day on June 26

luanluciano93 had the most liked content!

About luanluciano93

  • Rank
    Extraordinário
  • Birthday 01/14/1993

Profile Information

  • I am
    Tibiano

Recent Profile Visitors

14425 profile views
  1. Bem legal a suas ideias. Há um tempo criei um evento que vi em um servidor de war, acho que ficaria ótimo no seu servidor:
  2. @Npc Bugado o script que você postou não faz nada do que ele esta pedindo no tópico.
  3. Aqui você acha todas as funções do TFS atual: https://github.com/otland/forgottenserver/wiki/Script-Interface Se clica em players nesse link irá ter as funções usadas nos players: https://github.com/otland/forgottenserver/wiki/Metatable%3APlayer Se estudar um pouco de lógica de programação e algoritmos irá perceber que no TFS (e na maioria das coisas na programação) as funções são basicamente escritas em inglês, e no TFS você verifica no início delas o que ela faz: GET (puxa um valor da database), SET (muda algo na database), ADD (adiciona algo na database) e etc. No link que te passei se você procurar por storage vai achar a função que puxa o valor database e a que muda o valor na database ... A tabela da storage na database é formada basicamente pelo chave da storage e pelo valor dela, tudo indicando para determinado player, POR EXEMPLO: O player de ID 1 fez uma quest, você programou para quando ele clicar na quest mudar o valor da chave 2000 para 1, então a chave 2000 terá valor 1 para o PLAYER de ID 1. Se você entender a lógica vai ver que dá para fazer milhares de coisas ... getStorageValue(key) setStorageValue(key, value)
  4. Tente trocar: if #doorCreatures > 0 then para: if doorCreatures and #doorCreatures > 0 then
  5. A porta faria alguma diferença? A questão do redirecionamento não pode ser apenas no IP? @Gabz o sistema do proxy do Kondra é dentro do OTC? Ele não usa o CLIENT padrão do Tibia né?!
  6. Cara, inicialmente você precisa montar um script de movements, que seria os dois teleportes (ida e volta). Segundo você grava a experiencia que adicionar para o novo level em uma storage quando ele entrar no primeiro teleporte. Terceiro, a volta do teleporte, você retira a experiencia que adicionou (o valor salvo na storage). Funções que você pode usar: local function getExpForLevel(level) level = level - 1 return ((50 * level * level * level) - (150 * level * level) + (400 * level)) / 3 end player:getExperience() player:addExperience() player:getLevel()
  7. Você deve criar uma talkaction com o GOD acionando um valor x para uma global storage, e em events/scripts/player.lua use a global storage para controlar o xp na função onGainExeperience. Boa sorte.
  8. na verdade não seria só 1 IP? Os players logam nos IPS da vpn, porem são as vpns que redirecionam para o servidor (IP do config.lua). Não é? @Gabrieldsadaxas obrigado.
  9. Então basicamente ele monta um sistema dentro do cliente que funciona como um load balance, o cliente compra VPNs que servem de proxy, ai o cliente joga o player pro VPN e transfere a conexão para o SERVIDOR principal, ai se o VPN cai/sofre ataque ele conecta em outro VPN?
  10. A melhor e mais atualizada: https://github.com/otland/forgottenserver
  11. Olá, em data/events/scripts/creature.lua (implemente o código substituindo a função onChangeOufit, e verifique se ela esta definida como 1 em events.xml) function createBonusCondition(id, params) local condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT) condition:setParameter(CONDITION_PARAM_TICKS, -1) condition:setParameter(CONDITION_PARAM_SUBID, id) for i = 1, #params do local param = params[i].param local value = params[i].value condition:setParameter(param, value) end return condition end outfitBonus = { -- [{male outfit id, female outfit id}] = createBonusCondition(ID, parameters & values) [{128, 136}] = createBonusCondition(1, { {param = CONDITION_PARAM_STAT_MAGICPOINTS, value = 10}, {param = CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, value = 110} } ), [{129, 137}] = createBonusCondition(2, { {param = CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, value = 200} } ) } function getBonusCondition(outfit) for outfits, bonus in pairs(outfitBonus) do if table.contains(outfits, outfit) then return bonus end end return nil end function Creature:onChangeOutfit(outfit) if not self:isPlayer() then return true end local previousBonusCondition = getBonusCondition(self:getOutfit().lookType) local newBonusCondition = getBonusCondition(outfit.lookType) if previousBonusCondition then self:removeCondition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT, previousBonusCondition:getSubId()) end if newBonusCondition then self:addCondition(newBonusCondition) end return true end Em data/creaturescript/scripts/login.lua (dentro da função onLogin implemente o código a seguir) -- Outfit bonus local bonusCondition = getBonusCondition(player:getOutfit().lookType) if bonusCondition then player:addCondition(bonusCondition) end Para configurar usa o exemplo a seguir: outfitBonuses = { [{male outfit id, female outfit id}] = createBonusCondition(ID, parameters & values) } O ID deve ser diferente para cada bônus, de modo que o script pode identificar entre as condições. Os parâmetros devem estar dentro de uma tabela: {param = alguma_condição_parâmetro, value = valor_para_mudar} Aqui estão os parâmetro disponíveis no TFS 1.3: CONDITION_PARAM_OWNER CONDITION_PARAM_TICKS CONDITION_PARAM_HEALTHGAIN CONDITION_PARAM_HEALTHTICKS CONDITION_PARAM_MANAGAIN CONDITION_PARAM_MANATICKS CONDITION_PARAM_DELAYED CONDITION_PARAM_SPEED CONDITION_PARAM_LIGHT_LEVEL CONDITION_PARAM_LIGHT_COLOR CONDITION_PARAM_SOULGAIN CONDITION_PARAM_SOULTICKS CONDITION_PARAM_MINVALUE CONDITION_PARAM_MAXVALUE CONDITION_PARAM_STARTVALUE CONDITION_PARAM_TICKINTERVAL CONDITION_PARAM_FORCEUPDATE CONDITION_PARAM_SKILL_MELEE CONDITION_PARAM_SKILL_FIST CONDITION_PARAM_SKILL_CLUB CONDITION_PARAM_SKILL_SWORD CONDITION_PARAM_SKILL_AXE CONDITION_PARAM_SKILL_DISTANCE CONDITION_PARAM_SKILL_SHIELD CONDITION_PARAM_SKILL_FISHING CONDITION_PARAM_STAT_MAXHITPOINTS CONDITION_PARAM_STAT_MAXMANAPOINTS CONDITION_PARAM_STAT_SOULPOINTS CONDITION_PARAM_STAT_MAGICPOINTS CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT CONDITION_PARAM_STAT_SOULPOINTSPERCENT CONDITION_PARAM_STAT_MAGICPOINTSPERCENT CONDITION_PARAM_PERIODICDAMAGE CONDITION_PARAM_SKILL_MELEEPERCENT CONDITION_PARAM_SKILL_FISTPERCENT CONDITION_PARAM_SKILL_CLUBPERCENT CONDITION_PARAM_SKILL_SWORDPERCENT CONDITION_PARAM_SKILL_AXEPERCENT CONDITION_PARAM_SKILL_DISTANCEPERCENT CONDITION_PARAM_SKILL_SHIELDPERCENT CONDITION_PARAM_SKILL_FISHINGPERCENT CONDITION_PARAM_BUFF_SPELL CONDITION_PARAM_SUBID CONDITION_PARAM_FIELD CONDITION_PARAM_DISABLE_DEFENSE CONDITION_PARAM_SPECIALSKILL_CRITICALHITCHANCE CONDITION_PARAM_SPECIALSKILL_CRITICALHITAMOUNT CONDITION_PARAM_SPECIALSKILL_LIFELEECHCHANCE CONDITION_PARAM_SPECIALSKILL_LIFELEECHAMOUNT CONDITION_PARAM_SPECIALSKILL_MANALEECHCHANCE CONDITION_PARAM_SPECIALSKILL_MANALEECHAMOUNT CONDITION_PARAM_AGGRESSIVE Créditos: INFERNUM (OTLAND)

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 começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário 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!

×
×
  • Create New...