Jump to content

Recommended Posts

Posted

Part 1. Introduction:

 

Let's begin with what such XML? It is the text format intended for storage of the structured data, for information interchange between programs, and also for creation on its basis of more specialised languages of a marking (for example, XHTML), sometimes named dictionaries.

The first line of the XML-document is called as announcement XML is the unessential line specifying the version of standard XML (usually it is 1.0 => the Example:), also the coding of symbols and external dependences here can be specified. An example: UTF-8 "standalone ="yes"?>

The specification demands, that processors XML necessarily supported Junikod-codings UTF-8 and UTF-16. Admit admissible, are supported and other codings are widely used also.

As in XML there is a possibility of addition of the comment. The comment can be placed in any place of a tree. XML comments take places in pair tags. Two signs a hyphen (-) the Example: <! Is a comment-> cannot be applied in any part in the comment.

 

But we will not go deep into all features XML, us the part which concerns Lineage 2 XML in server Lineage 2 interests only it is applied to the description the stats of weapon, the reservation, skills etc. For the weapon for example parametres phys. And the magician. Attacks, for the reservation - protection, for skills - duration of action, force, effect etc. And for example "servername.xml" are stored in a file names of servers by default. These names can be easily changed. But besides changes on a server part changes from outside the client are necessary also (from outside the client it is necessary to change a file "servername-e.dat". Change *.dat files of the client can by means of special programs - L2Dat_EncDec and L2 FileEdit. In the following part I will learn you to change stat of items.

 

Part 2. Change Items stats.

All XML files with stats, skills are , in serverpacks of Lineage 2, here: \gameserver\data\stats

 

For a bright example we take Item  Shirt (Is on such way: gameserver\data\stats\armor\0000-0099.xml). It is imperceptible NG a item of world Lineage 2. On its example I will explain that, where and when it is necessary to change. Here fragment XML of a code:

<item id = ' 21 ' name = "shirt">

 

<for>

<cond><player race="Human"/></cond>

<add stat='pDef' order='0x10' val='36'>

<target kind="skeleton">

</add>

</for>

</item>

 

The first line is necessary only for language XML, pass it.

 

The second line specifies ID things and its name (they should coincide with same in a DB).

 

Then there are some conditions (condition) for acceptance by a thing of changes for stats (when the weapon is dressed or removed).

Such conditions there can be from a zero, one, two, or more. The condition is concluded in a tag <for>.

 

The condition tag consists of the condition which it is necessary to check up on the player and effect on stats of the player. In  an example a condition effect addition is race Human (if not Human - the effect does not join). The condition is concluded in a tag <cond>, and it is not obligatory. If conditions are not specified - all players (which dress this reservation \weapon) will gain effect from it.

 

The effect is an addition or multiplication stats of the player on the set quantity. In an example stat ' pDef ' (power defence) and its value 36. It means that to power defence the player value 36 will be added. I will describe ' order ' more low.

 

In the end, even if function it is connected to the player, it is necessary that there was a condition when it will work. In our example the condition is that: pDef it will be increased only when the purpose of the player - attack skeleton.

 

And again: there can be a set of conditions <for>, they can have a condition attached to the player <cond>, and each of them can influence on one or the several stat of the player (<add>, <sub>, <mul>, <div>), and every stat will be added only in that case when the condition will be executed.

 

Certainly, all it is not obligatory. For the majority of subjects of the reservation and the weapon you will have something idle time similar to it:

Code:

 

<item id = ' 21 ' name = "shirt">

<for>

<add stat ='pDef ' order = ' 0x10 ' val = ' 36 '/>

</for>

</item>

That only adds 36 points to power defence for each player which will dress her, without any conditions.

 

Tag <add/> means addition and is a variable. On its place can as to be, for example, <sub/>, <set/>, <mul/>, <enchant/>

 

And so. What mean these values?

 

[color=black]<add/>[/color] – addition stats. That is if you dress a thing, your stats will increase. Value order will be 0×10. <add val = ' 100 ′ order = »0×10 ″ stat ='pDef '/>

 

The given code means that at clothing of a item your stat will increase 100 (in this case  will increase p. Def).

 

2. [color=black]<sub/>[/color] – subtraction  of stats. That is if you dress a thing, your stat will decrease. order as – 0×10. <sub val = ' 100 ′ order = »0×10 ″ stat ='mDef '/>. 

The given code means that at clothing of a item 100 units will be taken away from your stat (in this case M. Def).

 

3. [color=black]<set/>[/color] – appoints to you strict value of stat. That is if you dress a thing with value 20 that stat but which this value influences will be equal 20. Order 0×08. <set val = ' 100 ′ order = »0×08 ″ stat ='pDef '/>.

The given code means that at clothing of a thing you have 100 units of stat (in this case P. Def)

 

4. <mul/> - multiplication of stats. That is if you dress a thing, your stat will be increased. Order 0x30.

 

<mul val = ' 100 ' order = "0x10" stat ='mDef '/>

 

The given code means that at clothing of a thing value of stat will be increased on 100 (in this case M. Def).

 

5. <enchant/> - shows, on how many will increase stat at enchant for +1. Order 0x0C.

 

<enchant val = ' 100 ' order = "0x0C" stat ='pDef '/>

 

The given code means that at thing sharpening on 1 your stat(in this case P. Def) will increase on 100.

 

The table of values "order" is more low resulted:

 

0x08 - set

0x10 - add/sub (the weapon, the reservation, costume jewellery) and (STR, CON, DEX, INT, WIT, MEN)

0x20 - it is not necessary

0x30 - mul/div (masteries, buffs, debuffs, SA (special possibilities of the weapon), reservation bonuses)

0x40 - add/sub (masteries, buffs, debuffs, SA (special possibilities of the weapon))

0x50,0x60 - it is not necessary

0x0C - enchant

 

0x08 - set

 

0x10 - add/sub (the weapon, the reservation, costume jewellery) and (STR, CON, DEX, INT, WIT, MEN)

 

0x20 - it is not necessary

 

0x30 - mul/div (masteries, buffs, debuffs, SA (special possibilities of the weapon), reservation bonuses)

 

0x40 - add/sub (masteries, buffs, debuffs, SA (special possibilities of the weapon))

 

0x50,0x60 - it is not necessary

 

0x0C - enchant

 

Part 3. Change skills:

 

The biggest part of my article :) I Will begin with values for you should know that change.

 

Change of maximum quantity HP - maxHp

Change of maximum quantity CP - maxCp

Change of maximum quantity MP - maxMp

Regeneration НР - regHp

Regeneration СР - regCp

Regeneration МР - regMp

Efficiency is sickly - gainHp

Ability it is sickly - giveHp

Bonus it is sickly - bonusHp

Physical protection - pDef

Magic protection - mDef

Physical attack - pAtk

Magic attack - mAtk

Speed of physical attack - pAtkSpd

Speed of magic attack - mAtkSpd

Speed of recoil - mReuse

Protection by a board - sDef

Corner of protection by a board - shieldDefAngle

Critical blow - cAtk

Increase to critical blow - cAtkAdd

Phys.loss in pvp (for example for Duel Might) - pvpPhysDmg

The magician. oss - pvpMagicalDmg

Loss with skill - pvpPhysSkillsDmg

Chance of blocking by a board - rShld

Chance crit - rCrit

Chance Blow - blowRate

Chance Lethal - lethalRate

The magician.crit. Chance - mCritRate (mCrit does not work!!)

EXP, SP chance - rExp

Cancel - cancel

Accuracy - accCombat

Cover zone Phys. Attacks - pAtkRange (for fighters)

Cover zone the magician. Attacks - mAtkRange (for mages)

Angle of attack (only for soldiers) - pAtkAngle

Quantity attacked - atkCountMax

Recoil Phys.skill - atkReuse

Speed of run - runSpd

Speed of walking - walkSpd

 

STR - STR

DEX - DEX

WIT - WIT

INT - INT

MEN - MEN

 

Vulnerability

 

Aggression - aggressionVuln

Bleeding - bleedVuln

Poison - poisonVuln

Stun - stunVuln

Paralyze - paralyzeVuln

Keeping spells - rootVuln

Dream - sleepVuln

Movement - movementVuln

Fire - fireVuln

Wind - windVuln

Water - waterVuln

The Earth - earthVuln

Sacred attacks - holyVuln

Dark attacks - darkVuln

Resist to cancel - cancelVuln

Debuff - debuffVuln

resist to crit - critVuln

 

Ressists against the weapon (here I think the description it is not necessary)

 

noneWpnVuln

swordWpnVuln

bluntWpnVuln

daggerWpnVuln

bowWpnVuln

crossbowWpnVuln

poleWpnVuln

etcWpnVuln

fistWpnVuln

dualWpnVuln

dualFistWpnVuln

bigSwordWpnVuln

 

Reflection

 

Percent of a reflected loss - reflectDam (pay attention! not reflectDmg!! reflectDam)

Percent of a disseminated loss - absorbDam

Percent of a transferable loss - transDam

Reflexion the magician. skills - reflectSkillMagic

Reflexion Phys. skills - reflectSkillPhysic

 

Another (for an example):

 

Attack to giants - pAtk-giants

Protection on to indulge - pDef-undead

Attack to animals - pAtk-animals

Protection on monsters - pDef-monsters

Stock limit - inventoryLimit

Limit ВХ - whLimit

Freight a limit - FreightLimit

Sale limit. - PrivateSellLimit

Consumption МР Phys. skills - PhysicalMpConsumeRate

Consumption МР the magician. skills - MagicalMpConsumeRate

Consumption МР Dance - DanceMpConsumeRate

Consumption НР - HpConsumeRate

Consumption МР - MpConsume

Consumption soulshots - soulShotCount

Skill Мastery - skillMastery

Stay time under water - breath

 

1. target - Tag which shows on whom will undertake target that is visible from the name. Accepts following values:

 

TARGET_SELF - Designates that skill use it will be exclusive on its owner (self buff  type Battle Roar or War Cry)

TARGET_NONE - The purpose not visible

TARGET_ONE - Designates that the purpose of your skills - that who is in target

TARGET_AREA - Designates that skill will be mass

TARGET_AGGREMENT - Designates that the purpose will be the one who attacks you

 

2. skilltype - Tag, specifying in type skill (Buff, Debuff)

Accepts following values:

BUFF -  (has positive influence)

DEBUFF -  (has negative influence)

 

3. operatetype - this Tag serves for type definition of skill (active or passive)

OP_ACTIVE - Active skill, can be used the player

OP_PASSIVE - Passive skill, skill with such operateType cannot be used (operates always)

 

It were the obligatory variables used in skills. Now we will pass to the rests:

 

power - skill force

-hitTime - speed. For buff it is speed of reading of a spell, for Phys. skill - speed of attack

-reuseDelay - recoil of skill

-hpconsume, mpconsume - consumption МР, НР

-castRange is a range of this or that use skill (distance)

-isMagic,

isDebuff, isBuff are directing tags, can matter "true" and"false". For example, isBuff = true (it means that skill is buff type)

-effectRange - action radius (for mass skill)

Now I will tell to you about value tag in skills.

 

Tag

In skills  Lineage 2 meets very often. Usually given tag

It is used for "addition of difficult actions" to skill. If skill

Has a difficult variant of realisation that usually in Tag add some

Separate values which are realised in a  java server Lineage.

The most important tag for use here is.

Let's give an example uses tag:

<for>

<effect name="Type" val="value" time="Time of action" stackOrder="variable" stackType="variable">

</effect>

</for>

</skill>

 

That this means:

 

name is a type of effect

val - Value of effect. For debuff - chance of passage, for fighting skills - force.

time - time of action of effect

StackOrder and stackType are values already explaned in given skill. order both type or values.

 

I think with skills we have understood, now we will pass to zones.

 

Part 4. Zones

 

<zone id = "ID zones" type = "type" shape = "kind" minZ = "minimum Z co-ordinate" maxZ = "maximum Z co-ordinate">

 

<! - the comment->

 

</zone>

 

Let's pass on values:

 

id - the zone identifier.

type - zone type (town, arena, jailzone). For example:

Town - a peace zone (city)

Arena - a fighting zone (PVP)

JailZone - a zone. Simply zone (excuse for allegory:)). On another - prison. In it conversation and a teleport are forbidden.

shape is a form or a zone kind. Can be two types:

-nPoly

-Cupoid.

minZ is is minimum admissible co-ordinate of height (z) in the given zone.

maxZ is as much as possible admissible co-ordinate of height (z) in a zone.

minZ and maxZ are used for passage avoidance through structures, failures under them etc.

The zone can set a name:

 

As inside tags the description of points "respawn" of character  in them is used.

Let's give an example: Look a file zone.xml in the serverpack, for an example.

 

<stat name = "spawnX" val = "X co-ordinate"/>

<stat name = "spawnY" val = "Y co-ordinate"/>

<stat name = "spawnZ" val = "Z co-ordinate"/>

 

These co-ordinates show where there will be respawnd a player being in a zone.

 

I Hope I have helped U A little with It And Sorry For My English...

 

Credits: worldonline

  • Vision locked this topic
Guest
This topic is now closed to further replies.


  • Posts

    • I'm not going to name my clients' domains, but you're coming across as a liar. You can't prove anything you said... The source code is here. If there's a crash like you say, show it to people.   Best of luck 🙂
    • You keep avoiding again and pretending to be something you are not. Give me a server that works with your files and i will make a special video for you. I will show how when the server is online it goes down. What are you afraid of? 🙂 Come on, I’m waiting.  
    • General Trackers :   IPTorrents invite IPTorrents account 1 tb TorrentLeech invite Torrentleech account 1 tb buffer  InTheShaDow ( ITS ) account Acid-lounge invite Torrentday invite Crnaberza account Abn.Lol account Limit-of-eden account Norbits account Xspeeds account Xspeeds invite Bemaniso invite Wigornot account Bithumen invite Filelist account Funfile invite AvistaZ invite Potuk.net invite ResurrectThe.Net invite GrabThe.Info invite Greek-Team invite LinkoManija invite Fano.in account tracker.czech-server.com Speed.cd invite Arab-torrents.net account Arabscene.me account Scenetime account 4thd.xyz invite Btarg.com.ar account Dedbit invite Estone.cc account Speedapp invite Finvip invite Fluxzone account GigaTorrents account Gimmepeers account Haidan.video invite Mojblink account Mycarpathians invite Newinsane.info account Oscarworld.xyz account Peers.FM invite Pt.msg.vg account Ransackedcrew account Redemption invite Scene-rush account Seedfile.io invite Teracod invite Torrent.ai account Torrentmasters invite Ttsweb invite X-files invite X-ite invite Ncore account TorrentHR account Rptorrents account BwTorrents account Superbits invite Krazyzone account Immortalseed account Tntracker invite Pt.eastgame.org account Bitturk account Rstorrent account Tracker.btnext invite Torrent-turk.de account BeiTai.PT account Pt.keepfrds account 52pt.site account Pthome account Torrentseeds account Aystorrent account Blues-brothers.biz invite Divteam account Thesceneplace invite CinemaMovies.pl account Brasiltracker account Patiodebutacas account Newheaven.nl account  Swarmazon.club invite Bc-reloaded account Crazyspirits account Silentground invite Omg.wtftrackr invite Milkie.cc invite Breathetheword invite Madsrevolution account Chilebt account Yubraca account Uniongang.tv account Frboard account Exvagos account Diablotorrent account Microbit account Carp-hunter.hu account Majomparade.eu account Theshinning.me account Youiv.info account Dragonworld-reloaded account Sharewood.tv account Partis.si account Digitalcore.club invite Fuzer.me account R3vuk.wtf invite Ztracker account 1 tb buffer 3changtrai account Best-core.info account Bitsite.us account Eliteunitedcrew invite Exitorrent.org account Tophos invite Torrent.lt account Sktorrent.eu account Oshen account Blackhattorrent account Pirata.digital account Esharenet account Ohmenarikgi.la Pirate-share account Immortuos account Kiesbits account Cliente.amigos-share.club account Broadcity invite Ilovetorzz account Torrentbytes account Polishsource account Portugas invite Shareisland account ArabaFenice account Hudbt.hust.edu.cn account Audiences account Nanyangpt account Pt.sjtu.edu.cn account Pt.zhixing.bjtu.edu.cn account Byr.pt invite Ptfiles invite Red-bits account Pt.hdpost.top account Irrenhaus.dyndns.dk (NewPropaganda) account Mnvv2.info (MaxNewVision V2) account 1ptba.com account Spidertk.top account Film-paleis account Generation-free account Aftershock-tracker account Twilightsdreams account Back-ups.me invite Sor-next.tk ( Spirit Of Revolution ) account Tfa.tf ( The Falling Angels ) account Hdmayi account S-f-p.dyndns.dk ( Share Friends Projekt ) account Unlimitz.biz account Pttime account St-tracker.eu account New-retro.eu account Zbbit account Tigers-dl.net account Jptvts.us account Lat-team account Club.hares.top account Falkonvision-team account Concen account Drugari account T.ceskeforum account Peeratiko.org account Zamunda.se account Central-torrent.eu account h-o-d.org account Torrentleech.pl account Demonoid invite Lst.gg account Fakedoor.store account LaidBackManor account Vrbsharezone.co.uk invite Torrenteros account Arenaelite account Datascene account Tracker.0day.community Tapochek.net invite Ptchina invite Lesaloon account Exyusubs account Therebels.tv account Ubits.club invite Zmpt.cc account Turktorrent.us account Dasunerwarte account Hawke.uno account Monikadesign account Fearnopeer account Alpharatio account Wukongwendao.top account Chinapyg account Azusa.wiki account Yggtorrent.top account Torrentdd account Cyanbug.net invite Hhanclub.top account Wintersakura.net account Xthor account Tctg.pm account Finelite invite Agsvpt.com account Pt.0ff.cc invite Qingwapt.com account Xingtan.one account Ptcafe.club invite W-o-t.pro account Coastal-crew.bounceme.net account Darkpeers.org account Pianyuan.org account Seedpool.org  account Tempelbox account Pt.itzmx.com account Itatorrents.xyz  account Letseed.org account The-new-fun.com  account Malayabits.cc account Trellas.me account Yu-scene.net account Futuretorrent.org account Bitpt.cn account Tocashare.biz  account Videoteka.org  account White-angel.hu account Xbytesv2.li account Torr9  account Desitorrents account Okpt.net account Samaritano.cc account Polishtorrent.top  account C411.org account Bigcore.eu account BJ-Share.info account Infinitylibrary.net account Beload.org account Emuwarez.com account Yhpp.cc account Funsharing ( FSC ) account Rastastugan account   Movies Trackers :   Secret-cinema account Anthelion account Pixelhd account Cinemageddon account Cinemaz account Retroflix account Classix-unlimited - invite Movie-Torrentz (m2g.link) invite Punck-tracker.net account Tmghub account Cathode-ray.tube account Greatposterwall account Arabicsource.net account Upload.cx account Crabpt.vip invite Onlyencodes.cc account Exyusubs account Hellashut.net invite Nordichd.sytes.net invite Locadora.cc account HD Trackers :   Blutopia buffered account Hd-olimpo buffered account Hdf.world account Torrentland.li account HdSky account Hdchina account Chdbits account Totheglory account Hdroute account Hdhome account TorrentCCF aka et8.org account 3DTorrents invite HD-Torrents account Bit-HDTV account HDME.eu invite Hdarea.co account Asiancinema.me account JoyHD invite HDSpace invite CrazyHD invite Bluebird-hd invite Htpt.cc account Hdtime invite Ourbits.club account Hd4fans account Siambit account Privatehd account Springsunday account Tjupt account Hdcity.leniter invite Ccfbits account Discfan account Pt.btschool.club account Ptsbao.club invite Hdzone.me invite Danishbytes account Zonaq.pw account Tracker.tekno3d account Arabp2p account Hd-united account Reelflix.xyz account Hdatmos.club account Anasch.cc invite Tigris-t account Nethd.org account Hd.ai invite Hitpt.com account Hdmonkey account Dragonhd.xyz account Hdclub.eu account Forum.bluraycd.com account Carpt account Hdfun.me invite Pt.hdupt invite Puntotorrent account Ultrahd account Rousi.zip account Bearbit account Hdturk.club account Asiandvdclub account Star-space.net account Nordicq.org account Hdkyl.in account Utp.to account Hdzero account   Music Trackers :   Dicmusic account Music-Vid account Open.cd account LzTr account ProAudioTorrents invite Jpopsuki invite TranceTraffic invite Audionews invite Kraytracker invite Libble.me invite Losslessclub invite Indietorrents.com invite Dimeadozen account Funkytorrents invite Karaokedl account zombtracker.the-zomb account Concertos account Sugoimusic account Satclubbing.club invite Metal.iplay invite Psyreactor invite Panda.cd account Adamsfile account Freehardmusic account Tracker.hqmusic.vn accouunt Twilightzoom account 3 tb buffer Hiresmusic account Metalguru account Musictorrents.org account Musebootlegs.com invite Zappateers.com account Jungleland.dnsalias.com account Naftamusic account   E-Learning Trackers :   Theplace account Thevault account Myanonamouse account Libranet account 420Project account Learnflakes account Pt.soulvoice.club account P2pelite account Aaaaarg.fail invite Ebooks-shares.org account Abtorrents account Pt.tu88.men invite Docspedia.world invite   TV-Trackers :   Skipthecommericals Cryptichaven account TV-Vault invite Shazbat.TV account Myspleen account Tasmanit.es invite Tvstore.me account Tvchaosuk account Jptv.club account   XXX - Porn Trackers :   FemdomCult account Pussytorrents account Adult-cinema-network account Bootytape account 1 Tb buffer Exoticaz account Bitporn account Kufirc account Gaytorrent.ru invite Nicept account Gay-torrents.org invite Ourgtn account Pt.hdbd.us account BitSexy account Happyfappy.org account Kamept.com account Lesbians4u.org account   Gaming Trackers :   Mteam.fr account BitGamer invite Retrowithin invite Gamegamept account   Cartoon/Anime/Comic Trackers :   Animeworld account Oldtoons.world account U2.dmhy account CartoonChaos invite Animetorrents account Mononoke account Totallykids.tv account Bakabt.me invite Revanime account Ansktracker account Tracker.shakaw.com.br invite Bt.mdan.org account Skyey2.com account Animetracker.cc Adbt.it.cx invite Tracker.uniotaku.com account Mousebits.com account   Sports Trackers :   MMA-Tracker invite T3nnis.tv invite AcrossTheTasman account RacingForMe invite Sportscult invite Ultimatewrestlingtorrents account Worldboxingvideoarchive invite CyclingTorrents account Xtremewrestlingtorrents account Tc-boxing invite Mma-torrents account Aussierul invite Xwt-classics account Racing4everyone account Talk.tenyardtracker account Stalker.societyglitch invite Extremebits invite Rgfootball.net account F1carreras.xyz account   Software/Apps Trackers :   Brokenstones account Appzuniverse invite Teamos.xyz account Macbb.org account   Graphics Trackers:   Forum.Cgpersia account   Others   Hduse.net account Fora.snahp.eu account Board4all.biz account Makingoff.org/forum account Xrel.to account Undergunz.su account Corebay account Endoftheinter.net ( EOTI ) account Thismight.be invite Skull.facefromouter.space account Avxhm.se (AvaxHome) account Ssdforum account Notfake.vip account Intotheinter.net account Tildes.net invite Thetoonz account Usinavirtual account Hdclasico invite HispaShare account Valentine.wtf account Adit-hd account Forum-andr.net account Warezforums account Justanothermusic.site account Forbiddenlibrary.moe account Senturion.to account Movieparadise account Dcdnet.ru account Sftdevils.net account Heavy-r.com account New-team.org account Ddl.tv account Filewarez.club account Hispamula.org account Hubwarez.tv account Ultim-zone.in account Leprosorium.ru account Planet-ultima.org account The-dark-warez.com account   NZB :   Ninjacentral.co.za account Tabula-rasa.pw account Drunkenslug account Drunkenslug invite Usenet-4all account Dognzb.cr invite Kleverig account Nzb.cat account Nzbplanet.net invite Ng4you.com account NZB.to account Samuraiplace account Abhdtv.net account Abook.link account Comix.pw account House-of-usenet Secretbinaries.net account Vnext.to account Stockboxx.top account Sky-of-use.net account   Prices start from 3 $ to 100 $   Payment methods: Crypto, Neteller, Revolut   If you want to buy something send me a pm or contact me on:   Email: morrison2102@gmail.com   Discord: LFC4LIFE#4173   Telegram: https://t.me/LFC4LIFE4173   Skype: morrison2102@hotmail.com
    • Very interesting. You say there are some poorly coded parts. The code is publicly available for anyone to look at and verify what you're saying. Tell us which part of the code is incorrect, so everyone can confirm you're right. Regards.  
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..