Ir para conteúdo

MaXwEllDeN

Héroi
  • Registro em

  • Última visita

Tudo que MaXwEllDeN postou

  1. local firstItems = { [0] = { [7] = 2130, [8] = 2643 }, [1] ={ [7] = 2130, [8] = 2643 }, [2] = { [7] = 2130, [8] = 2643 }, [3] = { [7] = 2130, [8] = 2643 }, [4] = { [7] = 2130, [8] = 2643 }, } function onLogin(cid) if getPlayerStorageValue(cid, 30001) == -1 then for slot, id in pairs(firstItems[getPlayerVocation(cid)]) do doPlayerAddItem(cid, firstItems[getPlayerVocation(cid)][i], 1, false, slot) end if getPlayerSex(cid) == 0 then doPlayerAddItem(cid, 2465, 1) else doPlayerAddItem(cid, 2465, 1) end local bag = doPlayerAddItem(cid, 10518, 1) doAddContainerItem(bag, 2160, 1) doAddContainerItem(bag, 2554, 1) doAddContainerItem(bag, 2120, 1) doAddContainerItem(bag, 7618, 1) doAddContainerItem(bag, 2383, 1) setPlayerStorageValue(cid, 30001, 1) end return true end Entre as [] você coloca o id do slot e depois da igualdade o id do item. [0] = { [7] = 2130, [8] = 2643 },
  2. Posta um firstitems normal ai plox.
  3. local amuletos = { [1] = 2130, [2] = 2131, [3] = 2132, [4] = 2133, [5] = 2135, [6] = 2136, } function onLogin(cid) if getPlayerLastLoginSaved(cid) < 1 then doPlayerAddItem(cid, amuletos[getPlayerLevel(cid)]) end local amuleto = amuletos[getPlayerLevel(cid)] if amuleto and getPlayerItemCount(cid, amuleto) > 0 then registerCreatureEvent(cid, "AmuletoChange") end return true end function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 then local amuleto = amuletos[oldlevel] if getPlayerItemCount(cid, amuleto) > 0 and amuletos[newlevel] then doPlayerRemoveItem(cid, amuleto, 1) doPlayerAddItem(cid, amuletos[newlevel], 1, false, CONST_SLOT_NECKLACE) end end return true end Agora sim está certo.
  4. Bem lembrado Matheus, tomei o cuidado de escrever tudo em minusculo já pra evitar alguma complicação no Linux e acabei esquecendo que essa ÚNICA pasta tem o nome em maiúsculo . Valeu, vou upar novamente!
  5. Olá, galerinha. Hoje estou trazendo a vocês um modo, ao meu ver, mais prático e organizado de configurar e gerenciar os logs de quest do seu servidor. Eu sempre gostei de RPG e tudo que fosse relacionado a ele, quests bem elaboradas com npcs, desafios e coisas do tipo sempre me atraíram muito, e ai que entra o questlog, quando você tem várias missões é bom dar uma orientação pro player do que ele tem que fazer(mas não spoilers, isso tira toda a graça da missão), o questlog é uma ferramenta bem bacana que pode servir para dar essa orientação ao player e lembrar a ele que ele tem algumas missões ou etapa de missão, que não foi concluída e que ele pode fazer para receber alguma recompensa. Por padrão os servidores já vêm com um único arquivo que tem a responsabilidade de guardar as informações sobre as missões, só que eu sempre achei que ter várias informações em um único arquivo tornava tudo muito desorganizado, uma bagunça. Então tive a ideia de fazer uma pasta e colocar lá dentro arquivos com informações sobre as missões, e logo quando o servidor estivesse sendo iniciado um script simples iria transformar esses arquivos Lua, em um quest.xml prontinho para ser usado, bem vamos deixar de papo-furado e botar a mão na massa. Em primeiro lugar é bom você fazer um backup do seu quest.xml antigo, só pra ter guardadinho caso tenha necessidade de usar depois. Em segundo, você deve baixar o arquivo abaixo, descompactar ele e jogar no diretório raiz do seu OTServer. Lua quest log.rar Pra configurar é simples, você vai na pasta questlog que fica dentro da pasta data do seu servidor e adiciona os arquivos lua lá com as configurações da sua quest. Tem um arquivo de exemplo lá na pasta já, é só baixar e ler, o arquivo está todo comentado é só ler e aprender , o nome da quest vai ser igual ao nome do arquivo(não pode usar acentos no nome da missão). Essa é a quest de exemplo que vem na pasta questlog, quando você baixar o arquivo anexado: -- Lua quest log -- by Maxwell Alcantara[MaXwEllDeN] -- [email protected] local geral = { storage_id = 30031, -- Storage value da quest startstorage = 1, -- Valor inicial da storage(Só vai aparecer no quest log do player quando a storage 30031 tiver o id 1) missions = { ["The head of Kiper"] = { -- Nome da missão 1 storageid = 1001, -- Storage value da missão start_value = 1, -- valor inicial da storage end_value = 3, -- valor final da storage states = { [1] = "Kill Kiper!", -- Descrição do state 1 [2] = "Give his head to Talaturen!", -- Descrição do state 2 [3] = "Take the medal you got from Talaturen to Ruly!", -- Descrição do state 3 } }, ["Ruly's Revenge"] = { -- Nome da missão 2 storageid = 30031, -- Storage value da missão start_value = 4, -- valor inicial da storage end_value = 6, -- valor final da storage states = { [4] = "You received a document with instructions from Ruly, follow them.", -- Descrição do state 4 [5] = "Go back to Ruly and tell him that you followed his instructions to the end.", -- Descrição do state 5 [6] = "You got a reward from Ruly, he was very thankful with that you helped him to take his revenge.", -- descrição do state 6 } }, } } É só isso pessoal, até a próxima .
  6. Pega esse, o antigo tem um problema: local amuletos = {2170, 2171, 2172, 2173, 2174, 2175} function onLogin(cid) if getPlayerLastLoginSaved(cid) < 1 then doPlayerAddItem(cid, amuletos[1]) end if getPlayerItemCount(cid, amuleto1) > 0 then registerCreatureEvent(cid, "AmuletoChange") end return true end function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 then for index, id in ipairs(amuletos) do if getPlayerItemCount(cid, id) > 0 and amuletos[index + 1] then doPlayerRemoveItem(cid, id) doPlayerAddItem(cid, amuletos[index + 1]) break end end end return true end
  7. MaXwEllDeN postou uma resposta no tópico em Suporte & Pedidos
    Interessante Bruno, achei dahora. Onde posso conseguir a source?
  8. Não, não seria assim, se você ler o que está acontecendo ai, ele adiciona todos amuletos e remove NO MESMO INSTANTE. Ou seja, o player só ficaria com o último amuleto, SEMPRE, toda vez que ele upasse ele ia receber todos os amuletos, e remover todos, menos o último. @Daniel Ah, todo level vai ser um amuleto diferente? Então faz assim: local amuletos = {2170, 2171, 2172, 2173, 2174, 2175} function onLogin(cid) if getPlayerLastLoginSaved(cid) < 1 then doPlayerAddItem(cid, amuletos[1]) end if getPlayerItemCount(cid, amuleto1) > 0 then registerCreatureEvent(cid, "AmuletoChange") end return true end function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 then for index, id in ipairs(amuletos) do if getPlayerItemCount(cid, id) > 0 and amuletos[index + 1] then doPlayerRemoveItem(cid, id) doPlayerAddItem(cid, amuleto[index + 1]) break end end end return true end local amuletos = {2170, 2171, 2172, 2173, 2174, 2175} Nessa tabela você vai adicionando o id dos amuletos, na ordem que eles vão ser trocados.
  9. Cria um dois itens no otb que tenham a opção de não ser móvel. Anote os ids deles, e depois crie os itens no xml com as respectivas informações dos amuletos que você quiser. Depois instale esse script: local amuleto1 = 2170 local amuleto2 = 2171 function onLogin(cid) if getPlayerLastLoginSaved(cid) < 1 then doPlayerAddItem(cid, amuleto1) end if getPlayerItemCount(cid, amuleto1) > 0 then registerCreatureEvent(cid, "AmuletoChange") end return true end function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 and getPlayerItemCount(cid, amuleto1) > 0 then doPlayerRemoveItem(cid, amuleto1) doPlayerAddItem(cid, amuleto2) end return true end <event type = "login" name = "LoginAmuleto" event = "script" value = "Amuletos.lua" /> <event type = "advance" name = "AmuletoChange" event = "script" value = "Amuletos.lua" />
  10. Amigo, preste atenção onde cria seus tópicos. O certo seria em Suporte OTServ e não em Atendimento Geral. E outra: sempre use como título algo que descreve sua dúvida, nesse caso algo como Como mudar senha do God?
  11. Dúvida sanada, tag adicionada. Tópico movido!
  12. MaXwEllDeN postou uma resposta no tópico em Suporte Tibia OTServer
    Ao clicar na estátua ele será mandado para próxima sala, ou terá uma sala com portas ou teletransporte para outras salas?
  13. local life = 100 -- Quantidade de vida que será adicionada function onEquip(cid, item) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + life) doCreatureAddHealth(cid, 1) doCreatureAddHealth(cid, -1) return true end function onDeEquip(cid, item) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) - life) doCreatureAddHealth(cid, 1) doCreatureAddHealth(cid, -1) return true end
  14. Dúvida sanada, tag adicionada. Tópico movido!
  15. O switch vai executar um determinado escopo depedendo do valor de uma variável. Exemplo: int num = 3; switch(num) { case 1: printf("O número é 1"); break; case 2: printf("O número é 2"); break; case 3: printf("O número é 3"); break; default: printf("O número é %d", num); } Esse exemplo ai é em C++
  16. Switch não existe em Lua. O if vai executar um escopo caso uma condição seja verdadeira, o else só pode ser colocado depois do escopo de um if, e o que tiver no seu escopo vai ser executado caso a condição do if seja falsa. if 1 > 2 then print("1 é maior que 2") else print("1 é menor que 2") end
  17. Haha beautiful job bro, i liked it. Bootstrap is cool [:
  18. MaXwEllDeN postou uma resposta no tópico em Suporte Tibia OTServer
    Poderia postar a versão do seu servidor e uma foto do erro que está ocorrendo?
  19. Nossa cara, perfeito esse teu mapa, muito lindo mesmo! Parabéns pelo projeto, espero que dê certo, sucesso.
  20. Poste o erro completo.
  21. Você que sabe qual você coloca. É o templo pra onde os players vão ser teletransportados quando sairem do evento.
  22. Não precisa adicionar as bandeiras, não faça nada a mais que o tópico pede, só crie o mapa, sem as bandeiras e coloque o npc no mapa.
  23. MaXwEllDeN postou uma resposta no tópico em Portal
    Lindo, Renato! Parabéns pelo trabalho cara, sucesso!
  24. O mapa deve estar em PVP, normal. O antigo eu não tenho mais.

Informação Importante

Confirmação de Termo