Ir para conteúdo

Ghaz

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Ghaz deu reputação a L3K0T em [OTC] Diminuir tempo entre os frames das sprites   
    isso?
     
     
  2. Gostei
    Ghaz deu reputação a Rusherzin em getTileInfo   
    @Jeanzeraa Adiciona essa função abaixo na sua Lib. Use-a com os seguintes parâmetros:
    pos = posição onde vai checar
    creature = true, se é para retornar falso caso tenha alguma criatura na posição
    proj = se true, checa se o item bloqueia pathfind, se false, checa se o item bloqueia projéteis
    pz = se true, retorna falso cajo a posição seja uma protection zone
     
    function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end  
  3. Gostei
    Ghaz recebeu reputação de Belmont em Removido   
    REMOVIDO
  4. Obrigado
    Ghaz deu reputação a EddyHavoc em (Resolvido)Ajuda - MOD OTC   
    Olá meu caro, tenta adicionar as seguintes funções ao seu código:
     
    function terminate() disconnect(g_game, { onGameEnd = offline, }) window:destroy() end function offline() window:hide() end
    E na função init adicione o seguinte:
     
    function init() connect(g_game, { onGameEnd = offline, })
     
  5. Obrigado
    Ghaz deu reputação a EddyHavoc em (Resolvido)Ajuda - MOD OTC   
    Inclui a terminate() só para ter, sempre coloco em todos os módulos, para encerrar corretamente o executável.

    Porém para o seu módulo a ideia era chamar a função offline() com o código abaixo dentro do init():
     
    connect(g_game, { onGameEnd = offline,

    Podemos tentar inserir no Logout para chamar a função offline() do seu módulo.

    Vai em gameinterface.lua e procure pela função "function tryLogout(prompt)"
    E inclua nessa função o código abaixo:
     
    modules. (nome do seu modulo).offline()
    no (nome do seu modulo), você coloca como registrou no otmod, exemplo: game_window

    Veja se funciona.
     
  6. Obrigado
    Ghaz recebeu reputação de Danijo em [MOD] Top Button   
    Vc tem as sources do seu cliente? Se tiver é facil habilitar essas opções, elas são essenciais pra desenvolvimento de Mods rsrssr se não, não tem como ver o problema que deu no seu mod
  7. Obrigado
    Ghaz deu reputação a FeeTads em (Resolvido)LUA - 'ipairs' (table expected, got number)   
    o código ta fazendo oq tu pediu uai
    players = #getPlayerInarea

    o # significa o tamanho
    pra receber a table é só 
    players = getPlayersInArea
     
    e depois print(#players)
    que ai vai printar o tamanho de players, ou seja, 2 players na area
  8. Curtir
    Ghaz deu reputação a Prometheus151 em [8.60][OLD Client] Narutibia (NTO HARD) - Servidor Completo   
    tentei tbm no 20,04 nao foi é pra funcionar no 14,04 mas nao consegui instala ele
     
  9. Curtir
    Ghaz recebeu reputação de Prometheus151 em [8.60][OLD Client] Narutibia (NTO HARD) - Servidor Completo   
    Pessoal, alguém tem o executável compilado pra linux? O que está disponibilizado no download não funciona no ubuntu 18.04, e essa source n compila nem fodendo.
  10. Gostei
    Ghaz deu reputação a MaXwEllDeN em [Aula 3] Primeiros Passos   
    << Aula 2 - Lógica da programação
     
     
     
     
    Primeiros Passos
     
     
     
     
    Aula 3
     
     
     
    Relembrando o que eu disse na primeira aula, você precisará de um interpretador Lua e é muito recomendado que possua também um bom editor com suporte à sintaxe Lua, então nosso primeiro passo será obter o editor e o interpretador.
     
    As aulas serão voltadas ao scripting para Open Tibia Servers, então nada melhor do que um bom OTServer para testar seus scripts, mas ficar testando os scripts em um OTServer pode ser uma tarefa cansativa e demorada, então vamos usar também scripts fora de OTServers para praticar. Para isso, você pode fazer o download de qualquer um dos seguintes programas:
     
     
    Editores + Interpretadores:
    SciTE Scintilla [Avançado] OTScript Live! [Recomendado]  
    Editores:
     
    Notepad++  
    Interpretadores:
     
    Lua [Oficial]  
    Depois que você tiver seu editor e interpretador Lua (Recomendo o OTScript Live!), instale ele. No caso do OTScript Live!, depois de descompactar, vá em "Help", no menu, e clique em "Register To Lua". Abrirá uma caixa confirmando a alteração, basta apertar "OK" e todos os seus scripts irão abrir com o OTScript Live!.
     
    Testando seus scripts!
    No caso do SciTE, para testar o seu script você deve primeiro salvá-lo com a extensão Lua (*.lua). No caso do SciTE e do OTScript Live! você pode testar seu script apenas apertando F5, sendo que no OTScript Live! não é necessário salvar o script antes de testar.
     
    Após pressionar F5, o SciTE irá abrir uma área de textos abaixo da área de edição com as informações do teste, e o OTScript Live! vai abrir uma janela.
     
    Para testar se o seu SciTE ou OTScript Live! está funcionando, use o seguinte script:
     
     
      print("Hello world!") Nas informações mostradas pelo interpretador deve estar escrito "Hello world!". Se aparecer, parabéns, você testou o seu primeiro script Lua...  (ou não )
     
     
    O que o script fez? o0
     
    Uma das coisas mais importantes nos scripts são as funções. Uma função é "um bloco de código previamente pronto", uma subrotina, que quando chamada executa esse bloco. Imagine as funções como um atalho para executar alguma coisa. Pode ser usada, por exemplo, para encurtar scripts que tenham alguma parte do codigo que se repita muitas vezes. Criando uma função você pode usar esse código que se repete muitas vezes somente uma vez (Dentro da função), então em vez de usar esse bloco várias vezes, você só precisaria chamar a função várias vezes.
     
    Você pode criar suas próprias funções, mas isso veremos mais para frente. Tudo o que importa agora é aprender a chamar funções.
     
      O "Nome da Função", na verdade, é o nome da variável em que está armazenada a função, mas não se preocupem com isto ainda... O "Nome da Função" é o nome que você deve chamar para que a função ocorra, pois há vária funções (Obviamente), então você deve especificar qual função quer chamar. É a mesma coisa do que ter 3 pessoas. Quando quiser chamar uma das pessoas, deve dizer o nome dela.   Os argumentos são as "Respostas" para as "Perguntas" da função chamada. A maioria das funções faz "perguntas". No caso da função "print", ela nos "perguntou" o que queriamos escrever na tela, e "respondemos": "Hello world!".   É importante lembrar que cada pergunta deve ser respondida adequadamente, por exemplo, se alguém te pergunta: "Que horas são?" você não pode responder: "Sim.". A mesma coisa acontece com as funções, você deve responder exatamente o que ela está perguntando. Outra observação importante é que você deve responder as perguntas da função na ordem em que foram perguntadas. Se a pergunta nº 1 for "Que horas são?" e a nº 2 for "Quer um biscoito?", você deve responder respectivamente que horas são e se você quer um biscoito.     OBS: Algumas funções fazem "perguntas" opcionais, ou seja, você pode ou não responder. Se você não "responder", a própria função atribuirá um valor padrão para a resposta.   Os parâmetros são simplesmente o conjunto de todos os argumentos.   OBS: Todos os argumentos (Respostas) do parâmetro devem estar entre parênteses e ser separados por vírgulas!     Tipos de valores!   Bem, como eu disse, cada resposta deve seguir o tipo da pergunta, então vou citar aqui os tipos destes valores.   OBS: Existe uma função para descobrir o tipo de cada valor! Esta função é a função type(valor)...       Numbers   Como o nome diz, numbers são números, não há muito o que falar sobre eles...   Exemplo: print(1) print(2) print(3) OBS: A função print aceita todos os tipos como resposta.
     
    Strings  
    As strings devem iniciar com um símbolo especial e deve terminar com o mesmo caractere que foi usado para iniciar a string. Esses símbolos são:
     
    Apóstrofo: Começa com ' e termina com '.
    Aspas: Começa com " e termina com ".
    Colchete-Colchete: Começa com [[ e termina com ]].
    Colchete-Igual-Igual-Colchete: Começa com [==[ e termina com ]==].
     
    As strings são conjuntos de caracteres, como letras, números (Não são numbers, pois se houver um número entre os símbolos especiais será tomado como string!!!), acentos, espaços, etc... Se você quiser escrever uma frase na tela, por exemplo, não pode deixá-la solta pelo script. Esta frase deve ser uma string, ou o script dará erro.
     
    Exemplo:
    print('Apóstrofos') print("Aspas") print([[Colchete-Colchete]]) print([==[Colchete-Igual-Igual-Colchete]==]) OBS: 1 << Isto é um number.
    "1" << Isto é uma string.
     
    Booleanos  
    Os booleanos podem assumir apenas dois valores: true e false.
    true: Valor verdadeiro.
    false: Valor falso.
     
    OBS: Os booleanos podem ser complicados de entender no começo, mas com o tempo você acostuma. Não se preocupe com eles agora...
     
    Exemplo:
      print(true) print(false) print(nil)  
     
    Functions  
    Exatamente o que o nome diz: é o que estamos vendo agora. Functions são nada mais nada menos do que funções.
     
     
    Exemplo:
      print(function() end) OBS: Não se preocupe com isso ainda!
     
    Tables ou Arrays  
    São tabelas, ou seja, armazenam mais do que um valor dentro de uma "caixa". Tabelas podem armazenar outras tabelas e todos os valores dentro de uma tabela possuem um identificador, chamado "index" (índice).
     
    Tabelas começam com o símbolo { (Chave) e terminam com o símbolo } (Chave).
     
    Exemplo:
    print({})  
    Userdata  
    Lua é uma linguagem de programação criada para dar extensão à linguagem de programação C e C++. Userdatas são ponteiros que indicam valores em C ou C++. Não se preocupe com eles.
     
     
    Nil  
    Nil simboliza um valor nulo. Não deixa de ser um valor, mas é um valor sem conteúdo.
     
    Exemplo:
    print(nil)  
    As funções retornam!
     
    Toda função retorna um ou mais valores, nem que sejam valores nulos (nil), portanto você pode usar uma função dentro do print para escrever os valores que a função retornar! Vamos usar como exemplo a função type(valor), que vai nos retornar uma string com o tipo do valor.
      Exemplo: print(type(1))  
     
    O exemplo acima vai escrever em sua tela a frase: "Number", pois 1 é um number!
     
     
    Exercícios:
    Usando a função print para escrever na tela e type para pegar o tipo de algum valor, obtenha as seguintes frases na tela:
     
     
    Resposta:
     
     
     
     
    Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos são dele.
     
     
     
     
     
     
    Aula 4 - Operadores e Bibliotecas >>
  11. Gostei
    Ghaz deu reputação a Thony D. Serv em Rates/ Stages Skill   
    vai no seu creaturescript.xml adicione isso
    <event type="login" name="SkillStagesLogin" event="script" value="skillstageslogin.lua"/> Crie Um Arquivo Chamado skillstageslogin.lua adicione isso dentro dele
    dofile(getDataDir() .. "creaturescripts/scripts/stagesconfig.lua") function onLogin(cid) for skill, skillStage in pairs(skillStages) do if(skill >= 0 and skill <= 6) then nowSkill = getPlayerSkillLevel(cid, skill) else nowSkill = getPlayerMagLevel(cid, true) end for i, skillRateInfo in pairs(skillStage) do if(nowSkill >= skillRateInfo[1]) then skillRate = skillRateInfo[2] else break end end doPlayerSetRate(cid, skill, skillRate) end if(showInfoOnLogin) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerSkillRatesText(cid)) end registerCreatureEvent(cid, "SkillStagesAdvance") return TRUE end va no creaturescript.xml novamente adicione isso 
     
    <event type="advance" name="SkillStagesAdvance" event="script" value="skillstagesadvance.lua"/>  
    crie um arquivo chamado skillstagesadvance.lua dentro adicione isso
     
    dofile(getDataDir() .. "creaturescripts/scripts/stagesconfig.lua") function onAdvance(cid, skill, oldLevel, newLevel) if(skillStages[skill] ~= nil) then local skillRate = 1 local oldRates = getPlayerRates(cid) for i, skillRateInfo in pairs(skillStages[skill]) do if(newLevel >= skillRateInfo[1]) then skillRate = skillRateInfo[2] else break end end doPlayerSetRate(cid, skill, skillRate) if(showInfoOnAdvance and skillRate ~= oldRates[skill]) then if(skill >= 0 and skill <= 6) then configRate = skillConfig.skill else configRate = skillConfig.magiclevel end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, SKILL_NAMES[skill] .. " rate alterado de " .. oldRates[skill] * configRate .. "x para " .. skillRate * configRate .. "x. " .. getPlayerSkillRatesText(cid)) end end return true end  
    agora crie outro arquivo chamado stagesconfig.lua adicione isso
     
    skillConfig = {skill = getConfigValue('rateSkill'), magiclevel = getConfigValue('rateMagic')} skillStages = {} skillStages[SKILL_FIST] = {{0,10},{60,0}} skillStages[SKILL_CLUB] = {{0,10},{60,6},{80,0}} skillStages[SKILL_SWORD] = {{0,10},{60,6},{80,0}} skillStages[SKILL_AXE] = {{0,10},{60,6},{80,0}} skillStages[SKILL_DISTANCE] = {{0,10},{60,6},{80,0}} skillStages[SKILL_SHIELD] = {{0,10},{60,6},{80,0}} skillStages[SKILL_FISHING] = {{0,10},{60,6},{80,0}} -- voce pode retirar os -- desse script para ativar, por padrao esta desativado skillStages[SKILL__MAGLEVEL] = {{0,5},{100,4},{120,3},{135,2},{150,1},{155,0}} showInfoOnAdvance = true -- envia uma nova mensagem com a sua nova rate showInfoOnLogin = true -- envia mensagem da rate ao jogador ao logar function getPlayerSkillRatesText(cid) local skillInfo = getPlayerRates(cid) return "Rates Info: [ Magic Level: " .. skillInfo[SKILL__MAGLEVEL] * skillConfig.magiclevel .. "x || Attack Speed: " .. skillInfo[SKILL_FIST] * skillConfig.skill .. "x | Weapon: " .. skillInfo[SKILL_CLUB] * skillConfig.skill .. "x | Sword: " .. skillInfo[SKILL_SWORD] * skillConfig.skill .. "x | Strenght: " .. skillInfo[SKILL_AXE] * skillConfig.skill .. "x | Ki Blasting: " .. skillInfo[SKILL_DISTANCE] * skillConfig.skill .. " | Defense: " .. skillInfo[SKILL_SHIELD] * skillConfig.skill .. "x ]" end  
    agora instalando tudo corretamente voce pode manusear as suas skills pelo stagesconfig
     
     
    Ajudei?? Rep+
  12. Gostei
    Ghaz deu reputação a Belmont em [8.60][OLD Client] Narutibia (NTO HARD) - Servidor Completo   
    Estava aqui de bobeira e resolvi baixar o site pra da uma mexida e uma editada. Estou terminando ainda de arrumar as coisas, e tô gostando do resultado. Pretendo instalar várias coisas no site, e quem sabe eu disponibilizo aqui pra comunidade. Segue o que ainda vou fazer, e algumas imagens de como está ficando.
     
    Lista de coisas que ainda vou arrumar/adicionar
    TOP Level com Outfit;
    Widget de Castle; Na verdade já adicionei, só falta terminar de arrumar mesmo
    Widget de Discord e TeamSpeak;
    Pasta com os Outfits da vocações;
    Trocar todas as imagens do site, para ficar com um visual melhor;
    Estarei trocando totalmente a página de Donate e a de characters;
    Entre outras coisas
    Se você tiver uma ideia e quer que eu implemente, só é me marcar, ou ir no meu Discord que está logo em baixo.
     
    Algumas imagens:
    Depois eu vejo se atualizo essa postagens com mais imagens.
  13. Gostei
    Ghaz deu reputação a Thony D. Serv em (Resolvido)Adicionar CD na skill   
    function onCastSpell(cid, var) local toPos = {x = 249, y = 151, z = 8} --pos para onde o player vai ser teleportado local waittime = 10 -- Tempo de exhaustion local storage = 8222 -- Storage Que Spell Vai Usar if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Podera usar novamente dentro de ".. exhaustion.get(cid, storage) .. " segundos para usar o jutsu novamente.") return false end local parameters = { cid = cid, var = var} local pos = getPlayerPosition(cid) doTeleportThing(cid, toPos, false) doSendMagicEffect(pos, 21) exhaustion.set(cid, storage, waittime) return TRUE end bem configurei ai como vc pediu e deixei ali para vc configurar para por o tempo tipo contando é só vc por o
    ".. exhaustion.get(cid, storage) .. " que ira aparecer o tempo de storage que resta no player (porem antes eu configurei em cima para o script identificar qual o storage corretamente)
  14. Gostei
    Ghaz deu reputação a L3K0T em Respawn de Monstro Automático   
    Fala pessoal, olha eu aqui novamente. Hoje eu vou explicar como funciona a tal respawn automático (chamada raids) que serve para todo tipo de servidor e a configuração é tudo para que possa funcionar perfeitamente!
     
     
    Agora algumas dicas para que seu sistema funcione perfeitamente.
     
     
    *Vocês precisa saber sobre o nome monstro que vai nascer a posições e o horário.
    *Verifique se o monstro está sendo sumonado pelo /m para que ele possa aparecer quando o scripts da raids for chamado pelo globalevents.
    *Aqui va umas parte que iremos configurar para quem não sabe muito do inglês vaja abaixo.
     
     Em Português = Em Inglês
     
    *Segunda-Feira = Monday
    *Terça-feira = Tuesday
    *Quarta-Feira = Wednesday
    *Quinta-Feira = Thursday
    *Sexta-Feira = Friday 
    *Sábado = Saturday
    *Domingo = Sunday
     
     Em Português = Em Inglês
     
    Nome = Name
    Dia = Days
    Hora = hour
    minute = minutos
     
    Pronto agora você aprendeu o básico do script que levará esse inglês .
     
    Chega de muito papo agora vamos ao trabalho! Vá na pasta Data/Raids dentro dela terá um arquivo chamado raids.xml, abra ele usando o bloco de notas ou outro tipo de editor que dê para você editar. Dentro desse arquivo terá várias linhas com raids ou não.
     
    Cloque essa tag lá
     
     
    name="Rat" « Nome do monstro
    file="Rat.xml" « o arquivo que iremo criar ainda será chamado Rat.xml
    interval2="30"  seria o temo em segundos para nascer.
    enabled="yes"/> seria ligar raids ? então deixa yes mesmo.
     
    pronto salve o arquivo.
     
     
    Agora ainda na pasta Raids copia o arquivo Raids.xml e da um ctrl v e renomeia para Rat ficará Rat.xml, abra o arquivo Rat.xml e add
     
     
    delay="0" « tempo em segundos dependendo do tfs  se tá 0 a mensagem 1 vai aparece sem atraso.
    delay="150000" esses 150000 seria 15 segundos após a mensagem 1 aparecer em alguns tfs  os 15 segundos em delay seria 15000.
    message=" mensagem que vai aparecer é claro.
    name=" seria o nome do moonstro que iremos por no caso será o Rat.
    x="local x" y="local y" z="local z" /> « seria aposição no exemplo vocês terá que alterar a gosto x="local x" y="local y" z="local z" /> por numero do sqm.
     
    pronto você está informado e terminamos de criar a primeira parte da raid. Depois das edições pf salve!
     
    Vamos trabalhar agora com o globalevents.
     
    Vá na pasta globalevens/scripts copie um arquivo, renomeia para Rat e add.
     
     
     
    Explicando...
     
    local raids =
        {
            [1] =
                {
                    name = 'Rat', ««« nome do monstro, lembra do inglÊs lá no começo ? então ele aqui!
                    type = 'weekly',
                    days = {'Monday'}, ««« dias da semana
                    hour = 22, ««« hora
                    minu = 33 «« minutos
                },
        }
     
    há eu queria adicionar mais como posso ? simples veja como o exemplo.
     
            [1] =
                {
                    name = 'Rat', ««« nome do monstro, lembra do inglÊs lá no começo ? então ele aqui!
                    type = 'weekly',
                    days = {'Monday'}, ««« dias da semana
                    hour = 22, ««« hora
                    minu = 33 «« minutos
                },
            [2] =
                {
                    name = 'Rat', ««« nome do monstro, lembra do inglÊs lá no começo ? então ele aqui!
                    type = 'weekly',
                    days = {'Monday'}, ««« dias da semana
                    hour = 22, ««« hora
                    minu = 33 «« minutos
                },
     
    terminando com  } ficando o scripts assim.
     

     
    sempre que por nova raid mude sempre o numero diferente entre  []  para que não possa duplicar.
     
    Pronto nosso scripts  ficará assim.
     
     
    Pronto salve o arquivo, volta uma pasta e abra o arquivo globalevents.xml e add a tag.
     
     
    Explicando »»
     
    name=" pode botar qualquer nome q vc possa indentificar o scripts.
     
    interval="15000" no caso 15000 seria 15 segundos pro globalevents ser excutado pode varia o tfs se ficar sem passando rápido bote 150000.
     
    pronto após edições pf salve... agora seu monstro irá nascer automaticamente... é isso ai!
     
     
    @créditos CipSoft e a mim.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  15. Curtir
    Ghaz deu reputação a samuelandrade45 em Como colocar exhaustion corretamente em suas spells   
    Olá pessoal do TibiaKing, hoje venho aqui trazer um mini tutorial de como colocar o exhaustion corretamente em suas spells, bastante gente utiliza o exaustion que está no proprio xml, mas por lá acontece alguns erros exemplo: se tiver uma spell com 8000 de exaustion, e outra de 2000 e você vai no seu servidor e usa a spell com 8000 de exhaustion, tem que esperar o tempo dela pra usar qualquer outra, o método que venho trazer aqui ele funciona corretamente e ainda avisa no console quanto tempo falta para usar a spell, sem mais delongas vamos lá!
     
    1- vá até o seu XML procure a magia que quer por o exhaustion
    exemplo:
    perceba que ela tem um exhaustion definido ali em cima, para esse método funcionar corretamente e recomendado deixar o exhaustion do XML em 1000.
     
    forma correta:
     
    2- feito isso vamos ate a pasta onde se encontra seu script e abra ele:
    como exemplo irei utilizar uma spell de área que empurra os players próximos!
     
     
    3- com a spell aberta, logo no inicio da spells vamos inserir as seguintes linhas de código:
     
    ficando assim:
     
    4- por fim, logo abaixo do function onCastSpell(cid, var) vamos adicionar as seguintes linhas de código:
     
     
    ficando assim:
     
    Pronto com isso o exhaution já foi adicionado a sua spell, faça bom proveito:
    Print:
     

  16. Curtir
    Ghaz deu reputação a r0bert0lol em [8.60][OLD Client] Narutibia (NTO HARD) - Servidor Completo   
    @Carlosdaniel Utilizava Ubuntu 14.04 64 Bits.
     
    Atualizava as libs necessárias para compilar, executava os mesmos comandos de uma TFS 0.4 tem tutoriais aqui no Tibia King mesmo, não tem segredo.
     
    Atualiza as libs : 
    apt-get install autoconf libboost-all-dev libgmp-dev liblua5.1-0 liblua5.1-0-dev liblua50 liblua50-dev liblualib50 liblualib50-dev lua50 lua5.1 libxml2-dev libxml++2.6-dev libmysql++-dev libsqlite0-dev libsqlite3-dev build-essential E compila : 
    ./autogen.sh; ./configure --enable-server-diag --enable-mysql --enable-root-permission; ./build.sh; Possíveis erros, são corrigidos :
    apt-get install libcurl4-openssl-dev apt-get install libcrypto++-dev  
  17. Gostei
    Ghaz deu reputação a Natanael Beckman em DEV C++ Compilando TFS no Windows   
    DEV 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 \/
  18. Gostei
    Ghaz deu reputação a Kimoszin em Criando Spells para seu servidor!   
    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)




    Obrigado a Todos,
    Estou terminando de fazer o SpellMaker para facilitar a vida de vc,
    Abraços
  19. Gostei
    Ghaz recebeu reputação de Uchira Senju em (Resolvido)Script item que teleporta minato   
    Acho que tenho aqui, 1 min
     
    Vá em data/action/scripts cire um arquivo chamado kunaiteleport e coloque isto:
     depois em actions.xml coloque:
    OBS: Aqui em "<action itemid="2386" " vc coloca o ID do item.. kunai ou sei lá kkk
    seja feliz, simples assim! kkk
     
     
    Atenção cara, o topico já existe, procure não fazer topicos repetidos .... 
     
    http://www.tibiaking.com/forum/forums/topic/40615-action-hiraishin-kunai/
     
     
     
  20. Negativo
    Ghaz recebeu reputação de Senju uchira em removido!   
  21. Curtir
    Ghaz recebeu reputação de Jaurez em .   
    Entendi, perdoe, interpretei errado!! 
  22. Curtir
    Ghaz deu reputação a xWhiteWolf em Hail Tibiaking! Ispirador..   
    que honra ahaha fico feliz de ter te ajudado nessa empreitada. Se qualquer dia tiver dúvidas sobre computação pode me chamar
  23. Curtir
    Ghaz recebeu reputação de GOD Vitor em Hail Tibiaking! Ispirador..   
    Comecei a utilizar o tibiaking em, 2012, numa brincadeirinha de criar servierzinhos pra jogar com os amigos pelo hamachi ! mas pra mim era a coisa mais divertida do universo...
    E desde então eu tenho adquirido mais e mais conhecimento nessa área.. e isso tudo me trouxe a certeza do que eu queria pra minha vida, no futuro... E hoje eu faço faculdade na área de Analise e Desenvolvimento de Sistemas tudo por causa do tibia! ... (Na verdade começa em janeiro de 2018) más eu gostaria de agradecer muito a todos vocês aqui do fórum que são pessoas MUITO FODAS!!  Tem um cara aqui do fórum, chamado White Wolf, eu sempre admirei demais esse cara, e após terminar a faculdade, ou mesmo durante ela, quero ser igual ele xD.. e pretendo ajudar muito esse fórum, trazer novidades e auxiliar o pessoal, eu sei o quanto é dificil não entender nada, sobre Otservers quando se quer criar um... Namoral, PARABENS A TODOS OS MEMBROS DO TIBIAKING!! Vocês são fera!!! 
     

     

  24. Gostei
    Ghaz recebeu reputação de Habdel em Hail Tibiaking! Ispirador..   
    Comecei a utilizar o tibiaking em, 2012, numa brincadeirinha de criar servierzinhos pra jogar com os amigos pelo hamachi ! mas pra mim era a coisa mais divertida do universo...
    E desde então eu tenho adquirido mais e mais conhecimento nessa área.. e isso tudo me trouxe a certeza do que eu queria pra minha vida, no futuro... E hoje eu faço faculdade na área de Analise e Desenvolvimento de Sistemas tudo por causa do tibia! ... (Na verdade começa em janeiro de 2018) más eu gostaria de agradecer muito a todos vocês aqui do fórum que são pessoas MUITO FODAS!!  Tem um cara aqui do fórum, chamado White Wolf, eu sempre admirei demais esse cara, e após terminar a faculdade, ou mesmo durante ela, quero ser igual ele xD.. e pretendo ajudar muito esse fórum, trazer novidades e auxiliar o pessoal, eu sei o quanto é dificil não entender nada, sobre Otservers quando se quer criar um... Namoral, PARABENS A TODOS OS MEMBROS DO TIBIAKING!! Vocês são fera!!! 
     

     

  25. Gostei
    Ghaz deu reputação a Gantz em (Resolvido)[Pedido] Exiva Normal & Exiva Aguçado   
    testa ae amigo:
    bool InstantSpell::SearchPlayer(const InstantSpell* spell, Creature* creature, const std::string& param) { Player* player = creature->getPlayer(); if(!player || player->isRemoved()) return false; Player* targetPlayer = NULL; ReturnValue ret = g_game.getPlayerByNameWildcard(param, targetPlayer); if(ret != RET_NOERROR || !targetPlayer || targetPlayer->isRemoved()) { player->sendCancelMessage(ret); g_game.addMagicEffect(player->getPosition(), MAGIC_EFFECT_POFF); return false; } if(targetPlayer->hasCustomFlag(PlayerCustomFlag_NotSearchable) && !player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges)) { player->sendCancelMessage(RET_PLAYERWITHTHISNAMEISNOTONLINE); g_game.addMagicEffect(player->getPosition(), MAGIC_EFFECT_POFF); return false; } std::stringstream ss; const Position& pos = player->getPosition(); const Position& targetPos = targetPlayer->getPosition(); uint32_t distance = std::max(std::abs(pos.x - targetPos.x), std::abs(pos.y - targetPos.y)); if(pos.z != targetPos.z) distance = distance + 9 + 6; ss << targetPlayer->getName() << " " << g_game.getSearchString(player->getPosition(), targetPlayer->getPosition(), true, true) << " [" << distance << " sqm]"; player->sendTextMessage(MSG_INFO_DESCR, ss.str().c_str()); g_game.addMagicEffect(player->getPosition(), MAGIC_EFFECT_WRAPS_BLUE); return true; }

Informação Importante

Confirmação de Termo