
Tudo que lordzetros postou
-
Bot Discord Integrado com Servidor
Bacana! Quando estava ligado a um projeto, pensei em fazer algo bem semelhante, isso vai se tornar algo banal daqui alguns anos, acho importante servidores fazerem esse tipo de integração o quanto antes, sem contar que hoje em dia é um diferencial e muitos players utilizam Discord. Parabéns.
-
Auto Loot Sytem for TFS 1.3 + revscripts
Muito bom, cara, para quem gosta do Autoloot dessa forma, vai ser de grande ajuda. As sugestões que iria dá, você já comentou no que "falta fazer", seria bacana tudo isso com modal e como você está utilizando revscript para o talkactions, tudo no mesmo script ficaria ótimo para quem apenas quer instalar no servidor.
-
SHOW OFF - Launcher 'Kamity'
Bem bacana, cara. ?
-
[Link Quebrado] Teleports Room | 10.98
Ae, DdJs, acho que você precisa postar mais mapas para ver se anima mais o @Yinz, viu, ( ͡° ͜ʖ ͡°). Ah, e valeu pelos mapas, gente boa.
-
SHOW OFF - Character List
Muito bom!
-
Show OFF - Mapping
Muito bom, cara. Parabéns!
-
Pedido de Sistema Item que da Points No Jogo
@Rayo Tem algumas sessões no fórum que utiliza uns tutoriais, dá uma pesquisada. Tem um grupo no Discord focado em programação OT Server - Lua, aonde tem uma gama de materiais lá. @ZikaLord Olá, colega, tudo bem? Cuidado a ambiguidade de variáveis, a sua tabela você declarou como item, e na função temos o 'item' também, no qual você tá acessando na o argumento de sua função, e não sua tabela. Com certeza isso irá gerar um erro na hora da execução de acessar um valor nulo.
-
(Resolvido)Talkaction, comando /B (broadcast) não funcionando!
@d0gw4r Show. Então se a primeira não funcionou, pode ser que no seu data/XML/groups.xml não esteja setada a flag para o cargo determinado. Depois verifica lá e teste o código antigo, adicione isto abaixo de uma semelhante. <flag canbroadcast="1" />
-
(Resolvido)Talkaction, comando /B (broadcast) não funcionando!
É porque ele tá entrando na primeira condição, do flag. Caso seja tfs 1.3, deixe seu código atualizo com as funções da versão atual, ficando desta forma: function onSay(player, words, param) if not (player:hasFlag(PlayerFlag_CanBroadcast)) then return true end print("> " .. player:getName() .. " broadcasted: \"" .. param .. "\".") for _, targetPlayer in ipairs(Game.getPlayers()) do targetPlayer:sendPrivateMessage(player, param, TALKTYPE_BROADCAST) end return false end Caso não resolva, verifique se sua conta do player que está utilizando o comando tem acesso necessário, experimente colocar type 5. (sua database -> accounts -> conta_escolhida: type 5), desta forma: Caso não queira setar o nível de acesso da conta, pode modificar o script deixando desta forma: local nivel_acesso = 2 -- ID dos GMs nas novas versoes function onSay(player, words, param) if not (player:getGroup():getId() >= nivel_acesso) then return true end print("> " .. player:getName() .. " broadcasted: \"" .. param .. "\".") for _, targetPlayer in ipairs(Game.getPlayers()) do targetPlayer:sendPrivateMessage(player, param, TALKTYPE_BROADCAST) end return false end Modifique o nível de acesso, no caso tá 2 porque é GM (versão atual 1.3). Caso queira outro ID, modifique ali a variável 'nivel_acesso'.
-
Acesso aos mechanism dos Quarters de Yalahar
Erro de formatação, muito comum quando copiamos códigos de sites/fóruns e colamos no arquivo. Segue anexo: login.lua
-
Acesso aos mechanism dos Quarters de Yalahar
Já tentou printar se está entrando no condicional do login?
-
[AJUDA] Erro na compilação do TFS 1.3
Atualmente a compilação da TFS 1.3 está diferente do tutorial em vídeo do post. Siga estes passos: https://github.com/otland/forgottenserver/wiki/Compiling-on-Windows-(vcpkg)
-
SHOW OFF - Emojis no Game
Muito bom, sucesso ao projeto!
-
tfs 1.x Spell ofensiva não acertar players/summons da party
Conseguiu resolver? Desculpa, vi agora seu post. Caso não tenha, confira no game.cpp se você encontra os tipos de os TEXTCOLOR correto para cada tipo de dano. Ah, e outra, tenta trabalhar da forma recente, já que tá utilizando tfs 1.3. local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) Agora, em relação do MOTIVO de está saindo apenas roxo e azul, é porque o addHealth utiliza o changeHealth da source, que já é definido as cores. O que você pode fazer, ao invés de trabalhar com addHealth, é utilizar o "onGetFormulaValues", onde o mesmo retorna o mínimo e máximo, que é o que você também está fazendo. function onGetFormulaValues(player, skill, attack, factor) local min = player:getLevel() * 2 -- so um exemplo de como pode ser trabalhado local max = player:getLevel() * 3 return -min, -max end combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") O callback irá retornar os valores para a sua instância de Combat, da mesma forma que você trabalha com o targetCreature.
-
Lembram do NTO antigo sem sprites top down?
Bom, não mexo com derivado, mas parte de programação é universal. Caso tenha alguma dúvida relacionada a essa área, e eu puder ajudar, só entrar em contato. Discord: Junior#4062
-
tfs 1.x Spell ofensiva não acertar players/summons da party
Por nada, o esforço foi seu, muito normal a gente deixar passar esses pequenos detalhes e ficar quebrando cabeça para descobrir o motivo do bug.
-
Erro ao instalar libmariadb:x64-windows (VCPKG)
Infelizmente, sim.
-
Erro ao instalar libmariadb:x64-windows (VCPKG)
Esse erro tá ocorrendo ultimamente, já foi reportado em alguns issues no git do vcpkg, parece que uma atualização de teste afetou a compatibilidade.
-
Markowiicz's show off
Show de bola, cara. Muito bom!
-
tfs 1.x Spell ofensiva não acertar players/summons da party
@torresmo01 Por nada. Acho que você não entendeu, ou não me expressei bem. O que quis dizer é que, quando o caster não tem party (nil), e um player alvo não tem party também (nil), vai entrar nessa condição que criou para party iguais: if castersParty == targetsParty then Porque nil == nill, logo, não terá dano aplicado sobre ele. Uma forma de solucionar este problema, seria checkar se o caster tem party, e se tiver, ser igual ao do target (caso ele tenha), para que assim, o dano seja anulado sobre amigos de party. Veja bem: local targetsParty = target:getParty() if (castersParty and castersParty == targetsParty) then return true end
-
(Resolvido)Tile Multiplos Storages
local config = { storage1 = 25091, storage2 = 25092, storage3 = 25093 } function onStepIn(cid, item, position, fromPosition) if (getPlayerStorageValue(cid, config.storage1) <= 0) then doPlayerSendCancel(cid, "You have not completed the first mission.") doTeleportThing(cid, fromPosition) doSendMagicEffect(position, 12) elseif (getPlayerStorageValue(cid, config.storage2) <= 0) then doPlayerSendCancel(cid, "You have not completed the second mission.") doTeleportThing(cid, fromPosition) doSendMagicEffect(position, 12) elseif (getPlayerStorageValue(cid, config.storage3) <= 0) then doPlayerSendCancel(cid, "You have not completed the third mission.") doTeleportThing(cid, fromPosition) doSendMagicEffect(position, 12) else doPlayerSendCancel(cid, "You accessed the prohibited area.") doSendMagicEffect(position, 13) end return true end Faça o teste, acredito que era só algum erro de codificação (às vezes acontece ao copiar e colar o código de algum fórum/site).
-
tfs 1.x Spell ofensiva não acertar players/summons da party
Cuidado com as verificações antes de confirmar a existência de dados. Por exemplo, suponha que nem o player (caster) tenha party e o alvo (player também), ou seja, (castersParty == nil and targetsParty == nil) ---> nil == nil Enfim, quando ambos não tiverem party, não será removido vida do jogador. O que você pode fazer, é verificar se castersParty existe antes de verificar a igualdade entre as que citei acima.
-
Tile que teleporta
data/movements/scripts/ crie um arquivo chamado pushEscada.lua e adicione isto dentro: local tempo = 3 -- tempo em segundos para o player ser movido local function isWalkable(pos) if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end local function ver_tile(c, p, t) addEvent(function() local at_pos = getCreaturePosition(c) if (at_pos.x == p.x and at_pos.y == p.y and at_pos.z == p.z) then local tb = { {0, -1}, {-1, -1}, {-1, 0}, {-1, 1}, {0, 1}, {1, 1}, {1, 0}, {1, -1} } local l_rnd = math.random(1, #tb) local n_pos = {x = at_pos.x + tb[l_rnd][1], y = at_pos.y + tb[l_rnd][2], z = at_pos.z} if (isWalkable(n_pos)) then doTeleportThing(c, n_pos, true) else ver_tile(c, p, 1) end end end, t * 1000) end function onStepIn(cid, item, position, fromPosition) if (isPlayer(cid)) then ver_tile(cid, position, tempo) end end E em data/movements/movements.xml adicione isto abaixo de uma linha semelhante: <movevent type="StepIn" actionid="48758" event="script" value="pushEscada.lua"/>
-
Fly System com modal 1.3
@louco3626 É nós, chefia. ?
-
Fly System com modal 1.3
@Yinz kkkkkk, doente demais. Já já tô logando no counter para tu me dá aquelas aulinhas lá, ( ͡° ͜ʖ ͡°)