Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/15/11 em todas áreas
-
Preciso De Uma Script De [Vip] Que Salve O Nome Criado Numa Tabela E Edite O Vip Na Tabela 2
brenomadlan e 4 outros reagiu a history por uma questão
Eu também estava precisando disso. E como adiciona pra SQL?5 pontos -
• Peça Seu Tutorial De Internet Compartilhada • Olá usuários do XTibia, hoje eu criei este tópico com o objetivo de ajudar vocês criando um tutorial ensinando como desbloquear em seu modem as portas 7171, o que é muito importante para um usuario que possua internet compartilhada. Você deve pedir para mim o tutorial de seu modem, preencha este formulário: • Tutoriais Entregues:2 pontos
-
The New Frontier Quest
Fernandinand e um outro reagiu a Piabeta Kun por um tópico no fórum
The New Frontier Quest Recompensa: Warmaster Outfits, Piggy Bank, 2 Gold Ingots, Bullseye Potion, Mastermind Potion, Berserk Potion, 8000 pontos de experiência, liberação do tapete no top da montanha, acesso à vários locais de Zao Localização: Farmine, Zao, Kazordoon, Edron, Venore, Thais, Port Hope, Isle of Strife. Level requerido: 0 Premium requerida: sim Esteja preparado para enfrentar: Wolves, War Wolf, Enraged Squirrels, Stone Golems, Shard of Corruption, Sandcrawlers, Insect Swarms, Mooh'Tah Master, Dragon Hatchlings, Lizard High Guard, Lizard Legionnaire, Lizard Dragon Priest. Legenda: Os anões descobriram um novo continente, e Ongulf precisa de sua ajuda para expandir Farmine e conhecer o povo do local e seus perigos. Equipamentos Requeridos Ter a The Thieves Guild Quest completa. Caso não tenha, peça para algum amigo comprar os itens necessários Dinheiro para viajar Outro jogador para a missão 09 Indo até Farmine Para ir até Farmine, vá até algum steamboat. Pode ser o de Kazordoon ou de Cormaya. Chegando lá, fale farmine e na primeira vez, o NPC irá falar algumas palavras, apenas diga yes. Missão 01: Nova Terra Fale com o NPC Ongulf, Norte do barco. Diga hi, project e depois long, para ouvir a história completa da chegada dos anões no local. Então só depois fale mission, para conseguir sua primeira missão. Ele vai pedir você explorar o local ao redor, e tentar encontrar uma saída das montanhas. Agora vá para o leste, suba no elevador da direita e puxe a alavanca. Você irá sair no topo da montanha. O caminho não é difícil, vá para o Leste, use parcels ou levitate, e continue seguindo sempre para Leste. Você verá uma escada desça ela e irá aparecer uma mensagem dizendo que sua missão está concluída e pode retornar a Ongulf. Missão 02: De Kazordoon Com Amor Vá para Kazordoon até as Dwarf Mines, à Oeste. Atravesse os dois rios e encontre o NPC Melfar. Ele caminha sobre a superfície perto da mina à Oeste do armazém e do Royal Mailbox. Fale com Melfar e peça uma mission e ele irá entregar a você um Flask with Beaver Bait. Você precisa usar o líquido sobre as 3 árvores que vão ficar marcadas no mapa, em qualquer ordem. Árvore 1: Quando você usar o Flask with Beaver Bait na árvore, um Thieving Squirrel vai roubar o flask de você, mate ele para obtê-lo de volta e continuar marcando as outras árvores (ou deixe esta árvore para o final e não correr o risco de perder seu flask). Recomendação: Cercar o canto superior esquerdo com alguns tiros da runa Firebomb, isso ajudará com que o esquilo não corra. Árvore 2: Quando for marcar a segunda árvore, parece que alguém já marcou ela antes, o lobo que marcou ela vai aparecer com seus amigos para protegê-la (são sumonados 1 war wolf e 4 wolfs). Árvore 3: Na terceira árvore, uma família de esquilos que vivia em cima vai atacá-lo! (4 Enraged Squirrels). Retorne ao NPC Melfar e fale mission para finalizar sua tarefa. Agora é tempo de voltar para o NPC Ongulf em Farmine. Missão 03: Estranhos na Noite Nesta missão Ongulf conta sobre uma tribo que vive nas montanhas e você deverá ir até eles e ver se são pacíficos. Desça a montanha quase como você fez na missão 1, mas dessa vez vá um pouco ao Norte até achar umas vinhas na montanha (aqui), pela qual você deverá subir. Lá vive uma tribo da qual a maioria de seus NPCs falam uma língua estranha, você precisa encontrar o seu líder Lazaran, que fala um pouco de Inglês. Então pergunte a ele sobre suas intenções, fale para ele: mission, peace, yes e ele convidará você a fumar um cachimbo da paz e sua missão estará terminada. Retorne para Ongulf e nesse momento você verá que a cidade de Farmine está prosperando e já não é mais a mesma. Missão 04: A Mina é Minha Ongulf comenta que as coisas vão de mal a pior, primeiro tiveram alguns problemas com as novas minas que estão construindo e agora numa delas umas criaturas de pedra hostis (Stone Golem) a adotaram como se fosse seu resort de férias. Nada com que os anões não possam lidar, mas Ongulf sabe que você é um aventureiro e lhe concede o privilégio de matar o líder deles. Vá ao elevador da esquerda para chegar na mina A07 e matar o Shard of Corruption que mora na parte Nordeste. Missão 05: Obtendo Apoios Importantes Ongulf vai falar que as coisas estão cada vez mais complicadas, e toda ajuda é necessária. Por isso, ele vai pedir para você cobrar/pedir ajuda de 6 pessoas ao redor de Tibia. Para cada uma delas você deve falar farmine e depois escolher uma das seguintes palavras (a palavra correta pode mudar de jogador para jogador): Flatter (King Tibianus - Thais) Threaten (Humgolf - Kazordoon) Impress (Representante da Explorer Society - Port Hope) Bluff (Wyrdin - Edron) Reason (Telas - Edron) Plea (Leeland - Venore) Observação: A sequência de palavras usadas acima é uma recomendação, ou seja, não há uma garantia de 100% de acerto. Se você errar a palavra, o NPC não dará o apoio necessário e a missão não desaparece do Quest Log. Para tentar uma outra palavra deverá dar ao NPC um determinado item que você deve comprar com o NPC Black Bert. A lista dos NPC's que devem ser contatados e o item que será necessário em caso de falha é: Suporte da Academia de Edron Fale com Wyrdin nas Ivory Towers. Item necessário Almanac of Magic Suporte da Explorer Society Fale com o representante local em Port Hope. Item necessário Map to the Unknown Suporte do inventor Telas Fale com Telas em Edron. Item necessário: Universal Tool Suporte do rei de Thais Fale com King Tibianus em Thais. Item necessário: Flask of Crown Polisher Suporte dos vendedores de Venore Fale com Leeland (Oeste do depot, segundo andar da loja). Item necessário: Soul Contract Suporte do domador de rotworms Fale com Humgolf em Kazordoon (Norte do vagão que vai até as lojas). Item necessário: Baby Rotworm Lembrando que nem sempre você vai precisar entregar um item como presente para NPC. A The Thieves Guild Quest completa é muito útil para essa missão, se você errar a palavra. Missão 06: Dias de Desgraça Ongulf vai falar que os humanos primitivos avisaram sobre um ataque que os " homens verdes" (orcs) estão planejando à montanha. Por isso, ele vai pedir para você tentar uma aliança, ou qualquer coisa para impedir o ataque, já que não teremos chance alguma. Encontre o líder dos orcs no centro do continente, e fale mission. O líder Curos vai falar que você precisa passar num teste, para aí sim considerar alguma utilidade em uma aliança. Então fale test. Seu objetivo será apenas sobreviver por 2 minutos dentro de uma arena com um legítimo Mooh'Tah master. Você pode encontrar a entrada para a arena ao Sul de Curos. Entre na arena, e sobreviva por 2 minutos, você não precisa atacar. Após sair da arena, fale com Curos mission para completar sua missão e retorne até Ongulf na base. Missão 07: Mensageiros da Paz A partir dessa missão começa a ficar um pouco mais difícil a quest. Provavelmente você vai precisar de um grupo de amigos acima do level 80 no mínimo para completá-la tranquilamente. Peça sua mission para Ongulf. Sua missão é conseguir um tratado de paz com os lagartos também. Você pode encontrá-los nas montanhas no Norte. Siga o mapa acima para encontrar o NPC Ztiss. Você irá enfrentar Lizard Legionnaires, Lizard High Guards e Lizard Dragon Priests. Quando chegar, passe pela porta. ATENÇÃO: Antes de entrar pela porta, no sala ao lado esquerdo há a quest de um Tome of Knowledge, não esqueça de pegar! Após entrar na sala, você será teletransportado para uma prisão. No canto superior esquerdo da sala, há um papel escondido embaixo da palha. Clique nele, e então bem no centro da parede ao Norte, clique na imagem do dragão. A missão 7 está concluída aqui e continua abaixo. Missão 08: Uma Oferta Irrecusável Vá para o Norte e fale com o NPC Ztiss. Ele vai falar que a única maneira de você se livrar da prisão, é aceitar a offer de seu mestre. Fale em seguida work, e ele vai falar que a cada década, há um grande torneio, e você deverá participar. Aceite a oferta falando yes. Ele irá envenená-lo para evitar que você fuja do torneio, responda yes novamente. Então vá para o teleport no lado esquerdo da sala. Você irá parar nas Muggy Plains. A missão 8 está concluída aqui e continua abaixo. Missão 09: Combate Mortal Siga até o caminho no mapa abaixo, e peça uma passage para Zurak. Ok, você está agora na Isle of Strife. Você irá precisar de mais um jogador para a arena. No caminho até a entrada para a arena, você irá enfrentar: Lizard Dragon Priests, Lizard High Guards, Lizard Legionnaires e Draken Warmasters. Siga o mapa abaixo para chegar até lá (preste atenção na legenda da imagem). No X você pode encontrar um tomo, e no exclamação um teleport SOMENTE de ida para as Muggy Plains Fale com o NPC Chrak para entrar na arena. Diga mission, battle e yes. O acesso à porta será liberado. Entre nela com seu amigo e então puxe a alavanca! Prepare-se para enfrentar a arena, as criaturas são razoavelmente fortes, algumas podendo hitar mais de 400. Irão dar respawn de 2 criaturas por turno, seja rápido, caso contrário mais criaturas irão aparecer. Após um certo período de tempo, você e seu amigo serão teleportados para um sala, onde vocês irão pegar sua recompensa. Você só pode sair da sala clicando no dragão ao Norte e pegando seu outfit. Quando você sair usando o teleport, fale novamente com Chrak dizendo mission para ele tirar seu veneno e completar sua missão. Para sair rapidamente do local, use o teleport na escada à esquerda. Missão 10: Novos Horizontes Por fim, você conseguiu mais um voto de paz para Farmine. Orcs e lagartos não irão mais incomodar por um bom tempo, e você tem a confiança em várias partes do continente. Retorne até Ongulf para contas as boas novas. Ele ficará muito feliz com suas conquistas, e diz que não tem mais missões para você. Por isso, é sua hora de explorar o continente em busca de mais aventuras. Ele lhe dará 8000 pontos de experiência, e finalmente você poderá acessar a porta que leva ao tapete, no topo da montanha. Parabéns, você concluiu a quest principal! Para addons do outfit, confira outros spoils: Material retirado do TibiaWiki.com.br2 pontos -
Magebomb Account Manager
AlexxNica e um outro reagiu a MatheusGlad por um tópico no fórum
Va em creaturescripts/scripts e salve um arquivo.lua com o nome de players e bote o seguinte script: function table.find(table, value) --- By MatheusMkalo for i,x in pairs(table) do if x == value then b = i break end end return b end v = {} function v:new() return setmetatable({}, {__index = self}) end function v:add(name) self[name] = self[name] or {} table.insert(self[name], 1+#self[name]) end function v:check(name) return #self[name] end function v:del(name) table.remove(self[name], table.find(self[name], #self[name])) end player = v:new() ---- Nao mude maxplayer = 10 ---- Numero max de players com o nome abaixo playername = "Account Manager" ---- Nome do Player function onLogin(cid) if getPlayerName(cid) == playername then player:add(playername) if player:check(playername) > maxplayer then return FALSE end end return TRUE end function onLogout(cid) if getPlayerName(cid) == playername then player:del(playername) end return TRUE end Depois bote as seguintes tags no creaturescripts.xml: <event type="login" name="Add" event="script" value="players.lua"/> <event type="logout" name="Del" event="script" value="players.lua"/> Flw, espero ter ajudado2 pontos -
Styller Yourots 8.60 Original (PLATINUM) RPG (Compilado para Linux e para Windows) Mapa Base: Yourots 1.2 Editado por Leonardo. Informações: Versão 0.6 17/07/09 -Novo Visual do Templo. -95% a City 8.50 -Novas Quest\\\'s -Depot com novo Visual -SD igual a do Global. -Novos Monstros do 8.5 com respawn. -Novas Houses -Addons Funcionando. -Married Outfit -Firewalker Boots 100%. -Adicionada Itens 8.50 100%. -GOD 100%. -Adicionado Change Log -Soft Boots Funfando -Dual Hit -Npc System 100%.. -Questdoors. -Novas areas de Hunt -Respawn de Medusa Adicioando. -Demon Oak Quest 100%. -Guardian Halberd Quest. -Algumas Casas com novas Paredes. -Novo Outfit (KinG). -Inquisition 100% -Melhorei o Respawn de Bog Raider da Hydras -Sem o bug dos Grim Reapers -Npc Bless 100% -Novas Magias 8.5 -Sem o Icone de Pz e da Red Sword (por enquanto) -Ferumbras Tower (Igual a do Global) Agora Completada e com caminho para ir até ela. -Agora a Sudden Death (SD) após dar seu hit deixa um elemento de Morte tirando \\\"50\\\" -Remodelei o Amazon Camp. -Agora o Player pode recarregar sua Soft Boots e Firewalker Boots, clicando na \\\"Worn\\\" -Area de Vampiros. -Area de Infernalist. -Seais da Poi igual ao Tibia Global. -Novas Paredes. -Quest Firewalker Boots para quem fizer Demon Helmet Quest. (By Leo) -Nova Runa do tibia Global (Wild Growth). -Mais casas na cidade. -Mais pvp influenciando player jogar o Servidor. -Novo Visual do Temple. -Agora o Player ao soltar uma magia de Buff é adicionado Status. -Mais Estabilidade do Server. -Auto-clean de 2 em 2hrs. -Adicionado respawn de Faraó em Nargor. -Adicionado Great Shield Quest. -Novo respawn de Behemoth em Nargor. -Adicionado Yalahar City Full -Adicionado o Captain Eddy para levar o player à Yalahar. -Agora os players podem comprar BPS de PoTIonS e RuNAS por meio do "Buy with backpacks" no npc Dark Rodo! -Helmet of The Ancients Quest (HOTA) -Adicionado a Quest da Obsidian Knife -Adicionado o sistema de !ranks sem bug! --Melhorei a Arquitetura da Cidade. -Agora o player pode usar a enchated small ruby no Helmet of the Ancients (By LeozeraRox 100%) -Adicionado o NPC Bank sem bugs. -Foi retirado alguns Bugs. Rev 02 6/08/09 -Novo Visual do Templo. -98% a City 8.50 -Alavanca de Bp de Potions 100% -Adicionado Justice Seeker Quest -Depot com novo Visual -Sem o Bug dos Grim Reaper. -Novas Hydras. -Novos Frost Dragons, agora maior. -Adicionado o Icone de Protection Zone. -Adicionado a Black Skull -Nova Worn Soft Boots. -Nova Worn Firewalker Boots. -Loot Mensagem 100%. -Agora após o player criar o character no Acc Manager ele recebe os itens da sua Vocação. -Adicionado o Dark Cemiter (Nightstaker,Lich,Necromancer) -Adicionado uma Igreja mais por inquanto sem Casamento -Melhorei o sul da Cidade.. -Visual da City muito Bonito. -Novos demons. -Arena PvP 100%. -Loot do hellspawn agora igual do do Tibia Global. -Mais Estabilidade. -Mais Casas. -Retirei o "lixo" do mapa, pois pesava bastante os OT Servers. -!rank agora atualiza de 5 em 5min. -O preço da Yalahi Armor subiu para 600k -Melhorei o Respawn de Bog Raider da Hydras -Adicionei uma cave de Giant Spider e Hydra na Hydra Land. -Npc Bless 100% e agora mais completo. -NPC Bank sem bugs. -Adicionei o comando /ban -Bar para se diverir com amigos. -Nova Magia pra Royal Paladins "exevo con san" -Arrumado o Exhausted. -Rust Remover System -Para quem não quiser black skull basta por "no" no conf.lua >> " useBlackSkull = "yes" " -Agora o Npc Betoven não leva pro temple e sim para o Barco. -Foi retirado alguns Bugs. Rev 03 9/08/09 -Depot Com visual 8.50. -Arrumado o Bug do Outfit -Novo Exe. -Agora A Riona vende Rusty Remover. -Novo visual do cemitério -Adicionado o Married Outfit. -Removi Yalahar, pois era uma cidade inútil no servidor e servia só para pesar o server. -Hellgorak com loot igual do Tibia Global. -Mais estabilidade do que antes. -Retirado todas as camas por enquanto, pois quando o player dormia o server caia. -Foi retirado alguns Bugs. Rev 04 13/08/09 -Novo Distro. -Arrumado o Bug das camas. -Camas em todas as Casas. -Agora nem na Inquisition e nem na Demon Oak os players podem pegar os itens da amostra. (Obrigado usuários) -Clean não trava o server. -Server não cai mais, por erros. -Agora temos !notice. -Para banir Ctrl+Y -Todos itens 8.50 com seus nomes. -Mais estabilidade no servidor do que antes. -Foi retirado alguns Bugs. New Version 0.6.1 20/09/09 -Cave de Rotwoms reformulada. -Cave de Demos Reformulada. -Magias agora mais reais (sem aquelas exageradas). -Agora a Inquisition possui mais uma Sala. -Parte da Poi foi reformulada. -Adicionado o NPC Raphael, que vende buffer por 20min (nada exagerado) para os players. -Agora um cadeia para os players infratores. -Para Prender um player /jail "tempo,nome do player (apenas GMs e GODs) -Agora o player pode chamar players para quest através do comando- !service Pits of Inferno Quest, 5000 (o 5000 é o preço para os interessados). -Player agora pode trocar 200 demonic essences por um Nighmare ou Necromancer Shield (!necromancer-!nightmare). -Premia City toda Reformulada e com mais um hunt de Demons. -Adicionado os NPCs na Blue City. -Temos agora um Broadcast para dar informações aos players. -Adicionado um Hunt de Medusa e Defiler na Pits Prison. -Adicionado Demona na Hunt de Warlock. -Cave de Warlock toda reformulada. -Adicionado quest do noble axe nos Cyclops. -Adicionado um cave de Wyrms. -Pequenas edições no Temple. -Agora o Demon Oak sumona um Demodras no Lugar do Necropharus. -Foi retirado alguns Bugs. Rev 01 (0.6.1) 10/10/09 -Edições na pasta creaturescripts. -Bug do player não morrer arrumado. -Arrumado os Bugs da Premia City. -Novo Exe. foi adicionado e agora serve para Tibia 8.50 e 8.52. -Agora ficou mais dificiu derrubar o server e acho que impossivel. -Adicionado o NPC Hagar no temple, para dar boas vindas. -Bug do utito tempo san arrumado. -Bugs foram retirados. Rev 02 (0.6.1) 28/10/09 -Novo Exe. -Agora 100% Estável, devido aos vários testes. -Adicionado o NPC Aldo para recarregar a Soft Boots, segundo os players são mais RPG. -Ediçoes no mapa. -Edições no NPC Henricus. -Bugs foram retirados. Rev 03 (0.6.1) 31/10/09 -Retirado o NPC de recarregar a Soft Boots. -Permaneceu o Antigo jeito de recarregar. -Edições na Inquisition. -Bug da Arena PVP Arrumado. -Bug do NPC Henricus arrumado. -Adicionado a Quest do Blessed Shield na Fermbras Tower, onde o player escolhe apenas um Item. -Bugs foram retirados. Rev 04 (0.6.1) 02/11/09 -Novo Exe. -Mudei o Acc Manager de Lugar. -Adicionei o Npc Aldo (Recarrega Soft Boots). -Systema de Tapete Voador. -Systema de Jumper. -Uma atividade básica de mapping na cidade. -Systema de VIP: (Utilizando Database. Para mais informações: /vip) -Expandi 3 novas Hunts à Leste da Cidade. -Adicionei a Serpent Coat Quest. -Raid do The Mutated Pumkin ( /raid The Mutated Pumpkin ) -Nova Hunt de Frost Dragon na V.I.P City. -Nova Cidade Criada "Tiquanda Island" -Adicionei Systema de Refinamento para V.I.Ps. (Sem exagero) -Algumas Edições na POI. -Adicionei um Npc que leva o Player a Svargrond -Adicionei Arena Quest (greenshore - scrapper - warlord) 100% Igual ao Tibia Global. -Melhorei a Performaçe do Demon Oak. -Agora na Arena-PVP o player não perde item e nem level. -Nova Entrada para a Blood Land. -Um sistema de Invasão que o Boss invasor causa um incêndio nas Florestas de Nargor. -Adicionei a Quest da Giant Sword. -Sistema de Poll: (Via Database). *!createpoll PERGUNTA? *!activatepoll ID *!cancelpoll *!seepoll *!seeresults ID *!remvotes ID *!rempoll ID *!votepoll Option - Quando uma enquete está ativa, esse é o comando que os jogadores irão utilizar para votar na opção desejada. O número de opções pode variar. -Sistema de Afk (!afk on - !afk off). -Agora os Lideres de Guild podem mandar uma mensagem em Vermelho para os Membros. ( /guild ). -O membro de uma guild pode escolher ser atacado ou não por um outro membro de uma guild. ( /attackguild on - /attackguild off ) -Married System 100% (Via Database) *Como Casar: PLAYER1: Hi PLAYER1: marry PLAYER1: yes PLAYER1: Nome do PLayer 2 PLAYER2: Hi PLAYER2: marry PLAYER2: yes PLAYER2: proceed Os casais também podem se separar. -Adicionei o NPC Morgan em Blood City (Vende e compra Anéis) -Algumas Edições no Spells.xml -Colocamos um Sistema de quando a V.I.P do Player acabar, ele ser teleportado para a Cidade Principal. -Criei um Hunt de Destroyer e Demon. -Adicionei o Npc Old Jeff que vende outros tipos de Munição. -Bugs Foram Retirados. Versão de Reveillon (0.6.5) 16/12/09 -Novo Exe. -Mudei o Acc Manager. -Protocolo 8.54 -Outfits e Addons 8.54 (Warmaster) -95% dos Itens já foram Adicionados. -90% features -/unban funcionando 100% -Addons do Warmaster sendo vendido no Varkhal. -Adicionei a Magia "exana flam" -Agora o player começa com a "expedition backpack" -Suporte Para Mapas 8.54. -Bugs Foram Retirados. Versão de Retomada (0.7.0) 24/04/10 -Novo Distro totalmente estável. (LeozeraRox) -Proteção contra MageBomb. -Protocolo 8.54-8.55 -Lugares de Caça para todos os monstros 8.54 -Mais de 10 Quest dos novos itens foram adicionadas. -99% features. -Regularição das Spells. -Bank system via talkaction adicionado. -Comando para adiquirir bless igual a do global adicionado "!bless" -Novas Backpacks sendo vendidas na Riona. -Cidade toda reformulada. -Npc "A Ghostly Sage" para aquisição da permição para Pits Of Inferno. -Pits of Inferno mais similar ao do Tibia Global. -Nova Hunt de Infernalist adicionada. -Novo local da Igreja. -Adicionado o NPC Erisk (vendedor de alguns itens 8.54 para quem fez Pits of Inferno) -Adicionado Nightmare Doll quest. -Bugs Foram Retirados... (account manager - instabilidade). Versão de Retomada (0.7.0) Rev 01 08/05/10 -Novo Distro totalmente estável. (LeozeraRox) -Sem bug do Deathlist (foi retirado por segurança). -Novo andar na Trainer Room. -Sem bug que dava crash no Server. -Algumas Mudanças. -Bugs Foram Retirados... Versão de Retomada (0.7.2) Rev 02 15/05/10 -Novo Distro 8.54/8.55/8.56/8.57. (LeozeraRox- Techloko) -Bug dos protocolos arrumados. -Algumas Mudanças. -Bugs Foram Retirados... Versão 0.7.5 30/07/10 -Novo Distro 8.60. (LeozeraRox - Robson) -Potions em Cargas sem Bugs. -Runas em Cargas sem Bugs. -Itens 8.60 Adicionados. -Monstros 8.60 Adicionados. -Itens 8.54/8.60 sendo vendidos no Npc Esrik após completar Missão. -Novo Outfit e Addons Wayfarer. -Estabilidade. -Itens 8.60 com suas funções em perfeito funcionamento. -Bugs Foram Retirados... Versão 0.7.5 Rev 01 31/07/10 -Novo Distro. (LeozeraRox - Robson) -Sem bug das Houses. -Edições no Itens.xml. -Pequenas mudanças em Nargor. -Edições na Pasta Monsters. Versão 0.7.5 Rev 02 31/07/10 -Bug das Runas Arrumado. -Edições no Itens.xml. -Jogabilidade 100% Nova Versão (0.7.5) Rev 03 12/07/11 -Adicionado o Npc Jonny ano Norte de Blood City. -Todas as Magias do Tibia 8.70. -Agora o refinador é vendido no NPC Dufi. -Alavancas agora vendem cargas nas Bps. -Bugs Foram Retirados... Nova Versão (0.7.5) Rev 04 17/07/11 -Adicionado Frag System. -Hagar agora é útil no servidor. -Quando o player é assassinado ele perde seu coração -Alguns npcs foram mudados de lugar. -A Jogabilidade foi melhorada... Versão Definitiva (0.8) 20/12/11 -Adicionado VIP Vocation. -Completamente Sem Bugs. -Novo Distro. -Suporte Para War System -Adicionado !stamina. -Boas mudanças na Cidade Principal. -Bug de Runas e Potions corrigidos. -Trainers Modificados. -Novas Hunts, tanto VIP quanto Free. -Balanceamento de Vocações. -Adicionado a Light City para adquirir os itens de Addon. -Corrigido o Ex-Key Ring. -Sem Bug da Soya e Dark Rodo -Adicionada Darashia, totalmente Full. -Ferumbras, Ghazbaran e Morgaroth com seus Loots 100% iguais ao Tibia Global. -POI ficou mais Real. -Melhorou a Estabilidade. -Adicionada Novas Quests. -Adicionado o Addon Doll, (Ex: !addon first warrior) Versão Completa (0.9) 17/01/12 -Mudanças no Depot. -Novo Distro "muito melhor" -Addons dão atributos agora. -Anti-Push dos BOTS (Elf e Cya) -Frag arrumado. -Sem bug das Guilds. -Adicionado Refinaria em Baixo do Temple. -Na versão com teleports, foi feito uma nova area. -Boas mudanças na Cidade Principal. -Novidade nos prêmios da POI. -Sem Bugs Versão Completa (1.0) 01/03/13 -Retirei o bug da contagem de frags -melhorei a jogabilidade. -Sem Bugs Versão Completa (1.1) 03/03/13 -Coloquei sistema anti-magebomb -Pode se comprar VIP no NPC Hagar. Versão Completa (1.2) 16/03/13 -Nova Distro "Muito Melhor", pois nao da lag no server. -Não tem mais as dll's infectadas (virus). -Coloquei mais areas de caça no OT -Novos Npcs -Npc Esrik em cima do ponto de venda do NPC Raphael -Modifiquei o Templo -Sistema anti-divulgação de OT-Server -Adicionei o comando !promotion -Deixei a database mais segura. -Verifiquei se havia alguns bugs. Versão Premium 26/04/13 -War System com Escudos 100% sem utilizar database sql (BY LeozeraRox) -War of Emperium sem utilizar database sql /woe on(Configurado para todas as quartas e sabados as 18 horas) -Edições na cidade -Edições na Hunt de Cyclops -Edições na Hunt de GS -Edições na Hunt de Demon -Vocações Balancead -SD Igual tibia global -Adicionei uma Hunt de Hero -Novo Comando para informações do server !expinfo -Novos Npcs: Alice -Guia do War System !infowar -Removi Bugs de mapping -Removi Bugs da Database -Pronto para deixar online. -Sistemas de Pontos /atributos -Adicionado o NPC Scrutinon -Adicionado Lottery System, sorteando addon dolls -Retirei bug maps. Versão GOLD 2016: OBS: Primeiramente gostaria de explicar a minha volta. Depois de muito tempo sem postar, atualizar, encontrei no meu computador uma versão do Styller unica, sem bugs e a qual eu nunca havia compartilhado, pois eu utilizava esta para fazer meus OTs. Agora estou disponibilizando abaixo. -Cidade toda reformulada (Procurei valorizar o PVP) -Sistema de venda de itens offline -Training Offline -Edições na Hunt de Draggy -Sistema de exp guild, a exp de todos aumentam em 1% para cada membro online -Sistema de casamento, marido e esposa ao caçar juntos ganham mais exp. (!marriage info) -Vocações Balanceadas -Regulagem das Spells -Sistema de Itens VIP -Vip agora pode ser comprada com !buyvip -Novos Npcs. -Area de Trainer toda reformulada -Incorporei a database sql, para quem preferir -Castelo de respawns e npcs exclusivos para quem terminar Inquisition Quest -Barco oferecendo viagens para 5 cidades -Area de teleports reformulada -Adicionei o removedor de frags para quem terminar Inquisition Quest -Adicionei o sistema de montaria para quem terminar Inquisition Quest -Nova quest para level 250+ -Sistema de presentes para os players -Auto bless para players 40- (Anti power abuser) -Novas areas de hunt -É possivel ver os inimigos do Guild War System que estão online (!warmembers) -Otimizei para que não ficasse pesado e prejudicasse a jogabilidade -Informações randomicas no broadcast -War of Emperium reformulada. -Deathcast. (Estimular a War e o Revanchismo). -Sistema de recuperação de stamina, basta deixar treinando nos trainers. -Retirei bug maps. Versão 2017: -Senha do GOD corrigida -Otimização. -Removi alguns bugs. Versão PLATINUM [03/03/2017]: -Nova distro bem mais otimizada -Adicionado Cast System. (!cast on) -Adicionado o CASTLE WAR 24Hrs -Battle sai ao entrar em Protection Zone. -Não é possivel jogar lixo nas casas. -!disband corrigido -Adicionado 2 cidades (Ghala e Belisy) -Auto Loot Adicionado. -Remoção de bug maps. Acc do GOD Raymond: god/styller ScreenShots Novo Visual do Templo Castle War 24Hrs War of Emperium Novo Visual dos Trainers. Barco para as Cidades cheias de Hunts Novo Visual do Depot Novos Teleports. Firewalker Boots Quest. Trainers Offline. Blue Legs Quest Real. Refinaria. War System 100%. Vocation VIP - Second Promotion. Inquisition Castle para quem terminou a Inquisition. Download Styller Yourots Platinum "2017" (8.60) https://www.4shared.com/rar/NtjBLvNyei/86_Styller_Yourots_Platinum_20.html? Scan.\\\"/// --> https://www.virustot...sis/1363451248/ Mapa Editor ---> Clique Aqui Postem ae o que Acharam Galera!!! Obrigado RME pela perfeição e por ser um Exelente Map Editor!!! Gogo Up LeveL!1 ponto
-
Baiak Yurots V1.1.9 [8.70] Baiak Yurots V2.2 Oque Mudou ? Mudou a City ta 90% 8.5 Foi Arrumada As Houses. Adicioano Npc Papai Noel no Templo Vende Items 8.54! Novos Items Novos Outifits Novas Hunts E Muito Mais... Baiak Yurots V2.7 Oque Mudou ? Foi Adicionada um Nova Cidade Chamada Baiak City Foi Adidionada Um Teleport no Templo Que Vai para Alumas City's Foi Adicionado Npc de Bless,Pagando Todas as Bless você nao prescisa usar aol... Foi Adicionado Uma Ilha de GM's ... Bug do Account Mananger Arrumado. Novo Executer adicionado,se o ot cai ele salva sozinhoo. E Muito Mas Estara por vim ... Baiak Yurots v1.0.9 Oque Mudou ? Foi Adicionado Sistema Vip.. Foi Adicionado 5 Novos Portais Vip Foi Adicionado Novos Bixos Vip,Warlock Vip,Medusa Vip,Bossing of Baiak.. Foi Adicionado New Quest Baiak Super Foda !! ;D Foi Modificado o Templo Foi Adicionado Mais Treiners ! Entre Alguns Bugs Retirados Baiak Yurots v1.1.0 Oque Mudou ? Mudou o Protocolo de 8.57 para 8.60 Novos Item Novo Outfit Baiak Yurots V1.1.4 Oque Mudou ? Tirei o Pz tool do Templo Fiz um Novo System Vip por Comando Fiz o Novo Addon do Outfit do Wayfarer Baiak Yurots V1.1.9 Oque Mudou ? Mudo o Templo 100% Modificado Protocolo 8.70 100% Npc Baiak Seller Com Varios item vip funcionando os skills !! Atack das armas balanceada atack das runas balanceada todas as vocation balanceada e Muito Mais Você Vai Ver Nas SS (Screen Shots) Atk de Algumas Armas Avenger 65 de Atk Arcane Staff 65 de Atk Magic Sword 60 de Atk Thunder Hammer 60 de Atk Stonecuter Axe 60 de Atk Imperium Sword 90 de Atk Imperium Axe 90 de Atk Imperium Club 90 de Atk Baiak Sword 85 de Atk Entre Outras... acc do GOD Account:godbaiak Password:godbaiak Imagens:(Screen Shots) Teleports Templo Download Baiak Yurots 8.70 - > Baixar aki Download Dlls e Executer [Distro] [Obrigatorio para Abrir o ot] - >Down Distro Obrigatorio Scan Map Scan Do Distro Novos Comandos !aol = Para Comprar Aol !gmp = Para Comprar 100 Great Mana Potion !ghp = Para Comprar 100 Great Health Potion !shp = Para Comprar 100 Spirit Health Potion !uhp = Para Comprar 100 Ultimate Health Potion Gostou Crique Em REP +++ Obrigado Ajude Clike no Ali Embaixo (: Creditos GOD Louco Rook War Baiak Lula Vilden GOD BON Esse OT nao e copiado do Nosso amigo DexpironFox Nao Totalmente diferente....! Obs:Scan foi add obrigado a todos do xtibia.com!1 ponto
-
Para Todos Que Adoram o Global ai vai ele..; Real Global Map 8.70 Real Global Map: Versão do Tibia:8.70 Mapa global 95% full. Quase todos os NPC's do Tibia Global. Servidor com o mínimo de bugs possíveis. Scripts arrumados. Itens 8.70 Mount sistem Cidades: Yalahar Carlin Ab'Dendriel Kazordon Thais Venore Darashia Ankramun Edron Port Hope Liberty Bay Svargrond Cormaya Zao 100% (acesso por farmine) Farmine (acesso por cormaya) Quest's: Arena Quest Demon Oak Demon Helmet Inquisition anihilator Quest Pits of Inferno (POI) 95% global. HOTA Quest Banshee Quest Behemoth Quest Blue Legs BK Bright Sword Naginata Vamp Shield Fire Axe Mermaid Comb Orc Fortress Necro Quest Dark Shield Noble Armor Desert Quest Stealth Ring Zao arena /Features 8.6>>/8.7 Mount Igual o Tibia Global<> Mais Informaçoes vao serem postadas!... Fotos: Download: OT Donw Dll e exe Scan: Ot Scan Dll e exe Creditos: Nycholaszinzhu TFS *Darker(Trazer ao xtibia) Gostou ++++ Para min....! Obs:O OT Possui alguns bugs!..; 2 Hospeda-lo em um bom PC 3GB MEMORIA RAM+ E O PC TEM QUE TA RAPIDO OTIMO SE NAO Podera dar Lag..!1 ponto
-
Terroristas Yourots 8.7
Jholzika reagiu a Renanzinho2v por um tópico no fórum
Créditos ao dexpironfox pois foi editado em cima do ot do topico dele! para baixa o ot Clique aqui Para fazer o download da pasta world clique aqui! Templo: Dp Templo vip: Tp's: Scan Estive um tempo parado e acho que ainda vo ficar mais um pouco, mas vo postar aqui o ot inteiro atualizado...Acho q n é a versao mais atualizada q eu fiz e n divulguei mas essa ai foi a ultima q hospedei! Download1 ponto -
Sistema De Novos Items
Edenfield reagiu a MatheusGlad por um tópico no fórum
Bem, como todos sabem, não da pra criar 2 items com o mesmo sprite, somente editando a source e o dat etc... Usando esse sistema que eu fiz voce nao precisara editar nada somente adicionar os scripts. Primeiramente vá na pasta lib e crie um arquivo ItemsEditedLib.lua e adicione isso dentro: function doPlayerAddEditedItem(cid, itemid) local newxml = io.open("data/items/newitems.xml", "r") local configs = {} for i in newxml:read("*a"):gmatch("<item (.-)</item>") do local itemid = tonumber(i:match('id="(.-)"')) local itemconfig = { ["spriteid"] = tonumber(i:match('spriteid.-=.-"(.-)"')), ["article"] = i:match('article.-=.-"(.-)"'), ["name"] = i:match('name.-=.-"(.-)"'), ["description"] = i:match('key.-=.-"description".-value.-=.-"(.-)"'), ["defense"] = tonumber(i:match('key.-=.-"defense".-value.-=.-"(.-)"')), ["attack"] = tonumber(i:match('key.-=.-"attack".-value.-=.-"(.-)"')), ["extradefense"] = tonumber(i:match('key.-=.-"extradef".-value.-=.-"(.-)"')), ["armor"] = tonumber(i:match('key.-=.-"armor".-value.-=.-"(.-)"')), ["extraattack"] = tonumber(i:match('key.-=.-"extraatk".-value.-=.-"(.-)"')), } configs[itemid] = itemconfig end if configs[itemid] then local item = doPlayerAddItem(cid, configs[itemid].spriteid) for i,x in pairs(configs[itemid]) do doItemSetAttribute(item, i, x) end end end Depois vá na pasta items e adicione um arquivo newitems.XML (XML NAO LUA!!!) e adicione isso dentro: <?xml version="1.0" encoding="UTF-8"?> <items> <item id="100" spriteid="2400" article="a" name="magic edited sword"> <attribute key="description" value="Arma editada." /> <attribute key="defense" value="45" /> <attribute key="attack" value="100" /> <attribute key="extradef" value="10" /> <attribute key="extraatk" value="10" /> </item> <item id="101" spriteid="2472" article="a" name="master plate armor"> <attribute key="description" value="Armor editada." /> <attribute key="armor" value="19" /> </item> </items> Bem como voces podem ver, o xml guarda os novos items, o xml funciona praticamente como o items.xml so que tem um novo campo o "spriteid", nele fica o itemid original. Eu sei que ainda faltam atributos, com o tempo e com os pedidos eu vou adicionando. (É importante que voces peçam por novos atributos, porque os outros são mais complicados e eu nao vou faze-los para ninguem usar) Atributos: "description" "defense" "attack" "extradefense" "armor" "extraattack" Para adicionar os novos itemids aos players use doPlayerAddEditedItem(cid, ITEMID) em vez de doPlayerAddItem...1 ponto -
Compilar Distro Para 64 Bits
Diego Skate reagiu a decosiqueira por um tópico no fórum
Bom quem tem alguma dúvida de como compilar veja esse tutorial -> aprenda a compilar o distro agora vamos ver como fazer para passa para 64 bits. Se você não tem o dev-cpp aqui esta completo -> baixe primeiro agora siga esses passos: para quem ja tem atualize usando esse link aqui você encontra respositórios necessários para compilar em 64 bits libs e repositórios 64 bits 1. vá em Projetos 2. opções do projeto 3. Parâmetros 4. Em compilador Inclua "-m64" 5. salve e compile. Uploaded with ImageShack.us1 ponto -
Ola Galerinha Do Xtibia , Venho Aqui Trazer Meu Mapa Editado! Ele Contem: Imagens: Crystal Onix Cave: Charizard Valley Pvp Zone Ice Island Desert Saffari O Mapa Ja Vem Com Respown De "POKEMONS SELVAGENS", Duvidas - Criticas - Elogios... Aceitos! Comentem! :button_ok: Download: Scan: [VirusTotal] [Mapa] ~Stigal Creditos: [50%] Criador Do Mapa Dash v.6 [50%] Stigal (Eu)1 ponto
-
Criando Quest Muitas pessoas ainda nao sabem ou se confundem ao criar um bau de quest, esse tutorial aqui vai ensinar direitinho como criar um. Este tutorial é dividido em 4 passos. Criando Quest -Passo 1 - Script.lua crie um arquivo.lua novo, ele deve ficar localizado na pasta data/actions/scripts e escreva isto nele: function onUse(cid, item, frompos, item2, topos) if item.uid == X then queststatus = getPlayerStorageValue(cid,Y) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você achou um(a) Z") item_uid = doPlayerAddItem(cid,ID,Q) setPlayerStorageValue(cid,Y,1) else doPlayerSendTextMessage(cid,22,"O baú está vazio.") end else return 0 end return 1 end Passo 2 - Configurando o Script.lua Note que no script acima tem algumas variaveis: "X", "Y", "Z", Q e ""ID" e em um bau de quest isso é que tem que ser configuravel... vou ensinar agora o que deve ser substituidos por essas letras e como fazer: 2.a - Configurando X Esta variavel devera ser substituida por um numero maior que 1000, vc vai selecionar este numero pelo seu MAP EDITOR. Abra seu editor, va no bau onde fica localizada a quest entao clique com o botao direito no item e selecione PROPRIEDADES. Vai apareçer 2 opções: Action ID e Unique ID, unique id é o que nos interessa... entao onde tem unique id vc seleciona um numero a seu gosto.. como EXEMPLO vamos usar 2000. 2.b - Configurando Y Esta variavel é chamada de DATA KEY e é o codigo que diz se o player fez ou nao esta quest. ESTE NUMERO É A IDENTIDADE DA QUEST, SE 2 QUESTS TIVEREM A MESMA DATA KEY VAI DAR PROBLEMA NA QUEST, entao certifique-se que nenhuma outra quest/action possui este numero que vc vai escolher... *Dica: Eu aconselho a usar o mesmo numero do uniqueid por uma questao de organização até. Seguindo a dica entao vamos usar neste exemplo o numero 2000. PS: este numero apareçe 2x no script, lembre-se de por ele corretamente nos 2 lugares, este numero nao precisa ser igual ao unique id, vc pode escolher outro, eu estou colocando o mesmo numero por uma questao de praticidade. 2.c - Configurando Z Este é o mais facil, Z sera substituido pelo nome do item que a quest da (isso é aquele texto verinho que apareçe quando vc pega um item. Neste exemplo vamos usar umaMagic Sword. 2.d - Configurando Q Este é bem simples tambem, e é configuravel apenas quando o item é contavel como dinheiro, bolts e etc... quando o ITEM NAO É CONTAVEL entao esta variavel fica sempre 1. Como Magic Sword nao é um item contavel entao Q vai ser 1. 2.e - Configurando ID Este é bem facinho de se configurar, nada mais é que o ID do item que o player vai ganhar. Como no exemplo escolhi o item Magic Sword temos que usar o ID dela certo? smile.gif O id da magic sworde é 2400. PS: este id é de OT 7.4, o ID da magic sword em ot 7.5 é outro.. Passo 3 - Substituindo as Variaveis. Voltando agora ao script, vamos substituir os valores, substituindo tudo direitinho no script vai ficar assim: function onUse(cid, item, frompos, item2, topos) if item.uid == 2000 then queststatus = getPlayerStorageValue(cid,2000) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você achou um(a) Magic Sword") item_uid = doPlayerAddItem(cid,2400,1) setPlayerStorageValue(cid,2000,1) else doPlayerSendTextMessage(cid,22,"O baú está vazio.") end else return 0 end return 1 end Esta quase acabando!!! Passo 4 - Adicionando o Script.lua nos Actions. Antes de tudo lembre-se que o seu arquivo ate agora nao tem nome, como este bau da uma magic sword como item, entao vamos por o nome dele de MagicSwordQuest. Agora va no actions.xml e abra em bloco de notas, e adicione isto la: <action uniqueid="2000" script="MagicSwordQuest.lua" /> Salve e Feche. Pronto, sua quest foi criada com sucessso!!! Passo 5 - Como fazer quest de escolha (OPCIONAL) Agora para quem quier aprender como faz baus estilo o da annihilator, 2 baus ou mais, e vc só pode pegar um item, irei ensinar agora. é bem simples, vou tentar explicar como funfa e vou postar exemplo. nao tem o script inicial postado aqui? pronto, se for 2 baus vc junta 2 scripts em um só, se for 4, 4 scripts em um só, sendo que quando se faz isso se adiciona else antes dos outros if. vou fazer um exemplo com 3 baus ok? smile.gif vamos lá. function onUse(cid, item, frompos, item2, topos) if item.uid == X¹ then --primeiro bau-- queststatus = getPlayerStorageValue(cid,Y) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você achou um(a) Z¹") item_uid = doPlayerAddItem(cid,ID¹,Q) setPlayerStorageValue(cid,Y,1) else doPlayerSendTextMessage(cid,22,"O baú está vazio.") end elseif item.uid == X² then --segundo bau-- queststatus = getPlayerStorageValue(cid,Y) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você achou um(a) Z²") item_uid = doPlayerAddItem(cid,ID²,Q) setPlayerStorageValue(cid,Y,1) else doPlayerSendTextMessage(cid,22,"O baú está vazio.") end elseif item.uid == X³ then --terceiro bau-- queststatus = getPlayerStorageValue(cid,Y) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você achou um(a) Z³") item_uid = doPlayerAddItem(cid,ID³,Q) setPlayerStorageValue(cid,Y,1) else doPlayerSendTextMessage(cid,22,"O baú está vazio.") end else return 0 end return 1 end Para configurar é bem simples, é igual a um script normal, vc tem que preencher as variaves normalmente. nota: vc vai notar uma diferença neste script, alem do elseif, vc pode ver que tem variaves diferentes assim: X¹, X² e X³. vou ensinar como vc vai configurar. o X é unique id, vc vai configurar como em um script normal, só que x¹ é diferente de x² que é diferente de x³. O mesmo se aplica aos Z's, aos ID's, note que nao tem varios "Y", ou seja, o Y do primeiro bau é = ao do segundo e = ao do terceiro. --Partindo para o exemplo pratico-- eu aconselho vc a fazer os UNIQUEIDS seguidos como no exemplo pratico. X¹ = 3000 X² = 3001 X³ = 3002 Y = 3000. Z¹ e ID¹ = Magic Sword (2400) Z² e ID² = SCA (2431) Z³ e ID³ = TH (2421) PS: todos estes ids sao para 7.4, nao sei os de 7.5 decorados. --Substituindo as variaveis-- fuction onUse(cid, item, frompos, item2, topos) if item.uid == 3000 then --primeiro bau-- queststatus = getPlayerStorageValue(cid,3000) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você achou um(a) Magic Sword") item_uid = doPlayerAddItem(cid,2400,1) setPlayerStorageValue(cid,3000,1) else doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.") end elseif item.uid == 3001 then --segundo bau-- queststatus = getPlayerStorageValue(cid,3000) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você achou um(a) Stonecutter Axe") item_uid = doPlayerAddItem(cid,2431,1) setPlayerStorageValue(cid,3000,1) else doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.") end elseif item.uid == 3002 then --terceiro bau-- queststatus = getPlayerStorageValue(cid,3000) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você achou um(a) Thunder Hammer") item_uid = doPlayerAddItem(cid,2421,1) setPlayerStorageValue(cid,3000,1) else doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.") end else return 0 end return 1 end feche, salve e escolha o nome do seu script/quest exemplo: armas.lua --Adicionando no actions.xml-- abra o action.xml e adicione as tags dos baus. --armas quest-- <action uniqueid="3000" script="armas.lua" /> <action uniqueid="3001" script="armas.lua" /> <action uniqueid="3002" script="armas.lua" /> --end armas quest-- É isso aí... espero que ajude! By Dark-X1 ponto
-
Autorizações Para Edição De Servidores
k2lan reagiu a Henrique Moura por um tópico no fórum
Para entendermos por que se criam tantas confusões nessa seção por causa de edição de servidores sem autorização, vamos primeiro entender o que é open tibia e open source. Para entender o conceito, você deve pensar em "liberdade de expressão", não em "dinheiro grátis" "Open Source" se refere à liberdade dos usuários executarem, copiarem, distribuírem, estudarem, modificarem e aperfeiçoarem o software. Mais precisamente, ele se refere a quatro tipos de liberdade, para os usuários do software: A liberdade de executar o programa, para qualquer propósito (liberdade no. 0) A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades (liberdade no. 1). Acesso ao código-fonte é um pré-requisito para esta liberdade. A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo (liberdade no. 2). A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie (liberdade no. 3). Acesso ao código-fonte é um pré-requisito para esta liberdade Um programa é software livre se os usuários tem todas essas liberdades. Portanto, você deve ser livre para redistribuir cópias, seja com ou sem modificações, seja de graça ou cobrando uma taxa pela distribuição, para qualquer um em qualquer lugar. Ser livre para fazer essas coisas significa (entre outras coisas) que você não tem que pedir ou pagar pela permissão.Você deve também ter a liberdade de fazer modificações e usá-las privativamente no seu trabalho ou lazer, sem nem mesmo mencionar que elas existem. Se você publicar as modificações, você não deve ser obrigado a avisar a ninguém em particular, ou de nenhum modo em especial. OpenTibia são projetos de servidores open-sources que emula o protocolo de um servidor oficial do Tibia. Open Tibia Server se transformou em uma grande comunidade tendo revisões em seu CVS hospedado no sourceforge quase que diariamente. A legalidade do OpenTibia já foi discutida em diversas ocasiões, contudo sempre se concluiu que é legal rodá-lo, pois não é uma cópia do código dos servidores oficiais de Tibia (apenas possui funções similares). Esses códigos foram feitos em código aberto. Você é livre para modificar, editar, redistribuir, seja com ou sem modificações, sem pedir autorização. Desde que, mantenha o nome original do projeto e seus devidos créditos destacados e de forma clara.1 ponto -
• nome: Sistema de Ginásio / GYM para pokemon. • autor: brun123 (mastercraft) • versão testada: TFS 0.36 pl 1 (8.54) Detalhes: Como cada servidor de pokemon é bem diferente, acredito que muitos erros vão aparecer devido a diferença de IDs das pokebolas por exemplo, mas vou ajudar no que posso. Primeiro passo: crie um arquivo com o nome gymlib.lua na pasta data/lib/, e coloque isso dentro do arquivo: Segundo passo: crie um arquivo chamado gym.lua na pasta data/creaturescripts/scripts/ e coloque isso dentro: Terceiro passo: abra o arquivo creaturescripts.xml (localizado em data/creaturescripts) e adicione essas 4 tags: <event type="cast" name="Gym1" event="script" value="gym.lua"/> <event type="attack" name="Gym2" event="script" value="gym.lua"/> <event type="direction" name="Gym3" event="script" value="gym.lua"/> <event type="death" name="Gym4" event="script" value="gym.lua"/> Quarto passo: crie um arquivo chamado brock.xml em data/npc e crie um chamado brock.lua em data/npc/scripts e coloque isso dentro: Quinto passo: se você usar o pokemon dash, vá no arquivo playerattack.lua (data/creatureevents/scripts) e adicione esses códigos embaixo da linha "function onAttack(cid, target)": if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end end Se você não usa o pokemon dash, crie um arquivo chamado playerattack.lua na pasta data/creatureevents/scripts e coloque isso dentro: function onAttack(cid, target) if getPlayerStorageValue(target, 201) ~= -1 then for a, b in pairs(ginasios) do if getPlayerStorageValue(target, ginasios[getPlayerStorageValue(target, 201)].storage) == 1 then if getPlayerStorageValue(cid, ginasios[getPlayerStorageValue(target, 201)].storage) ~= 1 then doPlayerSendCancel(cid, "You can't attack this pokemon.") return false end end end end return true end e adicione essa tag no creaturescripts.xml (data/creaturescripts): <event type="attack" name="PlayerAttack" event="script" value="playerattack.lua"/> e ainda, abra o arquivo login.lua e embaixo dessa linha: "function onLogin(cid)" adicione esse código: registerCreatureEvent(cid, "PlayerAttack") Último passo: vá em data/creaturescripts/scripts e abra o arquivo goback.lua (aqui por exemplo, pode ser que haja uma particulariedade de servidor para servidor), e procure pela linha: function onDeath(cid, deathList) e abaixo dela, adicione esse código: local owner = getCreatureMaster(cid) for x, y in pairs(ginasios) do if getPlayerStorageValue(owner, y.storage) == 1 then if getPlayerStorageValue(owner, 991) == 5 or not hasPokemon(owner) then setPlayerStorageValue(owner, 991, -1) else local number = tonumber(getPlayerStorageValue(owner, 991)) setPlayerStorageValue(owner, 991, number + 1) end end end Configuração dos NPCs: Abrindo o arquivo brock.lua na pasta data/npc/scripts, procure por esta linha: "doGymBattle("Brock", "Brock Geodude", cid, 1)" o "Brock" precisa ser o nome do NPC e o "Brock Geodude" precisa ser o nome do primeiro pokemon a ser usado. Agora nessa parte, no script do seu NPC, você também deve editar o nome do NPC no lugar de "brock". Se quiser que o player possa lutar com o NPC mesmo depois de tê-lo vencido, é só remover a mesma parte: if getPlayerStorageValue(cid, ginasios["Brock"].storage) >= 1 then return true end Ao abrir o arquivo gymlib.lua, você encontra essas duas linhas (são as primeiras): funcpokemon = {2220, 2222} -- ID das pokebolas (o pokemon tem que estar vivo nessas IDs) bpslot = CONST_SLOT_BACKPACK --em outros servers, pode ser que seja CONST_SLOT_AMMO o lugar onde fica a backpack no inventory Onde está funcpokemon, você coloca o ID de todas as pokebolas do seu server, mas esse ID tem que ser o ID da pokebola com algum pokemon vivo dentro, e esses IDs devem ser separados por vírgula. Onde está bpslot, você escreve onde fica a BACKPACK do seu server de pokemon. Se ficar no lugar normal de BPs, deixe como está, mas se sua BP fica no slot da munição (ammunition), você deve estar para CONST_SLOT_AMMO. Isso é tudo, agora vocês podem configurar os IDs e localização da BP facilmente, sem precisar conhecimentos mais avançados sobre scripting, e evitar erros no sistema. Abrindo o arquivo gymlib.lua, localizado em data/lib/ você encontra essa tabela: ginasios = { ["Brock"] = { storage = 900, msgdefeat = "You lost! You aren't strong enough yet, don't come back until you get stronger!", msgafk = "Go away if you don't have any pokemons!", msgwin = "Congratulations, you were strong enough to win this battle fairly! Take this Earth Badge as reward.", [1] = { msggo = "Lets fight then! I choose you, Geodude!", msgba = "That's enough, Geodude!", pokem = "Brock Geodude", nextp = "Brock Graveler"}, [2] = { msggo = "It's your turn, Graveler!", msgba = "Come back, Graveler!", pokem = "Brock Graveler", nextp = "Brock Golem"}, [3] = { msggo = "Crush'em, Golem!", msgba = "You did well, Golem!", pokem = "Brock Golem", nextp = "finish"} } } • storage significa a única storage que deve variar de NPC para NPC, tenha certeza de que essa storage não está sendo usada, é você não deve usar a storage 901 aqui, pois a mesma já está em uso pelo próprio sistema. • msgdefeat significa o que o NPC irá dizer quando o player perder o duelo. • msgafk significa o que o NPC irá dizer caso o player comece o duelo, mas não faça nada depois. • msgwin significa o que o NPC irá dizer quando o player vencer o duelo. • msggo / msgba significam os textos que o NPC irá dizer ao sumonar o pokemon dele, ou quando o mesmo morrer, respectivamente.• pokem / nextp significam o nome do pokemon que será utilizado, e o próximo pokemon a ser sumonado pelo NPC, respectivamente. Caso o nextp seja especificado como "finish", não haverá um próximo pokemon. • o número entre [] significa a ordem utilizada pelo líder para usar o tal pokemon, sendo 1 o primeiro pokemon, 2 o segundo e assim vai... Uma tabela detalhada sobre a configuração: Importante: caso for testar o sistema como foi postado aqui, é necessário criar antes os monstros Brock Geodude, Brock Graveler e Brock Golem, assim como adicioná-los no monsters.xml. Recomendações: é bom você impedir que o pokemon consiga retornar para a pokebola durante duelos (assim como foi feito no SvkE), para isso, basta adicionar esse código no arquivo goback.lua (data/actions) na parte inicial de retornar o pokemon: for a, b in pairs(ginasios) do if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end end Aconselho fazer o mesmo caso seu server tenha script de revive. Deve-se também checar pelos storages usado em players, somente o 990 e o 991. No servidor testado, é utilizado apenas pokeballs e ultraballs, com IDs 2220 e 2222 (outra particularidade). Após ter instalado os arquivos, entre no jogo e use o comando /n Brock para testar o NPC. Último aviso: o prêmio ainda não foi adicionado (que seria a badge), pois esse sim é bem variado de servidor pra servidor. Já que nenhum servidor base já vem com os IDs das badges, cada um adicionou elas de modo diferente, por isso não pude fazer, mas existe uma parte sobre um prêmio no arquivo gym.lua (data/creaturescripts/scripts), procure por isso: --local item = getPlayerItemById(killer, true, 2307) --doTransformItem(item.uid, 2294) Você pode modificar para adicionar dinheiro ou outra coisa, e pode também desenvolver um sistema de badges. Eu não vou fazer badge aqui, mas se vocês tentarem, posso ajudar com problemas. Quaisquer erros, tentarei responder o mais rápido possível.1 ponto
-
[Gesior Acc] Changelog System
mdgabrielzim reagiu a walefxavier por um tópico no fórum
"Esta página consiste em voce deixar os jogadores do OTS atualizados com as modificações que vão ocorrendo no seu servidor." Em Htdocs/changelog.php abra ,apaque tudo e add isto dentro: <?PHP $page = $_REQUEST['page']; $action = $_REQUEST['action']; $id = $_REQUEST['id']; $limit = 30; $offset = $page * $limit; $change_data = $SQL->query('SELECT * FROM z_changelog ORDER BY id DESC LIMIT '.$limit.' OFFSET '.$offset.''); $change_data1 = $SQL->query('SELECT * FROM z_changelog'); $change = 0; $change1 = 0; if($group_id_of_acc_logged >= $config['site']['access_admin_panel']) { $description = trim($_POST['description']); $where = trim($_POST['where']); $type = trim($_POST['type']); if (!empty($action) AND !empty($id)) { $select = $SQL->query('SELECT * FROM z_changelog WHERE date = '.$id.'')->fetch(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Change Log Removido</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><table border=0 cellspacing=1 cellpadding=4 width=100%><tr bgcolor="#505050"><td width="1%"><font class=white>ID</font></td><td width="21"><font class=white>Tipo</font></td><td width="21"><font class=white>Onde</font></td><td width="50"><font class=white>Data</font></td><td><font class=white>Descrição</font></td></tr> <tr bgcolor="#F1E0C6"><td align="center">'.$select['id'].'.</td><td align="center"><img src="changelog/'.$select['type'].'.png" title="added"/></td><td align="center"><img src="changelog/'.$select['where'].'.png" title="ots"/><td>'.date("j.m.Y",$select['date']).'</td><td>'.$select['description'].'</td></tr> '; $main_content .= '</td></tr> </table> </div> </table></div></td></tr><br/><center><table border="0" cellspacing="0" cellpadding="0" ><form action="index.php?subtopic=changelog" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; $SQL->query('DELETE FROM z_changelog WHERE date = '.$id.''); } if(empty($description) AND empty($where) AND empty($type)) { $main_content .= '<form action="index.php?subtopic=changelog" method="post" ><div class="TableContainer" ><table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" ><div class="CaptionInnerContainer" ><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><div class="Text" >Atualizações do Servidor</div><span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span></div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" > <tr> <td class="LabelV" ><span >Tipo:</span></td> <td style="width:90%;" > <SELECT NAME=type> <OPTION>Adicionado</OPTION> <OPTION>Removido</OPTION> </SELECT> </td> </tr> <tr> <td class="LabelV" ><span >Onde:</span></td> <td style="width:90%;" > <SELECT NAME=where> <OPTION>Servidor</OPTION> <OPTION>Siteite</OPTION> </SELECT> </td> </tr> <tr> <td class="LabelV" ><span >Descrição:</span></td> <td style="width:90%;" > <textarea type="text" name="description" size="50" maxlength="150" rows="5" cols="60"></textarea> </td> </tr> </table> </div> </table></div></td></tr><br/><table style="width:100%;" ><tr align="center"><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="index.php?subtopic=changelog" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } else { if(empty($description)){ $show_msgs[] = "Description field is empty!."; } if(!empty($show_msgs)){ //show errors $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($show_msgs as $show_msg) { $main_content .= '<li>'.$show_msg; } $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; //show form $main_content .= '<form action="index.php?subtopic=changelog" method="post" ><div class="TableContainer" ><table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" ><div class="CaptionInnerContainer" ><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><div class="Text" >Atualizações do Servidor</div><span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span></div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" > <tr> <td class="LabelV" ><span >Tipo:</span></td> <td style="width:90%;" > <SELECT NAME=type> <OPTION>Adicionado</OPTION> <OPTION>Removido</OPTION> </SELECT> </td> </tr> <tr> <td class="LabelV" ><span >Onde:</span></td> <td style="width:90%;" > <SELECT NAME=where> <OPTION>Servidor</OPTION> <OPTION>Site</OPTION> </SELECT> </td> </tr> <tr> <td class="LabelV" ><span >Descrição:</span></td> <td style="width:90%;" > <textarea type="text" name="description" size="50" maxlength="150" rows="10" cols="60"></textarea> </td> </tr> </table> </div> </table></div></td></tr><br/><table style="width:100%;" ><tr align="center"><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="index.php?subtopic=changelog" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>'; } else { $SQL->query('INSERT INTO `z_changelog` (`id`,`type`, `where`,`date`, `description`) VALUES (NULL, "'.$type.'", "'.$where.'", '.time().', "'.$description.'");'); $id = $SQL->query('SELECT * FROM z_changelog WHERE `description` = "'.$description.'";')->fetch(); $main_content .= '<div class="TableContainer" > <table class="Table1" cellpadding="0" cellspacing="0" > <div class="CaptionContainer" > <div class="CaptionInnerContainer" > <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <div class="Text" >Change log added</div> <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span> <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span> <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span> </div> </div> <tr> <td> <div class="InnerTableContainer" > <table style="width:100%;" ><table border=0 cellspacing=1 cellpadding=4 width=100%><tr bgcolor="#505050"><td width="1%"><font class=white>ID</font></td><td width="21"><font class=white>Type</font></td><td width="21"><font class=white>Where</font></td><td width="50"><font class=white>Date</font></td><td><font class=white>Descrição</font></td></tr> <tr bgcolor="#F1E0C6"><td align="center">'.$id['id'].'.</td><td align="center"><img src="changelog/'.$type.'.png" title="added"/></td><td align="center"><img src="changelog/'.$where.'.png" title="ots"/><td>'.date("j.m.Y",$id['date']).'</td><td>'.$description.'</td></tr> '; $main_content .= '</td></tr> </table> </div> </table></div></td></tr><br/><center><table border="0" cellspacing="0" cellpadding="0" ><form action="index.php?subtopic=changelog" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>'; } } } foreach($change_data1 as $log) { $change1++; } foreach($change_data as $log) { $change++; if(is_int($change / 2)) $bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder']; $change_rows .= ' <tr bgcolor="'.$bgcolor.'"><td align="center">'.$log['id'].'.</td><td align="center"><img src="changelog/'.$log['type'].'.png" title="added"/></td><td align="center"><img src="changelog/'.$log['where'].'.png" title="ots"/><td>'.date("j.m.Y",$log['date']).'</td><td>'.$log['description'].''; if($group_id_of_acc_logged >= $config['site']['access_admin_panel']) { $change_rows .= '<a href="index.php?subtopic=changelog&action=delete&id='.$log['date'].'"><img src="'.$layout_name.'/images/news/delete.png" border="0"></a>'; } $change_rows .= '</td></tr>'; if ($change < $limit) { } else $show_link_to_next_page = TRUE; } if($change == 0) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Status do Servidor</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>Não há novas atualizações do servidor no momento.</TD></TR></TABLE></TD></TR></TABLE><BR>'; } else { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white><B>Change logs</B></TD></TR><TR BGCOLOR='.$config['site']['darkborder'].'><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1><TR><TD>Há '.$change1.' atualizações no momento.</TD></TR></TABLE></TD></TR></TABLE><BR>'; $main_content .= '<table border=0 cellspacing=1 cellpadding=4 width=100%><tr bgcolor="#505050"><td width="1%"><font class=white>ID</font></td><td width="21"><font class=white>Tipo</font></td><td width="21"><font class=white>Onde</font></td><td width="50"><font class=white>Data</font></td><td><font class=white>Descrição</font></td></tr>'.$change_rows.'</table>'; if($page > 0) { $main_content .= '<TR><TD WIDTH=100% ALIGN=right VALIGN=bottom><A HREF="index.php?subtopic=changelog&page='.($page - 1).'" CLASS="size_xxs">Previous Page</A></TD></TR>'; } if($show_link_to_next_page) { $main_content .= ' | <TR><TD WIDTH=100% ALIGN=right VALIGN=bottom><A HREF="index.php?subtopic=changelog&page='.($page + 1).'" CLASS="size_xxs">Next Page</A></TD></TR>'; } } ?> Em Htdocs/Layouts/tibiacom/layout.php add a seguinte tag : <a href='?subtopic=changelog'> <div id='submenu_changelog' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_archive' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Change Log</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div> </a> Agora em Htdocs/index.php add outra tag: case "changelog"; $topic = "Changelog"; $subtopic = "changelog"; include("changelog.php"); break; A maioria dos gesior's já vem com essas tags no layout.php e no index.php ,então,talvez não seja necessário... E para os que não tenham ainda será necessário esta tabela no SQL Database: CREATE TABLE IF NOT EXISTS `z_changelog` ( `id` int(11) NOT NULL auto_increment, `type` varchar(255) NOT NULL default '', `where` varchar(255) NOT NULL default '', `date` int(11) NOT NULL default '0', `description` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ; Para adicionar a tabela acesse o phpmyadmin ,clique na sua "Database" ,nas barras acima clique em SQL ,no espaço em branco coloque o código acima e clique em Executar.1 ponto -
Npc Gym Misty
2xxlenonxx reagiu a GMRaphael por um tópico no fórum
Primeiramente se já ouver o NPC GYM Misty Aqui no Forum Podem Fechar o Tópico. Eae Galera Do XTibia Vou ensinar como Fazer o NPC GYM Misty. No Final Explicarei Aonde Adcionar Mas Pokes. Então Vamos lá: Primeiro Passo: Vá em DATA/LIB/ e Crie Um Arquivo Chamado gymlib.lua (LUA) e Coloque isto Dentro. Segundo Passo:Vá em DATA/CREATURESCRIPTS/SCRIPTS e Crie Um Arquivo Chamado gym.lua (LUA) e Coloque isto Dentro: Terceiro passo: Vá em DATA/CREATURESCRIPTS abra o Arquivo Creaturescripts.xml (XML) E Adcione Essas 4 Tags. Quarto passo: Vá em DATA/NPC/SCRIPTS e Crie um Arquivo Chamado Misty.lua (LUA) e Coloque isto Dentro. Quinto Passo: Vá em DATA/NPC/ e Crie um Arquivo Chamado Misty.xml (XML) e Coloque isto Dentro. Abrindo o arquivo gymlib.lua, localizado em DATA/LIB/ você encontra essa tabela: Ali São Aonde Tem os Pokes o Finish Representa Acabou ou Terminou Que dizer Que não Haverá Mas Pokemons Depois de Blastoise. Para Acrescentar Mas Pokemons Tire o Finish e Coloque o Nome do Pokemon Que você quiser e Coloque Mas isto: Ali em Preto é o Pokemon Que Você Quiser. Mas Sempre que Você Não Quiser Mas Pokemons Depois Do Ultimo Coloque Finish no Final Depois de Nextp -. Para o NPC Funcionar Você Terá que Criar os Pokes Com o Nome Misty Antes. Por Exemplo: Misty Blastoise. Ai Você Cria Todos os Pokemon Com o Nome (Misty Antes) e Adciona As Tags dos Pokemon no Monster.xml (XML) Para Ver se o NPC Funcionou Você Fala no Seu Serve /n Misty. Bom é isso Ai. Valeu Galera espero Ter Ajudado Todos do XTibia. Créditos: Bom 99% Fui eu Que fiz Mas Não Sei Exatamente Quem Fez o 1%. Mas Não Foi Aqui do Forum Mas Quando Achar eu Botarei Aqui.1 ponto -
1°Como ser um excelente Mapper. Galera vamos lá, aqui encinaremos a ser um excelente mapper. Dicas Primeiro, duas regras básicas básicas: - Nunca copie mapas de ninguém, isso mostra que você não tem criatividade e não serve para mapear.(ripping) - Nunca fique várias horas sentado em frente ao computador mapeando, 2 horas no máximo, se ficar mais, você poderá se cansar rapidamente, e perderá a criatividade. Uma boa forma de fazer mapas novos, inovadores, é sempre detalhá-los muito bem, mas não exageradamente, construir coisas novas, hunts diferentes, quests com scripts mostram que o seu server tem um bom roleplay. Se você não tiver criatividade para mapear, saia de casa, vá ao shopping, vá andar pela rua com os amigos e namorada(o), se divirta. Vendo a paisagem, você poderá ganhar sua criatividade de volta Dicas para um bom mapper: Nunca faça áreas quadradas, isso deixa seu mapa com um aspécto horrível, e nenhum player irá entrar no seu server, apenas você mesmo :X Sempre que for mapear, tenha um scripter ou RPG Maker te ajudando, com isso você ganhará mais criatividade e fará uma coisa nova, sem copiar nada de ninguém. ( Não é preciso, só estou dando uma dica ) Se o seu OT for de EXP alta, peça para algum scripter ou você mesmo se souber, criar monstros novos para você e adicionar no mapa, isso irá chamar a atenção dos players de seu server. Não faça um templo ou area de hunt quadrada, nem muito menos um caminho reto, isso deixa seu OT feio e seus players não vão gostar. Se o seu OT for EXP baixa, não coloque vários monstros juntos, nem um monstro fraco junto com um monstro forte, exemplo, uma torre de orcs com dragons, assim, os players de level baixo não vão conseguir caçar lá, exceto se for algum local especial, alguma quest, assim mostrará que aquela area é um local para jogadores experientes, e que ele não aguentaria ir lá sozinho, mas sim com um grupo para lhe ajudar. Nunca coloque monstros fortes na saída da cidade, ou até mesmo dentro da cidade, como demons, dragon lords, etc, assim os players nem vão sair do templo ou do DP :X Nunca faça um mapa correndo, demore o máximo de tempo possível para fazê-lo, pelo menos o resultado dele poderá ser um sucesso, atraindo vários players! Não faça areas sem nexo, exemplo, uma cidade do gelo com lava no meio, uma cidade destruida e pegando fogo com gelo tampando boa parte das areas. Não coloque vários monstros grudados em seu mapa, se você for caçar e derrepente encontrar 700000 demons quase no mesmo sqm, acho que você não gostaria de morrer assim né ? Não coloque árvores de baixo d'agua, muito menos LAVA numa cave de rotworms... -.-' Coloque vegetação no seu mapa, umas graminhas aqui, outra ali, mas não exagere. Faça quests bem elaboradas, com um bom RPG, e de preferencia, que demore bastante tempo e precise de vários players para completá-la, um exemplo é a POI (Agora você vai precisar de um scripter e RPG Maker ) Sua hunt não pode ser uma area muito grande nem muito pequena, faça uma area de acordo com o tamanho do seu mapa, se for uma quest, procure detalha-la bem, e tente colocar muitos mistérios nela, assim seu OT poderá bombar rapidamente Exemplo em fotos: Não é feio? Assim é melhor! Olha que quest sem graça Desse jeito fica mais legal não acha? Seguindo essas regras, você terá um ótimo mapa, um ótimo OT, e ainda poderá ficar famoso pela sua criatividade nos mapas Espero que tenham gostado dessas dicas, foram 100% digitadas POR MIM, sei que já tem vários tutoriais sobre o mesmo assunto, mas resolvi fazer esse aqui mesmo assim. Créditos: ~Luquinhas ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2°Problema Tibia 8.60/RME, a Solução! Ultimamente tenho visto que muitas mappers estão tendo problemas com o RME e o Tibia 8.60, por isso, criei esse tutorial. Muitas pessoas quando abrem um mapa 8.60, o RME pede pra encontrar a pasta do Tibia 8.60, onde ficam arquivos essenciais pro RME funcionar, assim quando a pessoa encontra a pasta com tudo em ordem, o RME continua pedindo pra encontrar a pasta, vou ensinar como arrumar isso. 1: Baixe o arquivo .rar: Clique Aqui! Bom gente,desculpe não fazer o Scan mais é que demora 50 minutos para fazer o scan pois está bugado, e no final sempre buga. Caso acha que tem vírus não baixe. 2: Descompacte a pasta em qualquer lugar que você quiser. 3: Abra o RME. 4: Coloque para abrir um mapa 8.60, ou coloque para começar a fazer um mapa 8.60 5: Quando ele pedir pra encontrar a pasta do tibia 8.60, coloque pro RME encontrar o Tibia.spr e o Tibia.dat nessa pasta que você descompacto. Bem, fazendo isso, funcionou comigo, qualquer critica me comunique. Créditos: Merdago - ###### e Eu =) Obrigado =) Xtibia rulex!1 ponto
-
Fazendo Exp Por Stages
MagnosHanrei reagiu a Last Seeker por um tópico no fórum
Bom, galera eu criei este tópico para ajudar os novatos, que ainda não sabem como fazer a exp de seus OTServers por stages. Para quem não sabe o que é a Exp stages, eu irei explicar. Exemplo: Exp=200 do lvl 1 ao lvl 50 Exp=150 do lvl 51 ao 100 Exp=100 do lvl 101 ao "Infinito". Primeiro de tudo, vá na pasta do seu OTserv e abra o config.lua, feito isso ache esta linha: Então muda o no para yes, ficará assim: Feito isso, vá na pasta do seu OTServer, abra a pasta Data/XML/ e abra o arquivo Stages.xml: Voce deve encontrar isto aqui dentro do Stages.xml: Introdução: Vermelho:Os números em vermelho são os levels mínimos requeridos para a X exp. Azul:Os números em azul são os levels máximos para a X exp. Roxo:Os números em roxo, é a Exp, que ficará do level minimo ao máximo daquela linha, exemplo: <stage minlevel="[color="#FF0000"]1[/color]" maxlevel="[color="#0000FF"]8[/color]" multiplier="[color="#9932CC"]55[/color]"/> <stage minlevel="[color="#FF0000"]9[/color]" maxlevel="[color="#0000FF"]49[/color]" multiplier="[color="#9932CC"]50[/color]"/> <stage minlevel="[color="#FF0000"]50[/color]" maxlevel="[color="#0000FF"]1000[/color]" multiplier="[color="#9932CC"]40[/color]"/> stage minlevel=level minimo maxlevel=level maximo multiplier=exp É isso galera, espero ter ajudado! Obs:Este Stages.xml é do Slayer Yurots 8.41 ponto -
Salve! Vim Trazer Um Global Full C/Site BeTa. Prints Ae Pro Seis ^^ HEHE MUITO LOKO!!! Site Muito Loko Tbm! Download Do Map http://www.4shared.c...Global_860.html] Download Do "Gesior" WebSite http://www.4shared.c...FbU/Gesior.html Para Deixar Site On Download Do Xampp ]http://www.baixaki.c...nload/xampp.html SCANS Scan Do Sitehttp://www.virustota...e556-1281479277 Xampp é Do Baixaki Então Nem Preisa De Scan Scan Do Global http://www.virustota...8d1a-1308007151 Creditos Death Core 26% Doidin 25 % Alissow 25% Masterlokinhon 25 % Ajudei? Da Rep+ , Não Vai Cair Sua Mão1 ponto
-
[Rme] Apagando Monstros Importados
Renanzinho2v reagiu a ZeNit91 por um tópico no fórum
Aki vou encinar como apagar monstros importados no rme... É facil va a pasta; C:\Users\Andrey\AppData\Roaming\Remere's Map Editor\data\"modelo"... abra o arquivo e delete a linha do monstro importado. feito1 ponto -
Mega Curso De Sprites
ClaudioMar231o reagiu a olhonoporco por um tópico no fórum
Não sei se aqui é a área certa, se não for desculpe. Primeiramente queria dizer que não fiz esse tutorial. Botei os créditos no final, só estou trazendo para o xtibia. Tirei os erros de português, salvei imagem por imagem e hospedei um por uma porque meu Imageshack está com problema. São 59 imagens e tive que salvar, hospedar (uma por uma, pois o imageshack está com problema) e depois localizar e adicionar a imagem, todas elas... Espero que gostem... __________________________ •Artigo 1: Características Principais de um Sprite 1 - Tamanho 2 - Luz 3 - Perspectiva 4 - Edição •Artigo 2: Começando um sprite 1 - Introdução ao PAINT 2 - Criação de um sprite 3 - Pintura 4 - Aprimoramento •Artigo 3: Efeitos gerais - Módulo: Fireworks 1 - Magic Wand Tool 2 - Blur Tool 3 - Sharpen Tool 4 - Dodge Tool 5 - Burn Tool 6 - Smudge Tool •Artigo 4: Efeitos gerais - Módulo: PAINT 1 - Como colorir um sprite 2 - Oficina de pintura 3 - Anti-Aliasing e suas aplicações 4 - Lista de cores •Artigo 5: Efeitos particulares 1 – Jóias de enfeite 2 – Cavidades 3 – Rachaduras 4 – Sprites Envelhecidos 5 – Sprites brilhantes sem “Sharpen” Artigo 1: Características Principais de um Sprite 1- Tamanho Bom, para a galera que está começando agora a fazer sprites e não sabe por onde começar, aqui começaremos com o básico do básico, a dimensão dos sprites: De fato é bem simples: •Sprite pequeno porte (carregável) Todo sprite carregável deve possuir os padrões de sua Backpack e para isso, é preciso que ele tenha as dimensões 32x32 Pixels.. Veremos mais a frente como dimensionar sua página de edição.[Art2:1] •Sprites de médio porte Geralmente outfits, monstros humanóides, e pequenas estátuas seguem padrões com dimensão 32x32 Pixels no eixo de base(Chão) também, porém é preciso que eles se mantenham na perspectiva do Tibia •Sprites de grande porte A grande maioria dos sprites de grande porte segue um padrão de 64x64 Pixels no eixo de base(chão), é o caso de Pedras, Estátuas, Mesas, e grande parte dos itens que compõe o cenário: 2 - Luz •Direção da Luz Uma das regras mais importantes e obrigatórias: caso seu intuito em fazer sprites seja criar itens para o Tibia: A LUZ VEM DO NOROESTE, mas mesmo assim, ainda existe luz vinda das demais fontes naturais e refletida pelas superfícies. Como no esquema a seguir: Sendo assim, seu sprite recebe luz de todas as direções, mas preferencialmente pelo Noroeste. 3 - Perspectiva •A perspectiva é teoricamente bem simples também, basta você seguir os padrões de formato estabelecidos pela Cipsoft [Art1:1] e desenhar seguindo uma orientação diagonal: Como no esquema: Artigo 2: Características Principais de um Sprite 1- Introdução ao PAINT Bom galera, é fato que muitos de nós já abominaram o PAINT muitas vezes, mas uma prova de que ele é a chave para o sucesso de muitos é que, todo sprite é feito no paint, logo todos os itens mais belos bem desenhados que vocês já viram vieram do mesmo lugar, e esse lugar é o Paint. •Onde está o Paint? O primeiro de tudo é localizar o programa PAINT em seu computador, geralmente ele se encontra no seguinte endereço: Menu Iniciar/Todos os Programas/Acessórios/Paint. •Configurando as dimensões da página Assim que abrir o PAINT, é preciso configurar a página para os padrões do Tibia. Para configurar a página siga o exemplo: IMAGEM/ATRIBUTOS E configure em: 32x32 Pixels para Itens de pequeno e médio porte(carregáveis e outfits/humanóides): 64x64 Pixels Para itens de grande porte: •Principais ferramentas que utilizaremos no paint para fazer Sprites: - Lápis :Usaremos para desenhar e colorir. - Linha : Usaremos para dimensionar sprites(Perspectiva) e algumas vezes na pintura criando linhas. - Conta-gotas : Usaremos na pintura para captura de cores para o lápis. - Recorte Quadrado e Aleatório : Usaremos quando para movimentar o Sprite ou Parte dele ao longo da página - Lupa : Usaremos para aumentar seu sprite em duas, seis, oito e Doze vezes •Criação de um Sprite Certo, finalmente deixar de teorias e vamos colocar a mão na massa. Começaremos desenhando um formato apropriado, como este Tutorial foi feito para um nível Básico e Intermediário de Sprite Art, vamos começar com um formato simples, utilizando a Lupa de aumento em 8x ou 12x. Para ficar mais fácil desenhar os pixels simetricamente, o melhor é Quadricular a página apertando CTRL + G. 8x + [ Ctrl + G ] 12x + [ Ctrl + G ] Para configurar o aumento de 12x é preciso clicar exatamente na linha que limita o quadro de aumentos: Bom, vamos começar com uma espada. Veremos que até o formato mais simples pode ficar muito bom se for bem trabalhado: Formato externo - Sempre Preto - Sempre dentro do espaço exigido pela Cipsoft Formato interno - Sempre usar cores escuras mas Nunca Preto - Dividir bem as partes a serem detalhadas Pintura - A pintura inicial deve ser simples para visualizar como o sprite deve ficar - Feito isso, segue-se para Aprimoramento e Oficina de Pintura ou para o Fireworks. - Aproveite para corrigir os pixels pretos que esqueceu dentro do Sprite ;D Aprimoramento - Se preferir desenhe alguns detalhes, como a divisória da lamina e jóias de enfeite - Feito isso: Sigamos para a Oficina de Pintura! Ou para o Fireworks... Artigo 3: Efeitos gerais - Módulo: Fireworks Bom galera, pra ser sincero com vocês, eu não começaria a editar os efeitos pelo Fireworks, mas não se pode negar o fato de que muitos sprites ficam "bacanas" quando feitos no fireworks, mas na minha opinião, ele deve ser um programa de edições finais...como "escurecer isso aqui e ali" "clarear aqui", "deixar com cores mais vivas lá". Porém muitas vezes as pessoas preferem utilizar o Fireworks ou o Photoshop pra edição de efeitos então vou dar essa opção a vocês. Efeitos Gerais - Magic Wand Tool: Usada para extrair o fundo do sprite, muito usado em fakes e outras edições como efeito de "Transparência": - Blur Tool: Usada pra homogeneizar as cores, deixando-as com tons parecidos. Dando um efeito de Embaçado - Sharpen Tool: Usada principalmente para dar mais vida ao sprite, deixá-lo mais brilhante e com detalhes aparentes. O ruim é que em grande escala pode gerar riscos pretos indesejáveis. - Dodge Tool: Talvez, juntamente com a Burn Tool está seja a ferramenta mais utilizada no Fireworks. Utilizamos Dodge Tool sempre que quisermos clarear um sprite, tornando as cores mais próximas do branco: - Burn Tool: Usada para escurecer seu sprite, muito usado na porção direita dos escudos e outros equipamentos evidenciando a vinda da luz ao noroeste. Por fim, juntando todo nosso trabalho no FireWorks é visível a diferença entre o molde e o sprite final. Basta lembrar que se a luz vem do Noroeste a parte Sudeste fica mais escura em relação a parte voltada para luz porem não fica PRETA já que os raios são refletidos para todas as direções Processo de edição pelo Fireworks: - Dodge Tool para clarear a ponta da lâmina e a lateral voltada para o noroeste. - Burn Tool para escurecer a porção que mais se aproxima do cabo com mais enfoque na lateral direita do sprite - Sharpen Tool para dar vida aos pixels mais iluminados para torná-los conseqüentemente os mais brilhantes. Controle a transmissão da luz pensando nos reflexos da luz e na perda da força da luz ao longo da lâmina, já que onde a luz bate, ela é refletida aos olhos do observador, passando somente uma parte ao resto do sprite. Assim se segue em todos os pontos de luz: •Artigo 4: Efeitos gerais - Módulo: PAINT 1 - Como colorir um sprite Certo galera, acho que finalmente chegamos no meu método pessoal e mais esperado do tutorial(por mim) Daqui para frente abordaremos todo o verdadeiro trabalho de um Spriter de acordo com o meu pensamento, é um método trabalhoso, realmente trabalhoso; mas um método que torna o sprite realmente Tibiano. E realmente bonito. Pintura PAINT x Fireworks Tudo na pintura se baseia na escolha das cores e dos tons, em matéria de sprites não basta somente escolher uma ou duas cores diferentes, colorir um sprite como fizemos na pintura básica [Artigo 2:3] e depois disso apenas usar Blur Tool(Clarear) e Burn Tool(Escurecer) do Fireworks no Sprite. Para nós o Fireworks será uma ferramenta básica de edição. A escolha das cores Bom, como dito anteriormente o mais importante na pintura de um sprite é sua cor e os tons dessa cor. Geralmente usamos tons diferenciados de uma mesma cor para gerar a idéia de sombreamento e luminosidade. A utilização destes tons varia de acordo com três pontos importantes: Material a ser pintado: Metal, Bronze, Tecidos, Marfim, Ouro, Pele. Propagação de luz no material: Alguns materiais como pedras não polidas, troncos e materiais envelhecidos não propagam a luz muito bem devido a manchas e ao não polimento de suas superfícies. Reflexo da luz no Material: Tecidos, Peles, Materiais envelhecidos e pedras não polidas não devem refletir a luz como objetos polidos e bem trabalhados, essa diferença precisa existir. •Oficina de Pintura Bom a Oficina de Pintura foi um projeto meu, seguindo dicas de ótimos spriters do Mundo Fake como o Marcotonio e outros tutoriais, que continuo usando até hoje e que se baseia na reunião de várias cores e seus diferentes tons em volta do sprite a ser pintado. Sendo a pintura do sprite realizada pela captura das cores pré-definidas em Orbs coloridos com o conta-gotas. Tudo na pintura se baseia na escolha das cores e dos tons então Desenhei orbs coloridos para facilitar a captura de cores: Veremos mais pra frente como isso se aplica. •Como fazer um Orb colorido: Na verdade é bem simples quando se tem o Fireworks, basta usar a Dodge Tool para clarear e a Burn Tool para escurecer. Mas basicamente o que se deve fazer é: - Escolher uma cor e fazer um círculo - Clarear a porção noroeste e um pouco da sudeste (para dar idéia de esfera) - Escurecer o meio para intensificar o efeito de esfera e refração da luz. - Pode-se fazer isso pelo paint selecionando uma cor e escolhendo diferentes tons desta cor para colorir o círculo em forma de esfera, mas utilizando as Ferramentas do Fireworks vai lhe poupar muito trabalho. •Seguindo as etapas: Créditos: Redstrike •Como organizar minha Oficina de Pintura: - O primeiro de tudo é você desenhar seu sprite - Quando passar por todas as etapas abordadas no Artigo 2, copie seu sprite e cole em um arquivo PGN ou BPM que você chamará de Oficina de Pintura. - Lá você deve colar também suas cores pré-definidas e deixá-las em torno do sprite. - Se tiver itens antigos com uma boa distribuição de cores e tons copie-os e cole todos na Oficina Em resumo: Créditos ao Leomage pelo axe •Iniciando as etapas da pintura: Aproveitando que estamos trabalhando com uma espada, que é um sprite simples, vamos aproveitar para um mini tutorial de espadas =D Bom, pra começar vamos às regras básicas: Regra número 1 - Toda espada possui uma linha média que definirá o corte da lâmina Regra número 2 - A porção esquerda da linha média recebe mais luz do que a porção da direita. Regra número 3 - A luz não é estática, ela se propaga ao longo de todo sprite porém alguns pontos são menos iluminados como regiões de cavidades na guarda, cabo e principalmente na porção da lâmina que está voltada contra a luz, tendo o corte como barreira. Certo, vamos clarear a mente de vocês •Regra número 1: Linha média que define o corte •Selecionei as cores que usaremos na pintura desses sprite. Certo, a Linha média não é nada mais do que uma reta diagonal formada por 4 ou 5 tons diferentes da mesma cor, logo consultaremos o mesmo Orb colorido no caso...o azul-acinzentado. Também se pode capturar cores de seus antigos sprites ou imagens para possuir uma maior gama de opções. [ virei e pintei de marrom o fundo pra vocês poderem entender melhor com a lamina voltada pra luz ] -Depois pintaremos as laterais médias, lembrando sempre que a luz é dividida no local que eu chamo de Secção Transversal, ou simplesmente "ST" representado pela cor mais escura perto da ponta da linha média. Seguindo o Tutorial do Strad, podemos perceber a diferença das lâminas e saber como nossa linha média deve se comportar. - As laterais médias, são as laterais da linha média e geralmente seguem três regras: •Regra número 1: A ponta da espada recebe mais luz, logo todos os pixels devem ter tons mais claros na ponta caminhando para tons mais escuros conforme se aproximem do cabo. •Regra número 2: A lateral esquerda possui uma propagação maior da luz do que a lateral esquerda, logo os pixels são mais claros em relação a esquerda. •Regra número 3: A Secção Transversal(ST) é de extrema importância para o direcionamento do corte e da luz. No exemplo: E ao final da pintura das laterais médias: Certo, nosso Sprite está começando a ficar bonitinho hehe, agora o próximo passo é pintar as linhas das extremidades. Geralmente essa é a parte que entra o Anti Aliasing, um efeito usado muitas vezes para deixar o Sprite mais redondo( falaremos dele mais pra frente ) mas usaremos ele neste caso para deixar nosso sprite mais ponte agudo! Isso é feito utilizando Cores Escuras com Tons próximas do contorno, que no caso dos itens de Tibia é Preto. Faremos isso deixando alguns pixels mais claros perto do cabo para dar a idéia de uma superfície "Afiada". Como na imagem: - E ao acabar a lâmina partimos para a guarda. Seguindo mais três regras: •Regra número 1: A porção esquerda da guarda recebe mais luz do que a direita. Porém há pouca diferença. •Regra número 2: Cavidades, Jóias, Rachaduras e Cabos com guardas longas recebem sombreamentos à parte da guarda. •Regra número 3: A guarda não segue padrões de Secção transversal. ( pelo menos a maioria delas. ) Então vamos pintar a Guarda! Escolham cores também próximas do preto para o AA mas que mantenham a idéia dourada, reforce isso com cores mais vivas ao longo da guarda, utilizem para isso o Orb Colorido dourado. Exemplo: E por fim temos nosso Sprite totalmente feito pelo PAINT. Parabéns a todos que leram até aqui! •Vejamos uma comparação rápida entre o nosso Sprite inicial e suas edições pelo Paint e pelo Fireworks: 1 - Formato Externo 2 - Formato Interno 3 - Pintura básica 4 - Aprimoramento 5 - Rota pelo Paint 6 - Rota pelo Fireworks Façam seus julgamentos! =D Eu pessoalmente diria que a espada 100% paint ficou muito melhor, talvez clareasse mais a lâmina com o Fireworks ou usando uma técnica que vamos ver no tópico: Sprites brilhantes sem “Sharpen” [Art5:5] *OBS: Com laminas mais curtas em largura é mais fácil fazer AA •Anti-Aliasing e suas aplicações O Anti-Aliasing é uma técnica muito utilizada para "arredondar" o sprite, e quando digo arredondar eu me refiro a Diminuição dos acidentes nas armações dos pixels Isto é: Algo pra disfarçar o fato de todos serem mini-quadradinhos haha. Isso se dá com o clareamento gradual da cor que mais se assemelha ao contorno e ao sprite, muitas vezes cinza, marrom ou até mesmo azul...todos em seus tons mais próximos do preto. •Efeitos de Arredondamento Ao desenhar um círculo branco percebemos que existem muitos pontos brancos perto dos pixels pretos do contorno, isso faz com que o Sprite fique "quadrado" literalmente! haha. A correção desse efeito é fazer um pequeno degradê. •E que parta do preto do contorno até a cor do fundo. Como no nosso caso estamos utilizando a cor branca... Nada melhor do que fazer um degradê do preto para o branco usando a cor CINZA. •Efeitos de Ponta-afiada Para fazer ponta não precisamos desenhá-la no formato mas caso preferirem assim; fiz essa imagem, bem ilustrativa ao meu ver da influencia do AA no Efeito de ponta dos Sprites •Efeitos do AA na Pintura O Anti Aliasing é muito usado (e bem usado) na Alemanha e na Suécia para dar mais vida aos Sprites, evidenciando e enfatizando as cores vibrantes do interior ao invés de deixá-las soltas a mercê somente do contorno. A algum tempo fiz uma espada a qual dei o nome de Arectaris Fiz uma segunda versão dessa Sword utilizando duas técnicas de AA: •A Primeira: no cabo, utilizando um marrom bem escuro para escurecer e um marrom-acinzentado mais claro para manter a cor escura. •A Segunda: na lâmina, utilizando cores bem escuras na ponta, contrastando com a claridade dos últimos pixels e gradualmente escurecendo os pixels para formar uma ponta. Observem atentamente a Ponta dos Sprites: •OBS: Façam espadas com a largura da Arectaris no começo porque é muito complicado fazer AA de lâmina em espadas maiores a melhor que consegui acho que foi essa, preciso treinar e estudar mais isso haha •LISTA DE CORES Vou postar aqui uma série de Orbs de Pintura que estou fazendo, caso algum de vocês não tenha acesso ao Fireworks. •Artigo 5: Efeitos particulares •Jóias de enfeite Fazer jóias são realmente algo bem fácil! Na teoria, tudo que precisamos fazer é desenhar um Orb! Ou seja, uma pedra à esfera, que tenha um ponto luminoso vindo do Noroeste e que possua um ponto de claridade mediana a Sudeste, indicando que a luz passou por Refração e todos os pontos ao redor destes dois pontos de Luz são mais escuros •Refração da Luz •No exemplo Créditos - Redstrike •Cavidades A idéia de cavidades é fácil de ser entendida, vou me aproveitar novamente da Arectaris: Como todos podem ver, desenhei um ruby dentro de uma cavidade na guarda da Arectaris, essa mistura de pixels só foi capaz de passar a idéia de cavidade porque, como dito antes, a luz se propaga ao longo de todo o sprite, vindo do Noroeste. Quando chega à cavidade, a luz não consegue penetrar no buraco e chega até a borda dele ( a sudeste ) que por sua vez reflete a luz de volta à pedra, porém em menos quantidade. Por isso usei cores escuras para simbolizar as bordas internas da cavidade, e as claras, as borda externas: •Resumindo: •1 - A Luz vem do noroeste, atingindo a borda externa com grande intensidade •2 - A luz passa pela cavidade atingindo a segunda borda externa mais com menos intensidade •3 - A luz que ilumina a segunda borda externa é refletida por ela chegando a menor parte ao ruby encontrado na cavidade. Sigam o esquema •Rachaduras Rachaduras podem ser uma coisa bem complicada no começo, mas com o tempo se pega a prática e a coisa fica mais simples. Na verdade em teoria é mesmo muito simples... Basta você: Regra um: Escolher de onde e como será a rachadura Regra dois: Desenhar um risco PRETO na região da rachadura Regra três: De acordo com o fundo, escolher um tom bem claro e iluminar a porção Sudeste da rachadura e um tom bem escuro para iluminar a porção Noroeste <--- mesmo efeito que vimos em Cavidades Passo a passo temos: Créditos: CrazyMapper,Galiant e brenomadlan. Espero que tenham gostado, se gostaram Deem REP + e comentem...1 ponto -
Mega Tutorial ~ Como Jogar Tibia
admleo reagiu a olhonoporco por um tópico no fórum
Primeiro Desculpe se estou no lugar errado ou se tem outro tópico igual. Bom Vamos La. Analisando as buscas que as pessoas fizeram nessa área, encontrei uma série de dúvidas bem básicas sobre o jogo (tipo como fazer o cadastro no Tibia, como criar um personagem, como recuperar energia, como ir para uma nova cidade, etc.). Contudo, em nenhum local da área (até agora) havia uma explicação dos conceitos mais básicos do jogo. Mas de nada adianta explicar coisas mais elaboradas, se a pessoa não souber antes o básico para começar o jogo e seguir em frente; e além disso, esta área tem a intenção de justamente falar sobre qualquer assunto relacionado ao jogo. Dessa forma coisas mais simples não poderiam ser exceção uma vez que ninguém nasce sabendo. Então começaremos uma mini-série de três artigos explicando o básico do básico para se jogar o jogo. Índice: Criando a Conta Os Primeiros Passos Iniciando a Jornada __________ Criando a Conta Nessa parte do tópico, começaremos a série falando sobre o que é o Tibia, como se registrar nele criar personagens e os tipos de mundo de jogo. O que é o Tibia? Criando a conta Vídeo Como criar um personagem Vídeo O Primeiros Passos Introdução A tela inicial Aprendendo as ações básicas Como se movimentar Interagindo com objetos Falando com NPCs A sua primeira tarefa! Palavras finais Isso conclui a série de artigos sobre o básico de como jogar Tibia . Espero ter ajudado a conhecer melhor o jogo, e lembre-se que nunca um ser humano sabe tudo de tudo, sempre há a possibilidade de se aprender coisas novas. Para aprender mais sobre o jogo, você pode por exemplo explorar ele, aprender com amigos que jogam, e consultar outros jogadores, visitar sites sobre Tibia, etc. GOSTOU DA UM REP +1 ponto -
scan do map http://www.virustotal.com/file-scan/report.html?id=a68a422849ec08b054b2fb0a9cc2a14c422dddbcffbad617daae056f4fcf7891-1308176419 scan do distro http://www.virustotal.com/file-scan/report.html?id=feb62950018488c9f92fb2cedc3a3b4ca0196ae680d0f5d6dc309d767719e0b9-13081764631 ponto
-
XaPiNhAl, siga os passos abaixo! 1) Crie um arquivo chamado resets.php na pasta htdocs (Exemplo: C:\xampp\htdocs). - Abra o arquivo resets.php com algum editor de texto. - Copie o código abaixo e cole no arquivo resets.php. <?php # Modifique o valor 10 para o numero de players que aparecerao na lista. $top = 10; # Nao toque em nada daqui em diante. $top = $top > 0 ? $top : 10; $resets = $SQL->query("SELECT `name`,`reset` FROM `players` WHERE `reset` != 0 ORDER BY `reset` DESC LIMIT $top;"); $count = $resets->rowCount(); $main_content = "<br><div class=\"conteudo\" style=\"background-image:url(layouts/tibiacom/images/content/scroll.gif);\">"; $main_content .= "<center><table cellpadding=\"5\" cellspacing=\"1\"><tr><td width=\"500px\" colspan=\"3\" bgcolor=\"#555555\"><font color=\"white\" size=\"3\"><b>TOP Resets</b></font></td></tr>"; if($count == 0){ $main_content .= "<tr><td width=\"250px\" bgcolor=\"#F1E0C6\"><b>Players</b></td></tr>"; $main_content .= "<tr><td width=\"250px\" bgcolor=\"#D4C0A1\">Nenhum player foi resetado.</td></tr>"; }else{ $main_content .= "<tr><td width=\"250px\" bgcolor=\"#F1E0C6\"><b>Player</b></td><td width=\"250px\" bgcolor=\"#F1E0C6\"><b>Resets</b></td></tr>"; foreach($resets as $info){ $main_content .= "<tr><td width=\"250px\" bgcolor=\"#D4C0A1\">{$info["name"]}</td><td width=\"250px\" bgcolor=\"#D4C0A1\">{$info["reset"]}</td></tr>"; } } $main_content .= "</table></center></div>"; ?> Observações: é obrigatório colocar a página no index.php, caso não seja feito, a página não irá funcionar.1 ponto
-
Boooooa! vlw lek me ajudo +REP pa tu1 ponto
-
TA ai pra quem gostou ou não do meu mapa pelomenos eu achei legal vo colocar ai as fotos e o download O MAPA EH ANEXADO PORTANTO SEM VIRUS ;0,mas mesmo assim posto uma scan para a satisfação geral Area de Eventos:http://img24.imageshack.us/i/mapaextremeeventosarea.png/ TPS:http://img852.imageshack.us/i/tpsextreme2.png/ Sala Saffron:http://img31.imageshack.us/i/pokeextreme.png/ SALA DAS QUESTS:http://img837.imageshack.us/i/questspokeextreme.png/ Templo Onde faz a acc:http://img88.imageshack.us/i/pokeextremeee.png/ RELEMBRANDO ESKECI DE FALAR EH DE POKEMON EM GALERA ^^ ;9 BY:[ADM] Lixero Da repu se gostou ;9 custa nda so um click world.rar1 ponto
-
Kreuusot 8.70 Video [Breve P/ Download]
andreluizgalvao reagiu a Kreuus por um tópico no fórum
Kreuus OT http://www.youtube.com/watch?v=Y3GXA1Cznrw http://www.youtube.com/watch?v=Y3GXA1Cznrw Para melhor qualidade veja no youtube O video mostra aonde esta os npcs, mostra a cidade e o sistema de montaria comprada no NPC Eu abri um Test serv via hamachi se alguem quise ajuda a testa e ganha o nome no topico com tester so chama msn ou skype Skype: Kreuus MSN: KreuusOT@hotmail.com1 ponto -
Sistema De Novos Items
aspratextibia reagiu a Sakegari por um tópico no fórum
Muito bom esse Sistema, Parabéns. REP+1 ponto -
Acc Login
williampasqualini reagiu a AlexxNica por um tópico no fórum
Rexis, siga os passos abaixo! 1) Abra o arquivo accountmanagement.php, localizado na pasta htdocs (Exemplo: C:\xampp\htdocs). - Dê CTRL+F e procure por: - Troque o código citado acima por este(os números em negrito são a quantidade de caracteres permitidos):1 ponto -
Configurar Dlink
cordeiroyuri reagiu a Secular por uma questão
TUTORIAL ESPECÍFICO DE SEU MODEM Abra um web browser como o Internet Explorer ou Firefox. Digite o endereço IP interno do seu roteador na barra de endereços do seu navegador. Na foto acima, da barra de endereço tem http://www.google.com nele. Basta substituir tudo isso com o endereço IP interno do seu roteador. Por padrão o endereço IP deve ser definido como 192.168.0.1. Você deverá ver uma caixa de perguntar-lhe pelo seu nome de usuário e senha. Digite seu nome de usuário e senha agora. Por padrão o usuário é admin e a senha é em branco ou admin. Clique no botão Ok botão para fazer logon no seu roteador. Clique no botão Avançado botão na parte superior da página. O menu à esquerda deve mudar. Neste novo menu, clique em Virtual Server . Vamos listar uma série de linhas aqui que vai mostrar exatamente como encaminhar as portas que você precisa para avançar. Tibia exige que você encaminhe as portas 7171. Vá em frente e digite as configurações mostradas acima para o Virtual Server menu e clique em Aplicar . E é isso! Está feito! REP + Abraços.1 ponto -
Compilar Distro Para 64 Bits
Caronte reagiu a Gabriel Couto por um tópico no fórum
Formate melhor, tá cheio de erro de português, sua proposta para o tutorial não é bem vista dessa maneira. Vá em Formatação de um Bom Tutorial. Coloque as imagens melhor, à cada passo, eu não entendi nada no tutorial. Reprovado. Não tá bom.1 ponto -
New Naruto V3
MorreuQuePena reagiu a syshuy por um tópico no fórum
Blz dexa eu procura o site quando eu achar eu edito client gostou ? rep + a1 ponto