Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Gabriel Couto

    Zare City

    Deve demorar ainda um bocado pro primeiro download ser liberado Até porque vou acabar refazendo algumas coisas, muito provavelmente, quando pegar a prática de novo! E isso aí é só o começo ainda do projeto ^^ Valeu! Basicamente não há algum tipo de atualização no mapa. Só estou postando as imagens para mostrar a visão de player sobre o mapa. Estou trabalhando agora para definir os limites da cidade, para poder utilizar melhor o espaço no futuro! Até essas imagens ainda são um esboço. Faltam diversos detalhes ainda para completar cada local, que adicionarei depois que tiver todas as construções prontas, ainda falta um bocado
    2 pontos
  2. Conteúdo: Imagens Mapa não incluso Downloads: Removendo Bugs de itens (como order, fishing, etc) Sistemas feitos para o PDE: Tutoriais feitos para o PDE: Bugs reportados:
    1 ponto
  3. postdeotpago

    OTX 8.6 - DASH+CAST

    Como apagaram o meu post em outro fórum de OTSERVER, estou postando aqui, pois acho mais difícil serem amiguinhos do maior ladrão da história Lu.Lukinhas (vulgo Absolute). Esta é uma das sources mais seguras atualmente. Ela pode ser baixada gratuitamente, porém sem o DASH e o CAST SYSTEM. O Absolute está cobrando R$150,00 por ela e estou disponibilizando gratuitamente para vocês. Esta source pode ser compilada da mesma forma que um TFS 0.4 Possivelmente você terá alguns erros ao migrar de TFS para OTX, mas com paciência é possível resolver. Com esta distro, um Baiak, hospedado em VPS de 1GB fica mais liso que bunda de nenê, pois ele tem DASH incluso. Aquele mesmo DASH do MageBot já está incluso no distro, disponível para qualquer player usar. Download: http://www.mediafire.com/download/sagzx4w5tfpyju7/OTX_2.1_%5BCAST%5D_Absolute.zip Scan: https://www.virustotal.com/pt/file/1eec091fb9cb24af5666be2cf35ac92cde191c939fcdf4a3919abe9a2c88b6f3/analysis/ Recomendo utilizar em Linux Debian 6. Não vou ajudar ninguém a compilar ou resolver erros de incompatibilidade com TFS 0.4. Procurem tutoriais no forum para isso. by: Amiguinho do Absolute Créditos: acho que Absolute (mesmo que eu ache que ele não fez nada).
    1 ponto
  4. Depois de muitos pedidos e muita procura acabei compilando o TFS da versão 10.90, está estável. As sources são originais, não houve modificações nelas, apenas os sistemas foram adicionados... Clique Aqui para fazer o download da versão 32 bits. Clique Aqui para fazer o download da versão 64 bits. Clique Aqui para fazer o download das sources. Clique aqui para fazer o download do gesior funcional. Clique Aqui para o scan de 32 bits. Clique Aqui para o scan de 64 bits. Clique Aqui para o scan das sources. Para usar o Reward Chest adicione a seguinte flag no monstro. <flag rewardchest="1" / Você também pode definir o drop para ser único, dessa forma só a pessoa que fez o maior dano irá obter este item. exemplo: <item id="5903" chance="100000" uniquedrop="1" /><!-- ferumbras' hat --> Na versão final foram corrigidos os bugs das mensagens do Server Log como as de potion e loot. Seguem as screen shots.. PS: Eu autorizo postar em outro fórum, porem este conteúdo é oficialmente do XTibia, então coloque meus créditos e o link do fórum oficial.
    1 ponto
  5. zipter98

    Mega Evolution System (PxG)

    Base usada: PDA by Slicer, v1.9 Para quem não conhece o sistema de mega evoluções, recomendo acessar este link. A diferença é que a pedra (mega stone) não ocupa o espaço de um Held Item tier Y (visto que não são todos os servidores que possuem Held Itens). Instalação do sistema (atenção nos detalhes) data/lib: cooldown bar.lua: Troque o código da função getNewMoveTable(table, n) por este: function getNewMoveTable(table, n) if table == nil then return false end local moves = {table.move1, table.move2, table.move3, table.move4, table.move5, table.move6, table.move7, table.move8, table.move9, table.move10, table.move11, table.move12} local returnValue = moves if n then returnValue = moves[n] end return returnValueend No código da função doUpdateMoves(cid), troque o segundo: table.insert(ret, "n/n,") por: local mEvolveif not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then if not isInArray(ret, "Mega Evolution,") then table.insert(ret, "Mega Evolution,") mEvolve = true endendif not mEvolve then table.insert(ret, "n/n,")end Depois, em pokemon moves.lua: Troque: min = getSpecialAttack(cid) * table.f * 0.1 --alterado v1.6 por: min = getSpecialAttack(cid) * (table and table.f or 0) * 0.1 --alterado v1.6 Código da spell: elseif spell == "Mega Evolution" then local effect = xxx --Efeito de mega evolução. if isSummon(cid) then local pid = getCreatureMaster(cid) if isPlayer(pid) then local ball = getPlayerSlotItem(pid, 8).uid if ball > 0 then local attr = getItemAttribute(ball, "megaStone") if attr and megaEvolutions[attr] then local oldPosition, oldLookdir, health_percent_lost = getThingPos(cid), getCreatureLookDir(cid), (getCreatureMaxHealth(cid) - getCreatureHealth(cid)) * 100 / getCreatureMaxHealth(cid) doItemSetAttribute(ball, "poke", megaEvolutions[attr][2]) doSendMagicEffect(getThingPos(cid), effect) doRemoveCreature(cid) doSummonMonster(pid, megaEvolutions[attr][2]) local newPoke = getCreatureSummons(pid)[1] doTeleportThing(newPoke, oldPosition, false) doCreatureSetLookDir(newPoke, oldLookdir) adjustStatus(newPoke, ball, true, false) doCreatureAddHealth(newPoke, -(health_percent_lost * getCreatureMaxHealth(newPoke) / 100)) if useKpdoDlls then addEvent(doUpdateMoves, 5, pid) end end end end end Depois, em configuration.lua: megaEvolutions = { --[itemid] = {"poke_name", "mega_evolution"}, [11638] = {"Charizard", "Mega Charizard X"}, [11639] = {"Charizard", "Mega Charizard Y"},} Agora, em data/actions/scripts, código da mega stone: function onUse(cid, item) local mEvolution, ball = megaEvolutions[item.itemid], getPlayerSlotItem(cid, 8).uid if not mEvolution then return doPlayerSendCancel(cid, "Sorry, this isn't a mega stone.") elseif ball < 1 then return doPlayerSendCancel(cid, "Put a pokeball in the pokeball slot.") elseif #getCreatureSummons(cid) > 0 then return doPlayerSendCancel(cid, "Return your pokemon.") elseif getItemAttribute(ball, "poke") ~= mEvolution[1] then return doPlayerSendCancel(cid, "Put a pokeball with a(n) "..mEvolution[1].." in the pokeball slot.") elseif getItemAttribute(ball, "megaStone") then return doPlayerSendCancel(cid, "Your pokemon is already holding a mega stone.") end doItemSetAttribute(ball, "megaStone", item.itemid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Now your "..getItemAttribute(ball, "poke").." is holding a(n) "..getItemNameById(item.itemid)..".") doRemoveItem(item.uid) return trueend Depois, em goback.lua: Abaixo de: if not pokes[pokemon] then return trueend coloque: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end Depois, em data/creaturescripts/scripts, look.lua: Abaixo de: local boost = getItemAttribute(thing.uid, "boost") or 0 coloque: local extraInfo, megaStone = "", getItemAttribute(thing.uid, "megaStone")if megaStone then extraInfo = getItemNameById(megaStone) if pokename:find("Mega") then pokename = megaEvolutions[megaStone][1] endend Depois, acima do primeiro: doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) coloque: if extraInfo ~= "" then table.insert(str, "\nIt's holding a(n) "..extraInfo..".")end Já em data/talkactions/scripts, move1.lua: Abaixo de: function doAlertReady(cid, id, movename, n, cd) coloque: if movename == "Mega Evolution" then return true end Troque: if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end por: if not move then local isMega = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") if not isMega or name:find("Mega") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local moveTable, index = getNewMoveTable(movestable[name]), 0 for i = 1, 12 do if not moveTable[i] then index = i break end end if tonumber(it) ~= index then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local needCds = true --Coloque false se o pokémon puder mega evoluir mesmo com spells em cooldown. if needCds then for i = 1, 12 do if getCD(getPlayerSlotItem(cid, 8).uid, "move"..i) > 0 then return doPlayerSendCancel(cid, "To mega evolve, all the spells of your pokemon need to be ready.") end end end move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0} end E troque: doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) por: local spellMessage = msgs[math.random(#msgs)]..""..move.name.."!"if move.name == "Mega Evolution" then spellMessage = "Mega Evolve!"enddoCreatureSay(cid, getPokeName(mypoke)..", "..spellMessage, TALKTYPE_SAY) Se não quiser que o "Mega" apareça no nome do pokémon, vá em data/lib, level system.lua: Acima de: if getItemAttribute(item, "nick") then nick = getItemAttribute(item, "nick")end coloque: if nick:find("Mega") then nick = nick:match("Mega (.*)") if not pokes[nick] then nick = nick:explode(" ")[1] end end Caso queiram que cada mega evolução tenha um clã específico: Em move1.lua, acima de: move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0, f = 0, t = "?"} coloque: local megaEvoClans = { --[mega_stone_id] = "clan_name", [91912] = "Volcanic", [91913] = "Seavell", --etc,}if megaEvoClans[isMega] then if getPlayerClanName(cid) ~= megaEvoClans[isMega] then return doPlayerSendCancel(cid, "You can't mega evolve this pokemon.") endend Finalizando o tópico após uma pequena reestruturação na indexação, gostaria de levantar algo que acredito ser bem claro: o sistema é cheio de detalhes, muitas vezes minuciosos. Um simples erro e bugs aparecem por toda parte. Se você encontrou algum, pelo menos uma das duas seguintes condições acontecem: Base DIFERENTE da usada. Peço desculpas, mas não pretendo adaptar o sistema para todas as bases diferentes que aparecerem. Se a base for a mesma, você com certeza errou em algum ponto da instalação. O sistema foi testado inúmeras vezes, não apenas por mim, e seu funcionamento foi seguidamente comprovado. Façam bom uso, invocadores.
    1 ponto
  6. Maenilse

    Dev Cpp

    Olá caros amigos, vi que muita gente tem dificuldade pra compilar suas SOURCES com o Dev Cpp porque sempre que tentam compilar da erros por faltas de libraries pra compilar, mesmo que a source esteja virgem, sem nada modificado. então eu fiz um instalador aqui com meu Dev Cpp que uso pra compilar as minhas SOURCES, estarei disponibilizando ele, com todas libraries para compilar. Download: Dev-Cpp não postarei o SCAN porque o 4shared ja tem seu proprio scan. o Dev Cpp foi testado, e está 100% funcional. antes de instalar o Dev Cpp, lembrem-se de desinstalar todos os Dev e configurações que vocês tiveram dos antigos.
    1 ponto
  7. Tony Araujo

    [OrochiElf] New OTRestarter v1.0

    New OTRestarter version: 1.0 developer: Tony Araújo (OrochiElf) pt. Gabriel Nogueira (Idéias) Funções: - Auto Restarter (Ele inicia o servidor assim que ele não detectar mais que o processo está ativo, ou seja, toda vez que o seu servidor fechar sozinho, o programa automaticamente irá reconhecer e irá reinicia-lo.) - Auto Crash Timer (Uma nova função inédita foi adicionada, esta função é responsável por detectar quando o processo do servidor para de funcionar, algo que acontece frequentemente, então ele irá reconhecer e reiniciar o processo.) - Auto Restarter Timer (Outra função nova adicionada nesta versão, esta função é responsável por programar os horários que você deseja reiniciar o seu servidor. ela é bastante usada para evitar o desperdício de memória usada no consumo do processo do servidor, ou seja, quando um servidor está ativo por muito tempo o gasto de memória aumenta, então esta função irá reiniciar o processo do seu servido de acordo com os horários que você marcar. Para próxima versão: - OTRestarter hosting (Esta função será uma inovação bastante bacana, ela dará o direito de você acessar o Restarter *que estará provavelmente instalado no VPS/Dedicado do servidor* sem que a pessoa precise acionar a conexão remota, ou seja, funcionará parecido com um FTP Control, você poderá controlar o Restarter e ter acesso as informações gravadas no LOG do programa através de um simples client, deixando possível ser acessado em computadores diferentes, e em breve uma versão para mobile/celular.) Imagem do funcionamento do programa: Download: Link Aqui
    1 ponto
  8. Olá, xTibianos. Hoje venho lhes trazer outra lista de tipos de mensagens que podem ser mandadas aos players (por meio de scripts, óbvio). Os seguintes tipos de mensagens são os usados nas versões 1.x do The Forgotten Server (TFS para os íntimos). Segue a lista dos tipos de mensagens e uma breve descrição de como cada tipo de mensagem se apresenta in-game: MESSAGE_STATUS_CONSOLE_BLUE = 4, /*Mensagem azul no console*/ MESSAGE_STATUS_CONSOLE_RED = 13, /*Mensagem vermelha no console*/ MESSAGE_STATUS_DEFAULT = 17, /*Mensagem branca na parte inferior da tela do jogo e no console*/ MESSAGE_STATUS_WARNING = 18, /*Mensagem vermelha no centro da tela do jogo e no console*/ MESSAGE_EVENT_ADVANCE = 19, /*Mensagem branca no centro da tela do jogo e no console*/ MESSAGE_STATUS_SMALL = 21, /*Mensagem branca na parte inferior da tela do jogo"*/ MESSAGE_INFO_DESCR = 22, /*Mensagem verde no centro da tela do jogo e no console*/ MESSAGE_DAMAGE_DEALT = 23, /*Mensagem branca no console*/ MESSAGE_DAMAGE_RECEIVED = 24, MESSAGE_HEALED = 25, MESSAGE_EXPERIENCE = 26, MESSAGE_DAMAGE_OTHERS = 27, MESSAGE_HEALED_OTHERS = 28, MESSAGE_EXPERIENCE_OTHERS = 29, MESSAGE_EVENT_DEFAULT = 30, MESSAGE_LOOT = 31, MESSAGE_EVENT_ORANGE = 36, /*Mensagem laranja no console*/ MESSAGE_STATUS_CONSOLE_ORANGE = 37 lembrando que no script pode ser usado tanto a "parte escrita" quanto o numero correspondente! Agora segue uma sequencia de prints da execução de cada tipo de mensagem in-game: as divisórias "//" indicam que todas os tipos de mensagens presentes antes/depois delas surtem os mesmos efeitos (representados nas prints) MESSAGE_STATUS_CONSOLE_BLUE MESSAGE_STATUS_CONSOLE_RED MESSAGE_STATUS_DEFAULT // MESSAGE_EVENT_DEFAULT MESSAGE_STATUS_WARNING MESSAGE_EVENT_ADVANCE MESSAGE_STATUS_SMALL MESSAGE_INFO_DESCR // MESSAGE_LOOT MESSAGE_DAMAGE_DEALT // MESSAGE_DAMAGE_RECEIVED // MESSAGE_HEALED // MESSAGE_EXPERIENCE // MESSAGE_DAMAGE_OTHERS // MESSAGE_HEALED_OTHERS // MESSAGE_EXPERIENCE_OTHERS MESSAGE_EVENT_ORANGE // MESSAGE_STATUS_CONSOLE_ORANGE Por hoje é isso, galera. Espero que tenha sido útil. ^^ Créditos: @Danihcv
    1 ponto
  9. FLC

    FLC - Attempt to mapping - ShowOff

    @@lokoga, Obrigado ^^ @@SamueLGuedes, haha, obrigado tambem @@lokoga, pra upar a imagem, upa ela em um site e clica aqui
    1 ponto
  10. Danihcv

    Nick

    @@narutomaniacos, opa, então, o forum está passando por uma atualização essa semana. Ao final da atualização vc mesmo poderá alterar seu nick. Então, apenas aguarde mais um pouco. sahsauhsauhsa ^^
    1 ponto
  11. Beeki

    OTX 8.6 - DASH+CAST

    otx é uma distro do tfs 0.3.7, porque seira diferente?
    1 ponto
  12. Ficou muito bom o tópico, seguindo o padrão dos outros. Reputado =)
    1 ponto
  13. Haha, boas lembranças. O top 400 me deu a conta na época, mas eu era GM então acabei não jogando nela. Depois disso eu me afastei mais do servidor.
    1 ponto
  14. Acho que é o melhor ot server que tem , joguei na epoca do 8.7 . :nuts:
    1 ponto
  15. Desculpa a demora pra responder, mas tenho um tutorial de como abrir o servidor nas versões atuais só você clicar aqui para ser redirecionado.
    1 ponto
  16. Manin para ter sue site basta seguir este forum ^^ http://www.xtibia.com/forum/topic/157897-tutorialcriando-website-com-xampp/
    1 ponto
  17. Adicionado o sistema de Reward Chest as sources. Opa mano, dei uma breve pesquisada aqui no google esse erro pode ser causado pela falta do DirectX ou até mesmo algumas DLLS em seu computador. Basta pesquisar sobre este erro no google que você encontrará algumas soluções. Sei sim, já encontrei uma solução para este problema, assim que surgir novos problemas já corrijo todos eles de uma vez. Mas creio que isto não seja um problema para o servidor.
    1 ponto
  18. Para a felicidade de vocês eu acabei de atualizar o tópico com a versão de 64 bits. que também possui o tibia cast incluído.
    1 ponto
  19. zipter98

    [PEDIDO] DROPSTONE

    local stone_effects = { --[itemid] = effect, --Ex.: [3924] = 5, [4090] = 37, } local function sendEffStone(cid, pos, stones) if not isCreature(cid) then return true end for i = 1, 255 do pos.stackpos = i local item = getTileThingByPos(pos) if item.uid ~= 0 then if isContainer(item.uid) then if isContainer(item.uid) and getContainerSize(item.uid) > 0 then for slot=0, (getContainerSize(item.uid)-1) do local stone = getContainerItem(item.uid, slot) if isInArray(stones, stone.itemid) and stone_effects[stone.itemid] then doSendMagicEffect(getThingPos(cid), stone_effects[stone.itemid]) end end end end end end end function onKill(cid, target) local stones = {11453, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11454, 12244, 12232, 12242, 12417, 12419, 12245, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414} --id de todas as stones if ehMonstro(target) and isPlayer(cid) then local pos = getThingPos(target) local pid = getCreatureSummons(cid)[1] addEvent(sendEffStone, 150, pid, pos, stones) end return true end
    1 ponto
  20. Lordbaxx

    Pokemon PDA XTIBIA

    A realidade é que já encheu o saco esse papo. Se não quer postar as sources, pra que cria o tópico dizendo que é open? Isso além de ser vergonhoso é infantil. Toda essa comoção da comunidade em prol de ajudar você com ISSO ai, e você tem coragem de dizer que estão errados em pedir uma coisa que você mesmo disse que teria (as sources)??. Aproveita quando for formatar o PC e formata sua mente junto!! Fica com Deus. Atenciosamente, Douglas!
    1 ponto
  21. pega um globalStorage qualquer, salva o id como sendo o value dele + 1, altera o valor dele como sendo o antigo + 1. Se fizer isso sempre na spell vc vai sempre ter um novo id começando em 1 e indo até o "infinito", vc pode salvar na database sem ter que ficar lendo ela na sequência, até porque essa informação pode não voltar no mesmo instante.
    1 ponto
  22. move1.lua: Abaixo de: if getPlayerStorageValue(mypoke, 3894) >= 1 then return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3 end coloque: if move.name == "Morph" then for i = 1, 12 do if getCD(getPlayerSlotItem(cid, 8).uid, "move"..i) > 0 then return doPlayerSendCancel(cid, "To use Morph, all the spells of your pokemon need to be ready.") end end end
    1 ponto
  23. Vamos lá: (PROCEDIMENTOS PARA O SEGUNDO SERVIDOR, O PRIMEIRO NÃO PRECISA DISTO!) - Abra o config.lua e ache isso: - Agora mude para isso: - E um pouco acima mude isso: - Para isso: Agora altere o world_id da database para 1 (TODOS OS CHARACTERS DO SERVIDOR 2) e pronto. Os 2 servidores devem ter databases diferentes.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...