Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 11/05/15 em %
-
Desafio do mês. #02
Administrador e um outro reagiu a Night Wolf por um tópico no fórum
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 -
BallonSystem [PXG]
Rodrigovagaus reagiu a kaleudd por um tópico no fórum
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 -
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
-
Novo Parceiro! OT Checker
Peterwild reagiu a Administrador por um tópico no fórum
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 rsrs1 ponto -
Desafio do mês. #02
Night Wolf reagiu a BananaFight por um tópico no fórum
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 -
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
-
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
-
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 IOS1 ponto
-
Desafio do mês. #02
Amantezinho reagiu a Antharaz por um tópico no fórum
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 -
Desafio do mês. #02
Antharaz reagiu a Night Wolf por um tópico no fórum
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, vlw1 ponto -
Desafio do mês. #02
Night Wolf reagiu a JG6 por um tópico no fórum
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 é isso1 ponto -
clique aqui < site compativel Shop sem bug espero ter ajudado1 ponto
-
Desafio do mês. #02
Amantezinho reagiu a Antharaz por um tópico no fórum
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 -
Erro mysql
kinglekke reagiu a Felipe Moraes por uma questão
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 -
[Encerrado] Como alterar as rates do servidor?
Amantezinho reagiu a Antharaz por um tópico no fórum
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 -
DXP Server 1.0
CaioSilva99 reagiu a Deadpool por um tópico no fórum
Se for PDA, eu posso dar qualquer tipo de suporte. ^~1 ponto -
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
-
Erro mysql
kinglekke reagiu a Felipe Moraes por uma questão
Para iniciar o serviço do MySql: service mysql start ou service mysqld start, dependendo do os que esteja usando1 ponto -
[Pedido] Potion
Amantezinho reagiu a Antharaz por uma questão
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 amo1 ponto -
[Pedido] Potion
Amantezinho reagiu a Antharaz por uma questão
@@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 end1 ponto -
[Pedido] Potion
Amantezinho reagiu a Antharaz por uma questão
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 -
Valeu Caso queria ajudar será bem-vindo, com créditos na v1.11 ponto
-
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
-
[Encerrado] Quitar level system a un otpokemon
MauricioPC reagiu a Deadpool por um tópico no fórum
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 rs1 ponto -
[Encerrado]Pokemon Rubrum -Kanto Full-
CaioSilva99 reagiu a Deadpool por um tópico no fórum
Gostei do servidor, muito bom.. Espero que não seja PDA, seria um desgosto.. Vou ficar de olho nas suas atualizações ^^1 ponto -
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
-
[Show-Off] Ditto Memory(Updated)
MauricioPC reagiu a gabrielbsales por um tópico no fórum
To fazendo MEU servidor, ok?1 ponto -
1 ponto
