Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Night Wolf

    Desafio do mês. #02

    Olá pessoal, seguindo a onda do desafio do mês eu bolei um novo desafio pra vocês no mesmo esquema do anterior (você pode verificar o desafio do mês passado clicando aqui) Eu vou mais uma vez apresentar um pseudocódigo, algumas partes dele estão mais explícitas na linguagem e outras estão mais teóricas mas isso não vai influenciar tanto. O desafio é o seguinte: vocês tem que tentar adivinhar do que se trata esse código. Isso vale tanto para explicar partes do código quanto para explicar a idéia por trás dele. A cada dia (o primeiro não conta) irei postar uma dica para ajudá-los nesse desafio, podendo ser uma dica explicando partes do código ou dicas sobre a funcionalidade dele. "Mas lobo, por que eu iria tentar descobrir do que se trata seu código estúpido?" Bem meu caro, será uma tarefa legal e esse script é uma idéia bem inovadora.. só o fato de você tentar ler irá ajudá-lo a treinar seu cérebro para a linguagem Lua. E também há uma recompensa!! aquele que acertar ou chegar mais perto verá e terá acesso ao código antes de todo mundo!!111 Espero que vocês aninem pra participar deste tanto quanto animaram para participar do outro Dicas = { } Lembrando que toda resposta próxima da correta irá ganhar 1 ponto de reputação.
    2 pontos
  2. kaleudd

    BallonSystem [PXG]

    Consiste em usar x item em Raichu ou Shiny raichu (Poder adicionar mais caso queira) e ao usar o x item ganhará Habilidade de fly,ja deve ter visto por ai em algum video de pxg. Créditos: Zipter98:Pela criação. Testado em PDA 1.9; Script: data/lib/configuration.lua: Coloque esta tabela: flyItem = { --["pokemon_name"] = {outfit = xxxx (número do Dat Editor - 351), speed = xxx}, ["Raichu"] = {outfit = id_outfit, speed = 600}, } data/lib/order.lua: Abaixo de: local pokemon = flys[getPokemonName(getCreatureSummons(cid)[1])] coloque: if not pokemon then pokemon = flyItem[getPokemonName(getCreatureSummons(cid)[1])].outfit else pokemon = pokemon[1] end abaixo de: local speed = flys[getPokemonName(getCreatureSummons(cid)[1])][2] coloque: if not speed then speed = flyItem[getPokemonName(getCreatureSummons(cid)[1])].speed else speed = speed[2] end Troque: doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1) por: doSetCreatureOutfit(cid, {lookType = pokemon + 351}, -1) Depois, em data/creaturescripts/scripts, login.lua: Troque: doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) por: local outfit = flys[poke] if not outfit then outfit = flyItem[poke].outfit else outfit = outfit[1] end doSetCreatureOutfit(cid, {lookType = outfit + 351}, -1) Depois, em data/actions/scripts, order.lua: Troque todos os: isInArray(skills["fly"], getPokemonName(mysum)) por: isInArray(skills["fly"], getPokemonName(mysum)) or getItemAttribute(getPlayerSlotItem(cid, 8).uid, "flyItem") Cuidado para não errar algum caractere. Ainda em data/actions/scripts, crie um arquivo com extensão .lua e coloque o seguinte conteúdo: function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then return doPlayerSendCancel(cid, "Use this in pokeballs.") elseif not getItemAttribute(itemEx.uid, "poke") then return doPlayerSendCancel(cid, "Use this in pbs w/ pokemons.") elseif not flyItem[getItemAttribute(itemEx.uid, "poke")] then return doPlayerSendCancel(cid, "You can't use this item on this pokemon.") elseif getItemAttribute(getPlayerSlotItem(cid, 8).uid, "flyItem") then return doPlayerSendCancel(cid, "This pokemon can already fly.") end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Now your pokemon can fly.") doItemSetAttribute(itemEx.uid, "flyItem", true) doRemoveItem(item.uid, 1) return true end Tag do actions: <action itemid="ID_DO_ITEM_que_dara_fly" event="script" value="nome_do_arquivo.lua"/>
    1 ponto
  3. Eae XTibianos, não sei se essa é a área correta, se estiver na área incorreta, peço que movam. Hoje venho apresentar a base de um sistema de Profissões/Craft, bem parecido com o da PokeXGames e que talvez eu libere pro pessoal. Ainda tenho que aperfeiçoar, trocar sprites e mais algumas coisas. Hospedei o vídeo no YouTube e espero que vejam ! Link: Créditos também ao Zipter98 que ajudou no sistema respondendo meu tópico anteriormente ! @ Uma atualizada no tópico, com um novo vídeo com 3 sistemas que andei mexendo Ainda irei mexer no sistema de Mega Evolução e de Addon, e irei terminar outras profissões to com pouco tempo... Créditos ao Zipter novamente, GabrielTxu e Overllord @edit 13/12/15 Bom, andei mexendo novamente, e agora venho mostrar o sistema de HMs... Creio que todos saibam como funciona, então já irei mostrar o vídeo: Créditos ao Zipter por ter feito o sistema que usei de base e GabrielTxu por me ajudar com algumas dúvidas. Espero que gostem.
    1 ponto
  4. Administrador

    Novo Parceiro! OT Checker

    Grande Hail xTibianos! Apresento-lhes nosso novo parceiro: OT Checker. Criado e administrado pelo Ivan (@@Wo11ven), é uma ótima ferramenta para você que tem um servidor otserv! Download: http://www.xtibia.com/forum/topic/233734-ot-checker-androidioswp-e-mais-agora-disponivel-tambem-via-twitter/ Site Oficial: https://otchecker.com/ Fórum Oficial: http://www.xtibia.com/forum/forum/1019-ot-checker/ OT CHECKER, O que é? "É basicamente uma ferramenta que serve para ajudar os administradores de OTs, avisando sempre que o servidor deles cair. Ele funciona verificando todos os servidores cadastrados de 5 em 5 minutos e salva em um banco de dados, assim como uma otlist faz. Depois o sistema compara os servidores off-line com um banco de dados secundário e verifica todos os usuários que tem aqueles servidores cadastrados. Também compara os servidores online com o banco de dados secundário e avisa os donos caso o servidor tenha voltado a funcionar. Se os usuários ainda não foram avisados, ele manda as notificações para cada um. Além disso, o sistema compara os uptimes e também avisa as pessoas se o servidor reiniciou entre o período de 5 minutos em que não ocorreu a verificação." (Ivan Carlos) - Veja o vídeo no final do tópico. Por que Usar OT Checker? O OT Checker é disponível para todas as plataformas, Isso se tornou possível graças ao Telegram. Além disso, é o único aplicativo atualmente que lhe possibilita utilizar as funções mencionadas acima. Não importa se seu servidor é Global, Baiak, WoDBO/DBKO, Narutibia, Poketibia, etc. Como utilizar? Inicie uma conversa com o bot e seja guiado para cadastrar seu servidor. Não tem erro! É como conversar com alguém que está aguardando suas mensagens! Só que ainda mais rápido…Cadastrou, esqueceu. Você será notificado quando um de seus servidores estiver offline. Veja o vídeo abaixo: Ta esperando o que? Baixe logo rsrs
    1 ponto
  5. jeerenato

    Show Off Jeer Naruto & Pokémon P45º

    Kakashi (100%) Maito Guy (80%) Jiraya (70%) Orochimaru (100%) Victreebel (100%) Machamp (85%) Weezing (100%) Gif Golduck ( Water Gun) Charmander ( Flamethrower ) Exeggutor ( Psychic ) Laxus
    1 ponto
  6. BananaFight

    Desafio do mês. #02

    Pelo que entendi é um script que adiciona o player em uma posição + monstros baseada na quantidade de "salas" disponíveis, Ou seja, seria como um teleportador de players para trainers, ele vai pegar a quantidade total de salas disponíveis, e vai tentar 1 a 1 usando os cálculos do código, vai contar o tempo configurado no sistema, e depois vai adicionar os monstros. - Posição da primeira sala local position = {x = 160, y = 154, z = 7} -- posição do que? - Começa a verificar cada sala a partir da quantidade de vezes que executou a recursividade, caso encontre uma sala disponível, teleporta o player para ela, e inicia a contagem de tempo e criar os monstros function fazQualquerCoisa(cid, pos, i, j) -- recursao caudal j = j or 0 p = i or 0 if p >= config.rX then p = 0 j = j < config.rY -1 and j + 1 or false end if j then posi = {x = pos.x + ( p * config.distX), y = pos.y + (j * config.distY), z = pos.z} if check_disponivel(posi) then doTeleportThing(cid, posi) countdown({{x = posi.x + 1, y = posi.y - 1, z = posi.z}, {x = posi.x - 1 , y = posi.y - 1, z = posi.z}} ) else fazQualquerCoisa(cid, pos, p + 1, j) end end end Verifica a disponibilidade da sala em questão, para saber se já esta ocupada ou não. function check_disponivel(npos) if disponivel(npos) then return true end return false end Começa a contagem regressiva de ( 5 até 0 ), quando chegar no numero ( 0 Visual no jogo, e 5 no código ), ele cria o monstro verificando se a sala esta ocupada ( para saber se o player ainda esta nela provavelmente )
    1 ponto
  7. Deadpool

    Novo Parceiro! OT Checker

    Funciona com pokémon? auehuaheu zueira e.e Parabens mano, merecido, vou até começar usar.. Ja que meu serve será inaurado hoje(talvez) haha!
    1 ponto
  8. Wo11ven

    Novo Parceiro! OT Checker

    Obrigado pessoal! O apoio de todos com certeza ajuda muito o meu empenho. Aliás, vocês já viram meu projeto ramificado do OT Checker? http://www.xtibia.com/forum/topic/237662-projeto-ot-server-analytics/
    1 ponto
  9. Refe

    [Encerrado]Pokemon Rubrum -Kanto Full-

    Sim, nós estamos atualizando com parceria do Origins para os servidores: Pokémon Rubrum (GBA Graphics) Pokémon Origins (Normal Graphics) The Legend of Zelda (Zelda's Rubrum Server) Star Wars: Origins (Star War's Origins Server) Mais um dispositivo na lista do OTC: Nexus 4 (Obrigado ao @Thorin da Equipe Rubrum por testar em seu aparelho) OTC Mobile não será portado para Windows Mobile ou IOS
    1 ponto
  10. Antharaz

    Desafio do mês. #02

    Vamos la, pelo que vi ele roda toda uma area a partir da var pos variando distX em X e distY em y, dentro de um range rX para x e rY para y, a primeura dessas pos onde estiver disponivel para teleportar o player ele teleportará e criará os monstros após a contagem regressiva. Minha opinião é qie este é um script para sala de trainers. Estou no celular pq por algum motivo este tópico não abre no meu pc, se tiver algum erro de digitação releve. E ae, acertei?
    1 ponto
  11. Night Wolf

    Desafio do mês. #02

    você tem razão, é que eu fiz o código correndo porque tinha esquecido disso daqui e acabei esquecendo de passar esse parâmetro. Vou editar, vlw
    1 ponto
  12. JG6

    Desafio do mês. #02

    Vamo lá vou chutar não manjo nada de script mais vo tentar, isso faz quando vc pisar em algum tile ele veja se o lugar configurado esteja vazio se sim teleporta o player até lá e sumona algum monstro acho q é isso
    1 ponto
  13. LeoTK

    Site para KPDO

    clique aqui < site compativel Shop sem bug espero ter ajudado
    1 ponto
  14. Antharaz

    Desafio do mês. #02

    Tudo bem, nunca tinha participado deste desafio antes... vamos lá... antes de tudo, quero dizer que ao falar var config.rX eu me refiro ao índice rX da table config, usei var config.rX para evitar ficar muito grande, o mesmo vale para os variantes disto. Esta function countdown(pos) realiza uma contagem regressiva do que o scripter definir na variável tempo até 0 (na tela in game, enquanto no script ele aumenta a var j até chegar no valor tempo) e quando chega a 0 e, ao mesmo tempo, se a posição pos[lugares] estiver disponível, então ele cria o "monstro" (que deve ser colocado o nome no lugar de"Nome monstro") em todas posições da tabela indicada como parâmetro para a função. Lembrando que a contagem in game é feita na mesma pos onde o monstro será criado. function countdown(pos) -- apenas a ideia, pode ser que isso nao seja a prova de bugs e tenha que ser feito uma versao recursiva. for lugares = 1, #pos do for j = 0, tempo do addEvent(sendTextMessage, 1000 * j, tempo - j, pos[lugares]) if j == tempo and not check_disponivel(pos) then createMonster(pos[lugares], "Nome monstro") end end end end Essa function check_disponivel(pos) não entendi direito, creio que seja para checar se a posição está disponível para teleportar o player. function countdown(pos) -- apenas a ideia, pode ser que isso nao seja a prova de bugs e tenha que ser feito uma versao recursiva. for lugares = 1, #pos do for j = 0, tempo do addEvent(sendTextMessage, 1000 * j, tempo - j, pos[lugares]) if j == tempo and not check_disponivel(pos) then createMonster(pos[lugares], "Nome monstro") end end end end A function onStepIn(cid) apenas chama a function fazQualquerCoisa(cid) quando alguém sobe em cima do tile, mandando o uid do player como parâmetro. function onStepIn(cid) fazQualquerCoisa(cid) return true end Agora vamos a function fazQualquerCoisa(cid, i, j), esta função explicarei por partes... vamos lá... j = j or 0 p = i or 0 Se a var j existir, ela recebe o próprio valor ou, caso contrário, ela receberá o valor de 0. Já no caso da var p, se a var i existir, ela recebe o valor de i ou, caso contrário, ela receberá o valor de 0. if p > config.rX then p = 0 j = j < config.rY -1 and j + 1 or false end Se a var p for maior do que a var config.rX (acredito que seja o raio em x) então a var p vai receber 0. Depois se a var j for menor ou igual a var config.rY - 1 (acredito que seja o raio em y reduzido em 1), a var j recebe o próprio valor acrescentado de 1, caso contrário recebe o valor booleano false. if j then posi = {x = pos.x + ( p * config.distX), y = pos.y + (j * config.distY), z = pos.z} if check_disponivel(posi) then doTeleportThing(cid, posi) countdown({{x = posi.x + 1, y = posi.y - 1, z = posi.z}, {x = posi.x - 1 , y = posi.y - 1, z = posi.z}} ) else fazQualquerCoisa(p + 1, j) end end Se j existir e não for false (caso não tenha entendido como ele possa ter o valor false, ver explicação anterior), então a var posi vai receber a seguinte posição: coordenada x vai receber a variável pos.x somado da var p vezes a var config.distX (lembrando que irá multiplicar para depois somar). Com a coordenada y vai acontecer a mesma coisa, porém será a var j multiplicado pela config.distY ao invés da var p multiplicada pela var config.distX. A coordenada z vai receber a coordenada z da var pos. Se estiver disponível a pos da var posi (explicado anteriormente na function check_disponivel(posi)) então irá teleportar o player para a posi e executar o countdown (explicado anteriormente). Em countdown({{x = posi.x + 1, y = posi.y - 1, z = posi.z}, {x = posi.x - 1 , y = posi.y - 1, z = posi.z}} ) ele manda para a function countdown as posições superior direita e superior esquerda, respectivamente, de onde o player será teleportado., caso contrário, irá repetir a function fazQualquerCoisa. Nesta parte de repetir a function fazQualquerCoisa eu não entendi, pois ele manda a var p+1 aonde ele recebe o parâmetro cid e o j aonde recebe o parâmetro i, creio que o correto seria fazQualquerCoisa(cid, p + 1, j), mas enfim, o código destrinchado é este, agora vou falar para o que imagino que seja. Function fazQualquerCoisa(cid, i, j) completa abaixo: function fazQualquerCoisa(cid, i, j) -- recursao caudal j = j or 0 p = i or 0 if p > config.rX then p = 0 j = j < config.rY -1 and j + 1 or false end if j then posi = {x = pos.x + ( p * config.distX), y = pos.y + (j * config.distY), z = pos.z} if check_disponivel(posi) then doTeleportThing(cid, posi) countdown({{x = posi.x + 1, y = posi.y - 1, z = posi.z}, {x = posi.x - 1 , y = posi.y - 1, z = posi.z}} ) else fazQualquerCoisa(p + 1, j) end end end Para o que acho que foi feito este script irei postar em breve, tenho que almoçar primeiro asuhashuasuh.
    1 ponto
  15. Felipe Moraes

    Erro mysql

    mysqld stop mysqld --skip-grant-tables & - Vai liberar para configuração do mysql mysqld -u root mysql - Vai te permitir logar como root UPDATE user SET Password=PASSWORD('SENHA') WHERE User='root'; FLUSH PRIVILEGES; exit; - Vai setar a senha do usuário root para "senha" e recarregar as permissões. Ao dar o start, normalmente vai te pedir pra digitar a senha que você cadastrou acima. Preste atenção, pois geralmente não aparece os asteristicos enquanto digita a senha.
    1 ponto
  16. No arquivo config.lua nesta parte: experienceStages = "no" rateExperience = 50 rateExperienceFromPlayers = 0 rateSkill = 100 rateMagic = 80 rateLoot = 4 rateSpawnMin = 1 rateSpawnMax = 1 Tem mais rates perto desta parte, mas aonde você deve alterar é por ae... qualquer coisa dá uma procurada masi embaixo, caso você use stages para xp, mude a linha experienceStages = "no" mudando o no para yes e altere o arquivo stages.xml localizado em data\XML.
    1 ponto
  17. Deadpool

    DXP Server 1.0

    Se for PDA, eu posso dar qualquer tipo de suporte. ^~
    1 ponto
  18. Tiagone

    Erro Sistema de Graduação

    desculpe a demora tava na escola,tenta com esse npc aqui ta diferente do seu pois ele não pede item para termina a quest,mais tenta com esse npc se funciona e você quise q eu coloque pra ele pega o item eu coloco...
    1 ponto
  19. Felipe Moraes

    Erro mysql

    Para iniciar o serviço do MySql: service mysql start ou service mysqld start, dependendo do os que esteja usando
    1 ponto
  20. Antharaz

    [Pedido] Potion

    Caralhooooo.... me senti um jumento e concordo com sua risada agora... .-. ashuhuashuas se não foi deveria ter sido porque esse erro foi banal, não acredito que errei isto... :x mil perdões mestre u.u não está mais aqui quem postou aquela atrocidade <3 te amo
    1 ponto
  21. Antharaz

    [Pedido] Potion

    @@Killua Não precisava dessa risada ironica ae na minha conta né... eu deixei ((perc+1)/100), logo ele somaria 1 para depois dividir por 100, o que daria 1.3... Em relação a vida máxima e a mana eu realmente não vi :x faz anos que não mecho com script e programação, então achei também que deveria verificar a vida máxima também... Claro, sempre respeitarei o pai dos scripters, grande Killua u.u lembro de ti anos atras quando comecei no forum *-* só não gostei da sua risada "rs" mesmo u.u mas te amo msm assim @@Jefferson14789 Novo script considerando a vida max e a mana max: local perc = 30 function onUse(cid, item, fromPosition, itemEx, toPosition) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)*(perc/100)) doPlayerAddMana(cid, getPlayerMaxMana(cid)*(perc/100)) return true end
    1 ponto
  22. Antharaz

    [Pedido] Potion

    Ta ae o lua do action: local perc = 30 function onUse(cid, item, fromPosition, itemEx, toPosition) local vida = getCreatureHealth(cid) local vmax = getCreatureMaxHealth(cid) - (vida*((perc+1)/100)) doCreatureAddHealth(cid, vmax >= 0 and (vida*(perc/100)) or 0) return true end E agora a tag: <action itemid="2229" script="potion.lua"/>
    1 ponto
  23. Valeu Caso queria ajudar será bem-vindo, com créditos na v1.1
    1 ponto
  24. Wo11ven

    Novo Parceiro! OT Checker

    Um grande Obrigado ao XTibia pela parceria! Estarei a disposição no subfórum do projeto para tirar as dúvidas do pessoal.
    1 ponto
  25. Ceetros, sou prova disso de que não é! Eu retirei realmente o sistema de level do meu servidor! Os poké até estão ganhando vida de acordo com o level do player rs
    1 ponto
  26. Gostei do servidor, muito bom.. Espero que não seja PDA, seria um desgosto.. Vou ficar de olho nas suas atualizações ^^
    1 ponto
  27. Eae leks do xtibia blz? Hoje vou ensinar como compilar seu client de um jeito rápido e fácil 1º Baixe, instale e abra o molebox 2º Click em add Browse 3º Selecione o arquivo .exe do seu client 4º Se você quiser escolher o nome do seu client mude onde esta escrito Pack to 5º Click em add file e escolha os arquivos .pic .dat e .spr 6º Click em pack to box 7º Vai carregar uns treco e assim que termina vai aparece isso 8º Pronto o client vai estar la onde ta o client original do seu ot Esse e meu primeiro tutorial ake se fiz algo de errado mals ae Dowload: 4Shared Scan:o 4shared ja faiz scan '-'
    1 ponto
  28. To fazendo MEU servidor, ok?
    1 ponto
  29. dalle153

    [Pokémon] Titanium

    o client tem espaço ????
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...