-
Total de itens
1347 -
Registro em
-
Última visita
-
Dias Ganhos
36
Tudo que Oneshot postou
-
tfs 1.2 Pequeno erro ao compilar alguem pode me ajudar?
pergunta respondeu ao boyfrempss de Oneshot em Programação
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. -
informativo Estágio xTibia - Vagas Abertas!
tópico respondeu ao Administrador de Oneshot em Noticias
Bacana. Qual o valor da bolsa-auxílio? Tem VT e VR? -
Eu não virei nada. Poxa, perdi a imagem de quando o Prezyoso fingia ser um funkeiro com um Nextel e tal...
-
Às vezes me dá vontade de voltar a criar conteúdo, ai ela passa.
-
Hm
-
Esse sistema que eu criei, tem três aninhos de idade, mas funciona muito bem Forge System
-
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.
-
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.
-
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.
-
dúvida [DUVIDA] Rev avançada pra client abaixo
tópico respondeu ao warriorfrog de Oneshot em Lixeira Pública
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. -
dúvida Editar a capacidade de um container
tópico respondeu ao Mazynho de Oneshot em Lixeira Pública
Não é possível alterar esse atributo dinamicamente com funções Lua. Abraço. -
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
-
Seção de Actions.
- 13 respostas
-
- rare candy
- otserv
-
(e 2 mais)
Tags:
-
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
- 13 respostas
-
- rare candy
- otserv
-
(e 2 mais)
Tags:
-
Posta o script, porque o meu exemplo não era pra dar esse erro, pelo menos eu acho que não.
- 13 respostas
-
- rare candy
- otserv
-
(e 2 mais)
Tags:
-
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.
- 13 respostas
-
- rare candy
- otserv
-
(e 2 mais)
Tags:
-
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".
-
Ok, campeão, mas o que esse comando faria? Ele faria o personagem correr?
-
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 \Õ/
-
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.
-
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
-
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
-
A imagem do erro que você postou é a das "," que já foi arrumado.
-
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.