Ir para conteúdo

luanluciano93

Héroi
  • Registro em

  • Última visita

Tudo que luanluciano93 postou

  1. Se você perceber, a função ariseText(cid) cria uma repetição, que dentro da função "chama" ela novamente ... O problema é que quando "chama" ela novamente não existe nunhuma checagem, por isso ela fica infinita ... Como dá para ver no script, ela deve continuar apena quando o valor da storage AURASTR estiver 2, portanto você deve fazer essa verificação para continuar a repetição ... function ariseText(cid) local texts = {"´ . ,", ". ´ ,", "` . ,", ", ´ ."} doSendAnimatedText(getThingPos(cid), texts[math.random(1, #texts)], tab[getPlayerVocation(cid)]) if isPlayer(cid) then addEvent(ariseText, 600, cid) end return true end Onde existe a verificação se ele é um jogador, coloque a verificação da storage ... if isPlayer(cid) and getPlayerStorageValue(cid, aurastr) == 2 then A função function ariseText(cid) pode ser local, pois ela só funciona dentro desse script. local function ariseText(cid) Todos os return TRUE ou return FALSE são gambiarras, o correto é minúsculos. As configurações do script tbem devem ser locais, de preferência em uma tabela local tabelaX = {}
  2. você tem as opções de: - querer aprender e fazer sozinho - esperar alguém fazer para você - desistir do server Eu já te dei um norte, tem vários tutoriais sobre isso no fórum. Boa sorte
  3. Os acessos dão "dados" aos jogadores por storages, ou seja, o NPC (ou teleport, ou action) verifica se você tem o valor determinado para aquela chave. Por exemplo, um npc de barqueiro que te mande para uma cidade que é necessário ter acesso, quando você digitar o nome da cidade específica ele irá verificar se vocÊ tem o valor da chave determinado. Esse valor você ganha nas missões de acesso. Olhe, na função: player:getStorageValue(9999) Essa função retorna o valor que esta guardado na database para a chave 9999 com o ID do player que executar a função. A função: player:setStorageValue(9999, 3) determina o valor 3 para a chave 9999 para o player que executar a função. Então basicamente os npcs fazem essa verificação: if player:getStorageValue(9999) > 0 then SE O VALOR DA STORAGE 9999 FOR MAIOR QUE 0 ENTÃO: Para dar acesso aos players sem que eles precisem das missões de acesso, você precisa "dar" esses valores para as chaves específicas (que são muitas) ... Se você fizer por uma função onLogin do creaturescript o player irá receber as chaves ao logar ... basicamente assim ... if player:getStorageValue(9999) < 3 then player:setStorageValue(9999, 3) end é +/- isso, espero que tenha entendido a didática!
  4. Coloque ai o código de como ficou ...
  5. function onSay(player, words, param) local text = {} local spells = {} for _, spell in ipairs(player:getInstantSpells()) do if spell.level ~= 0 then if spell.manapercent > 0 then spell.mana = spell.manapercent .. "%" end if spell.params > 0 then spell.words = spell.words .. " para" end spells[#spells + 1] = spell end end table.sort(spells, function(a, b) return a.level < b.level end) local prevLevel = -1 for i, spell in ipairs(spells) do if prevLevel ~= spell.level then if i == 1 then text[#text == nil and 1 or #text+1] = "Spells for Level " else text[#text+1] = "\nSpells for Level " end text[#text+1] = spell.level .. "\n" prevLevel = spell.level end text[#text+1] = spell.words .. " - " .. spell.name .. " : " .. spell.mana .. "\n" end player:showTextDialog(2175, table.concat(text)) return false end
  6. Funciona com qualquer tutorial de como colocar um servidor tfs 1.x + online
  7. Ou precisa retirar os acessos, script por script, ou dar o acesso com uma função onLogin ou onUe
  8. E lá se foram meus ensinamentos rsrsr
  9. conseguiu?
  10. A sua OTX deve ser versão 2 eu acho, poderia usar esta lista de funções ... https://github.com/mattyx14/otxserver/blob/otxserv2/docs/luaFunctions Se quiser te auxilio na montagem do script.
  11. Qual a versão do TFS ou OTX? Você tem a lista de funções da versão em questão usada no seu servidor?
  12. testou mudar a quantidade?
  13. Irei testar amanhã e te passo um feedback. Se puder deixar o servidor on para eu testar com o meu cliente.
  14. Me importo! se quiser aprender eu te guio, se quiser pronto, boa sorte!
  15. Dentro da função onUse do script 2 tem o "efeitosAura(1,tempo/8,cid)" troca essa função pela função "ariseText(cid)" do script 1 (que por sinal pode ser uma função local) ... Apague toda a função local do efeitosAura do script 2 e substitua pela função ariseText(cid) e pela tabela TAB.
  16. Qual engine? TFS ou OTX? qual versão e o que vocÊ já fez até agora no script? Tem as lista de funções que funcionam nele?
  17. O efeito do script 2 deve ser retirado e colocado o efeito do script 1?
  18. config_boosted = { ["11:30:00"] = { -- Horario de cada dia que irá ocorrer a troca dos monstros pos_monster = {x=992,y=997,z=7, stackpos = 253}, -- a posição aonde ficara o monstro informando a quantidade de exp e loot time_effects = 2 -- tempo em segundos que ficará saindo os efeitos }, ["12:30:00"] = { -- Horario de cada dia que irá ocorrer a troca dos monstros pos_monster = {x=992,y=997,z=7, stackpos = 253}, -- a posição aonde ficara o monstro informando a quantidade de exp e loot time_effects = 2 -- tempo em segundos que ficará saindo os efeitos } }
  19. Só dei uma modificada no script do @Kyle Bellini conforme as funções para TFS 1.x ACCOUNT_TYPE_NORMAL = 1, ACCOUNT_TYPE_TUTOR = 2, ACCOUNT_TYPE_SENIORTUTOR = 3, ACCOUNT_TYPE_GAMEMASTER = 4, ACCOUNT_TYPE_COMMUNITYMANAGER = 5, ACCOUNT_TYPE_GOD = 6 local comandos = { ["thais"] = {name = "Thais City", pos = Position(141, 379, 7)}, ["carlin"] = {name = "Carlin City", pos = Position(142, 379, 7)}, ["venore"] = {name = "Venore City", pos = Position(143, 379, 7)}, ["kazordoon"] = {name = "Kazordoon City", pos = Position(144, 379, 7)}, ["yalahar"] = {name = "Yalahar City", pos = Position(144, 379, 7)}, } function onSay(player, words, param) if not player:getGroup():getAccess() then return true end --[[ ACCOUNT_TYPE_NORMAL = 1, ACCOUNT_TYPE_TUTOR = 2, ACCOUNT_TYPE_SENIORTUTOR = 3, ACCOUNT_TYPE_GAMEMASTER = 4, ACCOUNT_TYPE_COMMUNITYMANAGER = 5, ACCOUNT_TYPE_GOD = 6 ]]-- if player:getAccountType() < ACCOUNT_TYPE_GAMEMASTER then return false end local cities = "" for k, v in pairs(comandos) do cities[#cities + 1] = k end local posicao = comandos[string.lower(param)] then if param == "" or not posicao then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, #cities == 0 and "No have commands." or table.concat(cities, ', ')) player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end player:sendMagicEffect(CONST_ME_TELEPORT) player:teleportTo(posicao.pos) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, string.format("You have been teleported to %s.", posicao.name)) player:sendMagicEffect(CONST_ME_TELEPORT) return true end
  20. luanluciano93 postou uma resposta no tópico em Suporte Tibia OTServer
    Como a própria tradução do erro diz : guild_kills.id pode não ser NULL ou seja, algum script está deixando a coluna ID da tabela guild_kills como NULA, precisa ver qual ... um caminho é verificar os scripts onde estão funções sql sobre o guild_kills
  21. Basta usar uma função onDeath do creaturescript ... use uma storage para contar os monstros ...
  22. Pode mandar print com as imagens do local pelo RME?
  23. Estranha, aqui está normal. Está usando o client da cipsoft?

Informação Importante

Confirmação de Termo