Líderes
-
-
Gabriel Netto
MembroPontos43Total de itens -
-
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 08/08/16 em todas áreas
-
[Ichigo][Eternal-Scripts] Peça seu Script aqui!
[Ichigo][Eternal-Scripts] Peça seu Script aqui!
TiuoDrog e 2 outros reagiu a Cjaker por uma resposta no tópico
3 pontosOlá TibiaKing! Nesse tópico pretendo atender a necessidade de todos com pedidos de Scripts. * Como funciona? - Simples, basta responder esse tópico com todos os detalhes do script que você está precisando, e assim que eu tiver tempo, colocarei o Link do Download nesse tópico. * Todo tipo de pedido é válido? - Dependendo se é possível e/ou se o Script não for de um nível de dificuldade elevado, posso sim fazer. (Não me peça que levam BASTANTE tempo pra fazer, peça por exemplo: Equip Ring) E é isso ai galera, quero levantar um pouco essa seção do Fórum. OBS: Não esqueça do seu REP+ isso incentiva bastante meu trabalho em ajudar vocês =) == [[ Pedidos ]] == usthiago: http://pastebin.com/YkSCbNWz Guilherme: https://www.dropbox.com/s/yotinqrwgxq7qyx/[Eternal-Scripts] Amazon Camp.rar == [[ Scans ]] == Guilherme: https://virustotal.com/pt/file/cfecb191f8bc5b776fdb2fda72342e3b4aa8fc1b01de307a240dd2854ba82369/analysis/1470835771/ ESSE TÓPICO SERVE APENAS PARA PEDIR SCRIPTS PARA XENOBOT, NÃO PEÇA SCRIPTS PARA OTSERV! - @Wakon3 pontos -
DEV C++ Compilando TFS no Windows
DEV C++ Compilando TFS no Windows
Gabriel485 reagiu a Natanael Beckman por uma resposta no tópico
1 pontoDEV C++, aprenda a compila uma source TFS! Downloads(Baixe de acordo as configurações do seu windows): DEV C++ CONFIGURADO PARA 32BITS DEV C++ CONFIGURADO PARA 64BITS REV 3884 TFS 0.4 Certo, feitos os downloads, extrai DEV C++ no Disco C e REV 3884 em Documentos. ====================================== Abra o DEV C++: ====================================== ====================================== Abra a Source: ====================================== ====================================== Localize a pasta da Source e abra o arquivo TheForgottenServer.dev, Documentos> trunk.r3884> dev-cpp> TheForgottenServer.dev: ====================================== ============================================================= ====================================== Aguarde carregar todos os arquivos: ====================================== ====================================== Vamos adicionar o parâmetro -D__CONSOLE__ no teclado digita ALT + P, clique em parameters e adicione o parâmetro... Feito? clique em OK: ====================================== ====================================== Vamos compilar Source, no teclado digite CTRL+F9 e aguarde finalizar o processo: ====================================== ====================================== Se der tudo certo em Log vai estar como mostra a imagem abaixo: ====================================== ====================================== Verifique na pasta Documentos> trunk.r3884> dev-cpp você vai encontrar o arquivo TheForgottenServer.exe e pronto meu parabéns você compilou! ====================================== =========================================== Só isso galera tutorial rápido resumido e útil! Créditos Natanael Beckman! =========================================== Caso você adquira uma source com apenas os arquivos .cpp e .h e não sabe como compilar o projeto, abaixo vamos explicar: Na pasta onde está localizado os arquivos .cpp e .h crie uma pasta chamada dev-cpp, e dentro dela adicione uma imagem icone. Abra o DEV-C++, clique em File> New> Project: Logo em seguida selecione Empty Project, em name terá o nome Project1 altere utilize o nome quer quiser, após isso clique em OK e em seguida selecione a pasta dev-cpp que criamos: Agora selecione a opção Win32GUI caso use source OTX ou TFS selecione Win32Console ao lado << Browse selecione a imagem do icone que está na pasta Dev-Cpp. No mesmo menu na aba Parameters em C++ compiler adicione os seguintes parâmetros: -D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D__GROUND_CACHE__ -D__USE_SQLITE__ -D__USE_MYSQL__ -D__CONSOLE__ -D__WAR_SYSTEM__ E em Linker adicione as seguintes libs: -lboost_filesystem -lboost_thread -lboost_system -lboost_regex -lsqlite3 -lwsock32 -llua5.1 -lws2_32 -leay32 -lmysql -lxml2 -lgmp -lz -s No mesmo Menu na aba Build Option escreva na segunda coluna horizontal escreva Obj e dê OK. Na lateral terá o nome do seu projeto o meu no caso é The Forgotten Server, clique com o botão direito do mouse em cima do nome e clique na opção Add Project: Selecione na pasta da sua source todos os arquivos .cpp e .h após isso salva o projeto e já pode compilar CTRL+F9: OpenSSL 0.9.8 1º baixe http://devpaks.org/details.php?devpak=73 2° abra Dev-Cpp > Tools > Packager Manager > Install > Seleciona o arquivo baixado e instala, fecha abre e testa! Clica aqui \/1 ponto -
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
[v32] GlobalFull 11/12 - New Asuras, Falcons, Warzones 4,5,6 . (Updates Frequentes)
anderson de souza reagiu a Qwizer por uma resposta no tópico
1 pontoGlobal 11/12x [v32] - New Falcons - New Asuras - Warzone 4,5,6 - Exercise Training - Raids 100% - Monstros 100% - Trainer Offline 100% - Trainer Online 100% - Taming system funcionando 100%; - Database completa - War System 100% - Global MAP Full - Store 100% - Imbuement - Prey System - Entre outros sistemas. Projeto no: GITHUB Scan Vírus Total IMAGES Créditos:1 ponto -
(2º) | [8.60] - Glorious Server
1 pontoBaseado no Galaxy Server e uns update feito, esse é o melhor OT que eu fiz, por enquanto. '-' Baixe e vejam, in game é mais show. Ta bem dahora as VIPS, deem uma olhada; ■ Glorious Server ■ 8.60 ■ By: Juliano e João - Novo templo - 10 VIPS Free - 1 VIP Donate - 1 VIP Supremmy - System Points - Sala Donates - 3 Novas citys - 35 novas quests - 6 Novos Sets - TFS 3.1 - Novos Sistemas instalados - Novos monstros, NPc's e comandos explicativos - Não contém nenhum bug in game. - Contém alguns erros no distro, não consegui resolver. - Novas ilhas e novas VIPS Senha do ADM: juliano1 / juliano2 Senha para descompactar: jNo Scan Download OBS: Conteúdo exclusivo do Tibia King, não aceito que postem em outros forums, se postar eu vou pedir pra remover.1 ponto
-
OT Svke
OT Svke
Dragonyck reagiu a Gabrieltxu por uma resposta no tópico
1 pontoFla ai Galera do TK Hj venho Poster um Server Baseado no Antigo SVKE não esta 100% como ele mais esta Otimo Como base xD Algums Systemas basicos : • M1 até m12 - 100% • Pokedex - 100% • Evolution System - 100% • Portrait - 100% • Fishing - 100% • Surf - 100% • Fly - 100% • Ride - 100% • Catch - 100% • Go/Back - 100% • NPC Heal - 100% • Box System - 100% • Light System - 100% • Pokemons Shinys - 100% • Pokemons Christmas - 100% • e Outros Sistemas - 100% • Control Mind - 100% • Ditto Sistem - 100% • Ice Quest - 100% • Desert Quest - 100% • Mapa Svke - 100% • Novas Huntes - 100% Oque Precisa ser arrumado: -->Tempo para usar Poder ------------------------------------------------------------- -->a Nurse Não ta Healando Não sei Pk -------------------------------------------------------------- -->Colocar Pokemons de jhoto mais como sabem o SVKE Tinha Só até a 1° ------------------------------------------------------------- -->Configurar algums Loot ------------------------------------------------------------ Só isso que eu achei Por enquanto qual quer coisa Postem aki as coisas para arrumar e me Avisem Ok? xD Bug Arrumados 100% Atualizado Sem Bug Agora Creditos Downloads: http://www.4shared.c...kemon_Svke.html Client: http://www.4shared.c...fK/Client_P.htm Server: Map By : Dash Edited : Alcides e Glauber e Gabrieltxu Remoção de Bugs : Alcides e Glauber Qual quer coisa comentem ai xD! rep++ se gostou!1 ponto -
[Básico] Aprendendo Script
1 ponto---Tutorial by Leo --- Bom galera, venho através desse tutorial tentar ajudar aqueles que querem aprender um pouco mais sobre a área de scripting. Vai ser bem básico, como muita gente tinha me pedido por pm (então resolvi fazer para acabar com o enjoo =P). Acredito que existam muitos tutoriais, alguns bons, outros não, e como vinham me pedindo, ou os tutoriais eram ruins, ou queriam uma visão de outra pessoa (quem sabe com outra pessoa falando, entenda melhor). Diante mão, vou logo dizendo que não me considero um bom scripter ou coisa perto disso até porque estou nisso há menos de 1 mês, mas vou tentar ajudar as pessoas com o pouco que sei. Nessa primeira parte, vamos ver os seguintes pontos: 1. [LÓGICA DE PROGRAMAÇÃO] 1.1 O que é um algoritmo? 1.2 Um exemplo de algoritmo. 1.3 Exercício: Faça seu próprio algoritmo. 1. Desde que existe o ser humano, existe programação. Quando os homens da pré-história iam caçar, ele se programavam, decidiam quais passos tinham que seguir a fim de alcançar a caça. (hehe) Com o computador não é diferente, você deve dar os passos para que ele possa executar as ações e alcançar o objetivo, que no nosso caso, é o sucesso do script. Isso é a linguagem de programação, é uma linguagem criada para instruir o computador a realizar suas tarefas, e o programador deve seguir uma lógica para colocar cada parte do script no seu devido local, essa é a lógica de programação. 1.1 Algoritmo é nada mais que uma "receita" que deve ter os passos seguidos pelo computador para realizar uma tarefa. Esses passos não devem deixar o computador com dúvidas, e portanto, devem ser bem definidos e claros. 1.2 Vamos a um exemplo de um algoritmo. Algoritmo: Preparar um cafezinho Geralmente, tomamos um cafezinho logo quando acordamos então a primeira coisa que devemos fazer é: Acordar Se não tiver água quente então Colocar água na panela Colocar a panela no fogão Ligar o fogão Esperar água ferver Vejam que se esses passos acima forem seguidos rigorosamente, você vai conseguir por a água para ferver. Continuando... Mas se já tiver água quente então Botar água na xícara Botar duas colheres de açúcar Botar uma colher de café em pó Mexer Tomar Dizer: Delíiiciaa =P Vejam, que aí estão os passos exatos para preparar um cafezinho. Aliás, mais do que preparar, até tomar o café. Como ficou o algoritmo: 1.3 Faça um algoritmo para: Ir à escola/faculdade (não precisa postar, é só para treinar). 2. [sCRIPTEANDO] 2.1 Arquivos de Base 2.2 Controladores Lógicos - Condicionais - Operadores de relação - Operadores-controladores 2.3 Variáveis 2.4 Storage Nessa parte, vamos começar a parte de script realmente. Lembrando que existem muitos tutoriais e só esse aqui não é o bastante, até por estar bem básico. 2.1 Os arquivos que podem dar auxílio na hora de fazer os seus scripts são: -- Em data/lib (alguns, global.lua) encontre o arquivo: 000-constant.lua que dá muitas informações sobre o server, como por exemplo, id dos channels, id das skulls, tipos de mensagens, etc.. é bastante útil na construção dos scripts. -- Ot script Live by Colex: Programa que facilita bastante pros iniciantes. Ele marca algumas funções em uma cor diferente além de executar o script para ver se há algum erro de escrita. Em alguns fórums tem, é só usar o sistema de busca. -- Notepad++: Um editor de texto que também pode ser útil. 2.2 Os controladores lógicos são aqueles que colocarão em prática a sua lógica de programação. São eles que guiarão os passos que o computador deve seguir. --- Condicionais Acho que todos sabem o que é um condicional. Como o nome já diz, ele abre uma condição para que algo possa ser feito. Exemplo: Caso não chova, irei jogar bola. Então, isso é uma condição, a condição de que não esteja chuvendo. Se não chover eu jogo, se chover não jogo. Na programação, os principais condicionais são: if -- equivale ao se em português. Está presente em todas linguagens de programação. Provavelmente, você já o viu nas aulas de português. Ele abre uma condição. Regra: Todo if tem seu end. else -- equivale ao senão. Vai ser executado caso a primeira condição aberta pelo if seja falsa. elseif -- equivale a "senão se" ou "mas se". Ele evita a repetição de vários se. Não precisa de end, "utiliza" o end do if. Construindo um algoritmo só para exemplificar: Pegando o exemplo acima, vamos usar o elseif. ---- Operadores de relação Os operadores de relação são aqueles que vocês estudam em matemática: igual, maior igual, menor igual...Em lua, é um pouco diferente: igual: = menor igual: <= maior igual: >= verificação: == Esse de verificação serve para checkar se algo é realmente igual. A diferença dele para o de igual "=" é que o igual serve para atribuir valores. Exemplo: se o level do player == 100 então -- verifica se o level do player é realmente 100 --- Operadores controladores Esses operadores são o and e o or que significa basicamente "e" e "ou", respectivamente. O and verifica se todas as condições são verdadeiras para executar algo. Exemplo: se o player tem level 100 e o nome dele é Leoking então execute script fim Perceba que só será executado caso a condição de ser lvl 100 e o nome ser Leo sejam respeitadas. No caso do or, é necessário que apenas uma delas seja respeitadas. Exemplo: se o player tem level 100 ou o nome dele é Leo então execute script fim Nesse caso, com somente uma condição sendo respeitada, já é o bastante para que o script seja executado. 2.3 Variáveis: Servem basicamente para guardarem valores. Exemplo: O script retornará: king -- king é exatamente o valor da variável var. 2.4 Storage: É simplesmente uma função que vai guardar um valor ou letra, palavra, etc. Para dar um storage usamos a função: setPlayerStorageValue(cid, valor, novo valor) Exemplo: setPlayerStorageValue(cid, 1234, 1) Para verificar se um player tem um storage usamos a função: getPlayerStorageValue(cid, valor) Exemplo: getPlayerStorageValue(cid, 1234) Essas funções você pode ver naquele arquivo de base: lista de funções em lua Agora a última parte desse mini tutorial: 3. [ACTIONS] 3.1 Sintaxe das actions 3.2 Exemplo de actions 3.1 A sintaxe das actions é: function onUse(cid, item, fromPosition, itemEx, toPosition) mas também podem ser encontradas como fromPos, toPos, isso vai depender de como o scripter queira e como vai usar no script. Usei essa que está em negrito, pois, já é a padrão. Agora a explicação: function onUse(cid, item, fromPosition, itemEx, toPosition) Primeramente, é bom lembrar que assim como o if, toda função (function) tem seu end. Exemplo: Explicação da sintaxe: onUse = ao Usar (assim que o player use um item) cid = creature id -- quem vai usar o item item = item que será usado ou item "principal" fromPosition = da Posição itemEx = item "secundário" toPosition = para a Posição 3.2 Vamos colocar em prática tudo que lemos até agora. Nossa action fará: [/center] [center]Ao dar use em um item --- para inserir comentários que não alterarão o script, é só colocar -- e escrever[/center] [center]Se o player for level maior ou igual a 100 então[/center] [center]Sumona um monstro em uma posição[/center] [center]Manda uma mensagem para o player[/center] [center]Manda um efeito no player[/center] [center]se não for level 100[/center] [center]Manda uma mensagem para o player[/center] [center]fim do script[/center] [center] [/center] [center]function onUse(cid, item, fromPosition, toPosition, itemEx) --- sintaxe das actions[/center] [center]if getPlayerLevel(cid) >= 100 then -- se o level do player é maior igual a 100 então[/center] [center]doSummonCreature("Demon", {x=1, y=1, z=1}) --- sumona um demon na posição determinada. Todo valor que seja uma letra, palavra deve estar entre aspas. A posição, entre chaves.[/center] [center]doPlayerSendTextMessage(cid, 22, "Você sumonou um Demon.") -- manda uma mensagem do tipo 22 (veja no constant.lua)[/center] [center]doSendMagicEffect(getPlayerPosition(cid), 10) -- manda um efeito de id 10 (veja constant.lua) na posição do player[/center] [center]else -- se não[/center] [center]doPlayerSendTextMessage(cid, 22, "Você não tem level 100.")[/center] [center]end -- end do if[/center] [center]end -- end da função[/center] [center] Toda script deve ser registrado em um arquivo.xml, no caso da nossa action,será registrado no actions.xml e como é o item que será usado, usaremos itemid: <action itemid="IDDOITEM" event="script" value="NOMEDOARQUIVO.lua"/> Esse foi nosso script usando quase tudo que explicamos anteriormente. Vamos usar agora storage e variáveis nesse script. Vimos que variáveis podem guardar valores, seja númerico ou não. Então, podemos fazer com que não precisemos editar o monstro, a posição e o level dentro do script. (não vou explicar o que é uma variável local e global, pois é intuitivo -- se tiverem dúvidas procurem em outros tutoriais). Podemos colocar: --- Guardando os valores com variáveis --- local monster = "Demon" -- entre aspas, lembre-se! local pos = {x=1,y=1,z=1} -- entre chaves! local minlevel = 100 -- minimo de level Ok até aqui, então nosso script ficaria: [/center] [center]local monster = "Demon"[/center] [center]local pos = {x=1,y=1,z=1}[/center] [center]local minlevel = 100[/center] [center]function onUse(cid, item, fromPosition, toPosition, itemEx)[/center] [center]if getPlayerLevel(cid) >= minlevel then[/center] [center]doSummonCreature(monster, pos)[/center] [center]doPlayerSendTextMessage(cid, 22, "Você sumonou um Demon.")[/center] [center]doSendMagicEffect(getPlayerPosition(cid), 10)[/center] [center]else[/center] [center]doPlayerSendTextMessage(cid, 22, "Você não tem level 100.")[/center] [center]end[/center] [center]end[/center] [center] Mas, digamos que vou passar esse script para um amigo e ele não sabe nada de editar scripts. Aí você fala, é só colocar o nome do monstro no lugar do Demon. Ele vai e faz: [/center] [center]local monster = "Rotworm" --- olha aqui[/center] [center]local pos = {x=1,y=1,z=1}[/center] [center]local minlevel = 100[/center] [center]function onUse(cid, item, fromPosition, toPosition, itemEx)[/center] [center]if getPlayerLevel(cid) >= minlevel then[/center] [center]doSummonCreature(monster, pos)[/center] [center]doPlayerSendTextMessage(cid, 22, "Você sumonou um Demon.")[/center] [center]doSendMagicEffect(getPlayerPosition(cid), 10)[/center] [center]else[/center] [center]doPlayerSendTextMessage(cid, 22, "Você não tem level 100.")[/center] [center]end[/center] [center]end[/center] [center] Ou seja, vai sumonar um rotworm mas vai mandar a mensagem: Você sumonou um Demon. Como resolver isso? Existe os strings, (não vou me aprofundar) vou dar um exemplo e mostrar como ficaria. Exemplo: local var = king imprima("Você quis dizer ".. var .."?) Retornaria: Você quis dizer king? Percebam que é só colocar ".. variavel .." . Além de resolver o problema do monster, também poderíamos fazer isso com o level, no nosso script ficaria: [/center] [center]local monster = "Rotworm"[/center] [center]local pos = {x=1,y=1,z=1}[/center] [center]local minlevel = 100[/center] [center]function onUse(cid, item, fromPosition, toPosition, itemEx)[/center] [center]if getPlayerLevel(cid) >= minlevel then[/center] [center]doSummonCreature(monster, pos)[/center] [center]doPlayerSendTextMessage(cid, 22, "Você sumonou um "..monster..".")[/center] [center]doSendMagicEffect(getPlayerPosition(cid), 10)[/center] [center]else[/center] [center]doPlayerSendTextMessage(cid, 22, "Você não tem level "..minlevel..".")[/center] [center]end[/center] [center]end[/center] [center] Sendo assim, seu amigo noob só vai precisar editar na parte de cima do script. Adicionando storage ao script. Nesse caso, faremos com que o item só possa ser usado uma única vez. Para isso, daremos um storage a ele quando o item for usado e verificaremos se o player já tem esse storage para ver se poderá ser usado o item novamente ou não. (Leia a parte de storage) A função que verifica se o player tem storage é : getPlayerStorageValue(cid, value), então: [/center] [center]se o player tiver esse storage menor ou igual a 0 então[/center] [center]execute o script[/center] [center]dê a storage -- para que o player n possa usar novamente[/center] [center]se não --- se ele já não tiver storage menor ou igual a 0, ou seja, ja tiver usado o item[/center] [center]mande msg negando[/center] [center] No script ficaria assim: [/center] [center]local monster = "Rotworm"[/center] [center]local pos = {x=1,y=1,z=1}[/center] [center]local minlevel = 100[/center] [center]function onUse(cid, item, fromPosition, toPosition, itemEx)[/center] [center]if getPlayerStorageValue(cid, 1234) <= 0 then -- se o storage 1234 for menor ou igual a zero entao[/center] [center]if getPlayerLevel(cid) >= minlevel then[/center] [center]doSummonCreature(monster, pos)[/center] [center]doPlayerSendTextMessage(cid, 22, "Você sumonou um "..monster..".")[/center] [center]doSendMagicEffect(getPlayerPosition(cid), 10)[/center] [center]setPlayerStorageValue(cid, 1234,1) --- dar storage 1234 pra q n possa usar novamente[/center] [center]else[/center] [center]doPlayerSendTextMessage(cid, 22, "Você não tem level "..minlevel..".")[/center] [center]end --- end do if do getPlayerLevel[/center] [center]else -- se já tiver storage igual a 1[/center] [center]doPlayerSendTextMessage(cid, 22, "Você já usou esse item.") -- manda a mensagem[/center] [center]end -- end do if getPlayerStorage...[/center] [center]end -- end da função[/center] [center] Então é isso galera, tentei englobar o maior número de informações necessárias para vocês começarem a fazer seus scripts e espero que esse tutorial ajude alguém. É bom lembrar que só isso não basta e que é sempre bom olhar os scripts dos outros e pelo menos tentar entender como que foram feitos. Vlw aí, abraços. Créditos: 100% Leo PS: Não quero ninguém pegando o Tutorial e colocando em outro fórum se for colocar em outro fórum deixa que eu ou o Leo .1 ponto
-
TibiaKing - Changelog de Julho!
TibiaKing - Changelog de Julho!
Linkz reagiu a Bruno Carvalho por uma resposta no tópico
1 pontoEstrutura Nós resolvemos fazer algumas mudanças na estrutura de nosso fórum, e eu vou lista-las abaixo Todas as áreas de Download (Servidores e Mapas) tiveram suas categorias unidas, agora será somente Normais e Derivados. Os Normais agora contém tags para manter a organização. Novo Visual O antigo visual estava trazendo problemas a estrutura do fórum e nós trazemos um novo com o mesmo estilo do anterior, só que menor, melhor e com cores mais bonitas! Multi Linguagem Novas mudanças foram feitas e o fórum agora tem uma melhor integração com o inglês, lembrando que qualquer erro de tradução favor reportar a equipe na área de atendimento geral. Calendário Adicionamos um calendário ao fórum, nele irá mostrar a data de aniversário de todos e há capacidade de criar eventos. Você pode criar um evento de lançamento ou promoção do seu servidor ou empresa (ele será aprovado pela equipe para evitar flood), e em até uma semana antes ele pode aparecer nos painéis a direita da página principal! Também usaremos ele para eventos realizados via fórum e outras coisas que estamos planejando futuramente. Perfil Houveram algumas mudanças no perfil. No cadastro não é mais pedido qualquer informação não relevante. Algumas informações foram corrigidas. Agora somente pedimos as redes sociais mais importantes e da atualidade (o sistema ainda passará por mudanças). Em "Eu Sou" você agora pode escolher mais de uma opção. Plugins Alguns plugins do fórum foram atualizados e sistemas como, além de várias correções de bugs... Sistema de Tópicos Similares está de volta ao fórum! (Desativado temporariamente) Novo sistema de alertas adicionado, o fórum agora está visualmente mais bonito. Mais reputados passou agora a ser um TOP 5. Agora no painel do membro em um tópico aparecerá botões de acesso rápido para melhor comunicação com os membros. O insert nick foi adicionado, agora você pode clicar no @ antes do nome do usuário e ele será mencionado na resposta. Novo plugin com últimos tópicos que você participou adicionado, agora você pode saber onde esteve! Quando você clicar em um tópico ele irá redirecionar para o primeiro post que você não leu. Pesquisas agora estão filtrando por data, e não mais relevância. Tapatalk foi atualizado e muitos bugs foram corrigidos. Adicionado novo sistema de mensagens globais no topo do fórum. Correções Gerais Corrigimos muitos problemas que o fórum vinha apresentando, muitas mudanças vocês talvez nem irão notar (ou irão, navegando no fórum), agora também temos um desempenho melhor e esperamos inovar cada vez mais... Abaixo listamos algumas mudanças notórias Imagens agora estão menores e com uma largura padrão de 180px, ainda vamos aperfeiçoar esse sistema. Novo plugin próprio do fórum agora permite trazer os recursos mais notórios do TibiaKing para todos os lugares do fórum. Muitas outras correções foram realizadas. É isso galera, esperamos que gostem das novidades e caso encontrem algum problema, favor relatar para a equipe e ele será corrigido o mais breve possível. Também pretendemos trazer outras novidades em breve! Ps. Eu criei esse tópico a um bom tempo e tinha me esquecido de postar, então estou lançando ele com as últimas novidades e algumas já antigas...1 ponto -
(Resolvido)[Duvida] tempo para voltar da area
(Resolvido)[Duvida] tempo para voltar da area
Christinacsa reagiu a Vodkart por uma resposta no tópico
1 pontolocal teleportar_para = {x = 1024, y = 913, z = 4} local time = 10 -- in seconds local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 10) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) function removeTeleport(pos) tp = getTileItemById(pos, 1387).uid doRemoveItem(tp, 1) doSendMagicEffect(pos, 2) end function x(p, d) local t = {{x=p.x,y=p.y-1,z=p.z},{x=p.x+1,y=p.y,z=p.z},{x=p.x,y=p.y+1,z=p.z},{x=p.x-1,y=p.y,z=p.z}} return t[d+1] end function TeleportLastPos(cid, pos) if not isCreature(cid) then return LUA_ERROR end return doTeleportThing(cid,pos) end function onCastSpell(cid, var) if getPlayerStorageValue(cid, 5677) == 1 then doPlayerSendCancel(cid, "Você não pode usar tal magia aqui") return false end local pos = getCreaturePosition(cid) -- pos onde o jogador usou a spell local criar_tp = pos doCreateTeleport(1387, teleportar_para, criar_tp) local tp = getTileItemById(criar_tp, 1387).uid doItemSetAttribute(tp, "aid", 5678) addEvent(TeleportLastPos, time*1000, cid, pos) -- dps de alguns segundos o jogador volta para a pos que estava doTeleportThing(cid, teleportar_para, false) --Tira essa linha se nao for teleportar o player q usou a magia automaticamente. for i = 1, 5 do addEvent(doSendMagicEffect, i*1000, criar_tp, 134) end addEvent(removeTeleport, 5000, criar_tp) return doCombat(cid, combat, var) end1 ponto -
[ERRO]Spell Não Sai
[ERRO]Spell Não Sai
Mark Ackerman reagiu a matsantos por uma resposta no tópico
1 pontoEu peguei um script do kamehameha de um DBO e passei para o meu NTO Funcionou direitinho, mais você terá que trocar os effect por que está os effect do meu NTO. Script =1 ponto -
(Resolvido)Comando "Transformar" por Storage
(Resolvido)Comando "Transformar" por Storage
SomeBody reagiu a Gabriel Netto por uma resposta no tópico
1 pontoDesculpa não ter te respondido antes, não apareceu a notificação aq pq eu não sigo os tópicos. Da um quote se tiver dúvidas ehuaheua Troca a linha 33 por: doCreatureChangeOutfit(cid, {lookType = voc1[3]}) Errinho idiota, esqueci de fechar as chaves. Nao to podendo testar pq tô sem server, aí ja viu ehauehua1 ponto -
[Ichigo][Eternal-Scripts] Peça seu Script aqui!
[Ichigo][Eternal-Scripts] Peça seu Script aqui!
LeonePLAYER reagiu a Cjaker por uma resposta no tópico
1 ponto@Dorpix Eu até poderia fazer, mas o problema é que em cada OT/Global é diferente, ou seja, terei que adaptar pra cada um. Além de ser grande tal Script, não vou poder ajuda-lo. Como dito no Tópico, somente Scripts mais básicos.1 ponto -
Capture The Frag
Capture The Frag
Luiz Mdc reagiu a CirocReturn por uma resposta no tópico
1 pontotem vários aqui no TK, o melhor que vi foi esse:1 ponto -
erro ao passar com o pokemon em cima do piso premium
erro ao passar com o pokemon em cima do piso premium
samlecter reagiu a Drazyn1291 por uma resposta no tópico
1 pontoVocê fez uma explica +- ashahs Tipo, quando é creatureevent o return true/false fazem bastante diferença, por exemplo, se por return false ele cancela o evento e ele não ocorre, caso for em uma function por exempl function ehSummon(cid) if isMonster(cid) and not getCreatureMaster(cid) then return true end return false end Essa função é para verificar se é um summon, se for summon, retorna verdadeiro se não retorna false Então, se eu por assim: print(tostring(ehSummon(cid))) ele vai printar true ou false, dependendo do cid Ou se eu por assim: if ehSummon(cid) then executeBlock(...) end Ele vai retornar verdadeira e executar o bloco dentro dele1 ponto -
erro ao passar com o pokemon em cima do piso premium
erro ao passar com o pokemon em cima do piso premium
samlecter reagiu a Gabriel Netto por uma resposta no tópico
1 pontoEntão brother, não sou ele mas acho que posso te ajudar, apesar de ser iniciante ;p Toda função exerce uma série de comandos qnd é chamada. Junto com isso, ela retorna um valor. Em C++ nós dizemos se o retorno vai ser um número inteiro, um quebrado, um quebrado com vários números após virgula, uma string, e uma variável (desse último não tenho ctz). Isso tmb vale pro que as variáveis vão alocar em C++. Já em lua nós n precisamos declarar o tipo da função antes de chamá-las, ent tu pode por o que quiser dps do return sem nenhum problema, apesar do mais comum ser um booleano. Na maioria das funções não vai mudar muito o return, mas em algumas como onKill (creatureevent). se tu por return false, o target não vai morrer, só vai zerar a vida e vai poder recuperar com qlqr magia de regeneração. Se for uma onLogout com return false o player não vai conseguir deslogar, mas se for uma onLogin não muda nd heauehau. Pra saber o que cada booleano faz em cada retorno tu vai ter que estudar as funções nas sources ou lib1 ponto -
Boas práticas de segurança com o php.ini (pt-BR)
Introdução Utilizar boas praticas de segurança para impedir ataques de SQL Injection, RFI, LFI e outros. Pratica Normalmente o php.ini esta armazenado em “C:\Program Files (x86)\php\php.ini”, mas pode variar o local de armazenamento. Pode ser que em algumas ocasiões as variáveis abaixo estejam habilitadas. Como uma pratica de segurança e’ necessários que essas variáveis estejam desabilitadas (Off), lembrando que ao desabilitar essas variáveis não impacta de forma alguma em seu ambiente. Portanto DESABILITE. #VARIAVEIS # Impede ataques de RFI e LFI ( Remote e Local File Inclusion ) allow_url_fopen = Off # Impede que mensagens de erros sejam exibidas no browser display_errors = Off # Impede a execução de caracteres especiais digitados em campos de formulário convertendo-os em barra invertida. Protege contra ataques de SQL injection magic_quotes_gpc = Off # Impede o acesso a arquivos remotos através dos parâmetros include ou require, evitando injeção de código malicioso. allow_url_include = Off # Impede a exibição das informações sobre o PHP no browser expose_php = Off # Impede a execução de strings maliciosas devido as falhas no desenvolvimento da aplicação. register_globals = Off créditos: technet microsoft1 ponto
-
[Ichigo][Eternal-Scripts] Auto Private Message
Olá TibiaKing! Trago à essa boa e forte comunidade um ótimo Script que com certeza vai auxiliar em algo! --[[ Anúncio Privado (PM) ]]-- --[[ Configurações ]]-- - Anúncio para players em vários andares. - Mensagem personalizada. - Delay nas mensagens privadas. - Delay na lista dos Players (pega players ao redor e em outros andares). --[[ Configurações ]]-- ps: Código Aberto (ótimo para pessoas que querem estudar .lua scripting)! ps2: Eu aceito todas sugestões! Download: [EternalScripts] AnnouncePrivate.lua Scan: Link1 ponto
-
SharpMapTracker v0.8.25 tibia 10.95
Bom galera resolvi trazer um MAP TRAKER pra galera , não é de minha autoria e eu estou apenas trazendo o conteudo pois não encontrei aqui no tibiaking . Download link >> http://www.mediafire.com/download/zdq9cdif35g5dnp/SharpMapTracker_v0825.zip Skan do Arquivo >> https://www.virustotal.com/pt/file/f992dce09bc6c9ccbdb26d8739ab7fb53c8f1bf8911000dc9a39e9dccdc29c1d/analysis/1468118810/ Creditos : Draconer1 ponto
-
Unown Legion
1 pontoVou te Ajudar Primeiramente, em pokemon moves.lua: elseif spell == "Unown Help" then local config = { summonPoke = "Unown", health = 5, --% de HP (baseada na HP máxima do pokémon) tirada do Unown Legion. } if isSummon(cid) then local pid = getCreatureMaster(cid) doSummonMonster(pid, config.summonPoke) local newPoke = getCreatureSummons(pid)[#getCreatureSummons(pid)] setPlayerStorageValue(newPoke, 1001, pokes[getCreatureName(newPoke)].offense * getPlayerLevel(pid)) setPlayerStorageValue(newPoke, 1002, pokes[getCreatureName(newPoke)].defense) setPlayerStorageValue(newPoke, 1003, pokes[getCreatureName(newPoke)].agility) setPlayerStorageValue(newPoke, 1004, pokes[getCreatureName(newPoke)].vitality * getPlayerLevel(pid)) setPlayerStorageValue(newPoke, 1005, pokes[getCreatureName(newPoke)].specialattack * getPlayerLevel(pid)) setCreatureMaxHealth(newPoke, getVitality(newPoke) * HPperVITsummon) doCreatureAddHealth(newPoke, getCreatureMaxHealth(newPoke)) doCreatureAddHealth(cid, -getCreatureMaxHealth(cid) * (config.health / 100)) end elseif spell == "Unown Rush" then local config = { distEffect = xxx, --Distance effect. effect = xxx, --Efeito de invisibilidade. barrierEffect = xxx, --Effect do Barrier. barrierTime = 8, --Duração do Barrier, em segundos. barrierInterval = 500, --Intervalo de tempo, em milésimos de segundo, entre cada efeito do Barrier. times = 4, --Quantas vezes a spell em área será "lançada" (também quantas vezes o efeito será "rebatido" entre Unown Legion e os Unowns). interval = 400, --Intervalo de tempo entre as "rebatidas", em milésimos de segundo. intervalAOE = 200, --Intervalo de tempo entre os "lances" da spell em área. combat = ghostDmg, --Elemento da spell. } function barrierEffect(cid, time) if isCreature(cid) then if time < 0 then return true end doSendMagicEffect({x = getThingPos(cid).x + 1, y = getThingPos(cid).y + 1, z = getThingPos(cid).z}, config.barrierEffect) addEvent(barrierEffect, config.barrierInterval, cid, time - 1) end end local summons, t = getCreatureSummons(getCreatureMaster(cid)), {} doDisapear(cid) doSendMagicEffect(getThingPos(cid), config.effect) for i = 1, config.times do for j = 2, #summons do if isCreature(summons[j]) and isCreature(cid) then t[#t + 1] = summons[j] addEvent(function() doSendDistanceShoot(getThingPos(cid), getThingPos(summons[j]), config.distEffect) addEvent(function() doSendDistanceShoot(getThingPos(summons[j]), getThingPos(cid), config.distEffect) end, 100) end, i * config.interval + 100) end end end addEvent(function() barrierEffect(cid, math.floor(config.barrierTime * 1000 / config.barrierInterval)) if isCreature(cid) then for i = 1, #t do if isCreature(t[i]) then doRemoveCreature(t[i]) end end for i = 1, config.times do addEvent(function() if isCreature(cid) then local area = getPosfromArea(cid, rushAreaEffect) for j = 1, #area do doSendDistanceShoot(getThingPos(cid), area[j], config.distEffect) end doDanoWithProtect(cid, config.combat, getThingPos(cid), rushAreaDamage, -min, -max, 0) if i == config.times then doAppear(cid) setPlayerStorageValue(cid, 9658783, 1) addEvent(function() if isCreature(cid) then setPlayerStorageValue(cid, 9658783, -1) end end, config.barrierTime * 1000 - (config.times * (config.interval + config.intervalAOE))) end end end, i * config.intervalAOE) end end end, config.times * config.interval + 100 * config.times) Depois, em data/actions/scripts, goback.lua: Acima de: local cd = getCD(item.uid, "blink", 30) coloque: if #getCreatureSummons(cid) > 1 then for _, s in pairs(getCreatureSummons(cid)) do if getCreatureName(s) == "Unown" then doRemoveCreature(s) end end end Depois, em data/talkactions/scripts, move1.lua: Abaixo de: if getPlayerStorageValue(mypoke, 93828) > os.time() then return doPlayerSendCancel(cid, "Your pokemon can't use moves right now.") end coloque: local unownCount = 7 --Quantidade de Unowns máxima/quantidade de Unowns para usar o Unown Rush. if move.name == "Unown Help" then if #getCreatureSummons(cid) >= unownCount + 1 then return doPlayerSendCancel(cid, "You already have "..unownCount.." Unowns helping you.") end elseif move.name == "Unown Rush" then if #getCreatureSummons(cid) < unownCount + 1 then return doPlayerSendCancel(cid, "You need "..unownCount.." Unowns helping you to use this spell.") end end1 ponto
-
(Resolvido)[BUG SCRIPT] Double xp potion socorro
Então tente esse sistema em actions exp.lua tag só mude if item.itemid == 9930 then para itemid desejada e <action itemid="9930" script="exp.lua"/> para item desejado também e apague esse seu mod.. deve resolver...1 ponto