Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 05/15/16 em todas áreas

  1. Yan Liima

    Wodbohs 2014-2015 8.0

    Fala galera do xtibia beleza? hoje trago a vocês o Wodbohs de 2015 Atualmente o servidor está online com 60 jogadores, esta versão é de 2015 mais não se preocupe na versão de 2016 a unica coisa que muda é a aparência do mapa Com algumas alterações vocês irão deixar igualzin ao servidor de 2016. Imagens: Distro está estavel deve aguentar mais de 100 players Algumas transformações estão dentro da distro e outras por script. Tem todos personagens menos Wiss,Paikuhan,Dabura e Hitto... Bills e Vegeta God estão no cliente de 2016 basta apenas vocês criar a transform deles. Os personagens Mestre Kame e King Vegetta são frees. O vegetto pode ganhar fazendo a quest reborn ou comprando, já os restantes, Chilled,Shenron,Tapion,Kagome,Zaiko e Goku God são pagos. Você pode comprar com o item demonic essence ID: 6500. Basta dizer no Say: buygokugod... DOWNLOAD: DOWNLOAD DO SERVIDOR COMPLETO + DATABASE: --------------------------------------------------------- DOWNLOAD DO SITE: --------------------------------------------------------- DOWNLOAD DO CLIENTE DESCOMPILADO: Já que o dono disse que não ligaria de postar o servidor na internet e o sub-dono me desafiou, está ai xD Conteúdo exclusivo do xtibia, proibido postar esse servidor em outro fórum sem a minha autorização Créditos: Luiz Henrique - Zero Bruno Nascimento - Dago Yan Liima - Night Veja também o Newstory Dbo Nto Bleach misturado! 8.0
    2 pontos
  2. Troque por : local config = { sto = 213124, speed = 300 }function doRegainSpeed(cid) --alterado v1.9 \/if not isCreature(cid) then return true end local speed = PlayerSpeed if isMonster(cid) then speed = getSpeed(cid) elseif isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then speed = 200*getPlayerGroupId(cid) end doChangeSpeed(cid, -getCreatureSpeed(cid)) if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) end if getCreatureStorage(cid, config.sto) >= 1 then speed = speed+config.speed end doChangeSpeed(cid, speed) return speedend Não esqueça de remover a edição no login.lua
    2 pontos
  3. Caronte

    [aula 1] lógica de programação

    Aula - Lógica de programação fala pessoal, essa aula é a primeira do conjunto que estarei criando para ensinar programação através da linguagem LUA, e depois, aprender como aplicar no tibia. as informações apresentadas a seguir são fundamentais para o apropriado entendimento da logica de programação, porém... Caso você esteja buscando a parte mais prática, pule para: Criando Algoritmos Sem mais delongas, precisamos entender o que é o conceito de lógica de programação, Lógica está contida em um conjunto de atitudes/eventos que tem um sentido por trás, lógica pode tomar várias formas e definições, porém, a que vamos aprender é Lógica de Computador, ela é EXTREMAMENTE necessária para você poder criar scripts, e programar códigos de qualquer tipo e linguagem. A lógica de computador não pode ser argumentada, essa lógica tudo é ou não é, não existe o meio termo ou argumento, ela pode ser entendida na Lógica de Aristóteles com a lei da não contradição, ou é verdadeiro, ou falso. Nós somos quase totalmente diferentes de máquinas, apesar do nosso cérebro funcionar também por eletricidade, a voltagem é fraca e ele não depende só de eletricidade, mas isso não vem ao caso, o que interessa é a nossa maneira de pensar e agir, aí sim, é totalmente diferente de um computador, Porque Será? Ao pensarmos, nosso cérebro trabalha no consciente e inconsciente, alguns cientistas acreditam que a decisão acontece já no inconsciente, através de experiências já vividas e considerações, ou seja, você não sabe que seu cérebro já tomou a decisão, até ficar consciente dela (não acredito 100% nisso, essa informação não tem muita base, tem deduções), mas o que temos que entender é que a gente avalia de acordo com o nosso conhecimento já adquirido, e por meio disso, a decisão é tomada através do nosso conhecimento de certo ou errado, e a decisão não precisa ser exata. Já o computador trabalha através de instruções de linguagens não sofisticadas (códigos de máquina, exemplo: código binário, 0 ou 1), algo que é praticamente incompreensível para os humanos (se não fosse compreensível, não existiria computador), por causa da dificuldade de programar em código de máquina foi criada uma linguagem chamada Assembly que torna muito mais fácil programar, e depois dessa linguagem, foram criadas outras mais sofisticadas. Criando Algoritmos. Agora o que precisamos entender é que a nossa maneira de pensar na resolução de problemas é diferente de como devemos escrever para um computador entender, o computador é muito mais burro na hora de interpretar as ideias, pois ele não tem quase nada para se basear além das suas instruções. Para explicar, vou criar um algoritmo simples para mandar um humano fazer uma determinada tarefa, comprar pão, e depois, vou explicar porque um computador não pode usar o mesmo algoritmo. Vou usar os seguintes substantivos: Pão Dinheiro Troco Casa Padaria Compra Vou usar os seguintes verbos: Pegar Ir / Voltar Fazer Dar Essas são as palavras chaves. Os verbos numa linguagem normal são geralmente chamados de Sintaxe (ou parte dela), ela é quem dirige a logica, e que faz o script ter sentido. Já os substantivos são dados valiosos, são variáveis! , variável é uma incógnita sobre o qual você tem controle, e sabe o valor , ela serve para você resumir dados e guardar, vão ser muito usadas se você quiser programar bastante, ela ajuda a identificar dados, e tornar o programa mais legível. • Vamos ao algoritmo: Bom, uma tarefa com instruções tão gerais não poderia ser seguida por um computador. A menos que sejam funções, porém isso não é assunto para agora. O fato é que essas instruções são bem mais do que a quantidade necessária para um humano, você pode falar: “Vá à padaria comprar pão”, e ele irá executar perfeitamente. Porém, se você quer dar um algoritmo de como ir para a padaria para um computador executar terá que ser bem mais específico e falar todas as tarefas que ficam subentendidas para um humano, mas que não são nem um pouco claras para um computador. Para o computador entender algo parecido do que o humano entende, seria necessária muita inteligência artificial, o que não contamos quando vamos programar em LUA, novamente falo, o computador é burro. Agora vamos ao algoritmo mais próximo do que um computador precisa, vamos precisar adicionar mais termos ao nosso vocabulário: Expressões condicionais: E alguns verbos e termos a mais. Vamos ao algoritmo: As expressões condicionais servem para verificar antes de fazer alguma tarefa, assim, evitamos possíveis erros, por exemplo, caso não tenha dinheiro! Se você mandar o computador pegar o dinheiro e o valor dinheiro não existe, irá gerar erros no seu script. Expressões condicionais não servem somente para verificar, servem para selecionar também, por exemplo, uma Quest que precise de level 20 para entrar. Esse algoritmo acima já dá uma parte de script, se escrito como LUA. A expressão condicional que acabei de passar é considerada fácil, mas para uma Quest é simplesmente isso e mais algumas coisas simples. Bom, esse é o final da aula de algoritmos, gostaria de saber se fui claro em relação ao tutorial e se alguma coisa passou despercebida que merece alguma atenção a mais, assim posso editar o tópico para ficar melhor. Exercício: Resposta: [Aula 2] Booleanos e Operadores ---->>
    1 ponto
  4. Luga03

    Task System 2016

    Olá! Eu estava ajudando um cara com um task system , ele disse que pegou na net, mas as alterações que ele queria eu tive que refazer algumas partes do sistemas! Testei e funcionou perfeitamente! Funciona com Poketibia e Tibia! Vamos deixar de enrolação e adicionar o sistema! Lembrando também que funciona com tfs 0.3.6 e tfs 0.4! Não testei com tfs 1.x mas acho que não funciona. Vá em creaturescripts.xml e adicione isso: <event type="kill" name="KillTask" event="script" value="task.lua"/> No login.lua adiciona isso com os demais: registerCreatureEvent(cid, "KillTask") Agora crie um arquivo chamado task.lua e adicione isso: local tasksss = { [1] = {name = "Blastoise", sto = 10212, count = 3, time_sto = 5457, time = 1*24*60*60, sto_count = 14129, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."}, [2] = {name = "Charizard", sto = 10213, count = 5, time_sto = 5458, time = 1*24*60*60, sto_count = 14130, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."},}function onKill(cid, target) for _, t in ipairs(tasksss) do local total_count = t.count local m_sto = t.sto local count_sto = t.sto_count if getPlayerStorageValue(cid, m_sto) ~= -1 then if getCreatureName(target) == t.name then if (total_count - getPlayerStorageValue(cid, count_sto)) == 1 then setPlayerStorageValue(cid, count_sto, getPlayerStorageValue(cid, count_sto) + 1) doPlayerSendTextMessage(cid, 20, "You are killed ".. getPlayerStorageValue(cid, count_sto) .." " .. t.name .. " and finished the task!") return true elseif (total_count - getPlayerStorageValue(cid, count_sto)) >= 1 then setPlayerStorageValue(cid, count_sto, getPlayerStorageValue(cid, count_sto) + 1) doPlayerSendTextMessage(cid, 20, "You are killed ".. getPlayerStorageValue(cid, count_sto) .." of ".. total_count .." " .. t.name .. " kills to finish the task.") return true end end end end return trueend Agora vá em npc/scripts e crie um arquivo chamado task.lua e adicione isso: local tasksss = { [1] = {name = "Blastoise", sto = 10212, count = 3, time_sto = 5457, time = 1*24*60*60, sto_count = 14129, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."}, [2] = {name = "Charizard", sto = 10213, count = 5, time_sto = 5458, time = 1*24*60*60, sto_count = 14130, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."},}local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid value = -1 for i = 1, #tasksss do if msgcontains(msg, tasksss[i].name) and not value ~= -1 then value = i end end if value == -1 then selfSay('I don\'t have a this task!', cid) talkState[talkUser] = 0 return true end local configss = tasksss[value] local name = configss.name local m_sto = configss.sto local time_sto = configss.time_sto local count_sto = configss.sto_count local total_count = configss.count local rest = total_count - getPlayerStorageValue(cid, count_sto) if getPlayerStorageValue(cid, time_sto) < os.time() then -- verifica se o player ainda está no prazo if getPlayerStorageValue(cid, m_sto) <= 0 then -- verifica se o player não pegou está task selfSay('Ready! Now you need kill a '.. total_count .. ' '.. name .. '!', cid) setPlayerStorageValue(cid, m_sto, 1) setPlayerStorageValue(cid, total_count, 0) talkState[talkUser] = 0 else if rest <= 0 then -- Verifica se o player matou todos os monstros nescessários doPlayerAddItem(cid, configss.rewardid, configss.rewardcount) setPlayerStorageValue(cid, count_sto, 0) setPlayerStorageValue(cid, m_sto, -1) setPlayerStorageValue(cid, time_sto, os.time() + configss.time) doPlayerAddExperience(cid, configss.rewardexp) doSendAnimatedText(getCreaturePosition(cid), configss.rewardexp, 215) selfSay(configss.text, cid) talkState[talkUser] = 0 else selfSay('You need to kill '..rest..' '..name..' to gain a reward.', cid) talkState[talkUser] = 0 end end else selfSay('You already did this task, player. Wait '..math.ceil((getPlayerStorageValue(cid, time_sto) - os.time())/(60*60))..' hours to do it again.', cid) talkState[talkUser] = 0 endendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new()) Pronto, agora volte para a pasta npc e crie um novo arquivo .xml chamado de Task e adicione isso lá: <?xml version="1.0" encoding="UTF-8"?><npc name="Npc Nome" script="task.lua" walkinterval="350000" floorchange="0" speed="0"> <health now="150" max="150"/> <look type="369" head="91" body="102" legs="83" feet="0"/> <parameters> <parameter key="message_greet" value="You want gain a task of {Blastoise}?"/> </parameters></npc> Pronto, agora o sistema de task está funcionando, e para adicionar um novo monstro pra fazer a task? Basta editar a tabela, mas não esqueça que tem que atualizar a tabela nos 2 scripts .lua !! local tasksss = { [1] = {name = "Blastoise", sto = 10212, count = 3, time_sto = 5457, time = 1*24*60*60, sto_count = 14129, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."}, [2] = {name = "Charizard", sto = 10213, count = 5, time_sto = 5458, time = 1*24*60*60, sto_count = 14130, money = 100, rewardid = 7621, rewardcount = 100, rewardexp = 10000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."},} Para configurar siga as seguintes instruções: Modificações da versão 2.0: Corrigido bug de apenas o primeiro monstro configurado funcionava, agora todos configurados funcionam! Quando player fala qual quer coisa que não seja o nome do monstro, diz que não tem aquela task! Modificado modo de contagem de kill, agora monstra quantos você matou e o total que precisa matar, quando mata o ultimo monstro, aparece a mensagem que terminou a task! Créditos: Criador @miguel223 Drazyn1291 -- Editei e reformulei muita coisa! Adicionei coisas como a contagem que falta ao matar os monstros, editei pra fazer a task apenas se o player falar com o NPC e outras coisas!
    1 ponto
  5. BananaFight

    Flying system tfs 1.2

    Fly System é um sistema que permite ao player voar pelo mapa em locais aonde antes não era possível. Arrumando algumas coisas na source, comando /fly on, off, up, down funcionando, nova variável no player isFlying, canFly ( salvo no MySql ) Bugs - Descer em itens bloqueáveis. Changelog To do To Do- Done
    1 ponto
  6. Gente vocês fizeram um linguajar que eu nao entendi kk... oque eu fiz foi: em login.lua, depois do ultimo "return true" eu adicionei: local config = { sto = 213124, speed = 300 } if getCreatureStorage(cid, config.sto) >= 1 then doChangeSpeed(cid, getCreatureSpeed(cid)+config.speed) end e assim ficou o script: local config = { sto = 213124, speed = 300 } function doRegainSpeed(cid) --alterado v1.9 \/ if not isCreature(cid) then return true end local speed = PlayerSpeed if isMonster(cid) then speed = getSpeed(cid) elseif isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then speed = 200*getPlayerGroupId(cid) end doChangeSpeed(cid, -getCreatureSpeed(cid)) if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) end if getCreatureStorage(cid, config.sto) >= 1 then speed = speed+config.speed end doChangeSpeed(cid, speed) return speed end E no distro fica dando esse erro: v[15/05/2016 19:02:54] [Warning - Event::loadScript] Event onUse not found (data/actions/scripts/botinas.lua) [15/05/2016 19:02:54] [Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/login.lua:229: 'end' expected (to close 'function' at line 6) near 'local' [15/05/2016 19:02:54] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/login.lua) [15/05/2016 19:02:54] data/creaturescripts/scripts/login.lua:229: 'end' expected (to close 'function' at line 6) near 'local'
    1 ponto
  7. Eu editei tudo, testei e tudo mais e está 100%!! Só não consegui fazer a parte de confirmar se o player realmente que aquela task! Npc: local tasksss = { {name = "Blastoise", sto = 10212, count = 3, time_sto = 5457, time = 1*24*60*60, sto_count = 14129, money = 100, rewardid = 7721, rewardcount = 100, rewardexp = 10000000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."},}local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid for _, configss in pairs(tasksss) do -- lê todas as tabelas local name = configss.name local m_sto = configss.sto local time_sto = configss.time_sto local count_sto = configss.sto_count local total_count = configss.count local rest = total_count - getPlayerStorageValue(cid, count_sto) if msgcontains(msg, name) then -- Verifica se o player falou o nome da criatura if getPlayerStorageValue(cid, time_sto) < os.time() then -- verifica se o player ainda está no prazo if getPlayerStorageValue(cid, m_sto) <= 0 then -- verifica se o player não pegou está task --selfSay('Are you sure you want to do the task '.. total_count ..' '.. name ..'?', cid) --if msgcontains(msg, 'yes') then print(total_count) selfSay('Ready! Now you need kill a '.. total_count .. ' '.. name .. '!', cid) setPlayerStorageValue(cid, m_sto, 1) setPlayerStorageValue(cid, total_count, 0) talkState[talkUser] = 0 --end else if rest <= 0 then -- Verifica se o player matou todos os monstros nescessários doPlayerAddItem(cid, configss.rewardid, configss.rewardcount) setPlayerStorageValue(cid, count_sto, 0) setPlayerStorageValue(cid, m_sto, -1) setPlayerStorageValue(cid, time_sto, os.time() + configss.time) doPlayerAddExperience(cid, configss.rewardexp) doSendAnimatedText(getCreaturePosition(cid), configss.rewardexp, 215) selfSay(configss.text, cid) talkState[talkUser] = 0 else selfSay('You need to kill '..rest..' '..name..' to gain a reward.', cid) talkState[talkUser] = 0 end end else selfSay('You already did this task, player. Wait '..math.ceil((getPlayerStorageValue(cid, time_sto) - os.time())/(60*60))..' hours to do it again.', cid) talkState[talkUser] = 0 end end return true endendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new()) e substitua o kill por esse: local tasksss = { {name = "Blastoise", sto = 10212, count = 3, time_sto = 5457, time = 1*24*60*60, sto_count = 14129, money = 100, rewardid = 7721, rewardcount = 100, rewardexp = 10000000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."},}function onKill(cid, target) for _, t in ipairs(tasksss) do local total_count = t.count local m_sto = t.sto local count_sto = t.sto_count print(m_sto) if getPlayerStorageValue(cid, m_sto) ~= -1 then if getCreatureName(target) == t.name then if (total_count - getPlayerStorageValue(cid, count_sto)) == 0 then doPlayerSendTextMessage(cid, 20, "You killed ".. getPlayerStorageValue(cid, count_sto) .." " .. t.name .. " and finished the task!") return true elseif (total_count - getPlayerStorageValue(cid, count_sto)) > 0 then setPlayerStorageValue(cid, count_sto, getPlayerStorageValue(cid, count_sto) + 1) doPlayerSendTextMessage(cid, 20, "Missing ".. (total_count - getPlayerStorageValue(cid, count_sto)) .." " .. t.name .. " kills to finish the task.") return true end end end end print(getPlayerStorageValue(cid, count_sto)) return trueend Está entregando task e tudo mais!
    1 ponto
  8. dalvorsn

    Bug bag 6 pokemons

    Os samples ficam no banco de dados, há um pra cada vocação normalmente, todos os items e etc que estiver nesse character, será copiado para os demais criados, entao a configuração deles é direto no char, como voce não tem firstitems, faça o seguinte, mude o account dos samples pra uma conta sua de god, logue com eles verifique o peso de todos os items nesse char e some, voce tem que manipular eles ate que o peso total fique igual a capacidade - 6 Apos isso retorne eles para a conta que estava anteriormente e tente criar outro personagem
    1 ponto
  9. ops Eu errei uma parte no onKill, Atualizei o post antigo, atualizada aí seu script!!
    1 ponto
  10. @Drazyn1291 obrigado funfando 100%
    1 ponto
  11. Npc: local configs = {-- {word = "War Gyarados", sto = 10294, money = 0, rewardid = 15589, rewardcount = 20, rewardexp = 10000000, storageid = 5455, storagevalue = os.time() + 1*24*60*60, storagerequest = 14123, valuerequest = 1000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."};-- {word = "War Heracross", sto = 10295, money = 0, rewardid = 15589, rewardcount = 20, rewardexp = 10000000, storageid = 5455, storagevalue = os.time() + 1*24*60*60, storagerequest = 14124, valuerequest = 1000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."}; {word = "Furios Mantine", sto = 10296, money = 0, rewardid = 15589, rewardcount = 20, rewardexp = 10000000, storageid = 5456, storagevalue = os.time() + 1*24*60*60, storagerequest = 14125, valuerequest = 1000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."}; {word = "Enraged Typhlosion", sto = 10297, money = 0, rewardid = 15589, rewardcount = 20, rewardexp = 10000000, storageid = 5456, storagevalue = os.time() + 1*24*60*60, storagerequest = 14126, valuerequest = 1000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."};}local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid for _, npc in ipairs(configs) do if(msgcontains(msg, ''..npc.word..'')) then if getPlayerStorageValue(cid, npc.sto) ~= 1 then if getPlayerStorageValue(cid, npc.storageid) < os.time() then if getPlayerStorageValue(cid, npc.storagerequest) >= npc.valuerequest then doPlayerAddItem(cid, npc.rewardid, npc.rewardcount) setPlayerStorageValue(cid, npc.storagerequest, getPlayerStorageValue(cid, npc.storagerequest) - npc.valuerequest) setPlayerStorageValue(cid, npc.storageid, npc.storagevalue) setPlayerStorageValue(cid, npc.sto, 1) doPlayerAddExperience(cid, npc.rewardexp) doSendAnimatedText(pos, npc.rewardexp, 215) selfSay(''..npc.text..'', cid) talkState[talkUser] = 0 else selfSay('You need to kill '..(npc.valuerequest - getPlayerStorageValue(cid, npc.storagerequest))..' '..npc.word..' to gain a reward.') talkState[talkUser] = 0 end else selfSay('You already did this task, player. Wait '..math.ceil((getPlayerStorageValue(cid, npc.storageid) - os.time())/(60*60))..' hours to do it again.', cid) talkState[talkUser] = 0 end end else selfSay('You are gain the '..npc.word..' task!!', cid) selfSay('You need kill just '..npc.valuerequest..' of him', cid) setPlayerStorageValue(cid, npc.sto, 1) end end return true endnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new()) Kill: function onKill(cid, target) for _, t in ipairs(configs) do if getPlayerStorageValue(cid, t.storage) >= 1 then if getCreatureName(target) == t.name then setPlayerStorageValue(cid, t.storagerequest, getPlayerStorageValue(cid, t.storagerequest) + 1) doPlayerSendTextMessage(cid, 20, "Faltam ".. (t.valuerequest - getPlayerStorageValue(cid, t.storagerequest)) .." " .. t.name .. " para terminar a task.") return true end end end return trueend
    1 ponto
  12. Possíveis soluções: provavelmente quando você abre o mapa, ele vem como 8.40, então vá em Map / Properties / e mude para a versão do seu SPR e DAT que no caso deve ser 8.54 Verifique se o items.otb que está na pasta 854 é compatível com o seu servidor. Verifique se o SPR eo DAT do seu servidor está selecionado em File / Preferences / Cliente Version. Teste essas soluções, caso não funciona, procurarei outras soluções.
    1 ponto
  13. onKill: local configs = { {name = "War Gyarados", storage = 10294, valuerequest = 1000, storagerequest = 14123}, -- Mude valuerequest para a quantidade que o player deve matar {name = "War Heracross", storage = 10295, valuerequest = 1000, storagerequest = 14124},}function onKill(cid, target) for _, t in ipairs(configs) do if getPlayerStorageValue(cid, t.storage) >= 1 then if getCreatureName(target) == t.name then setPlayerStorageValue(cid, t.storagerequest, getPlayerStorageValue(cid, t.storagerequest) + 1) doPlayerSendTextMessage(cid, 20, "Faltam ".. configs.valuerequest - getPlayerStorageValue(cid, t.storagerequest) .." " .. t.name .. " para terminar a task.") return true end end end return trueend Npc: local configs = { {word = "War Gyarados", sto = 10294, money = 0, rewardid = 15589, rewardcount = 20, rewardexp = 10000000, storageid = 5455, storagevalue = os.time() + 1*24*60*60, storagerequest = 14123, valuerequest = 1000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."}; {word = "War Heracross", sto = 10295, money = 0, rewardid = 15589, rewardcount = 20, rewardexp = 10000000, storageid = 5455, storagevalue = os.time() + 1*24*60*60, storagerequest = 14124, valuerequest = 1000, text = "Congratulations! You finished this task. In 24h, you will be able to do it again."}; --{word = "xxx", sto = xxx,money = xxx, rewardid = xxx, rewardcount = xxx, rewardexp = xxx, storageid = xxx, storagevalue = xxx, storagerequest = xxx, valuerequest = xxx, text = "xxx"};}local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid for _, npc in ipairs(configs) do if(msgcontains(msg, ''..npc.word..'')) then if getPlayerStorageValue(cid, npc.sto) >= 1 then if getPlayerStorageValue(cid, npc.storageid) < os.time() then if getPlayerStorageValue(cid, npc.storagerequest) >= npc.valuerequest then doPlayerAddItem(cid, npc.rewardid, npc.rewardcount) setPlayerStorageValue(cid, npc.storagerequest, getPlayerStorageValue(cid, npc.storagerequest) - npc.valuerequest) setPlayerStorageValue(cid, npc.storageid, npc.storagevalue) doPlayerAddExperience(cid, npc.rewardexp) doSendAnimatedText(pos, npc.rewardexp, 215) selfSay(''..npc.text..'', cid) talkState[talkUser] = 0 else selfSay('You need to kill '..(npc.valuerequest - getPlayerStorageValue(cid, npc.storagerequest))..' '..npc.word..' to gain a reward.') talkState[talkUser] = 0 end else selfSay('You already did this task, player. Wait '..math.ceil((getPlayerStorageValue(cid, npc.storageid) - os.time())/(60*60))..' hours to do it again.', cid) talkState[talkUser] = 0 end end else selfSay('You are gain the '..npc.word..' task!!', cid) selfSay('You need kill just '..npc.valuerequest..' of him', cid) setPlayerStorageValue(cid, npc.sto, 1) end end return true endendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new()) Eu não testei, qual quer coisa avisa aí!
    1 ponto
  14. Furabio

    Update no PHPMYADMIN

    UPDATE players SET balance=0 WHERE balance > 10000000;
    1 ponto
  15. Dragon Ball Hiper

    Skills Não salvam

    Sim , correto kk
    1 ponto
  16. Yan Liima

    SOURCES TFS 0.4 WODBO

    Recomendo a TFS 0.4 rev3777 ou 3884, basta fazer a alteração para por effect até 255 (por inquanto não existe uma maneira de passar desse limite) e hp e mp por porcentagem. Em meu servidor de Dbo utilizo a TFS 0.4 rev3884 e roda lisinho. Porém essa é uma source minha totalmente editada por mim, e não disponibilizo ela de graça. Mais se quiser ajuda a respeito de effects e hp/mp eu irei ajudar dboa. Aqui no xtibia na área de programação tem diversos tópicos para te ajudar a compilar ou até mesmo instalar algum code em suas source. Você também podera encontrar várias TFS boas. Use a do Fireelement que parece ser bem boa >> LINK Ou se preferir essa >> LINK
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...