-
Notifications
You must be signed in to change notification settings - Fork 1
basdon.net aviation server - A GTA:San Andreas Multiplayer (SA-MP) server
License
basdon/basdon-fly
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
basdon-fly ---------- basdon.net aviation server - A GTA:San Andreas Multiplayer (SA-MP) server. This repository contains almost everything(*) needed to run the complete basdon-fly server and services package. Maps and textdraw resource files are not uploaded (yet?). The first commit was made 17 Jun 2018 in the fly-gm gamemode repository. The fly-plugin plugin development started 22 Sep 2018. The fly-plugin plugin has replaced the fly-gm gamemode since 3 Dec 2019. The server has been live since 25 Dec 2019 at https://basdon.net and samp://basdon.net:7777 This project is licensed under the GNU AGPLv3 License. Files in /fly-plugin/vendor/ do NOT fall under this License. Files in /fly-plugin/vendor/SDK/amx are Copyright (c) ITB CompuPhase, 1997-2005 Files in /fly-plugin/vendor/SDK (excluding the amx/ directory) are Copyright 2004-2009 SA-MP Team Modifications in these files are marked as such with comments. Anatomy ------- This repository is a merge of now-archived repositories: basdon/fly-db basdon/fly-plugin basdon/fly-web basdon/fly-services (now fly-echo and fly-flighttracker) Since all those files were moved into subdirectories, their history/blame might not be representative. Check out the archived repositories to see the correct history/blame. fly-db: files with SQL queries that make up and change the database structure fly-echo: Anna^ module(*) providing chat link between in-game and IRC fly-flighttracker: Anna^ module(*) keeping track of active flights fly-plugin: SA:MP plugin being the gamemode logic fly-web: the website maps: map files (.map) go in here, these define clusters of objects server: server configuration files textdraws: textdraw files (.text) go in here, these define textdraws Each of those may have another readme.txt file with extra information. (*) fly-echo and fly-flighttracker are Anna^ modules. Anna^ is a modular IRC bot and can be found at https://github.com/yugecin/anna. Building -------- Requirements ============ all: make, bash fly-echo: javac, anna (https://github.com/yugecin/anna) fly-flighttracker: javac, anna (https://github.com/yugecin/anna) fly-plugin: a Linux system with gcc, nasm, tcc fly-web: php with extensions pdo_mysql,gd,mbstring For fly-echo and fly-flighttracker to be built, the environment variable $ANNA_DIR needs to be set to the location where the anna repository (https://github.com/yugecin/anna) is cloned. fly-echo and fly-flighttracker are optional and will not be built when the $ANNA_DIR environment variable is not set or javac is not found. A warning will be printed but the build will not be aborted. Building ======== Run: make This will make everything. To only make one target, run for example: make plugin Available targets are: echo, flighttracker, plugin, web When building the plugin, a dev build is made if the $BASDONDEV env variable is present. Building the website means it will parse and generate all templates, datafiles, images, etc. When the $BASDONDEV env variable is present, the Makefile will add g+w permissions to the settings file and template files so that they can be regenerated by the php scripts on page load (the 'inc' and 'templates' folder should be chown'ed to a group that contains the webserver user and their SGID bit should be set). Cleaning ======== Cleaning only applies to fly-echo and fly-flighttracker. Everything else is always rebuilt so there's no real need to clean. Run: make clean Installation/configuration -------------------------- Requirements ============ mysql/mariadb: import from sql files in the fly-db folder fly-echo,fly-flighttracker: anna (github.com/yugecin/anna) fly-web: php with extensions pdo_mysql,sockets server: other plugins: bcrypt-samp v2.2 (github.com/lassir/bcrypt-samp) mysql r39.3 (github.com/pBlueG/SA-MP-MySQL) simplesocket (github.com/basdon/simplesocket) (to be embedded) Download the SA:MP server package at https://sa-mp.com/download.php Configuration ============= general: The settings.ini file in the root dir controls various settings that are used both in the fly-plugin and fly-web code. Changes made in this file will only be applied after rebuilding plugin and web (run 'make'). cron: /cron/crontab-example.txt contains an example of cron configuration At minimum, the jobs to regenerate graphs for the website should be enabled. anna: For chatlogs, enable the packaged mod_log and set the path. For example, if the IRC channel is #basdon and the echo channel is #basdon.echo, add this to $ANNA_DIR/out/config/mod_log.properties: channel.basdon.echo=/basdon-fly/fly-web/www/s/chatlogs/basdon.echo channel.basdon=/basdon-fly/fly-web/www/s/chatlogs/basdon Or set it by sending commands to Anna^: &confadd mod_log channel.basdon.echo /basdon-fly/fly-web/www/s/chatlogs/basdon.echo &confadd mod_log channel.basdon /basdon-fly/fly-web/www/s/chatlogs/basdon fly-echo: The mod_bas_echo.jar file is placed in $ANNA_DIR/out by the build script. Enable and load it by sending the command: &enablemod mod_bas_echo Add this to $ANNA_DIR/out/config/mod_bas_echo.properties: echo.channel=\#basdon.echo Or set it by sending commands to Anna^: &confadd mod_bas_echo echo.channel #basdon.echo Anna^ will join the channel when the module is loaded. If the setting was not set upon load, either reload the module or use the &join command to make Anna^ join the channel. fly-flighttracker: The mod_bas_ft.jar file is placed in $ANNA_DIR/out by the build script. Enable and load it by sending the command: &enabledmod mod_bas_ft Add this to $ANNA_DIR/out/config/mod_bas_ft.properties: fdr.path=/basdon-fly/fly-web/www/s/fdr Or set it by sending commands to Anna^: &confadd mod_bas_ft fdr.path /basdon-fly/fly-web/www/s/fdr fly-web: An Apache http server configuration file is provided in fly-web/apache.conf, it should be straight-forward enough to see what it does in case you use a different webserver. Copy fly-web/inc/conf.sample.php to fly-web/inc/conf.php and edit as needed. Read the 'cron' section for the regenerations of the player graph image that is used on the homepage. In dev, set the SGID sticky bit (g+s) on the fly-web/inc and fly-web/gen folders. Otherwise it won't be able to regenerate some files (including templates and settings files) on page load when the $__REPARSE__ setting is set. Also remember to run make with the $BASDONDEV environment variable so it will set g+w permissions on the files when (re)generating them from the Makefile. server: Copy server/conf.sample.ini to server/conf.ini and edit as needed. When running, the server.cfg file is created from combining: servercfg-common.cfg servercfg-rcon_password.cfg (generated on first run) servercfg-dev-*.cfg (when dev) servercfg-prod-*.cfg (when prod) Additional cfg files can be made, use the numbering (like in 00 for the default dev/prov cfg files) to ensure an order. Settings can be specified multiple times, SA-MP uses the last supplied one. Running ------- Run Anna^. It will load the fly-echo and fly-flighttracker modules (when configured correctly). This is not required to run the server, but it should be avoided to run without fly-flighttracker as there will be no flightmaps on the website for any flights done while it was not running. Run the server by executing: . start If a $BASDONDEV variable is present, the dev configuration will be used. Running the server without the dev settings will start it using nohup and run it in the background. When a segfault happens and a core dump file is found, it will be zipped together with the plugin and moved to the fly-web/www/s/coredumps folder. A message will be posted to Discord, if configured, and the server should restart. Notes ----- The gamemode script is a stub and is deprecated, and might be removed in the future. Thanks & Acknowledgments ------------------------ https://github.com/Brunoo16/samp-packet-list for being a great resource about the packets (RPCs) data https://sampwiki.blast.hk/wiki/Main_Page for making available an archive of the SA-MP wiki, which contained great resources. mainly the visual things and information tables like weapon ids, gametext style images, vehicle colors, ...
About
basdon.net aviation server - A GTA:San Andreas Multiplayer (SA-MP) server