Ir para conteúdo

Pepeco

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Pepeco recebeu reputação de vankk em TibiaGTA   
    Olá, convido você para um projeto, onde tem o objetivo de aprendizagem e entretenimento. Estamos criando um projeto de TibiaGTA, onde vamos explicar mais sobre o projeto ao longo do tópico.
     
    Apresentação
    Eu me chamo Paulo Henrique e meus chars no TibiaGTA foi, Dougs/Tifane/Chavoso/Kracpow em ordem cronológica, joguei TibiaGTA na época que tinha a team do Optimus Prime e Football : p (Era da OPT Team), nos miados de 2011~2012 se não me engano, eu joguei depois de um tempo e fui do time da Panic (Não me lembro os dominantes dessa época) que foi entre 2013~2015. 
     
    Sobre
    O projeto segue apoio dos interessados pelo TibiaGTA que foi fechado, ele tomou inicio pelo grande publico que está querendo que o Quilante volte com o GTA, porém, como ele mesmo publicou, ele ficou de saco cheio.
    O projeto vai ser criado em base com o TibiaGTA antigo (2011~2015), porém a equipe vai tentar trazer o máximo de novidades possíveis, então contamos com o apoio do máximo de pessoas possíveis.
     
    Staff
    Estamos aceitando qualquer tipo de ajuda, e caso você ajude no projeto, por um longo período de atividades ou por coisas importantes, o lucro será dividido caso o mesmo venha a acontecer ou será doado algumas recompensas para ajudas menores. O projeto está sendo feito de livre e espontânea vontade dos integrantes, todos integrantes atualmente são fãs do TibiaGTA do quilante e querem ver ele voltar.
     
    Temos um quadro no trello mostrando o progresso e explicando tudo que está acontecendo no projeto. Trello
    Temos também alguns formulários  no Google, para ajudar o projeto: Form 1, Form 2
    Temos alguns meios de contato e outros do projeto: Discord, Facebook
    Caso alguém tenha interesse em entrar ou ajudar a equipe, por favor, entrar em contato em alguma plataforma (Discord ou Facebook). Que a resposta vai ser o mais breve possível, caso queira pelo TibiaKing, a resposta pode demorar um pouco mais de tempo.
     
     
    Caso tenha gostado ou se interessado pelo projeto, por favor, avalie o tópico ali em cima, isso ajuda muito  
  2. Curtir
    Pepeco deu reputação a Jnetworks em Perfect Autoloot System Talkaction   
    Olá pessoal tudo bem? sou novo aqui no fórum, mais vou tentar ajudar um pouco com meu conhecimento  
    Hoje estarei trazendo para vocês um script que todos tem vontade de ter(eu acho) HUAHAUHAUH
    quando você entra naquele baiak e digita !autoloot e ve aquele scriptzão de pega loot e fica com vontade de ter,
    hoje estarei trazendo ele aqui pra vocês:
     

     
    Primeiramente o sistema é contido em 3 arquivos(Talkactions,creaturescripts,login.lua)
     
    Vamos começar pelo talkactions!
     
    Em talkactions.xml adicione a seguinte tag:
    <talkaction words="!autoloot" event="script" value="Auto Loot.lua"/> Agora vá na pasta talkactions/scripts e crie 1 arquivo chamado Auto Loot.lua e nele adicione o seguinte codigo:
    function ExistItemByName(name) -- by vodka local items = io.open("data/items/items.xml", "r"):read("*all") local get = items:match('name="' .. name ..'"') if get == nil or get == "" then return false end return true end local function getPlayerList(cid) local tab = {} if getPlayerStorageValue(cid, 04420021) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420021)) end if getPlayerStorageValue(cid, 04420031) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420031)) end if getPlayerStorageValue(cid, 04420041) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420041)) end if getPlayerStorageValue(cid, 04420051) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420051)) end if #tab > 0 then return tab end return false end local function addToList(cid, name) local itemid = getItemIdByName(name) if getPlayerList(cid) and isInArray(getPlayerList(cid), itemid) then return false end if getPlayerStorageValue(cid, 04420021) == -1 then return doPlayerSetStorageValue(cid, 04420021, itemid) elseif getPlayerStorageValue(cid, 04420031) == -1 then return doPlayerSetStorageValue(cid, 04420031, itemid) elseif getPlayerStorageValue(cid, 04420041) == -1 then return doPlayerSetStorageValue(cid, 04420041, itemid) elseif getPlayerStorageValue(cid, 04420051) == -1 then return doPlayerSetStorageValue(cid, 04420051, itemid) end end local function removeFromList(cid, name) local itemid = getItemIdByName(name) if getPlayerStorageValue(cid, 04420021) == itemid then return doPlayerSetStorageValue(cid, 04420021, -1) elseif getPlayerStorageValue(cid, 04420031) == itemid then return doPlayerSetStorageValue(cid, 04420031, -1) elseif getPlayerStorageValue(cid, 04420041) == itemid then return doPlayerSetStorageValue(cid, 04420041, -1) elseif getPlayerStorageValue(cid, 04420051) == itemid then return doPlayerSetStorageValue(cid, 04420051, -1) end return false end function onSay(cid, words, param) if param == "" then local fi = getPlayerStorageValue(cid, 04420021) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420021)) or "" local se = not vip.hasVip(cid) and "Não disponível para free account" or getPlayerStorageValue(cid, 04420031) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420031)) or "" local th = not vip.hasVip(cid) and "Não disponível para free account" or getPlayerStorageValue(cid, 04420041) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420041)) or "" local fo = not vip.hasVip(cid) and "Não disponível para free account" or getPlayerStorageValue(cid, 04420051) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420051)) or "" local stt = getPlayerStorageValue(cid, 04421011) == 1 and "sim" or "não" local str = getPlayerStorageValue(cid, 04421001) == 1 and "sim" or "não" doPlayerPopupFYI(cid, "{Auto-Loot} ---Menu Auto Loot do jogador\n{Auto-Loot} ----------------\n{Auto-Loot} ---Coletar dinheiro: "..stt..". Para ligar/desligar: !autoloot gold \n{Auto-Loot} ---Coletar itens únicos: "..str..". Para ligar/desligar: !autoloot power\n{Auto-Loot} --Configuração dos slots:\n{Auto-Loot} ---Slot 1: "..fi.."\n{Auto-Loot} ---Slot 2: "..se.."\n{Auto-Loot} ---Slot 3: "..th.."\n{Auto-Loot} ---Slot 4: "..fo.."\n{Auto-Loot} ---Para adicionar um novo item aos slots: !autoloot add, <nome do item>\n{Auto-Loot} ---Para retirar um item dos slots: !autoloot remove, <nome do item>\n{Auto-Loot} ---Para limpar todos os slots utilize: !autoloot clear\n{Auto-Loot} ---Para informações de quanto você já fez utilizando a coleta de dinheiro, use: !autoloot goldinfo\n\nSe seu autoloot bugar use !autoloot desbug\n\n{Auto-Loot} ----------------") return true end local t = string.explode(param, ",") if t[1] == "power" then local check = getPlayerStorageValue(cid, 04421001) == -1 and "ligou" or "desligou" doPlayerSetStorageValue(cid, 04421001, getPlayerStorageValue(cid, 04421001) == -1 and 1 or -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você "..check.." o auto loot.") elseif t[1] == "gold" then local check = getPlayerStorageValue(cid, 04421011) == -1 and "ligou" or "desligou" doPlayerSetStorageValue(cid, 04421011, getPlayerStorageValue(cid, 04421011) == -1 and 1 or -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você "..check.." a coleta de dinheiro.") doPlayerSetStorageValue(cid, 04421021, 0) elseif t[1] == "goldinfo" then local str = getPlayerStorageValue(cid, 04421011) == -1 and "O sistema de coleta de dinheiro está desligado" or "O sistema já coletou "..getPlayerStorageZero(cid, 04421021).." gold coins" doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str) elseif t[1] == "add" then if ExistItemByName(t[2]) then local item = getItemIdByName(t[2]) if isInArray({2160, 2148, 2152}, item) then return doPlayerSendCancel(cid, "Você não pode adicionar moedas no autoloot. Para coletar dinheiro use !autoloot gold") end if vip.hasVip(cid) then if getPlayerStorageValue(cid, 04420011) < 3 then if addToList(cid, t[2]) then doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." adicionado à sua lista do auto loot! Para ver sua lista diga !autoloot list") else doPlayerSendCancel(cid, t[2].." já está em sua lista!") end else doPlayerSendCancel(cid, "Sua lista já tem 4 itens! Você deve remover algum antes de adicionar outro.") end else if getPlayerStorageValue(cid, 04420011) == -1 then if addToList(cid, t[2]) then doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." adicionado à sua lista do auto loot! Para ver sua lista diga !autoloot") else doPlayerSendCancel(cid, t[2].." já está em sua lista!") end else doPlayerSendCancel(cid, "Você já tem um item adicionado no auto loot! Para adicionar outro, você deve remover o item atual.") end end else doPlayerSendCancel(cid, "Este item não existe!") end elseif t[1] == "remove" then if ExistItemByName(t[2]) then if removeFromList(cid, t[2]) then doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) - 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." removido da sua lista do auto loot!") else doPlayerSendCancel(cid, "Este item não está na sua lista!") end else doPlayerSendCancel(cid, "Este item não existe!") end elseif t[1] == "clear" then if getPlayerStorageValue(cid, 04420011) > -1 then doPlayerSetStorageValue(cid, 04420011, -1) doPlayerSetStorageValue(cid, 04420021, -1) doPlayerSetStorageValue(cid, 04420031, -1) doPlayerSetStorageValue(cid, 04420041, -1) doPlayerSetStorageValue(cid, 04420051, -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Lista limpa!") else doPlayerSendCancel(cid, "Sua lista ja esta limpa!") end elseif t[1] == "desbug" or t[1] == "desbugar" then doPlayerSetStorageValue(cid, 04420011, -1) doPlayerSetStorageValue(cid, 04420021, -1) doPlayerSetStorageValue(cid, 04420031, -1) doPlayerSetStorageValue(cid, 04420041, -1) doPlayerSetStorageValue(cid, 04420051, -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Desbugado!") elseif t[1] == "list" then local fi = getPlayerStorageValue(cid, 04420021) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420021)).."\n" or "" local se = getPlayerStorageValue(cid, 04420031) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420031)).."\n" or "" local th = getPlayerStorageValue(cid, 04420041) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420041)).."\n" or "" local fo = getPlayerStorageValue(cid, 04420051) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420051)).."\n" or "" doPlayerPopupFYI(cid, "O sistema auto loot está coletando:\n "..fi..""..se..""..th..""..fo) end return true end Lembrando esse script libera dois slots de autoloot pra free account e quatro slots para vip account, o sistema configurado nele é o vipSystemByMock caso use um script diferente basta alterar função vip.hasVip(cid)
     
    Vamos continuar?
    Próximo passo vamos adicionar o creaturescripts!
     
    Na pasta creaturescripts, abra o creaturescripts.xml e adicione a seguinte tag:
    <event type="kill" name="autoloot" event="script" value="Auto Loot.lua"/> Agora dentro da pasta creaturescripts vá ate a pasta scripts e crie um arquivo chamado Auto Loot.lua e adicione o seguinte codigo:
    local aloot_boost = {[2406] = 36, [2537] = 4800, [2377] = 480, [2663] = 600, [2472] = 195000, [2398] = 36, [2475] = 7200, [2519] = 6500, [2497] = 10700, [2523] = 180000, [2494] = 325000, [2400] = 144000, [2491] = 6000, [2421] = 325000, [2646] = 260000, [2477] = 7200, [2413] = 84, [2656] = 18000, [2498] = 52000, [2647] = 600, [2534] = 32500, [7402] = 19500, [2466] = 26000, [2465] = 240, [2408] = 120000, [2518] = 1800, [2500] = 3000, [2376] = 30, [2470] = 91000, [2388] = 24, [2645] = 26000, [2434] = 2400, [2463] = 480, [2536] = 11700, [2387] = 240, [2396] = 4800, [2381] = 240, [2528] = 4800, [2409] = 1800, [2414] = 12000, [2427] = 9000, [2407] = 7200, [2458] = 42, [2383] = 960, [2392] = 3600, [2488] = 18000, [2525] = 120, [2423] = 240, [7382] = 13000, [2462] = 1300, [2520] = 39000, [2390] = 180000, [2417] = 72, [2436] = 1200, [5741] = 52000, [2378] = 120, [2487] = 24000, [2476] = 6500, [8891] = 36000, [2459] = 36, [2195] = 52000, [2391] = 7200, [2464] = 120, [8889] = 72000, [2432] = 13000, [2431] = 108000, [2492] = 52000, [2515] = 240, [2430] = 2400, [2393] = 13000, [7419] = 36000, [2522] = 130000, [2514] = 65000} local function getPlayerStorageZero(cid, storage) -- By Killua local sto = getPlayerStorageValue(cid, storage) if tonumber(sto) then return tonumber(sto) > tonumber(0) and tonumber(sto) or tonumber(0) end return tonumber(0) end local tabela = {} local function getPlayerList(cid) local tab = {} if getPlayerStorageValue(cid, 04420021) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420021)) end if getPlayerStorageValue(cid, 04420031) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420031)) end if getPlayerStorageValue(cid, 04420041) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420041)) end if getPlayerStorageValue(cid, 04420051) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420051)) end if #tab > 0 then return tab end return {} end local function boost(cid) return tonumber(getPlayerStorageValue(cid,722381)) >= os.time() end local function autoLoot(cid, pos) if not isPlayer(cid) then return end local check = false local str = "" local position = {} for i = 1, 255 do pos.stackpos = i if getThingFromPos(pos).uid and getThingFromPos(pos).uid > 0 and isContainer(getThingFromPos(pos).uid) then position = pos check = true break end end if check then local corpse = getContainerItemsInfo(getThingFromPos(position).uid) if corpse then for index, info in pairs(corpse) do if index < countTable(corpse) then if info.uid and info.itemid then if isContainer(info.uid) then local bag = getContainerItemsInfo(info.uid) for i = 1, countTable(bag) do if isInArray(getPlayerList(cid), bag[i].itemid) then if bag[i].quant > 1 then doRemoveItem(bag[i].uid, bag[i].quant) doPlayerAddItem(cid, bag[i].itemid, bag[i].quant) str = str.." "..bag[i].quant.." "..getItemNameById(bag[i].itemid).." +" else doRemoveItem(bag[i].uid) if boost(cid) then if aloot_boost[bag[i].itemid] then doPlayerSetBalance(cid,getPlayerBalance(cid) + aloot_boost[bag[i].itemid]) str = str.." 1 "..getItemNameById(bag[i].itemid).." ("..aloot_boost[bag[i].itemid].."gp no banco) +" else doPlayerAddItem(cid, bag[i].itemid, 1) str = str.." 1 "..getItemNameById(bag[i].itemid).." +" end else doPlayerAddItem(cid, bag[i].itemid, 1) str = str.." 1 "..getItemNameById(bag[i].itemid).." +" end end end end end end end if isInArray(getPlayerList(cid), info.itemid) then if info.quant > 1 then doRemoveItem(info.uid, info.quant) doPlayerAddItem(cid, info.itemid, info.quant) str = str.." "..info.quant.." "..getItemNameById(info.itemid).." +" else doRemoveItem(info.uid) if boost(cid) then if aloot_boost[info.itemid] then doPlayerSetBalance(cid,getPlayerBalance(cid) + aloot_boost[info.itemid]) str = str.." 1 "..getItemNameById(info.itemid).." ("..aloot_boost[info.itemid].."gps no banco) +" else doPlayerAddItem(cid, info.itemid, 1) str = str.." 1 "..getItemNameById(info.itemid).." +" end else doPlayerAddItem(cid, info.itemid, 1) str = str.." 1 "..getItemNameById(info.itemid).." +" end end end end end end setPlayerTableStorage(cid,822564,{[1] = str, [2] = 0}) end local function autoGold(cid, pos) if not isPlayer(cid) then return end local check = false local total = 0 local position = {} for i = 1, 255 do pos.stackpos = i if getThingFromPos(pos).uid and getThingFromPos(pos).uid > 0 and isContainer(getThingFromPos(pos).uid) then position = pos check = true break end end if check then local corpse = getContainerItemsInfo(getThingFromPos(position).uid) if corpse then for index, info in pairs(corpse) do if info.uid and info.itemid then if index < countTable(corpse) then if isContainer(info.uid) then local bag = getContainerItemsInfo(info.uid) for i = 1, countTable(bag) do if isInArray({2148, 2152, 2160}, bag[i].itemid) then local multiplie = 1 if bag[i].itemid == 2148 then multiplie = 1 elseif bag[i].itemid == 2152 then multiplie = 100 elseif bag[i].itemid == 2160 then multiplie = 10000 end doRemoveItem(bag[i].uid, bag[i].quant) doPlayerSetBalance(cid, getPlayerBalance(cid) + tonumber(bag[i].quant) * multiplie) total = total + bag[i].quant * multiplie doPlayerSetStorageValue(cid, 04421021, tonumber(getPlayerStorageZero(cid, 04421021)) + tonumber(info.quant) * tonumber(multiplie)) end end end end if isInArray({2148, 2152, 2160}, info.itemid) then local multiplie = 1 if info.itemid == 2148 then multiplie = 1 elseif info.itemid == 2152 then multiplie = 100 elseif info.itemid == 2160 then multiplie = 10000 end doRemoveItem(info.uid, info.quant) doPlayerSetBalance(cid, getPlayerBalance(cid) + info.quant * multiplie) doPlayerSetStorageValue(cid, 04421021, tonumber(getPlayerStorageZero(cid, 04421021)) + tonumber(info.quant) * tonumber(multiplie)) total = total + info.quant * multiplie end end end end end if total > 0 then total = total - (total * 0.2) total = math.ceil(total) doPlayerSetBalance(cid,getPlayerBalance(cid) + total) local tab = getPlayerTableStorage(cid,822564) tab[2] = total setPlayerTableStorage(cid,822564,tab) end end local function sendMsg(cid) if not isPlayer(cid) then return end local tab = getPlayerTableStorage(cid,822564) if countTable(tab) >= 1 then if tab[1] then if tab[2] and tab[2] > 0 then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "[Auto Loot System] Coletados: ".. tab[1] .." ".. tab[2] .." gold coins.") else if type(tab[1]) == "string" and string.len(tab[1]) > 1 then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "[Auto Loot System] Coletados: "..tab[1]) end end elseif not tab[1] then if tab[2] then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "[Auto Loot System] Coletados: "..tab[2].." gold coins.") end end end doPlayerSetStorageValue(cid,822564,-1) end function onKill(cid, target, lastHit) if isPlayer(cid) and isMonster(target) then if getPlayerStorageValue(cid, 04421001) == 1 and #getPlayerList(cid) > 0 then local pos = getCreaturePosition(target) addEvent(autoLoot, 500, cid, pos) end if getPlayerStorageValue(cid, 04421011) == 1 then local pos = getCreaturePosition(target) addEvent(autoGold, 540, cid, pos) end if getPlayerStorageValue(cid, 04421001) == 1 or getPlayerStorageValue(cid, 04421011) == 1 then addEvent(sendMsg, 560, cid) end end return true end  
    E por fim ainda dentro da pagina scripts procure o arquivo login.lua e registre a seguinte tag:
     
    registerCreatureEvent(cid, "autoloot") registerCreatureEvent(cid, "Auto Loot")  
    Créditos: Killua - Vitor cardoso bertolucci
     
    Obrigado a todos e até a próxima!
    JNetworks.com.br
     
     

    Jnetworks agradece a preferência!
     
     
     
    Está querendo abrir 1 OTServer e não sabe onde hospedar?
    Acesse: JNetworks.com.br
    Instalamos seu OTServer apartir da contratação de 3GB de ram!
  3. Curtir
    Pepeco deu reputação a Cat em Como usar Map generator   
    Map Generator: Gerar minimap e transformar em .otbm
         O Map Gen, como é conhecido, está disponível em duas versões. É possível criar um minimap baseando-se em fatores como tamanho, temperatura e umidade usando o software feito pelo Hempuli; Essa imagem pode ser convertida em .otbm e em pouco tempo você tem em mãos um continente com piso e bordas prontinho para uso. O outro programa, um pouco mais complexo, possibilita fazer tudo isso que o primeiro faz e mais, gerar montanhas com vários andares, adicionar natureza e outros detalhes no mapa automaticamente.
     
    Vantagens:
    - Programa leve e fácil de manusear.
    - Formatos e bordas customizados requerem habilidade e tempo do mapper, o Map Gen faz isso em segundos.
    - Os formatos obtidos através dos fatores de autenticação são bonitos e complexos ou seja, nas mãos de um mapper habilidoso serviriam muito mais do que uma base.
     
    Desvantagens:
    - A ferramenta só gera até determinado tamanho, é preciso mesclar vários shapes ou editar a mão se quiser fazer continentes maiores. É recomendado apenas para ilhas e continentes de tamanho pequeno-médio.
    - Criatividade: Sem o uso do Map Gen, você além de praticar mais pode criar formatos que o software não pode, você é a melhor ferramenta.
     
     
     
    DOWNLOADS
     
     
     
     
    TUTORIAL - Hempuli's Map Gen + Tibia King Map Shape
         O HMG é totalmente feito por MMF2, mas deve funcionar no Clickteam Fusion 2.5, supondo que você tenha os plugins necessários. Há um executável agradável incluído, por isso, não possuir o MMF2 / CF2.5 não impede que você brinque com o gerador!
         Vamos começar? Abra o Hempuli's Map Gen e siga as orientações da imagem abaixo:
     
    PARTE 01 - Configurações

     
    a. - Montante/Altura: Esta opção é para definir a altura e a proporção, se for configurado com mais altura, o terreno terá mais "gelo" do interior para o exterior e também será mais largo. Se tiver menos altura, o terreno será mais baixo e sem gelo.
    Exemplo:
     
     
     
    b. - Montante/Temperatura: Esta é para fazer a mesclagem com base na temperatura, se for menor terá mais gelo, se for maior e a altura também, o gelo vai mesclar com o verde.
    Exemplo:
     
     
     
    c. - Montante/Chuva: Aqui irá definir os "períodos de chuva", teoricamente falando. Se o terreno será molhado ou bem seco externamente.
    Exemplo:
     
     
     
    d. - Alcance/Largura: O espaço que o terreno vai ocupar, se será uma ilha pequena ou extensa.
    Exemplo:
     
     
     
    e. - Alcance/Temperatura: Mesma função da temperatura em montante.
    Exemplo:
     
     
     
    f. - Alcance/Chuva: Do mesmo modo que em montante, porém internamente.
    Exemplo:
     
     
    g. - Força/Tamanho: Aqui vai definir se o terreno será mais largo e achatado, ou se ele será mais suave e delicado. Também se aplica a altura e largura.
    Exemplo:
     
     
     
    h. - Força/Temperatura: Esta opção vai tratar da intensidade da temperatura (conforme a configuração, mesmo que as três temperaturas sejam altas pode ser que tenha gelo no meio, então é bom ajustar as chuvas caso você queira 0% de gelo)
    Exemplo:
     
     
     
    i. - Força/Chuva: Da mesma forma que nas outras configurações, essa opção vai tirar o verde do terreno, mas terão poças de água localizadas do centro para fora.
    Exemplo:
     
     
     
     
    PARTE 02 - Menus

     
    1. - Clique para gerar um novo terreno conforme muda as configurações na lateral.
    2. - Vai criar terrenos aleatórios, porém aproximando-se das configurações da lateral.
    3. - Mostra o terreno em formato de minimap (padrão)
    4. - Mostra em partículas dispersas, divididas em cores, todas as configuração aplicadas.
    5. - Na cor vermelha, mostra as proporções do tamanho do terreno.
    6. - Na cor verde, mostra as proporções da temperatura do terreno.
    7. - Na cor azul, mostra as proporções da chuva no terreno.
    8. - Copia a imagem para ser salva. Utilize o paint (Win + R: mspaint) para salvá-la ou editá-la se necessário
     
     
    Após finalizar a criação do terreno, utilize o Tibia King Map Shape para transformar em .otbm.
    Video-tutorial abaixo:
     
     
    Dica: Com o mapa aberto, vá em edit - border options - borderize map para adicionar as bordas nos pisos automaticamente. Depois disso faça uma revisão e sucesso!
    Vou deixar para falar sobre o Inconssecus Map Gen mais tarde, pois ainda está em demo. Você pode testá-lo neste link.
     
     
  4. Curtir
    Pepeco deu reputação a Ryzor em POO em Lua   
    POO – Programação Orientada a Objeto
    (em Lua)

    Sei que tem muita gente querendo aprender ou com dúvida sobre POO, para quem programa em lua para otservers casualmente vai ser estranho e talvez até desnecessário, mas pra quem quer se tornar um futuro programador ou até mesmo acumular mais conhecimento, é mais do que necessário !


    Porque Aprender ?

    Certo, você aprende o que é POO, sabe aplicar sem dificuldades em lua, mas e ai... onde usar ? Bem, isso depende muito do que você quer, em lua, ao contrário de algumas linguagens, não é necessário saber POO para se programar, mas nada impede de você usá-lo e tornar seu código mais bonito, organizado e de fácil manutenção (Que são algumas das características da POO), resumindo, aprende quem quiser.

    Nota Importante: A POO em lua não é realmente POO - mas, como assim ? - Lua não é naturalmente Orientada a Objetos, porque se caso fosse você já saberia. Em Lua é feita uma "simulação" usando meta tabelas - Mas, OMG, como assim ? meta tabelas ? - calma, calma, isso eu já explico vamos por partes.



    Classe

    Definição: Classe é onde fica armazenado atributos, métodos, é onde tudo acontece na Orientação a Objetos.
    Pense em classe como se fosse uma receita, algo que armazena todas as informações como se fosse uma ficha técnica, trazendo mais para a realidade, pense em classe como nós, seres humanos ou um computador, uma televisão, uma cama, um instrumento musical, cada um tem suas informações próprias e ações próprias.



    Exemplo:

    Código:

    Classe TV Informações/Atributos: Polegadas: 29 Marca: Philips Canal: 31 Ligada: Sim Volume: 35% Ações/Métodos: Ligar Desligar Mudar de Canal Diminuir Volume Aumentar Volume Entendeu ? Isso seria uma ficha técnica de alguma televisão qualquer, e quais ações essa determinada televisão possui, onde informações é a mesma coisa que atributos na POO e métodos é a mesma coisa que ações. Agora vamos trabalhar nessa classe... Vamos começar a escrevê-la usando Lua: Código: TV = {} function TV:new() return setmetatable({}, { __index = self }) end Nota: Explicarei com mais detalhes sobre a função setmetatable() e seus usos em outro tutorial(eu acho), por enquanto use-a dessa maneira Agora é o momento que você olha isso e pergunta - Mas, porque essa tabela ai no começo ? porque usar dois-pontos ? porque new ? Como dito anteriormente, Lua é uma simulação de POO, ou seja, você não vai programar exatamente dessa maneira caso fosse programar em Java, C++, Ruby ou qualquer outra linguagem OO. Mas explicando o porque de cada um: Código: TV = {} Basicamente, essa tabela é onde irá ficar armazenada as informações da classe. Código: function TV:new() return setmetatable({}, { __index = self }) end Entenda TV:new como sendo Classe:método, onde TV é a nossa classe e new é o nosso método e nosso construtor, esse método é o primeiro a ser chamado, é ele que vai construir nossa classe (por isso que se chama construtor).
    Atributo Atributo são as características, as informações de um determinado objeto (não pense em objeto como um computador ou uma mesa, mas sim como qualquer coisa, até seres vivos). Exemplo: Como dito anteriormente, nossa classe possui esses atributos: Código: Polegadas: 29 Marca: Philips Canal: 31 Ligada: Sim Volume: 35% Agora vamos tentar passá-las a lua e adicionar na classe: Código: TV = {} function TV:new(marca, polegadas) return setmetatable({ ligada = true, polegadas = polegadas, volume = 5, canal = 31, marca = marca}, { __index = self }) end Certo, definimos os atributos e quais que queremos que possam ser modificados de começo, agora mais uma explicação aprofundada parte-a-parte: Código: function TV:new(marca, polegadas) return setmetatable({ligada = true, polegadas = polegadas, volume = 5, canal = 31, marca = marca}, { __index = self }) end Onde está colorido possui o mesmo valor, ou seja, se você definir posteriormente marca como LG, ficará: Código: marca = "LG" Para adicionar mais atributos, é só adicionar mais um parâmetro na função (se necessário) e adicionar mais um item na tabela, sendo que o "nome" pode ser qualquer coisa, não precisa necessariamente ser o mesmo nome do atributo, por exemplo, poderia ser assim ao invés do exemplo acima: Código: function TV:new(marca, polegadas) return setmetatable({lig = true, poleg = polegadas, vol = 5, cal = 31,mc = marca}, { __index = self }) end Única coisa que mudaria, seria que ao invés de ser "marca" seria "mc". Lembrando que todos os atributos poderão ser chamados depois. Métodos Métodos são as ações (como dito anteriormente) que podem ser feitas pelo objeto e também são os métodos que automatizam algumas coisas na classe. Exemplo: Como dito anteriormente, a classe possui esses métodos: Código: Ligar Desligar Mudar de Canal Diminuir Volume Aumentar Volume Vamos adicioná-las na classe sem colocar instrução dentro por enquanto: Código: TV = {} function TV:new(marca, polegadas) return setmetatable({ligada = true, polegadas = polegadas, volume = 5, canal = 31, marca = marca}, { __index = self }) end function TV:Ligar() -- Ligar a TV end function TV:Desligar() -- Desligar a TV end function TV:setCanal() -- Mudar de Canal end function TV:setVolume() -- Definir Volume end Porque eu coloquei apenas “setVolume()” ao invés de 2 métodos, um para aumentar e outro para abaixar ? Deixando dessa maneira você pode fazer as duas coisas em um método só ! Agora como cada um é um método da classe, é só adicionar a instrução de cada um: Método TV:setCanal() por exemplo: Código: function TV:setCanal(novocanal) -- Mudar de Canal self.canal = novocanal end TV:setCanal é uma função como qualquer outra, ele tem que simplesmente trocar o canal da televisão. Mas ai você pergunta – e esse "self" ai ? Da onde ele vem ? O que ele é ? - Simples, self se refere a nossa classe (self traduzido, seria algo como "eu", "próprio"), o self seria uma forma de se referir a classe, acessar os atributos e usá-los. Lembre-se, como o self se refere a própria classe, você só pode utilizá-lo em métodos de classe ! Simplificando, usando palavras e cores, o que a função vai fazer é acessar o atributo canal da classe e definir seu valor para o mesmo valor de novocanal E Você pode usar o self tanto para acessar atributos quanto para criar novos a partir de métodos, Simples não ? Depois de definir a instrução de todos os métodos, a classe ficou dessa maneira: Código: TV = {} function TV:new(marca, polegadas) return setmetatable({ligada = true, polegadas = polegadas, volume = 5, canal = 31, marca = marca}, { __index = self }) end function TV:Ligar() -- Ligar a TV self.ligada = true end function TV:Desligar() -- Desligar a TV self.ligada = false end function TV:setCanal(novocanal) -- Mudar de Canal self.canal = novocanal end function TV:setVolume(novovolume) -- Definir Volume self.volume = novovolume end Agora vamos testá-la ! Essa parte fica a seu critério de como fazer o teste, a classe pode estar tanto no mesmo arquivo quanto em outro (ai é necessário chamar usando a função dofile()) O teste é simples, vai ser criado uma nova TV e definida a uma variavel, em seguida será exibido as informações da TV depois modificadas e exibidas novamente: Código: TV = {} function TV:new(marca, polegadas) return setmetatable({ligada = true, polegadas = polegadas, volume = 5, canal = 31, marca = marca}, { __index = self }) end function TV:Ligar() -- Ligar a TV self.ligada = true end function TV:Desligar() -- Desligar a TV self.ligada = false end function TV:setCanal(novocanal) -- Mudar de Canal self.canal = novocanal end function TV:setVolume(novovolume) -- Definir Volume self.volume = novovolume end ---- minhatv = TV:new("LG", 29) -- Aqui eu defino que minha marca é LG e polegadas é 29 print("Minha Televisão é da marca " .. minhatv.marca .. ", possui " .. minhatv.polegadas .. " polegadas, está no canal " .. minhatv.canal .. " e volume " .. minhatv.volume .. "%") minhatv:setCanal(73) -- Mudo o canal para 73 minhatv:setVolume(40) -- Mudo o volume para 40 print("Agora minha TV está no canal " .. minhatv.canal .. " e o volume está em " .. minhatv.volume .. "%") minhatv:setVolume(10) -- Mudo o volume para 10 print("Agora minha TV está no canal " .. minhatv.canal .. " e o volume está em " .. minhatv.volume .. "%") minhatv:Desligar() -- Desligo a tv (mesma coisa que minhatv.ligada = false) if (not minhatv.ligada) then -- Se não estiver ligada print("A TV foi desligada") end


    Muito simples, não ?


    Qualquer dúvida ou sugestão sobre o tutorial é só dizer
    Espero ter sido o mais claro possível

    Creditos
    Lwkass

  5. Curtir
    Pepeco deu reputação a vyctor17 em [Show-Off] Dungeon room   
    Esse tópico é só um show-off de um sistema que estou trabalhando, vou deixar aqui algumas utilidades praticas do mesmo e gostaria de sugestões e ideias para utilizá-lo de maneira criativa.
     
    Basicamente, é um sistema que pode gerar um mapa em uma posição definida, e pode trocar o mapa na mesma posição por outro, possibilitando a criação de salas "infinitas" sobe demanda de players para dungeons(por exemplo a dz da pxg tem um numero limitado de salas, com um sistema parecido essas salas poderão ser geradas dinamicamente), quests, salas de HUNT privadas ou qualquer outro sistema que precisa de um mapa especifico para funcionar, o mapa é alocado em tempo real em segundos. no vídeo abaixo preste atenção no minimapa.
     
     
    PEQUENO VIDEO DE UPDATE MOSTRANDO DOIS CLIENTES EM SALAS INDIVIDUAIS AO MESMO TEMPO:
     
     
  6. Curtir
    Pepeco deu reputação a FlameX em Anoyns Magebomb v11.0 FREE   
    Então galera, hoje decidi postar o Anoyns Magebomb, já que não estou usando ele mesmo, e não quero deixar ele mofando aqui...
     

     

     
    Download : Clique Aqui
    SCAN : CLIQUE AQUI
     
  7. Curtir
    Gesior 1.2 Premium Pack - TFS [1.x / OTX]
     
    Changelog 1.1
    • Layout do tibia 2017 atualizado • ANTI SQL INJECTION • Site 100% seguro • Aba de Teamspeak configuravel • Pagina de Download com mais facilidade • Adicionada Pagina "Change Name" • Correção da página "Donate" • Adicionado metodos de pagamento como Pagseguro, Paypal, Deposito em conta e Picpay(Configuravel) • Site já vem com contador regressivo configuravel • Remoção de algumas paginas por ter falha de segurança. • Corrigido criação de contas • Corrigido pasta cache • Pagina de Prey, Reward e Imbuing • Cast System. • Login.php atualizado  
                                                                                                                             SCAN:
     
                                                                                                                         DOWNLOAD
     
                                                                                                                            Creditos
     
                                                                                                       ADM Argel, Qwizer, Gesior, Erimyth
     




  8. Curtir
    Pepeco deu reputação a Swiruseq69 em NRTN Template   
    Preview

     
    ___________________________________________________
     
    Créditos
    Azuu
    TenTypSwir
    ___________________________________________________
     
    Scan
    https://www.virustotal.com/#/file/580c501a5e3b2aa8f29888873a92660d7b6bdb94f99893cbf1eb73e17b9ade52/detection
     
    Download
    nrtn_layout.tgz
  9. Curtir
    Pepeco deu reputação a Dyego em Zenfia Online Mapping   
    Zenfia Online Project - O Jogo se Passa na Era Medieval, queremos trazer um Jogo com RPG, novos gráficos, muitas quests e sistemas
    Quem puder e quiser contribuir com Sprites, irá ajudar muito, eu estou desenvolvendo o jogo sozinho, tudo do zero, dat, spr, items.otb e o mapa
    Vou ir atualizando o tópico conforme o progresso, no momento está no ínicio hehe, ajudem pessoal com Sprites rs
    Todas as Sprites do Jogo foram doadas.

     

     
     
  10. Curtir
    Pepeco deu reputação a esnio12 em Adventurer's World   
    Olá a todos, venho aqui mostrar um novo projeto que estou desenvolvendo com alguns sistemas
    Trata-se de um Projeto RPG Survival/Adventurer, onde o seu esforço será necessário para progredir, O servidor conta com um sistema de SOM feito e disponibilizado para todos pelo vyctor17, apenas peguei o sistema e modifiquei algumas linhas e funções, o projeto ainda está no começo, meu objetivo é tornar o jogo inteiro com som e com RPG, fazendo assim quests que serão fundamentais com som, exemplo: audios pelas cavernas avisando perigo sobre algum boss ou algo do tipo
     
    Aqui está um video de como estão ficando as coisas, só mostrei o basico, ainda irei fazer sistemas de interações com o cenario, no qual magias destruirão o cenario ou modificarão, será um jogo totalmente personalizado por dentro pelos jogadores.
     
     
     
    Antes que me perguntem!
    Sim, será possivel desativar o som, afinal nem todo mundo é acostumado a jogar tibia com som hahaha
    Terá opções de desativar partes do som
    Exemplo: Desativar sómente som dos items, só do ambiente, das criaturas, das magias, etc.
     
    E antes que perguntem, terão sons individuais, que só o propio jogador escutará e terão sons coletivos, que todos na tela escutarão.
    É um projeto que começou dia 11/03/2017
     
     
    Atualizações 17/03/2017 - Interaction System
     
    É um sistema no qual os jogadores poderão interagir com o cenario, destruindo paredes, abrindo passagem secretas, entre outros
     
    Atualizações 23/03/2017 - Foi remodelado as sprites de cenarios, novas sprites de interação de cenario sendo adicionadas, no video abaixo segue uma skill de Barbarian na qual uge um grito afetando os usuarios ao redor com tonturas e dano, também pode ser utilizado no ambiente, PS: A magia do Barbarian ainda não foi implementada o som.
    Atualizações 07/04/2017 - Novos bosses adicionados, sistemas de interações e mudanças de padrões dos bosses com o decorrer dos danos.
    Atualizações 11/04/2017 - Novo Boss Adicionado, modificação de padrões de dano com o decorrer da vida do boss.
    Atualização dia 18/02/2018 - Climatic System
     
  11. Gostei
    Pepeco recebeu reputação de gabriel28 em Mining system   
    • Mining System •
    Vim aqui disponibilizar o mining, não é tão avançado como o de outros mas ele é totalmente automático tanto para colocar items quanto para vender os items (alavanca). É uma script simples e fácil de entender, podendo ter alterações com pessoas que não tem muito experiencia em lua. Mesmo que ele seja simples, o forum esta morrendo, pretendo fazer updates nele, caso alguém tenha alguma ideia do que possa fazer, só deixar um comentário.
     
    • Explicação •
    › Mining_Config
    config = { Level = 8, Axe_Skill = 10, Paredes = {5646,5640,5645,5639,5644,5648}, } -- Level = Level necessario para minerar -- Axe_Skill = Skill de axe necessaria para poder minerar -- Paredes = Paredes que vao ser mineradas › Mining_Items
    config = { [1] = {Item = 2157, Random_min = 1, Random2_min = nil, Random_max = 3, Random2_max = nil, Count = 2, Special_Storage = nil, Magic_Effect = nil, Count_Shop = nil, Money_Shop = nil}, -- Gold Nugget } -- Random_min = A chance de cair o item em math.random -- Random2_min = Essa chance é menor, ou seja, mais dificil de cair. -- Random_max = É a chance maxima -- Random2_max = A mesma coisa que o de cima -- Count = A quantidade maxima que pode cair, é aleatorio -- Special_Storage = Caso voce queira que de alguma storage, para ver quantos players ja conseguiram e etc.. -- Magic_Effect = Caso queira que de algum magic effect diferente, se for nil, será o padrao. -- Count_Shop = Quantidade necessaria para poder vender o item no shop (alavanca) -- Money_Shop = Quanto que o item vai custar, por unidade ou seja, se eu colocar Count_Shop = 100 e Money_Shop = 2000, vai ser 100 * 2000. -- No final que tem esse "--" é o nome do item, é melhor se organizar assim, pois se ficar muitos items e voce querer fazer alguma manutenção, facilita muito.  
    Bom, eu acho que é isso, não tem mais nada para se explicar. Então vamos para o script.
     
    Data/lib
     
    Data/actions/scripts
    Data/actions -- Abra o actions.xml
    <action itemid="id do item" script="nome do arquivo"/>  
    Data/actions/scripts -- Esse aqui é o shop, não é obrigatório.
    Data/actions -- Abra o actions.xml
    <action actionid="id da action" script="nome do arquivo"/>  
    Caso tenha gostado, deixe seu REP+, ajuda e motiva muito trazer conteúdo para o forum.
     
  12. Curtir
    Pepeco recebeu reputação de DiigooMix em (Resolvido)É possível fazer com que uma looktype dê atributos?   
    Sim

    Enviado de meu Moto G (5) usando Tapatalk

  13. Gostei
    Pepeco deu reputação a Lucce em Equipe ELSUN RPG   
    Bom dia, boa tarde ou boa noite para vocês pessoal !!
     
     
    Venho aqui apresentar um trabalho que estou tentando formar mas com muito sacrifício e com o grande problema de ser leigo no quesito "programação". Porém, eu tenho algo muito melhor q isso, imaginação.
     
    Enfim, chega de falar de pontos negativos! Vamos mostrar a parte bonita da historia!
     
    Eu sempre quis um jogo onde a base fosse igual a tibia ( que eu sempre achei muito perfeito) mas com uma jogabilidade diferente, com opções beirando ao infinito. Foi assim que Elsun começou. Sendo meio ruim na questão programação (tá já entendi), eu tentei buscar e pedir várias scripts e fui colocando dentro do jogo. Porém é muito grande para uma pessoa só, então venho aqui procurar grandes guerreiros que desejam participar do meu grupo, da minha historia.
     

     
     
    Um pouco do jogo.
    As Vocações
     
    Humanos:




    Os humanos é a raça mais presente dentro do jogo. Suas incríveis capacidades de aprendizagem fizeram com que eles aperfeiçoassem vários tipos de artes e magias.

    Knight:



    São cavaleiros que além de ter força física e aguentar muito dano também são favorecidos por uma magia unica, magia divina.

     Outfit Inicial:

    Outfit Final: 

     

     

     Assassin:



    Uma classe que se esconde facilmente durante uma batalha. Ótima para pegar os inimigos desprevinidos!

    Outfit Inicial: 

     

    Outfit Final: 

     

    Sorcerer:

     



    Os grandes magos, que estudam muito para serem fortes e resistentes. Não é nada fácil a vida de um mago, porém isso faz com que eles sejam sempre muito sábios para tomar uma boa decisão!

    Outfit Inicial: 

     

    Outfit Final: 

     

    Druid:

     



     

    Os magos que defendem as florestas e seus animais. Fazem um pacto com especies diferentes e podem se transformar nelas e ganham os aspectos delas aumentados por causa do seu magic level, como a defesa de um urso, a velocidade de um tigre, a força de um lobo...

    Outfit Inicial: 

     

    Outfit Final: 

     

    Summoner:



    Ao contrário dos druids, que usam os animais, essa classe usa os elementos forçando-os a ajuda-los. Onde eles sumonam até 3 monstros elementais e controlam-os e curam-os. Não usa nem um tipo de arma, apenas shields ou spellbooks. Os elementais ficam mais fortes ou mais tanks, de acordo com o quanto ele upe eles com pedras especificas!

     

    Outfit Inicial: 

     

    Outfit Final: 

     

    Hunter:

     



     

    Amantes da tecnologia, essa classe usa tanto adagas quanto arco e flecha. Possuem pets bem treinados que compram nos melhores pet's shops. Diferente dos monstros sumonados pelo Summoner, esses pet's também possuem leveis.

    Outfit Inicial: 

     

    Outfit Final: 

     

    Priest:

     



     

    Grandes sacerdotes da paz, que ajudam seus companheiros curando-os e salvando-os de si mesmos. Porém, a guerra sempre andou próximo da maldição, por isso essa classe também pode ser corrompida.

    Outfit Inicial: 

     

    Outfit Final: 

     

    Barbarian:



     

     

    Uma classe muito brutal, dificilmente terá piedade dos seus inimigos. Possuem uma força absurda, além de magias que são esteroides para eles, ajudando a cura-los ou aumentando as suas forças! 

    Outfit Inicial: 

     

    Outfit Final: 

     

    Warrior:



     

    Diferentemente do Knight, os Warriors não possuem magias que os ajudem na batalha. Mas, não quer dizer que sejam mais fracos. Possuem uma imensa força, além de uma defesa surreal. Suas únicas magias são para ajudar o seu time e para aumentar seu ataque e sua defesa.

    Outfit Inicial: 

     

    Outfit Final: 

     

    Wizard:

     



     

    Diferentemente dos Sorcerers, essa classe já nasceu com o incrível dom da magia. Eles não precisaram estudar anos para aperfeiçoa-la, nem usar objetos para deixa-la mais forte. Porém, há uma maldição que corre no sangue dessa classe e quase sempre não acaba bem! 

    Outfit Inicial: 

     

    Outfit Final: 

     
     
     
    O Cliente
     
     
    Com base no otclient o cliente vai ser mais parecido com o cliente do tibia 11.0. Com alguns sistemas para as nossas áreas de pvp e jogos. Além de vários outros sistemas que só o Otclient disponibiliza 
     

     
     
     
     
     
    Sistemas para deixar o jogo menos cansativo:
    pvp:
     

     
    Além do pvp normal nas cidades/caves/estradas, como no wow, o meu jogo também existiria um sistema "player vs. player" com base no battlefield ou algo parecido.
    No otc com um botão você esperaria numa fila até juntar as 30 pessoas +ou- (você entra num chat onde conversa com outras pessoas na fila e/ou dentro do jogo e nesse chat avisa quantas pessoas faltam para jogar)
    Com premiações de xp e gold! Otima forma para farmar
     
     
     
     
    Dugeons:

    Dugeons são tipo umas quests, locais onde só pode entrar com time. Nessas dugeons aparece monstros mais fortes (elite e até lendários) e com muita quantidade deles.
     
     
     
    Tipos de monstros:

     
     Existem 3 tipos do mesmo monstro.
    Os comuns que são os normais
     
    Os de elite (mais fortes e mais mais agressivos, até mesmo com sua própria raça)
    Antes do nome vem (elite) e com a skull white 
    Ex : (elite) rotworm
     
    Os lendários (os monstros do tipo mais forte que existe, dependendo do monstro, é melhor chamar uma equipe para enfrentá-los)
    Antes do nome vem (legendary) e com a skull black 
    Ex : (legendary) rotworm
     
     Esses monstros são bem mais comuns em dugeons. Porém, eles podem aparecer aleatoriamente também.
     
     
     
     
    Além do enorme número de vocações, pretendo também acrescentar alguns items:
                    
     
    Sprites do :Shikaten
    https://shikaten.deviantart.com/art/A-necromancer-statue-516605401
     
     
     
    Sou bom em fazer scripts e consigo manipular bem o Otclient.
     
    Preciso de:
    Mappers
    Scripters
    Spriters
    Websiters
     
    Enfim, sei que é muita loucura. Mas também sei que é possível com uma equipe boa. Se alguém estiver interessado responda nesse tópico que eu entro em contato ! 
     
     

     

  14. Gostei
    Pepeco recebeu reputação de JcA em Me dê a sua opinião em relação a OTServer Baiak   
    Acho que um baiak low rate seria bom, mas teria que ter um mapa adaptado tbm, nao adianta colocar low rate se o mapa é para high, tipo vip 15 e tals..
    Life padronizado e algumas novidades de monstros tbm.
    Spawn médio, acho que precisa ficar no meio termo do medio e rapido.
    Level maximo de 400 ~ 700
    Acho que o mais dahora é algumas quests que nao faz apenas por fazer, ter alguma coisa por tras, que faz o jogador pensar um pouquinho, como puxar alavanca ou falar com npc, coisas desse tipo, com horario ou acesso, iria valorizar mais.
    Na minha opniao, tibia foi feito para jogar com os amigos, mas nada impede de jogar solo, acho que deveria fazer de uma forma que nao seja possivel fazer solo, principalmente se tiver muitos players, fazer as coisas solo é chato, fica enjoativo, mesmo que o player seja um player solo, criar amizades no servidor valoriza mais para o player o server, mesmo que um pouco. Os itens tem que ser de forma até que rapida ja que é um baiak, os cara nao vao ter paciência de pegar e tals.
    Acho o baiak um servidor muito bem criado, mas tem gente que exagera nas coisas, hunt quadrada e quests bostas sem elaboração, fast attack que quem atacar primeiro mata o outro, nao importando o level, apenas a wand, assim pally e kina nem existem mais, os cara só cria mage por causa do atk das wands, só existe mage em baiak, pq fast attack é muito exagerado, acho que tem que ter sim o fast, mas moderado né...
     
    Obs: Não acho que isso vai ajudar muito no seu servidor, pois a maioria dos players que jogam baiak, nao aceitam coisas que fogem disso, fast attack e exp alta, é foda criar uma coisa que nao seja tao "zuada", acho que se quer aumentar o fast attack, hit, heal... Deveriam criar monstros para isso, para adaptar, demon um monstro tao temido no tibia é morto em 2 seg...
  15. Gostei
    Pepeco recebeu reputação de Makhai Drakon em Mining system   
    • Mining System •
    Vim aqui disponibilizar o mining, não é tão avançado como o de outros mas ele é totalmente automático tanto para colocar items quanto para vender os items (alavanca). É uma script simples e fácil de entender, podendo ter alterações com pessoas que não tem muito experiencia em lua. Mesmo que ele seja simples, o forum esta morrendo, pretendo fazer updates nele, caso alguém tenha alguma ideia do que possa fazer, só deixar um comentário.
     
    • Explicação •
    › Mining_Config
    config = { Level = 8, Axe_Skill = 10, Paredes = {5646,5640,5645,5639,5644,5648}, } -- Level = Level necessario para minerar -- Axe_Skill = Skill de axe necessaria para poder minerar -- Paredes = Paredes que vao ser mineradas › Mining_Items
    config = { [1] = {Item = 2157, Random_min = 1, Random2_min = nil, Random_max = 3, Random2_max = nil, Count = 2, Special_Storage = nil, Magic_Effect = nil, Count_Shop = nil, Money_Shop = nil}, -- Gold Nugget } -- Random_min = A chance de cair o item em math.random -- Random2_min = Essa chance é menor, ou seja, mais dificil de cair. -- Random_max = É a chance maxima -- Random2_max = A mesma coisa que o de cima -- Count = A quantidade maxima que pode cair, é aleatorio -- Special_Storage = Caso voce queira que de alguma storage, para ver quantos players ja conseguiram e etc.. -- Magic_Effect = Caso queira que de algum magic effect diferente, se for nil, será o padrao. -- Count_Shop = Quantidade necessaria para poder vender o item no shop (alavanca) -- Money_Shop = Quanto que o item vai custar, por unidade ou seja, se eu colocar Count_Shop = 100 e Money_Shop = 2000, vai ser 100 * 2000. -- No final que tem esse "--" é o nome do item, é melhor se organizar assim, pois se ficar muitos items e voce querer fazer alguma manutenção, facilita muito.  
    Bom, eu acho que é isso, não tem mais nada para se explicar. Então vamos para o script.
     
    Data/lib
     
    Data/actions/scripts
    Data/actions -- Abra o actions.xml
    <action itemid="id do item" script="nome do arquivo"/>  
    Data/actions/scripts -- Esse aqui é o shop, não é obrigatório.
    Data/actions -- Abra o actions.xml
    <action actionid="id da action" script="nome do arquivo"/>  
    Caso tenha gostado, deixe seu REP+, ajuda e motiva muito trazer conteúdo para o forum.
     
  16. Gostei
    Pepeco deu reputação a Bruno Carvalho em Novidades de Agosto!   
    ESTRUTURA
    Algumas mudanças foram realizadas na estruturação de nosso fórum, sendo elas:
    Os "Projetos Apoiados" foi inteiramente substituído e será adaptado ao nosso novo sistema de Clubes. A seção de destinada a outros jogos (além do Tibia) também será substituída e adaptada ao nosso sistema de Clubes. Todas as áreas envolvendo suporte no fórum foram transformadas em fóruns de perguntas.  
    NOVO VISUAL
    Nosso antigo visual estava nos trazendo alguns problemas relação a compatibilidade e erros na estrutura do fórum, devido a isto tivemos que criar um novo layout baseado no estilo do anterior, porém um pouco mais clean e com várias novidades que suportam nossos novos sistemas. É importante frisar que também trouxemos novas pips (imagens dos cargos dos membros) e um novíssimo sistema de ranks.
     
    RANKS
    Adicionamos um novo e inédito sistema de ranks no TK, agora nossos membros possuem um rank baseado na quantidade de posts que definem um cargo à eles, seu rank pode ser conferido abaixo da sua pip nas informações do seu perfil. Fizemos isso para incentivar a criação e disponibilizamos 20 ranks secretos para serem conquistados por vocês. Vale lembrar que os tanto as novas pips quanto os ranks foram feitos pelo membro @Toony (e a Look) que nos disponibilizou algumas horas de trabalho para fazê-los da maneira que imaginávamos.
     

     
    CLUBES 
    Nós criamos um novo sistema de clubes para apoiar projetos e para membros poderem criar suas próprias áreas de discussões extra fórum. Caso queriam se inteirar e saber mais sobre nosso novo sistema de Clubes e ficarem mais informados sobre criações e suas respectivas regras, acesse o tópico abaixo:
     
    REAÇÕES
    Fizemos algumas mudanças em nosso sistema de reputação, agora ele possuí (como no facebook) e agora elas deixam o fórum um pouco mais legal. Agora as reações positivas irão dar +1 ponto de reputação, as neutras não irão interferir em sua reputação e as negativas irão tirar -1 ponto da sua reputação.
     
    Reações positivas:   
    Reações neutras:   
    Reações negativas: 
     
    CORREÇÕES GERAIS E PLUGINS
    Além disso tudo que já citamos, vários plugins e sistemas do fórum foram devidamente atualizados, além de várias correções de bugs... Corrigimos muitos problemas que o fórum vinha apresentando, muitas mudanças vocês talvez nem irão notar (ou irão, navegando no fórum) e toda essa atualização agora nos trouxe um melhor desempenho em nosso site, enfim, esperamos sempre inovar cada vez mais!
    O sistema de Tópicos Similares está de volta ao fórum; O Número de reputações mostradas no rank passa a ser 5; Adicionado sistema de Leaderboard (membros mais reputados do dia); O Tibia King Plugin agora tem menos recursos e está mais limpo; Novo sistema de promoção que nos integra diretamente ao Facebook; Novos estilos de alerta e mensagens no fórum; Tapatalk foi atualizado e muitos bugs foram corrigidos; Melhora e revisão da tradução PT-BR do fórum; Sistema mobile foi aprimorado e não contém propagandas; Sistema do site foi atualizado para a versão mais recende da IPS; Vários outros sistemas foram revisados/atualizados. Por enquanto é isso galera, esperamos que gostem das novidades e caso encontrem algum problema, por favor nos relate neste mesmo tópico ou para alguém da equipe que iremos resolver-lo o mais rápido possível.
  17. Gostei
    Pepeco deu reputação a darksoulsrpg em Dark Souls RPG - ATS 8.6   
    ~Sumário~
    Apresentação
    Sistemas
    Imagens
    Redes sociais

     
    ~Apresentação~
     
    Dark Souls RPG ATS é um servidor baseado na terra média, onde vive muitas criaturas do universo de "Senhor dos Anéis" e "O Hobbit". É um servidor de tibia alternativo, as classes tradicionais, tem uma "elevação" de espirito, assim completando algumas missões(quests) e pegando itens, e elevando seu espirito para um Valan ou Titan, vocês conseguem elevar teu espirito, conseguintemente ganhando, mais vida/mana, mais força nas habilidades e ataques. 
     
    Chegando em sua ultima elevação de espirito de sua vocação, para não cair no monótono e rotineiro, nosso servidor tem o sistema de reset, reset? Sim! reset amigos, levamos em consideração que fica muito chato, você upar infinitos leveis e sempre aumentando a dificuldade de experiencia, pra aumentar em pouco sua força, por isso temos implantado o sistema de reset, que basicamente é, você pegar o level máximo do servidor 500 dando um reset seu personagem, voltar para o level 8. Nossa como assim level 8 ? sim level 8.
    Voltando para o Level 8 mas não de uma forma prejudicial e sim de uma forma benéfica, a onde resetando, você mantem os seus skills, magic leveis, ganhando vida/mana adicionas tanto por nivel, tanto quando dado o reset, tendo assim a facilidade novamente de ganhar a experiencia menor dos leveis e upando com facilidade.
    E o personagem também é resetado, quando eleva seu espirito, somente uma exceção quando é feita a tradicional promoção Level 20, que o level permanece o mesmo.
    Sendo assim as seguintes vocações

    Knight - Elite Knight - Slayer - Dragon Slayer.
    Paladin - Royal Paladin - Ranger - Elven Ranger
    Druid - Elder Druid - Cleric - Elemental Cleric
    Sorcerer - Master Sorcerer - Wyzard - Dark Wyzard

     
    ~Sistemas~
    Cast System 100%
    Castle War 24hrs 80%
    Auto Loot 100%
    War of Emperium 80%
    Reset System 100%
    Sistema de Forja 100%
    Sistema de Refinamento 100%

    ~Imagens~
    Algumas imagens de Mordor: 
     
     

    ~Redes Sociais~
     
    Para quem estiver interessado de acompanhar o projeto, segue ai o facebook!
    Facebook Dark Souls RPG ATS
     
     
  18. Gostei
    Pepeco deu reputação a Helliot em The Last Empire [Zezenia Project]   
    The Last Empire: Zezenia Private Server (c/ Tibia Source)

    Olá a todos,

    Eu estou desenvolvendo um Servidor Pivado de Zezenia, com OTV 8.60, já tenho todas sprites do Zezenia dentro do OTClient, e estou fazendo algumas mudanças. Estou fazendo isso sozinho, eu conheço um pouco de tudo mas preciso de algumas pessoas para me ajudar em Scripts/C++/WebSite, por que eu não tenho um conhecimento tão bem neles, se você quiser me ajudar com alguma sugestão, opinião, poste aqui.

    Sobre o The Last Empire
    Aqui você vai achar todas características de Zezenia Online, classes e subclasses, magias e cast system, talent system, gráficos e muito mais. A diferença do The Last Empire é que nós vamos ter um novo mapa altamente detalhado com quests elaboradas, eventos e updates completamente novos.

    Desenvolvimento
    Por agora, nós estamos criando o mapa e configurando os monstros. As magias, classes e subclasses estão quase prontas. A experiencia vai ser um pouco mais que o normal, fazendo o jogo ser mais animado.

    O que precisamos para lançar?
    Eu estou criando o mapa e a cidade principal, como nós temos alguns sistemas preparados, com apenas uma cidade o jogo fica jogável, pronto para ficar online.

    Imagens (Em Breve)
    ...
     
    Se você tiver algum interesse, quiser me ajudar e fazer parte da equipe, poste aqui e entraremos em contato!!
  19. Gostei
    Pepeco recebeu reputação de helix758 em Mining system   
    @helix758 É um sistema de mineração, voce escolhe as paredes que quer que o script execute, pega o item que quer para minerar, (recomendado pick '-'),  e clica com o direito na pick e na parede, fazendo a mineração.
  20. Gostei
    Pepeco deu reputação a murilao em [Tutorial] Como compilar tfs v1.2 com MSVC 2015   
    E ai galera do TK tudo bem? Bom venho trazer a vocês este tutorial compilando o TFS 1.2 em windows x32 ou x64 bit com Microsoft Visual Studio 2015.
     
    Então vamos lá:
     
    1ª Baixe os programa primeiro:
     
    Visual Studio 2015 -> MSVC 2015 (compilador)
     
    TFS Sdk 3.2 -> Sdks 3.2 (libs)
     
    Boost MSVC 2015 -> (32-bit, 64-bit)
     
    2ª Instale os Programa:
    Primeiro o Boost 32bit ou 64bit.
    Imagem:

     
    3ª Agora extraia o arquivo tfs-sdk-3.2.
    Imagem:

     
    4ª Pronto depois de ter feito isso agora abra a pasta da source e depois a pasta vc14 e abre o theforgottenserver.
    Imagem:

     
    5ª Pronto com Visual Studio 2015 aberto veja abaixo:
    Clica com botão do mouse direito no projeto theforgottenserver e depois em properties.
    Imagem:

     
    6ª Feito isso vai em Configuration Manager..
    Imagem:

     
    7ª Feito isso vai em C/C++ -> General e veja abaixo:
    Imagem:

    8ª Feito isso vai em Linker --> General e veja abaixo:
    Imagem:

    Depois dê Ok depois Aplicar e Ok e esperar da Ready.
    9ª Depois vai em Build -> Build Solution ou Aperte F7.
    Imagem:

     
    E agora só esperar terminar a compilação e FIM ! 
     
    Terminamos o Tutorial !
     
     
    Creditos a:
    @murilao por criar tutorial e imagem.
  21. Gostei
    Pepeco deu reputação a luanluciano93 em TFS 1.2   
    Olhe aqui: https://github.com/otland/forgottenserver/wiki/Script-Interface

    exemplos:
    https://github.com/otland/forgottenserver/wiki/Metatable:Player
    https://github.com/otland/forgottenserver/wiki/Metatable:Creature
  22. Gostei
    Pepeco recebeu reputação de Giovane Caampos em Mining system   
    • Mining System •
    Vim aqui disponibilizar o mining, não é tão avançado como o de outros mas ele é totalmente automático tanto para colocar items quanto para vender os items (alavanca). É uma script simples e fácil de entender, podendo ter alterações com pessoas que não tem muito experiencia em lua. Mesmo que ele seja simples, o forum esta morrendo, pretendo fazer updates nele, caso alguém tenha alguma ideia do que possa fazer, só deixar um comentário.
     
    • Explicação •
    › Mining_Config
    config = { Level = 8, Axe_Skill = 10, Paredes = {5646,5640,5645,5639,5644,5648}, } -- Level = Level necessario para minerar -- Axe_Skill = Skill de axe necessaria para poder minerar -- Paredes = Paredes que vao ser mineradas › Mining_Items
    config = { [1] = {Item = 2157, Random_min = 1, Random2_min = nil, Random_max = 3, Random2_max = nil, Count = 2, Special_Storage = nil, Magic_Effect = nil, Count_Shop = nil, Money_Shop = nil}, -- Gold Nugget } -- Random_min = A chance de cair o item em math.random -- Random2_min = Essa chance é menor, ou seja, mais dificil de cair. -- Random_max = É a chance maxima -- Random2_max = A mesma coisa que o de cima -- Count = A quantidade maxima que pode cair, é aleatorio -- Special_Storage = Caso voce queira que de alguma storage, para ver quantos players ja conseguiram e etc.. -- Magic_Effect = Caso queira que de algum magic effect diferente, se for nil, será o padrao. -- Count_Shop = Quantidade necessaria para poder vender o item no shop (alavanca) -- Money_Shop = Quanto que o item vai custar, por unidade ou seja, se eu colocar Count_Shop = 100 e Money_Shop = 2000, vai ser 100 * 2000. -- No final que tem esse "--" é o nome do item, é melhor se organizar assim, pois se ficar muitos items e voce querer fazer alguma manutenção, facilita muito.  
    Bom, eu acho que é isso, não tem mais nada para se explicar. Então vamos para o script.
     
    Data/lib
     
    Data/actions/scripts
    Data/actions -- Abra o actions.xml
    <action itemid="id do item" script="nome do arquivo"/>  
    Data/actions/scripts -- Esse aqui é o shop, não é obrigatório.
    Data/actions -- Abra o actions.xml
    <action actionid="id da action" script="nome do arquivo"/>  
    Caso tenha gostado, deixe seu REP+, ajuda e motiva muito trazer conteúdo para o forum.
     
  23. Gostei
    Pepeco recebeu reputação de L3K0T em Mining system   
    • Mining System •
    Vim aqui disponibilizar o mining, não é tão avançado como o de outros mas ele é totalmente automático tanto para colocar items quanto para vender os items (alavanca). É uma script simples e fácil de entender, podendo ter alterações com pessoas que não tem muito experiencia em lua. Mesmo que ele seja simples, o forum esta morrendo, pretendo fazer updates nele, caso alguém tenha alguma ideia do que possa fazer, só deixar um comentário.
     
    • Explicação •
    › Mining_Config
    config = { Level = 8, Axe_Skill = 10, Paredes = {5646,5640,5645,5639,5644,5648}, } -- Level = Level necessario para minerar -- Axe_Skill = Skill de axe necessaria para poder minerar -- Paredes = Paredes que vao ser mineradas › Mining_Items
    config = { [1] = {Item = 2157, Random_min = 1, Random2_min = nil, Random_max = 3, Random2_max = nil, Count = 2, Special_Storage = nil, Magic_Effect = nil, Count_Shop = nil, Money_Shop = nil}, -- Gold Nugget } -- Random_min = A chance de cair o item em math.random -- Random2_min = Essa chance é menor, ou seja, mais dificil de cair. -- Random_max = É a chance maxima -- Random2_max = A mesma coisa que o de cima -- Count = A quantidade maxima que pode cair, é aleatorio -- Special_Storage = Caso voce queira que de alguma storage, para ver quantos players ja conseguiram e etc.. -- Magic_Effect = Caso queira que de algum magic effect diferente, se for nil, será o padrao. -- Count_Shop = Quantidade necessaria para poder vender o item no shop (alavanca) -- Money_Shop = Quanto que o item vai custar, por unidade ou seja, se eu colocar Count_Shop = 100 e Money_Shop = 2000, vai ser 100 * 2000. -- No final que tem esse "--" é o nome do item, é melhor se organizar assim, pois se ficar muitos items e voce querer fazer alguma manutenção, facilita muito.  
    Bom, eu acho que é isso, não tem mais nada para se explicar. Então vamos para o script.
     
    Data/lib
     
    Data/actions/scripts
    Data/actions -- Abra o actions.xml
    <action itemid="id do item" script="nome do arquivo"/>  
    Data/actions/scripts -- Esse aqui é o shop, não é obrigatório.
    Data/actions -- Abra o actions.xml
    <action actionid="id da action" script="nome do arquivo"/>  
    Caso tenha gostado, deixe seu REP+, ajuda e motiva muito trazer conteúdo para o forum.
     
  24. Gostei
    Pepeco 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.
  25. Gostei
    Pepeco deu reputação a leozynho123 em [PROJETO] Venoria ~ Real Map 8.0   
    [informações]
    [base]
     [quests]
    [mapa]
    [sugestões]
     
       

     
    Venho apresentar a vocês meu novo projeto, um projeto de um global map na versão 8.0,
    então galera, minha intensão é trazer um servidor de qualidade, para relembrar os velhos tempos de tibia, 
    achei interessante está versão, pois eu considero está versão bem legal, por não conter muitas coisas que pra mim "afetaram a jogabilidade do jogo" entre outras coisas.
     
        

     
    Projeto com base no novo theforgotten server 1.2 com downgrade para a versão 8.0 ficou totalmente estável e livre de erros, todas as quests foram (estão) sendo revisadas, vários novos sistemas implantados, e outros demais códigos otimizados Servidor hospedado em servidor linux com uma excelente uptime, ficou uma conjunto bem otimizado.    
        

     
    Svargrond Arena Quest [X]
    The Ancient Tombs Quest
    Banshee Quest [X]
    Dreamer Challenge Quest
    Ape City Quest [X]
    Postman Quest [X]
    Pits Of Inferno Quest [X]
    Kiling inf the name of quest
     
    Entre diversas outras quests, e com a ajuda de vocês poderei adicionar todas as outras mais com o tempo.
     
         

     

     
    O mapa conta com mais de 89mb, está bem completo..
     
     
     
    Logo mais irei adicionar mais fotos do mapa do servidor e do servidor.

        


    Então galera, é o seguinte.. O servidor está bem não está totalmente completo ainda, e quero trabalhar muito em cima dele, fiz este post para vocês darem palpite, tipos de exp, quests que há nesta versão na qual eu possa adicionar, entre outras coisas,
    Estou contanto com vocês !
     

Informação Importante

Confirmação de Termo