Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 06/28/15 em todas áreas

  1. Piabeta Kun

    Maurolkit é deletado!

    O Mass Ban da CipSoft desta vez pegou pesado com um dos tops do Tibia. Maurolkit, Elite Knight level 797 de Nerana e top 4 do Tibia foi a vítima desta vez, mas uma vítima possivelmente nada inocente! Para aqueles que não se recordam, Maurolkit foi o primeiro jogador a alcançar a marca do level 600 no jogo e assim como seus precursores Lord'Paulistinha (Primeiro level 400) e Tomurka (Primeiro level 500) acabou também sendo deletado do Tibia pelo uso de programas ilegais. Seria o desaparecimento das contas de "grande jogadores" um sinal da decadência do Tibia ou, ao contrário, um símbolo de sua redenção? Afinal não é todo dia que se vê um top sendo deletado, ainda mais considerando todas as críticas ao sistema automático da CipSoft. E então, o que você acha de situações como esta, de Tops sendo deletados?
    2 pontos
  2. Krono

    [Creatureevent Mod] Militar Rank mod

    Sistema que adiciona um Rank Militar de acordo com os Frags do jogador. Ou seja, quanto mais o player mata, maior será o seu rank. Achei muito legal, pois dá um ar de disputa por patentes dentro do servidor. Para instalar crie um arquivo dentro da pasta mods do seu servidor como o nome militarrank.xml e cole este script dentro. <?xml version = "1.0" encoding = "UTF-8"?> <mod name = "Military Ranks" version = "1.0" author = "Teckman" enabled = "yes"> <config name = "ranks"><![CDATA[ titles = { [1] = "Private First Class", [3] = "Specialista", [5] = "Corporal", [10] = "Sargento", [12] = "Staff Sargento", [15] = "Sargento Primeiro", [20] = "Master Sargento", [22] = "Primeriro Sargento", [25] = "Sargent Major", [30] = "Sargento Major Comando", [35] = "Sargento Major Exercito", [38] = "Segundo Tenente", [40] = "Primeiro Tenente", [45] = "Capitão", [48] = "Major", [50] = "Tenente Coronel", [55] = "Coronel", [100] = "General de Brigada", [110] = "General de Divisão", [120] = "Tenente General", [140] = "General", [170] = "General de Exercito" } fragsStorage = 600 ]]></config> <event type = "look" name = "ranksLook" event = "script"><![CDATA[ domodlib("ranks") function onLook(cid, thing, position, lookDistance) if(isPlayer(thing.uid)) then local rank = {rank = "Private", frags = 0} for k, v in pairs(titles) do if(math.max(0, getPlayerStorageValue(thing.uid, fragsStorage)) > k - 1) then if(k - 1 > rank.frags) then rank.rank, rank.frags = v, k - 1 end end end doPlayerSetSpecialDescription(thing.uid, "\n Military rank: " .. rank.rank) end return true end ]]></event> <event type = "kill" name = "ranksKill" event = "script"><![CDATA[ domodlib("ranks") function onKill(cid, target) if(isPlayer(target)) then setPlayerStorageValue(cid, fragsStorage, math.max(0, getPlayerStorageValue(cid, fragsStorage) + 1)) if(titles[getPlayerStorageValue(cid, fragsStorage)]) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You advanced to military rank: " .. titles[getPlayerStorageValue(cid, fragsStorage)] .. ". Congratulations " .. titles[getPlayerStorageValue(cid, fragsStorage)] .. "!") end end return true end ]]></event> <event type = "login" name = "ranksLogin" event = "script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "ranksKill") registerCreatureEvent(cid, "ranksLook") return true end ]]></event> </mod> Gostou? Espero que sim!. credito: Roque
    1 ponto
  3. meubk

    Auto Target

    autotarget.xml: [LUA]<?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Auto Target System" version="1.0" author="xOtservx" enabled="yes"> <event type="login" name="AutoTargetLogin" event="script"><![CDATA[ function onLogin(cid) return registerCreatureEvent(cid, "AutoTarget") end]]></event> <event type="think" name="AutoTarget" event="script"><![CDATA[ function onThink(cid, interval) if getPlayerStorageValue(cid, 25471) ~= "on" then return true end if getCreatureTarget(cid) then return true end local monsterScreen = {} for x = -7, 7 do for y = -5, 5 do creature = getTopCreature({x = getThingPos(cid).x + x, y = getThingPos(cid).y + y, z = getThingPos(cid).z}).uid if isMonster(creature) then table.insert(monsterScreen, creature) end end end if #monsterScreen == 0 then return true end monsterTarget = #monsterScreen[1] if #monsterTarget > 1 then local type = type(getPlayerStorageValue(cid, 25472)) ~= "string" and "distancia" or getPlayerStorageValue(cid, 25471) for i = 1, #monsterScreen do if type == "distancia" then if getDistanceBetween(getThingPos(monsterScreen[i]), getThingPos(cid)) < getDistanceBetween(getThingPos(monsterTarget), getThingPos(cid)) then monsterTarget = monsterScreen[i] end elseif type == "forte" then if getCreatureMaxHealth(monsterScreen[i]) > getCreatureMaxHealth(monsterTarget) then monsterTarget = monsterScreen[i] end end end end doMonsterSetTarget(cid, monsterTarget) return true end]]></event> <talkaction words="!autotarget;/autotarget" event="buffer"><![CDATA[ function onSay(cid, words, param) if param == "on" then setPlayerStorageValue(cid, 25471, "on") return doPlayerSendTextMessage(cid, 27, "Você ligou o sistema de auto target, configure ele para !autotarget distancia ou !autotarget forte .") elseif param == "off" then setPlayerStorageValue(cid, 25471, "off") return doPlayerSendTextMessage(cid, "27, Você desligou o sistema de auto target.") elseif param == "distancia" or param "forte" then if getPlayerStorageValue(cid, 25471) ~= "on" then return doPlayerSendTextMessage(cid, "27, Você precisa estar com o sistema de auto target ligado (!autotarget on)") end setPlayerStorageValue(cid, 25472, param) return doPlayerSendTextMessage(cid, "27, Você trocou o modo do auto target para " .. param .. ".") end end]]></talkaction> </mod>[/LUA] coloque o xml na pasta mods do ot. comandos:
    1 ponto
  4. Benny

    Galeria • Beeny

    •• Asuna •• •• Ace •• •• Yamato •• •• Random •• •• Halo •• •• Predator ••
    1 ponto
  5. Introdução ao Projeto em pdf: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing Fala pessoal, estamos desenvolvendo um novo projeto de OTServe na versão 10.77 voltado ao RPG onde diversão é indispensável. Criaremos diversos eventos e sistemas únicos para que seja um servidor dinâmico em que os players sintam aquela vontade de jogar cada vez mais, não a mesmice de todo serve, que só se upa e upa e não tem mais graça. Estamos abrindo Vagas para: [*1*] Mapper [*1*] Web Master *Caso deseje se candidatar para a equipe, favor preencher o seguinte formulário abaixo: Nome: Idade: Função pretendida: Formas de contato - Facebook/Skype: Porque você quer fazer parte do projeto?: Quanto tempo de experiência você tem no seu ramo?: Caso tenha algum trabalho feito/postado favor anexar o link ou imagem.
    1 ponto
  6. Benny

    [X] Abstract Smudge SPEEDART

    Bem, o @moskitinho tinha pedido a "técnica" Isso não é muito bem um tutorial, mas a ideia é essa hauhau Enfim, abraços ~
    1 ponto
  7. beto06

    Resetar Spawns

    Sim, ao salvar ele sempre cria o arquivo de spawn e houses
    1 ponto
  8. era exatamente isso que eu queria obrigado brow REP+
    1 ponto
  9. Existe esse feito pelo @Vodkart basta um pequeno edit para ganhar os addons: http://www.xtibia.com/forum/topic/188712-marriage-system-npc/
    1 ponto
  10. Não se esqueça de registrar o evento em login.lua. local config = { vocations = {1, 2, 3, ...}, --IDs das vocações. time = 1, --Exhaust, em minutos. hpPercent = 20, --Porcentagem de vida. toPos = {x = x, y = y, z = z}, --Para onde será teleportado. } function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and isPlayer(cid) and isInArray(config.vocations, getPlayerVocation(cid)) then if getPlayerStorageValue(cid, 18182) < os.time() and getCreatureHealth(cid) <= getCreatureMaxHealth(cid) * config.hpPercent / 100 then doTeleportThing(cid, config.toPos) setPlayerStorageValue(cid, 18182, os.time() + config.time * 60) end end return true end
    1 ponto
  11. 115757

    [Arquivado]ohayo!

    1 ponto
  12. LookMe

    Training Offline

    @Editado Não sei a área certa para criar esse tutorial, mas se estiver não estiver na área ccorreta, por favor, movam ! Continuando... Vou ensinar a criar um sistema de treinamento offline igual ao global. Requisitos: Apenas um ot com items.xml e items.otb que possuem as estátuas de treino ^-^ Seguindo. PastaDoOt/data//lib/ crie um arquivo chamado "103-offline-training.lua" Coloque isso dentro: em Data/actions/actions.xml adicione as seguintes tags: Os números 18488 - 18492 são os id's dos objetos a serem os "Treiners offline" ou seja, se vc trocar por exemplo o 18492 por um outro id tipo "1026" ( id de um muro) todos os muros que possui esse id, ao clicarem nele, o player irá deslogar, então prestem atenção e coloquem um id existente e que nao seja "usável" como exemplo, uma estátua. em data/actions/script crie um arquivo chamado "offtrain_statue.lua" Coloque isso dentro: ../data/creaturescripts/creaturescripts.xml ../data/creaturescripts/scripts/offtrain_login.lua ../data/creaturescripts/scripts/offtrain_logout.lua ./data/globalevents/globalevents.xml ../data/globalevents/scripts/offtrain_addMinutes.lua pronto, seu sistema de treino offline está criado Créditos: Gesior.pl -> membro da otland, e criador do sistema LookMe -> por trazer o conteúdo
    1 ponto
  13. Olá! Vou lhes ensinar como colocar um servidor online, abrindo portas mesmo em internet compartilhada usando o Uniform Server, que é um servidor WAMP (Windows, Apache, MySQL, PHP) voltado para produção (ou seja, hospedar tudo depois de pronto), ao contrário do famosíssimo XAMPP que é voltado para desenvolvimento (ou seja, testes) e, por isso, tem algumas falhas que podem ser exploradas. Antes de tudo, vou dividir o tutorial em algumas partes: Instalando o Uniform Server Abrindo as portas do roteador (apenas internet compartilhada) Abrindo as portas do modem Configurando o MySQL (banco de dados) Instalando o Uniform Server Para fazer o download do Uniform Server mais recente, siga este link: http://sourceforge.n...latest/download Se você tem mais conhecimento, pode acessar o site do Uniform Server, baixar o código fonte e compilar por conta própria, porque ele é open source: http://sourceforge.n...cts/miniserver/ Instalar o Uniform Server é bastante simples. Ele não é um programa instalável propriamente dito, mas sim um programa portátil que é extraido, então você pode copiar a pasta dele pra outro computador e ele vai funcionar perfeitamente, ou então deixar num pendrive e ter seu servidor em qualquer lugar, além de ser um servidor muito leve tanto em espaço ocupado no disco quanto na memória. Basta executar o arquivo baixado, escolher a pasta de destino e clicar em Extract, para criar uma pasta com os arquivos do Uniform Server dentro: Assim que extraído, acesse a pasta e execute "Start-as_program.exe" e, na primeira execução, o UniServer vai perguntar se você deseja alterar a senha do banco de dados. é recomendável trocar para usar seu servidor, ou então a senha será em branco e qualquer um pode acessar sem restrição. Se deseja alterar, clique em "Yes", preencha o campo "Enter a new password" e clique no botão "Change password": Por enquanto é só. Vamos começar a abrir as portas. Abrindo as portas do roteador Eu uso um TP-Link TL-WR740N, e roteadores diferentes tem interfaces diferentes, portanto procure um tópico do seu roteador ou então procure as opções que eu escrever. O primeiro passo é ir até a tela Address Reservation, que fica dentro de DHCP, para marcarmos um IP fixo para seu computador dentro da rede (este não é o IP do servidor!!!). Para acessar as configurações do roteador, abra Iniciar -> Executar ou pressione Windows + R e digite "cmd /k ipconfig /all" (sem aspas) e clique em OK. Anote o Endereço Físico e o Gateway Padrão informados na sua rede atual: Então acesse a configuração do roteador usando a senha padrão (que geralmente é admin/password, admin/admin ou admin/<em branco="">). Vamos usar o MAC Address (Endereço Físico) da sua rede atual, clique em "Add New..." e preencha essa informação no campo MAC Address. Em Reserved IP Address, escolha um IP igual ao do Gateway Padrão, alterando o último número (por exemplo: Gateway 192.168.1.1, IP 192.168.1.100) e clique em Save. Reinicie o roteador (ou faça apenas após terminar tudo): Agora procure Forwarding (ou Port Forwarding) para começarmos a liberar as portas. Em Virtual Servers, clique em "Add New...", e coloque as informações: a porta que será usada (no caso, 7171-7174; o IP que você configurou anteriormente para seu computador; o protocolo que será usado (escolha Both, TCP/UDP ou apenas TCP); e agora basta clicar em Save e reiniciar novamente o roteador E o computador e suas portas estarão abertas no roteador: Repita estes passos caso use mais de um roteador, mas usando o MAC do roteador anterior e não do PC. Geralmente o roteador mostra na tela inicial o seu MAC Address: Abrindo as portas do modem No meu caso, eu uso um modem PowerBox GVT, cujo menu está em português, mas você deve procurar uma opção chamada DHCP Address Reservation. Aqui, vamos tornar o IP interno do roteador fixo. Para fixar o IP do roteador, faça algo semelhante ao que foi feito no roteador para seu PC, porém na configuração do roteador. A tela inicial mostra o Gateway para acessar o modem: O PowerBox GVT possui uma facilidade maior para se fazer isso, já que ele dispensa o uso do MAC Address porque tem uma lista com todos os equipamentos conectados a rede onde é possível escolher, mas pode ser necessário usar. Procure novamente algo como "DHCP" para fixar o IP do dispositivo: Agora, encaminhe as portas do modem para o roteador (o trajeto será o seguinte: sua rede vai receber informações dos clientes conectados ao seu server pela porta 7171 -> o modem vai ver que é para a 7171 e direcionar para o seu roteador -> o roteador vai ver que é para a 7171 e direcionar para seu computador -> seu computador lê, interpreta que a porta 7171 é usada pelo servidor e então informa o servidor dos dados recebidos) em uma opção como "Forwarding" ou "Encaminhamento": Agora você pode reiniciar seu roteador, modem e computador pela última vez e as portas estarão liberadas. Configurando o MySQL (banco de dados) Para configurar o banco de dados, primeiro precisamos ligar o MySQL. Na pasta do UniServer, execute-o e clique em "Start Both" na tela inicial, até que o botão ao lado fique verde, e depois clique no botão phpMyAdmin: O phpMyAdmin é uma interface PHP para gerenciamento de banco de dados MySQL que já vem instalado junto com o UniServer. Com ele é muito mais fácil configurar, já que seria necessário usar linhas de comando para configurar o servidor sem ele. Se pedir usuário e senha, use "root" e a senha que foi configurada (ou não) na instalação e primeira execução. O phpMyAdmin tem uma tela inicial assim: No phpMyAdmin, em cima clique na aba Banco de Dados, e então vamos criar um banco de dados para o servidor. Preencha o campo com o nome do banco de dados e clique em "Criar" (não é necessário alterar a Colação/Collation): Clique no nome para acessar seu novo banco de dados, e vá na ama Importar para escolher o arquivo do seu banco de dados. Em "Procurar no seu computador" clique no botão e escolha o arquivo da pasta do seu servidor, que geralmente se chama "mysql.sql" ou "schema.sql". Clique em Executar e as tabelas começarão a ser criadas: Se houver sucesso na importação das tabelas, o phpMyAdmin mostrará uma mensagem: "Importação finalizada com sucesso, XX consultas executadas. (<nome do="" arquivo="">)" e estamos prontos para ir ao próximo passo. Daqui em diante, você pode sempre clicar apenas em "Start MySQL" no UniServer, já que o Apache só é útil para exibir sites (e no caso só teremos o phpMyAdmin, quando for usá-lo ative o Apache), então só será usado quando criarmos o site. Configurando o servidor Para configurar seu servidor, é simples: vamos editar algumas poucas linhas no arquivo config.lua. Abra-o em seu editor de texto preferido, e procure a parte que trata de databases ou bancos de dados: Altere as seguintes linhas: sqlType: altere para "mysql" sqlUser: altere para "root" se não estiver sqlPass: altere para a senha que foi configurada sqlDatabase: altere para o nome do banco de dados criado Pronto! O servidor está configurado e pronto para ser executado. Basta executar seu servidor e ele estará 100% pronto para jogar, com o banco de dados funcionando perfeitamente: Para verificar se as portas estão abertas corretamente e outros jogadores podem jogar, acesse o site http://canyouseeme.org/ e digite a porta e clique no botão: Para criar um website para o servidor, extraia os arquivos do Website dentro da pasta "www" do Uniserver e configure de acordo com o website, não vou dar maiores explicações aqui. No painel do Uniserver, clique em "Start Apache" e o site será ligado. Para torná-lo acessível, encaminhe a porta 80 da mesma forma que encaminhou a porta 7171. Aviso: geralmente, se você colocar seu ip na barra de endereço, vai acessar o painel de controle do modem/roteador, mas isso está correto e só acontece da rede local. Mande para algum amigo testar para conferir se tudo está ok!</nome></em>
    1 ponto
  14. BananaFight

    OtClient - Tutorial Básico #3

    Chegamos a parte 3 do tutorial, essa parte aprenderemos a como usar algumas ferramentar que o otclient nos oferece. Combo Box Combo Box pode ser muito útil quando bem usado. ComboBox id: tutoriial anchors.left: parent.left anchors.top: parent.top margin-top: 5 width: 75 options: - Option1 - Option2 Combo Box, são simples de manusear, você pode adicionar diversas opções facilmente, e pode checar qual foi selecionada facilmente. Adicionando novas opções ComboBox id: tutoriial anchors.left: parent.left anchors.top: parent.top margin-top: 5 width: 75 Para adicionar novas opções é bem simples, basta você criar um novo parametro dentro da combobox options: E dentro dele adicionar as opções options: - Option1 - Option2 E assim consecutivamente com todas as opções que quiser. Checando a opção escolhida Existe dois modos de pegar a opção que foi selecionada pelo usuário 1° - .Lua Você pode facilmente pegar a opção selecionada com 1 linha de código em lua :getChildById('id'):getText() com esse código você consegue retornar qual opção foi selecionada pelo usuário. 2º - .Otui Você adiciona o novo parâmetro "@onCheckChange" no ComboBox, e adiciona a função que ele vai executar. @onCheckChange: self:isChecked() Claro que você vai ter que criar uma função em lua para que o parâmetro criado saiba pra onde ele deve enviar o que foi programado Exemplo: Função .lua function getComboBoxText(param) return param end Função .otui @onCheckChange: getComboBoxText(self:isChecked()) TextEdit Text Edit é muito fácil de manusear, e pode ser bastante útil para alguns sistemas. Exemplo de uso: TextEdit id: Tutorial anchors.left: parent.left anchors.right: parent.right anchors.top: parent.bottom margin-top: 5 E agora a função em .lua, para retornar o que esta escrito é :getChildById('id'):getText() Sim, é simplesmente isso.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...