Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/01/24 in all areas

  1. Download Updated at 2023.08.05. Alternative download links: Client & Serverfiles + VDI + Extension Pack [40250] Reference Serverfile + Client + Src [15 Available Languages] My goal was to make a reference r40250 serverfile as official as possible compared to what GF had back when their files got leaked in early 2014. No new systems added, only bug fixes. While I spent several hours testing, there may still be bugs. Please report bugs to me so I can fix them in the future, I want to make this project as bug free as possible. Available languages: EN/DE/HU/FR/CZ/DK/ES/GR/IT/NL/PL/PT/RO/RU/TR Please read Languages.txt to learn how to change the default EN language. SSH for VM: root/123456789 MySQL: root/123456789 Ingame: admin/123456789 Aliases and it's commands: start cd /usr/metin2/server && sh start.sh close cd /usr/metin2/server && sh close.sh clean cd /usr/metin2/server && sh clean.sh backup cd /usr/metin2/server && sh backup.sh questcompile cd /usr/metin2/server/share/locale/english/quest && python2.7 make.py dbclean cd /usr/metin2/src/server/db/src && gmake clean dbdep cd /usr/metin2/src/server/db/src && gmake dep dbcompile cd /usr/metin2/src/server/db/src && gmake -j9 gameclean cd /usr/metin2/src/server/game/src && gmake clean gamedep cd /usr/metin2/src/server/game/src && gmake dep gamecompile cd /usr/metin2/src/server/game/src && gmake -j9 Please read Changelog.txt to find more about the changes I made. Special thanks to: @Mali for the clean and updated client & server src files. @Sanchez for the 2014 base client. @Veltor88 for the translate.lua pack. @Fazer for the locale_string pack I made a little video about installing the serverfile (vm) and changing the language: PS: I know it's pretty late in 2021 but better than ever Sincerely, TMP4
    4 points
  2. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Prepared src packages: *Granny 2.11.8 *libjpeg-9a *Python-2.7 *Crypto++ 8.4.0 *DevIL-1.6.5 *lzo-2.10 Archive password: black
    3 points
  3. GF Protos 24.0.4.0 Alternative download links → MEGA I did not include the item proto mask types and sub types.
    3 points
  4. The full v22.5.7.0 client unpacked(On the request of a Snorlax): MEGA or M2DL The latest brazilian client unpacked: MEGA or M2DL
    3 points
  5. Hi everyone, A couple of years ago, I posted this free release. Plenty of people have shared it claiming it to be their work, without giving me any credit whatsoever. Classic Metin2. Anyway, in case you've missed it, here it is. Enjoy
    2 points
  6. Patch v24.1.1.0: *New easter stuff. [Hidden Content] [Hidden Content] MEGA or M2DL
    2 points
  7. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) [Hidden Content]
    2 points
  8. GF 23.3.5 Root Meta Alternative download link → M2DL BR v24.0.0. Root Meta Alternative download link → M2DL
    2 points
  9. M2 Download Center Download Here ( Internal )
    2 points
  10. M2 Download Center Download Here ( Internal ) Hey guys, Today I'm releasing the tutorial for Boss Effect Over Head. Picture of system: Download link: Pastebin tutorial (only): Special thanks to: @Syreldar @M.Sorin for some functions which I used in the tutorial. I believe someone will use that Have a nice day/night! Sincerely, ReFresh
    2 points
  11. M2 Download Center Download Here ( Internal ) Hello guys, New skill 2018 DOWNLOAD [Hidden Content]
    2 points
  12. I'm glad if you update the link (M2DL) [Hidden Content]
    2 points
  13. M2 Download Center Download Here ( Internal ) Hi, Here is the tool to pack item_proto,mob_proto (clientside) How to: Put on folder item_proto.txt & item_names.txt then just click on dump_proto. After that will create item_proto for your client. Download: [Hidden Content]
    2 points
  14. M2 Download Center Download Here ( Internal ) Hello everyone, is my first release and it is something that many people already have, but for those who do not have it, I share it. Then, let's start. root/contsinfo.py root/interfacemodule.py root/uiinventory.py: root/uitaskbar.py: locale_xx/locale/xx/ui/taskbar.py locale_xx/locale/xx/locale_interface.txt uiscript ---> Create a new file with this name expandedmoneytaskbar.py and paste this: One extra step: locale_xx/locale/xx/ui/inventorywindow.py or uiscript/inventorywindow.py or uiscript/inventorywindowex.py If you have this error: InventoryWindow.LoadWindow.BindObject - <type 'exceptions.AttributeError'>:'ImageBox' object has no attribute 'SetEvent' Then: open root/ui.py: If you do not have ENABLE_CHEQUE_SYSTEM and ENABLE_GEM_SYSTEM in your src client, then delete those parts of the code or open: UserInterface/PythonApplicationModule.cpp: I recommend putting this as long as you have cheque_system and gem_system (otherwise the interface is a little ugly) I hope it serves some people, greetings!!
    1 point
  15. Download Center Google Drive or Metin2 Download The files are uploaded to Google Drive. Hello! Im here again. I made more changes and im going to share it with you. This V2 have more changes, take a look: Currently, I dont know any problem with the systems/modifications what I added, but if something is missing, please let me know and I'll try to add it/fix it. Datas: Last but not least, have a nice day.
    1 point
  16. M2 Download Center Download Here ( Internal ) Hello , tonight i feel good and i will share this system for free. Is one of my first systems made for my server , i know that isn't made by a pro (coding stuff i mean) but it works w/o problems. I don't force anyone to use it, if you don't like the way it is made, make yourself the one you want. You need to have Emoji Texline stuff implemented: [Hidden Content] edit: change PythonTextTail.cpp: TTextTail * pTextTail = RegisterTextTail(VirtualID, c_szChat, pCharacterInstance->GetGraphicThingInstancePtr(), pCharacterInstance->GetGraphicThingInstanceRef().GetHeight() + 10.0f, c_TextTail_Chat_Color); to: TTextTail * pTextTail = RegisterTextTail(VirtualID, strContent.c_str(), pCharacterInstance->GetGraphicThingInstancePtr(), pCharacterInstance->GetGraphicThingInstanceRef().GetHeight() + 10.0f, c_TextTail_Chat_Color);
    1 point
  17. Download Alternative download links → Mega Customized overlay filter for client just unzip in your main Client folder and run , in case you wanna optimize run m2Graphic.ini.
    1 point
  18. Download Alternative download links → M2DL (Without VDI) The file uploaded to Google Drive. Hello! Today i want to share my modifications what i changed on the @ TMP4 base. (Thanks for your work guys.♥) So whats inside in this modified TMP4 base? Quest message shown faster. GIF Sash system. GIF Infinity Bravery cape + the percentage of the pulled mobs increased to 80% (default was 50%) If you kill a mob, will despawn faster. 3 sec. (default was 10 sec) GIF Emoji in textline. GIF ID, Type, Subtype in tooltip, only for GMs. GIF Mount's rotate speed increased. GIF Offline shop (Great) + offline shop search. GIF Weapon costume.(The costumes are only illustration for better understand.) GIF Mount follow + mount item goes to the costume window. GIF Shining system by Sanii. GIF Inbuilt GR2 animation. GIF Won system. DS slot active effect. GIF Mount - unmount delay fix. GIF Fast exit button(The client will close immediately if you click on 'Exit game' button.) Multilanguage. (Only for item names (client side)) GIF Clickable buttons in inventory for open off shop and itemshop storage. Add 10x statpoints by pressing CTRL+Lclick. GIF 4 inventory, 6th skills. Known bugs/problems: The sash is not attached to the character's back properly when mounting. (This is a common bug/problem. If you know a fix for it, share it with us, please.) The multilanguage is only translating the item names, cuz the mob names arent read from client. Last but not least, i hope i did'nt brake any rules with this "release", cuz i really dont want to. Link for V2: Sincerely: Ulthar
    1 point
  19. M2 Download Center Download Here ( Internal ) Hi everyone, As title say, this is a wiki system but, InGame . This system was made by Kori . When i download it, the system had a bug on item bar, so, i've removed it . Screen of system: The system is open by pressing a key ( choosed for you ) . How to ? Well, 1º - Unpack your root . 2º- Search for archive game.py 3º- Open it and add: import uiwiki 4º - Search for: def __init__(self, stream): and add: self.wiki = uiwiki.AgeofPlatonWiki() 5º - Search for: onPressKeyDict[app.DIK_F5] and next add: onPressKeyDict[app.DIK_F9] = lambda : self.__OnWiki() Note: in here: [app.DIK_F9], F9 will be the key would you need to press to can view the system . You can change it , like you want. 6º - In the end of all ( game.py ) add this: def __OnWiki(self): if self.wiki.IsShow(): self.wiki.Hide() else: self.wiki.Show() 7º - Download the archive, add it to root, and pack it again . Download: Link Here Password: www.metin2dev.org Have fun ! Kind Regards, Grave
    1 point
  20. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Create app at here:[Hidden Content] Copy CLIENT ID Then change Discord.h/DiscordClientID Add images at here: example my image's name is image1 You can also use smallImageKey and smallImageText
    1 point
  21. Download Metin2 Download [Hidden Content] It's working without serverside.
    1 point
  22. BR v24.0.3. Root Meta Alternative download links → M2DL GF v24.0.4. Root Meta Alternative download links → M2DL
    1 point
  23. [Hidden Content] [Hidden Content] Requirements: DirectX 9+ Branch: docking About Library:
    1 point
  24. Download Alternative download links → Github
    1 point
  25. M2 Download Center Download Here ( Internal ) When a player or monster is poisoned, a poisoning effect will appear in the life bar. The idea belongs to Whistlee from the Turkish forum. However, in Whistlee version this system does not work for monsters and has no connection with the source code, so the effect is visible only to us. I don't know if I can give a specific place where the original comes from, so I won't do it, but I put here github Whistlee's, where you can find the original code. GITHUB: [Hidden Content] Special thanks for helping me with this code for Intern,VegaS™ and HITRON. ////////// CLIENT GAME ////////// SOURCE BIN
    1 point
  26. M2 Download Center Internal Hi Everyone! Hello Community, I make this little tutorial, for all the people who wants to try modelling or modifying a Metin2 models This video only intoduce gr2 -> fbx with Noesis, after that import fbx files to 3ds max , and exporting model to gr2. I make 2 video about the process easy way, but keep eye on parameters, switchers in every program. For helping I upload to my mega folders some files 3ds Max 2018 granny export plugin whole noesis 4.44 with export/import plugin 2 video file about the process export settings to granny export in 3ds MAX I. Converting gr2 files to FBX exporting option with animation Exporting option without animation In the video you will see it I paired a model with animation, because sometime the model doesnt have it all the bones. I think its important. II. Importing FBX files With animation importing @.plechito' makes a really usefull tutorial in here Only few thing In my video I show you howto set 3ds MAX 2018 eg. UNITS setup Set all things into centimeter In exporting set all the things what i'm make if you DONT have animation in a fbx files, if you have it In animation import you haveto choose Noesis frames After all that click on OK , and your model finally imported to 3ds MAX 2018 III. Exporting from 3ds Max After you make your pretty modification in the model you have to exporting In my way. I select all things what i wanna export, In the export menu tick out animation if you didnt want to ( It usefull if you wanna make model with animation) Thick out Move Origins in Animation and Model submenu In Meshes submenu, deselect all the bones At the texture submenu thick out include, because it build it the texture into .gr2 I think thats all. If you have question send me a letter or find in discord, or leave a message somewhere Have a nice day. UPDATE I added some exporting setting to mega folder, you can use it exporting setup exporting model exporting animation exporting move animation exporting dead animation exporting static model Cheers. Update 25.03.2022 - added 64 bit support for Granny2 plugin, you should place granny2_x64.dll in noesis root folder. -following @.plechito' logic i've added path for looking for textures eg. If warrior_m.gr2 textures is missing is looking for d:\ymir work\pc\warrior . Update 24.03.2022 I'm updating Noesis Granny plugin now adding texture to the fbx material, so in your 3d application (Noesis, Blender, 3dsmax) you can see texture correctly. if you wanna download just a plugin you can find it here [Hidden Content] you have to copying the file to Noesis/plugin/python folder
    1 point
  27. Download Alternative download links → Metin2.download Original topic: Before: After: You may remember this design from the original launcher and Musicinstructor's autopatcher. -------------- Https solution: Website with https may not work. To fix this in ListDownloader.cs, FileDownloader.cs, Networking.cs you can find "new WebClient();" Just add this before: "ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;" You can edit Tls12 to Tls11 or SSl3 but probably Tls12 is what will work. Also you need to right click to Sanchez.Patcher project and set Target Framework from .NET 4.0 to 4.5 or greater to use Tls12. -------------- Patchlist.txt generator php: You can use this php to generate the patchlist from the web so you don't need to do it on windows. <?php if (isset($_GET['pass']) && $_GET['pass'] === 'somepasswordhere') { $excluded_files = array('patchlist.txt', 'metin2.cfg', 'generate.php', 'syserr.txt', 'log.txt', 'ErrorLog.txt', '.htaccess'); $excluded_folders = array('news'); $folder_to_check = './'; $list_file = 'patchlist.txt'; $file_handle = fopen($list_file, 'w'); if ($file_handle === false) { die("Can not open file '$list_file' for write."); } function readDirectory($folder, $excluded_files, $excluded_folders, $file_handle, $base_path) { $files = scandir($folder); foreach ($files as $file) { if ($file == '.' || $file == '..') { continue; } if (in_array($file, $excluded_files) || in_array($file, $excluded_folders)) { continue; } $full_path = $folder . '/' . $file; $relative_path = $base_path . '/' . $file; if (is_dir($full_path)) { readDirectory($full_path, $excluded_files, $excluded_folders, $file_handle, $relative_path); } elseif (is_file($full_path)) { $hash = hash_file('crc32b', $full_path); $size = filesize($full_path); $formatted_name = ltrim($relative_path, './'); fwrite($file_handle, "$formatted_name $hash $size" . PHP_EOL); } } } readDirectory($folder_to_check, $excluded_files, $excluded_folders, $file_handle, $folder_to_check); fclose($file_handle); echo "patchlist.txt successfully generated!"; } else { http_response_code(404); } www.metin2.com/patch/generate.php?pass=somepasswordhere
    1 point
  28. Download (Internal) → Mega Download (External) Hi guys, I'm here today to release on of my maps! [Hidden Content] Enjoy!
    1 point
  29. 1 point
  30. M2 Download Center Download Here ( Internal ) Sorry, this post go to 2D graphics
    1 point
  31. M2 Download Center Download Here ( Internal ) Details : A new option about fog ingame from Gameforge. Gif : [Hidden Content] Link : Download
    1 point
  32. Download Metin2 Download Hi, I would like to treat you a pet, that I made today. Only Luffy is in the rar Virustotal: [Hidden Content] Download: [Hidden Content]
    1 point
  33. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Based idea: [Hidden Content] [Hidden Content] You can add control for specific skill ids ----------- Not tested very well. Let me know, if you found a bug.
    1 point
  34. Download Metin2 Download First of all, sorry if it's the wrong section, but I didn't know where else to write this. Right. For whoever's looking for a copy-paste tutorial, keep looking, because this isn't the one. Also, if you're not sure if you should update it or not, you probably shouldn't. What's up with the files? They contain the data from the latest proto posted by P3ng3r(V22.0.8) + some of my thoughts from when I updated my own protos. I've also thrown in some last minute stuff(like the tables), just to make your life a little easier. What do you have to do? Server: Update ProtoReader.cpp/ProtoReader.h(if you add the masks) Create/Update the tables in tables.h Create/Update the enums from item_length.h and length.h Update ClientManagerBoot if your client is either using or mirroring the text files to MySQL Again, if you're reading the proto from MySQL, you'll have to update item_proto and mob_proto tables Client: Update the enums from ItemData.h(+ItemData.cpp if you'll create functions for the masks) If you know you're going to use the new types and applys in the client, update PythonItemModule.cpp as well DumpProto: Update dump_proto.cpp, ItemCSVReader.cpp/h with the new values If you're going to use all the apply values, change BYTE to WORD in SItemApply and update all the functions/packets connected to it accordingly, otherwise it'll overflow and fuck up your whole server. Is this everything you need? I would say yes. Do I give a shit if you fuck up? No. Links: Mob Data: [Hidden Content] Proto Data: [Hidden Content] Virus Total: Proto Data [Hidden Content] Mob Data: [Hidden Content] I'd like to thank @ xP3NG3Rx for all the work he puts into unpacking and reversing functions from the official servers. We wouldn't be here without you, mate. Thank You! Good luck! Edit 15.09.2022: Sorry to bump this, but someone asked about it in Q&A, so here's the source for dump_proto with the data already updated. VS 2022, I have not tried with other versions. I should've clean it up, but whatever.. who tf has time for that.. [Hidden Content] Have a great day, - Amun
    1 point
  35. Visual Studio 2022 officially launched(November 8th, 2021): I deleted the old project(vs19) Latest ready to build project: Image From Our Admin:
    1 point
  36. I added new hairstyle. Details on the first page.
    1 point
  37. update: [Hidden Content] [Hidden Content] EDIT if you don't have update for class ImageBox class ImageBox(Window): def __init__(self, layer = "UI"): Window.__init__(self, layer) self.eventDict={} self.eventFunc = { "MOUSE_LEFT_BUTTON_UP" : None, "MOUSE_LEFT_BUTTON_DOWN" : None, "MOUSE_RIGHT_BUTTON_UP" : None, "MOUSE_RIGHT_BUTTON_DOWN" : None, "MOUSE_OVER_IN" : None, "MOUSE_OVER_OUT" : None } self.eventArgs = { "MOUSE_LEFT_BUTTON_UP" : None, "MOUSE_LEFT_BUTTON_DOWN" : None, "MOUSE_RIGHT_BUTTON_UP" : None, "MOUSE_RIGHT_BUTTON_DOWN" : None, "MOUSE_OVER_IN" : None, "MOUSE_OVER_OUT" : None } def __del__(self): Window.__del__(self) self.eventFunc = None self.eventArgs = None def RegisterWindow(self, layer): self.hWnd = wndMgr.RegisterImageBox(self, layer) def LoadImage(self, imageName): self.name=imageName wndMgr.LoadImage(self.hWnd, imageName) if len(self.eventDict)!=0: print "LOAD IMAGE", self, self.eventDict def SetAlpha(self, alpha): wndMgr.SetDiffuseColor(self.hWnd, 1.0, 1.0, 1.0, alpha) def SetColor(self, r, g, b, a): wndMgr.SetDiffuseColor(self.hWnd, r, g, b, a) def GetWidth(self): return wndMgr.GetWidth(self.hWnd) def GetHeight(self): return wndMgr.GetHeight(self.hWnd) def SetEvent(self, func, *args) : result = self.eventFunc.has_key(args[0]) if result : self.eventFunc[args[0]] = func self.eventArgs[args[0]] = args else : print "[ERROR] ui.py SetEvent, Can`t Find has_key : %s" % args[0] def SAFE_SetEvent(self, func, *args): result = self.eventFunc.has_key(args[0]) if result : self.eventFunc[args[0]] = __mem_func__(func) self.eventArgs[args[0]] = args else : print "[ERROR] ui.py SAFE_SetEvent, Can`t Find has_key : %s" % args[0] def OnMouseLeftButtonUp(self): if self.eventFunc["MOUSE_LEFT_BUTTON_UP"] : apply(self.eventFunc["MOUSE_LEFT_BUTTON_UP"], self.eventArgs["MOUSE_LEFT_BUTTON_UP"]) def OnMouseLeftButtonDown(self): if self.eventFunc["MOUSE_LEFT_BUTTON_DOWN"] : apply(self.eventFunc["MOUSE_LEFT_BUTTON_DOWN"], self.eventArgs["MOUSE_LEFT_BUTTON_DOWN"]) def OnMouseRightButtonUp(self): if self.eventFunc["MOUSE_RIGHT_BUTTON_UP"] : apply(self.eventFunc["MOUSE_RIGHT_BUTTON_UP"], self.eventArgs["MOUSE_RIGHT_BUTTON_UP"]) def OnMouseRightButtonDown(self): if self.eventFunc["MOUSE_RIGHT_BUTTON_DOWN"] : apply(self.eventFunc["MOUSE_RIGHT_BUTTON_DOWN"], self.eventArgs["MOUSE_RIGHT_BUTTON_DOWN"]) def OnMouseOverIn(self) : if self.eventFunc["MOUSE_OVER_IN"] : apply(self.eventFunc["MOUSE_OVER_IN"], self.eventArgs["MOUSE_OVER_IN"]) def OnMouseOverOut(self) : if self.eventFunc["MOUSE_OVER_OUT"] : apply(self.eventFunc["MOUSE_OVER_OUT"], self.eventArgs["MOUSE_OVER_OUT"]) def SAFE_SetStringEvent(self, event, func,isa=FALSE): if not isa: self.eventDict[event]=__mem_func__(func) else: self.eventDict[event]=func def SetOnMouseLeftButtonUpEvent(self, event, *args): self.eventFunc["MOUSE_LEFT_BUTTON_UP"] = event self.eventArgs["MOUSE_LEFT_BUTTON_UP"] = args
    1 point
  38. M2 Download Center Download Here ( Internal ) Information  This function shows player's title after name. Simple to enable/disable (via locale_inc.h definition).  Enjoy!
    1 point
  39. M2 Download Center Download Here ( Internal ) Because the File Archiver from Tim is actually buggy for me when i´m trying to extract the item_proto i release this for you. Nexus Private is an in 2012 Written Tool by Mr.Lucifer to extract the item_proto, which works for the actual proto, too. Useage: NeXus_private.exe <input> <output.xml> Example: NeXus_private.exe item_proto item_proto_dump.xml
    1 point
  40. M2 Download Center Download Here ( Internal ) Download: [Hidden Content]
    1 point
  41. Already released u ZeNu. Check his github(Chest view drop): [Hidden Content]
    1 point
  42. M2 Download Center Download Here ( Internal ) Hi, I post here original maxmi files in tar.gz. Archive contains mysql & game. [Hidden Content]
    1 point
  43. M2 Download Center Download Here ( Internal ) Download Here ( GitHub )
    1 point
  44. M2 Download Center Download Here ( Internal ) This quest will warp to the village whoever logins into a map which minimum level required is higher than the player's level. This basically fixes those who abuse the Wedding Ring or the Warp Scrolls to go to maps they normally shouldn't be able to go into. For example: if a player logins into the Grotto of Exile but his level is less than 75, he will be teleported back to his village. The maps and the minimum levels are fully customizable. Have fun! [Hidden Content]
    1 point
  45. 1 point
  46. Dude at least read the code, you just had to remove one tab (same for the if condition) instead of posting a screen here. Just look at the original code
    1 point
  47. M2 Download Center Download Here ( Internal )
    1 point
  48. metin2_patch_user_situation (Mega) (Metin2 Download) metin2.sg eterPacks 2017.04.29. (Mega) (Metin2 Download)
    1 point
  49. In the client, everything is already set to let the green/purple effects work. You just need to add the relative effectpacket via game. ^ via game
    1 point
  50. M2 Download Center Download Here ( Internal ) Open quest.h find the line: QUEST_ITEM_INFORMER_EVENT, Add after: QUEST_DEAD_EVENT, Open questmanager.cpp find the line: m_mapEventName.insert(TEventNameMap::value_type("item_informer", QUEST_ITEM_INFORMER_EVENT)); Add after: m_mapEventName.insert(TEventNameMap::value_type("dead", QUEST_DEAD_EVENT)); add function: void CQuestManager::Dead(unsigned int pc) { PC * pPC; if ((pPC = GetPC(pc))) { if (!CheckQuestLoaded(pPC)) return; m_mapNPC[QUEST_NO_NPC].OnDead(*pPC); } else sys_err("QUEST no such pc id : %d", pc); } open questmanager.h find the line: void Kill(unsigned int pc, unsigned int npc); add after: void Dead(unsigned int pc); open questnpc.quest add function: bool NPC::OnDead(PC& pc) { return HandleReceiveAllEvent(pc, QUEST_DEAD_EVENT); } questnpc.h find the line: bool OnKill(PC& pc); add after: bool OnDead(PC& pc); open char_battle.cpp fine the line: void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead) added at the beginning: quest::CQuestManager::instance().Dead(GetPlayerID()); Usage: when dead begin syschat("You are dead.") end Enjoy!
    1 point
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / 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.