Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 10/19/12 em %

  1. Lordfire

    Melhorias No Fórum

    Olá novamente, galera do Éks! Hoje eu trago pra vocês novas mudanças no fórum, agora estamos fazendo correções e melhorias para que tudo seja melhor de se usar. Primeiramente, nós começamos a corrigir a tradução do fórum, algumas partes da tradução estavam faltando ou estavam erradas e foram corrigidas, mas ainda há algumas partes para corrigir. Segundo, como devem ter percebido, foi instalada uma legenda de todos os cargos do fórum na página inicial, lááá embaixo onde ficam os usuários online. Aí você pode ter uma referência rápida de quem é quem online Também corrigimos, na página inicial, a barra lateral de login, aquela que simplesmente te redirecionava para outra página de login dizendo que os dados eram inválidos? Então, agora ela está 100% funcional! Uma facilidade que foi adicionada é a criação automática de imagens pelo link, ou seja, você simplesmente cola o link (sem as tags "img") e a imagem será automaticamente convertida para aparecer. Por enquanto, só adicionamos esta função para o Imgur (http://www.imgur.com) e ImageShack (http://www.imageshack.us), mas o objetivo é fazer para todos os sites mais populares de hospedagem de imagens. Fiquem antenados, vamos trazer novas melhorias nos próximos dias e anunciar para vocês Ah! E não se esqueçam de nos curtir no Facebook: http://facebook.com/XTibia é a única página oficial! Em breve vamos ter concursos valendo prêmios de verdade Atenciosamente, Equipe XTibia
    2 pontos
  2. Natanael Beckman

    Vip System By Mock 100%

    Boa galera eu mais uma vez trazendo comodidade e algo seguro pra nós. Esse sistema VIP do Mock foi modificado e aptado em alumas partes dos scripts, para um funcionamento correto e com isso tivemos a ajuda dos scripts, Doidin, Luke sky walker e por min por ter ido atraz de todas as soluções pra completa algo incompleto. Vamos nois: 1° Acesse a pasta data/lib copie la um arquivo.lua e renomeio para 049-vipsys.lua, após isso apague tudo dentro desse arquivo e adicione este coder: vip = { name = "Vip system"; author = "Mock"; version = "1.0.0.0"; query="ALTER TABLE `accounts` ADD `vip_time` INTEGER"; query2="ALTER TABLE `accounts` ADD `vip_time` INT(15) NOT NULL" } function vip.setTable() dofile('config.lua') if sqlType == "sqlite" then db.executeQuery(vip.query) else db.executeQuery(vip.query2) end end function vip.getVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; ae = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';") if ae:getID() == -1 then return 0 end local retee = ae:getDataInt("vip_time") or 0 ae:free() return retee end function vip.getVipByAcc(acc) assert(acc,'Account is nil') local a = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';") if a:getID() ~= -1 then return a:getDataInt("vip_time") or 0, a:free() else error('Account don\'t find.') end end function vip.setVip(cid,time) dofile("config.lua") assert(tonumber(cid),'Parameter must be a number') assert(tonumber(time),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';") end function vip.getVipByAccount(acc) assert(acc,'Account is nil') return db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0 end function vip.hasVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) or 0 if os.time(day) < t then return TRUE else return FALSE end end function vip.hasVips(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) if os.time(day) < t then return TRUE else return FALSE end end function vip.accountHasVip(acc) assert(acc,'Account is nil') if os.time() < vip.getVipByAccount(acc) then return TRUE else return FALSE end end function vip.getDays(days) return (3600 * 24 * days) end function vip.addVipByAccount(acc,time) assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') local a = vip.getVipByAcc(acc) a = os.difftime(a,os.time()) if a < 0 then a = 0 end; a = a+time return vip.setVipByAccount(acc,a) end function vip.setVipByAccount(acc,time) dofile("config.lua") assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') db.executeQuery("UPDATE `accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';") return TRUE end function vip.returnVipString(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == TRUE then return os.date("%d %B %Y %X ", vip.getVip(cid)) end end 2° Abra a pasta data/creaturescrpits/scripts copie la um arquivo.lua e renomeio para vip.lua, dentro dele adicione: By Lukeskywalker function onLogin(cid) local temple = { x =32369, y = 32246, z = 6} if vip.hasVip(cid) == true then if getPlayerStorageValue(cid,55555) ~= 1 then setPlayerStorageValue(cid,55555,1) end else if getPlayerStorageValue(cid,55555) == 1 then doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, 22, "Your VIP Time over!") db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `id` = ".. getAccountIdByName(getPlayerName(cid))..";") setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, 55555, 0) end end return true end Você pode troca as coordenadas do templo: local temple = {x=32369, y=32246, z=6}. 3° Em data/creaturescripts/scripts/login.lua adicione essas tags: registerCreatureEvent(cid, "FimVip") registerCreatureEvent(cid, "VipReceive") 4° Em data/creaturescripts/creaturescripts.xml adicione está tag: <event type="login" name="FimVip" event="script" value="vip.lua"/> 5º Em data\movements\scripts copie la um arquivo.lua e renomeio para viptile.lua e adicione este coder dentro do mesmo: function onStepIn(cid, item, position, fromPosition) local tileConfig = { kickPos = fromPosition, kickEffect = CONST_ME_POFF, kickMsg = "You need to be a vip player to access this area.", enterMsg = "Welcome to vip area!", enterEffect = CONST_ME_MAGIC_RED, } if isPlayer(cid) == true then if vip.hasVip(cid) == FALSE then doTeleportThing(cid, tileConfig.kickPos) doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect) doPlayerSendCancel(cid, tileConfig.kickMsg) return end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) return true end end 6° Em data\movements\movements.xml adicione a tag: <movevent type="StepIn" actionid="13500" event="script" value="viptile.lua"/> Vejam a numeração 13500 você irá usar no tile que você quer para a passagem de player VIP para configurar adicione a numeração em ActionID do tile. 7° Em data/talkactions/scripts acrecente dentro da pasta scripts uma outra pasta com o nome VIP vamos precisar de 7 arquivos.lua quem teram os nomes e coder a seguir: add.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, "Added "..param.." Vip Days.") return doPlayerAddVipDays(cid, param) end addvipp.lua function onSay(cid, words, param) if param == "" then return doPlayerPopupFYI(cid,"Está com problemas?\nAprenda os comandos!\n---------------\nAdicionar vip:\n/vip add days player\n/vip add 30 Real\n---------------\nDeletar vip:\n/vip del player\n/vip del Real\n---------------\nVer a vip:\n/vip see player\n/vip see Real\n---------------\n") end if param:lower():find('add') == 1 and 3 then local _,_,id,name = param:lower():find('add (%d+) (.+)') name = name or "" id = tonumber(id or 1) or 1 if tonumber(id) == nil or getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Adicionar vip:\n/vip add days player\n/vip add 30 Real\n[Player: "..name.."]") end if isPlayer(getPlayerByName(name)) == TRUE then vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,vip.getDays(id)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Foram adicionados "..tonumber(id).." dias de vip a "..name..".") doPlayerSendTextMessage(getPlayerByName(name),MESSAGE_INFO_DESCR,"Você recebeu "..tonumber(id).." dias de vip.") else doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,name.." não esta online ou não existe.") end elseif param:lower():find('del') == 1 and 3 then local _,_,name = param:lower():find('del (.+)') if getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Deletar vip:\n/vip del player\n/vip del Real\n") end vip.setVipByAccount(getPlayerAccount(getPlayerByName(name)),-os.time()) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"A vip de "..name.." foi apagada.") elseif param:lower():find('see') == 1 and 3 then local _,_,name = param:lower():find('see (.+)') name = name or "" if getPlayerByName(name) == false then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Ver a vip:\n/vip see player\n/vip see Real\n") end local ret_ = vip.getVip(getPlayerByName(name)) if ret_ == 0 then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,name.." Não tem vip, e nunca teve.") else return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A vip de "..name.." Acaba/terminou em "..os.date("%d %B %Y %X ",ret_)) end end return TRUE end get.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, ""..getPlayerVipDays(cid).." days VIP left.") end is.lua function onSay(cid, words, param, channel) if isPlayerVip(cid) == TRUE then doPlayerSendCancel(cid, "You are a VIP player.") else doPlayerSendCancel(cid, "You are not a VIP player.") end end removevip.lua function onSay(cid, words, param, channel) doPlayerSendCancel(cid, "Vip removed.") return doPlayerRemoveVip(cid) end set.lua function onSay(cid, words, param) if vip.hasVip(cid) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your vip end in "..os.date("%d %B %Y %X ",vip.getVip(cid))) else if vip.getVip(cid) ~= 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. Your vip has finished in "..os.date("%d %B %Y %X ", vip.getVip(cid)).." and now is "..os.date("%d %B %Y %X ", os.time())) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You're not a vip player. You naver has a vip.") end end return TRUE end 8°Em data/talkactions/talkactions.xml adicione está tag: <!-- VIP System --> <talkaction log="yes" words="/vip" access="5" event="script" value="VIP/addvipp.lua" /> <talkaction words="!vipdays" event="script" value="VIP/vipdays.lua" /> 9° Para finalizar execute este comando na sua database na tabela accounts: alter table `accounts` add `vip_time` INT NOT NULL; Bom galera fim este sistema vip adiciona os dias corretos e ao termino do VIP o player recebe a menssagem que o VIP acabou é teleportado pro templo porque se no caso ele estiver na área VIP essa é uma saida e zera a coluna vip_time. Creditos: Mock (por ter iniciado algo e não terminou) Lukeskywalker (Sistema de finalização perfeito do vip.) Natan Beckman (Por ter ido atrás a conclusão 100% in game e php)
    1 ponto
  3. ImBack

    Global Full 9.6 Ot-Soft

    Bom alguns duvidaram, mais ta ai, flw ai gustavo :* OBS: SE ALGUEM FALAR QUE NÃO É O MESMO DA OT-SOFT É SÓ ABRIR NO RME E DAR UMA OLHADINHA NO TEMPLO E COMPRAR COM A DO SITE. SERVIDOR RODANDO EM MYSQL, NÃO DOU SUPORTE NELE. #Novidades: -Sistema de cooldown das magias 100% funcionando (SEM BUG DO COMBO). -Mount System 100%. -Taming System 97%. -Novos items 9.60. -Market System 100%. -Monstros adicionados. OBS*Este Mapa Possui Gray Island e Quirefang (100% Sem Bugs) #O que possui? -Peso do mapa: 140MB. - War of Emperium (Evento) - Battlefield (Evento) - Raids Automáticas (Script) - Zombie (Evento) - Database completa + Shop Pronto (DB FULL) - Wrath of Emperor com todas as missões (Mapa-quest) - Zao e New Banuta Piece (Mapa) - TFS 0.4 (Distro: Anti-Divulgação, War System, No-otbm check e sem "compite to 64bits") - War System com escudos (Script) - Mais de 30 Ilhas VIPS (Exclusivas OtSoft) - 15+ items VIPS (Script) - 9 cidades VIPS (Mapa) Download servidor completo Download DataBase Scan Pasta Data : https://www.virustot...sis/1349664734/ Scan Dlls + Distro : https://www.virustot...sis/1349665264/ Credito: OTmaker e ot-soft Anne Prevails!
    1 ponto
  4. Oneshot

    Forge System

    ADVANCED FORGE SYSTEM O SISTEMA DE CRIAÇÃO DE ITENS PARA SEU SERVIDOR Creio que muitos já conhecem o sistema de forja criado por mim, acontece que o código já estava um pouco obsoleto, então resolvi reescrever ele do 0. Simplesmente consiste em um sistema de criação de itens avançado que ressuscita um pouco do RPG perdido nos servidores de hoje em dia. O jogador poderá criar itens através de forja, agindo como um verdadeiro ferreiro medieval. Adiciona itens em cima de uma bigorna previamente colocada no mapa e com um martelo cria um item totalmente novo. CARACTERÍSTICAS DA VERSÃO FINAL: - Configuração intuitiva e fácil de compreender; - Mini-tutorial auxiliando criação de novas receitas; - Receitas podem conter até 250 itens diferentes com suas respectivas quantidades; - Sistema inteligente que identifica uma receita em qualquer ordem; - Código totalmente orientado a objetos; - Possibilidade de configurar diferentes requerimentos, diferentes skills, magic level e level Há dois modos de instalar o Advanced Forge System, o primeiro é seguir os passos deste tópico e o segundo e baixar pasta data/ anexada no tópico com os arquivos em seus respectivos diretórios, precisando apenas o registro das chaves nos arquivos XML. Escolha o modo que mais convém a você. Crie um arquivo em data/lib chamado forgesystem.lua e cole o conteúdo abaixo: --[[ ADVANCED FORGE SYSTEM FINAL Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- RecipeHandler = { itemtype = 0, items = {}, level = 1, maglevel = 0, skills = {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0} } Forge = { type = nil, position = nil, magicEffect = CONST_ME_MAGIC_GREEN, messages = { class = MESSAGE_STATUS_DEFAULT, success = "You have successfully forged a %s.", needskill = "You don't have enough %s to create a %s.", needlevel = "You need level %s to create a %s.", needmaglevel = "You need magic level %s to create a %s." } } function RecipeHandler:new(itemtype, items, level, maglevel, skills) local obj = { itemtype = (itemtype or 0), items = (items or {}), level = (level or 1), maglevel = (maglevel or 0), skills = (skills or {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0}) } table.insert(Recipes, obj) return setmetatable(obj, {__index = self}) end function RecipeHandler:setItem(itemtype) self.itemtype = (itemtype or 0) end function RecipeHandler:setRecipe(...) self.items = {...} end function RecipeHandler:setRecipeItem(itemid, amount) table.insert(self.items, {itemid, amount}) end function RecipeHandler:setSkill(skillid, value) self.skills[skillid] = value end function RecipeHandler:setLevel(value) self.level = value end function RecipeHandler:setMagLevel(value) self.maglevel = value end function RecipeHandler:check(position) local match = false for n, item in ipairs(self.items) do local thing = getTileItemById(position, item[1]) if thing.uid > 0 and math.max(1, thing.type) >= item[2] then if n == #self.items then match = true end else break end end return match end function RecipeHandler:get(position) if self:check(position) == true then return setmetatable({type = self, position = position}, {__index = Forge}) end return false end function Forge:create(cid) if self.type.itemid == 0 then print("[FORGE SYSTEM - ERROR] ATTEMPT TO CREATE A RECIPE ITEMID 0") return end local status = true if(cid) then if getPlayerLevel(cid) < self.type.level then doPlayerSendTextMessage(cid, self.messages.class, self.messages.needlevel:format(self.type.level, getItemNameById(self.type.itemtype))) return end if getPlayerMagLevel(cid) < self.type.maglevel then doPlayerSendTextMessage(cid, self.messages.class, self.messages.needmaglevel:format(self.type.maglevel, getItemNameById(self.type.itemtype))) return end for skillid, value in pairs(self.type.skills) do if getPlayerSkillLevel(cid, skillid) < value then status = false doPlayerSendTextMessage(cid, self.messages.class, self.messages.needskill:format(SKILL_NAMES[skillid], getItemNameById(self.type.itemtype))) break end end end if status == true then for _, item in ipairs(self.type.items) do local thing = getTileItemById(self.position, item[1]) doRemoveItem(thing.uid, item[2]) end doSendMagicEffect(self.position, self.magicEffect) doPlayerSendTextMessage(cid, self.messages.class, self.messages.success:format(getItemNameById(self.type.itemtype))) doCreateItem(self.type.itemtype, self.position) end end dofile(getDataDir() .."/lib/recipes.lua") Crie um arquivo em data/lib chamado recipes.lua e adicione o conteúdo abaixo: ---------------------------------------- -----** TUTORIAL DE CONFIGURAÇÃO **----- ---------------------------------------- --[[ O 'ADVANCED FORGE SYSTEM' é muito fácil e intuitivo de configurar, você só precisa chamar a função RecipeHandler:new(...), sendo que você já configurar os atributos da receita nela ou usar outras funções para isso. Por exemplo, quero criar uma Magic Sword que precise de 100 Gold Nuggets. RecipeHandler:new(2400, {{2157, 100}}) Ou então Magic_Sword = RecipeHandler:new() Magic_Sword:setItem(2400) Magic_Sword:setRecipe({2157, 100}) Funções do Sistema: RecipeHandler:new(itemtype, items, level, maglevel, skills) --> Cria uma nova instância de forja. RecipeHandler:setItem(itemtype) --> Atribui um certo itemid como resultado da receita. RecipeHandler:setRecipe(recipe) --> Atribui uma receita. RecipeHandler:setRecipeItem(itemid, amount) --> Adiciona um itemid e sua quantidade a receita. RecipeHandler:setSkill(skillid, value) --> Atribui um valor necessário de uma certa skill para poder criar a receita. RecipeHandler:setLevel(value) --> Atribui o level necessário para criar uma receita. RecipeHandler:setMagLevel(value) --> Atribui o magic level necessário para criar uma receita. ]]-- --[[ Este é um exemplo de receita usando algumas funções. É uma Magic Sword (ITEMID: 2400) que precisa de 100 Gold Nuggets (ITEMID: 2157), além disso, o personagem que tentar forjar, precisa ter Level 100 e Sword Fighting 50. ]]-- Recipes = {} magicsword = RecipeHandler:new() magicsword:setItem(2400) magicsword:setRecipeItem(2157, 100) magicsword:setLevel(100) magicsword:setSkill(2, 50) Agora em data/actions/scripts, crie um arquivo chamado iron_hammer.lua e adicione o conteúdo abaixo: function onUse(cid, item, fromPosition, itemEx, toPosition) local recipe = nil for _, v in ipairs(Recipes) do recipe = v:get(toPosition) if(recipe ~= false) then break end end if(recipe) then recipe:create(cid) else doPlayerSendCancel(cid, "This is not a valid recipe.") end return true end E por fim em actions.xml, adicione a seguinte linha: <action itemid="4846" event="script" value="iron_hammer.lua"/> OPCIONAL - TALKACTION A talkaction abaixo mostra ao jogadoras receitas configuradas no servidor que ele pode fazer. Em data/talkactions/scripts, crie um arquivo chamado recipes.lua e adicione o conteúdo abaixo: function onSay(cid, words, param, channel) local ret = {} local msg = " ADVANCED FORGE SYSTEM\n" for _, recipe in ipairs(Recipes) do local skills = true for skillid, value in pairs(recipe.skills) do if getPlayerSkillLevel(cid, skillid) < value then skills = false break end end if skills == true then if getPlayerLevel(cid) >= recipe.level and getPlayerMagLevel(cid) >= recipe.maglevel then table.insert(ret, {recipe, true}) else table.insert(ret, {recipe, false}) end else table.insert(ret, {recipe, false}) end end for _, recipe in ipairs(ret) do msg = msg .."\nRecipe for ".. getItemNameById(recipe[1].itemtype) ..":\n\n" if recipe[2] == true then for _, item in ipairs(recipe[1].items) do msg = msg .."* ".. getItemNameById(item[1]) .." [".. math.min(item[2], math.max(0, getPlayerItemCount(cid, item[1]))) .."/".. item[2] .."]\n" end else msg = msg .."[LOCKED]\n" end end doShowTextDialog(cid, 2555, msg) return true end Em data/talkactions/talkactions.xml, adicione a linha: <talkaction words="/recipes" event="script" value="recipes.lua"/> Siga as instruções para configuração de novas receitas. Em breve vídeo de funcionamento Advanced Forge System.rar
    1 ponto
  5. Vodkart

    Montarias De Aluguel

    Versão testada: 9.1 Descrição: É um npc simples que tem como função alugar determinadas montarias por certo tempo, dias para ser exato. Em Mods: AluguelMount.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="Aluguel Mounts" version="1.0" author="Vodkart" contact="xtibia.com" enabled="yes"> <config name="aluguel_func"><![CDATA[ Aluguel_mounts = { ["war horse"] = {price = 10000, days = 2, mountid = 17, level = 10, premium = false, storage = 500561}, ["fire war horse"] = {price = 30000, days = 1, mountid = 23, level = 20, premium = false, storage = 500562}, ["sandstone scorpion"] = {price = 50000, days = 1, mountid = 21, level = 30, premium = true, storage = 500563} } function doRemovePlayerMount(cid, mountId) doPlayerRemoveMount(cid, mountId) return doCreatureChangeOutfit(cid,{lookType = getCreatureOutfit(cid).lookType, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = getCreatureOutfit(cid).lookAddons}) end function CheckRentMount(cid) for var, ret in pairs(Aluguel_mounts) do if canPlayerRideMount(cid, ret.mountid) and getPlayerStorageValue(cid, ret.storage) ~= -1 and getPlayerStorageValue(cid, ret.storage) <= os.time() then doRemovePlayerMount(cid, ret.mountid) doPlayerSendTextMessage(cid,18,"O tempo da sua montaria "..var.." acabou, para adquirir ela novamente volte ao npc.") end end end ]]></config> <globalevent name="CheckMount" interval="60000" event="script"><![CDATA[ domodlib('aluguel_func') function onThink(interval, lastExecution) local on = getPlayersOnline() if #on > 0 then for i = 1, #on do CheckRentMount(on[i]) end end return true end]]></globalevent> </mod> obs: Checar duas coisas em mods, primeira: Se a função que checa se tem a mount é 'canPlayerRideMount' ou 'getPlayerMount', caso for 'getPlayerMount' trocar: canPlayerRideMount(cid, ret.mountid) por: getPlayerMount(cid, ret.mountid) segunda: o intervalo de tempo na tag do globalevents, no meu server era em mile segundos: interval="60000" -- caso o seu não seja em mile segundos troque 60000 por 60. Data/Npc Peach.xml <?xml version="1.0"?> <npc name="Peach" script="data/npc/scripts/aluguelmounts.lua" walkinterval="50000" floorchange="0"> <health now="1000" max="1000"/> <look type="130" head="0" body="114" legs="114" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. You want to {rent} a {mount}?"/> </parameters> </npc> Data/Npc/Script aluguelmounts.lua domodlib('aluguel_func') local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) if isInArray({'aluguel','alugar', 'rent', 'mounts', 'mount'}, msg) then npcHandler:say("Você pode comprar {war horse}, {fire war horse} e {sandstone scorpion}!", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if Aluguel_mounts[msg] then if Aluguel_mounts[msg].premium == true and not isPremium(cid) then npcHandler:say('Você precisa ser premium para alugar essa montaria.', cid) return true elseif getPlayerLevel(cid) < Aluguel_mounts[msg].level then npcHandler:say('você precisa ter level ' .. Aluguel_mounts[msg].level .. ' ou mais para alugar essa montaria.', cid) return true elseif getPlayerStorageValue(cid, Aluguel_mounts[msg].storage) >= os.time() then npcHandler:say('você já alugou essa montaria!', cid) return true end name,price,stor,days,mountid = msg,Aluguel_mounts[msg].price,Aluguel_mounts[msg].storage,Aluguel_mounts[msg].days,Aluguel_mounts[msg].mountid npcHandler:say('Você quer alugar a montaria '..name..' por '..days..' dia'..(days > 1 and 's' or '')..' no preço de '..price..' gps? {yes}', cid) talkState[talkUser] = 2 else npcHandler:say('Desculpe, eu não vendo essa montaria.', cid) end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if doPlayerRemoveMoney(cid, price) then doPlayerAddMount(cid, mountid) setPlayerStorageValue(cid, stor, os.time()+days*86400) npcHandler:say('Aqui está sua montaria '..name..', ela irá durar até '..os.date("%d %B %Y %X", getPlayerStorageValue(cid,stor))..'.', cid) else npcHandler:say('você não tem dinheiro suficiente para alugar a montaria!', cid) talkState[talkUser] = 0 end elseif msg == "no" then selfSay("Then not", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configuração: Em mods tem uma tabela chamada 'Aluguel_mounts'
    1 ponto
  6. Server usado: The Forgotten Server, version 0.3.6 Função usada: doCreateCustomMonster(name, pos, outfit, health, spells, corpse, distance, experience ) Autor: MeNi (OTLand) Fala ai amigos do XTibia, vim aqui hoje pra trazer uma função muito maneira que é a: doCreateCustomMonster, ela é muito usada para fazer clones do proprio player (Que eu saiba). Foto como exemplo: Bom vamos lá: Abra o arquivo: luascript.cpp E abaixo do código: Adicione: No mesmo arquivo, abaixo do código: //doCreateMonster(name, pos) lua_register(m_luaState, "doCreateMonster", LuaScriptInterface::luaDoCreateMonster); Adicione: //doCreateCustomMonster(name, pos, outfit, health, spells, corpse, distance, experience ) lua_register(m_luaState, "doCreateCustomMonster", LuaScriptInterface::luaDoCreateCustomMonster); Agora abra o arquivo: luascript.h Nesse aquivo, abaixo da linha: static int32_t luaDoCreateMonster(lua_State* L); Adicione: static int32_t luaDoCreateCustomMonster(lua_State* L); E pra finalizar, abra o arquivo: monsters.h E procure a palavra: private E coloque ela para: public ATENÇÃO: Não exclua NENHUM código já existente, só adiciona como ja explicado acima. OBS: A cada modificação nos arquivos que você editou, você devera salva, se não você corre o risco de perde o que você adicionou. PS: Qualquer ERRO na hora de compilar, podem ser dos seguinte motivos: - Você excluiu algo. - Você copio e colo errado. - Não soube compilar direito. - Ou seu server não é compativel com o código. Exemplo de uso: 1º Crie um arquivo na pasta talkactions/scripts com o nome de clone.lua e coloque em seu conteúdo: Explicando: doCreateCustomMonster(nome, posição, outfit, health, attacks, corpo quando morto, distancia do player, experiencia) 2º Abra o arquivo talkactions.xml e adicione em qualquer lugar: <talkaction words="!clone" event="script" value="clone.lua"/> Créditos: MeNi (OTLand) 95%, pelo script C++. NogareD 2% (XTibia) pela talkaction. Eu o Flaah 3% (XTibia) pela pesquisa na net pelo sistema. Bom é isso ai pessoal, tomara que vocês tenham gostado. AJUDEI?! +REP
    1 ponto
  7. Delaks

    Subwat Kamikaze V24 [03/10/2012] Atualizado!

    OLÀ GALERA,ESTOU AQUI PARA POSTAR O SUBWAT KAMIKAZE V24! ATUALIZAÇÔES -Adicionado Sala de quests -Adicionado Sala de hunts KM -Templo Modificado -Várias coisas decoradas -Agora com sistema de leilão -Hunts adicionadas -Retirado alguns bugs -Alguns lugares editados -Itens Reestabelecidos IMAGENS! TEMPLO TELEPORTS SUPER VIP SALA DE QUESTS SALA DAS HUNTS DOWNLOAD: http://www.4shared.c...ikaze_V24.html? SCAN: https://www.virustot...sis/1349299549/ È isso ai galera,atualizado o kamikaze,e se puder de um REP+ e comente que agradeço.
    1 ponto
  8. Omega

    Como Se Tornar Expert Em Otservers

    --> Nesse tutorial, mandarei links de outros tutoriais sobre vários assuntos de ot. Leia todos e se torne um expert <-- OBS : Para seguir os tutoriais citados, você deve ter algum conhecimento sobre otservers ou prestar bastante atenção. 1-Vamos começar com um tutorial bem simples que achei, o a-b-c do ot server : Tutorial : A-b-c do Ot Server De Profissional. 2-Agora, um tutorial para criar seu servidor : Tutorial : Otserv - Criando De Yurez700. 3-Agora vamos começar a parte mais pesada, vamos aos scripts, para começar um tutorial meu(xD) : Tutorial : Mini-tutorial De Comandos Por Omega Blueheaven. 4-Agora uma introdução ao script de monstros : Tutorial : [fixado]tutorial Sobre Monstros Por tibiaa4e. 5-Agora outro tutorial meu, para aprender a editar monstros, fazendo seu trainer : Tutorial : Fazendo Seu Trainer Por Omega Blueheaven. 6-Agora um tutorial de NPCs, do famoso Heitorzin : Tutorial : Super Tutorial Sobre Npc Por Heitorzin. 7-Um tutorial mais complicado, sobre novas quests : Tutorial : Aprenda A Fazer Novas Quests Por Rafix. 8-Um tutorial muito abrangente, sobre todos os scripts, vale a pena ler : Tutorial : Quer Aprender A Ser Scripter? Por Sir Picaralhos. 9-Um tutorial simples, com alguns erros, mas que vale a pena ser visto : Tutorial : Editando O Config.lua Por buster287 10-Um tutorial de actions, que é uma parte bem complicada : Tutorial : Tutorial De Action Postado por Fagunz, feito por Skoll. 11-Um tutorial sobre quase tudo, enorme, imensamente bem explicado : Tutorial : Como Criar Serv, ip Fixo, config.lua E Net Dividida De iguinho deb. [Tutorial Bônus] - Achei um tutorial muito bom de map editor, então não posso deixar de adicioná-lo : Tutorial : Conhecendo Seu Map Editor Por Andrew_. Terminamos por aqui. PS: Não quer seu tutorial aqui? Me avise que eu tiro. Quer seu tutorial adicionado aqui? Me avise que tentarei encaixa-lo aqui. A pedidos, vou botar links para baixar OTs : PvP of speedy, postado por Ventura Evolutions 0.7.8, postado por malucoo - créditos : Xidaozu Sphere Server 7.92, postado por Addict - créditos Ivan Otserver 8.0, postado por Addict - créditos desconhecidos Download do IP Changer 8.0 Erros? Link ruim? Avisem por favor. Escaneiem antes, esses links foram postados por outros usuários, apesar de eu tenha checar os comentários sobre o download. Pouquíssimas chances de conter vírus.
    1 ponto
  9. Ola pessoal estou neste tutorial para revelar todos os fundamentos de um otserv pokemon. Quando eu desenvolvia otservs pokemons eu sempre utilizava de base o pokemon dash. Pokemon dash foi criado pelo brun123 o mesmo criador do PDA. Logo apos o lançamento do PDA o pokemon dash perdeu sua popularidade mais continua sendo umas melhoras opções para o desenvolvimento de um otserv pokemon. Neste tutorial vamos ver com o pokemon dash utiliza LUA e como seu funcionamento e tão perfeito. PokeBalls As pokebolas que são famosas bolas que guardam monstrinhos que podem ser soltos pelo treinador. No seu otserv pokemon basicamente suas pokebolas são itens normais como atributos diferentes. A função doItemSetAttribute(....) e a responsável pelo nome,vida e etc.... doItemSetAttribute(item, "poke", params.poke) doItemSetAttribute(item, "nome", params.nome) doItemSetAttribute(item, "description", params.description) doItemSetAttribute(item, "description", "Contains a "..i.." +1.") doItemSetAttribute(item, "nick", ""..i.."") r1 = math.random(1,2) if r1 == 1 then doItemSetAttribute(item, "gender", 3) end if r1 == 2 then doItemSetAttribute(item, "gender", 4) end Todos estes atributos são verificados durante a action do go/back e logo seu summon veem com características únicas. Vamos ao exemplo do script que eu fiz usando as funções do executavel do PDA. Summons Incrivelmente os summons foi uma etapa fácil para a criação dos sistema dos pokemons porque tibia já acompanha funções para summonar getCreatureMaster(cid) getCreatureSummons(cid) doSummonCreature(name, pos) doRemoveCreature(cid[, executeLogout = true]) Estas funções foram muito importante para que seu otserv pokemon ser construído. A manipulação das funções e de fácil utilização mais precisa tomar algumas precações. A função getCreatureSummons(cid) verifica TODOS os summons do player então precisamos usar # ou uma estrutura de repetição tal como for. Vamos verificar se o player tem pelo menos um summon: for _,summon in pairs(getCreatureSummons(cid)) do if summon > 0 then ..... return true end if #getCreatureSummons(cid)) > 0 then .... return true end Habilidades Pokemons Não foi um grande desafio criar o order sytem mais a quantidade de habilidades custo algumas horas de trabalhos. Os famosos ride e fly foram criados usando funções tibianas o que acontece e que quando o order e clicado no player acontece uma rápida troca de outfit e a colocação de algumas storages. Light/Rock Smash/Cut e Ditto são sistema secundários do order sytem. Todas essa habilidades foram feitas em apenas uma action. Na action do order existe varias verificações do item2 tais como itemID,Monstro e Player. O order sytem e um desafio para a edição pois a retirada de apenas uma storage pode bugar o sistema completamente. Moves Pokemons Estes foram complicados e estão ate hoje em evolução. São muitos ataques de pokemons e diferentes de tibia os ataques foram todos construindo em talkactions separados com (m1,m2,m3,m4,m5,m6,m7,m8,m9,10,m11,m12). Foram utilizados funções para mandar efeitos e retirar danos doAreaCombatHealth(....) doSendMagicEffect(...) Tabelas local flamen = createCombatArea{ {0, 0, 2, 0, 0}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 0, 0, 0} } [6] = {x = { pok = wartortle, spell = "Bubbles", minLv = 20, ex = 8000002, base1 = 120, base2 = 135, dista = 4, bonus = 4.2, type = "water", cd = 8 } } Para os iniciantes a edição de tal script foi um pouco complicado. Suas variáveis foram todas colocadas em tabelas deixando o script um pouco mais leve. O script e ainda maior do que o order sytem
    1 ponto
  10. SmiX

    Show Off - Dragon Fable

    Olá galera, venho hoje aqui para postar o show off do meu projeto que está rolando a muito tempo. Por enquanto só algumas imagens: 1º Versão : Atualizado: 18/10/2012 - 08:34 E ai galerinha tudo bem... Mais uma atualização com quatro outfits novas para vocês(Menbros e Equipe do Xtibia(Ekstibia)) darem uma avaliada... Espero cometários pessoal...
    1 ponto
  11. narutochuuu

    Liga Pmm Lançamento 1.0

    Saudações tibianos! Trago a vocês a Liga PMM AVISO: ESTA POSTAGEM FOI PUBLICADA DIA 18/10/2012 NÃO SE ATREVA A POSTAR DAT E SPR DE POKEMON DE UNOVA DEPOIS E FALAR QUE FOI VOCÊ QUE FEZ POIS SERÁ PUNIDO! Bom, antes de começar vou mostrar alguns prints do jogo, ok? Treinadora de eevees: um npc que dará o new player um eevee. Eevee tem todas as evoluções dele; Mapa até o momento, um pouco grande não acha? Estarei diariamente adicionando novas ilhas. Os players terão desafios muito difíceis para chegar nos chamados "puzzles" como estão a cima, na imagem acima é puzzle do Axew Agora para as informações básicas,1.0 chegou para todo mundo se divertir e com novidades: Não alterados: •Iniciais Tepig, Oshawott, Snivy; •Mais de 80 pokemon para capturar; •NPC's: Comprador e Vendedor de Stones, Nurse Audino, Nurse Joy, Mark e Comprador de Pokemon; •Bike para todos os players para tirar o LEG; •Quest Emolga Novas atualizações: •Pokedéx 100% •Fly 0% •Ride 100% •Surf 90% (Falta só samurott) •Mystery Gift's: Todos os meses terá um desafio com dicas, se você conseguir completar o código secreto levará um pokemon especial, este mês é pikachu do ash •Site Oficial: http://ligapmmbr.blogspot.com/ •Captura para todos os pokemon! •Sprites novas da Nurse Joy •Eventos marcados e surpresas! Capture novos pokemon, fiquem atentos. •Teleport para: Musharna, Munna, Darmanitan Zen mode e Espeon; Basta dizer !teleport "nome da cidade (Liberado apenas para level 75 ou mais) Puzzles: • Puzzles são desafios para altos level's que no final do desafio terá um pokemon raro para capturar, Puzzle do Axew e do Togepi-Swinub foram adicionadas. Bug's Concertados: •Frillish, Jellicent, Pidove e Tranquill tanto macho quanto fêmea podem ser capturados Bug's ainda não concertados •Ainda não temos Pokemon para Fly devido problemas. •Ainda não adicionamos quest box macacos elementais Agora vamos para o Hamachi. Ele pode ser baixado aqui: http://www.baixaki.c...ad/hamachi-.htm Então depois de criarem uma conta no Hamachi sigam estes passos: •Clique na parte superior "Rede" e "Entrar em uma nova rede" •Vou adicionar 64 Salas e dentre todas a Senha será 0 •E para entrar basta colocar o nome de ligapmm 0 até ligapmm 62 lembrando que ligapmm é tudo junto. Para criarem contas vocês vão entrar na liga e colocar o dígito 1 de usuário e 1 de senha, então entrem no account manager: Vídeo: Como Criar Conta, caso não queira ver o vídeo 1 - Dps De Dar Changer Ip No Client Entre Com a Senha 1/1 2 - Entre No Account Manager Dialogo "Criando Conta": Account " Seu Password " Yes " Sua Account Name " Yes Criando Char : 1 - Entre Com " Seu Password " e " Sua Account Name " 2 - Logue Denovo Account Manager " Obs: Da Sua Conta " Dialogo "Criando Char": Account Character " Nome Do Seu Char" "Obs: Com a 1 Letra MAIUSCULA" "Ex: Girl Look " Yes " Male ou Female " ou seja " Male = Homem Ou Female = Mulher " Yes Treinador " Obs: Tem Servidor Que Usa Outros Nomes " " Ex: Brazilian Trainer " " Ex2: Shadow Trainer " Yes Parabens Sua Conta Foi Criada. Aguardem novas atualizações... O download do jogo: http://www.4shared.com/file/kjKXiybD/Liga_PMM_v10_Oficial.html Aproveitem! Estarei postando diariamente novidades! AVISO: Para saber se o server está on vá em http://xat.com/pokepmm e pergunte o status da liga. Pessoal peço novamente que entrem apenas em 1 rede hamachi, deixem espaço pros outros até que tiremos o hamachi.
    1 ponto
  12. Session Start

    Novo Client Pokemon Traduzido

    Bom, queria postar um cliente traduzido.. gastai algumas horas fazendo isso e queria deixa-lo aqui.. é só mudar algumas coisas com 1 hex editor e o nome, depois é só usar ele ... Mas não consigo criar tópico no download servidores derivados D= vou postar aqui, alguem move dai ou exclui se tiver alguma coisa que n gostem '-' Imagens pra ter uma noção do que fiz... Outra Download: CLIQUE AQUI // ACUSANDO VIRUS ( é aquela parada que aparece quando abre ) Download: CLIQUE AQUI ( ESTE É SEM O ID PROTECTOR ( o que avusa virus ;s ) ) Scan: ALGUÉM FAZ AI PRA MIM , POR FAVOR... AQUI NÃO ESTÁ FAZENDO upload ;s #EDIT : Nele não está hookado a OTAL.dll Então quem quiser a barra de moves é só hookar E se poder mudar o nome tbm.. Porque esse não ta mto legal
    1 ponto
  13. hellcoreot

    Instalar Csf Firewall

    CSF Firewall é um firewall muito popular, baseado no iptables para sistemas GNU/Linux, Nasce-o para integrar-se com o popular cPanel/WHM, porem seu exito foi tao grande que seus desenvolvedores implementaram uma versão genérica que funciona hoje nas distribuições mais populares dos sistemas operacionais GNU/Linux. Antes de iniciar, se você tem o APF firewall, primeiro devera remove-lo executando o comando: sh /etc/csf/remove_apf_bfd.sh Para instalar o CSF Firewall bastá executar os seguintes comandos: mkdir /root/temp cd /root/temp rm -fv csf.tgz wget http://www.configserver.com/free/csf.tgz tar -xzf csf.tgz cd csf sh install.generic.sh Por padrão já é configurado as portas que foram detectada durante a instalação, ou seja que estão abertas. Esta configuração fica em modo teste, sendo que as regras do CSF Firewall se auto-apagarão em 5 minutos. Logo que tenha terminado os procedimentos edit o arquivo csf.conf comando: nano /etc/csf/csf.conf Troque a variável abaixo: "TESTING = "1" por TESTING = "0" Após editar o texto (ctrl + x) S para sim depois enter, agora já esta salvo seu arquivo. Com isto iremos reiniciar o CSF Firewall e já esta pronto para uso: csf -r Agora teste para ver se está tudo ok. perl /etc/csf/csftest.pl Notas importantes Comandos As funções mais poderosas do CSF estão na sua interface de linha de comando, cujas opções mais relevantes são as seguintes: Uso: /usr/sbin/csf [opção] [valor] Opção / Significado -h, –help / Mostra a ajuda -l, –status / Lista/Mostra a configuração do iptables -s, –start / Inicia regras do firewall -f, –stop / Limpa/Interrompe regras do firewall (Nota: lfd pode reiniciar o csf) -r, –restart / Recarrega regras do firewall -q, –startq / Reinicialização rápida (csf reiniciado pelo lfd) -a, –add ip / Libera um IP e adiciona-o em /etc/csf.allow -ar, –addrm ip / Remove um IP de /etc/csf.allow e deleta a regra -d, –deny ip / Bloqueia um IP e adiciona-o em /etc/csf.deny -dr, –denyrm ip / Desbloqueia um IP e remove-o de /etc/csf.deny -df, –denyf / Remove e libera todos os IPs em /etc/csf.deny -g, –grep ip / Procura nas regras do iptables por um IP (incl. CIDR) -t, –temp / Mostra a lista atual de IPs bloqueados temporariamente e o tempo até o desbloqueio -tr, –temprm ip / Remove um IP do bloqueio e liberação temporários -td, –tempdeny ip ttl [-p porta] [-d direção] / Adiciona um IP a lista de de bloqueio temporário. ttl é quanto tempo o bloqueio dura (default:segundos, pode usar um sufixo de h/m/d). Porta opcional. Direção opcional do bloqueio pode ser uma das seguintes: in, out ou inout (default:in) -ta, –tempallow ip ttl [-p porta] [-d direção] / Adiciona um IP à lista de permissão temporária (default:inout) -tf, –tempf / Limpa todos os IPs da lista de IPs temporários -c, –check / Verifica se existem atualizações do csf mas não atualiza -u, –update / Verifica se existem atualizações do csf e atualiza se possível -uf / Força a atualização do csf -x, –disable / Desabilita csf e lfd -e, –enable / Habilita csf e lfd se desabilitados anteriormente -v, –version / Mostra a versão do csf Essas opções permitem a utilização e configuração rápida do csf, pela linha de comando, cobrindo a maior parte das necessidades diárias da administração de um servidor. O csf utiliza alguns arquivos para configuração: csf.conf - Arquivo de configuração principal, tem explicações detalhadas sobre as opções. csf.allow - Uma lista de IPs e endereços CIDR que são sempre liberados pelo firewall. csf.deny - Uma lista de IPs e endereços CIDR que são sempre bloqueados pelo firewall. csf.ignore - Uma lista de IPs e endereços CIDR que o lfd deve ignorar e não devem ser bloqueados quando detectados. csf.*ignore - Vários arquivos ignore que listam arquivos, usuários e IPs que devem ser ignorados pelo lfd. Veja cada arquivo para saber seu propósito específico. Todos esses arquivos estão situados em /etc/csf, e toda vez que forem alterados o csf deverá ser reiniciado para carregar as novas configurações. O csf é extremamente versátil, suportando uma variedade muito grande de configurações diferentes. As seguintes opções (todas em /etc/csf/csf.conf) causam (ou resolvem) a maioria dos problemas em ambientes de produção: TCP_IN, TCP_OUT, UDP_IN, UDP_OUT: Essas opções controlam as portas TCP e UDP abertas pelo firewall, divididos por protocolo e entrada ou saída. As portas podem ser abertas individualmente, ou por intervalo. SMTP_BLOCK, SMTP_ALLOWLOCAL: A opção SMTP_BLOCK, bloqueia todo o tráfego de saída na porta 25, exceto para os usuários root, exim e mailman (outras exceções podem ser adicionadas usando as opções SMTP_ALLOWUSER e SMTP_ALLOWGROUP esta é uma opção altamente recomendada, mas que pode atrapalhar o funcionamento de webmails. Para evitar isto, existe a opção SMTP_ALLOWLOCAL que permite as conexões de saída na porta 25 pela interface de loopback. CT_LIMIT e relacionados: O csf tem a funcionalidade de monitoramento de conexões, que verifica se um único IP realizou uma quantidade de conexões maior do que o especificado em CT_LIMIT, durante um intervalo de tempo especificado em CT_INTERVAL. Por padrão, esse bloqueio é temporário, falaremos mais sobre bloqueios temporários mais adiante. LF_TRIGGER e relacionados: O lfd monitora todas as tentativas de login aos serviços e caso um mesmo IP faça uma quantidade de logins falhos maior que LF_TRIGGER, o mesmo será bloqueado. Existem opções que permitem variar esta configuração por serviço, atribuindo se por exemplo, o limite de 10 tentativas para o IMAP e de 5 para o SSH. O csf pode ser configurado ( e em alguns casos é o default) para bloquear IPs apenas temporariamente. Esta funcionalidade é controlada pelas opções LF_TRIGGER_PERM, LF_SSHD_PERM, LF_FTPD_PERM e relacionadas, que estipulam o tempo que irá durar este bloqueio temporário do IP transgressor. Os bloqueios temporários são logados em /var/log/lfd.log, o arquivo de log do LFD. É sempre importante verificar este arquivo em caso de bloqueios “inexplicáveis” acontecendo em seu servidor. Qualquer dúvidas só postar.
    1 ponto
  14. Denuvo

    Meu Primeiro Serve De Poketibia

    manooo do céu.. área totalmente incorreta! REPORTADO PARA QUE MOVAM!
    1 ponto
  15. mano eh impossivel mudar isso ;x vais ter q por ela no lugar q tava antes... isso eh configurado no script original da .dll ... mas n da pra editar isso pela .dll em si, soh no script onde ela foi feita...
    1 ponto
  16. Stigal

    Fifa 16 Trailer

    Cadastro: 09/09/2012 -.-''
    1 ponto
  17. caotic

    Novo Client Pokemon Traduzido

    Titulo Renomeado Tópico Movido
    1 ponto
  18. YagoBlind

    Alguem Sabe ?

    Oláaaa meus parceiros do xTibia , eu gostaria de saber se vocês conhecem algo do tipo , irei explicar eu gostaria de algum "código para web sites" que funciona da seguinte forma , o "tal código" dirá quantos players tem online no servidor em tempo real , caso me ajude lhe darei REP++ @EDIT OBS: NÃO SEI SE ESTÁ NA AREÁ CORRETA CASO NÃO ESTEJA , ME DESCULPE GALERA DO XTIBIA , E "EQUIPE" , PEÇO QUE MOVA SE ESTIVER NA AREÁ ERRADA
    1 ponto
  19. SmiX

    Vip Por Quest

    Agora é só testar: local config = { storage = 2506, unique_Chest_Id = 3450, -- Aqui é o unique id do báu(coloca isso no map) vip_Storage = 13540, -- Aqui vc bota a storage do seu vip system vip_Days = 30, -- Aqui vc coloca a quantidades de dias que o player vai ganhar } function onUse(cid, item, fromPosition, itemEx, toPosition) if item.uid == config.unique_Chest_Id then queststatus = getPlayerStorageValue(cid,config.storage) if queststatus == -1 or queststatus == 0 then db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos para mudança de nome.") addEvent(doRemoveCreature, 5*1000, cid, true) setPlayerStorageValue(cid, config.storage, 1) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYDAMAGE) setPlayerStorageValue(cid, config.vip_Storage, config.vip_Days) else doPlayerSendTextMessage(cid,22,"você ja tem o [vip] no nome.") end return true end end
    1 ponto
  20. Beeki

    [Arquivado][Regras] Leia.

    HAUOPA XTibianos, bom criei esse tópico para deixar um aviso aqui para todos. Essa sessão não é um local para a postagens de dúvidas e discussões que não tem nada a ver com Open Tibia OTServ, por exemplo: Topicos com titulos "Qual empresa de host devo usar[+Discussão]", "Quais hotkeys vocês usam para jogar?[+Discussão]. Postagens assim serão repudiadas pelo moderador da sessão e o postador punido com um alerta verbal ou REP-.
    1 ponto
  21. Cid = o player q clicou no item Item = o item q foi clicado frompos = a pos do item q foi clicado item2 = esse eh quando um item tem a opçao de usable, q dai tu clica nele e aparece uma 'paradinha' para vc clicar em outra coisa, como as potions do pokemon e o Order... topos = a pos aonde tu clico com o item 'usable'
    1 ponto
  22. Augusto

    Alguem Sabe ?

    Sim, tem no eks http://www.xtibia.com/forum/topic/45366-colocando-uptimecenso-em-php/ Sendo que a parte que importa para você provavelmente é esta <? /* [config] */ $ip = 'server.empire.com.br'; /* [/config] */ error_reporting(0); @$server_on = fsockopen ($ip ,7171, $errno, $errstr, 1); if (!$server_on) { print ("Status: <font color='#800000'>Offline</font><br/>Players: 0<br/>Uptime: 0h. 0m."); } else { fwrite(@$server_on, chr(6).chr(0).chr(255).chr(255)."info"); $check_on = fread(@$server_on, 2048); preg_match("#online=\"(.*?)\" max=\"(.*?)\"#", $check_on, $onlines); echo "Status: <font color=#008000>Online</font><br/>Players: $onlines[1]/$onlines[2]"; preg_match('/uptime="(\d+)"/', $check_on, $get_time); $horas = floor($get_time[1] / 3600); $minutos = floor(($get_time[1] - $horas*3600) / 60); $time = $horas."h. ".$minutos."m."; echo "<br/>Uptime: $time";} ?> Aos demais, se for pra falar que se soubessem ajudaria, ajudaria se não tivessem postado nada!
    1 ponto
  23. brun123

    Problema Inquisition Boss

    basta adicionar return true no function onDeath, antes do último end dessa função, aqui: function onDeath(cid, corpse, killer) registerCreatureEvent(cid, "inquisitionPortals") local creaturename = getCreatureName(cid) local ushuriel_in_position = {x=342, y=765, z=12, stackpos=2} local ushuriel_to_position = {x=268, y=973, z=13, stackpos=1} local time_to_pass = 180 local tpID = 5023 local doEffect = CONST_ME_ENERGYHIT local message = "You now have 3 minutes to exit this room through the teleporter. It will bring you to the next room only during his time or the teleporter will disappear." if creaturename == 'Ushuriel' then teleport = doCreateTeleport(tpID, ushuriel_to_position, ushuriel_in_position) doSendMagicEffect(ushuriel_in_position, CONST_ME_ENERGYHIT) doCreatureSay(cid, message, TALKTYPE_ORANGE_1) addEvent(removeTeleportInUshurielWard, (1000*time_to_pass)) end return true end function removeTeleportInUshurielWard() if getThingfromPos({x=342, y=765, z=12, stackpos=1}).itemid == 5023 then doRemoveItem(getThingfromPos({x=342, y=765, z=12, stackpos=1}).uid,1) doSendMagicEffect({x=342, y=765, z=12, stackpos=1}, CONST_ME_POFF) return TRUE end end
    1 ponto
  24. fredpadua

    Alguem Sabe ?

    Area errada. Reportado.
    1 ponto
  25. 1ª)Como eu aumento a vida ganhada a cada level em servidor de naruto tibia Dno V4. ? R: data\XML\vocations.xml 2ª)como eu fasso para um player morto da certo iten. ? R: data\creaturescripts\scripts\nomedoscript.lua function onKill(cid, target, lastHit) local item,count = 2160,2 if isPlayer(cid) and isPlayer(target) then doPlayerAddItem(cid, item, count) end return TRUE end creaturescript.xml <event type="kill" name="killitem" event="script" value="nome do seu script.lua"/> adiciona isso no login registerCreatureEvent(cid, "killitem") 3ª)Como fasso para editar itens não estou conseguindo, Obs: Não sei que programa usar. ! R: data\items\items.xml usa bloco de notas mesmo ou notepad++ 4ª)tem como botar servidor com net via radio Online. ? R: procura por tutor 5ª)Como fasso para anunciar para o servidor todo que um player de tal level matou outro de tal level exemplo Red Suux [432] Matou Testab [430] R: http://www.xtibia.com/forum/topic/140986-mortes-no-broadcast-860/
    1 ponto
  26. tava dizendo pra vc baixa que ja tem a barra de moves mais se vc quer fazer do 0 tem que ter dll e hookar
    1 ponto
  27. SmiX

    Show Off - Dragon Fable

    @Slicer kkk Depois eu post essa outfit que tanto pedes... Cara mostra esse show off para a equipe do Xtibia(Ekstibia), pra ver se eles incentivam po... @Ciffer Obrigado ai, se DEUS quiser agente vai pra frente...
    1 ponto
  28. notle2012

    [Encerrado] Boost System

    vc deve ta usando outra versão mais mesmo assim data\actions\scripts\boost.lua
    1 ponto
  29. Tente assim apague tudo do seu globalevents/save.lua e add isso dentro: e em globalevents.xml substitua essa linha: <globalevent name="save" interval="1800" event="script" value="save.lua"/> por essa: <globalevent name="save" interval="3600" event="script" value="save.lua"/> Se não funcionar me avise.
    1 ponto
  30. notle2012

    [Npc] De Troca!

    aqui o npc 1 data\npc\scripts\nomedoarquivo.lua tem que editar ja deixei pra vc configurar ------------------- By Notle ------------------- local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local troca = { 2163,100, 2160,50 -- aqui vc edita os ID do item que tem que ter e quantos } local id = 2160 --- id do item que vai ganhar dps da troca local quant = 1 -- item que ganhar Contém quantos? local sto = 1585 -- Storage function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if msgcontains(msg, 'trocaitem') then status = getPlayerStorageValue(cid,sto) if status == -1 then if doPlayerRemoveItem(cid,troca[1],troca[2]) and doPlayerRemoveItem(cid,troca[3],troca[4])then doPlayerAddItem(cid,id,quant) setPlayerStorageValue(cid,sto,1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "coloca um texto aqui") -- edita aqui else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você Não Contém Uns Dos Itens Não Posso Troca.") -- edita aqui end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não Pode Troca De novo") end return TRUE end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) data\npc\nomedoarquivo.xml <npc name="NOMEDONPC" script="data/npc/scripts/nomedoarquivo.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="134" head="78" body="88" legs="0" feet="88" addons="3"/> <parameters> <parameter key="message_greet" value="Ola. Para mais informacoes de meus servicos diga {trocaitem}." /> <parameter key="message_farewell" value="Tchau." /> <parameter key="message_walkaway" value="Tchau." /> </parameters> </npc> edita os em red local troca = { 2163,100, 2160,50 -- aqui vc edita os ID do item que tem que ter e quantos } local id = 2160 --- id do item que vai ganhar dps da troca local quant = 1 -- item que ganhar Contém quantos? NPC 2
    1 ponto
  31. Tipo do script:sistema de reset Protocolo (versão do Tibia): 8.60 Servidor utilizado: Radbr 8.60 Nível de experiência: 999 Adicionais/Informações: Quero Um sistema de reset quer pega no 8.60 Eu ainda num achei nem um ;( Alguem pode me ajuda
    1 ponto
  32. peter2012

    Tibia 3D Sera Que Um Dia Sai ?

    VEI PRECISO O GRAFICO DE BOSTA DO TIBIA DO QUE 3D, ALEM DE 3D SER UMA MERDA OS FIGHT, MAGINA SE CORRENO QUE BOSTA QUE VAI SER, OU PRA USAR POTION, ESSAS COISA, PRECISO TIBIA COM ESSE GRAFICO QUE EU ACHO MUITO LOKO DO QUE 3D...
    -1 pontos
  33. KennyConrad

    Alguem Sabe ?

    mano desculpa mais não entendo muito de sites =(
    -1 pontos
  34. pepecece10

    Caçadores De Erros (Bugs)

    Bani ai miserave se e um lixo nem se importo
    -1 pontos
  35. se for area errada movam pra certa vlw... fiz uma nova magia no dat editor do client, mas na hora de mandar a magia sai outra, nao sai a imagem que eu coloquei, por que isso ta acontecendo ???? alguem ajuda aee vlw...REP+
    -1 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...