Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 10/05/17 em todas áreas

  1. Provavelmente Funcional! Reputado! @DboExplorer
  2. Rookgaard 8.60 100%

    Ronaldo Luccerh e 2 outros reagiu a ElizeuAlmeida por uma resposta no tópico

    3 pontos
    Alguém por favor tem um servidor rookgaard 8.6 , apenas rookgaard , com tudo 100% , npc , etc.. Um como o " http://Rookgaard.pl " seria Ótimo. Obrigado á todos que leram , Sucesso!
  3. Tente assim: Com a tag: <talkaction words="!name" filter="quotation" event="script" value="name.lua"/> No caso será usado assim: (!name"Jon Snow) E é como o @yanloco70 disse, não fique sempre esperando pelos outros, procure ir mexendo no script até que você ache a solução do seu problema.
  4. Salve galerinha do TK hoje vim trazer algo pra voceis ,como ja dis o titulo vou ensinar a como trocar aquele nome "Tibia" do canto superior esquerdo da tela ! Siga Os Passos A Seguir E Muito Simples! Sempre Que For Fazer Procedimentos como esse,e recomendavel fazer uma copia do arquivo que vai ser usado "no caso client.exe"para alguma outra pasta do seu computador, para acaso ocorrer acidentes e o arquivo modificado parar de funcionar ! 1°Abra O Seu Client.exe com o app chamado Notepad++ em seguida inicie o comando ctrl+f (atalho de busca) e procure pela palavra: (%s attempt at %p) 2°Em Seguida Observe a Linha De Baixo Aonde Esta Escrito "Tibia" , apague o "Tibia" e substitua pelo nome que quiser ate no maximo 5 letras (tendo menos de 5 letras deve-se aperta a tecla Espaço ate fechar os 5 caracteres ! 3°De Um SALVAR e feche o Notepad++ E PRONTO! E SIMPLES PRATICO E FUNCIONANDO PERFEITAMENTE ,Basta Abrir o .exe novamente e ver o resultado
  5. Olá pessoal! Alguém que tenha , aquele script de área vip , que quando não dá para entrar , por não ser vip , aparece a For you information escrito para comprar no site e etc.. Se possível postar com tutorial de instalação, sim? Obrigado á todos ,e caso alguém poste abaixo , repute-o devidamente! Minha Distro: TFS 0.3.6 Sucesso!
  6. Task System 1.2+

    wizv321 reagiu a KotZletY por uma resposta no tópico

    1 ponto
    Salve geral, recentemente fiz um Task System para meu servidor, então gostaria de compartilha ele com vocês, assim como outros scripts que fiz e gostaria de compartilhar. Bom, vamos ao que interessa. Informações!! Task Normal - Você 1x por vez, quantas vezes quiser, repetindo a task se também quiser. Task Diaria - Você faz uma vez por dia, não podendo repeti em quanto as 24 horas não terminar. Task Rank - É mostrado na descrição do player qual rank task ele possui. Task Rank Quest - Um extra desse task system é o piso task, será explicado na parte do script, leiam com atenção. Task Comandos - Comandos task, 1 para ver o progresso das suas task e outro para mostrar informações do seu personagem, como uma consulta, os comandos são: !task que mostra quais task você ta fazendo, tanto diaria quanto normal e !task me que mostrar informações do seu personagem, como rank, quantidade de pontos task e quantidade de pontos task rank. Well, o resto é surpresa, cabe você descobrir! xD Para não ficar só nas palavras, mostrarei algumas imagens, várias no caso: Removida, colocarei novas! Instalação!! Muito bem, chega de conversa, como instalar logo essa bagaça. Primeiramente vá em data/lib e abra o arquivo lib.lua e adicione: dofile('data/lib/task system.lua') Ainda na pasta lib crie um arquivo.lua chamado task system.lua e adicione esse code dentro: No final do tópico, ensinarei a configurar a lib. Agora vai em, data/npc e crie um arquivo.xml chamado task.xml e coloque esse code dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="NPC Task" script="task system.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="430"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. I'm in charge of delivering missions to the players. Would you like to do a {normal} task, {daily} task, {receive} your reward from a task or {abandon} a task ? You can also see the {normal task list} and the {daily task list}."/> <parameter key="message_farewell" value="See you later." /> <parameter key="message_walkaway" value="See you later." /> </parameters> </npc> Ainda na pasta npc, entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro: Agora vá em data/talkactions e abra o arquivo talkactions.xml e adicione a seguinte tag: <talkaction words="!task" separator=" " script="task system.lua" /> Ainda na pasta talkactions entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele: Agora vá em data/creaturescripts e abra o arquivo creaturescripts.xl e adicione a seguinte tag: <event type="kill" name="tasksystem" script="task system.lua"/> Ainda na pasta creaturescripts entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele: Ainda na pasta script abra o login.lua e adicione dentro: player:registerEvent("tasksystem") Agora vá em data/events/scripts e abra o arquivo player.lua, depois de aberto, antes de: self:sendTextMessage(MESSAGE_INFO_DESCR, description) adicione: if thing:isCreature() then if thing:isPlayer() then description = string.format("%s\nTask Rank: "..getRankTask(thing), description) end end Extra(Opcional)!! Extra, vá em data/movements/scripts e crie um arquivo chamado tile task.lua, depois de aberto, antes de: Vá em data/movements/movements.xml adicione: <movevent event="StepIn" actionid="XXXX" script="tile task.lua"/> Explicação: Com esse movements acima, você só poderá passar por o piso caso tenha pontos task necessário para passar, se ativar a opção, removePoints então a mesma quantidade de pontos necessária para passar, será removida, ao passar, caso esteja desativada, então apenas será necessário ter os pontos task para passar. Em XXXX coloque o actionid, e o actionid coloque no piso desejado! New Extra: Vá em data/movements/scripts e crie um arquivo chamado tile task2.lua e adicione o seguinte scripts: Vá em data/movements/movements.xml adicione: <movevent event="StepIn" actionid="XXXX" script="tile task2.lua"/> Explicação: Ao adicionar esse movements acima, você só poderá passar pelo piso caso seu rank task seja igual ou superior ao rank definido na variável, caso não seja igual e nem superior, não será possível passar. Configure na lib, a sequência de ranks de acordo com a sequência de rank da tabela de pontos, assim: A sequência precisa está igual e numeradas. Configurando!! task_monsters = { [1] = {name = "monster1", mons_list = {"monster_t2", "monster_t3"}, storage = 30000, amount = 20, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monster2", mons_list = {"", ""}, storage = 30001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monster3", mons_list = {"", ""}, storage = 30002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monster4", mons_list = {"", ""}, storage = 30003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} } task_daily = { [1] = {name = "monsterDay1", mons_list = {"monsterDay1_t2", "monsterDay1_t3"}, storage = 40000, amount = 10, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monsterDay2", mons_list = {"", ""}, storage = 40001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monsterDay3", mons_list = {"", ""}, storage = 40002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monsterDay4", mons_list = {"", ""}, storage = 40003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} } nome - Nome do monstro. mons_list - Nome dos monstro que são semelhantes e que matando eles também contará. Exemplo: name = "troll", mons_list = {"troll","frost troll","island troll"} e assim matando, troll, frost troll e island troll contará na task também. storage - É a storage que salva a quantidade de monstros já matados. amount - É a quantidade necessária de monstros matados para finalizar a task. exp - É a quantidade de Experiência que vai ganhar ao finalizar a task, caso não queira dar experiência, basta deixar em 0. pointsTask = {Task Points Que vai ganhar(Pontos usado no piso e etc..), Pontos Rank, que irá ganhar e aumentar seu rank.} items - Itens que o player vai ganhar, devem está tabelados, dentro da tabela item, adicione das tabelas contendo o id do item e count, quantidade de items que irá ganhar. Ex: items = {{id = 2157, count = 1}, {id = 2160, count = 3}} -- Aqui contém 2x tipos de itens, o 2157 e o 2160, e suas devidas quantidades que irá ganhar. items = {{id = 2157, count = 1}} -- Aqui só tem 1 tipo de item e a quantidade que vai ganhar. Adicione quantos itens quiser. O mesmo vale para as task diarias! Bom, é isso ae, qualquer duvida, crítica, sugestões, deixem ae, se precisa de suporte na instalação ou está com erro em algo estarei dando suporte, abraços e bom uso do sistema. É totalmente proibido leva meu sistema para outro site, blog ou fórum!
  7. Magnus Challenger

    bagulhoescroto reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera, hoje vim trazer o projeto pronto do Magnus Challenger pra vocês instalarem no servidor de vocês! Pra quem não conhece é um sistema de Tasks baseado no Zezenia onde você pode escolher entre tasks de matar monstros ou de coletar certos items para o npc Magnus, um guerreiro famoso da cidade que está atolado de tarefas e precisa da sua ajuda! Peguei os aspectos que eu julguei serem os principais do modelo do Zezenia e editei com algumas coisas que eu achei que ficariam melhores. Quem quiser pode ver um vídeo comentado de como o sistema funciona: Dito isso vou ensinar vocês como instalar isso no server: Pra começar vá em data\creaturescripts\scripts e procure login.lua, agora vá até o final do arquivo e antes do último return true coloque essas linhas abaixo ainda em creaturescripts procure creaturescripts.xml e adicione essa linha junto com as outras que já estão lá (seguindo o padrão) <!-- TASK SYSTEM --> <event type="kill" name="tasksystem" script="tasksystem.lua"/> Agora crie um arquivo em creaturescripts\scripts com o nome de tasksystem.lua e adicione o seguinte à ele: Terminada a parte da contagem de kill vamos ao NPC em si. Crie um arquivo chamado Magnus.xml em data\npc e coloque isso dentro dele: Agora em data\npc\scripts crie um arquivo chamado zezeniaa.lua e adicione esse conteúdo dentro do arquivo: ~~~~~~~~~~~~~~~~ FEITO ISSO ESTÁ TERMINADO ~~~~~~~~~~~~~~~~~~ Agora aprendendo a configurar: No tasksystem vc pode editar isso daqui: Eu fiz um sistema onde se vc estiver em party com alguém e a pessoa matar os bixos conta como se você tivesse matado; Assim incentiva o pessoal a ir numa cave de Dragon e ao invés de matar quem está lá pra ficar sozinho na cave, eles vão chamar party pra fazerem a task juntos.. assim fazer amigos fica mais fácil e com maiores laços é maior a chance do povo não abandonar o seu server. Apenas digite "true" ou "false" pra ativar/desativar esse sistema e em baixo temos a distancia máxima pro monstro estar do cara que está fazendo a task pra contar o kill. Se a distancia entre o monstro e a pessoa for maior que 7 não vai contar pra ele a kill. No zezeniaa.lua as coisas que dão pra configurar são maiores mas são igualmente simples: Toda vez que vc pedir uma task short (curta) vc vai ter de 100 a 400 monstros pra matar, ele gera um número de 0 a 6 e multiplica por 5 e soma com os 100 iniciais.. o mesmo vale pra todos os outros valores. levelcollect é o level mínimo pra fazer tasks do tipo collect. time é o tempo em segundos que você vai ficar sem poder falar com o npc caso desista de alguma task, o padrão é 8 * 60 * 60 (8 horas) bonus é por quanto vai multiplicar caso vc permita que o npc escolha aleatoriamente entre todas as opções.. o padrão é 20% de bonus (1.2) multiplicador é uma coisa que eu adicionei pra ficar mais fácil mexer na fórmula sem cometer cagadas, se vc tá ganhando 10% de exp e quer ganhar 80% é só colocar 8 no multiplicador. Isso daqui é o banco de dados principal do sistema de kill, toda vez que vc escolher uma task do tipo fácil, médio, dificil ele vai acessar essas tabelas contendo o nome das criaturas.. vc pode facilmente adicionar novos nomes, o npc já está programado pra lidar com isso, apenas siga o padrão e mantenha sempre o último sem vírgula! Ex: adicionando Morgaroth na tabela de hard local hard = { [1] = "Giant Spider", [2] = "Dragon Lord", [3] = "Grim Reaper", [4] = "Demon", [5] = "Crystal Spider", [6] = "Demon Skeleton", [7] = "Juggernaut", [8] = "Destroyer", [9] = "Hand of Cursed Fate", [10] = "Morgaroth" } atente-se também pra não repetir o número no index.. se o anterior era [9] use [10]. O restante das tabelas são separadas para o banco de dados das tasks de collect: segue a mesma lógica da de kill só que aqui você tem o id dos itens que serão usados... aquela count não tem nada a ver com o item pois ele vai gerar tanto o item aleatoriamente quanto à count; Ex: [1] = {id = 5880, count = 20}, -- iron ore isso não significa que se cair iron ore (id 5880) irá cair sempre 20.. até porque eu poderia escolher uma task long e easy e pegar a task de trazer até 50 iron ores, apenas tente manter os padrões que são os intervalos definidos. No easy ele varia de 10 a 20, no medium ele varia de 20 a 35 e no hard de 40 a 50. Espero que vocês tenham curtido, é um sistema grande mas bem simples de se mexer... se tiverem quaisquer problemas podem comentar aqui. Deu trabalho fazer isso então se você gostou deixe o seu comentário aí e o seu "Gostei" que vai me incentivar a trazer mais coisas desse tipo pra cá. Abraços do lobo. PS: Pra sumonar o npc digite com o GOD: /n Magnus ou coloque ele pelo map editor.
  8. 1 ponto
    Olá amiguinhos! Esse é meu primeiro script que faço e trago para vocês. Esse sistema usa a API PHP do PagSeguro, muito mais simples e seguro, sem muitas gambiarras. Tentei deixar o mais fácil possível de se instalar, qualquer sugestão será bem vinda! Requisitos: PHP 5.4.27+ SPL cURL SimpleXml Funcionalidades: Double Points no config/config.php Possibilidade de usar vários sites em uma unica conta do PagSeguro Possibilidade de acrescentar mais funcionalidades ao Gesior ou outro AAC com a API do PagSeguro. Primeiramente pegue seu token (AQUI) e desative todas as configurações. Assim: Feito isso, baixe a source no repositório do GitHub (AQUI). Extraia o conteúdo e coloque na raiz do seu site (www ou htdocs). Agora vamos colocar a mão na massa! Abra config/config.php e coloque esse código onde achar melhor: $config['pagSeguro']['email'] = "john@doe.com"; // Email da conta pagseguro $config['pagSeguro']['token'] = "yourtokenhere"; // Seu TOKEN $config['pagSeguro']['urlRedirect'] = 'http://seusite.com/?subtopic=donate&action=final'; $config['pagSeguro']['urlNotification'] = 'http://seusite.com/retpagseguro.php'; $config['pagSeguro']['productName'] = 'Premium Points'; // Nome do produto que irá aparecer no pagseguro $config['pagSeguro']['productValue'] = 1.00; // valor de cada ponto ex.: 0.50 = R$ 0,50 / 1.50 = R$ 1,50 .... $config['pagSeguro']['doublePoints'] = false; // se true ativa double points / se false desativa $config['pagSeguro']['host'] = 'localhost'; // host banco de dados $config['pagSeguro']['database'] = 'tibiaking_db'; // nome do banco de dados $config['pagSeguro']['databaseUser'] = 'root'; // usuario banco de dados $config['pagSeguro']['databasePass'] = 'tibiaKing3321'; // senha banco de dados Preencha as configurações, não tem muita dificuldade. Um passo importante para o sistema funcionar corretamente é preencher o ['urlRedirect'] e ['urlNotification'] corretamente. ['urlRedirect'] é a pagina que o PagSeguro irá mandar o comprador depois que ele pagar a solicitação. Substitua o seusite.com pelo seu site eu se quiser o para outra pagina ex.: seusite.com/?subtopic=accountmanagement ['urlNotification'] é onde o retpagseguro.php está, tenha certeza que ele está na raiz do site, não o coloque em outro lugar para evitar problemas. Com tudo preenchido vamos ao banco de dados e execute esse código sql: CREATE TABLE IF NOT EXISTS `pagseguro_transactions` ( `transaction_code` varchar(36) NOT NULL, `name` varchar(200) DEFAULT NULL, `payment_method` varchar(50) NOT NULL, `status` varchar(50) NOT NULL, `item_count` int(11) NOT NULL, `data` datetime NOT NULL, UNIQUE KEY `transaction_code` (`transaction_code`,`status`), KEY `name` (`name`), KEY `status` (`status`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Ou importe o arquivo pagseguro.sql que vem dentro da pasta schemas. Feito isso entre em seusite.com/?subtopic=donate e prossiga normalmente como se fosse fazer uma doação. Se ao clicar no botão de finalizar for levado a esta tela: Provavelmente você fez tudo corretamente. Qualquer bug ou dificuldade na instalação só comentar que irei ajudar. Até a próxima! Scan mais recente: Link Documentação da API: Link Agradecimentos: DexDev Natanael e Abusolute e Matk (Os sistemas anteriores me fizeram entender a logica da coisa)
  9. Olá pessoal! Vamos resolver esse problema dos monstros não passarem por cima de outros corpse para te atacarem... Trata-se de uma pequena modificação no rev3777 tfs 0.4, um bug comum nesse TFS. Aqui está a alteração que fiz para que funcione! Tile.cpp: if(!creature->canWalkthrough(*cit)) return NOTPOSSIBLE; //NOTPOSSIBLE Mude para: if (!creature->canWalkthrough(*cit) && (!cit->isCreature() || cit->isCorpse())) return NOTPOSSIBLE; // NOTPOSSIBLE Após isso, exclua todo o conteúdo da pasta "obj" e compile novamente. Pronto, o problema estará resolvido! Créditos para mim, @L3K0T
  10. Criando Spells para seu servidor!

    ypz msty reagiu a Kimoszin por uma resposta no tópico

    1 ponto
    Ola gaaaaaaalera, é com muito prazer que venho trazer esse primeiro tutorial meu como Aprendiz do TibiaKing, Spells: Bom, spells sao as magias do nosso servidor, elas servem tanto para healar, atacar, dar suporte e etc ... Criar magias é algo muito simples, vc mesmo poderam criar quantas magias quiserem para o seu servidor seguindo esse tutorial, Muito bem, vamos começar ... Spells de Curar (Healing) Fazendo a sua Spell Nao precisamos mecher aqui Aqui sera, oque vai acontecer Aqui é o effect que saira quando o player usar a spell A spell nao vai agressivar, assim podendo ser usada em areas PZ Aqui sera um Extra, a spell ira curar paralyze Formula do magic level, quanto maior mais vai healar Nao precisamos mecher aqui tambem Legenda: × Mais efeito pode ser encontrados no final do Tutorial × Oque ira acontecer, poder ser encontrado no final do Tutorial × Condições, pode ser encontradas mais no final do Tutorial Obrigado a Todos, Estou terminando de fazer o SpellMaker para facilitar a vida de vc, Abraços Spells de Atacar (Attack) Fazendo a sua Spell Nao mechremos aqui Aqui sera o tipo de dano que a spell causara Aqui é o effect que saira quando o player usar a spell setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 12) Formula do magic level, quanto maior mais vai healar Area que a spell vai atingir, Nao mecheremos aqui tambem Legenda: × Areas, podem ser encontradas no final do Tutorial × Efeitos, podem ser encontrados no final do Tutorial × Danos, podem ser encontrados no final do Tutorial Spells de Suporte (Support) Fazendo a sua Spell Nao mechemos aqui Efeito da magia Magia nao agressiva, pode ser usada em areas PZ Condição de escudo de mana O tempo que demora para essa spell acabar, 1 segundo = 1000 Nao mechemos aqui Legenda: × Efeito, pode ser encontrados mais no final do Tutorial × Condições, pode ser encontradas mais no final do Tutorial Oque a Spell vai fazer Efeitos Areas Condições
  11. 1 ponto
    Olá pessoal Preciso de um script de "clean" que dê clean somente em uma coordenada específica , ou em várias coordenadas específicas , e que soltasse um efeito "poff" se possível.. Mas ficarei grato de qualquer forma , com , ou sem efeito , e presumo estar trazendo uma idéia que pode funcionar para mais pessoas Minha distro: 0.3.6 Versão: 8.60 Remere's: 2.2 Tentei fazer um , não consegui rs , eu não consegui , mas antes de pedir resolvi tentar :D Enfim , obrigado á quem leu até aqui.. Quem trazer a solução ganha rep+ Sucesso!
  12. Pokemon Dash Evolution ~Open Source~

    Noninhouh reagiu a Refe por uma resposta no tópico

    1 ponto
    Conteúdo: **1ª Geração** **2ª - 4ª Adicionadas no Client** **Order/Fly/Ride/Surf/TP 100%* **Pequenos Bug's** ** Sources * ** Mega Evoluções no client ** ** Level system ** ** onSpawn // onMove ** **Novas Races** **Anti-Divulgação ** **Nick System(Final do tópico)** **Addon System(Final do tópico)** **TV** **Mapa Não Incluso** ** Tutoriais ensinando a fazer quase tudo! (final do topico) ** Imagens Downloads: Removendo Bugs de itens (como order, fishing, etc) Sistemas feitos para o PDE: Tutoriais feitos para o PDE: Bugs reportados:
  13. 1 ponto
    Em data/talkactions/script Crie um Arquivo com o nome playerchangename.lua Cole isto: em Talkaction Coloque isto <talkaction words="!name" filter="quotation" event="script" value="playerchangename.lua"/> No caso será usado assim: (!name"Jon Snow) Creditos @Noninhouh
  14. Script Talkaction Online

    Neeg reagiu a Dwarfer por uma resposta no tópico

    1 ponto
  15. Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. @Hokograma utilize as ferramentas do tópico para deixa-lo melhor ainda, como fiz ae, o fórum tem várias ferramentas bacana para deixar seu tópico top, utilizei 2x deles para mostrar isso, está bem melhor que antes. Obrigado pelo conteúdo, abraços!!
  16. Animação em staff.

    C H R O N I C L E reagiu a Cain Jorge por uma resposta no tópico

    1 ponto
    Oque a Script faz ? Essa script faz o seguinte: Cria uma animação para staffs com uma frase de sua escolha,e cor. no caso essa é frase 'staff' de cor branca. Vamos ao Script ! Foto: http://joxi.ru/vAWbykxiklKvR2 Em creaturescripts/scripts crie um arquivo: staffeffect.lua Dentro do arquivo cole isto: local t = {access = 3, -- acesso mínimo para sair o efeito text = "STAFF", textcolor = COLOR_ORANGE, effect = CONST_ME_FIREWORK_YELLOW, interval = 10} function onLogin(cid) if getPlayerAccess(cid) >= t.access then SendEffect(cid, t.effect, t.text, t.interval, t.textcolor) end return true end function SendEffect(cid, effect, text, time, color) if isPlayer(cid) then doSendMagicEffect(getPlayerPosition(cid), effect) doSendAnimatedText(getPlayerPosition(cid), text, color) addEvent(SendEffect, time*1000, cid, effect, text, time, color) end return true end Em creaturescripts.xml, adicione a tag: <event type="login" name="StaffEffect" event="script" value="staffeffect.lua"/> Creditos: @Dwarfer
  17. Animação em staff.

    Cain Jorge reagiu a seminu por uma resposta no tópico

    1 ponto
    Parabéns, ótimo script.
  18. BLz da só um rep depois
  19. não precisa contratar nada, da pra forcar um ssl.
  20. (Resolvido)(Resolvido)Warcastle

    Leomonti reagiu a Dwarfer por uma resposta no tópico

    1 ponto
    Edita as posições como eu mostrei lá, que vai funcionar. Agora que vi o que você fez, só tinha olhado para a função. Não são variás linhas para a COH_AREA, é somente uma linha com as posições dos andares diferentes. Assim: COH_AREA = {{x = 1207, y = 1508, z = 3}, {x = 1265, y = 1576, z = 7}} Ah, achei que ninguém poderia ficar lá na cave. Já editei lá, pode pegar.
  21. (Resolvido)(Resolvido)Warcastle

    Leomonti reagiu a Dwarfer por uma resposta no tópico

    1 ponto
    Sim
  22. Server DBO SHINKA 8.60

    elielder reagiu a KotZletY por uma resposta no tópico

    1 ponto
    Este tópico foi movido para a área correta. Esta é uma mensagem automática! Pedimos que leia as regras do fórum!
  23. Evento Backpack 100% automatico

    Pedro. reagiu a luanluciano93 por uma resposta no tópico

    1 ponto
    Coloquei no meu github, se quiser testar ... https://github.com/luanluciano93/ESTUDOS/tree/master/LUA/BP_EVENT_860
  24. 1 ponto
    vai da bom esse projeto, em breve mais detalhes.
  25. Apos mudar a senha do PhpMyAdmin em http://localhost/xampp/, vá até C:/Xampp/PhpMyAdmin/Config.inc e coloque sua senha entre 'suasenha'. Apos isso Dé Stop no Apache e Mysql. Após isso vá até no Historico do Seu Navegador e Limpe Cache, Marque todas as caixas e selecione "DESDE O COMEÇO", após isso DE Start no Apache e Mysql e veja se Resolveu seu problema.
  26. 1 ponto
    R E P U T A D O Muito obrigado @Dwarfer !
  27. [PEDIDO] Script Anti-Lixo

    Ronnnnx reagiu a ElizeuAlmeida por uma resposta no tópico

    1 ponto
    A Resposta no tópico abaixo, colocada como correta no tópico , respondido pelo @Dwarfer pode funcionar para o seu caso , assim como funcionou para o meu.. Favor Reputa-lo Devidamente.
  28. Callbacks de creaturescripts

    Agaka reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera do TK, hoje eu vim trazer pra vocês uma coisa que se perdeu em todos esses anos de OT e que é uma das coisas mais importantes prum scripter intermediário/avançado. São as explicações dos respectivos callbacks de creaturescripts. Espero que ajude bastante gente Créditos: 90% Zonnebloem (um gringo ai que postou isso das sources) e 10% pra mim por completar oque ele não tinha escrito e arrumado umas coisas que ele escreveu errado. ____________________________ CREATURE EVENTS TIPOS: _________________ TFS 0.2 type="login" function onLogin(cid) type="logout" function onLogout(cid) type="advance" function onAdvance(cid, skill, oldLevel, newLevel) type="think" function onThink(cid, interval) type="kill" function onKill(cid, target) type="death" function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) type="preparedeath" function onPrepareDeath(cid, killer) TFS 0.3/0.4 type="login" function onLogin(cid) type="logout" function onLogout(cid) type="advance" function onAdvance(cid, skill, oldLevel, newLevel) type="think" function onThink(cid, interval) type="kill" function onKill(cid, target, lastHit) type="death" function onDeath(cid, corpse, deathList) type="preparedeath" function onPrepareDeath(cid, deathList) type="statschange" function onStatsChange(cid, attacker, type, combat, value) type="combat" function onCombat(cid, target) type="target" function onTarget(cid, target) type="look" function onLook(cid, thing, position, lookDistance) type="textedit" function onTextEdit(cid, item, newText) type="outfit" function onOutfit(cid, old, current) type="push" function onPush(cid, target) type="follow" function onFollow(cid, target) type="attack" function onAttack(cid, target) type="areacombat" function onAreaCombat(cid, tileItem, tilePosition, isAggressive) type="cast" function onCast(cid, target) type="direction" function onDirection(cid, old, current) type="reportbug" function onReportBug(cid, comment) type="sendmail" function onSendMail(cid, receiver, item, openBox) type="receivemail" function onReceiveMail(cid, sender, item, openBox) type="traderequest" function onTradeRequest(cid, target, item) type="tradeaccept" function onTradeAccept(cid, target, item, targetItem) type="joinchannel" function onJoinChannel(cid, channel, users) type="leavechannel" function onLeaveChannel(cid, channel, users) TFS 1.0 type="login" function onLogin(cid) type="logout" function onLogout(cid) type="think" function onThink(cid, interval) type="preparedeath" function onPrepareDeath(cid, killer) type="death" function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) type="kill" function onKill(cid, target) type="advance" function onAdvance(cid, skill, oldLevel, newLevel) type="modalwindow" function onModalWindow(cid, modalWindowId, buttonId, choiceId) type="textedit" function onTextEdit(cid, item, text) type="changehealth" function onChangeHealth(cid, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType) type="changemana" function onChangeMana(cid, attacker, manaChange) type="extendedopcode" function onExtendedOpcode(cid, opcode, buffer) ____________________________ INFORMAÇÃO SOBRE OS TIPOS: _________________ antes de tudo tenha em mente que os tipos só serão executados no player ou monstro em que eles forem registrados; Registrar no login.lua vai fazer com que ele seja executado em todos os players assim q eles logarem. Se deve ser executado somente por alguns monstros, registre no monstro em questão no xml dele. login Quando é executada: - Quando um player loga Parametros: - cid = creatureid do player que logou quando está return false: - nada registra creature event: - não ~~~~ logout Quando é executada: - quando um player desloga pelo logout do próprio cliente. Não acontece se o player morrer, for disconectado ou xlogs Parametros: - cid = creatureid do player que deslogou quando está return false: - Player não vai conseguir deslogar registra creature event: - não ~~~~ advance Quando é executado: - Toda vez que um player avançar de level, magic level ou qualquer outra skill Parametros: - cid = creature id do player que avançou - skill = tipo da skill que o player avançou vide tabela abaixo (note que vc pode utilizar tanto o nome SKILL_FIST quanto o numero 0) SKILL_FIST = 0 SKILL_CLUB = 1 SKILL_SWORD = 2 SKILL_AXE = 3 SKILL_DISTANCE = 4 SKILL_SHIELD = 5 SKILL_FISHING = 6 SKILL__MAGLEVEL = 7 SKILL__LEVEL = 8 - oldlevel = level antes do player avançar - newlevel = o novo level após avançar quando está return false: - ele não vai avançar o nível Registra creature event: - sim (isso significa que vc pode colocar pra ele registrar um outro creatureevent dentro desse script após alcançar X level) ~~~~ think Quando é executada: - Pelo tempo Parametros: - cid = creatureid do monstro ou player - interval = intervalo entre cada checagem OU em que intervalo deve ser executada, 500 é 0.5 segundo. quando está return false: - nada Registra creature event: - sim ~~~~ kill Quando é executada: - Ao matar um player/monstro Parametros: - cid = creatureid do player ou do monstro que mata - target = creatureid do player ou monstro que é morto quando está return false: - O target não morrerá, ele ficará com 0 de vida e a barra sumirá para os inimigos.Ele precisará se curar para que sua barra de vida volte registra creature event: -sim ~~~~ death Quando é executada: - Quando um player ou monstro morrem Parametros: - cid = creatureid do player monstro que morre - corpse = corpo do monstro ou player que morre exemplo de adicionando 3 crystal coins no corpo que morreu. doAddContainerItem(corpse.uid, 2160, 3) - deathlist = uma table com o nome de todos que mataram, sendo na ordem o deathlist[1] oque deu o ultimo hit e o deathlist[2] sendo oque deu mais dano. quando está return false: - O corpo não será criado Registra creature event: - Sim ~~~~ preparedeath Quando é executada: - Quando um monstro ou player está prestes a morrer (pode ser usada em scripts que devem ser executados no segundo antes do player morrer) Parameters: - cid = creatureid do player ou monstro que está prestes a morrer - deathlist = uma tabela com o nome dos atacantes quando está return false: - o player ou monstro não irá morrer (mesma história do kill) Registra creature event: - Sim ~~~~ statschange quando é executada: -Quando um player ou monstro ou ganha ou perde vida/mana de um combat ou uma função (combats não são só os das spells, mas também weapons/fist/melee... vale lembrar também que monstros não possuem mana) Parametros: - cid = creatureid do player ou monstro q ganha/perde vida/mana - attacker = creatureid do player ou monstro que causou a mudança na health/mana - type = tipo da mudança, sendo ela:Ganho de vida, perca de vida, ganho de mana e perca de mana vide tabela abaixo: STATSCHANGE_HEALTHGAIN = 0 STATSCHANGE_HEALTHLOSS = 1 STATSCHANGE_MANAGAIN = 2 STATSCHANGE_MANALOSS = 3 - combat = o tipo de combat que causou a alteração, sendo esses tipos: COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_POISONDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048 - value = valor da mudança quando está return false: - O player ou o monstro não ganharão/perderão vida/mana no combat. Pode ser usado pra fazer ele ficar imortal por um certo período ou não ser capaz de tomar dano de certos players/creaturas Registra creature event: - Sim ~~~~ combat Quando é executado: - Quando um player ou monstro starta um combat (qualquer tipo de ataque) Parametros: - cid = creatureid do player ou monstro que usa o combat - target = creatureid do player ou monstro que sofre o combat quando está return false: - O player ou monstro não será capaz de levar ataques, isso também inclui que ele não poderá dar target em alguém/algo . Isso pode ser usado para criar monstros que não possam levar ataques ou fazer players ficarem imunes a dano por um certo tempo. Registra creature event: - Sim _______________________________________________________________________________________________ Agora começa a graça da coisa: ~~~~ target Quando é executado: - Quando um player ou monstro dá target em um player/mostro (follow/attack) Parametros: - cid = creatureid do player ou monstro que dá o target - target = creatureid do player ou monstro que é targeted quando está return false: - O player/monstro não poderá dar target.. alguns testes com monstros revelaram que o monstro ainda consegue te atacar então acho que essa função só serve para player Registra creature event: - Sim ~~~~ look Quando é executado: - Quando um player dá look em algo Parametros: - cid = creatureid do player que dá o look - thing = objeto/player/monstro que o player dá look - position = não tenho certeza se é a posição do objeto que é dado look ou se é a minha posição. - lookDistance = distancia entre esse objeto e eu. quando está return false: - Não aparece a mensagem de look na tela Registra creature event: - Sim ~~~~ textedit Quando é executado: - Quando um player edita um texto em algum item writeable (livros por exemplos) Parametros: - cid = creatureid do player - item = item que está sendo modificiado - newText = texto novo que foi escrito quando está return false: - O player não conseguirá editar o texto, quando ele tentar dar ok o item continuará com o mesmo texto.. Pode ser usado numa quest com muito RPG pra checar se a senha que o player escreveu no livro é a correta. Registra creature event: - sim ~~~~ outfit Quando é executado: - Quando um player ou monstro muda de outfit Parametros: - cid = creatureid do player ou monstro que muda de outfit - old = outfit antiga - current = outfit atual (após ter trocado) quando está return false: - a troca de outfit será cancelada e o player/monstro voltará para a antiga outfit Registra creature event: - sim ~~~~ push Quando é executado: - Quando um player tenta empurrar um monstro ou um player Parametros: - cid = creatureid do player que empurrar - target = creatureid do player ou monstro que é empurrado quando está return false: - O player não conseguirá empurrar (arrastar o oponente com o mouse). É bastante util em eventos para que eles não possam ficar se empurrando Registra creature event: - sim ~~~~ follow Quando é executado: - Quando um player dá follow em algum monstro ou player ou até num NPC Parametros: - cid = creatureid do player que dá o follow - target = creatureid da criatura (monstro/npc/player) que é seguida quando está return false: - O follow não irá ocorrer Registra creature event: - Sim ~~~~ attack Quando é executado: - Quando um player ou monstro ataca (melee, spells não contam) Parametros: - cid = creatureid do player ou monstro que ataca - target = creatureid do player ou monstrp que sofre o ataque quando está return false: - O player/monstro não irá atacar, é bastante útil em sistemas que vc queira deixar uma certa criatura imune a ataques mas que ela ainda possa morrer pra spells Registra creature event: - Sim ~~~~ areacombat Quando é executado: - Quando um player ou monstro starta um combat em área (usa uma spell ou dano em área) Parametros: - cid = creatureid do player ou monstro que usa o combat - tileItem = player que está dentro da area - tilePosition = posição do player que está dentro da area - isAggressive = se esse combat em área é agressivo ou não, lembre-se que magias como exura gran mas res fazem combat em área mas esse combat não é agressivo porque ela cura em área quando está return false: - o combat é cancelado Registra creature event: - Sim ~~~~ cast Quando é executado: - Quando um player ou monstro solta uma magia Parametros: - cid = creatureid do player ou monstro que usa a magia - target = creatureid do player ou monstro que sofre o dano da magia quando está return false: - a magia não é lançada Registra creature event: - sim ~~~~ direction Quando é executado: - Quando uma criatura (NPC/Player/Monster) muda de direção Parametros: - cid = creatureid do player ou monstro que mudará de direção - old = direção antiga - current = direção atual, após ter mudado, vide tabela abaixo: NORTH = 0EAST = 1 SOUTH = 2 WEST = 3 SOUTHWEST = 4 SOUTHEAST = 5 NORTHWEST = 6 NORTHEAST = 7 atente-se no fato de que não é possível virar pras direções 4,5,6 e 7 mas você utilizá-las num script que cheque a direção entre dois players, daí sim seria possível (como é no caso do exiva) quando está return false: - A criatura não será capaz de mudar de direção Registra creature event: - Sim ~~~~ reportbug Quando é executado: - Quando um player reporta um bug Parametros: - cid = creatureid do player que reportou o bug - comment = comentário que ele adicionou ao reportar quando está return false: - O report será cancelado e não será enviado. Pode ser usado num script avançado de reports onde se o player não tiver escrito nenhum comentário ou tiver escrito determinadas palavras o envio será cancelado (pra evitar spams) Registra creature event: - Sim ~~~~ sendmail Quando é executado: - Quando um player manda uma carta/parcel para outro Parametros: - cid = creatureid do player que mandou a correspondencia - receiver = creatureid do player que irá receber essa correspondencia - item = item que foi enviado (id dele) - openBox = conteúdo (no caso de parcel) quando está return false: - Correspondência não será enviada. É util pra registrar um log de todas as trocas entre players e pegar hackers. Registra creature event: - Sim ~~~~ receivemail Quando é executado: - Quando um player recebe uma carta/parcel de outro Parametros: - cid = creatureid do player que recebou a correspondência - sender = creatureid do player que enviou a correspondência - item = item recebido - openBox = conteúdo da correspondencia (no caso de ser uma parcel) quando está return false: - Ele não receberá a correspondência. Registra creature event: - Sim ~~~~ traderequest Quando é executado: - Quando um player dá trade Parametros: - cid = creatureid do player que deu o trade - target = creatureid do player que ele tentou iniciar uma troca - item = item que foi iniciada a troca (se for uma backpack cheia de coisas dentro esse item será uma table com todos os itens) quando está return false: - A troca não será executada. É útil para scripts de itens vip onde o player não possa trocar determinados itens Registra creature event: - Sim ~~~~ tradeaccept Quando é executado: - Quando um player aceita a troca com outro) Parametros: - cid = creatureid do player que aceitou a troca (você) - target = creatureid do player que aceitou a troca (cara com quem você trocou) - item = items que você deu em troca, no caso de uma backpack cheia de itens esse parametro será uma table com todos os itens - targetItem = items que você recebeu em troca, no caso de uma backpack cheia de itens esse parametro será uma table com todos os itens quando está return false: - a troca não será concluída. Registra creature event: - Sim ~~~~ joinchannel Quando é executado: - Quando um player entra num channel (aqueles canais tipo trade/ help chat/ info/ guild/ etc...) Parametros: - cid = creatureid do player que entrou no chat - channel = canal que o player entrou.. vide lista abaixo: CHANNEL_GUILD = 0 CHANNEL_PARTY = 1 CHANNEL_RVR = 3 CHANNEL_HELP = 9 CHANNEL_DEFAULT = 0xFFFE CHANNEL_PRIVATE = 0xFFFF - users = outros usuários do canal. quando está return false: - O player não conseguirá entrar no channel Registra creature event: - Sim OBS: a mesma coisa vale pra função leavechannel, só que o return false o player não conseguirá sair do channel. Espero que isso ajude bastante gente, eu não expliquei os types da versão 1.0 porque é basicamente a mesma coisa e pelos parametros dá pra você ter uma ideia doque é oque. :]
  29. [7.4, 7.6, 7.72] Tibia Classic Bot

    joaaoinacio reagiu a grafit por uma resposta no tópico

    1 ponto
    Tibia Classic Bot Versões 7.4 , 7.6 e 7.72 Esse é um dos poucos bots e o mais completo para estas versões mais antigas... Eu tenho acompanhado desde a versão 1.6.4 dele (atual 1.6.8). Segue abaixo algumas das hotkeys que podem ser usadas nele: Para que a hotkey fique "automática" ela deve ser adicionada na parte persistent , caso contrário a hotkey só será ativada uma vez. Download: https://mega.co.nz/#!x41jxAqa!sqL7cfy3_p-4wjfOrPB1qpUq_UrHuUd46G1wBJVn9nI Scan: https://www.virustotal.com/pt/file/b86169815eeddbaef3808be3d60e523b8a73a18113056ee516f10efd61105207/analysis/1400633901/ Créditos: Xavious O BOT também pode ser encontrado no seguinte link: http://tpforums.org/forum/threads/3889-7-4-7-6-7-72-ClassicBotter-1-6-8
  30. 1 ponto
    Primeiramente o artigo não é meu só achei interessante e pensei em compartilhar com vocês, o autor se chama William Bruno. Link Original : http://wbruno.com.br/opiniao/diferenca-entre-cara-programa-um-programador/ O ato de escrever códigos te faz ser um cara que programa, mas não necessariamente um programador. Okay, eu “inventei” agora a diferença entre esses termos. Digamos que ambos cumprem o papel e resolvem o problema. A diferença está na forma de pensar deles. Existem diversas maneiras de se chegar a um mesmo resultado. Umas mais claras, diretas, outras mais bonitas, elegantes, as vezes nebulosas, cheias de voltas e emaranhados, boas ou ruins. Apesar do peso de subjetividade que esses termos carregam. Na minha opinião, um bom código é aquele que, chega onde deve chegar, sendo este legível aos envolvidos, e aqueles que não sabem do que se trata. -> Bom em performance; -> Sem rotinas confusas ou desnecessárias(as famosas gorduras); -> Bem indentado e organizado. Apenas isso. Simples e objetivo. Toda a comunidade, conhece ou deveria conhecer os conceitos que citei. (Keep It Simple, Faça o Simples que Funcione, Você não vai precisar disso, Don’t Repeat Yourself…) Não quero me alongar sobre cada um deles. O meu ponto é: “Um CQP [Cara Que Programa], não leva ou nem sempre leva em consideração estas ‘máximas’.” Já um VP [Verdadeiro Programador], possui esses conceitos incorporados a ele. Na forma de pensar, na maneira de codificar. Para um Programador, é natural, para o CQP, ainda não é. Todos sofremos pressão, temos prazos apertados, situações difíceis… Este é o nosso mundo. A agência ou empresa, pode lhe dizer que é tranquilo, que são pacientes, que os prazos são legais, e tudo mais.. Porém faz parte da arte de programar. Cedo ou tarde, mais ou menos vezes, nos deparamos com algo urgente e impossível, para ontem. Um programador resolve da melhor forma possível, enxergando na frente, o outro faz apenas para se ver livre, e entregar logo. O erro aqui, é que depois aquele monstrinho volta, e nem sempre podemos ou temos tempo de refazer ou corrigir. Dai surgem as cabeças dos nossos monstros. Duas, Três, Sete… a tendência é piorar. Começou errado, por preguiça, falta de conhecimento, mal planejamento, ego… Um CQP, acha que sabe tudo, ou não se importa de não saber, e nem tenta. Um VP, tenta saber, sempre busca melhorar, aceita analisando as críticas recebidas, e gosta do que faz. Fazer bem feito lhe deixa feliz, o contrário lhe incomoda. O melhor programador não é aquele que complica mais. Códigos de linguagens alto nível, devem ser escritos por humanos e para humanos. As máquinas entendem, tanto códigos bem escritos, quanto códigos ruins, mas e você no futuro ? e o outro programador ? Acho que todos nós já demos continuidade no trabalho de alguém. Já vimos scripts porcos, e outros bem feitos. Quando alguém pegar um trabalho nosso, vamos tentar ser aquele que não será xingado, e nem fez o outro programador perder horas e horas, entendendo as loucuras que fizemos. Se faça essa pergunta. O que você é? Qual dos dois?
  31. Então é melhor esperar alguém que saiba aparecer... Isso não vai dar em nada =S
  32. Compilar Otserver Em Linux Ubuntu O Melhor!

    Vim Rusha reagiu a OhGod por uma resposta no tópico

    0 pontos
    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
  33. Task System 1.2+

    BeahFor reagiu a KotZletY por uma resposta no tópico

    -1 pontos
    @Jobs hehehe, nice, nice, nice, não mexo com modalwindow, meu servidor é 8.60, usando OTX 1.3, então como não tem diferença os scripts para as versões 1.x, então resolvi postar, vai pegar em todos, seja 11, seja TFS, seja client 10, 11, 9, 8, 7, sendo distro 1.x, já ta valendo! Hehehe xD
  34. [Tutorial] Ajustando andar diagonal

    BeahFor reagiu a KotZletY por uma resposta no tópico

    -1 pontos
    Movido e aprovado. Obrigado por compartilhar com a comunidade!!
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo