Pesquisar na Comunidade
Mostrando resultados para as tags ''tfs0x''.
Encontrado 2 registros
-
Olá amigos do Xtibia, venho trazer um tutorial simples, mas interessante, que exibe uma caixa de diálogo com texto contendo todas as quests do seu servidor. Atenção: Testado somente em TFS 0.3/0.4 Vamos lá! Vá em Data/Talkactions/Scripts e crie um arquivo.lua chamado quest_log.lua e adicione o script: ---------------- QUEST LOG BY YAN18 ----------------- -- NOME DA QUEST NO ÍNDICE, O NÍVEL E STORAGE NO VALOR -- local quests = { ["Cerulean City"] = {level = 30, storage = 32500}, ["Fire Stone"] = {level = 50, storage = 32501}, ["Boost Machine"] = {level = 100, storage = 32502} } function onSay(cid, words, param) local quest_completada = "- Quests completadas: \n\n" local quest_incompleta = "\n- Quests não completadas: \n\n" for i, _ in pairs (quests) do if (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) < 1) then quest_incompleta = quest_incompleta .. "* " ..i.. " - Nível: " ..quests[i].level.. " \n" elseif (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) >= 1) then quest_completada = quest_completada .."* " ..i.. " - Nível: " ..quests[i].level.. " \n" end end if quest_completada == "- Quests completadas: \n\n" then quest_completada = quest_completada .. " Nenhuma quest foi completada ainda. \n\n" elseif quest_incompleta == "\n- Quests não completadas: \n\n" then quest_incompleta = quest_incompleta .. " Todas as quests foram completadas." end local quest = quest_completada .. quest_incompleta return doShowTextDialog(cid, 1811, quest) end Agora abra o talkactions.xml que fica em Data/Talkactions/talkctions.xml e adicione a tag: <talkaction words="!quest" event="script" value="quest_log.lua"/> Deixei o comando !quest ali em words na tag xml, mas você pode colocar outro comando de sua preferência. Explicação: Adicione todas as quests do servidor na tabela quests, colocando o nome dela como índice, o level e storage (preste bem atenção para colocar a storage correta) como valores. Em caso de dúvidas, só seguir o exemplo que fiz. Também fiz verificação para ver se todas as quests do jogo (que você colocar na tabela) foram feitas ou não, e também fiz verificação de nível do jogador por quest, ou seja, os jogadores só verão as quests que eles tem nível para fazer. De resto não tem muito o que mexer, só se quiser reduzir ou aumentar a quantidade de espaço entre as linhas, mas ai é da preferência de cada um. Caso queira retirar a verificação de nível do jogador (pare verem todas as quests) só mudar isso: for i, _ in pairs (quests) do if (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) < 1) then quest_incompleta = quest_incompleta .. "* " ..i.. " - Nível: " ..quests[i].level.. " \n" elseif (getPlayerLevel(cid) >= quests[i].level) and (getPlayerStorageValue(cid, quests[i].storage) > 1) quest_completada = quest_completada .."* " ..i.. " - Nível: " ..quests[i].level.. " \n" end end Para isso: for i, _ in pairs (quests) do if getPlayerStorageValue(cid, quests[i].storage) < 1 then quest_incompleta = quest_incompleta .. "* " ..i.. " - Nível: " ..quests[i].level.. " \n" else quest_completada = quest_completada .."* " ..i.. " - Nível: " ..quests[i].level.. " \n" end end Se fizer tudo corretamente, é para aparecer essa janela com as informações e nível da(s) quest(s): Essa janela é criada na função doShowTextDialog, e o segundo parâmetro dela é um item que aparece como ícone, geralmente deixam 0 (e recomendo deixar 0 como padrão), mas tem base que o id do item 0 aparece como algum item do jogo (as vezes montanhas ou outros itens de ambiente), então deixei um blackboard, até para ficar mais coerente hehe. Você também pode criar um item para representar essa janela, mas vai da preferência e criatividade de cada um. Se você tiver source, pode até criar uma janela com título de "Quests" para ficar mais bonito a interface, mas vai de cada um. OBS: Em alguns servidores pode ser que dê crash na distro por conta do item passado no segundo parâmetro da função doShowTextDialog(cid, id_item, texto), precisa ficar atento nisso. Qualquer dúvida só perguntar! Abraços e fiquem com Deus!
-
Olá Pessoas, hoje vagando pelos grupos do Caralivro eu encontrei um ser vendendo uma spell que é desnecessariamente cara para algo descnecessariamente simples, então estou postando aqui para vocês uma spell de clones para cada vocação! eu não manjo muito de nto e n sei o nome do Jutsu então quem souber me conte <3 Em data/spells/script crie um arquivo chamado jutsuclone.lua Bom acho que é isso, qual quer duvida estarei dando suporte !