Ir para conteúdo

Oneshot

Marquês
  • Total de itens

    1347
  • Registro em

  • Última visita

  • Dias Ganhos

    36

Tudo que Oneshot postou

  1. Verifique se você baixou o SDK do projeto The Forgotten Server e também o conjunto de libraries do Boost C++. TFS SDK Boost C++ (32-bit, 64-bit) Até mais.
  2. Bacana. Qual o valor da bolsa-auxílio? Tem VT e VR?
  3. Eu não virei nada. Poxa, perdi a imagem de quando o Prezyoso fingia ser um funkeiro com um Nextel e tal...
  4. Às vezes me dá vontade de voltar a criar conteúdo, ai ela passa.
  5. Esse sistema que eu criei, tem três aninhos de idade, mas funciona muito bem Forge System
  6. Fala aê, Luuhxp Se a distro (de distribuição, arquivo .exe do servidor) que você utiliza não tiver sido compilada com o parâmetro -D__WAR_SYSTEM__, o que é bem possível, visto sua dificuldade de utilizar esse sistema, você precisará das sources. Com as sources em mãos, fica fácil compilar com o parâmetro dito acima, que possibilitará o uso do War System, caso você não tenha elas, se faz necessário procurar um servidor que tenha sido compilado com o parâmetro ou um que disponibilize as sources. Abração.
  7. Veja este paste que criei no codepad.org - http://codepad.org/skN2Sm6t Adaptando para o que você quer, seria: local level = getPlayerLevel(cid) if msgcontains(msg, "hi") then if level >= 20 and level < 50 then -- piece of code here elseif level >= 50 and level < 100 then -- piece of code here else -- piece fo code here end end Em nenhum momento, ele apenas passa pelo primeiro if, como pode ver no link passado acima.
  8. Faço das palavras do Tonynh as minhas. Agradeço aos responsáveis pela volta do XTibia.com, é a única comunidade que possui todos meus conteúdos, outras têm apenas uma fração ínfima. Abraço.
  9. O XTibia.com voltou e eu percebo que já estou velho demais para isso.
    1. Vodkart

      Vodkart

      fato, agora eu só crio treiner
  10. 1) Você quer pegar uma revision para Tibia 9.* ou 10.* e fazer o downgrade para Tibia 8.6? Se sim, não. 2) Nenhuma das duas, compra a versão da Chaitosoft, é estável pra caramba rerere 3) Não, não vai funcionar.
  11. Não é possível alterar esse atributo dinamicamente com funções Lua. Abraço.
  12. http://www.xtibia.com/forum/topic/228590-elemental-staff-wand-que-muda-de-elemento/?hl=wand http://www.xtibia.com/forum/topic/191894-wand-muda-de-efeito/?hl=wand
  13. Seu erro foi aqui: if getPlayerLevel(cid) >= 50 then os.time() > getCreatureStorage(cid, 33665) then Só tem um then no final do if, AnaFeeh. O resto devem ser conectores and ou or. Ficando: if getPlayerLevel(cid) >= 50 and os.time() > getCreatureStorage(cid, 33665) then
  14. Posta o script, porque o meu exemplo não era pra dar esse erro, pelo menos eu acho que não.
  15. Legal ver o interesse das pessoas por scripting. Vamos seguir com algumas dicas. Não separe os parâmetros de função com espaço como você fez na linha 2. if getPlayerLevel (cid) >= 50 then O correto é: if getPlayerLevel(cid) >= 50 then Embora a maioria das pessoas não ligue para isso, os scripts precisam de indentação, pois organiza suas linhas de código, e a leitura não fica pesada, mas sim agradável aos olhos dos programadores. Procure sobre indentação e tente praticar nos próximos scripts. function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) >= 50 then doPlayerAddLevel(cid) doRemoveItem(item.uid, 1) else doPlayerSendCancel(cid, "You need level 50 to use this item.") end return true end Agora para limitar o uso, durante um período de tempo, existe uma função chamada os.time() que armazena o tempo decorrido em segundos desde 01/01/1970. Para exemplificar, eu dei um print os.time() que retornou isso: 1398690049 Ok, aí você me pergunta, como eu vou fazer para limitar o uso de um item, usando essa função? Armazene o valor dela acrescido de X segundos em uma storage e depois compare ela com ela mesmo e... não pera... É isso mesmo. Seu script ficaria assim: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) >= 50 and os.time() > getCreatureStorage(cid, 33665) then doPlayerAddLevel(cid) doRemoveItem(item.uid, 1) doCreatureSetStorage(cid, 33665, (os.time() + 60)) else doPlayerSendCancel(cid, "You need level 50 to use this item or need to wait a minute.") end return true end Veja o que eu fiz, no momento que o jogador usou o item, peguei o tempo em segundos daquele momento, somei mais 60 segundos e armazenei em uma storage. Na linha 2, faço uma comparação, se o tempo em segundos do momento de uma nova tentativa de uso já passou o tempo armazenado na storage, se já passou, é porque já passou um minuto e por aí vai. Acho que dá pra entender desse jeito, só acho. Abraço.
  16. Não, meus caros. Veja a data de criação de tópico, provavelmente em uma iniciativa de limpar a seção de pedidos de programação, o moderador simplesmente moveu os tópicos para a seção de pedidos resolvidos, enquanto devia ter movido para Lixeira, sem postar "Resolvido".
  17. Ok, campeão, mas o que esse comando faria? Ele faria o personagem correr?
  18. Ah cara, sei lá, você pediu uma coisa: Atirar arrows por 2 segundos pro céu e cair arrows no chão por 2 segundos e agora quer mudar tudo, então flw \Õ/
  19. Não, filhote, você não entendeu, você vai configurar essa tabela aqui, seguindo o modelo da arrow que eu já configurei local arrow_storm = { [2544] = { [0] = COMBAT_PHYSICALDAMAGE, -- Tipo de dano [1] = CONST_ME_HITAREA, -- Efeito de área [2] = CONST_ANI_ARROW, -- Efeito do tiro da flecha [3] = 2, -- Área de alcance dos danos [4] = {-1.3, -1.5, -30, -45, 5, 5, 2, 3}, -- Fórmula }, } Por exemplo: local arrow_storm = { [2544] = { [0] = COMBAT_PHYSICALDAMAGE, -- Tipo de dano [1] = CONST_ME_HITAREA, -- Efeito de área [2] = CONST_ANI_ARROW, -- Efeito do tiro da flecha [3] = 2, -- Área de alcance dos danos [4] = {-1.3, -1.5, -30, -45, 5, 5, 2, 3}, -- Fórmula }, [ID_DA_ARROW] = { [0] = COMBAT_,-- TIPO DE DANO [1] = CONST_ME_, -- TIPO DE EFEITO [2] = CONST_ANI_, -- TIPO DE TIRO [3] = 0, -- ÁREA QUE AS FLECHAS CAIEM [4] = {0, 0, 0, 0, 0, 0, 0, 0}, -- FÓRMULA }, } Se você configurar tudo certo, vai conseguir fazer uma única spell para flecha normal, flecha de fogo, flecha de gelo, flecha do caralho. Flw.
  20. Pronto, chefe, fiz usando recursividade, sem debugs e funcionando perfeitamente. local arrow_storm = { [2544] = { [0] = COMBAT_PHYSICALDAMAGE, -- Tipo de dano [1] = CONST_ME_HITAREA, -- Efeito de área [2] = CONST_ANI_ARROW, -- Efeito do tiro da flecha [3] = 2, -- Área de alcance dos danos [4] = {-1.3, -1.5, -30, -45, 5, 5, 2, 3}, -- Fórmula }, } local storage = {78881, 78882} local function doArrowCombat(cid, arrow) if getCreatureStorage(cid, storage[2]) > os.time() then local playerPosition = getCreaturePosition(cid) local toPosition = {x = math.random(playerPosition.x - arrow[3], playerPosition.x + arrow[3]), y = math.random(playerPosition.y - arrow[3], playerPosition.y + arrow[3]), z = playerPosition.z} local fromPosition = {x = toPosition.x, y = toPosition.y - 8, z = toPosition.z} local level = getPlayerLevel(cid) local skill = getPlayerSkillLevel(cid, SKILL_DISTANCE) local min = (level / arrow[4][5] + skill * arrow[4][7]) * arrow[4][1] + arrow[4][3] local max = (level / arrow[4][6] + skill * arrow[4][8]) * arrow[4][2] + arrow[4][4] doSendDistanceShoot(fromPosition, toPosition, arrow[2]) doAreaCombatHealth(cid, arrow[0], toPosition, 0, min, max, arrow[1]) addEvent(doArrowCombat, 100, cid, arrow) end end local function doShootArrows(cid, arrow) if os.time() > getCreatureStorage(cid, storage[1]) then doCreatureSetStorage(cid, storage[2], os.time() + 2) doArrowCombat(cid, arrow) else local fromPosition = getCreaturePosition(cid) local toPosition = {x = fromPosition.x, y = fromPosition.y - 8, z = fromPosition.z} doSendDistanceShoot(fromPosition, toPosition, arrow[2]) addEvent(doShootArrows, 100, cid, arrow) end end function onCastSpell(cid, var) local arrow = getPlayerSlotItem(cid, CONST_SLOT_AMMO) if arrow.uid == 0 then doPlayerSendCancel(cid, "You need to equip an arrow type in ammo slot.") return false end if not arrow_storm[arrow.itemid] then doPlayerSendCancel(cid, "Sorry, you can't use Arrow Storm with this arrow.") return false end doCreatureSetStorage(cid, storage[1], os.time() + 2) doShootArrows(cid, arrow_storm[arrow.itemid]) return true end Flw
  21. Isso que dá fazer script de cabeça, a gente acaba esquecendo um ")", uma "," Vê aí, pls local arrow_storm = { [2544] = { [0] = COMBAT_PHYSICALDAMAGE, -- Tipo de dano [1] = CONST_ME_HITAREA, -- Efeito de área [2] = CONST_ANI_ARROW, -- Efeito do tiro da flecha [3] = 2, -- Área de alcance dos danos [4] = {-1.3, -1.5, -30, -45, 5, 5, 2, 3}, -- Fórmula }, } local storage = {78881, 78882} function onCastSpell(cid, var) local arrow = getPlayerSlotItem(cid, CONST_SLOT_AMMO) if not arrow then doPlayerSendCancel(cid, "You need to equip an arrow type in ammo slot.") return false end if not arrow_storm[arrow.itemid] then doPlayerSendCancel(cid, "Sorry, you can't use Arrow Storm with this arrow.") return false end local tmp = arrow_storm[arrow.itemid] local isShooting = true doCreatureSetStorage(cid, storage[1], os.time() + 2) while isShooting do local fromPosition = getCreaturePosition(cid) local toPosition = fromPosition toPosition.y = toPosition.y - 8 addEvent(doSendDistanceShoot, 55, fromPosition, toPosition, tmp[2]) if os.time() > getCreatureStorage(cid, storage[1]) then isShooting = false end end if isShooting == false then local fallingArrows = true doCreatureSetStorage(cid, storage[2], os.time() + 2) while fallingArrows do local playerPosition = getCreaturePosition(cid) local toPosition = {x = math.random(playerPosition.x - tmp[3], playerPosition.x + tmp[3]), y = math.random(playerPosition.y - tmp[3], playerPosition.y + tmp[3]), z = playerPosition.z} local fromPosition = toPosition fromPosition.y = fromPosition.y - 8 local level = getPlayerLevel(cid) local skill = getPlayerSkillLevel(cid, SKILL_DISTANCE) local min = (level / tmp[4][5] + skill * tmp[4][7]) * tmp[4][1] + tmp[4][3] local max = (level / tmp[4][6] + skill * tmp[4][8]) * tmp[4][2] + tmp[4][4] doSendDistanceShoot(fromPosition, toPosition, tmp[2]) addEvent(doAreaCombatHealth, 55, cid, tmp[0], toPosition, 0, min, max, tmp[1]) if os.time() > getCreatureStorage(cid, storage[2]) then fallingArrows = false end end end return true end
  22. A imagem do erro que você postou é a das "," que já foi arrumado.
  23. Arrumei o erro, era umas "," faltando, vê aí se funciona.
  • Quem Está Navegando   0 membros estão online

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