Ir para conteúdo

nizin

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    nizin deu reputação a Elpeto em Pack spr dat Return Of Sayans   
    Return of sayans
    Ja postei no face, precisa do object build 10.98
     
    Essas spr ja vazaram a um bom tempo,
    Tem gente querendo vender, sendo que vazou, nao acho certo, resolvi disponibilizar pra vcs
    https://www.mediafire.com/file/63dn7lebrg6fym7/R_O__T_S_GRAFIKA.rar/file

  2. Gostei
    nizin recebeu reputação de L3K0T em Show Off - Mapa DBO Legacy   
    Olá pessoal! Tudo bem? Venho aqui exibir o Show Off do mapa do meu Server. Estou trabalhando no mapa a um tempo e ele foi feito inteiramente por mim do absoluto ZERO.
    Lembrando que o mapa ainda não esta 100%, conforme o tempo eu vou postando novas atualizações.
     
     
     
     
  3. Gostei
    nizin deu reputação a FlameArcixt em Bug ao dar look no Pokemon de alguém.   
    local NPCBattle = { ["Brock"] = {artig = "He is", cidbat = "Pewter"}, ["Misty"] = {artig = "She is", cidbat = "Cerulean"}, ["Blaine"] = {artig = "He is", cidbat = "Cinnabar"}, ["Sabrina"] = {artig = "She is", cidbat = "Saffron"}, --alterado v1.9 \/ peguem tudo! ["Kira"] = {artig = "She is", cidbat = "Viridian"}, ["Koga"] = {artig = "He is", cidbat = "Fushcia"}, ["Erika"] = {artig = "She is", cidbat = "Celadon"}, ["Surge"] = {artig = "He is", cidbat = "Vermilion"}, } local shinys = { ["Shiny Abra"] = "Dark Abra", ["Shiny Onix"] = "Crystal Onix", ["Shiny Gyarados"] = "Red Gyarados", ["Shiny Charizard"] = "Elder Charizard", ["Shiny Venusaur"] = "Ancient Venusaur", ["Shiny Blastoise"] = "Ancient Blastoise", ["Shiny Farfetch'd"] = "Elite Farfetch'd", ["Shiny Hitmonlee"] = "Elite Hitmonlee", ["Shiny Himonchan"] = "Elite Hitmonchan", ["Shiny Snorlax"] = "Big Snorlax", } function onLook(cid, thing, position, lookDistance) local str = {} local isTrade = false if lookDistance == 0 then isTrade = true end -- trade lookDistanc end if not isCreature(thing.uid) then local iname = getItemInfo(thing.itemid) if isPokeball(thing.itemid) and getItemAttribute(thing.uid, "poke") then local isDittoBall = isInArray({"Ditto", "Shiny Ditto"}, getItemAttribute(thing.uid, "poke")) and true or false unLock(thing.uid) local lock = getItemAttribute(thing.uid, "lock") local pokename = isDittoBall and getItemAttribute(thing.uid, "copyName") or getItemAttribute(thing.uid, "poke") local heldx = getItemAttribute(thing.uid, "xHeldItem") local heldy = getItemAttribute(thing.uid, "yHeldItem") local megaID = getItemAttribute(thing.uid, "megaID") if heldx == "none" then heldx = nil end if heldy == "none" then heldy = nil end local pokeBallName = getItemAttribute(thing.uid, "ball") if not pokeBallName then doItemSetAttribute(thing.uid, "ball", "poke") pokeBallName = "Poke" end if isGod(cid) then table.insert(str, "ItemID[".. thing.itemid .."].\n") end table.insert(str, "You see ".. doCorrectString(pokeBallName) .."ball.") if getItemAttribute(thing.uid, "unique") then table.insert(str, " It's an unique item.") end table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename.. (isDittoBall and " (Ditto)" or "") .. ".\n") if lock and lock > 0 then table.insert(str, "It will unlock in ".. os.date("%d/%m/%y %X", lock)..".\n") end local boost = getItemAttribute(thing.uid, "boost") or 0 if boost > 0 then table.insert(str, "Boost level: +"..boost..".\n") end -- if getItemAttribute(thing.uid, "level") then -- table.insert(str, "Level: "..getItemAttribute(thing.uid, "level")..".") -- local check = getItemAttribute(thing.uid, "spatt") -- if check == nil or check == '' then -- table.insert(str, "\nNever used pokeball") -- else -- local pb = thing -- local clanatt = math.ceil(getItemAttribute(pb.uid, "clanatt")) -- local clandef = math.ceil(getItemAttribute(pb.uid, "clandef")) -- local clanhp = math.ceil(getItemAttribute(pb.uid, "clanhp")) -- local def =math.ceil(getItemAttribute(pb.uid, "def")) -- local hp =math.ceil(getItemAttribute(pb.uid, "hp")) -- local spattack = math.ceil(getItemAttribute(pb.uid, "spatt")) -- table.insert(str, "\nSp. Attack: "..spattack.."") -- if clanatt > 0 then -- table.insert(str, "(+"..clanatt..").") -- end -- table.insert(str, "\nDef : %"..math.ceil(def)..".") -- if clandef > 0 then -- table.insert(str, "(+"..clandef..").") -- end -- table.insert(str, "\nHP Max: "..hp.."") -- if clanhp > 0 then -- table.insert(str, "(+"..clanhp..").") -- end -- end -- end if getItemAttribute(thing.uid, "expneed") then table.insert(str, "\nExperience: "..math.ceil(getItemAttribute(thing.uid, "exp")).."/"..getItemAttribute(thing.uid, "expneed")..".\n") end -- local multiplicador = getItemAttribute(thing.uid, "multiplier") if getItemAttribute(thing.uid, "porcentaje") then local porcentaje = getItemAttribute(thing.uid, "porcentaje") table.insert(str, porcentaje.."% perfecto.\n") end if getItemAttribute(thing.uid, "nick") then table.insert(str, "It's nickname is: "..getItemAttribute(thing.uid, "nick")..".\n") end local heldName, heldTier = "", "" local heldYName, heldYTier = "", "" if heldx or heldy then if heldx then heldName, heldTier = string.explode(heldx, "|")[1], string.explode(heldx, "|")[2] end if heldy then heldYName, heldYTier = string.explode(heldy, "|")[1], string.explode(heldy, "|")[2] end local heldString = heldName .. " (tier: " .. heldTier .. ")" local heldYString = heldYName .. (not isInArray({"Mega", "GHOST"}, heldYTier) and " (tier: " .. heldYTier .. ")" or "") if heldx and heldy then table.insert(str, "Holding: " .. heldString .. " and " .. heldYString .. ". ") elseif heldx then table.insert(str, "Holding: "..heldString..". ") elseif heldy then table.insert(str, "Holding: "..heldYString ..". ") end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false elseif getItemAttribute(thing.uid, "pokeName") and string.find(getItemAttribute(thing.uid, "pokeName"), "fainted") then local lootName = getItemAttribute(thing.uid, "pokeName") if isGod(cid) then table.insert(str, "ItemID[".. thing.itemid .."].\n") end table.insert(str, "You see a "..string.lower(lootName)..". ") if isContainer(thing.uid) then table.insert(str, "(Vol: "..getContainerCap(thing.uid)..")") end if getItemAttribute(thing.uid, "corpseowner") then if getItemAttribute(thing.uid, "corpseowner") == "asçdlkasçldkaçslkdçaskdçaslkdçlsakdçkaslç" then table.insert(str, "\nSuicidou-se.") else table.insert(str, "\nEste fue matado por: ("..getItemAttribute(thing.uid, "corpseowner")..")") end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false elseif isContainer(thing.uid) then --containers if isGod(cid) then table.insert(str, "ItemID[".. thing.itemid .."].\n") end if getItemAttribute(thing.uid, "iname") then table.insert(str, "You see "..iname.article.." "..iname.name..". (Vol:"..getContainerCap(thing.uid)..").") table.insert(str, getItemAttribute(thing.uid, "iname")..".") else table.insert(str, "You see "..iname.article.." "..iname.name..". (Vol:"..getContainerCap(thing.uid)..").") end if getPlayerGroupId(cid) >= 4 and getPlayerGroupId(cid) <= 6 then table.insert(str, "\nItemID: ["..thing.itemid.."]") local pos = getThingPos(thing.uid) table.insert(str, "\nPosition: [X: "..pos.x.."][Y: "..pos.y.."][Z: "..pos.z.."]") end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false elseif getItemAttribute(thing.uid, "unique") then if isGod(cid) then table.insert(str, "ItemID[".. thing.itemid .."].\n") end local p = getThingPos(thing.uid) table.insert(str, "You see ") if thing.type > 1 then table.insert(str, thing.type.." "..iname.plural..".") else table.insert(str, iname.article.." "..iname.name..".") end table.insert(str, " It's an unique item.\n"..iname.description) if getPlayerGroupId(cid) >= 4 and getPlayerGroupId(cid) <= 6 then table.insert(str, "\nItemID: ["..thing.itemid.."]") table.insert(str, "\nPosition: ["..p.x.."]["..p.y.."]["..p.z.."]") end sendMsgToPlayer(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false else return true end end local npcname = getCreatureName(thing.uid) if ehNPC(thing.uid) and NPCBattle[npcname] then --npcs duel table.insert(str, "You see "..npcname..". "..NPCBattle[npcname].artig.." leader of the gym from "..NPCBattle[npcname].cidbat..".") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false end if getPlayerStorageValue(thing.uid, 697548) ~= -1 then table.insert(str, getPlayerStorageValue(thing.uid, 697548)) local pos = getThingPos(thing.uid) if youAre[getPlayerGroupId(cid)] then table.insert(str, "\nPosition: [X: "..pos.x.."][Y: "..pos.y.."][Z: "..pos.z.."]") end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false end if not isPlayer(thing.uid) and not isMonster(thing.uid) then --outros npcs table.insert(str, "You see "..getCreatureName(thing.uid)..".") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false end if isPlayer(thing.uid) then --player doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, getPlayerDesc(cid, thing.uid, false)) return false end if getCreatureName(thing.uid) == "Evolution" then return false end if not isSummon(thing.uid) then --monstros table.insert(str, "You see a wild "..string.lower(getCreatureName(thing.uid))..".\n") if isGod(cid) then table.insert(str, "Hit Points: "..getCreatureHealth(thing.uid).." / "..getCreatureMaxHealth(thing.uid)..".\n") end table.insert(str, "Level: ?\n") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false elseif isSummon(thing.uid) and not isPlayer(thing.uid) then --summons local boostlevel = getItemAttribute(getPlayerSlotItem(getCreatureMaster(thing.uid), 8).uid, "boost") or 0 local isDittoBall = isInArray({"Ditto", "Shiny Ditto"}, getItemAttribute(getPlayerSlotItem(getCreatureMaster(thing.uid), 8).uid, "poke")) and true or false if getCreatureMaster(thing.uid) == cid then local myball = getPlayerSlotItem(cid, 8).uid table.insert(str, "You see your "..doCorrectString(getCreatureName(thing.uid)).. (isDittoBall and " (Ditto)" or "") ..".") if boostlevel > 0 then table.insert(str, "\nBoost level: +"..boostlevel..".") end local nick = doCorrectString(getCreatureName(cid)) local pb = getPlayerSlotItem(getCreatureMaster(cid), ? -- local levelon = getItemAttribute(pb.uid, "level") local def =math.ceil(getItemAttribute(pb.uid, "def")) local hp =math.ceil(getItemAttribute(pb.uid, "hp")) -- local lvl =math.ceil(getItemAttribute(pb.uid, "level")) local spattack = math.ceil(getItemAttribute(pb.uid, "spatt")) local clanatt = math.ceil(getItemAttribute(pb.uid, "clanatt")) local clandef = math.ceil(getItemAttribute(pb.uid, "clandef")) local clanhp = math.ceil(getItemAttribute(pb.uid, "clanhp")) -- table.insert(str, "\nLevel :"..lvl..".") table.insert(str, "\nSp. Attack: "..spattack.."") if clanatt > 0 then table.insert(str, "(+"..clanatt..").") end table.insert(str, "\nDef : %"..math.ceil(def).."") if clandef > 0 then table.insert(str, "(+"..clandef..").") end table.insert(str, "\nHP Max: "..hp.."") if clanhp > 0 then table.insert(str, "(+"..clanhp..").") end table.insert(str, "\n"..getPokemonHappinessDescription(thing.uid)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) else local estestring = "" local pb = getPlayerSlotItem(getCreatureMaster(thing.uid), ? local levelon = getItemAttribute(pb.uid, "level") local def =math.ceil(getItemAttribute(pb.uid, "def")) local hp =math.ceil(getItemAttribute(pb.uid, "hp")) local spattack = math.ceil(getItemAttribute(pb.uid, "spatt")) local clanatt = math.ceil(getItemAttribute(pb.uid, "clanatt")) local clandef = math.ceil(getItemAttribute(pb.uid, "clandef")) local clanhp = math.ceil(getItemAttribute(pb.uid, "clanhp")) estestring = estestring .. "\nLevel :"..levelon.."." estestring = estestring .. "\nSp. Attack: "..spattack.."" if clanatt > 0 then estestring = estestring .. "(+"..clanatt..")." end estestring = estestring .. "\nDef : %"..math.ceil(def).."" if clandef > 0 then estestring = estestring .. "(+"..clandef..")." end estestring = estestring .. "\nHP: "..hp.."" if clanhp > 0 then estestring = estestring .. "(+"..clanhp..")." end local health = "\nHit points: "..getCreatureHealth(thing.uid).."/"..getCreatureMaxHealth(thing.uid).."." doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You see a "..doCorrectString(getCreatureName(thing.uid)).. (isDittoBall and " (Ditto)" or "") ..".\nIt belongs to "..getCreatureName(getCreatureMaster(thing.uid)).."."..estestring .. (isGod(cid) and health or "") ) end return false end return true end  
  4. Gostei
    nizin deu reputação a Leohige em The Ruby Server - Base Pokémon TFS 1.2 - 9.80   
    The Ruby Server - Base Pokémon
    Ao olhar as diversas bases que podem ser encontradas aqui no fórum e em outros locais da internet, pude ver que todas elas carecem de qualidade. Todas estas bases são feitas utilizando gambiarras para diversos sistemas funcionarem, e com isso vários problemas surgem, como de sistemas que não funcionam direito, e o mais importante, com um desempenho extremamente baixo, gerando apenas servidores instáveis. Com isso eu decidi que iria começar a desenvolver uma base para servidores relacionados a Pokémon, com dois objetivos. Um dos objetivos é ganhar mais conhecimento em cima da linguagem de programação C++, o outro objetivo é disponibilizar uma base completamente estável, funcional e de fácil configuração e desenvolvimento para servidores de Pokémon, para que mais ótimos trabalhos possam surgir. Este projeto também irá incluir um cliente próprio e estável, junto com um website.
     
    Também planejo criar uma espécie de Wiki para o servidor, cliente e website, com o objetivo de auxiliar quem for desenvolver em cima deste servidor, e também aqueles que pouco entendem do assunto relacionando a criação de escripts, Pokémon, spells e etc.
     
    Alguns poucos sistemas foram implementados no servidor por ora. Sistemas como o de catch e de goback serão implementados mais para frente, quando outros sistemas forem completamente implementados, como o sistema de configuração de Pokeballs, criação de Pokémons e sistema de shinys. Estou visando a qualidade do servidor como um todo, por isso algumas coisas irão demorar para aparecer.

    O sistema de Pokeballs e de criação de Pokémon já está bem encaminhado, e um sistema de gêneros também já está pronto com fácil configuração, onde o spawn destes Pokémon com sexo será por % igual aos jogos da franquia. Um sistema de surgimento de Ditto aleatório já está praticamente implementado, onde um Pokémon aleatório pode ser um Ditto disfarçado.
     
    [+] Informações do Servidor
    Baseado em: TFS 1.3
    Protocolo: 10.98
     
    [+] Informações do Client
    Baseado em: otclient 0.6.6

    [+] Informações do Website
    Baseado em: nenhum
    Desenvolvido em: PHP (por ser o mais comum na comunidade)
     
    Como contribuir?
    Eu gostaria muito que a comunidade ajudasse no desenvolvimento deste projeto, pois o mesmo será disponibilizado para todos, e para contribuir não necessariamente é preciso entender de programação. Você pode também ajudar testando e reportando os bugs encontrados no repositório do projeto no GitHub, assim como com sugestões e ideias de mudança/implementação no servidor através do próprio repositório ou através do Discord, ou ajudar na criação de guias para o website do projeto.
     
    Links
     
    [+] RubyServer - GitHub
    https://github.com/rubyserver/rubyserver
     
    [+] RubyClient - GitHub
    https://github.com/rubyserver/rubyclient
     
    [+] RubyServer - Website
    https://rubyserver.github.io/rubyserver/
     
    [+] RubyServer - Discord
    https://discord.gg/XTrZGpy
     
    Algumas Imagens
     
     
     
     
     
  5. Gostei
    nizin deu reputação a So volto tarde em Npc que vende refiner!   
    Tive de mudar o nome de "refiner" para "normal refiner", também corrigi alguns erros que deixei passar.
     
     
  6. Gostei
    nizin recebeu reputação de xandro em Sprites Return Of The Saiyans   
    Eai galera tudo bem? Recentemente joguei um Server chamado Return Of The Saiyans, me apaixonei no projeto e pensei em trabalhar em algo parecido com esse servidor. Tentei descompilar o cliente deles mas não consegui e queria pedir encarecidamente para alguém que tenha experiência tentar descompilar para mim. 
     
    Site do Server
    https://saiyansreturn.com/ 
     
    Link para download
    https://updater-us.saiyansreturn.com/rots.zip
  7. Gostei
    nizin recebeu reputação de Vodkart em [TFS] New Auto Loot Unlimited Edition 2.0   
    Funcionou! mt obrigado  sz 
  8. Gostei
    nizin deu reputação a Vodkart em [TFS] New Auto Loot Unlimited Edition 2.0   
    [ + ] Descrição: Autoloot refeito para VERSÃO TFS e adicionado algumas outras funções que estarei explicando ao decorrer do tópico.
     
    [ + ] Se você quer o Autoloot para VERSÃO OTX clica neste Link: AUTOLOOT OTX
     
     

     
     
    [ + ] Imagem do comando:
     

     
    [ + ] Features:
     
    [ - ] Você pode ativar ou desativar o autoloot a hora que achar necessário.
    [ - ] Também existe um comando para ativar ou desativar mensagens do loot que o autoloot coleta!
    [ - ] Você pode escolher a cor do texto em que irá aparecer a coleta do loot!
    [ - ] O autoloot informará para você se estiver com pouco slots na sua backpack, e o jogador poderá escolher se quer habilitar ou não está função no autoloot.
    [ - ] Versão ilimitada de itens(não ficam armazenadas em storages).
    [ - ] O jogador poderá optar por depositar direto no banco os golds que forem dropados.
     
    [ + ] Instalação:
     
    Primeiramente CRIE uma PASTA VAZIA chamanda "autoloot" em DATA/LOGS, ficando assim:
     

     
     
    Depois instale o MODS normalmente na pasta MODS do seu servidor.
     

     
     
    new_perfect_autoloot_tfs.xml
     
    Link: https://pastebin.com/raw/0xJR4nwr
     
     
     [ + ] Configuração:
     
    Dentro do mods tem essa tabela
    info = { distro = 1, -- 1 = TFS // 2 = talk modificada directory = "data/logs/autoloot", -- não mexer Warn_Bp_Slots = 5, -- quando tiver 5 ou menos slots na BP vai avisar o jogador Talkaction_delay = 5, -- em segundos // delay para remover e adicionar item BlockMonsters = {}, -- Lista de monstros que o autoloot nao vai funcionar BlockItemsList = {2123,2515}, -- Lista de itens que o autoloot nao coleta Money_ids = {2148, 2152, 2160}, -- id das moedas do ot Max_Slots = {free = 3, premium = 5}, -- quantidade de itens que podem ser adicionados no autoloot por free e premium Storages = {988801, 988802, 988803, 988804, 988805, 988806, 988807} -- não mexer }  
    Sobre o distro = 1
     
    Isso significa que ele usa versão padrão (1), pois existem 2 versões, caso aconteça esse error no seu console ao usar a talkaction do autoloot:
     
    [8/10/2020 19:19:58] [Error - TalkAction Interface]
    [8/10/2020 19:19:58] local words = "!autoloot"
    (...)
    [8/10/2020 19:19:59] return true
    [8/10/2020 19:19:59] Description: 
    [8/10/2020 19:19:59] (LuaInterface::luaGetItemIdByName) Item not found
     
    Você deverá colocar:
     
    distro = 2
     
    Pq? acontece que em alguns servidores não reconhecem o parâmetro "false" da função "getItemIdByName"
     
    OBS: Estarei anexando o autoloot já atualizado na versão 2.0 para quem tiver preguiça de copiar e colar!!
     
     
     
    new_perfect_autoloot_tfs.xml
  9. Gostei
    nizin recebeu reputação de Vodkart em [TFS] New Auto Loot Unlimited Edition 2.0   
    @Vodkart segue as imagens.


  10. Gostei
    nizin deu reputação a Vodkart em [8.6] Task System 4.0! (Task system + Daily Task System)   
    Removido:
     
    *Boss Room
    *Rank Task
    *Prêmios para os 10 primeiros a terminar todas as tasks
     
    Adicionado:
     
    *Daily Task System (Sistema exclusivo de Task diario, podendo pegar 1x a cada 24 hrs, irei explicar mais depois.)
    *Task agora é por progresso, você não pode sair e voltar, terá que terminar a task 1 para avançar para a task  2, assim sucessivamente.
    *Task Points
    *Level para realizar a task
    *Nova talkaction que mostra uma janela de informações sobre o level da task, premios que irá receber, progresso, etc...
    *Items para entrega(Se o jogador deverá levar algum item junto com a quantidade de monstro morta) para finalizar a task
    *Sistema de look Task (Varia de acordo com a sua quantidade de Task Points, podendo ficar por exemplo como "Huntsman", "Ranger", etc...(alterável)
    *Mods e npc mais "clean", várias linhas removidas e o sistema está mais rápido
    *Vou Adicionar "scripts extras" Como:
    --> Tile que só passa quem tiver permissão depois de finalizar determinada quest
     --> Npc de Boss Room para entrar e enfrentar o monstro quem fez determinada quest
     
     
    [+] Resumo do Task system + Daily Task System [+]
     
    Task System: É o sistema de task "original", onde consiste em matar determinada quantidade de monstros(E entregar certo itens <- é configurável), para receber recompensas como Exp, Money e Items.
     
    Algumas mudanças do simple task 3.0 para o 4.0 foram:
     
    [+] O sistema agora é por progresso, isso quer dizer que você terá que ir terminando a quest para avançar para a seguinte.
    [+] O sistema Também recebeu uma alteração, fazendo com que as Tasks precisem que o jogador tenha um level determinado
    [+] A tabela para edição está mais fácil, fazendo com que você adicione ou remova monstros com mais tranquilidade, inclusive alterações das Rewards da Task.
     
    Daily Task System: É um sistema que desenvolvi para que os jogadores sempre estejam se comunicando com o npc de Task, no caso da Task Diaria, vária de acordo com o level do jogador, por exemplo:
     
    Jogadores entre level 6 ao 49 poderá cair em uma dessas 3 Task Diarias: Orcs, Tarantulas ou Wyverns
    Jogadores entre level 50 ao 79 poderá cair em uma dessas 3 Task Diarias: Dragons, Wailing Widows ou Ancient Scarabs
     
    E por ai vai, claro que você poderá aumentar as Task Diarias dependendo do level, eu fiz 3 para cada level que é pra postar, mas tudo isso você pode aumentar! Dependendo do seu servidor.
     
    E sim, você pode fazer a TASK "ORIGINAL" e a TASK "DIARIA" ao mesmo tempo! Ambas são distintas e possuem Rewards diferenciadas!
     
    No caso da Task diaria, levando em conta que você começou a fazer ela no dia 08/01 ás 20:00 Hrs, você tem até o dia 09/01 ás 20:00Hrs para termina-la e receber a recompensa, caso termine antes, a Task diaria só irá ficar disponível para repetição a partir desta mesma data 09/01 20:00 Hrs;
     
    [+] Caso você não termine a tempo, não tem problema, basta esperar este horário e começar uma nova Task.
    [+] Caso você começou a Daily Task e terminou antes desta data. mas por algum motivo esqueceu de entregar e a mesma passou do prazo, não tem importância, caso você tenha matado todos os monstros até 09/01 20:00 Hrs, você poderá entregar está Task em qualquer horário para receber suas Rewards e começar uma task a partir do momento em que você entregou! (INJUSTIÇA AQUI NÃO CARALHO).
     
    [+] Comandos Adicionais [+]
     
    /task -- Mostra as informações da sua Task Atual, como Nome da Task, Level, Rewards, Monstros que você poderá matar, Se tem que entregar algum Item junto, etc...
    /task daily -- É basicamente mostra a mesma informação da Task Principal, porém mostra também qual o prazo limite para entrega da task.
    /task counter -- É um comando que ATIVA ou DESATIVA o contador de monstros mortos na task no seu Channel.
     
    [+] Imagens [+]
     
    Cline neste link para ver algumas imagens da Task : http://imgur.com/a/eLIY3
     
     
     
    ------------------------------------------------ // --------------------------------------------------------------
     
    [+] Instalação do Sistema [+]
     
    Requisitos: Nível Médio de conhecimento em scripting LUA
     
    Pasta Mods
     
    Simple Task.xml
     
    https://pastebin.com/raw/P5hqMC3j
     
    NPC:
     
     
    Ludger.xml
     
    https://pastebin.com/raw/R56yLWHw
     
    simple_task.lua
     
    https://pastebin.com/raw/1mRzJ6aJ
     
    ---------------------------------------------- // ----------------------------------
     
    [+] configuração [+ ]
     
    Task System Principal
     
    task_sys = { [1] = {name = "Trolls", start = 176201, monsters_list = {"Troll","Troll champion"}, level = 8, count = 40, points = 0, items = {}, reward = {}, exp = 2000, money = 2000} }  
    [1]  --> O número entre os colchetes [] significa a ordem da Task, como a Task é por progresso sempre começará no 1 e irá pro [2], assim sucessivamente.
    name --> É o nome da task que o jogador irá fazer.
    start --> é a storage que indicará se o jogador começou a Task
    monster_list ={} --> É o nome dos monstros em que o jogador deverá caçar para completar a Task
    level --> É o level necessário para dar inicio á Task
    count --> É o número de monstros que o jogador tem que matar para completar a Task
    points --> Aqui determinada quantos Task points o jogador irá receber ao completar a Task
    items = {} --> Aqui determinada se além de matar os monstros, o jogador terá que entregar item também! Caso tenha só colocar o {ITEM_ID, QUANTIDADE} EX:
    items = {{2173,1},{2160,10},{2493,2}} rewad --> Aqui determinada se o jogador irá receber itens ao terminar a Task, mesma formula do items /\
    reward = {{2520,1},{2173,1}} exp --> Se o jogador irá receber Exp ao terminar a task. 0 ou quantidade de exp
    Money --> Se o jogador irá receber dinheiro ao terminar a task. 0 ou quantidade de dinheiro
     
     
    Daily Task System
     
    daily_task = { [1] = {name = "Orcs" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 0, reward = {}, exp = 5000, money = 10000} }  
    Segue o padrão da Task original, exceto que não precisa entregar items para o npc!
     
    Como funciona A randomização de level de acordo com a Daily task?
     
    Procure por está tabela em MODS
     
    local t = { [{6,49}] = {1,3}, [{50,79}] = {4,6}, [{80,129}] = {7,9}, [{130,math.huge}] = {10,12} }  
    entre as chaves e colchetes é o level do jogador para as Daily Task, Você pode adicionar quantas você quiser!
     
    Digamos que:
     
    [{6,49}] = {1,3}  --> Quer dizer que entre o level 6 ao 49 o jogador poderá cair na Daily Task número 1(Orcs), 2(Tarantulas) ou 3(Wyvern)!
    [{50,79}] = {4,6} --> Quer dizer que entre o level 50 ao 79 o jogador poderá cair na Daily Task número 4(Dragons), 5(Wailing Widows) ou 6(Ancient Scarabs)!
    ...
    [{130,math.huge}] = {10,12} --> Quer dizer que o jogador level 130 ou MAIS poderá cair na Daily Task número 10(Undead Dragons), 11(HydraS) ou 12(Ghastly Dragons)!
     
     
    Look Rank System
    Procure por está tabela em MODS
     
    local ranks = { [{1, 20}] = "Huntsman", [{21, 50}] = "Ranger", [{51, 100}] = "Big Game Hunter", [{101, 200}] = "Trophy Hunter", [{201, math.huge}] = "Elite Hunter" }  
    Entre 1-20 Task points o Rank será Huntsman
    Entre 21-50 Task posints o Rank será Ranger
    Entre 51-100 Task Points o rank será Big Game Hunter
    etc...
    Altere como quiser!
     
     
  11. Gostei
    nizin deu reputação a xWhiteWolf em New Library v. 1.2   
    Fala galera, hoje vim trazer pra vocês uma nova biblioteca de funções que eu venho desenvolvendo, pretendo ir atualizando esse tópico constantemente sempre adicionando funções novas e explicando a utilização delas. Algumas funções que eu coloquei aqui estão presentes na OTAL também, porém algumas eu fiz pequenas correções de forma que essa lib poderia facilmente substituir a OTAL sem grandes problemas (pelo menos se você utilizava apenas as funções básicas da otal)
    Todas as funções que não tem -- nome do autor do lado dela foram feitas por mim, xWhiteWolf ou Night Wolf (NW). O restante delas são créditos dos devidos autores, apenas coloquei pois considero funções vitais no server de cada um. Crie um arquivo em data/lib chamado 075 - White Wolf Functions.lua e coloque o seguinte código dentro:



     
    Agora eu vou explicar oque cada função faz porque de nada adianta lançar uma lib e não explicar oque ela faz não é mesmo? hahaha
    Obs inicial: quando uma função tiver em seus parametros um [] significa que oque está dentro do colchetes não é um parâmetro obrigatório.



    Como usar: doShowTimeByPos(cid, getCreaturePosition(cid), 20, 20)
    Irá fazer uma contagem regressiva na posição que o player se encontra começando de 20 e mandando a mensagem na mesma cor da fala dos monstros.
    Essa função é bem útil em actions/spells para fazer contagem de tempo em runas como a magic wall e ver quanto tempo falta pra magic wall sumir)

     
    Obs: Espero que ajude bastante pessoas a entender sobre funções, eu utilizei cid como o principal uid das funções nos exemplos mas você pode muito bem utilizar outros uids, fica a critério seu.

    Qualquer dúvida comentem abaixo que eu vou tentar ajudar da melhor maneira.
    Ahhh, isso daí foi testado em 8.54 mas deve funcionar em quase todas as versões que tenham as funções básicas do TFS. 

    EDIT: Pessoal, agora é sério, essa lib tem fácil umas 600 linhas, das quais umas 500 eu devo ter codado sozinho (na mão, linha por linha). Eu tive todo o trabalho de testar cada uma delas e oque eu peço é o mínimo de gratidão e respeito. Se eu te ajudei clique em Gostei, se você tiver alguma dúvida eu to me colocando a disposição de responder qualquer coisa relacionada ao tópico, mesmo que você não saiba nem oque é uma lib apenas venha aqui e escreva sua dúvida.

    EDIT 2: Duas novas funções adicionas, espero que gostem!

    EDIT 3: Três novas funções adicionadas juntamente com suas respectivas explicações.
  12. Gostei
    nizin deu reputação a ITALOx em Dat e Spr DBO Brasil   
    Este tópico foi movido para a seção de Suporte Otserv Alternativo
  13. Gostei
    nizin deu reputação a ITALOx em {Modern AAC} Site+Template Dragon Ball War.   
    Modern AAC TFS [0x / OTX]
     
    Update 0.1
    • Layout Dragon Ball Brasil Online. • ANTI SQL INJECTION • Site 100% seguro • Pagina de Download com mais facilidade • Correção bug do F5 no shop. • Adicionado pagina de pagamento como Pagseguro, Paypal, Deposito em conta e Picpay(Configuravel) • Remoção de algumas paginas por ter falha de segurança. • Corrigido criação de contas • Corrigido pasta cach  
     
    Update 0.2
    • Corrigido o bug de recover key.  
     
    Scan:
    O virús é um falso virus.
    fiz scan no avast e não deu nada. 
     
    Imagem do site:
    Download:
     
    {Caso encontre algum bug/erro. fale nos comentários!)
     
    Créditos
    Modern AAC Team
    Italo
  14. Gostei
    nizin deu reputação a Cat em Sprites Return Of The Saiyans   
    Este tópico foi movido para a seção de Suporte Otserv Alternativo
  15. Gostei
    nizin deu reputação a Cat em Como evitar Pillow Shading - Sombreamento Correto   
    Este tutorial estava numa área fechada do perspective45 (blog), reescrevi e estruturei algumas partes, os créditos estão abaixo:
    Créditos pelo tutorial: Pixelaria, André, Alors e Insaend.
     
     
     
    Como evitar Pillow Shading - Sombreamento Correto
     
    1 - Bem o "pillow shading" se dá quando fazemos um sombreamento onde não há foco de luz ele fica como camadas de contorno (Observação: O termo Pillow Shading, no significado literal significa: Sombreamento de Travesseiro). Veja nos exemplos abaixo a forma incorreta de sombrear (quando gera pillow shading):
     

     
    2 - Agora veja abaixo a forma correta de se fazer (Observação: Uma característica principal do pillow shading que não é clara para todos é que no pillow a suavização é EXCESSIVA! Com muitas camadas de cores até chegar da mais clara pra mais escura. A solução é sempre usar menos camadas entre as cores)
     

     
    3 - Outros exemplos:
     

     

     
     
     
     
  16. Gostei
    nizin deu reputação a Augusto em Erro no sistema de Auto Loot   
    O meu também estava dando estes problemas...achei estas functions do Killua, inclusive já estão as funcóes com storage de tabelas...
     
    Vá na pasta data/lib e no arquivo 050-function.lua cole o seguinte código
     
    -- Functions library created by Vitor Bertolucci (Killua) -- Functions used to store tables in storages killua_functions = { filtrateString = function(str) -- By Killua local tb, x, old, last = {}, 0, 0, 0 local first, second, final = 0, 0, 0 if type(str) ~= "string" then return tb end for i = 2, #str-1 do if string.byte(str:sub(i,i)) == string.byte(':') then x, second, last = x+1, i-1, i+2 for t = last,#str-1 do if string.byte(str:sub(t,t)) == string.byte(',') then first = x == 1 and 2 or old old, final = t+2, t-1 local index, var = str:sub(first,second), str:sub(last,final) tb[tonumber(index) or tostring(index)] = tonumber(var) or tostring(var) break end end end end return tb end, translateIntoString = function(tb) -- By Killua local str = "" if type(tb) ~= "table" then return str end for i, t in pairs(tb) do str = str..i..": "..t..", " end str = "a"..str.."a" return tostring(str) end } function getContainerItemsInfo(containerUid) -- By Killua local table = {} if containerUid and containerUid > 0 then local a = 0 for i = 0, getContainerSize(containerUid) do local item = getContainerItem(containerUid,i) a = a + 1 table[a] = {uid = item.uid, itemid = item.itemid, quant = item.type} end return table end return false end function countTable(table) -- By Killua local y = 0 if type(table) == "table" then for _ in pairs(table) do y = y + 1 end return y end return false end function setPlayerTableStorage(cid, key, value) return doPlayerSetStorageValue(cid, key, killua_functions.translateIntoString(value)) end function getPlayerTableStorage(cid, key) return killua_functions.filtrateString(getPlayerStorageValue(cid, key)) end function setGlobalTableStorage(key, value) return setGlobalStorageValue(key, killua_functions.translateIntoString(value)) end function getGlobalTableStorage(key) return killua_functions.filtrateString(getGlobalStorageValue(key)) end function getPlayerStorageZero(cid, storage) local sto = getPlayerStorageValue(cid, storage) return sto > 0 and sto or 0 end Os créditos do Killua estão no inicio do código.
  17. Curtir
    nizin deu reputação a lordzetros em [Pedido] Clickar Item vira outro item   
    Crie um arquivo em data/actions/scripts/ chamado de trocaItem.lua com o seguinte código:
     
    -- Lordzetros p/ Forum Tibia King local config = { oldItem = 2152, -- ID do item antigo que ira ser transformado oldCount = 100, -- Quantidade necessaria para transformar o antigo item newItem = 2160, -- ID do novo item ao ser transformado 100 unidades newCount = 1, -- quantidade que ira ser adicionado do novo item } function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == config.oldItem and item.type == config.oldCount then doPlayerAddItem(cid,config.newItem,config.newCount) doRemoveItem(item.uid,item.type) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Voce transformou "..item.type.." "..getItemNameById(item.itemid).." em "..config.newCount.." "..getItemNameById(config.newItem)..".") doSendMagicEffect(getPlayerPosition(cid),25) else return false end return true end E em seguida vá em data/actions e abra actions.xml. Adicione esse código no mesmo:
     
    <action itemid="IDdoItemParaTransformar" script="trocaItem.lua" /> IDdoItemParaTransformar -> No script tá 2152, é só alterar para o que você colocou aí, enfim, tá tudo explicado no script.
    Qualquer dúvida só falar, :). 
  18. Curtir
    nizin deu reputação a LeoTK em (Resolvido)Erro no database (WEBSITE)   
    @nizin esse erro esta mostrando que não esta se conectando a database
  19. Curtir
    nizin deu reputação a Belmont em (Resolvido)Erro no database (WEBSITE)   
    @nizin Em SQLHost no config.lua, troca o seu ip por localhost. No php também
  20. Curtir
    nizin deu reputação a WhiteBubble em Dbo Rox V2 8.60 [Open Source][99% SEM BUGS]   
    Dragon Ball
    Rox
    Servidor 100% estável com mais de 200 horas online.
    38 Vocações sendo 9 delas vip que são:
    Shenron,Vegetto,Zaiko,Kagome,Tapion,Kame
    Chilled,C8 e King Vegetta.
    Spells de fast attack (Usa uma vez sai 10 hits).
    Eventos automaticos como: Castle,Battlefield,Run event.
    Reborn level maximo 600.
    Vamos aos bugs que eu encontrei:
    * Zombie event quando o zombie pega algum player todos do evento e mandando pra fora e evento encerra.
    * Erro quando usa spell e a pessoa morre antes da spell acabar no caso das de combo.
    * Erro nos eventos Battlefield e Run event quando vai adicionar a recompensa da erro por faltar uma tabela na database que não me recordo o nome agora.
     
    Update v2
     Adicionado 7 novas vocações vips sendo elas:
    Bills,Whiss,Golden Freeza,Vegetto Blue,Zamasu,Gogeta Blue e Goku Black Evo.
    Adicionado 3 vocações free sendo elas: Zeno, Vados e Vegetto Black.
    Vocações que antes era vip no update v1 agora são free.
    Fazer reborn não precisa mais fazer quest das esferas do dragão.
     Adicionado cassino que se ganha small diamonds que se troca por:
    Divine Stone(Usado para upgrade), Black Stone (Item para virar Vegetto Black) e Leviathan Amulet.
    Adicionado npc que vende Anti Loss Ring Protege 10% contra todos danos e funciona como a band of loss porem infinita. Ele fica no Yama.
    Adicionado sistema de pontuação por hora online, cada 1 hora online = 1 ponto que se pode trocar por itens no npc Points Trader no Yama.
    Adicionado sistema Anti-MC, podendo logar somente 2 contas por ip.
    Adicionado 3 bosses espalhados pelo mapa (Earth).
    Adicionado sistema de forja podendo criar o melhor set, armas free e o item para virar Zeno.
     Adicionado sistema de upgrade fazendo seu item ficar mais forte.
     Adicionado transformação ultra god para todas as vocações, sendo pega no templo de reset ao lado do esquerdo do templo. Necessário ter level 800 e possuir 100 God Essences que dropam do Ultra God Bills em God Island.Para entrar no templo de reset é necessário possuir 1 reset, para dar reset necessita ter level 800 e digitar o comando "!reset", você voltara para o level 100 com o hp/mp de um player level 100 mas ganhara acesso a área de reset que tem o npc de ultra god e a área de forja.
    Nova moeda acima de Gold sendo ela Blue God equivalente a 100 Gold Bars.
     Area de evento pvp e dice/bag adicionada no Yama.
     Area vip adicionada.
     Adicionado 2 sets novos free, 2 armas free, 2 shields free, senzu free (God Senzu), Senzu vip (Mystic Senzu), Vados staff free, Whiss staff vip.
     Vocações que antes era vip na v1 se pega na capsule ao lado direito do templo.
     Algumas modificações no mapa, hunts, quest.
    Por enquanto é só isso que estou lembrando,conforme eu lembro edito o tópico.
     
    Gostou ? Clique em Gostei logo abaixo.
     
    Para consertar o erro da loteria só executar essa query na sua database:
    CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `world_id` tinyint(2) unsigned NOT NULL default '0', `item_name` varchar(255) NOT NULL, `date` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;  
     
     
     Downloads
     
    Server (Distro para windows e linux já compilada)      Scan
    Cliente    Scan
    Sources     Scan
    Site (Modern Acc)    Scan
    Database     Scan
     
     
     
     
    Creditos server: Kramer, WhiteBubble
    Creditos site: @Hastafaru e a WhiteBubble por adaptar ao server
    Creditos source: Fir3element e WhiteBubble por aumentar limite de efeitos e por skill fist skill para aumentar attack speed.
     

Informação Importante

Confirmação de Termo