Oneshot 732 Postado Julho 22, 2012 Share Postado Julho 22, 2012 (editado) OUTFITS Atributos e Configurações Olá, pessoal.Muitas pessoas não sabem, mas você pode adicionar vários bônus às outfits diretamente pelo outfits.xml, sem precisar de nenhum creaturescript que eventualmente possa dar lag em um servidor com muitos jogadores.Com este tutorial, você aprenderá a configurar vários tipos de bônus e até especificar se são necessários addons para ativar esses bônus.Para começar, vou colar abaixo o conteúdo de um outfits.xml do The Forgotten Server trunk.r3884 (0.4.0), vamos trabalhar em cima dele: <?xml version="1.0"?> <outfits> <outfit id="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> <outfit id="2"> <list gender="0" lookType="137" name="Hunter"/> <list gender="1" lookType="129" name="Hunter"/> </outfit> <outfit id="3"> <list gender="0" lookType="138" name="Mage"/> <list gender="1" lookType="130" name="Mage"/> </outfit> <outfit id="4"> <list gender="0" lookType="139" name="Knight"/> <list gender="1" lookType="131" name="Knight"/> </outfit> <outfit id="5" premium="yes"> <list gender="0" lookType="140" name="Noblewoman"/> <list gender="1" lookType="132" name="Nobleman"/> </outfit> <outfit id="6" premium="yes"> <list gender="0" lookType="141" name="Summoner"/> <list gender="1" lookType="133" name="Summoner"/> </outfit> <outfit id="7" premium="yes"> <list gender="0" lookType="142" name="Warrior"/> <list gender="1" lookType="134" name="Warrior"/> </outfit> <outfit id="8" premium="yes"> <list gender="0" lookType="147" name="Barbarian"/> <list gender="1" lookType="143" name="Barbarian"/> </outfit> <outfit id="9" premium="yes"> <list gender="0" lookType="148" name="Druid"/> <list gender="1" lookType="144" name="Druid"/> </outfit> <outfit id="10" premium="yes"> <list gender="0" lookType="149" name="Wizard"/> <list gender="1" lookType="145" name="Wizard"/> </outfit> <outfit id="11" premium="yes"> <list gender="0" lookType="150" name="Oriental"/> <list gender="1" lookType="146" name="Oriental"/> </outfit> <outfit id="12" premium="yes" default="0"> <list gender="0" lookType="155" name="Pirate"/> <list gender="1" lookType="151" name="Pirate"/> </outfit> <outfit id="13" premium="yes" default="0"> <list gender="0" lookType="156" name="Assassin"/> <list gender="1" lookType="152" name="Assassin"/> </outfit> <outfit id="14" premium="yes" default="0"> <list gender="0" lookType="157" name="Beggar"/> <list gender="1" lookType="153" name="Beggar"/> </outfit> <outfit id="15" premium="yes" default="0"> <list gender="0" lookType="158" name="Shaman"/> <list gender="1" lookType="154" name="Shaman"/> </outfit> <outfit id="16" premium="yes" default="0"> <list gender="0" lookType="252" name="Norsewoman"/> <list gender="1" lookType="251" name="Norseman"/> </outfit> <outfit id="17" premium="yes" default="0"> <list gender="0" lookType="269" name="Nightmare"/> <list gender="1" lookType="268" name="Nightmare"/> </outfit> <outfit id="18" premium="yes" default="0"> <list gender="0" lookType="270" name="Jester"/> <list gender="1" lookType="273" name="Jester"/> </outfit> <outfit id="19" premium="yes" default="0"> <list gender="0" lookType="279" name="Brotherhood"/> <list gender="1" lookType="278" name="Brotherhood"/> </outfit> <outfit id="20" premium="yes" default="0"> <list gender="0" lookType="288" name="Demonhunter"/> <list gender="1" lookType="289" name="Demonhunter"/> </outfit> <outfit id="21" premium="yes" default="0"> <list gender="0" lookType="324" name="Yalaharian"/> <list gender="1" lookType="325" name="Yalaharian"/> </outfit> <outfit id="22" default="0"> <list gender="0" lookType="336" name="Warmaster"/> <list gender="1" lookType="335" name="Warmaster"/> </outfit> <outfit id="23" premium="yes" default="0"> <list gender="0" lookType="366" name="Wayfarer"/> <list gender="1" lookType="367" name="Wayfarer"/> </outfit> <outfit id="24" premium="yes" default="0"> <list gender="0" lookType="329" name="Wedding"/> <list gender="1" lookType="328" name="Wedding"/> </outfit> </outfits> [/code] [font=verdana,geneva,sans-serif]Existem diferentes tipos de atributos que você pode colocar na sua outfit, por exemplo, você pode colocar para quando um jogador estiver usando[b] X[/b] outfit, ele receba uma certa chance de refletir danos de um certo elemento. Vamos aprender abaixo a configuração de atributos do jogador.[/font] [font=verdana,geneva,sans-serif][hr][/font] [font=verdana,geneva,sans-serif]Para configurar atributos é muito simples, destacarei a outfit [b]Citizen[/b] para esse exemplo:[/font] <outfit id="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> Suponhamos que eu queira que quando um jogador estiver usando a outfit Citizen, ele receba speed +10 e recupere 30 de HP a cada 5 segundos, basta adicionar isso: <outfit id="1"> <list gender="0" lookType="136" name="Citizen" healthGain="30" healthTicks="5" speed="10" /> <list gender="1" lookType="128" name="Citizen" healthGain="30" healthTicks="5" speed="10" /> </outfit> Você pode diferenciar os tipos de bônus primários pelo sexo do jogador. Os bônus primários disponíveis são estes abaixo: manaShield invisible healthGain healthTicks manaGain manaTicks speed Agora existem bônus secundários que é necessária uma pequena edição na estrutura da configuração da outfit, vejamos abaixo: <outfit id="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> Estes bônus secundários variam desde pontos fixos em skills até chance de refletir algo ou absorver. Só que para que eles funcionem corretamente, você precisa "abrir" a configuração da outfit. Por exemplo, a outfit Citizen nos dará +50 de HPmáx e +1 em todas as skills de combate corporal. Vejamos: <outfit id="1"> <list gender="0" lookType="136" name="Citizen"> <stats maxHealth="50"/> <skills melee="1"/> </list> <list gender="1" lookType="128" name="Citizen"> <stats maxHealth="50"/> <skills melee="1"/> </list> </outfit> Veja que literalmente eu abri a outfit Citizen em sub-listas declarando atributos diferentes para elas, segue abaixo uma pequena lista de cada atributo e em que sub-lista ele deve ser declarado:stats maxHealth maxMana soul level magLevel || magicLevel maxHealthPercent maxManaPercent soulPercent levelPercent magLevelPercent || magicLevelPercent skills fist club sword axe distance || dist shielding || shield fishing || fish melee weapon fistPercent clubPercent swordPercent axePercent distancePercent || distPercent shieldingPercent || shieldPercent fishingPercent || fishPercent meleePercent weaponPercent || weaponsPercent Lembra que no começo desse tutorial, eu disse que era possível configurar chance de reflexão e absorção para as outfits? Pois é, é possível sim. Vamos pegar um exemplo diferente agora, a outfit Wizard. <outfit id="10" premium="yes"> <list gender="0" lookType="149" name="Wizard"/> <list gender="1" lookType="145" name="Wizard"/> </outfit> Vamos dizer que a outfit Wizard com addons completos dará a chance de 10% de refletir 25% do dano feito por elementos (Fire, Earth, Ice, Energy). Para fazer isso, é o mesmo esquema de stats e skills, só que o nome da sub-lista deve ser reflect ou absorb. Dependendo do que você quer que a outfit faça, refletir ou absorver. <outfit id="10" premium="yes"> <list gender="0" lookType="149" name="Wizard"> <reflect percentElements="25" chanceElements="10"/> </list> <list gender="1" lookType="145" name="Wizard"> <reflect percentElements="25" chanceElements="10"/> </list> </outfit> Veja abaixo a lista dos possíveis atributos para reflect e absorb: percentAll percentElements percentMagic percentEnergy percentFire percentPoison || percentEarth percentIce percentHoly percentDeath percentLifeDrain percentManaDrain percentDrown percentPhysical percentHealing percentUndefined chanceAll chanceElements chanceMagic chanceEnergy chanceFire chancePoison || chanceEarth chanceIce chanceHoly chanceDeath chanceLifeDrain chanceManaDrain chanceDrown chancePhysical chanceHealing chanceUndefined Por último, você pode definir quando esses bônus são dados, seja quando o jogador está utilizando o primeiro addon, o segundo, qualquer um dos dois ou ambos. O atributo para isso é requirement. <outfit id="10" premium="yes"> <list gender="0" lookType="149" name="Wizard" requirement="any"> <reflect percentElements="25" chanceElements="10"/> </list> <list gender="1" lookType="145" name="Wizard" requirement="any"> <reflect percentElements="25" chanceElements="10"/> </list> </outfit> first second any both Existem alguns atributos que manipulam se o jogador pode usar a outfit, o mais conhecido deles é o premium que só permite o uso da outfit a jogadores premium.Mas muitos não conheçam os atributos quest, storageId e storageValue que torna possível dar outfits em quests, igual acontece no Tibia.Para isso, pegaremos qualquer outfit. <outfit id="20" premium="yes" default="0"> <list gender="0" lookType="288" name="Demonhunter"/> <list gender="1" lookType="289" name="Demonhunter"/> </outfit> Quando você usa o atributo quest com o valor igual a uma storage do servidor, a outfit só poderá ser usada se a storage tiver valor igual a 1. Por exemplo: <outfit id="20" premium="yes" quest="2005" default="0"> <list gender="0" lookType="288" name="Demonhunter"/> <list gender="1" lookType="289" name="Demonhunter"/> </outfit> Se a storage 2005 tiver valor igual a 1, então eu poderei usar a outfit Demonhunter. Mas e se eu estou trabalhando com uma grande quest que o valor final da storage é 3 e não 1? Por isso que existem os atributos storageId e storageValue. <outfit id="20" premium="yes" storageId="2005" storageValue="3" default="0"> <list gender="0" lookType="288" name="Demonhunter"/> <list gender="1" lookType="289" name="Demonhunter"/> </outfit> Bom, isso é tudo.Qualquer dúvida não deixe de postar no tópico.Abração \o/ Editado Julho 7, 2017 por Mudrock Link para o comentário Compartilhar em outros sites More sharing options...
fredpadua 65 Postado Julho 22, 2012 Share Postado Julho 22, 2012 Muito bom cara. Link para o comentário Compartilhar em outros sites More sharing options...
Fir3element 185 Postado Julho 22, 2012 Share Postado Julho 22, 2012 Não sabia q existia isso Se fosse pra fazer tipo um healthgain, eu iria usar algum script e.e rep+ Link para o comentário Compartilhar em outros sites More sharing options...
Beeki 284 Postado Julho 22, 2012 Share Postado Julho 22, 2012 Não sabia q existia isso Se fosse pra fazer tipo um healthgain, eu iria usar algum script e.e rep+ Isso aê vem na pasta docs nas revisões do tfs mano ¬¬ Link para o comentário Compartilhar em outros sites More sharing options...
Oneshot 732 Postado Julho 22, 2012 Autor Share Postado Julho 22, 2012 (editado) Compartilhe mais da sua sabedoria, Beeki. Se você tivesse falado antes ou feito um tutorial igual, eu não teria que ficar lendo o outfits.cpp para fazer um desse tema. Seria muito interessante que você procure fazer a lição de casa antes de vir desmerecer o trabalho dos outros. Editado Julho 22, 2012 por Oneshot Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Agosto 8, 2012 Share Postado Agosto 8, 2012 Muito bom. Tutorial aprovado. Link para o comentário Compartilhar em outros sites More sharing options...
FeIipeToNight 0 Postado Outubro 20, 2012 Share Postado Outubro 20, 2012 Queria saber se tem como fazer o addon dar um atributo apenas para uma vocação por exemplo: um sorcerer colocou um mage full e para ele vai dar 5 ml, caso qualquer outra vocação coloque não vai dar nada, tem como? Link para o comentário Compartilhar em outros sites More sharing options...
Piabeta Kun 359 Postado Outubro 23, 2012 Share Postado Outubro 23, 2012 Merece fixo muito bem explicado! Parabéns pelo conteúdo! Link para o comentário Compartilhar em outros sites More sharing options...
Zaroth1 1 Postado Janeiro 15, 2013 Share Postado Janeiro 15, 2013 Ótima explicação, ótimo tutorial, está de parabéns! Link para o comentário Compartilhar em outros sites More sharing options...
Voxnot 1 Postado Maio 28, 2013 Share Postado Maio 28, 2013 Como faço para que o jogador tenha acesso a apenas um outfit específico dentro do jogo, separando as classes. Por exemplo: Um sorcerer so poder utilizar a roupa do ferumbras. Um paladino só pode usar uma roupa de elfo. E com isso excluir as outras opções de mudar de outfit dentro do jogo, deixando o jogador engessado com apenas uma outfit. Você manja? Link para o comentário Compartilhar em outros sites More sharing options...
iagonp 2 Postado Novembro 19, 2015 Share Postado Novembro 19, 2015 Desculpem reviver o tópico, mais como fazer isso no TFS 1.0 versão 10.82? Seria possível? Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados