Jump to content

Elmsroth

getMaNGOS Developer
  • Posts

    130
  • Joined

  • Last visited

  • Days Won

    5
  • Donations

    10.00 GBP 

Everything posted by Elmsroth

  1. Hi @jwh1981, The commited sql file is here : https://github.com/mangoszero/database/commit/97e10cea3d9674e39f3afb83595ad46df959a620 I have applied it with no problem on my mangos zero DB which was up to Rel21_21_014 Can you try to execute what is between line 44 and 78 ? You will get the error message then. You can also discuss with us on Discord : https://discord.gg/6KNhGG Thanks Elmsroth
  2. Salut @Bombers C'est cool que tout se soit résolu je suis content que le guide ai fonctionné car visiblement les autres posaient problème j'espère que celui-là est plutôt clair Bonjour à toi en cas de question la team MaNGOS est là pour t'aider Enfin dans la mesure de nos connaissances...
  3. Hi The problem is probably linked to your windows server firewall that does not allow incoming traffic to ports 3724 and 8085. For your information teh most stable solution is to host your server on a linux machine :) it will cost you less also You also have to set the ip of your server in the realmlisyt table :) Last thing : you will not have support here for CMANGOS since it not the same project. COnsider asking the CManos community if it is specific to CMangos emulator. CMangos is not Mangos :)
  4. [Last procedure check : 2020-07-13 ] Hi everyone, I re-write the procedure since there are many questions about linux install procedure. Many of them are no more applicable today and the getmangos.sh script needs rework as I write this article. PREREQUISITES I am assuming you are running your server on a Linux Operating system with Ubuntu Server 18.04 flavor. Your OS should be up to date. If not, log in as root and run : apt update && apt upgrade PART 1 : Configuring the environment This tuto will use the MaNGOS zero repo URL but it is replicable with all of our cores repos. Just change the git repo URL and you will be fine. > Creating system user Be sure you have created a Linux user for your server, since it is not a good idea to run it as root for obvious security reasons. We will then assume you have created a mangos linux user using the command : adduser mangos To be more handy you can add this user to the sudoers in order to be able to run administrative commands. usermod -aG sudo mangos After this point, be sure to be logged-in as mangos Linux user. We do not need root account anymore (or perhaps once or twice.. but..never mind ! do not use root when not needed) > Installing useful programs MaNGOS requires some libraries to be built and to run properly. We also need some programs to run further commands or simply to handle some scripts which are in the repo (e.g : python scripts O_o) apt install git make cmake libssl-dev libbz2-dev build-essential default-libmysqlclient-dev libace-6.4.5 libace-dev python > Preparing your system folders A good practice is to separate locations for the needs : sources, db sql files and build folder under the mangos system user : /home/mangos/ binaries, confs, logs, gamedata in /opt/ Thus you can create the folders when logged-in as mangos system user : mkdir /home/mangos/sources mkdir /home/mangos/build mkdir /home/mangos/db Then the /opt/ folder is only accessible to root so you need to use sudo and impersonate root to make things there. The aim to to create a fodler using the root account then giving the good rights to be able to use it with the mangos system user. The opt folder will a have a wow subfolder in which the mangos folder will be. It would let you install other cores if you want to (Trinitycore, Cmangos etc..) all should be installed in /opt. sudo su cd /opt/ mkdir wow chown -R mangos:root wow chmod g+s wow exit Now you will have a wow folder in /opt/ that will be writable by the mangos system user. Create all necessary useful folders to handle future files using mangos system user : cd /opt mkdir wow/install && mkdir wow/install/mangos && mkdir wow/install/mangos/bin && mkdir wow/install/mangos/bin/logs && mkdir wow/install/mangos/conf cd /opt/wow && mkdir gamedata && mkdir gamedata/1.12 && mkdir gamedata/1.12/mangos > Getting Game data Since MaNGOS is an educationnal project we will not redistribute exctracted game data. In order to be able to run your server, you will need to extract these data from your game folder using the extractor programs that are built when you build the project. To run the server the best way, you will have to extract : dbc maps vmaps (takes a long time) mmaps (takes a long time) Please remind to put all extracted data on the folders you pre-created on previous steps. If you work with a VM you can use Linux extractors against a shared game folder betwwen your PC and the Linux VM, or if you have the Game folder on your server, you will have to use extractors in this folder. More information on this topic : PART 2 : Getting the sources & Compiling the core Note that we always use the mangos system user. Get into your source folder : cd /home/mangos/sources Retrieve the sources (WARNING do not forget to get them recusrsively !!) : git clone https://github.com/mangoszero/server.git . --recursive --depth=1 Well, that good now we are going to build the solution. /!\ WARNING ABOUT ACE DEPENDENCIES /!\ It is possible that the build fails due to he ACE linked sources in the "dep" folder. It is related to a bug between Linux build and Windows build. The main "server" repository is set to refer to a speficif commit that allows by default a correct build on Windows. If you are on Linux you will probably have to manuall pull & checkout the "dep" folder (wich is a git submodule) : cd /home/mangos/sources/dep git pull git checkout master Keep in mind that this example show a default build. You can tweak teh buidl option in cmake to build or not some parts of the software. cd /home/mangos/build cmake ../sources/ -DCMAKE_INSTALL_PREFIX=/opt/wow/install/mangos -DCONF_INSTALL_DIR=/opt/wow/install/mangos/conf When it's finished, depending on the number of your cores you will adapt the following make command : make -j<NbCores> (e.g : for an intel i7 octocore you can tupe 'make -j8') The build process should begin, and when it's finished, you will have to install the built binaries : make install After that, all binaries and default conf files woudl have been copied to their destination folders which you have set in the previous cmake command. PART 3 : Installing MySQL First things first : you have to install MySQL server. With Ubuntu Server 18.04 the reference MySQL version is 5.7.30 (this statement is valid at the date when this guide is written, it can evolve in the future). To install mysql-server : sudo apt install mysql-server After installation, you may wonder : "Why the program did not ask me for a root password ?". Well, on new MySQL versions, the default auth protocol is set to "auth_socket" but all our software will use a password to connect to the database. Don(t worry, we are going to create a user that would be able to authenticate with standard credentials : sudo su mysql Now you are logged-in to mysql command prompt with the root account. you will notice no password was asked to you because roto user uses auth_socket protocol to authenticate. Now you are going to create the MySQL mangos user : CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'mangos'; GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost' WITH GRANT OPTION; The "WITH GRANT OPTION" is not mandatory but can be useful for future use if you want to administer other users with this mangos account. Then leave MySQL command prompt and root shell : exit; exit PART 4 : Database Setup > Main databases (auth, characters, world) You first have to clone the database repo in the db folder : cd /home/mangos/db/ git clone https://github.com/mangoszero/database.git . --recursive --depth=1 ./InstallDatabases.sh You will be prooted a screen with several questions : You will also be prompted to determine your dabases names. A good practice is to set the realm db name to : mangos_auth, and also to suffix all others db names with the core versions you are running (e.g characters db for mangos zero : mangos_characters0 , world db : mangos_world0 ) Note : you need only 1 realm database if you run several cores (mangos zero, mangos one etc..) on teh same server, BUt you will need 2 db (characters and world) for each core you run. > Apply database updates On a fresh install, World updates should also be applied. In order to see if it is Ok, check on the World db (the process is the same for other databases) : connect to mysql using mangos user : mysql -u mangos -pmangos mangos_world0 SELECT * FROM db_version ORDER BY VERSION DESC, structure DESC, content DESC LIMIT 0,1; exit; If the return show you the same version that the most recent file in the World/Updates/Rel21 folder. You are OK. The version number alwas increase so it will be easy to determien if your version/structure/content is ok or not. If not, then go to the World update folder (World/Updates/Rel21) and apply missing updates to the databases. mysql -u mangos -pmangos mangos_world0 < nameOfUpdateSQlFile.sql > Translations In case you run a non english speaking server, you can apply translation fiels to the world database. You will find the correct sql files to apply in the Translations folder : cd /home/mangos/overload/db/Translations Since I cannot ensure the Linux scripts are working, here is how to do manually : Apply the 3 first .sql files in teh folder : mysql -u mangos -pmangos mangos_world0 < 1_LocaleTablePrepare.sql mysql -u mangos -pmangos mangos_world0 < 2_Add_NewLocalisationFields.sql mysql -u mangos -pmangos mangos_world0 < 3_InitialSaveEnglish.sql Of course you will have to replace the db name "mangos_world0" with your db name etc... if you have changed default db names and user and password You will need to go to the translation folder of the desired language (e.g for French language ) : cd /home/mangos/db/Translations/Translations/French The more easy solution would be to compile all files in one and import it cat *.sql > full.sql mysql -u mangos -pmangos mangos_world0 < full.sql rm full.sql There, your translations should be applied. PART 5 : Configuring *.conf files for executables Go to the conf folder an create a copy of each .dist file : cd /opt/wow/install/mangos/conf/ cp realmd.conf.dist realmd.conf && cp mangosd.conf.dist mangosd.conf Change database connection information in each file in order to allow your binaries to connect to the database. Update your game data path in mangosd.conf too. Update the logs folder to "logs" value (relative to binary) A lot of behaviours can be configured in these files. Please consider studying it carefully. PART 6 : Auto-restarting When operating a game server it is nice to use an auto-restarter. Otherwise, you will have to keep up 2 terminals for realmd and mangosd. ./opt/wow/install/mangos/bin/realmd and ./opt/wow/install/mangos/bin/mangosd That can be really annoying because daemons would be killed after terminal exit. Read this article to know how to use a restarter on Linux operating systems : PART 7 : Final comments > Nice to have When your system is running, you could perhaps check : Do you have a DB backup system ? You can easily put one in place with a CRON job Do you have a backup system for your conf files ? Do you have a flushing system for the server log files if you keep them timestamped ? > About errors at core start-up You can have some DB errors at startup like this one : It means you have applied DB updates beyond core expectation but since it is only content related, it is not a big issue. The core would not start id the version or structure is different, but the core can start with a content mismatch. > How to first connect whith default accounts ? If you have any questions - please ak on the forum on on Discord when anybody is connected Cheers !
  5. As @Pysis it is now clear that the Linux script is bugged and needs to be checked and treated as a bug => https://www.getmangos.eu/bug-tracker/
  6. Hi @Mac Wheeler Can you provide the link to the script you are talking about ? Perhaps it is outdated and then we will make an update You can solve the problem by make a fresh clone and using : git clone https://github.com/mangoszero/server.git --recursive --depth 1 The issue you had is related to the fact the main repo is referencing submodules. The manipulation is explained in this guide :
  7. Yes, there were updates regarding implementation of GameObjectAI recently, but the submitted fixes were compiling correclty. probably an update issue like says @antz
  8. Pour les Mdp nan ca n'a pas changé sur Mangos Zero et sur TBC (quoiqu'on ait apporté un upgrade pour calculer les clés avec l'algo SRP6 mais ca s'implémente assez facilement au pire). le bon vieux SHA_PASS_HASH c'ets toujours SHA1(UPPER("LOGIN" + ":"+"PASSWORD")) Sinon tu reset le mdp à la main en jeu ou tu mets le même mdp à tout le monde Pour info la team Mangos on est souvent sur Discord : https://discord.gg/kyCXmj
  9. Sinon le mieux serait de faire un RAZ complet et de tenter de faire une migration de tes tables anciennes characters vers les nouvelles (genre tu insère table les données de l'ancien schéma vers le nouveau). Depuis pas mal de majs la bdd characters ne bouge pas bcp. C’est la world qu'on change assez souvent. Y'a beaucoup de players à récupérer ?
  10. Salut @Helladan, Si tu connais ta version de BDD tu peux passer les updates sans souci je pense. Tu est a quelle version/structure/content dans chaque base ? Si c'est trop vieux tu risques de tout péter car il manquera les bonnes updates. En soi ne gardes que la BDD characters et teste avec les autres bdd a jour et vois si il y a des alertes au démarrage.
  11. @My Channel I think you did not really understand my answer of perhaps I have misunderstand your post I'm not native english speaker so please excuse me. I am just saying If you code such a tool it would ne nice to share. If such a tool does not exists it is perhaps nobody asked for it but I have never said anything against your work. All contributors here share fixes on their free time with no remuneration at all. I really don't get your point. If you think it can add value to the emulator and improve its usability, then do so ! O_o
  12. @My Channel It's not implemented decause nobody have really asked for I think
  13. Changed Status to Completed Changed Assigned to Elmsroth Solved in this PR : https://github.com/mangoszero/server/pull/98 @cabfever you will be able to inspect players now as GM.
  14. @My Channel That sounds good Let us know when you will have implemented all this cool stuff 😛
  15. The GM commands help cannot be localized the right way today. We lack of locales_commands table.
  16. Changed Status to Confirmed Changed Version to 21.14 (Master Branch) Changed Priority to Normal
  17. @madmax Possible but will need a big rewrite ! Needs to implement sLog.outDBWarning(); method
  18. Changed Status to Not a bug Changed Implemented Version to Unset Changed Milestone to Unset Changed Priority to New
  19. Hi there, Please consider updating your core & DB to the latest version perhaps it will help. Making custom quests is working so it is not a bug. Moreover : You should post your message for asking help in the forums this is not the correct place my friend 😛 @madmax Can you close this report ?
  20. @My Channel The algorithm should be different upon core version. The auth process is not quite the same if you are on Mangos Zero oor other extensions above Some of them use SRP6 algorithm and other only SHA_PASS_HASH of concat(Upper(login:password))
  21. Bonjour As-tu posté dans la section bugtracker ? Cordialement, Elmsroth
  22. Salut @darksses, As-tu mis ton core à jour, de ce que j'aperçois la version dont tu parles n'est pas la dernière en date. As-tu aussi investigué sur les items en question ? Comment le joueur s'est-il procuré ces items ? Ca peut aussi permettre de re-tracer le problème ! Des fixs sont fait régulièrement il faut ton tenir ton core à jour si tu veux éviter que des erreurs apparaissent Tiens-nous au courant.
×
×
  • Create New...

Important Information

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