Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 04/21/14 em todas áreas

  1. DinoShirou

    Pokemon Master 7.0

    O Pokemon Master foi criado com intuito de incentivar a diverção entre as pessoas de todas as idades, o jogo está cada vez mais inovador, cada vez mais legal, todos os dias temos novidades, a equipe está trabalhando duro para manter a qualidade de jogo. O Server agora possui um novo grafico, novos sistemas inovadores como Held Itens, TMs, Itens novos (Com Função) entre outros... Agora temos uma novidade que é o Oak's PC, nele você pode remover TMs para colocar em outros pokemons ou até mesmo vende-las, assim como podem trocar drop de focil por um pokemon focil como por exemplo: Old Amber você pode trocar por um Aerodactyl, Old Amber pode ser dropado do proprio Aerodactyl e é muito raro o drop. Temos também o Smeargle que agora você escolhe as moves dele, ele vem com 8 "Sketch" e você pode escolher as magias dele, se não gostar poderá resetar seu Smeargle no Oak's PC. Held Itens: Está funcionando perfeitamente, você pode usar apenas 1 held em cada pokemon, pode substitui-lo porem perderá o anterior, porem temos o sistema "Held Remove" que remove os helds dos pokemons e você não perde seu Held. Agora foi implantada as Outland que pode ser acessada por teletrasporte porem precisa ser lvl 150+, os pokemons de lá dá bastante exp, são pokemons como (Ancient Meganium, Elder Charizard, Boxier Hitmonchan, Aviator Pidgeot e etc...) Eles possui uma força um pouco maior e também dão mais Exp. Essas são apenas 10% das novidades, não irei citar todas no topico pois irá ficar muito longo. ►Pokemons Sem Level ►Pokemons Sem Sexo (Male/Female) ►Held Itens ►Sistema de TM ►Pokemons Balanceados ►Exp Balanceada ►Novo Sistema de Pesca ►Outlands ►Mapa Jhoto Proprio ►Novas Quests ►Novas Tasks ►Sistema de Taunt ►Sistema de Autoloot ►Sistema de Barco/Trem/Avião ►Bike/Moto/Carro/Onibus ►Novo PvP ►Novas Hunts ►Novos Remakes ►Novos Pokemons ►Novas Boxes ►Novos Itens
    2 pontos
  2. Oneshot

    Scripter Lua

    Tá e até agora você não ordenou os valores da tabela.
    2 pontos
  3. MatheusEnjoy

    Capacidade de Sobrecargada

    Nome: Capacity Overload Versão: 1.0 Código: sn3ejk Forum Origem: OTLand Versão: Todos TFS Descrição: Sistema tirado dos jogos da Bethesda como Skyrim e Fallout. Essa modificação faz com o que personagem com a tenha capacidade de carregar infinita, mais ao chegar determinado valor o personagem começa andar mais devagar. Vamos ao código: Em config.lua Abaixo de: playerFollowExhaust = 0Adicione: capacityOverload = 0.75Em configmanager.cpp Abaixo de: m_confNumber[FOLLOW_EXHAUST] = getGlobalNumber("playerFollowExhaust", 2000); Adicione: m_confDouble[CAPACITY_OVERLOAD] = getGlobalDouble("capacityOverload", 0.75); Em configmanager.h Abaixo de: FORMULA_MAGIC,Adicione: CAPACITY_OVERLOAD,Em player.cpp Substitua: windowTextId = nextExAction = 0;Por: windowTextId = nextExAction = capacityOverload = 0;Substitua: void Player::updateInventoryWeight()Por: void Player::updateInventoryWeight() { inventoryWeight = 0.00; if(hasFlag(PlayerFlag_HasInfiniteCapacity) || !g_config.getBool(ConfigManager::USE_CAPACITY)) return; for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) inventoryWeight += item->getWeight(); } if (inventoryWeight >= capacity && !capacityOverload) { capacityOverload = (int32_t)(getSpeed() * g_config.getDouble(ConfigManager::CAPACITY_OVERLOAD)); g_game.changeSpeed(this, -capacityOverload); } else if (inventoryWeight < capacity && capacityOverload) { g_game.changeSpeed(this, capacityOverload); capacityOverload = 0; } }Substitua: bool Player::hasCapacity(const Item*, uint32_t) constPor: bool Player::hasCapacity(const Item*, uint32_t) const { return true; }Substitua: void Player::onThink(uint32_t interval)Por: void Player::onThink(uint32_t interval) { Creature::onThink(interval); int64_t timeNow = OTSYS_TIME(); if(timeNow - lastPing >= 5000) { if (capacityOverload) { g_game.addMagicEffect(getPosition(), MAGIC_EFFECT_POFF); sendCancel("Your capacity is overloaded!"); } lastPing = timeNow; if(hasClient()) client->sendPing(); else if(g_config.getBool(ConfigManager::STOP_ATTACK_AT_EXIT)) setAttackedCreature(NULL); } if((timeNow - lastPong) >= 60000 && !getTile()->hasFlag(TILESTATE_NOLOGOUT) && !isConnecting && !pzLocked && !hasCondition(CONDITION_INFIGHT)) { if(hasClient()) client->logout(true, true); else if(g_creatureEvents->playerLogout(this, false)) g_game.removeCreature(this, true); } messageTicks += interval; if(messageTicks >= 1500) { messageTicks = 0; addMessageBuffer(); } if(lastMail && lastMail < (uint64_t)(OTSYS_TIME() + g_config.getNumber(ConfigManager::MAIL_ATTEMPTS_FADE))) mailAttempts = lastMail = 0; }Em player.h Abaixo de: int32_t shieldBlockCount;Adicione: int32_t capacityOverload;
    2 pontos
  4. Alexclusive

    RESULTADO - AMA #100

    Holly shit!! Ganhei? Nao esperava... Obrigado a todos que votaram em mim. Abraços!
    2 pontos
  5. 2 pontos
  6. Wend ll

    PokeXMaster

    se Você Liberou as portas 7171 e 7172, você irar ter que usar o Ip do No-ip Pois essa solução Só ficar online para você mesmo!!
    2 pontos
  7. 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
  8. biancasouza

    Global Fast Attack - by BIA

    GLOBAL FAST ATTACK - by BIA Bom hoje trago a todos vocês do Xtibia um global 8.6, sim um global porém ele não é um global como vários outros, nesse global ele é especificamente para fast attack, a experiencia independente de ser baixa ou alta serve para o servidor perfeitamente (recomendo a experiencia que já está no servidor), sabendo configurar direitinho não irá desequilibrar as vocações ou dar problemas. É o único até onde sei servidor com Trainers exclusivos com script, feito por min mesma com ajuda de um script de anihi não causando lag no servidor, quests exclusivas com muito rpg e diversão feitas por min mesma, entre elas quest do doppler amulet, elven legs e dragon scale legs, leinad ring, leinad spider amulet e leinad bat amulet. O servidor contém mais de 40 hunts vip novas, hunts novas nas city vip e uns tps, contém somente 3 cidades vip, addon bonus, bom não tem muito o que dizer. como sabem fotos valem mais do que mil palavras rsrs e entrar para ver vale mais do que mil fotos u-u Informações : Addon Bonus 3 City Vip Items Donates ou Vips como quiserem fazer 40 Novas Hunts Vips 20 Novas Hunts nas City Vip War System Quests Novas Sem Bugs TFS 0.4 Já Compilado e a Source Não Compilada. - "Explicarei mais sobre elas no final" Muito mais Print Screen: Templo de Thais Depot Depot Parte 2 Treiners Aparecem Treiners Desaparecem Checagem de Bless e Points no Login do Personagem Barco Vip e Itens donates Segundo andar depot Arena Hunting Arena Hunting - Alavanca para sair Hunts Vips Novas Hunts Vips Novas 2 Quest elven legs e dragon scale legs Quest Anihilator 1k Quest Doppler Amulet Quest Doppler Amulet 2 Quest S/b Amulet Distros: Se querem uma Distro com Ant-Div, No-otbm check, spoof system e War system compilem a source, se não utilizem a que vem no servidor que está só com war system. "pq só com war system? Não sei compilar em windows " Spoof System (Não Recomendo usar): Cuidado ao usar o spoof system: não me responsabilizo por banimento no otserver list ou quais quer problemas relacionados ao mesmo. (Lembrando que a distro que está compilada junto ao servidor não tem no-otbm check, anti divulgação ou spoof system) Se você compilou a distro que postei para ativar o spoof system adicione esta tag em seu config.lua: spoofPlayers = 0 Onde 0 é a quantidade para spoofar. Se você compilou a distro que postei para ativar o anti-div system, adcione esta tag em seu config.lua: advertisingBlock = ".net;servegame;no-ip,.net;.com;.com.br;.org;.pl;.net;.biz" Atenção se não for compilar troque o items.otb do servidor pelo do download items.otb abaixo se não irá dar erro.! Scans: Servidor: Source: Website Gesior: Items.otb: Downloads: Servidor: SPEEDYSHARE: 4SHARED: Source: SPEEDYSHARE: 4SHARED: Website Gesior: SPEEDYSHARE: 4SHARED: Items.otb: 4SHARED: Database: 4SHARED: Postarei assim que reseta-la por que a que tenho aqui não está resetada! (03/05/14) Creditos: Bianca Souza: 65% Xtibia (Em geral o forum, as pessoas, topicos e tudo que me ajudou a aprender um pouco de tudo): 35% Mãe: -100% Por ficar me chamando rsrs u-u Mãe: +100% Por me botar no mundo rsrs u-u Obs: Se alguem quer que eu especifique os creditos por alguma coisa me avise se não entra junto nos creditos do Xtibia '--' Obs: O servidor e livre para editarem e fazerem o que quiserem. Comentem! por favor, como é meu primeiro tópico quero saber o/no que precisa melhorar
    1 ponto
  9. MatheusEnjoy

    Heal com cores diferentes

    Nome: Heal Changing Colors Versão: 1.0 Código: Evil Hero Forum Origem: OTLand.net Versão: Todos TFS Descrição: Você pode definir a cor que vai sair a cura. Vamos ao código: game.cpp: Procure na função: bool Game::combatChangeHealth Por isso: addAnimatedText(list, targetPos, TEXTCOLOR_GREEN, buffer);Substitua por: addAnimatedText(list, targetPos, g_config.getNumber(ConfigManager::HEALTH_HEALING_COLOR), buffer);Procure na função: bool Game::combatChangeManaPor isso: addAnimatedText(list, targetPos, TEXTCOLOR_DARKPURPLE, buffer);Substitua por: addAnimatedText(list, targetPos, g_config.getNumber(ConfigManager::MANA_HEALING_COLOR), buffer); configmanager.cpp: Procure por: m_confBool[SHOW_HEALING_DAMAGE_MONSTER] = getGlobalBool("showHealingDamageForMonsters", false);Adicione abaixo: m_confNumber[HEALTH_HEALING_COLOR] = getGlobalNumber("healthHealingColor", TEXTCOLOR_GREEN); m_confNumber[MANA_HEALING_COLOR] = getGlobalNumber("manaHealingColor", TEXTCOLOR_DARKPURPLE); configmanager.h: Procure por: NAME_REPORT_TYPE,Adicione abaixo: HEALTH_HEALING_COLOR, MANA_HEALING_COLOR,Salve e Copile. config.lua: Adicione ao config healthHealingColor = TEXTCOLOR_GREEN manaHealingColor = TEXTCOLOR_DARKPURPLE
    1 ponto
  10. Omega

    [AGS] Guild Task

    Aviso Esse script precisa do Advanced Guild System instalado corretamente para funcionar. Informações Esse sistema de scripts funciona como uma task para toda a guild. Assim, qualquer membro da guilda pode aceitar uma task e cada monstro morto por qualquer membro irá contar para completar a task. Ao terminar a task, um membro deve falar com o NPC, que dará guild points e depositará o dinheiro na conta da guilda. Para melhor usufruto, use em conjunto com o Guild Banker. Códigos data/lib/guildtask_lib.lua data/creaturescripts/scripts/guild_onKill.lua data/npcs/scripts/guild_task_npc.lua data/lib/npc/Arthur.xml Configurações Para acrescentar monstros:Abra o arquivo guildtask_lib.lua e adicione {names = {"nome da task", "nome do monstro(1)", "nome do monstro(2), etc...}, totalKills = numero de monstros para completar a task, money = recompensa(dinheiro), points = recompensa(pontos), minPoints = mínimo de pontos para habilitar a task}, Logo abaixo dos demais monstros. Por exemplo, para acrescentar uma task para matar vários tipos de dragons, ficaria assim (o primeiro nome é o nome do task): -- Monsters monsters = { {names = {"dragon"}, totalKills = 5, money = 5000, points = 3, minPoints = 0}, {names = {"dragon lord"}, totalKills = 5, money = 15000, points = 5, minPoints = 1}, {names = {"dragon hunter task", "dragon lord", "dragon", "frost dragon", "undead dragon"}, totalKills = 500, money = 150000, points = 5, minPoints = 10}, }, Para configurar o tempo entre uma task e outra, utilize a variável waitTime (guildtask_lib.lua): -- Other variables waitTime = 1440, -- Tempo de espera para começar outra task após entregar uma } Para que não haja tempo de espera, coloque o valor 0. Esse tempo é em minutos.
    1 ponto
  11. JulynaMiiy

    PokexGeneration

    • Menu: ├ Informações; ├ Ediçoes; ├ Prints; ├ Download; └ Creditos. • Informações; • Edições; • PrintScreen; • Download; • Créditos; - Brun123. - Slicer. - ZerefShirou. - Zipter98. - StyloMaldoso. - JulynaMiiy. - Murluka.
    1 ponto
  12. Omega

    Omega Task v1.0

    Informações: Tasks adquiridas ou canceladas em NPC As tasks podem ser feitas repetidas vezes, mas somente uma vez por dia e apenas uma de cada vez (tempo configurável) Comando para acompanhar o andamento da task Atualização (31/08/13) > agora é possível ganhar itens a cada vez que a task é terminada Atualização (05/09/13) > VÁRIOS bugs corrigidos e algumas novas opções adicionadas Agora você pode escolher se quer que as tasks sejam feitas por level ou na ordem Recomendo a todos os que baixaram alguma versão anterior que atualizem Códigos: Tags: Em creaturescripts.xml, adicione: <event type="kill" name="Tasks" script="taskkill.lua"/> Em talkactions.xml, adicione: <talkaction words="!countkills" event="script" value="countkills.lua"/> No arquivo creaturescripts/scripts/login.lua, adicione: registerCreatureEvent(cid, "Tasks") Scripts: Crie um arquivo tasklib.lua em lib Crie um arquivo countkills.lua e adicione em talkactions/scripts Crie um arquivo taskkill.lua em creaturescripts/scripts Crie um arquivo NomedoNPC.xml em npcs Crie um arquivo tasks.lua em npcs/scripts Configuração: É feita toda no tasklib.lua: Configuração dos monstros: taskmonsters ={[1] = {'rotworm', killstotal = 100},[2] = {'cyclop','cyclops','cyclops smith','cyclops drone', killstotal = 100},[3] = {'dragon','dragon lord','frost dragon', killstotal = 100}} - O [número] deve seguir a ordem - A primeira parte deve ser o nome dos monstros da task no singular. Por isso existem 'cyclop' (singular) e 'cyclops' (nome do monstro) - Os nomes de todos os monstros de cada task devem aparecer. Por exemplo, na task de cyclops, qualquer tipo deles servirá para completar a task. - killstotal é a quantidade de monstros que você deve matar para terminar a task. Configuração das recompensas: taskreward = -- em gps{[1] = {money = 5000,xp = 20000, points = 3}, -- nenhum item será adicionado e 3 pontos de task serão adicionados[2] = {money = 10000,xp = 50000, item = 2458}, -- 1 item(2458) será adicionado e nenhum ponto de task[3] = {money = 20000,xp = 75000,item = 2458,amount = 2, points = 5} -- aqui serão adicionados 2 itens com id 2458 (se ele for amontoável - stackable) e 5 pontos de task} - O [número] deve ter a mesma ordem dos monstros - money é a quantidade de dinheiro que cada um ganha ao terminar a task correspondente - xp é a quantidade de experiência ganha ao terminar a task correspondente - item é o ID do item que ganha ao terminar a task correspondente - points significa quantos pontos de task o personagem irá ganhar quando terminar a task correspondente Adicionando novos monstros: - Vou explicar com um exemplo de como adicionar uma task de hydra/serpent spawn No taskmonsters: (REPARE NA VÍRGULA QUANDO ADICIONEI UMA NOVA LINHA!) taskmonsters ={[1] = {'rotworm', killstotal = 100},[2] = {'cyclop','cyclops','cyclops smith','cyclops drone', killstotal = 100},[3] = {'dragon','dragon lord','frost dragon', killstotal = 100},[4] = {'hydras e serpent spawn','hydra','serpent spawn',killstotal = 200}} No taskrewards: taskreward = -- em gps{[1] = {money = 5000,xp = 20000, points = 3}, -- nenhum item será adicionado e 3 pontos de task serão adicionados[2] = {money = 10000,xp = 50000, item = 2458}, -- 1 item(2458) será adicionado e nenhum ponto de task[3] = {money = 20000,xp = 75000,item = 2458,amount = 2, points = 5}, -- aqui serão adicionados 2 itens com id 2458 (se ele for amontoável - stackable) e 5 pontos de task[4] = {money = 30000, xp = 5000, item = 2450, amount = 1, points = 3}} Agora na função doStartTask(cid) - somente se quiser que as tasks sejam feitas por level - O que aconteceu: - Antes até o lvl 20 o jogador recebia a task dos rotworms, até o lvl 50, a task dos cyclops e daí pra frente, task dos dragons. - As tasks iniciais são as mesmas, mas até o lvl 80 é a task dos dragons e daí pra frente, o jogador receberá a task das hydras e serpent spawns. Considerações finais: O sistema de pontos apenas adiciona e checa a quantidade de pontos: você deve escolher se quer adicionar alguma coisa a partir deles. Testei profundamente e corrigi todos os erros que encontrei, postem se encontrarem mais algum, enviem o log do erro que farei o possível para consertar.
    1 ponto
  13. Killua

    Como usar addEvent

    Usando addEvent O uso do addEvent tem inúmeras utilidades e pode ser complicado para algumas pessoas, inclusive era para mim quando eu estava começando a aprender LUA. Para que serve o addEvent? Para "chamar" uma função após um periodo de tempo, ou seja, executar uma função após um tempo estipulado. O addEvent tem como parâmetros: callback, delay e ... addEvent(callback, delay, ...) Onde callback é a função que será chamada, delay é o tempo (em milissegundos) até que se chame essa função e ... são os parâmetros que a função chamada utiliza. Exemplo: addEvent(doBroadcastMessage, 1000, "Bom dia", 23) Aqui, após 1 segundo (1000 ms), a função doBroadcastMessage(message, type) será executada com os parâmetros message = "Bom dia" e type = 23. O addEvent pode ser usado de duas maneiras: Chamando uma função existente ou criando uma nova função. Para chamar uma função existente, basta usar como acima, para usá-lo para criar uma nova função, usa-se assim, por exemplo: addEvent(function() if isCreature(cid) then doPlayerAddItem(cid, 2160, 10) doPlayerSendTextMessage(cid, 25, "Voce ganhou 10k.") end end, 1000) Assim é basicamente a mesma coisa, mas pude colocar várias funções dentro de um único addEvent, e mantive o delay 1000 (1 segundo). Obs: Precisei usar 2 ends, um para fechar function() e outro para fechar o if. Atenção! Além disso, existe uma outra diferença entre as duas formas de uso, vou tentar explicar da melhor maneira possível: Quando usamos o addEvent com uma função já existente (1o exemplo), as informações usadas serão as geradas no momento em que o evento foi chamado, por exemplo: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(doCreateItem, 2000, 1308, 1, getThingPos(cid)) end return true end Se usarmos assim, a pedra irá ser criada na posição onde o jogador se encontrava no momento em que "deu use" e não onde ele etará 2 segundos depois. Se você quiser que a pedra seja criada na nova posição do jogador (pos de 2 segundos depois), você deve fazer uma nova checagem, criando uma função: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(function() if isCreature(cid) then doCreateItem(1308, 1, getThingPos(cid)) end end, 2000) end return true end Atenção novamente: A checagem if isCreature(cid) que utilizei, é muito importante para um addEvent que envolva criaturas. Se você executasse o addEvent sem a checagem e o player logasse ou morresse antes desses 2 segundos se passarem, daria um erro na distro e interromperia o resto do script. Espero ter sido claro, qualquer dúvida, podem postar.
    1 ponto
  14. Conteudo Retirado.
    1 ponto
  15. curruwilliam

    [Gesior] Azure V2

    Olá, Vou disponibilizar o download do [Gesior] Azure V2 aqui pra vocês: Imagens: Download 4shared: http://www.4shared.com/rar/ixPsQyjece/Gesior_Azure_v2.html Até mais Obs: Esse é o [GESIOR] 9.x - 10.x Otimizado Por VictorWEBMaster
    1 ponto
  16. comedinhasss

    Alissow Server

    Alissow Server Provavelmente vocês estão pensando "mas que diabo de OT é esse?", afinal, já faz 1 ano desde que a ultima versão foi lançada. A penúltima versão foi baixada mais de 50 mil vezes e esperamos que essa versão faça o mesmo sucesso. By Alissow Comedinha XedeguX Objetivo do projeto: Criar um servidor com base na versão mais atualizada do tibia com vários sistemas onde o mapa é feito para exploração com um grande nivel de RPG. Sobre o OT/Mapa: Principais quests: -Annihilator -Inquisition Quest -Pits of inferno -Demon Oak -Solar axe quest -HOTA -MPA quest Monstros: -Total monstros: 15000+- Cidades: -10 Cidades -220 Houses+- Raids/Invasões: -Rat -Ghazbaran -Giant spider/The old window -Ferumbras -Morgaroth -Orshabaal Spells: -Magias balanceadas parecidas com a do tibia global Changelog https://github.com/comedinha/Alissow/wiki/Changelog Imagens Download Servidor: GitHub Tamanho: ~10 MB Data Pack TFS 1.1 Atenção - LEIA o tópico antes de postar qualquer coisa ou duvida - Reportem se houver algum bug - As estatuas de offline que ficam no templo não funcionam por serem enfeites - Todos os addons são vendidos - Para usar os portais você primeiro deve explorar a área indo até ela - Tem alguns segredinhos e lugares escondidos muito legais para vocês descobrirem - Se vocês perceberem o Alisson deu retired do mundo otserv e não participou dessa versão O Servidor está inacabado. Muitas coisas que foi planejado fazer nele não foram completas. Mas inacabado não quer dizer que não está jogável, quer dizer que faltou detalhar (Ex: x:55 y: 137 z: 9, x: 104 y: 140 z: 7) E algumas coisinhas que não são tao importantes mas estavam planejadas por nós e no futuro podem ser adicionadas como warzone, quests, mais npcs e outros.
    1 ponto
  17. MatheusEnjoy

    Lista de Códigos Prontos 1.0

    [Modificações Servidor-Side] Anti-Palavrão E Anti-Spam Limite de Peso ao Enviar Parcels Capacidade de Sobrecargada Player Online Spoof ElfBot Anti-Push (Anti-Crash) Heal com Cores Diferentes Reset System Log do Chat [Modificações Cliente-Side] Andar Com WASD No Teclado [Funções Lua] Clipboardcopy(Text) Dochallengeplayer(Cid, Target) Dosavehouse(Houseid) [Outros]
    1 ponto
  18. MrKirito

    Apresentação - Avatar Online

    <---------------------------------------------------------------------------------------------> Sinopse (anime):Avatar A Lenda de Aang, A humanidade se divide em quatro nações: a Tribo da Água, o Reino da Terra,a Nação do Fogo e os Nômades do Ar. Dentro de cada nação, há homens e mulheres geniais, chamados de “Dobradores”, que tem a capacidade de dominar seus elementos nativos, fazendo uma “dobra”, que combina artes marciais variadas. Para manter o equilíbrio entre estas nações, existe um único dobrador que é capaz de controlar todos os quatro elementos. Esse é o Avatar, um escolhido que manifesta o espírito do mundo em uma forma humana. <---------------------------------------------------------------------------------------------> Introdução: Olá pessoal, passamos esses últimos meses criando um servidor de avatar, com sistemas inovadores e uma jogabilidade unica, como poucos já jogaram alguns servidores de avatar que nunca foram para frente, aqui pode ter certeza que vai, estamos investindo forte e com muita dedicação ao projeto, e posso dizer que ele já está em fase final, o servidor vai contar com 4 vocações, ar, água, terra e fogo, 18 magias para cada vocação, muitas quests e mistérios a serem desvendados. <---------------------------------------------------------------------------------------------> Vocações (Classes): Dobrador de Terra: "Um dobrador de terra consegue atingir o equilíbrio. Seu poder é grande e com facilidade de manipular seus adversários." Dobrador de Fogo: "Uma dobra poderosa, que se bem aprendida, pode devastar todo o mundo(ou quase todo)! Danos incríveis, mas precisa de ser rápido, porque não apresenta muitas dobras de suporte!" Dobrador de água: "Uma dobra delicada, que consegue causar dano devastador e também consegue curar seus amigos!" Dobrador de Ar: "Uma dobra excelentemente ágil, que garante uma tranquilidade para chegar e sair dos lugares. Porém, a agilidade faz com que seus danos não sejam muito potentes." <---------------------------------------------------------------------------------------------> Sistemas: MINERAÇÃO: "Você pode minerar pedras em cavernas com uma pick, utilizando ela na terra você pode adquirir pedras normais e pedras raras (1% de chance) e com elas e outros items que podem ser conseguido no jogo você pode forjar seus próprios items." Forja: "Para forjar você precisa ter o skill de forja necessário para fazer alguns items, items iniciais você não precisa de skill, somente da receita para faze-lo, conforme você vai forjando items você aumenta sua skill e pode forjar novos items e items mais raros." OBS: Ambos os sistemas você pode aumentar sua skill de forja e mineração. <---------------------------------------------------------------------------------------------> MAGIAS E OUTFITS: Cada vocação tem 2 outfits.Cada vocação tem 18 dobras(magias),começando no level 1 e indo até o level, contando com dobras secretas a serem descobertas dentro do jogo. MAGIA DE AR: "Magia aonde o usuário utiliza uma bola de ar para locomover-se mais rápido." MAGIA DE TERRA: "Magia aonde o dobrador cria uma onda de rochas, acertando seus inimigos a sua frente e empurrando eles para longe." MAGIA DE ÁGUA: "Magia aonde o usuário invoca um dragão de aguá atacando todos ao redor do lago." MAGIA DE FOGO: "Magia devastadora aonde o usuário chama uma chuva de meteoros causando um grande dano a todos ao redor." <---------------------------------------------------------------------------------------------> NOVOS MONSTROS: <---------------------------------------------------------------------------------------------> MAPA FIEL AO DESENHO: BA SING SE - EM CONSTRUÇÃO: CIDADE DOS NOMADES DO AR: Bom por em quanto é isso galera, espero que vocês tenham gostado e se vocês gostaram e querem receber noticias do servidor acessem a pagina do facebook e curtam, obrigado pela atenção! Facebook Avatar Online
    1 ponto
  19. alanvitor

    [ #Aulas# ] EscolaXTIBIA

    Increvam-se nas #Aulas de Mapping# Para se Tornar meu Aluno é presiso os Pré-Requesitos. Conexão com Internet Computador Razoavelmente Bom Tempo Disponivel de 2 Horas por Dia Seguir as Regras da Escola e do Forum Xtibia Remeres Map Editor Instalado e Configurado Meio de Contato : Skype, Email, Facebook Você vai Aprender muito nas aulas , e será capaz de fazer seu proprio mapa sozinho no final das aulas Material Enviado ao Aluno para o Estudo Noções Basicas de Mappeamento Logica de Criação de Cenário Nature Contruções Noções de Respaws Quests Nivel Basico Quests Nivel Avançado Parte do Material será enviada Via PDF ou Video Acada envio de material , será cobrado um pequenos exercicios Envie sua Incrição Nome : Idade : Experiência : Oque quer Aprender a fazer nas aulas de Mappeamento ? Tempo Disponivel : [ Manhã , Tarde , Noite ] Envie no Topico ou Via MP Ao Termino das Aulas Você estara tendo estes Resultados
    1 ponto
  20. Slicer

    Remover item de um array

    pode usar addEvent... addEvent(table.insert, 10000, items, 2222) --vai adicionar o item denovo apos 10s mas n garanto q isso va da muito certo... ;p
    1 ponto
  21. Mazynho

    Remover item de um array

    Para remover um elemento do array você pode usar o comando table.remove (table [, pos]), onde o parâmetro table é o nome da variável que você criou a tabela e pos é a posição do elemento que deseja remover. Ai como você disse para remover e inserir depois de um tempo você pode usar o comando table.insert(table, AlgoQueDesejeAdicionar).
    1 ponto
  22. Tonynh

    AMA - Feedback

    Obrigado Matheus. Tiramos uma boa lição com essa última edição, infelizmente acabou não sendo bom para alguns usuários, como você por exemplo. As regras foram atualizadas para evitar que esse tipo de situação se repita. Esteja a vontade para dar sua sugestão ou até mesmo sugerir novas regras, estas serão revisadas e poderão ser implementadas com o tempo. Também fique a vontade para tirar qualquer dúvida em relação ao concurso. Abraços.
    1 ponto
  23. Tonynh

    RESULTADO - AMA #100

    Bom, primeiramente gostaria de agradecer mais uma vez a todos os participantes, vocês transformaram esta edição em não apenas mais uma, mas sim numa edição lendária! Pretendo não enrolar muito, sem mais delongas. (...) E o resultado foi o seguinte: (Como a votação é realizada) 1 = 3* 2 = 2* 3 = 1* Gostaria de parabenizar os vencedores! (Vocês irão possuir a award mais rara e mais bonita do fórum rs) 1° Alexclusive 2° Avuenja 3° Codeur De acordo com a premiação: Comentários: 1. Apesar de ter achado o resultado justo, encontrei vários "buracos" na votação. Acarretará no comentário [3]. 2. Alguns votos foram desconsiderados devido a não se encaixarem com os requerimentos mínimos. 3. A próxima edição da AMA virá com novas regras, e uma nova forma de participação. Mais uma vez obrigado, e vejo vocês na próxima edição! Entrarei em contato com o vencedor! Acharam o resultado justo? COMENTE!
    1 ponto
  24. Não tenho server com a versão 10.10, mas esses que uso na 8.60 funcionam tenta ai. GuildMotd Mail SaveReportBug
    1 ponto
  25. MatheusEnjoy

    Player Online Spoof

    Nome: Player Online Spoof Versão: 2.0 Suportada: Tfs 0.3 e 0.4 Descrição: Coloque quantos players quiser em seu otserv. Eu estava vendo o utilitário de player spoof e resolvi dar uma extraia no code e fazer com que você adicione quantos quiser em seu servidor. Em configmanager.cpp procure: m_confNumber[MAX_PLAYERS] = getGlobalNumber("maxPlayers", 1000); Abaixo adicione: m_confNumber[SPOOF_PLAYERS] = getGlobalNumber("spoofPlayers", 0); Em configmanager.h procure: MAX_PLAYERS, Abaixo adicione: SPOOF_PLAYERS, Em status.cpp procure: p = xmlNewNode(NULL,(const xmlChar*)"players"); sprintf(buffer, "%d", g_game.getPlayersOnline()); xmlSetProp(p, (const xmlChar*)"online", (const xmlChar*)buffer); sprintf(buffer, "%d", (int32_t)g_config.getNumber(ConfigManager::MAX_PLAYERS)); xmlSetProp(p, (const xmlChar*)"max", (const xmlChar*)buffer); sprintf(buffer, "%d", g_game.getPlayersRecord()); xmlSetProp(p, (const xmlChar*)"peak", (const xmlChar*)buffer); Modifique para: p = xmlNewNode(NULL,(const xmlChar*)"players"); sprintf(buffer, "%d", g_game.getPlayersOnline()+(int32_t)g_config.getNumber(ConfigManager::SPOOF_PLAYERS)); xmlSetProp(p, (const xmlChar*)"online", (const xmlChar*)buffer); sprintf(buffer, "%d", (int32_t)g_config.getNumber(ConfigManager::MAX_PLAYERS)+(int32_t)g_config.getNumber(ConfigManager::SPOOF_PLAYERS)); xmlSetProp(p, (const xmlChar*)"max", (const xmlChar*)buffer); sprintf(buffer, "%d", g_game.getPlayersRecord()+(int32_t)g_config.getNumber(ConfigManager::SPOOF_PLAYERS)); xmlSetProp(p, (const xmlChar*)"peak", (const xmlChar*)buffer); Em config.lua procure: maxPlayers = Abaixo adicione: spoofPlayers = 0 Configurando: No config.lua onde tem spoofPlayers = 0 substitua o valor 0 para o valor de players spoof que você deseja ter. Recomendações: Remova o comando /online de seu servidor ou modifique para somente gm+ pode utiliza-lo. Modifique no site o total de players e adicione +(a quantidade que você colocou). Créditos: Comedinha
    1 ponto
  26. Passei pra ele o seguinte code e resolveu: doCreatureSayWithRadius(cid, "The army is complete again. You hear a hatch opening elsewhere, followed by a grinding sound.", TALKTYPE_ORANGE_1, 33261, 31086, {x = 33261, y = 31086, z = 8})
    1 ponto
  27. function repeatEff(cid, eff, tempo) if not isCreature(cid) or tempo == 0 then return end doSendMagicEffect(getThingPos(cid), eff) addEvent(repeatEff, 1000, cid, eff, tempo-1) end exemplo: repeatEff(cid, 21, 15) no caso vai repetir o efeito a cada 1s por 15segundos...
    1 ponto
  28. Bondx

    [Encerrado] Global 10.37

    Amigo, primeiramente, alguém lhe entregar de "mão beijada" um servidor COMPLETO é impossível. E, não existe servidor COMPLETO, sem nenhum bug. O que lhe indico é, utilizar o link abaixo para efetuar o download (está na seção 10.x aqui no Xtibia). http://www.xtibia.com/forum/topic/228732-1037-melhor-rl-map-baseado-10-new-roshamuul-novas-missoes-e-correcao-de-erros-open-source/ Você faz o seguinte: Faça o download do servidor atualizado, e exporte-o em uma pasta; Faça o download do executável de acordo com a versão do seu windows (32bits ou 64bits) e exporte-o na mesma pasta; Faça o download das dlls para funcionamento do executável e exporte-as na mesma pasta; Faça o download dos "Redistributable Packag" de acordo com a versão do seu windows (32bits ou 64bits) e INSTALE-O. (Este servirá para atualizar seu sistema C++ e evitar possíveis bugs, incompatibilidades, problemas com dll, etc.) É isso, basta baixar o site e configura-lo de acordo com sua necessidade. Lembrando: TODOS arquivos citados aqui, estão no link do tópico acima. Apenas estou mostrando o que fazer. A preguiça e falta de vontade em aprender são inimigas nestas áreas, seja ao menos um pouco interessado. Quem tem interesse, quando não sabe, procura aprender. O Xtibia possui muito conteúdo, ou seja, se você pesquisar, você aprende fácil fácil... Mas é isso. Qualquer coisa poste aí.
    1 ponto
  29. Maenilse

    Scripter Lua

    venda de scripts "AQUI NO XTIBIA" é proibido, n importa se o codigo é criado, o mesmo nao pode ser vendido, tanto servidores quanto scripts sao proibidos no xtibia.
    1 ponto
  30. Slicer

    Diminuir Função

    como q tas mandando a informaçao pro otc? pq ali tas dando 'tonumber(t[2])' soh q a tabela pokes ali ta com o nome 'charizard'... achu q o mais certo eh assim: function getIcons(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#poke#") then local t = string.explode(text, ",") local j, movee, path, button = t[2] if not pokes[j] then return end for x = 1, #pokes[j] do movee = pokes[j][x] path = "/img/"..movee.."_on.png" button = movesWindow:recursiveGetChildById('move'..x) button:setImageSource(path) end end end end clr q depende de como tas mandando o sendCancel...ps: forum bixado do kct
    1 ponto
  31. RodriigoRobson

    [Encerrado] [DUVIDA]

    eles vao te dar o ip e a senha . voce acessa pelo area de trabalho remota . Voce vai acessar outro Computador . Ai voce faz upload do seu Server e passa pro Host , Baixa no-ip etc.... Simples assim.
    1 ponto
  32. lucasromero

    Funções ?

    http://www.xtibia.com/forum/topic/220265-aula-7-aplicacoes-em-otserver-parte-1/
    1 ponto
  33. Wend ll

    PokeXMaster

    Não é bug só editar a Life no data/lib configuration.lua nessa parte:: ["Charizard"] = {offense = 12.5, defense = 7.8, specialattack = 11, vitality = 7.8, agility = 167, exp = 209, level = 85, wildLvl = 85, type = "fire", type2 = "flying"},
    1 ponto
  34. Madarada

    Teaser #5 - Itens

    É verdade,projetos que ficam mais de 1 mês sem atualizar conteúdo deviam ser arquivados.Acho que se o dono não tem tempo para o projeto nem deveria solicitar o patrocínio.
    1 ponto
  35. snodack

    [PEDIDO] Runa HP e MP

    O da mana rune por ML : Vai em data > spells > script e copie qualquer um .lua e renomeie para manarune e cole isto: E depois vai em data > spells > spells.xml e cole em uma linha isto : <rune name="Mana Rune" id="ID DA SUA RUNA" allowfaruse="1" charges="1" lvl="O LEVEL" maglv="15" exhaustion="1000" aggressive="0" needtarget="1" blocktype="solid" script="manaune.lua"/> E agora o da UH por ML e LVL Vai em data > spells > script copie qualquer um arquivo .lua e renomeie para uhrune e cole isto: E depois vai em data > spells > spells.xml e cole em uma linha isto : <rune name="Uh Rune" id="ID DA SUA RUNA" allowfaruse="1" charges="1" lvl="O LEVEL" maglv="4" exhaustion="1000" aggressive="0" needtarget="1" blocktype="solid" script="uhrune.lua"/> Espero ter ajudado E não esqueça do se gostou
    1 ponto
  36. snodack

    Comandos!

    Eu peguei o script do Cogames do tópico dele do Jail System e mudei o comando para o comando que você quer. Vá em data/talkactions/scripts, copie e cole um arquivo .lua e renomeie para Prisão.lua, e dentro cole: -- Jail System Atualizado por CoGames -- default_jail = 30 -- Tempo em segundos que o jogador ficara preso -- grouprequired = 3 -- O god que podera prender, exemplo: 3 para Tutor, 4 para GM, 5 para Cm e 6 para GOD -- jailedstoragevalue_time = 1338 jailedstoragevalue_bool = 1339 jailpos = { x = 000, y = 000, z =0 }- -- Lugar onde fica a Cadeia -- unjailpos = { x = 000, y = 000, z =0 } -- Lugar onde fica o Templo -- jail_list = {} jail_list_work = 0 -- Auto Kikador, nao edite!!! -- function checkJailList(param) addEvent(checkJailList, 1000, {}) for targetID,player in ipairs(jail_list) do if isPlayer(player) == TRUE then if getPlayerStorageValue(player, jailedstoragevalue_time) < os.time() then doTeleportThing(player, unjailpos, TRUE) setPlayerStorageValue(player, jailedstoragevalue_time, 0) setPlayerStorageValue(player, jailedstoragevalue_bool, 0) table.remove(jail_list,targetID) doPlayerSendTextMessage(player,MESSAGE_STATUS_CONSOLE_ORANGE,'Você saiu da cadeia, tente não fazer coisas malvadas da próxima vez para não ser preso novamente. Cuide-se amigo.') end else table.remove(jail_list,targetID) end end end function onSay(cid, words, param) if jail_list_work == 0 then jail_list_work = addEvent(checkJailList, 1000, {}) end if param == '' and (words == '!unjail' or words == '/unjail') then -- Acima escreva o comando para desprender -- if getPlayerStorageValue(cid, jailedstoragevalue_time) > os.time() then doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você foi preso até ' .. os.date("%H:%M:%S", getPlayerStorageValue(cid, jailedstoragevalue_time)) .. ' (agora é: ' .. os.date("%H:%M:%S", os.time()) .. ').') else if getPlayerStorageValue(cid, jailedstoragevalue_bool) == 1 then table.insert(jail_list,cid) doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você sairá da prisão aqui a 1 segundo.') else doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você não está preso.') end end return TRUE end local jail_time = -1 for word in string.gmatch(tostring(param), "(%w+)") do if tostring(tonumber(word)) == word then jail_time = tonumber(word) end end local isplayer = getPlayerByName(param) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+1)) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+2)) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+3)) end end end if jail_time ~= -1 then jail_time = jail_time * 60 else jail_time = default_jail end if words == '!jail' or words == '/jail' then -- Comando para prender -- if getPlayerGroupId ( cid ) >= grouprequired then if isPlayer(isplayer) == TRUE then doTeleportThing(isplayer, jailpos, TRUE) setPlayerStorageValue(isplayer, jailedstoragevalue_time, os.time()+jail_time) setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 1) table.insert(jail_list,isplayer) doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você foi preso '.. getCreatureName(isplayer) ..' ate ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (agora é: ' .. os.date("%H:%M:%S", os.time()) .. ').') doPlayerSendTextMessage ( isplayer, MESSAGE_INFO_DESCR, 'Voce foi preso por '.. getCreatureName(cid) ..' ate ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (agora é: ' .. os.date("%H:%M:%S", os.time()) .. ').') return TRUE else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Este jogador não existe ou esta offline.") return FALSE end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem permissão para prender players.") return FALSE end elseif words == '!unjail' or words == '/unjail' then -- Comando para tirar da cadeia -- if getPlayerGroupId ( cid ) >= grouprequired then if isPlayer(isplayer) == TRUE then doTeleportThing(isplayer, unjailpos, TRUE) setPlayerStorageValue(isplayer, jailedstoragevalue_time, 0) setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 0) table.remove(jail_list,targetID) doPlayerSendTextMessage(isplayer,MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid) .. ' vejo você em breve...') doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você saiu da prisão '.. getCreatureName(isplayer) ..'.') else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Este jogador não existe ou esta offline.") return FALSE end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem permissão para prender players.") return FALSE end end return FALSE end Agora vai em data/talkactions/talkactions.xml, e em algumas linhas cole <talkaction words="!jail" script="Prisao.lua"/> <talkaction words="!unjail" script="Prisao.lua"/> <talkaction words="/jail" script="Prisao.lua"/> <talkaction words="/unjail" script="Prisao.lua"/> E para prender o jogador é só digitar /jail E O NOME DO JOGADOR, e para tirar da cadeia /unjail E O NOME DO JOGADOR. Pkzin45 eu como disse peguei o script do Cogames apenas editei o comando como você queria. Não esqueça do se gostou
    1 ponto
  37. EdMignari

    Object Builder

    Eu usei o padrão da Cip, que são 16 animações o valor máximo. Só posso "corrigir" isso no próximo update.
    1 ponto
  38. EdMignari

    OTClient 0.6.5 rev2274 32bits

    Provavelmente a imagem está em jpg compresso. O formato ideal pra se usar é PNG. Uma dica: se você exportou um sprite sheet com o Object Builder, pode importar ele inteiro no programa. É só por o objeto em edição e arrastar o sprite sheet pra área appearance, O programa vai recortar automaticamente.
    1 ponto
  39. Maandyy

    Jogos PC

    Vouto a dizer se quer 1 jogo bom joga gunz 2 Olha o video
    1 ponto
  40. vital900

    [Life Thread] Transloko

    Bom galera estava em semana de prova (que acabou sexta-feira).. logo voltei a upar.. Queria fazer uma surpresa e finalmente consegui. Gold em itens a venda 920k.
    1 ponto
  41. biancasouza

    Global Fast Attack - by BIA

    Vá até o config.lua e la tem as rates de monstros procure pelas respectivas linhas: rateMonsterHealth = 1.2 rateMonsterMana = 1.0 rateMonsterAttack = 1.5 rateMonsterDefense = 1.0 e para normalizar os attack troque-as por: rateMonsterHealth = 1.2 rateMonsterMana = 1.0 rateMonsterAttack = 1.0 rateMonsterDefense = 1.0 se não estou enganada 0.3.8
    1 ponto
  42. Sources deveriam ser postadas na área de programação, que está sendo a abandonada porque postam o que deveria estar lá em outras áreas.
    1 ponto
  43. Alexclusive

    Problemas - "SQL Error"

    Ta parecendo aqueles Servidores que não param online... Ainda bem que temos pessoas qualificadas par resolver o que der e vier
    1 ponto
  44. Wend ll

    PokeXMaster

    1° Como configurar o exp do seu server.
    1 ponto
  45. Cara amei o OTC! <3 Estão de parabéns!
    1 ponto
  46. Wend ll

    PokeXMaster

    o Do Ditto é só dizer !revert e Puxa o pokemon de volta para ball
    1 ponto
  47. Codeur

    No pain, no gain

    Tentei aqui Espero que Goste !!
    1 ponto
  48. Pelas imagens parece ser ótimo! Nunca usei Modern, sempre usei Gesior, esse ai deu vontade de usar kkkkkkk Abraço
    1 ponto
  49. Eu vim aqui ajudar aqueles que estão com problemas para converter sua database para o TFS 4.0 ! Aquele negocio chato de quando converte a database ele muda os Account Number ficando em números enfileirados 1,2,3,etc... Vamos lá: Nas sources procure por databasemanager.cpp, abra o modo editor e procure por isso e delete: db->query("DELETE FROM `player_storage` WHERE `key` = 30018;"); db->query("ALTER TABLE `accounts` ADD `name` VARCHAR(32) NOT NULL DEFAULT '';"); if((result = db->storeQuery("SELECT `id` FROM `accounts`;"))) { do { query << "UPDATE `accounts` SET `name` = '" << result->getDataInt("id") << "' WHERE `id` = " << result->getDataInt("id") << ";"; db->query(query.str()); query.str(""); } while(result->next()); result->free(); } Se não estou na area correta desculpe ! Abrass, espero que tenha ajudado
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...