Ir para conteúdo

Luga03

Conde
  • Total de itens

    956
  • Registro em

  • Última visita

  • Dias Ganhos

    22

Histórico de Reputação

  1. Thanks
    Luga03 recebeu reputação de raulcdj em Ditto e Shiny Ditto System 100%   
    Eae pessoal blz?? eu peguei o ditto system postado pelo Wend e feito pelo Gabrielbsales(Featzen), então só mudei algumas tags e modifiquei um pouco e dei umas melhorias, bem pequenas só que vão ajudar, creio eu Então vamos parar de blábláblá em começar o tutorial!

    Primeiramente vá em Data/actions/scripts/order.lua e Procure por:

    -------- TRANSFORM ---------- Apague tudo aqui dentro, até o:

    -------- LIGHT ------------ Ai dentro ditto coloque isto:




    Pronto Agora esta transformando e copiando as habilidades e tudo! Agora Para o ditto e shiny ditto reverter a transformação .

    Crie um arquivo chamado dittorevert.lua em data/talkactions e coloque isto dentro:


    e em talkactions.xml coloque isto:
    <talkaction words="!revert" event="script" value="dittorevert.lua"/> Pronto sistema 100% só que ele está com nome, poder, força tudo igual! para resolver isto vamos em lib/level system.lua

    abra e procure por isto:


    e substitua por isto:


    Pronto Agora o Shiny ditto ta com 75% de força do poke transformado e o ditto com 50% de força do pokemon transformado

    Agora para identificar que é um ditto/shiny ditto vamos em creaturescript/scripts/look.lua, abra e procure por:
    table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n") substitua por:
    if getItemAttribute(thing.uid, "ehditto") == 1 then table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename.." (Ditto).\n") elseif getItemAttribute(thing.uid, "ehshinyditto") == 1 then table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename.." (Shiny Ditto).\n") else table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n") end Em actions/scripts/goback.lua procure por:


    e apague!

    em lib/Some Functions.lua procure por:


    e substitua por:
    function doAppear(cid) --Faz um poke q tava invisivel voltar a ser visivel... if not isCreature(cid) then return true end doRemoveCondition(cid, CONDITION_INVISIBLE) doRemoveCondition(cid, CONDITION_OUTFIT) doCreatureSetHideHealth(cid, false) end
    Ainda em Some functions procure por:
    if getCreatureName(pokemon) == "Ditto" then if isTransformed(pokemon) then local left = getItemAttribute(pokeball.uid, "transLeft") - (os.clock() - getItemAttribute(pokeball.uid, "transBegin")) doItemSetAttribute(pokeball.uid, "transLeft", left) end end
    e apague

    e para finalizar procure por:
    if getCreatureName(pokemon) == "Shiny Ditto" then if isTransformed(pokemon) then local left = getItemAttribute(pokeball.uid, "transLeft") - (os.clock() - getItemAttribute(pokeball.uid, "transBegin")) doItemSetAttribute(pokeball.uid, "transLeft", left) end end e Apague!!!!!!!

    Pronto Agora sim Sistema 100% Esta Copiando Habilidades, força diminuida do pokemon normal e identificação do Ditto e Shiny Ditto! Acredito que vai ajudar a muitos!

    Créditos

    Gabrielbsales Por criar o Script
    Wend por fazer um tutorial mais completo
    Zet0N0Murmurou (Summer Slyer) por adaptar e melhorar o script para o Shiny Ditto!

    UP
  2. Sad
    Luga03 recebeu reputação de Sudoudo em Ditto e Shiny Ditto System 100%   
    Eae pessoal blz?? eu peguei o ditto system postado pelo Wend e feito pelo Gabrielbsales(Featzen), então só mudei algumas tags e modifiquei um pouco e dei umas melhorias, bem pequenas só que vão ajudar, creio eu Então vamos parar de blábláblá em começar o tutorial!

    Primeiramente vá em Data/actions/scripts/order.lua e Procure por:

    -------- TRANSFORM ---------- Apague tudo aqui dentro, até o:

    -------- LIGHT ------------ Ai dentro ditto coloque isto:




    Pronto Agora esta transformando e copiando as habilidades e tudo! Agora Para o ditto e shiny ditto reverter a transformação .

    Crie um arquivo chamado dittorevert.lua em data/talkactions e coloque isto dentro:


    e em talkactions.xml coloque isto:
    <talkaction words="!revert" event="script" value="dittorevert.lua"/> Pronto sistema 100% só que ele está com nome, poder, força tudo igual! para resolver isto vamos em lib/level system.lua

    abra e procure por isto:


    e substitua por isto:


    Pronto Agora o Shiny ditto ta com 75% de força do poke transformado e o ditto com 50% de força do pokemon transformado

    Agora para identificar que é um ditto/shiny ditto vamos em creaturescript/scripts/look.lua, abra e procure por:
    table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n") substitua por:
    if getItemAttribute(thing.uid, "ehditto") == 1 then table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename.." (Ditto).\n") elseif getItemAttribute(thing.uid, "ehshinyditto") == 1 then table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename.." (Shiny Ditto).\n") else table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n") end Em actions/scripts/goback.lua procure por:


    e apague!

    em lib/Some Functions.lua procure por:


    e substitua por:
    function doAppear(cid) --Faz um poke q tava invisivel voltar a ser visivel... if not isCreature(cid) then return true end doRemoveCondition(cid, CONDITION_INVISIBLE) doRemoveCondition(cid, CONDITION_OUTFIT) doCreatureSetHideHealth(cid, false) end
    Ainda em Some functions procure por:
    if getCreatureName(pokemon) == "Ditto" then if isTransformed(pokemon) then local left = getItemAttribute(pokeball.uid, "transLeft") - (os.clock() - getItemAttribute(pokeball.uid, "transBegin")) doItemSetAttribute(pokeball.uid, "transLeft", left) end end
    e apague

    e para finalizar procure por:
    if getCreatureName(pokemon) == "Shiny Ditto" then if isTransformed(pokemon) then local left = getItemAttribute(pokeball.uid, "transLeft") - (os.clock() - getItemAttribute(pokeball.uid, "transBegin")) doItemSetAttribute(pokeball.uid, "transLeft", left) end end e Apague!!!!!!!

    Pronto Agora sim Sistema 100% Esta Copiando Habilidades, força diminuida do pokemon normal e identificação do Ditto e Shiny Ditto! Acredito que vai ajudar a muitos!

    Créditos

    Gabrielbsales Por criar o Script
    Wend por fazer um tutorial mais completo
    Zet0N0Murmurou (Summer Slyer) por adaptar e melhorar o script para o Shiny Ditto!

    UP
  3. Thanks
    Luga03 recebeu reputação de Slytherin em [Download] Pokémon Light (Com level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão TEM level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!e9FWkbLR!y3khwXsA3BFzCDFIyVK-lVQEQTdOgLXarieXYEFupDM
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

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


    1.0- Trocar o IP do OTC Primeiramente, Para Rrocar o IP, Localize o Arquivo "Cliente/Module/Cliente_entergame/Entergame.lua" Abra o Arquivo entergame.lua Procure Por: "setUniqueServer" Ai vai ter algo parecido com isto: "EnterGame.setUniqueServer('127.0.0.1', 7171, 854, 270, 210)" Ai o "127.0.0.1" Troque Pelo Seu IP!
    Agora o OTC esta Entrando Normalmente no seu OTserv!




    2.0- Trocar os Arquivos .spr e .dat pelos seus! Vá em data/things/854 Ai Vai ter Dois Arquivos .spr e .dat, Remova eles e troque Pelo Seu! Pronto, Cliente com as Sprites do Seu Servidor!

    3.0- Resolver Erro de Arquivo Dat Não Compatível! Existem Duas Soluções! 3.1- A Primeira Solução: Se seus Arquivos .dat e .spr não forem EXTENDIDO, você pode EXTENDER ele, Segue o Tutorial ao Lado >> http://www.tibiaking...ite-de-sprites/<< 3.2- A Segunda Solução: Vá em Cliente\modules\game_things e Abre o Arquivo Things.lua Procure Por: "g_game.enableFeature(GameSpritesU32)" Se seu cliente For EXTENDIDO não mexa em nada! Mas se seu Cliente Não for Extendido Substitua: "g_game.enableFeature(GameSpritesU32)" Por: "--g_game.enableFeature(GameSpritesU32)"

    4.0- Para deixar o OTC por padrão com Forma Transplarente Igual ao OTP! Abrir o Arquivo: "modules\game_interface\gameinterface.lua" Procure Por "setupViewMode(0)" obs: Pode ter Até 3 deste! Substitua todos Por "setupViewMode(2)"

    5.0- Como Mudar o Nome Que Aparece no Canto Superior do OTC! Vá em modules\client Abra o Arquivo Client.lua e Procure Por: "g_window.setTitle" Vai Tar Algo Mais ou Menos Como Isto: "g_window.setTitle('OTclient')" Oque esta dentro da Aspas na Tag, substitua pelo Nome desejado! ex: "g_window.setTitle('OTclient1000000')"
    Pronto, Este Tutorial Já Ajudou Muita Gente e Agora Vai Ajudar a Muito mais!
    Atualizei o Tópico, com Mais Informações, Removi as Imagens Por Deixarem o Tópico com Poluição Visual e Reformulei Todo o Resto do Tópico!

    Créditos

    Summer Slyer(Zet0N0Murmurou) Pelo Tutorial!
    GabrielSapient Por Me Ensinar a Deixar o OTC Transplarente Como o OTP!
    Wend Por Me Ensinar a Mudar o Nome!
  6. Upvote
    Luga03 recebeu reputação de techsama em [Download] Pokémon Light (Com level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão TEM level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!e9FWkbLR!y3khwXsA3BFzCDFIyVK-lVQEQTdOgLXarieXYEFupDM
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

  7. Upvote
    Luga03 recebeu reputação de samlecter em PokéMaster X   
    Projeto interessantíssimo! Adoraria fazer parte dessa equipe ??
  8. Thanks
    Luga03 recebeu reputação de mau10984 em [Download] Pokémon Light (Sem level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão NÃO tem level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!b98zgZYR!Yxq4gBNP9hGrocSEBuhRA-gNT_q6Vgh1mU-pu811Wcs
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

  9. Upvote
    Luga03 recebeu reputação de WTPaladin em [Download] Pokémon Light (Com level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão TEM level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!e9FWkbLR!y3khwXsA3BFzCDFIyVK-lVQEQTdOgLXarieXYEFupDM
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

  10. Upvote
    Luga03 recebeu reputação de GuiKat em [Download] Pokémon Light (Com level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão TEM level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!e9FWkbLR!y3khwXsA3BFzCDFIyVK-lVQEQTdOgLXarieXYEFupDM
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

  11. Upvote
    Luga03 recebeu reputação de underewarr em Programas utilizados no PokéLight   
    Olá ekz tibianos, tranquilo? Eu vim mostrar uma lista de programas utilizados pelos desenvolvedores do PokéLight!
     
     


     
     
     


    Lua Auto Indent
     
     


    Descrição: Com este programa você pode identar seus códigos com apenas 1 clique!
     
     


    Download: LuaAutoIndent.rar
     
     


    Scan
     
     


     
     
     


    Remere's Map Editor
     
     


    Descrição: Editar mapa do servidor com client estendido e com transparência.
     
     


    Download: Remere's Map Editor.rar
     
     


    Scan
     
     


     
     
     


    Stian's Repack Dev-Cpp
     
     


    Descrição: IDE para compilar servidores como o PokéLight e outros.
     
     


    Download: Stian's Repack Dev-Cpp.rar
     
     


    Scan
     
     


     
     
     


    Deve instalar junto no Dev o OpenSSL:
     
     


    openssl-0.9.8-1cm.rar
     
     


     
     
     


    Pessoal, com mais tempo eu posto outros que nós utilizando... Valeu ae e espero que façam bom uso!
     
     


    Observação, Os créditos são exclusivamente dos seus desenvolvedores, colaboradores e outras pessoas.
     
     


    Segunda observação, Os vírus encontrados são inofensivos, então baixe por conta própria.
     
     


     
     
     


     
     

    openssl-0.9.8-1cm.rar
    LuaAutoIndent.rar
    Remere's Map Editor.rar
  12. Upvote
    Luga03 recebeu reputação de underewarr em [Download] Pokémon Light (Com level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão TEM level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!e9FWkbLR!y3khwXsA3BFzCDFIyVK-lVQEQTdOgLXarieXYEFupDM
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

  13. Upvote
    Luga03 recebeu reputação de Chacalcrz em [Download] Pokémon Light (Com level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão TEM level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!e9FWkbLR!y3khwXsA3BFzCDFIyVK-lVQEQTdOgLXarieXYEFupDM
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

  14. Thanks
    Luga03 recebeu reputação de Wase Wiss em [Last Login] Message Translated   
    Bom, eu tava vendo uns links sobre o os.date e lembrei que no login você recebe a mensagem de ultimo login,
    Eu fui ver como funciona e coloquei uma forma de mandar a mensagem totalmente em português,
    É um script bem inútil kk
    Mas para quem quiser usar ta aí
     
    Primeiramente vá em creaturescripts/scripts/login.lua
     
    Abra o arquivo e procure por:
    str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "." E substitua por:
    str = "Seu último login foi em "..os.date("%d", getPlayerLastLoginSaved(cid)).."/"..os.date("%m", getPlayerLastLoginSaved(cid)).."/".. os.date("%Y", getPlayerLastLoginSaved(cid)).." ás "..os.date("%H", getPlayerLastLoginSaved(cid))..":"..os.date("%M", getPlayerLastLoginSaved(cid)).."." Não esqueça de mudar o login.lua de UTF-8 para ANSI.
    Se não vai aparecer várias letras embaralhadas onde tiver acento!
     
    Para quem não sabe converter para ANSI e usa o Notepad++ faça assim:
    Caso não use Notepad++,
    Você terá que ir no bloco de notas
    Como ficará:




  15. Upvote
    Luga03 recebeu reputação de Fiapera em Sistema De Pokemon No Tibia   
    Eae galera blz? hj eu tava sem nada para fazer então pensei em colocar o sistema de pokemon no tibia como ele funciona? é simples ele faz igual os sistemas de pokemons normais só que com a função de catch, go/back da pokeball,e os monstros capturados tem suas pokebolas configuradas e tem vida configuravel! agora sem mas delogas vamos ao script!

    Antes de tudo vá em data/lib e crie um arquivo .lua chamado de PokeLib e coloca dentro :




    Agora Go/back

    Vá em data/actions/scripts e crie um arquivo .lua chamado goback.lua e bota dentro :




    Agora em actions.xml coloque :




    2222 e 2223 são os ids da pokebolas

    Para evitar Bug

    va em data/creaturescript/script e crie um arquivo chamado goback.lua e coloque dentro :




    Agora adicione outro arquivo .lua em data/creaturescript/script com o nome de playerpdeath e coloque isto dentro :




    Agora adicione em creaturescript.xml as seguintes tags :




    Agora o catch.lua

    vá em data/actions/script/ e crie um arquivo catch.lua e coloque dentro :



    local pokes = { ["Dragon"] = {corpseid = 5973, chance = 100, health = 12200, maxhealth = 12200}, ["Dragon Lord"] = {corpseid = 5984, chance = 100, health = 12200, maxhealth = 12200}, ["Demon"] = {corpseid = 5995, chance = 100, health = 12200, maxhealth = 12200}, } local time = 4 -- Tempo para mandar as mensagens e adiciona item function onUse(cid, item, frompos, item2, topos) for i,x in pairs(pokes) do if item2.itemid == x.corpseid then doRemoveItem(item.uid, 1) doRemoveItem(item2.uid, 1) if math.random(1,100) <= x.chance then function add() local s = doPlayerAddItem(cid, pokein) doItemSetAttribute(s, "poke", "This is "..i.."'s pokeball. HP = ["..x.health.."/"..x.maxhealth.."]") doItemSetAttribute(s, "description", "Contains a " .. i) end doSendMagicEffect(topos, 24) addEvent(add, time*1000) return addEvent(doPlayerSendTextMessage, time*1000, cid, 27, "You catch a " .. i .. ".") else addEvent(doPlayerSendTextMessage, time*1000, cid, 27, "Your pokeball broke.") return doSendMagicEffect(topos, 23) end end end return TRUE end
    O npc que heala!!

    vá em data/npc/script e crie um script .lua chamado de pokehealer.lua e coloque isto dentro :




    Agora em Data/npc crie um arquivo .xml com o nome de Poke Healer e coloque isto dentro :





    Pronto galera é isto!!! Não pesão suporte para min pq não sou o criador do script apenas postei e traduzi para PT

    Créditos :

    Xtibia (eu peguei de um fórum espanhol e la os creditos estavão este)
    Zet0N0Murmurou (Por traduzir para PT)

    el 2222;2223 son las id de las pokebolas
  16. Thanks
    Luga03 recebeu reputação de raulcdj em Sistema de Addon   
    Eai pessoal blz? eu estava lendo um tópico do nosso amigo Alexxxx... ai o Top...(o Bolz, esqueci o nick dele aq ¬¬) ai eu vi que ele falou que a forma que ele conseguio de adicionar addon no OT dele foi dando um Ctrol+F: Addon, na pasta do PokémonXRain! ai eu baixei ele e tentei, ai adicionei tudo nescessário nele no meu ot, ai quando usei, funcionou perfeitamente! mas claro q não é sem 100% pq quando da fly, ride, surf e etc ele volta pra outfit normal, ai precisa dar Go/back no pokémon para voltar com o addon! mas fora isto esta funcionando perfeitamente! Então Vamos Parar de Blábláblá e começar!

    Em Data/actions e Actions.xml adiciona isto:

    <action itemid="IdAddon;IdAddon" event="script" value="Addon.lua"/>
    Em IdAddon Coloca os ids dos items dos addons! ai para adicionar mais ids é só colocar o ";" Ou seja aquele negocio verde, e depois colocar o ID Ficando: IdAddon;IdAddon;IdAddon e por ai vai

    Ai Em Data/actions/scripts cria um arquivo lua Chamado "Addon" e Dentro Dele Adiciona Isto:

    function onUse(cid, item, fromPosition, itemEx, toPosition) local addons = { [12593] = {pokemon= "Electabuzz" , looktype = 1482}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon [12925] = {pokemon= "Alakazam" , looktype = 1471}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon } if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, "Please back your pokemon.") return false end local numero = addons[item.itemid].looktype local pb = getPlayerSlotItem(cid, 8).uid local pk = addons[item.itemid].pokemon if getItemAttribute(pb,"poke") ~= pk then doPlayerSendCancel(cid, "Sorry, you can't use this addon on this poke.") return false end if getItemAttribute(pb,"addon") < 1 then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 27, "Congratulations! Now your pokemon will use the addon.") doSetItemAttribute(pb,"addon",numero) return true end return true end Ai para adicionar um Novo Addon é só Adicionar esta tag:
    [ItemID] = {pokemon= "NomeDoPoke" , looktype = IdDaOutfit}, EM ItemID, troca pelo id do addon
    em pokemon troca NomeDoPoke, pelo Nome Do Pokémon que vai ser adicionado o Addon
    Em looktype, troca IdDaOutfit, pelo looktype do pokémon com addon!

    Em Goback.lua

    Procure Por:
    else doPlayerSendCancel(cid, "This pokemon is fainted.") end E Adiciona Emcima de Else Isto:

    local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) return false end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) return true end
    Em Catch system.lua Procura Por:

    doItemSetAttribute(item, "description", description)
    Adiciona Isto embaixo:

    doItemSetAttribute(item, "addon", 0)
    Em Some Functions.lua Procure Por:

    unLock(item.uid)
    Da Enter Duas Vezes e Adiciona isto:

    local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) return false end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) return true end
    Pronto! Sistema de Addon Funcionando Perfeitamente Caso Coloque Tudo Certinho!

    Caso Queira uma Addon Box... Faz isto

    Em Actions.xml Adiciona Isto:

    <action itemid="12595" event="script" value="addonbox.lua"/>
    E Em Data/Actions/Scripts Cria um Arquivo Lua Chamado "addonbox" e Adiciona Isto Dentro Dele:

    function onUse(cid, item, frompos, item2, topos, pos) local addons = {12593,12889} local randomChance = math.random(1, 49) if item2.itemid == 12595 then doSendMagicEffect(getCreaturePosition(cid), 28) doRemoveItem(item2.uid, 1) doPlayerAddItem(cid, addons[randomChance], 1) doPlayerSendTextMessage(cid, 27, "Você ganhou um Addon!") return true end end
    Pronto Addon Box Adicionada!

    Créditos

    Pokémon X Rain Pelo Sistema de Addon
    Summer Slyer (Zet0N0Murmurou) Por Trazer ao Xtibia, e Por Fazer o Tutorial!
  17. Thanks
    Luga03 deu reputação a Sammy em [OtClient] Tutorial sobre Módulos   
    Olá pessoal, vi esse tutorial em um site gringo sobre a parte básica dos módulos de um otclient, que pode auxiliar muita gente que quiser explorar ainda mais o Otclient, já que essa área eu não vejo tanto conteúdo no Tibia Br, como sempre os créditos estarão ao final do tópico...
     
     
    Então, para começar as coisas que eu vou estar cobrindo:
    - a criação de módulos.
    - repassar alguns dos fundamentos para trabalhar no ambiente otclients lua. como testar eficientemente seus módulos e scripts.
     
     
    Para este tutorial você vai precisar:

    - Um editor de texto de algum tipo (eu gosto de usar o Notepad + +)
    também seria bom ter conhecimentos básicos de lua e habilidades de programação (mas isso é algo que você pode pegar rapidamente praticando).
     
    Agora que já temos tudo o que precisamos, podemos começar !
     
    CRIANDO O NOVO MÓDULO
     
     
    Otclient front-end funciona fora o que chamamos de ' módulos '. Os módulos são uma forma de implementar eficazmente os recursos do cliente separados uns dos outros. Se você está considerando a criação de um novo módulo, é aconselhável que você pense sobre o que o recurso pode ser e se ele iria caber em um módulo já existente (provavelmente um módulo game_xxx), os módulos são encontrados no diretório/modules do otclient.
    Seus são atualmente dois módulo ' ambientes ': jogo e cliente. Os módulos de jogo usam o prefixo game_ e devem estar refletindo recursos que se relacionam especificamente com os recursos do ambiente do jogador ou do jogo por exemplo game_outfit ou game_mounts são ambos os recursos que são usados no ambiente de jogo. Os módulos de cliente usam o prefixo client_ e devem estar refletindo recursos que se relacionam especificamente com o cliente e o cliente somente. Ele não tem nada a ver com o ambiente de jogo de jogadores, por exemplo, client_options e client_skins estão diretamente relacionados com a funcionalidade de clientes. Isso pode ser um pouco difícil de Visualizar para agora, mas você vai pegar isso mais tarde.
    Então, agora que você tem uma compreensão do que é um módulo e um pouco como eles funcionam, vamos em frente e começar a criar um novo.
     
    COMEÇANDO DO ZERO
     
     
    Nós estamos indo para criar um novo módulo a partir do zero, a primeira coisa que você precisa fazer é criar o diretório modules. O nome do diretório deve refletir o recurso global em si, por isso vamos chamar o nosso game_spells para começar a criar um novo módulo que irá listar todos os players spells com suas informações apropriadas. Nós não estaremos criando este módulo inteiro, mas podemos começar a ver como tudo funciona.
     
    Crie um novo diretório chamado game_spells dentro do diretório/Modules clientes.

    Dentro de game_spells precisamos começar adicionando 3 novos arquivos base: Spells. lua, feitiços. otmod e Spells. otui para a lógica de módulos, registro e design de interface.
     
    Criar 3 novos arquivos base spells.lua, spells.otmod e spells.otui dentro/modules/game_spells
    Você já deve saber o que o arquivo. lua representa, mas quais são essas novas extensões. otmod e. otui?
     
    .otmod
     
    .otmod é o arquivo que é usado para inicializar o módulo dentro do otclient, é como um registro em que ele irá registrar o módulo para uso dentro do cliente. Este arquivo geralmente tem uma estrutura como esta (eu adicionei comentários, se você copiar este código não se esqueça de remover o--comments):
    Module nome: game_spells -- nome do módulo (geralmente o mesmo nome que o diretório modules. descrição: Exibir a player spell com sua informação apropriada--descrição do módulo que explica o que é. autor: Sammy -- nomes dos criadores e colaboradores do módulo. website: www.otclient.info -- Se você tem um site externo que você pode ligá-lo aqui. sandboxed: true--sandbox é uma maneira de conter a variável modules e funções para que você não tenha conflitos entre outros módulos. scripts: [ spells.lua ] -- Os scripts são a lógica por trás do módulo onde todas as funções estão contidas. @onLoad: init() -- Este é o lugar onde você define a função de inicialização do módulo (nós vamos cobrir isso mais tarde). @onUnload: terminate() -- Este é o lugar onde você define a função de término do módulo (vamos cobrir isso mais tarde) Copie o código .otmod acima em seu arquivo spells.otmod e remova os comentários.
     
    .otui
     
    .otui é o arquivo que é usado para criar a interface de usuário modules. Esta é uma linguagem de estilo feito encomenda projetado especificamente para otclient chamado OTML, ele se sente muito como a formatação CSS para aqueles de vocês que têm experiência em webdesign. A estrutura típica de um arquivo .otui se parece com isso (este é o arquivo base iniciar, não concluído):
     
    MainWindow !text: tr('Spells') size: 160 450 @onEnter: modules.game_spells.destroy() @onEscape: modules.game_spells.destroy() Label id: spellsLabel !text: tr('Player Spells') width: 130 anchors.top: prev.top anchors.left: prev.left margin-top: 5 margin-left: 5 MainWindow: 
    Esta é a janela que estaremos usando para a interface da Spell List, é uma classe de janela padrão derivado de/client_skins/default/styles/windows.otui styling file estende janela que estende UIWindow. UIWindow é uma classe base dessa inicialização, ele controla a funcionalidade widgets e comportamentos.
     
    !text: Este é o texto que é exibido na seção de cabeçalho MainWindow
    size:  isso é usado para definir a largura/altura da mainwindow.
    @onEnter: configura o retorno de chamada de widgets de MainWindow OnEnter (função que será chamada quando você pressiona a tecla Enter).
    @onEscape: configura os widgets de retorno de chamada de MainWindow (função que será chamado quando você pressiona a tecla de escape).
     
    Label:
    Este é um widget de etiquetas que é usado para exibir texto na maioria dos casos. É um derivado da classe UILabel.
     
    id: Este é o ID que esta mais comum será alias-se com para referenciar usando funções como widget: getChildById ( "spellsLabel ")
    !text: Este é o texto que será exibido pelo widget UILabel.
    width: Este é o tamanho da largura do Label
    anchors. top/bottom/left/right: São onde a parte superior/inferior/esquerda/direita do Label devem ser posicionada.
    margin-top/bottom/left/right: São deslocamentos para as anchors, eles permitirão que você afinar o posicionamento dos componentes da interface do usuário.
     
    Esta é apenas a superfície de .otui formatação e styling, há muito mais que pode ser feito, mas a ideia principal é que você obter uma compreensão sobre como a hierarquia dos componentes da interface do usuário para exibir corretamente, etc as convenções de styling OTML forçá-lo a manter o projeto de um interface separado para o código lógico, por exemplo, o .lua
     
    Copie o código otui acima e coloque em spells.otui
     
    Agora que entendemos qual arquivo é usado para registrar o módulo e que arquivo (s) são usados para construir os módulos da interface do usuário, podemos aprofundar o código de lógica de módulos e tentar entender como tudo funciona em conjunto. O arquivo spells.lua é o arquivo que contém o código de lógica de módulos. É aqui que os spells serão preenchidos e o manuseio da seleção ortográfica e do display ortográfico serão controlados.
     
    Abra o arquivo spells.lua e copie o seguinte código base para começar.
     
    Nós estaremos escolhendo aparte este código para ajudar a entendê-lo melhor. Eu fui em frente e comecei o código base para você, aqui está:
     
    Spells = {} spellWindow = nil selectedSpell = nil spells = {} function init() connect(g_game, { onOpenSpellWindow = Spells.create, onGameEnd = Spells.destroy }) end function terminate() disconnect(g_game, { onOpenSpellWindow = Spells.create, onGameEnd = Spells.destroy }) Spells.destroy() Spells = nil end function Spells.create(spellList) spells = spellList Spells.destroy() spellWindow = g_ui.displayUI('spells.otui') end function Spells.destroy() if spellWindow then spellWindow:destroy() spellWindow = nil selectedSpell = nil spells = {} end end function Spells.selectSpell() if table.empty(spells) then return end -- TODO end  
    As principais coisas que eu quero focar aqui são:
     
    as variáveis (spellWindow, selectedSpell e spells).
    e as funções (armazenamento de funções e discutir o que init e Terminate são necessários).
     
    O VARIÁVEL
     
     
    Variáveis dentro de um módulo em modo seguro não precisam ser localizadas com a palavra-chave local como elas estão dentro de seu próprio ambiente de módulo. Se o módulo estiver em modo seguro: false, então você precisará certificar-se de que você localize a variável e redefini-los dentro da função Terminate (que vamos discutir mais tarde).
     
    Dentro deste módulo de feitiço precisamos ter uma maneira de armazenar o objeto janela módulos, fazemos isso definindo a variável spellWindow que temos inicializado como nulo, mas que vamos configurar em breve. Nós também precisamos de uma maneira de conter o que o jogador selecionou o que significa que devemos armazenar uma referência para o spell de alguma forma usando a variável selectedSpell. Por último, mas não menos importante e provavelmente não duram tanto! Precisamos armazenar a lista de spells e fazer isso com a variável Spells.
     
    AS FUNÇÕES
     
     
    Funções muito como variáveis estão contidas em módulos de área restrita para que a localização pode variar dependendo de suas preferências. Se você não estiver usando um module sandboxed: true, em seguida, você precisará certificar-se de que você está localizando e armazenar funções corretamente. Eu pessoalmente gosto de usar uma tabela para armazenar minhas funções dentro para manter as coisas organizadas mais este é o lugar onde você vê spells = {}. Spells é uma tabela que eu estarei usando para armazenar todas as funções públicas de um módulo. Funções de módulo privado serão localizadas mesmo que não seja inteiramente necessário dentro de um módulo em modo seguro, eu prefiro declarar quando a função é privada através da palavra-chave local.
    Então, quais são as funções init () e Terminate () usado para?
    Como você já deve ter notado dentro dos feitiços .otmod código que você vai ver:
     
     
    @onLoad: init() @onUnLoad: terminate()  
    init()
     
    A função init é uma função que é chamada quando otclient tenta carregar o módulo registrado usando chamada de sinal OnLoad. Dentro desta função você deve estar inicializando todos os componentes que são exigidos pelo seu módulo. Como você pode ver dentro de spells.lua estamos chamando uma função dentro de init ():
     
    connect(g_game, { onOpenSpellWindow = Spells.create, onGameEnd = Spells.destroy })  
    terminate()
     
    A função Terminate é uma função que é chamada quando otclient tenta descarregar o módulo registrado usando a chamada de sinal OnUnload. Dentro desta função você deve estar destruindo e redefinir variáveis que precisam ser desmarcadas na terminação do módulo. Lembre-se de que nem todas as variáveis precisarão ser redefinidas, mas as referências de widget e a tabela de spells são todas necessárias para serem redefinidas. Como você pode ver dentro de feitiços. lua estamos chamando e definindo uma série de coisas dentro de terminate():
     
     
    disconnect(g_game, { onOpenSpellWindow = Spells.create, onGameEnd = Spells.destroy }) Spells.destroy() Spells = nil Afirmei anteriormente que chamamos a função Connect dentro init (). Agora que estamos encerrando o módulo precisamos desconectar os retornos de chamada do conjunto de chamadas de sinal. Isto é feito através da função de desconexão (...).
    Com estas principais coisas cobertas você pode muito bem fazer o que você gosta dentro do módulo. Você pode com cuidado construir e craft o para inserir o que você precisa. Siga através do tutorial para estender o seu conhecimento de criação de módulos e também trabalhar dentro do ambiente do módulo otclients.
     
    COMO TESTAR EFICAZMENTE OS SEUS MÓDULOS
     
    Testar seus módulos será uma parte importante de fazê-los trabalhar da maneira que você precisa. Módulos de teste pode, por vezes, ser um pouco de um desafio para que haja algumas coisas que você precisa saber, a fim de torná-lo mais fácil para você.
     
    RECARREGANDO OS SEUS MÓDULOS
     
     
    Você pode recarregar seus módulos no cliente usando o Gerenciador módulo módulo Gerenciador módulo selecione seu módulo e clique em recarregar. Esteja ciente de que o seu init () e terminate (), funções serão chamados em recarregar por isso, se você não está inicializando e destruindo coisas particulares corretamente, então você pode obter erros no recarregamento.
    Nota importante: existem algumas alterações raras que podem não ser recarregadas corretamente com o gestor de módulos, coisas como .otui @ alterações (por exemplo, @onClick: edits). Pode haver algumas outras mudanças que não recarregam corretamente, mas para a maior parte ele funciona bem. Se você se encontrar com erros estranhos tentou fazer um reinício completo do cliente para garantir a sua não uma emissão de recarga.
     
    COMANDOS DE TESTE ÚTEIS
    Há uma seleção de comandos úteis que podem ser úteis para testes encontrados no arquivo de script/modules/client_terminal/Commands.lua. Aqui está uma lista dos comandos atuais que você pode inserir no terminal do cliente:
    dumpWidgets(widget, level) drawDebugBoxes(enable) hideMap() showMap() debugContainersItems() debugPosition(enable) autoReloadModule(name)  
    Você pode adicionar novos comandos ao seu diretório/mod, a fim de evitar fazer alterações no arquivo de comando modules.
    Você deve sempre assegurar-se de que seus módulos estejam testados completamente antes de criar solicitações da tração ao repositório principal do git. Estas dicas podem ser muito úteis nas fases de teste!
    ALGUMAS ORIENTAÇÕES ÚTEIS
     
    Ao desenvolver seu módulo seja certo dar-lhe lotes do pensamento sobre como está indo trabalhar e mesmo se você pode fundir a característica a um módulo já existente. Também funções globais e variáveis constantes podem ser encontradas nos diretórios modules/corelib e modules/gamelib. Por favor, dê uma cuidadosa consideração para o que você colocar nesses arquivos e se possível tentar evitá-lo. Siga a regra  "manter tudo para sua própria causa, e apenas essa causa ".
     
    FIM DO TÓPICO =]
     
    CRÉDITOS:
    edubart
    BeniS
    Eu(pela tradução e adaptação para o português)
     
     
     
     
  18. Upvote
    Luga03 deu reputação a dalvorsn em tutorial de otc?   
    Cara, não tem um tutorial descente disso, mas também não tem nada muito absurdo de entender. Primeira coisa tu tem que entender a estrutura, o otclient é todo modularizado, otmod é o primeiro cara a ser lido, ele que diz todas as infos iniciais de load, então comece vendo os otmods e entendendo como ele funciona. entendido isso tu vai passar para o scripts lua dele. No arquivo de load dele tu vai encontrar duas funções primordiais, 'init' e 'terminate'(pode ser diferente os nomes se tu alterar no otmod, mas não aconselho a mudar pois já é convencionado assim).

    init é executado ao dar load no module, e terminate ao dar unload no module (lembrando que reload é unload + load)
    além disso o otclient usa o conceito de signals and slots, que é o mesmo adotado pelo qt e outras bibliotecas graficas, através deles tu consegue fazer connect em diversos eventos e etc, é essencial que entenda isso para não ter que fazer esforços desnecessários
     
    graficamente falando tu pode criar interface por duas maneiras, por lua através de funções que manipulam widgets e pelo otui, o otui é como se fosse um CSS, porém proprio do otclient, inclusive por isso ele tem seu proprio loader, que tu pode encontrar na source https://github.com/edubart/otclient/tree/master/src/framework/ui

    se você não entende de c++, tudo bem, você pode aprender vendo exemplos dentros os inumeros módulos que ja existem e na pasta de styles https://github.com/edubart/otclient/tree/master/data/styles
    a maioria das coisas que tu precisa pra fazer a maioria dos modulos ja tem em algum modulo feito no cliente, então seu melhor professor será o proprio cliente, basta tu entender e quebrar a cabeça tentando
    no geral e pra maioria dos casos você não irá precisar de alterar as sources pra praticamente nada, existe bind para quase todas as funções que tu precisa, tu pode encontra-los em:
    https://github.com/edubart/otclient/blob/master/src/framework/luafunctions.cpp  -- no que se refere a coisas do framework (widgets e etc)
    https://github.com/edubart/otclient/blob/master/src/client/luafunctions.cpp -- no que se refere a coisas do jogo 
     
    duvidas pontuais tu pergunta no forum que irão te responder, mas é preferível que tente sozinho antes, porque o aprendizado está justamente ai
     
  19. Upvote
    Luga03 recebeu reputação de GokuBlack em [OTC] Modificando seu OTcliente   
    Eai Pesosal, blz? estou atualizando o tópico de como Editar as funções mais basicas do OTC!
    Vou ensinar a trocar o IP do OTC!
    Trocar a Resolver o Debug que fica preto ao andar!
    Resolver o erro que diz que não existe um arquivo dat compatível!
    Como deixar o OTC com aparencia Transplarente! como o OTP
    Como Mudar o Nome Que Aparece no Canto Superior do OTC!


    1.0- Trocar o IP do OTC Primeiramente, Para Rrocar o IP, Localize o Arquivo "Cliente/Module/Cliente_entergame/Entergame.lua" Abra o Arquivo entergame.lua Procure Por: "setUniqueServer" Ai vai ter algo parecido com isto: "EnterGame.setUniqueServer('127.0.0.1', 7171, 854, 270, 210)" Ai o "127.0.0.1" Troque Pelo Seu IP!
    Agora o OTC esta Entrando Normalmente no seu OTserv!




    2.0- Trocar os Arquivos .spr e .dat pelos seus! Vá em data/things/854 Ai Vai ter Dois Arquivos .spr e .dat, Remova eles e troque Pelo Seu! Pronto, Cliente com as Sprites do Seu Servidor!

    3.0- Resolver Erro de Arquivo Dat Não Compatível! Existem Duas Soluções! 3.1- A Primeira Solução: Se seus Arquivos .dat e .spr não forem EXTENDIDO, você pode EXTENDER ele, Segue o Tutorial ao Lado >> http://www.tibiaking...ite-de-sprites/<< 3.2- A Segunda Solução: Vá em Cliente\modules\game_things e Abre o Arquivo Things.lua Procure Por: "g_game.enableFeature(GameSpritesU32)" Se seu cliente For EXTENDIDO não mexa em nada! Mas se seu Cliente Não for Extendido Substitua: "g_game.enableFeature(GameSpritesU32)" Por: "--g_game.enableFeature(GameSpritesU32)"

    4.0- Para deixar o OTC por padrão com Forma Transplarente Igual ao OTP! Abrir o Arquivo: "modules\game_interface\gameinterface.lua" Procure Por "setupViewMode(0)" obs: Pode ter Até 3 deste! Substitua todos Por "setupViewMode(2)"

    5.0- Como Mudar o Nome Que Aparece no Canto Superior do OTC! Vá em modules\client Abra o Arquivo Client.lua e Procure Por: "g_window.setTitle" Vai Tar Algo Mais ou Menos Como Isto: "g_window.setTitle('OTclient')" Oque esta dentro da Aspas na Tag, substitua pelo Nome desejado! ex: "g_window.setTitle('OTclient1000000')"
    Pronto, Este Tutorial Já Ajudou Muita Gente e Agora Vai Ajudar a Muito mais!
    Atualizei o Tópico, com Mais Informações, Removi as Imagens Por Deixarem o Tópico com Poluição Visual e Reformulei Todo o Resto do Tópico!

    Créditos

    Summer Slyer(Zet0N0Murmurou) Pelo Tutorial!
    GabrielSapient Por Me Ensinar a Deixar o OTC Transplarente Como o OTP!
    Wend Por Me Ensinar a Mudar o Nome!
  20. Upvote
    Luga03 recebeu reputação de nickyfull em [OTC] Modificando seu OTcliente   
    Eai Pesosal, blz? estou atualizando o tópico de como Editar as funções mais basicas do OTC!
    Vou ensinar a trocar o IP do OTC!
    Trocar a Resolver o Debug que fica preto ao andar!
    Resolver o erro que diz que não existe um arquivo dat compatível!
    Como deixar o OTC com aparencia Transplarente! como o OTP
    Como Mudar o Nome Que Aparece no Canto Superior do OTC!


    1.0- Trocar o IP do OTC Primeiramente, Para Rrocar o IP, Localize o Arquivo "Cliente/Module/Cliente_entergame/Entergame.lua" Abra o Arquivo entergame.lua Procure Por: "setUniqueServer" Ai vai ter algo parecido com isto: "EnterGame.setUniqueServer('127.0.0.1', 7171, 854, 270, 210)" Ai o "127.0.0.1" Troque Pelo Seu IP!
    Agora o OTC esta Entrando Normalmente no seu OTserv!




    2.0- Trocar os Arquivos .spr e .dat pelos seus! Vá em data/things/854 Ai Vai ter Dois Arquivos .spr e .dat, Remova eles e troque Pelo Seu! Pronto, Cliente com as Sprites do Seu Servidor!

    3.0- Resolver Erro de Arquivo Dat Não Compatível! Existem Duas Soluções! 3.1- A Primeira Solução: Se seus Arquivos .dat e .spr não forem EXTENDIDO, você pode EXTENDER ele, Segue o Tutorial ao Lado >> http://www.tibiaking...ite-de-sprites/<< 3.2- A Segunda Solução: Vá em Cliente\modules\game_things e Abre o Arquivo Things.lua Procure Por: "g_game.enableFeature(GameSpritesU32)" Se seu cliente For EXTENDIDO não mexa em nada! Mas se seu Cliente Não for Extendido Substitua: "g_game.enableFeature(GameSpritesU32)" Por: "--g_game.enableFeature(GameSpritesU32)"

    4.0- Para deixar o OTC por padrão com Forma Transplarente Igual ao OTP! Abrir o Arquivo: "modules\game_interface\gameinterface.lua" Procure Por "setupViewMode(0)" obs: Pode ter Até 3 deste! Substitua todos Por "setupViewMode(2)"

    5.0- Como Mudar o Nome Que Aparece no Canto Superior do OTC! Vá em modules\client Abra o Arquivo Client.lua e Procure Por: "g_window.setTitle" Vai Tar Algo Mais ou Menos Como Isto: "g_window.setTitle('OTclient')" Oque esta dentro da Aspas na Tag, substitua pelo Nome desejado! ex: "g_window.setTitle('OTclient1000000')"
    Pronto, Este Tutorial Já Ajudou Muita Gente e Agora Vai Ajudar a Muito mais!
    Atualizei o Tópico, com Mais Informações, Removi as Imagens Por Deixarem o Tópico com Poluição Visual e Reformulei Todo o Resto do Tópico!

    Créditos

    Summer Slyer(Zet0N0Murmurou) Pelo Tutorial!
    GabrielSapient Por Me Ensinar a Deixar o OTC Transplarente Como o OTP!
    Wend Por Me Ensinar a Mudar o Nome!
  21. Upvote
    Luga03 deu reputação a OtavioJdS em Pokemon Skyfall V.2   
    [8.5] Pokemon SkyFall V. 2
    Olá galera, venho aqui trazer minhas edições ao servidor Pokemon SkyFall do Gabrieltxu, fiquei um bom tempo editando para por online, mas por uns motivos não pude, então vim disponibilizar para vocês, espero que gostem.
    ► Conteúdo
    » Pokémons da 1° até a 4° geração.
    » Servidor Sem level .
    » Servidor já ajustado para usar OTclient com Barra de vida etc..
    » Servidor com um MAPA Unico Com 2 Continentes . 1° Kanto 2° Hoen + Sinooh .
    » Sprites Novas e Atualizadas.

    ► Mudanças
    » Inquisition Quest acrescentada e teleport escondido.
    » Registeel adicionado (não tinha na versão anterior).
    » Concertado e adicionado novos itens para comprar no Shop Diamond.
    » Concertado corpos e pokemons
    » Dentre muitos outros...
     
    ► Prints
     

     

     
    ► Erros Do Servidor
    » Poucos, nada dificil de resolver.
     
    ► Acc God: 333/55555
    ► Download
     
    » Servidor
    http://www.4shared.com/rar/GURzveX_ce/Pokemon_SkyFall_V2.html
     
    >> Scan
    https://www.virustotal.com/pt/url/ed14906ea7209fdc85f333a50cd5c966b358fecff34cbe8ba0d89721ed44a266/analysis/1395609370/
     
    >> Cliente
     
    https://mega.co.nz/#!SJgGyagI!MmxCOiYPhCQElJIkXapFMRwJ54cAa2ubNrXjYXyReFo
    ► Créditos Eu – Otavio JdS GabrielTxu Zeref Shirou LekoDs Guidark21 Equipe Pokemon Galaxy betinhownz666 Glauber
  22. Upvote
    Luga03 recebeu reputação de Huntedl17 em Programas utilizados no PokéLight   
    Olá ekz tibianos, tranquilo? Eu vim mostrar uma lista de programas utilizados pelos desenvolvedores do PokéLight!
     
     


     
     
     


    Lua Auto Indent
     
     


    Descrição: Com este programa você pode identar seus códigos com apenas 1 clique!
     
     


    Download: LuaAutoIndent.rar
     
     


    Scan
     
     


     
     
     


    Remere's Map Editor
     
     


    Descrição: Editar mapa do servidor com client estendido e com transparência.
     
     


    Download: Remere's Map Editor.rar
     
     


    Scan
     
     


     
     
     


    Stian's Repack Dev-Cpp
     
     


    Descrição: IDE para compilar servidores como o PokéLight e outros.
     
     


    Download: Stian's Repack Dev-Cpp.rar
     
     


    Scan
     
     


     
     
     


    Deve instalar junto no Dev o OpenSSL:
     
     


    openssl-0.9.8-1cm.rar
     
     


     
     
     


    Pessoal, com mais tempo eu posto outros que nós utilizando... Valeu ae e espero que façam bom uso!
     
     


    Observação, Os créditos são exclusivamente dos seus desenvolvedores, colaboradores e outras pessoas.
     
     


    Segunda observação, Os vírus encontrados são inofensivos, então baixe por conta própria.
     
     


     
     
     


     
     

    openssl-0.9.8-1cm.rar
    LuaAutoIndent.rar
    Remere's Map Editor.rar
  23. Upvote
    Luga03 recebeu reputação de heviton2 em [Download] Pokémon Light (Com level)   
    Você tem que instalar o OpenSLL no dev para poder compilar...
     
    openssl-0.9.8-1cm.rar
     
    Obrigado kk 
     
    Sim, Open-Souce é chave para o sucesso haha
     
    @TOPIC 
     
    Tópico atualizado com novas informações!!!!!! Espero que gostem <3 
  24. Upvote
    Luga03 recebeu reputação de Thann Muller em [Download] Pokémon Light (Com level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão TEM level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!e9FWkbLR!y3khwXsA3BFzCDFIyVK-lVQEQTdOgLXarieXYEFupDM
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

  25. Upvote
    Luga03 recebeu reputação de heviton2 em [Download] Pokémon Light (Com level)   
    Contribuição do PokéLight
     
    Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha.
    Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas....
     
    Lembrando, está versão TEM level system no pokémon!
     
    Sistemas
     
    Mapa
     
    O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente.
     
    Sprites
     
    Nenhuma das sprites exclusivas do PLight será liberada pela equipe.
     
    Imagens
     
     
    Downloads:
     
    Server e Source: https://mega.nz/#!e9FWkbLR!y3khwXsA3BFzCDFIyVK-lVQEQTdOgLXarieXYEFupDM
    Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k
     
    Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço  
     
    Links Extras: 

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...