Ir para conteúdo

Outfits


Oneshot

Posts Recomendados

 

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 por Mudrock
Link para o comentário
Compartilhar em outros sites

Não sabia q existia isso o.O

 

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

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 por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
  • 2 months later...
  • 2 months later...
  • 4 months later...

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

  • 2 years later...
×
×
  • Criar Novo...