Líderes
-
-
-
lucasprimolemos
MembroPontos76Total de itens
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 10/09/24 em todas áreas
-
OTClient Personal
1 pontono entergame.lua procura o ip 127.0.0.1 e altera1 ponto
-
Task System 1.2+
1 pontoSalve geral, recentemente fiz um Task System para meu servidor, então gostaria de compartilha ele com vocês, assim como outros scripts que fiz e gostaria de compartilhar. Bom, vamos ao que interessa. Informações!! Task Normal - Você 1x por vez, quantas vezes quiser, repetindo a task se também quiser. Task Diaria - Você faz uma vez por dia, não podendo repeti em quanto as 24 horas não terminar. Task Rank - É mostrado na descrição do player qual rank task ele possui. Task Rank Quest - Um extra desse task system é o piso task, será explicado na parte do script, leiam com atenção. Task Comandos - Comandos task, 1 para ver o progresso das suas task e outro para mostrar informações do seu personagem, como uma consulta, os comandos são: !task que mostra quais task você ta fazendo, tanto diaria quanto normal e !task me que mostrar informações do seu personagem, como rank, quantidade de pontos task e quantidade de pontos task rank. Well, o resto é surpresa, cabe você descobrir! xD Para não ficar só nas palavras, mostrarei algumas imagens, várias no caso: Removida, colocarei novas! Instalação!! Muito bem, chega de conversa, como instalar logo essa bagaça. Primeiramente vá em data/lib e abra o arquivo lib.lua e adicione: dofile('data/lib/task system.lua') Ainda na pasta lib crie um arquivo.lua chamado task system.lua e adicione esse code dentro: No final do tópico, ensinarei a configurar a lib. Agora vai em, data/npc e crie um arquivo.xml chamado task.xml e coloque esse code dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="NPC Task" script="task system.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="430"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. I'm in charge of delivering missions to the players. Would you like to do a {normal} task, {daily} task, {receive} your reward from a task or {abandon} a task ? You can also see the {normal task list} and the {daily task list}."/> <parameter key="message_farewell" value="See you later." /> <parameter key="message_walkaway" value="See you later." /> </parameters> </npc> Ainda na pasta npc, entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro: Agora vá em data/talkactions e abra o arquivo talkactions.xml e adicione a seguinte tag: <talkaction words="!task" separator=" " script="task system.lua" /> Ainda na pasta talkactions entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele: Agora vá em data/creaturescripts e abra o arquivo creaturescripts.xl e adicione a seguinte tag: <event type="kill" name="tasksystem" script="task system.lua"/> Ainda na pasta creaturescripts entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele: Ainda na pasta script abra o login.lua e adicione dentro: player:registerEvent("tasksystem") Agora vá em data/events/scripts e abra o arquivo player.lua, depois de aberto, antes de: self:sendTextMessage(MESSAGE_INFO_DESCR, description) adicione: if thing:isCreature() then if thing:isPlayer() then description = string.format("%s\nTask Rank: "..getRankTask(thing), description) end end Extra(Opcional)!! Extra, vá em data/movements/scripts e crie um arquivo chamado tile task.lua, depois de aberto, antes de: Vá em data/movements/movements.xml adicione: <movevent event="StepIn" actionid="XXXX" script="tile task.lua"/> Explicação: Com esse movements acima, você só poderá passar por o piso caso tenha pontos task necessário para passar, se ativar a opção, removePoints então a mesma quantidade de pontos necessária para passar, será removida, ao passar, caso esteja desativada, então apenas será necessário ter os pontos task para passar. Em XXXX coloque o actionid, e o actionid coloque no piso desejado! New Extra: Vá em data/movements/scripts e crie um arquivo chamado tile task2.lua e adicione o seguinte scripts: Vá em data/movements/movements.xml adicione: <movevent event="StepIn" actionid="XXXX" script="tile task2.lua"/> Explicação: Ao adicionar esse movements acima, você só poderá passar pelo piso caso seu rank task seja igual ou superior ao rank definido na variável, caso não seja igual e nem superior, não será possível passar. Configure na lib, a sequência de ranks de acordo com a sequência de rank da tabela de pontos, assim: A sequência precisa está igual e numeradas. Configurando!! task_monsters = { [1] = {name = "monster1", mons_list = {"monster_t2", "monster_t3"}, storage = 30000, amount = 20, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monster2", mons_list = {"", ""}, storage = 30001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monster3", mons_list = {"", ""}, storage = 30002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monster4", mons_list = {"", ""}, storage = 30003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} } task_daily = { [1] = {name = "monsterDay1", mons_list = {"monsterDay1_t2", "monsterDay1_t3"}, storage = 40000, amount = 10, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monsterDay2", mons_list = {"", ""}, storage = 40001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monsterDay3", mons_list = {"", ""}, storage = 40002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monsterDay4", mons_list = {"", ""}, storage = 40003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} } nome - Nome do monstro. mons_list - Nome dos monstro que são semelhantes e que matando eles também contará. Exemplo: name = "troll", mons_list = {"troll","frost troll","island troll"} e assim matando, troll, frost troll e island troll contará na task também. storage - É a storage que salva a quantidade de monstros já matados. amount - É a quantidade necessária de monstros matados para finalizar a task. exp - É a quantidade de Experiência que vai ganhar ao finalizar a task, caso não queira dar experiência, basta deixar em 0. pointsTask = {Task Points Que vai ganhar(Pontos usado no piso e etc..), Pontos Rank, que irá ganhar e aumentar seu rank.} items - Itens que o player vai ganhar, devem está tabelados, dentro da tabela item, adicione das tabelas contendo o id do item e count, quantidade de items que irá ganhar. Ex: items = {{id = 2157, count = 1}, {id = 2160, count = 3}} -- Aqui contém 2x tipos de itens, o 2157 e o 2160, e suas devidas quantidades que irá ganhar. items = {{id = 2157, count = 1}} -- Aqui só tem 1 tipo de item e a quantidade que vai ganhar. Adicione quantos itens quiser. O mesmo vale para as task diarias! Bom, é isso ae, qualquer duvida, crítica, sugestões, deixem ae, se precisa de suporte na instalação ou está com erro em algo estarei dando suporte, abraços e bom uso do sistema. É totalmente proibido leva meu sistema para outro site, blog ou fórum!1 ponto
-
Task System 1.2+
Task System 1.2+
wizv321 reagiu a lucasprimolemos por uma resposta no tópico
1 pontoParabéns @KotZletY muito bom mesmo! Uso tfs 1.3 porém eu coloco o nome do exemplo Rotworm ou Rotworms, mas ele não identifica quando falo com NPC e digo nome do monster task_monsters = { [1] = {nome = "Rotworms", storage = 30000, amount = 40, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {nome = "Rotworm", storage = 30001, amount = 80, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 2}}}, Não sei qual problema, poderia me ajudar? EDIT (monsters ok) Eu coloquei o nome em letra minúscula e funcionou, vou continuar testando, por enquanto ok. EDIT2 (task rank + task points show) Percebi que o task points e rank não estão aparecendo no channel, como faço para ativa-los? EDIT3 (task rank + task points RESOLVIDO) Bom vi que no código tinha as funções que puxavam essas informações, portanto apenas modifiquei o lugar delas e agora esta aparecendo function onSay(player, words, param) local text = ' ****** Tasks System Information ****** \n\n[+] Pontos Task [+]: Voce tem '..taskPoints_get(player)..' pontos Task.\n[+] Pontos Task Rank [+]: Voce tem '..taskRank_get(player)..' pontos Task.\n[+] Task Rank [+]: '..getRankTask(player)..'\n' if param:lower() == "me" then text = text .. '[+] Pontos Task [+]: Voce tem '..taskPoints_get(player)..' pontos Task.\n[+] Pontos Task Rank [+]: Voce tem '..taskRank_get(player)..' pontos Task.\n[+] Task Rank [+]: '..getRankTask(player)..' ' return false, player:popupFYI(text) end if getTaskInfos(player) then local taskNormal = player:getStorageValue(getTaskInfos(player).storage) text = text .. '\n\n ****** [+] Task Normal [+] ****** \n \n\n[*] Task Atual [*]: '..getTaskInfos(player).nome..' - Voce precisa matar: '..getTaskInfos(player).amount..'.\n[*] Premios [*]: '..getItemsFromTable(getTaskInfos(player).items)..' - '..getTaskInfos(player).pointsTask[1]..' Pontos Task - '..getTaskInfos(player).pointsTask[2]..' Pontos Rank da Task. \n[*] Progresso [*]: ['..(player:getStorageValue(getTaskInfos(player).storage))..'/'..getTaskInfos(player).amount..']\n[*] Status da Task [*]: '..(taskNormal == getTaskInfos(player).amount and 'Completa' or 'Incompleta')..'!' else text = text .. '\n\n ****** [+] Task Normal [+] ****** \n \n\n- Voce nao esta fazendo Task nenhuma.' end if getTaskDailyInfo(player) then local taskDaily = player:getStorageValue(getTaskDailyInfo(player).storage) text = text .. '\n\n\n ****** [+] Task Diaria [+] ****** \n \n\n[*] Task Atual [*]: '..getTaskDailyInfo(player).nome..' - Voce precisa matar: '..getTaskDailyInfo(player).amount..'.\n[*] Premios [*]: '..getItemsFromTable(getTaskDailyInfo(player).items)..' - '..getTaskDailyInfo(player).pointsTask[1]..' Pontos Task - '..getTaskDailyInfo(player).pointsTask[2]..' Pontos Rank da Task. \n[*] Progresso [*]: ['..(player:getStorageValue(getTaskDailyInfo(player).storage))..'/'..getTaskDailyInfo(player).amount..']\n[*] Status da Task [*]: '..(taskDaily == getTaskDailyInfo(player).amount and 'Completa' or 'Incompleta')..'!' else text = text .. '\n\n\n ****** [+] Task Diaria [+] ****** \n \n\n- Voce nao esta fazendo nenhuma Task Diaria.' end return false, player:popupFYI(text) end Valeu tudo ok por enquanto!! rsrs1 ponto
Líderes está configurado para São Paulo/GMT-03:00