Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 10/20/12 em todas áreas

  1. dwhfms

    Mudanças Na Equipe E Like Box

    Salve Galera!!! Estou aqui para anunciar para vocês algumas mudanças no fórum. Primeiramente o nosso querido diretor Critical teve que se ausentar por motivos pessoais. Apesar de ter passado pouco tempo na equipe fez muito por ela; organizou, motivou, trouxe mais gente. O XTibia sempre será grato aos serviços prestados e esperamos que ele volte em breve. Além disso estamos implementando uma nova funcionalidade no fórum, que é uma integração com o Facebook, desta forma você poderá curtir a nossa página diretamente do fórum. Como podem ver a página está no inicio, temos apenas 89 pessoas que curtem. Mas tenho certeza que temos bem mais que isso de usuários firmes do XTibia! Vamos mudar isso? Entrem no fórum e CURTAM nossa página ATUALIZAÇÃO: Recebemos uma mensagem lá de cima que quando chegarmos a 500 curtidas sortearemos uma Premium Time de 1 mês! Então vamos galera, convidem seus amigos, pai, mãe, namorada, cachorro. Vamos todos curtir a Página do XTibia! É isso galera, Abraços.
    2 pontos
  2. Vodkart

    Battlefield Event!

    Mapa feito por AnneMotta: Mapa Battlefield.rar scan: https://www.virustot...sis/1346548669/ Imagens do mapa: Descrição: - O evento é automático e acontece em determinado dia e hora da semana - Logo após é aberto um teleport então apenar um número limitado de players entra no evento - São formados por dois times, os "Black Assassins" e os "Red Barbarians" - Os times são balanceados automaticamente, quando o último jogador entra, esse teleport é fechado e depois de 5 minutos o evento começa, os 5 minutos são para os players ter tempo de planejar um ataque. - O sistema tem por finalidade matar todos do time inimigo, e os players que sobreviverem recebem um prêmio. Bônus: - Durante o evento é mostrado na tela somente dos jogadores que estão no evento um placar de times. - Até o último player entrar no evento, ficam mandando broadcast dizendo quanto players faltam para dar inicio ao jogo. - Se o evento abrir e não atingir a meta de players colocada, o evento é finalizado e os players voltam para o templo. Lembre-se: - De colocar Pvp Tool na área - De colocar área NoLogout Imagens: Instalação: Data/Lib Data/CreatureScript Data/Globalevents Data/Movements Como configurar: Configuração dos Times: Configurar Datas do evento: Configuração Paredes:
    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. Lua Orientada a Objetos Avançado ! Lua é uma linguagem de programação(Sério??) , sua orientação a tabelas, meta tabelas, meta métodos é bem prático e versátil. * Meta tabelas * O que é uma meta tabelas? São tabelas que controla o comportamento de outras estruturas de dados, ela nos permiti alterar o comportamento da tabela. Exemplo, se colocar o código abaixo num interpretador Lua. nome = "Xtibia Forum de Tibia"print(nome:upper()) A saída será: XTIBIA FORUM DE TIBIA Porém, da onde saiu esse upper()? Vejamos.. print(getmetatable(nome)) Sua saída será: table: 0033BE78 Uma meta tabela associado a string !!, vejamos: print(getmetatable(nome).__index == string) Sua saída será: true ou seja concluímos que a chave __index da meta tabelas é módulo de uma string: como exemplo nome:upper() == nome.upper(nome) == string.upper(nome) *Chave __index* A chave __index da meta tabela pode ser uma tabela ou uma função e indica o que deve acontecer quando houver uma tentativa de leitura de uma chave que a estrutura de dados original não possuía Se o objeto referenciado pela variável nome(uma string) não possui a chave upper, então quando tentamos acessar esta chave, o sistema procura pela chave na tabela referenciada pela chave __index da meta tabela, que é uma string Caso queiramos que ela retorna um valor da tabela ASCII, podemos utilizar está função mt = {__index = function (t, k)return k:byte()end}var = setmetatable({b}, mt)print(var) Vale lembrar que essa chave é importante para orientação a objetos. * Classes e Construtores * Em orientação a objeto, classe é um molde para a criação de novos objetos, em Lua,classe em geral é uma meta tabela onde a chave __index aponta para ela própria. Exemplo abaixo: mt = {}mt.__index = mt Meta tabelas se torna um molde para as outras tabelas. As tabelas que fazem o uso deste molde são chamadas de instâncias. As funções de uma classe/instância são chamadas de métodos e sempre recebem implícita ou explicitamente como primeiro argumento a classe ou instância que faz a chamada. Lua pode chamar um método passando a instância (ou classe) implícita ou explicitamente Exemplo de uma chamada explícita: login = login.lower(login) Exemplo de uma chamada , passando a instância implicitamente login = login:lower() Existe um método especial chamado construtor, que é executado sempre que uma nova instância é criada. Vejamos: function mt:new(o)o = o or {}return setmetatable(o, self)end O construtor do código a cima recebe como um argumento uma tabela que servirá de referência para a criação da instância. O primeiro comando garante que o argumento o é uma tabela, o segundo associa a meta tabela ao objeto, retornando-o. Como new()é um método de classe, self representa a classe. Se fosse um método de instância, self representaria a instância. * Outros métodos * Podemos criar outros métodos. Por exemplo queremos criar um somatório dos elementos números da tabela seja retornado para o método soma() Exemplo function mt:soma()local s = 0table.foreachi(self, function (i, e)if type(e) == "number" thens = s + eendend)return send Podemos criar um objeto com alguns valores números e retornar seu somatório: var = mt:new { 2, 4, 6 }ret = var:soma()print (ret) Que imprimirá: 12 *Meta Métodos* Apenas irei citar alguns, caso tenha curiosidade procure sobre. __add – gerencia operador de adição; __sub – gerencia operador de subtração; __mul – gerencia operador de multiplicação; __div – gerencia operador de divisão; __unm – gerencia operador unário de negação; __eq – gerencia operador de igualdade; __lt – gerencia operadores menor que e igual ou maior; __le – gerencia operadores menor ou igual e maior que; __pow – gerencia operador de potência; __tostring – gerencia conversão para string; __tonumber – gerencia conversão para número. * Herança * Queremos outra classe que além de devolver a soma, também devolva o produto, mas sem modificar a classe original. Para isso herdamos uma nova classe, para isso precisamos instanciar a classe pai normalmente, modificar a instância e usar esta instância como uma nova classe Exemplo function nmt:produto()local p = 1]table.foreachi(self, function (i, e)if type(e) == "number" thenp = p * eendend)return pendvar = nmt:new { 2, 4, 6 }[size=4]print(var:soma(), var:produto()) Imprimirá: 48 Há outra forma mais avançada de herança, chamada herança múltipla, que acontece quando uma classe é herdeira de mais de uma classe pai. Fim. Mega Tutorial OOP em Lua
    1 ponto
  5. Escrevendo em um Arquivo. Básico Escrevendo um arquivo em lua é muito baba, muito simples começamos com: local file = io.open("exemplo.txt", "w") Caso queira que o arquivo não necessariamente esteja no mesmo lugar, utilize: local file = io.open(getDataDir().."/logs/bans/ban.txt/", "w") O código a cima será responsável pela localização do arquivo. Podemos notar dois parâmetros dentro do parênteses, vejamos: "exemplo.txt" Aqui será o nome do arquivo que ele irá escrever, você pode por qualquer formato (.txt,.xml,.lua) "w" Aqui será o modo que ele ira abrir o arquivo, o w significa write ou seja ele irá escrever, vale lembrar que exitem vários outros métodos. Nota: Para abrir o arquivo é necessário que eles estejam no mesmo local de trabalho. Ok, agora vamos escrever algo no arquivo, para isso utilizamos: file:write (" XTIBIA ") O código a cima escreverá o que está entre os parênteses, que no caso seja XTIBIA Estamos indo bem, agora precisamos encerrar, para isso vamos utilizar: file:close() O código a cima vai sinalizar que está encerrado a escrita do arquivo. Código Inteiro: local file = io.open("exemplo.txt", "w") file:write("XTIBIA") file:close() outros métodos: "r" -- modo de leitura "w" -- modo de escrita "a" -- modo de adição "r+" -- modo de atualização, preservando dados anteriores "w+" -- modo de atualização, apagando todos dados anteriores "a+" -- modo de atualização, preserva dados anteriores, novos dados apenas no fim do arquivo
    1 ponto
  6. Bem vi algumas reclamaçoes sonbre os shinys do server (pokemon Centurion). que os shinys tao todos com as cores erradas estao zuados e varias outras coisas entao aki vou postar o Download de alguns shinys que eu fiz para voces. Alguns shinys que eu arrumei: (imagem) Link do pacote com os shinys: Extraia para data/monster/pokes/shiny. Obs: nao presisa e uma outra Spr se vc estiver usando o client da versa V3.2 (ultima). mas de qualquer forma para evitar erros ae link do client:. Bom galera e issu, espero ter ajudado . Creditos: Eshpedrero 80% Cacaiu 20% (pelo link do client) _____________________________________________________________________ Ajudei? + REP
    1 ponto
  7. Bom pessoal , aqui vou falar como você coloca Fast Atack no seu Ot! Va no arquivo vocations.xml, clique com o botão direito e dpois em editar. Vai estar mais o menus assim: <?xml version="1.0"?> <vocations> <vocation id="0" name="None" description="a rookie" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="10" gainsoulticks="120" gainsoulamount="1" maxsoul="100" manamultiplier="4.0" attackspeed="700" prevoc="0" basespeed="220"> <diepercent experience="7" magic="7" skill="7" equipment="7" container="100"/> <formula damage="1.2" defense="1.1" armor="1.1"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> Aqui peguei a vocation none , veja onde esta escrito: attackspeed="700" No lugar de 700 coloque 200 e ira ficar assim: attackspeed="200" Faça isso em todas as vocações e está Pronto ! Ps: Se não der certo, dê ctrl+alt+del Vá em processos , procure o nome do seu Otserv , clique com o botão direito e vá em definir propriedade , coloque Tempo Real e está pronto!
    1 ponto
  8. Não mesma coisa que qualquer outro tempo, mais pra que tanto tempo?
    1 ponto
  9. lib necessária (você pode adicionar no início do script, ou então criar um outro arquivo .lua com qualquer nome em data/lib e colocar isso dentro): function newXYvar(x, y, voltas_horarias) while voltas_horarias > 3 do voltas_horarias = voltas_horarias - 4 end if voltas_horarias <= 0 then return x, y elseif voltas_horarias == 1 then return -y, x elseif voltas_horarias == 2 then return -x, -y elseif voltas_horarias == 3 then return y, -x end return 0, 0 end function arrayToPositions(array, center, n_horario) if not center or not center.x or not center.y or not center.z then return {} end local voltas, mp, ret, iIs, x, y = n_horario and math.max(0, n_horario) or 0, {}, {}, {}, 1, 1 if voltas > 0 then local maxC = 0 for lines = 1, #array do if maxC < #array[lines] then maxC = #array[lines] end end if maxC < #array then maxC = #array end for a = 1, maxC do iIs[a] = {} for b = 1, maxC do table.insert(iIs[a], 0) end end end while #mp == 0 do local check = array[y][x] if check > 1 then mp = {x, y} if voltas > 0 then iIs[y][x] = check end if check == 3 then table.insert(ret, center) end break end x = x + 1 if x > #array[y] then y, x = y + 1, 1 if y > #array then break end end end for ly, ny in pairs (array) do for lx, nx in pairs (ny) do if nx == 1 then local dx, dy = lx - mp[1], ly - mp[2] local newX, newY = newXYvar(dx, dy, voltas) local newPos = {x = center.x + newX, y = center.y + newY, z = center.z} table.insert(ret, newPos) end end end return ret end magia criano item: elseif spell == "?" then local itemId = 1990 local timeToRemove = 2500 local function damage(cid, area) if not isCreature(cid) then return end doAreaCombatHealth(cid, FIREDAMAGE, getThingPositionWithDebug(cid), area, -min, -max, 255) local positions = arrayToPositions(area, getThingPositionWithDebug(cid)) for _, pos in pairs (positions) do doCreateItem(itemId, 1, pos) addEvent(function() local i = getTileItemById(pos, itemId) if i.uid > 0 then doRemoveItem(i.uid) end end, timeToRemove) end end local areas = {teste1, teste2, teste3, teste4, teste5} for _, area in pairs (areas) do addEvent(damage, 200 * (_ - 1), cid, area) end end magia criando monstro (precisa ter o "backupPos" configurado): elseif spell == "?" then local monsterName = "Monster" local timeToRemove = 2500 local function damage(cid, area) if not isCreature(cid) then return end doAreaCombatHealth(cid, FIREDAMAGE, getThingPositionWithDebug(cid), area, -min, -max, 255) local positions = arrayToPositions(area, getThingPositionWithDebug(cid)) for _, pos in pairs (positions) do local newMonster = doCreateMonster(monsterName, backupPos, false) if newMonster > 1 then doTeleportThing(newMonster, pos, false) addEvent(function() if isCreature(newMonster) then doRemoveCreature(newMonster) end end, timeToRemove) end end end local areas = {teste1, teste2, teste3, teste4, teste5} for _, area in pairs (areas) do addEvent(damage, 200 * (_ - 1), cid, area) end end
    1 ponto
  10. Oneshot

    Talkactions

    Crie um arquivo de nome staff.lua em data/talkactions/script, utilize o seguinte conteúdo: function onSay(cid, words, param, channel) local result = db.getResult("SELECT `name` FROM `players` WHERE `group_id` > 1 ORDER BY `group_id` DESC") local msg = "Server Staff\n\n" if result:getID() == -1 then while true do local name = result:getDataString("name") msg = msg .. name .."\n" if not result:next() then break end end end doPlayerPopupFYI(cid, msg) return true end Abra o arquivo talkactions.xml e adicione a seguinte chave <talkaction words="/staff" event="script" value="staff.lua"/> Fiz este código para listar em ordem decrescente de acesso todos os jogadores que não pertençam ao grupo padrão. Ou seja, até tutores serão listados.
    1 ponto
  11. Skymagnum

    [Encerrado] Duvida Move1.lua

    Não mecho com pokémon mais tenta.
    1 ponto
  12. http://www.xtibia.com/forum/topic/133661-perfect-vip-system-30/
    1 ponto
  13. caotic

    Passivo E Agressivo Pda

    Yan18 você esta apresentando um bom desenvolvimento vejo que você sempre esta reportando continua assim amigo. Tópico já Movido
    1 ponto
  14. Cara vc fugiu completamente sobre o asunto do Tópico.
    1 ponto
  15. Pronto ja coloquei add isso: passivepokemons = {"Eevee", "Caterpie", "Metapod", "Butterfree", 'Pidgey', 'Clefairy', 'Jigglypuff', 'Oddish', 'Gloom', 'Paras', 'Psyduck', 'Bellsprout', 'Weepinbell', 'Slowpoke', 'Ponyta', 'Slowbro', "Farfetch'd", 'Doduo', 'Dodrio', 'Seel', 'Shellder', 'Kangaskhan', 'Chansey', 'Tangela', 'Mr. Mime', 'Tauros', 'Ditto', 'Lapras', 'Porygon', 'Omanyte'} Se n der me avise.
    1 ponto
  16. Da pra fazer por script, basta no arquivo login.lua na pasta data/creaturescripts/scripts e antes do último return true cole: if getPlayerVocation(cid) <= 4 then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) end doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5)
    1 ponto
  17. Skymagnum

    String.aproximity(Word)

    Olá hoje trago-lhes minha primeira função como estagiário espero que gostem. Creio que vocês já conhecem a função string.upper e string.lower? se não explicarei no final do tópico. @Oque Faz? Bom se a palavra/letra estiver em maiúsculo ela passa para o minusculo se estiver minusculo passa para o maiúsculo. @Installing Vá em pasta do seu servidor / data / libs / 050 - function no começo adicione isso: function string.aproximity(word) return word == word:lower() and string.upper(word) or string.lower(word) end . String Upper: Basicamente ela muda uma letra minuscula pra maiúscula. String Lower: Ao contrário da string.upper ela passa uma letra maiúscula para minuscula. LEMBRANDO QUE NÃO FOI TESTADO QUALQUER BUG/ERRO FAVOR POSTAR QUE VOU TENTAR ARRUMAR.
    1 ponto
  18. Duvida Sanada reportado Para Um Superior
    1 ponto
  19. SkyLigh

    Duvida Sobre Depot

    Duvida Sanada reportado Para Um Superior
    1 ponto
  20. Duvida Sanada reportado Para Um Superior
    1 ponto
  21. 1 ponto
  22. SkyLigh

    Arena Do Sobrevivencia

    Duvida Sanada Reportado Para Um Superior
    1 ponto
  23. SkyLigh

    Trade Com X Storage

    Duvida Sanada Reportado Para Um Superior
    1 ponto
  24. SkyLigh

    Erro No Black List

    Duvida Sanada Reportado Para Um Superior
    1 ponto
  25. boto actionID 33799 no tile dentro do trade center?
    1 ponto
  26. SkyLigh

    Ajuda ?

    Título irregular reportado para um superior Sistema http://www.xtibia.com/forum/topic/115435-creatureevents-anunciador-de-quem-mata-e-quem-morre/
    1 ponto
  27. SkyLigh

    Outfits

    Duvida Sanada reportado Para Um Superior
    1 ponto
  28. Duvida sanada reportado Para Um Superior
    1 ponto
  29. SkyLigh

    Script Para Abrir Gate

    duvida sanada reportado para um superior
    1 ponto
  30. SkyLigh

    Script Para Abrir Gate

    veja assim local config = { doorPosition = {x = 100, y = 100, z = 7}, doorID = 1000, minAccess = 6, message = { doorOpen = "The door has been opened!", doorClose = "The door has been closed!" } } function onUse(cid, item, frompos, item2, topos) if getPlayerAccess(cid) >= config.minAccess then local item = getTileItemById(config.doorPosition, config.doorID) if item.uid > 0 then doRemoveItem(item.uid, 1) doPlayerSnedTextMessage(cid, 22, config.message.doorOpen) else doCreateItem(config.doorID, 1, config.doorPosition) doPlayerSendTextMessage(cid, 22, config.message.doorClose) end end return true end
    1 ponto
  31. Duvida sanada reportado Para um superior
    1 ponto
  32. N é pok.dat e pok.spr é PO.dat, PO.spr e PO.pic =) Duvida Sanada, peça para mover. Atenc. Yan18.
    1 ponto
  33. SkyLigh

    Duvida Sobre Tempo Do Leilao

    Duvida Sanada Reportado Para Um Superior
    1 ponto
  34. SkyLigh

    Problema Inquisition Boss

    Duvida Sanada Reportado Para Um Superior
    1 ponto
  35. SkyLigh

    Reset !

    duvida sanada reportado Para Um Superior
    1 ponto
  36. Espero ter ajudando e não ter " Ressuscitado " esse topc ^^!
    1 ponto
  37. SkyLigh

    [Ajuda] Script Para Vips...

    Local Incorreto certo seria em pedidos e duvidas de scripting reportado para ser movido
    1 ponto
  38. Olá Seu Tópico esta no lugar errado Irei Reportado para ser movido para Pedidos E Duvidas De Scripting
    1 ponto
  39. 1 ponto
  40. www.pokexgames.com Baixa o mirror 4 (Eu baixo por ele, recomendo).
    1 ponto
  41. Yan Oliveira

    [Encerrado] Dedicado

    Duvida Sanada, peça para mover. Atenc. Yan18.
    1 ponto
  42. SmiX

    Vocations Magic Gems

    @PostadorHunterXXXX Vlw por explicar na minha ausência. @ Topic o que o @PostadorHunterXXXX flw ta certo...
    1 ponto
  43. 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
  44. Function onUse() -- Essa é uma função usada para actions. Cid, Item, frompos, item2, topos esses são os parametros da function onUse(), explicando-as: cid = creature id item = esse é um parametro que vc pode introduzir duas alterações nela [ item.itemid e item.uid ] frompos = uma posição que vc pode editar, mas nunca usei ela topos = uma posição que vc pode editar, mas nunca usei ela
    1 ponto
  45. zerefshirou

    [Encerrado] Leite Ninho

    não tem como se vc não tem a source do seu ot Tirar totalmente acho que só com source, mas tem como sim dar um "jeito" nele.Bem eu até falaria como é, mas é sou pessimo em explicar e não to com vontadeSe não to errado o @Slicer, tirou do servidor sem level dele, então se perguntar a ele, ele deve te falar como tira ou te da uma ideia do que deve tirar ou tirar pra vc sei láOque eu posso dizer agora para ajudar.Colocar "-1" nos genders de todos no configuration, ja pode ser um começo ou um fimTirar os icones da pic, tambem.Editar a parte no exp.lua que ve algo relacionado a bonus de sex (10%+ power pra Machucado e 10%+ def pra Femaluda)Bem é o basico isso ai que eu disse, obs: ja tirei do meu, tirar é uma palavra feia, já removi, já desativei, desativei fica mais bonito
    1 ponto
  46. Tó: Configure aqui: local item = 9404 -- ID do Item local count = 1 -- Quantia do Item
    1 ponto
  47. RarTnE

    [Encerrado] Pokemon - Duvida Cruel.

    Área errada. Reportado.
    1 ponto
  48. elder720

    [Problemas Com Hack]

    Exatamente. Como pode perceber galera, é uma série de detalhes que fazem a segurança do seu servidor. Não é preciso de nada muito caro ou até mesmo pago para se ter algo seguro. Basta ter qualidade
    1 ponto
  49. JulioNakanishi

    Addon Bonus

    Não sei se aqui é o lugar certo, mas ta ai; Sistema de bonus quando adquiri o outfit full Testado apenas em 8.60 Vá em PastaDoSeuOt/data/XML/outfits e mude: <outfit id="1"> <list gender="0" lookType="136" name=" Citizen "> <attribute speed="10"/> <stats maxHealth="100"/> </list> <list gender="1" lookType="128" name=" Citizen "> <attribute speed="10"/> <stats maxHealth="100"/> </list> </outfit> <outfit id="2"> <list gender="0" lookType="137" name=" Hunter "> <skills dist="3"/> </list> <list gender="1" lookType="129" name=" Hunter "> <skills dist="3"/> </list> </outfit> <outfit id="3"> <list gender="0" lookType="138" name=" Mage "> <stats magLevel="2"/> <stats maxMana="200"/> </list> <list gender="1" lookType="130" name=" Mage "> <stats magLevel="2"/> <stats maxMana="200"/> </list> </outfit> <outfit id="4"> <list gender="0" lookType="139" name=" Knight "> <skills sword="3"/> </list> <list gender="1" lookType="131" name=" Knight "> <skills sword="3"/> </list> </outfit> <outfit id="5" premium="yes"> <list gender="0" lookType="140" name=" Noblewoman "> <skills club="3"/> </list> <list gender="1" lookType="132" name=" Nobleman "> <skills club="3"/> </list> </outfit> <outfit id="6" premium="yes"> <list gender="0" lookType="141" name=" Summoner "> <stats magLevel="3"/> <stats maxMana="200"/> </list> <list gender="1" lookType="133" name=" Summoner "> <stats magLevel="2"/> <stats maxMana="200"/> </list> </outfit> <outfit id="7" premium="yes"> <list gender="0" lookType="142" name="Warrior"> <skills melee="3"/> </list> <list gender="1" lookType="134" name="Warrior"> <skills melee="3"/> </list> </outfit> <outfit id="8" premium="yes"> <list gender="0" lookType="147" name="Barbarian"> <skills axe="5"/> <skills sword="2"/> <skills club="2"/> <stats maxHealth="200"/> </list> <list gender="1" lookType="143" name="Barbarian"> <skills axe="3"/> <skills sword="2"/> <skills club="2"/> <stats maxHealth="200"/> </list> </outfit> <outfit id="9" premium="yes"> <list gender="0" lookType="148" name="Druid"> <stats magLevel="3"/> <absorb percentPoison="5"/> </list> <list gender="1" lookType="144" name="Druid"> <stats magLevel="3"/> <absorb percentPoison="5"/> </list> </outfit> <outfit id="10" premium="yes"> <list gender="0" lookType="149" name="Wizard"> <stats magLevel="1"/> <stats maxHealth="100"/> <stats maxMana="200"/> <absorb percentDeath="5"/> </list> <list gender="1" lookType="145" name="Wizard"> <stats magLevel="1"/> <stats maxHealth="100"/> <stats maxMana="200"/> <absorb percentDeath="5"/> </list> </outfit> <outfit id="11" premium="yes"> <list gender="0" lookType="150" name="Oriental"> <stats maxHealth="200"/> <stats maxMana="200"/> <attribute speed="50"/> </list> <list gender="1" lookType="146" name="Oriental"> <stats maxHealth="200"/> <stats maxMana="200"/> <attribute speed="50"/> </list> </outfit> <outfit id="12" premium="yes"> <list gender="0" lookType="155" name="Pirate"> <stats maxHealth="100"/> <skills club="5"/> </list> <list gender="1" lookType="151" name="Pirate"> <stats maxHealth="100"/> <skills club="5"/> </list> </outfit> <outfit id="13" premium="yes" > <list gender="0" lookType="156" name="Assassin"> <attribute speed="80"/> <skills dist="3"/> <stats magLevel="2"/> </list> <list gender="1" lookType="152" name="Assassin"> <attribute speed="80"/> <skills dist="3"/> <stats magLevel="2"/> </list> </outfit> <outfit id="14" premium="yes" > <list gender="0" lookType="157" name="Beggar"> <absorb percentAll="5"/> </list> <list gender="1" lookType="153" name="Beggar"> <absorb percentAll="5"/> </list> </outfit> <outfit id="15" premium="yes" > <list gender="0" lookType="158" name="Shaman"> <stats magLevel="2"/> <absorb percentEnergy="5"/> </list> <list gender="1" lookType="154" name="Shaman"> <stats magLevel="2"/> <absorb percentEnergy="5"/> </list> </outfit> <outfit id="16" premium="yes" > <list gender="0" lookType="252" name="Norsewoman"> <skills shielding="5"/> <absorb percentIce="15"/> <stats maxHealth="200"/> <skills club="3"/> <stats magLevel="2"/> </list> <list gender="1" lookType="251" name="Norseman"> <skills shielding="5"/> <absorb percentIce="15"/> <stats maxHealth="200"/> <skills club="3"/> <stats magLevel="2"/> </list> </outfit> <outfit id="17" premium="yes" > <list gender="0" lookType="269" name="Nightmare"> <skills shielding="5"/> <absorb percentPhysical="15"/> </list> <list gender="1" lookType="268" name="Nightmare"> <skills shielding="5"/> <absorb percentPhysical="15"/> </list> </outfit> <outfit id="18" premium="yes"> <list gender="0" lookType="270" name="Jester"> <stats maxMana="100"/> <attribute speed="50"/> <stats maxHealth="100"/> </list> <list gender="1" lookType="273" name="Jester"> <stats maxMana="100"/> <attribute speed="50"/> <stats maxHealth="100"/> </list> </outfit> <outfit id="19" premium="yes"> <list gender="0" lookType="279" name="Brotherhood"> <stats magLevel="3"/> <absorb percentDeath="5"/> <stats maxHealth="100"/> </list> <list gender="1" lookType="278" name="Brotherhood"> <stats magLevel="3"/> <absorb percentDeath="5"/> <stats maxHealth="100"/> </list> </outfit> <outfit id="20" premium="yes" > <list gender="0" lookType="288" name="Demonhunter"> <attribute speed="10"/> <stats maxHealth="300"/> <absorb percentFire="5"/> </list> <list gender="1" lookType="289" name="Demonhunter"> <attribute speed="10"/> <stats maxHealth="300"/> <absorb percentFire="5"/> </list> </outfit> <outfit id="21" premium="yes" > <list gender="0" lookType="324" name="Yalaharian"> <attribute speed="20"/> <stats magLevel="2"/> <stats maxHealth="250"/> <stats maxMana="250"/> </list> <list gender="1" lookType="325" name="Yalaharian"> <attribute speed="20"/> <stats magLevel="2"/> <stats maxHealth="250"/> <stats maxMana="250"/> </list> </outfit> <outfit id="22" premium="yes"> <list gender="0" lookType="336" name="Warmaster"> <stats maxMana="200"/> <stats maxHealth="200"/> <stats magLevel="2"/> <absorb percentHoly="5"/> </list> <list gender="1" lookType="335" name="Warmaster"> <stats maxMana="200"/> <stats maxHealth="200"/> <stats magLevel="2"/> <absorb percentHoly="5"/> </list> </outfit> Explicação: Vermelho: nome do outfit Verde: o bonus que vai dar com o outfit full não tem muito oque explicar,é só mudar os add que você quiser. Deixarei o download do outfits.xml completo (com os bonus) para quem quiser: Outfits.xml(4Shared) - (Foi testado apenas em 8.6) Scan
    1 ponto
  50. jhon992

    [Anti-Mc]

    Na vdd @fireelemental o "r" é o parâmetro que recebe a função só que ao colocar o script aqui a formatação deve ter mudado automaticamente. Tenta assim @JeanDoido: -- [( XTibia.com )] -- local maximo = 1 -- Maximo de IP's iguais permitidos. function remover(r) if #getPlayersByIp(getPlayerIp(r.pid)) >= r.maximo then addEvent(doRemoveCreature, 100, r.pid) end return true end function deslogar(cid) if isPlayer(cid) then doRemoveCreature(cid) end return true end function onLogin(cid) local online = getPlayersOnline() local cont = 0 if getCreatureName(cid) == "Account Manager" then addEvent(deslogar, 60000*3, cid) cont = 1 end for i=1, #online do if getCreatureName(online[i]) == "Account Manager" then cont = cont+1 if cont > 9 then doRemoveCreature(cid) end end end if getPlayerGroupId(cid) <= 1 then if isInArray(getPlayerIp(cid)) == FALSE then addEvent(remover, 300, {pid = cid, maximo = maximo+1}) end end return true end
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...