Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 02/06/16 em todas áreas
-
2 pontos
-
@Up Breve otimização do blink, o exemplo abaixo está com o efeito de holy mas fica legal com diversos efeitos: (tirei a fala, mudei os efeitos, coloque para o player "desaparecer" e "reaparecer" e deixei mais correta a posição do mouse)2 pontos
-
Herói
Andre Miles reagiu a Administrador por um tópico no fórum
Introdução Herói é um título (cargo). É concedido à membros que foram importantes para a comunidade. Em tempos passados, este título fora desvalorizado e permaneceu sem supervisão ou definição qualquer enquanto ativo. Herói 1.0 Heróis são avaliados pela contribuição realizada no fórum; 2.0 Alertas, dependendo da seriedade, podem remover o título de um membro. • Atualizado 30/05/171 ponto -
Conteúdo: Imagens Mapa não incluso Downloads: Removendo Bugs de itens (como order, fishing, etc) Sistemas feitos para o PDE: Tutoriais feitos para o PDE: Bugs reportados:1 ponto
-
Smeargle System[PXG]
KaboFlow reagiu a gabrielbsales por um tópico no fórum
Bom, como um individuo(Vudi) não sabe cumprir o que fala, vou postar o sistema aqui.(não cabe ao post explicar aqui) Bom, aqui está o smeargle system, igual o da PxG. Vamos lá. 1 - Vá na pasta Lib, substitua seu cooldown bar.lua por isso: 2 - Ainda no Lib, no fim(depois do ultimo end) do Some Functions.lua, adicione isso: 3 - Agora no order.lua, do Actions, em baixo de: Adicione: 4 - Se seu servidor ja tiver os spells, sketch 1, sketch 2... Substitua por esses(data/lib/pokemon moves.lua): Se não, use os mesmos acima, não esqueça de adicionar no spells.xml. 5 - Agora, vá em talkactions/scripst, abra o move1.lua e substitua: Por Depois: Por: Pronto, se tiver feito tudo certo, funcionará. Como ficará: Como usar: Créditos: Eu(Todo o script)1 ponto -
[Sprites] [+226,859] De Tibia 10.82
OzSoftware reagiu a aremst por um tópico no fórum
Este é um pacote de sprites em formato PNG com fundo transparente do Tibia versão 10,82 ... Na próxima versão da tíbia vou acrescentar mais pacotes extras para download neste post Download Link: Scan: -------------------------------------------------------- Pacote adicional de ultima preactualización 26/11/2015 03:40 am Download link:1 ponto -
OT Restarter (Auto Restarter)
samlecter reagiu a FlamesAdmin por um tópico no fórum
Eaí galerinha, trago à vocês um Auto Restarter excelente criado por Gabrielbsales (Featzen). Vamos lá! Como ele funciona? Checa se o servidor está aberto. - Se sim: Verifica se o mesmo está respondendo; - Se não: Aguarda 20 segundos para reiniciá-lo. Este Auto Restarter ele reinicia o servidor quando da algum crash no servidor e aparece aquela janelinha de "Parou de funcionar". Print do OT Restarter: Como usar? No campo: Application: Preencha com o título da janela do seu servidor, no meu caso é "Pokemon Online Server(DA)". Exemplo: Em Executable: Preencha com o caminho do executável do seu servidor ou selecione-o ao lado ('...'). Em Delay: Preencha em segundos, 'de quanto em quanto' tempo ele irá checar se o servidor está respondendo/executando. >[Download]< >[https://www.virustotal.com/pt/file/6fe4921f55397a7a37cc996cd9eedfcfe8926cc09f5cac6d38f2d4aab5754da2/analysis/1423192614/]< Não ta dando pra colocar link do Scan junto com "Scan". Créditos: Gabrielbsales (Featzen)1 ponto -
[10.30] Roshamuul
UmSerQualquer reagiu a Nolis por um tópico no fórum
Versão: 10.30 Download: https://www.mediafire.com/?8qm81s8po78bz3n Scan http://i.imgur.com/PpqxWwd.png1 ponto -
Adicionando items com o Object Builder 8.6/10.37
JustinnoTibianno reagiu a dyego2008 por um tópico no fórum
Olá galera, hoje eu vim postar um pequeno tutorial, na verdade um vídeo ensinando a usar o básico do Object Builder. Oque contém no tutorial? Ensino para aqueles que não sabem usar o Obeject Builder programa muito bom para adicionar sprites no Tibia Client. OBS: é a primeira vez que faço um vídeo, pretendo criar mais tutoriais para ajudar os membros do xtibia. OBS²: Não vou encher o tópico de palavras pois o Tutorial foi feito em vídeo para explicar melhor. ATUALIZADO: https://www.youtube.com/watch?v=fGvFny6lpbs&feature=youtu.be Tutorial de como Adicionar monster e Outfit: https://www.youtube.com/watch?v=4TUwfIRo-ls É isso ae galera, em breve mais tutorias sobre o object builder, como adicionar outfits e etc.1 ponto -
Boa noite galera Como levantei no tópico: http://www.xtibia.com/forum/topic/238784-monstros-se-matando/monstros selvagens são todos tratados como amigos e, portanto, não é possível setar target neles com funções de target normal. Além disso, o callBack onTarget() não funciona para monstros. Desde então estou em busca de uma forma de fazer monstros lutarem entre si sem mexer na source e, com algumas sugestões do Lobo @Night Wolf eu consegui chegar a algo bem satisfatório para o que eu precisava. Portanto, compartilho com você a base do sistema (fiz outras coisas para o meu objetivo que acho bobeira postar aqui, mas a base do sistema de luta está aqui). Então vamos lá. Primeiramente, esse sistema é baseado em dois eventos: onThink (que repete de x em x segundos) e onAttack(para evitar que o monstro ataque players quando estiver atacando monstros. Vá em creaturescripts e crie as seguintes tags em creaturescripts.xml: <event type="think" name="monsters" event="script" value="monsters.lua"/> <event type="attack" name="monstersatt" event="script" value="monsters.lua"/> Feito isso, vá na pasta lib (data/lib) e crie um arquivo chamado monsterslib.lua. La dentro coloque: Feito isso, agora crie um arquivo chamado monsters.lua dentro de creaturescripts/scripts, e cole isso dentro Pronto é isso, você tem um pequeno framework configurável para fazer seus monstros se matarem. Para implementar o script no monstro basta ir no arquivo .xml dos monstros que deseja incluir esse sistema e colocar, logo após as defense, a tag: <script> <event name="minionatt"/> <event name="minion"/> </script> Abaixo um exemplo de utilização do framework, simulando uma luta de "raças" entre dwarfs e orcs de diferentes tipos: O código está bem auto explicativo. Qualquer dúvida me avisem. Espero que gostem. Abraços,1 ponto
-
Stamina Recharge
Administrador reagiu a Suporte Chaitosoft por um tópico no fórum
Olá, tudo na boa? Após perceber que alguns servidores possuíam problemas com a recarga de estamina por uma falha causada na própria source decidi procurar um script que pudesse resolver isto, nem que fosse de uma maneira meio "arrumada". Porém vai ser de ótima ajuda para aqueles que desejam manter ativo o sistema de estamina em seu servidor. 1°- Siga até "/data/globalevents/" e adiciona a tag no arquivo "globalevents.xml": <globalevent name="stamina" interval="3600000" event="script" value="stamina.lua"/> 2°- Siga até "/data/globalevents/scripts/" e crie um arquivo chamado "stamina.lua" e preencha: function onThink(interval, lastExecution, thinkInterval) local total,minutes = 151200000,3900000 local query = db.getResult("SELECT `id`, `stamina` FROM `players` WHERE `id` > 6 AND `group_id` < 3;") if (query:getID() ~= -1) then while true do local id, stamina_now = query:getDataInt("id"), query:getDataInt("stamina") if stamina_now < (total-minutes) then db.executeQuery("UPDATE `players` SET `stamina` = "..stamina_now+minutes.." WHERE `id` = "..id) end if not(query:next()) then break end end query:free() end return true end É isto ai, obrigado1 ponto -
Edição em spell de premium
bernardes22 reagiu a Caronte por uma questão
Tópico Movido Este tópico foi movido de "OTServ → Scripting → Downloads Scripts" para "OTServ → Scripting → Suporte Scripting". Haha, só esperar mais um tempinho que vou postar um tópico já pronto, de como será o esquema. @@bernardes22, Você postou 2 vezes o mesmo tópico, Double post é proibido no fórum. É permitido dar @UPs diários no tópico, para evitar esse tipo de inconveniência. Se o tópico foi resolvido clique em Resolvido no post que resolveu seu pedido.1 ponto -
Zare City
Administrador reagiu a Gabriel Couto por um tópico no fórum
Olá pessoal. A versão desse mapa é 9.60 e tenho a intenção de disponibilizá-lo para download futuramente aqui no XTibia. O objetivo principal primário é ser uma cidade com diversas casas, para que seja útil à um servidor que necessite de casas para seus usuários. A primeira versão para download sairá somente com a mesma. Posteriormente, pretendo ir atualizando com áreas de hunt, etc. Estou há pelo menos 2 anos sem fazer mapas de verdade e há pelo menos 1 sem abrir o editor de mapas! Então essas primeiras imagens são somente um esboço. Com mais treinamento, irei depois revisar as áreas para postar a primeira versão para download. Ainda assim, a intenção é que o mapa seja ao mesmo tempo simples e agradável, sem nenhum tipo de detalhe "mirabolante". Seria um mapa para o global, por exemplo. 01/02/2016 01/02/2016 01/02/2016 Abraços, Gabriel.1 ponto -
Preciso que alguém edite essa spells para mim por favor
bernardes22 reagiu a Danihcv por uma questão
Amigo, n entendi direito o que vc qr... Esse script n está fazendo nenhuma checagem pra ver se o player eh premium ou n... Logo, n tem 2 spells diferentes... Pf, explique um pouco mais dando situações-exemplo, tipo, "ao usar essa magia com um player sem oremium e sem promotion, etc etc etc" OBS: e mande a tag responsável por essa spell em spells.xml (acredito q seja esse o nome)1 ponto -
Edição em spell de premium
bernardes22 reagiu a Caronte por uma questão
if getPlayerStorageValue(cid, 10007) >= 1 then para if isPremium(cid) then Vejo que tem interesse em aprender, vou criar uma escolinha de scripting aqui no fórum, se quiser participar, será bem-vindo. Em breve eu vou postar o tópico explicando.1 ponto -
TFS 0.4 function onSay(cid, words, param, channel) local _ip = nil if(param ~= '') then _ip = tonumber(param) if(not _ip or _ip == 0) then local revertIp = doRevertIp(param) if(not revertIp) then local tid = getPlayerByNameWildcard(param) if(not tid) then _ip = nil else _ip = getPlayerIp(tid) end else _ip = doConvertIpToInteger(revertIp) end end end local list, ips = {}, {} local players = getPlayersOnline() for i, pid in ipairs(players) do local ip = getPlayerIp(pid) local tmp = table.find(ips, ip) if(tmp ~= nil and (not _ip or _ip == ip)) then if(table.countElements(list, ip) == 0) then list[players[tmp]] = ip end list[pid] = ip end table.insert(ips, ip) end if(table.maxn(list) > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Currently online players with same IP address(es):") for pid, ip in pairs(list) do doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(pid) .. " (" .. doConvertIntegerToIp(ip) .. ")") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Currently there aren't any players with same IP address(es).") end return true end ele só mostra se tiver players com mc.1 ponto
-
@@Tiagotwos, clique no botão resolvido, abaixo do post do membro.1 ponto
-
Psoul. Its the best.1 ponto
-
Uwnia99
othereality reagiu a Eskylo por um tópico no fórum
Agora senti firmeza, tava com saudades desses itens coloridos! Me coloco a disposição se precisar de ajuda1 ponto -
Anti-afk nos trainers
Spring Trap reagiu a Yan Liima por uma questão
Vá na pasta do seu OT \data\creaturescripts\creaturescript.xml e adiciona essa tag: <event type="think" name="Idle" event="script" value="idle.lua"/> Agora em \data\creaturescripts\scripts crie um arquivo chamado idle.lua e cole isto dentro: local config = { idleWarning = getConfigValue('idleWarningTime'), idleKick = getConfigValue('idleKickTime') } function onThink(cid, interval) if(getTileInfo(getCreaturePosition(cid)).nologout or getCreatureNoMove(cid) or getPlayerCustomFlagValue(cid, PlayerCustomFlag_AllowIdle)) then return true end local idleTime = getPlayerIdleTime(cid) + interval doPlayerSetIdleTime(cid, idleTime) if(config.idleKick > 0 and idleTime > config.idleKick) then doRemoveCreature(cid) elseif(config.idleWarning > 0 and idleTime == config.idleWarning) then local message = "You have been idle for " .. math.ceil(config.idleWarning / 60000) .. " minutes" if(config.idleKick > 0) then message = message .. ", you will be disconnected in " local diff = math.ceil((config.idleWarning - config.idleKick) / 60000) if(diff > 1) then message = message .. diff .. " minutes" else message = message .. "one minute" end message = message .. " if you are still idle" end doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, message .. ".") end return true end Para finalizar, agora vai em \data\creaturescripts\scripts\login.lua e adicione isto: registerCreatureEvent(cid, "Idle") Para você alterar o tempo do exit, basta você abrir o config.lua e adicionar isto, caso já tenha é so configurar: idleWarningTime = 9 * 60 * 1000 idleKickTime = 10 * 60 * 10001 ponto -
(Bug) Loteria System
BrunooMaciell reagiu a zipter98 por uma questão
local config = { lottery_hora = "60 Minutos", reward_count = 1, website = 0 } function onThink(interval, lastExecution) local players = getPlayersOnline() local winner = players[math.random(#players)] if config.website == 1 then db.executeQuery("INSERT INTO `lottery` (`name`) VALUES ('".. getCreatureName(winner) .."');") end doBroadcastMessage('[Loteria Venetta] Ganhador: '.. getCreatureName(winner) ..', Recompensa: '.. config.reward_count ..'Boost Stone - Parabens ! (Proxima em: '.. config.lottery_hora ..')') doPlayerAddItem(winner, 12618, config.reward_count) return true end1 ponto -
Uwnia99
othereality reagiu a felzan por um tópico no fórum
Curti muito seu jeito de pensar Vou ver como está1 ponto -
Foi pela numeracao q eu pus pouca nas margens, aumenta elas em uns 70 cada mas só as left e right, as top tu deixa como ta e testa aquilo q tu falou q tava dando erro, no caso é só regular as posições ve la e me manda aqui oq aconteceu Muda só a numeração do left pq dos right eles vao sumir pra direita E se der erro, diminui as left e as right, no caso como eu disse é só regular elas nas posições certas q tu queria com aquela imagem de fundo q tu ja pode por, eu to fazendo tudo por celular por isso n tenho como testar antes de falar, n tenho net aqui só esse 3g da tim Ou se quiser, espera q amanha eu vejo em casa certinho e te mando, só vou precisar dessa foto pra regular direito ainda com erro? algum progresso?1 ponto
-
<movevent type="StepIn" actionid="xxx" event="script" value="nome_do_arquivo.lua"/>1 ponto
-
local config = { toPosition = {x = x, y = y, z = z}, --Para onde o jogador será teleportado. pokeball_IDs = {itemid, itemid, itemid, ...}, --IDs das pokeballs. blocked_poke = {"Steelix", "Muk", "Xatu", ...} --Pokémons bloqueados na quest. } function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end for i = 1, #config.pokeball_IDs do if getPlayerItemCount(cid, config.pokeball_IDs) > 0 then doPlayerSendCancel(cid, "You can't carry any pokeballs with you.") doTeleportThing(cid, fromPosition) return true end end local player_pokeballs = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) if isInArray(config.blocked_poke, getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")) then doPlayerSendCancel(cid, "You have a blocked pokemon for this quest in your team.") doTeleportThing(cid, fromPosition) return true end if #player_pokeballs > 0 then for i = 1, #player_pokeballs do local poke = getItemAttribute(player_pokeballs, "poke") if isInArray(config.blocked_poke, poke) then doPlayerSendCancel(cid, "You have a blocked pokemon for this quest in your team.") doTeleportThing(cid, fromPosition) return true end end end doTeleportThing(cid, config.toPosition) return true end1 ponto
-
Só recortar as imagens. Bonus:1 ponto
-
Eu não botei só as funções, eu também tirei uns bugs de derrubar/duplicar itens, e é as sources do PDA 1.0 Vou arrumar td @Adicionado Patch 1.11 ponto
-
1 ponto
-
Leia os spoilers1 ponto
-
Valeu Caso queria ajudar será bem-vindo, com créditos na v1.11 ponto
-
[Resolvido] [Pedido] Spell Pokemon (Outrage)
dindalluiz reagiu a zipter98 por uma questão
Já que você não mencionou a base utilizada, irei supor que é PDA. data/lib/pokemon moves.lua: elseif spell == "Outrage" then local config = { outfit = { --["pokemon_name"] = outfit, ["Salamence"] = xxx, }, AOE = { times = 2, --Quantas vezes o golpe AOE será usado. interval = 3000, --Intervalo de tempo, em milésimos de segundo, entre cada golpe AOE. combat = DRAGONDAMAGE, --Elemento. spell = { --Uma tabela deverá ser configurada com a área e efeito da parte com socos, e a outra com a parte do efeito do Draco Meteor. {area = OutrageArea1, effect = xxx}, --{area = área do dano AOE, effect = efeito} {area = OutrageArea2, effect = xxx} }, } } local function doOutrage(cid, times) if not isCreature(cid) then return true end for i = 1, #config.AOE.spell do doMoveInArea2(cid, config.AOE.spell[i].effect, config.AOE.spell[i].area, config.AOE.combat, min, max, spell) end times = times - 1 if times <= 0 then local rounds = math.random(4, 7) rounds = rounds + math.floor(getPokemonLevel(cid) / 35) local ret = {} ret.id = cid ret.cd = rounds ret.check = getPlayerStorageValue(cid, conds["Confusion"]) ret.cond = "Confusion" doCondition2(ret) return true end addEvent(doOutrage, config.AOE.interval, cid, times) end local ret = {} ret.id = cid ret.cd = config.AOE.interval / 1000 * config.AOE.times ret.eff = 0 ret.check = 0 ret.buff = spell ret.first = true doCondition2(ret) doSetCreatureOutfit(cid, {lookType = config.outfit[getCreatureName(cid)]}, config.AOE.interval * config.AOE.times) addEvent(doOutrage, config.AOE.interval, cid, config.AOE.times) areas.lua: OutrageArea1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } OutrageArea2 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } newStatusSyst.lua, abaixo de: if buff == "Strafe" or buff == "Agility" then setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6 doRaiseStatus(cid, 0, 0, 100, a) coloque: elseif buff == "Outrage" then doRaiseStatus(cid, 0, 1.4, 0, a)1 ponto -
[TUTORIAL] Como Adicionar pokemon em uma base Open Source
Danihcv reagiu a JairKevick por um tópico no fórum
vai tomar no seu cu arrombado que fica colocando trojan em seus arquivos-1 pontos