mirror of
				https://github.com/slawkens/myaac.git
				synced 2025-10-30 23:46:24 +01:00 
			
		
		
		
	Compare commits
	
		
			16 Commits
		
	
	
		
			v1.7
			...
			feature/do
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 8d76e4e670 | ||
|   | 5e14521f08 | ||
|   | 335a0d1cff | ||
|   | 5735d487d9 | ||
|   | d7e1ca747e | ||
|   | 5a9490138b | ||
|   | 42e40e5d77 | ||
|   | 80a3a72b36 | ||
|   | a4b1631f6d | ||
|   | 49af260c2e | ||
|   | 72d7ee8bf2 | ||
|   | c503f5e0a5 | ||
|   | 03b2d71572 | ||
|   | 86b94ea5e8 | ||
|   | e9b5617748 | ||
|   | fee9d60da4 | 
							
								
								
									
										65
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,65 @@ | |||||||
|  | Thumbs.db | ||||||
|  | .DS_Store | ||||||
|  | .idea | ||||||
|  |  | ||||||
|  | # | ||||||
|  | /.htaccess | ||||||
|  |  | ||||||
|  | # composer | ||||||
|  | composer.phar | ||||||
|  | vendor | ||||||
|  |  | ||||||
|  | # npm | ||||||
|  | node_modules | ||||||
|  | tools/ext | ||||||
|  |  | ||||||
|  | # cypress | ||||||
|  | cypress.env.json | ||||||
|  | cypress/e2e/2-advanced-examples | ||||||
|  | cypress/screenshots | ||||||
|  |  | ||||||
|  | # created by release.sh | ||||||
|  | releases | ||||||
|  | tmp | ||||||
|  |  | ||||||
|  | config.local.php | ||||||
|  | !docker/config.local.php | ||||||
|  |  | ||||||
|  | # all custom templates | ||||||
|  | templates/* | ||||||
|  | !templates/tibiacom | ||||||
|  | !templates/kathrine | ||||||
|  |  | ||||||
|  | # guild images | ||||||
|  | images/guilds/* | ||||||
|  | !images/guilds/default.gif | ||||||
|  |  | ||||||
|  | # editor images | ||||||
|  | images/editor/* | ||||||
|  | !images/editor/index.html | ||||||
|  |  | ||||||
|  | # gallery images | ||||||
|  | images/gallery/* | ||||||
|  | !images/gallery/index.html | ||||||
|  | !images/gallery/demon.jpg | ||||||
|  | !images/gallery/demon_thumb.gif | ||||||
|  |  | ||||||
|  | # cache | ||||||
|  | system/cache/* | ||||||
|  | !system/cache/index.html | ||||||
|  | !system/cache/twig/index.html | ||||||
|  | !system/cache/signatures/index.html | ||||||
|  | !system/cache/plugins/index.html | ||||||
|  | !system/cache/persistent/index.html | ||||||
|  |  | ||||||
|  | # logs | ||||||
|  | system/logs/* | ||||||
|  | !system/logs/index.html | ||||||
|  |  | ||||||
|  | # data | ||||||
|  | system/data/* | ||||||
|  | !system/data/index.html | ||||||
|  |  | ||||||
|  | # php sessions | ||||||
|  | system/php_sessions/* | ||||||
|  | !system/php_sessions/index.html | ||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -23,6 +23,7 @@ releases | |||||||
| tmp | tmp | ||||||
|  |  | ||||||
| config.local.php | config.local.php | ||||||
|  | !docker/config.local.php | ||||||
|  |  | ||||||
| # all custom templates | # all custom templates | ||||||
| templates/* | templates/* | ||||||
|   | |||||||
							
								
								
									
										40
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | |||||||
|  | services: | ||||||
|  |   web: | ||||||
|  |     ports: | ||||||
|  |       - 8001:80 | ||||||
|  |     build: | ||||||
|  |       args: | ||||||
|  |         user: www-data | ||||||
|  |         uid: 33 | ||||||
|  |       context: ./ | ||||||
|  |       dockerfile: ./docker/Dockerfile | ||||||
|  |     restart: unless-stopped | ||||||
|  |     working_dir: /var/www/html | ||||||
|  |     depends_on: | ||||||
|  |       - db | ||||||
|  |     #volumes: | ||||||
|  |     #  - ./:/var/www/html | ||||||
|  |  | ||||||
|  |   db: | ||||||
|  |     image: mysql:8.0 | ||||||
|  |     restart: unless-stopped # always? | ||||||
|  |     environment: | ||||||
|  |       MYSQL_RANDOM_ROOT_PASSWORD: "yes" | ||||||
|  |       MYSQL_DATABASE: myaac | ||||||
|  |       #MYSQL_ROOT_PASSWORD: root | ||||||
|  |       MYSQL_PASSWORD: myaac | ||||||
|  |       MYSQL_USER: myaac | ||||||
|  |     ports: | ||||||
|  |       - 8003:3306 | ||||||
|  |     volumes: | ||||||
|  |       - ./docker/tfs_schema.sql:/docker-entrypoint-initdb.d/tfs_schema.sql | ||||||
|  |       - db:/var/lib/mysql | ||||||
|  |  | ||||||
|  |   phpmyadmin: | ||||||
|  |     image: phpmyadmin | ||||||
|  |     restart: always | ||||||
|  |     ports: | ||||||
|  |       - 8002:80 | ||||||
|  |  | ||||||
|  | volumes: | ||||||
|  |   db: | ||||||
							
								
								
									
										56
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | |||||||
|  | FROM php:8.2-apache | ||||||
|  |  | ||||||
|  | ARG APCU_VERSION=5.1.22 | ||||||
|  |  | ||||||
|  | # Arguments defined in docker-compose.yml | ||||||
|  | ARG user | ||||||
|  | ARG uid | ||||||
|  |  | ||||||
|  | # Install system dependencies | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |     git \ | ||||||
|  |     curl \ | ||||||
|  |     libpng-dev \ | ||||||
|  |     libonig-dev \ | ||||||
|  |     libxml2-dev \ | ||||||
|  |     libzip-dev \ | ||||||
|  |     zip \ | ||||||
|  |     unzip \ | ||||||
|  |     nano \ | ||||||
|  |     vim | ||||||
|  |  | ||||||
|  | RUN apt-get install -y nodejs npm | ||||||
|  |  | ||||||
|  | # Clear cache | ||||||
|  | RUN apt-get clean && rm -rf /var/lib/apt/lists/* | ||||||
|  |  | ||||||
|  | # Install PHP extensions | ||||||
|  | RUN docker-php-ext-install pdo pdo_mysql gd zip opcache | ||||||
|  | RUN docker-php-ext-configure opcache --enable-opcache | ||||||
|  | RUN pecl install apcu-${APCU_VERSION} && docker-php-ext-enable apcu | ||||||
|  |  | ||||||
|  | # Get latest Composer | ||||||
|  | COPY --from=composer:latest /usr/bin/composer /usr/bin/composer | ||||||
|  |  | ||||||
|  | # Create system user to run Composer Commands | ||||||
|  | #RUN useradd -G www-data,root -u $uid -d /home/$user $user | ||||||
|  | RUN mkdir -p /home/$user/.composer && \ | ||||||
|  |     chown -R $user:$user /home/$user | ||||||
|  |  | ||||||
|  | RUN chown -R www-data.www-data /var/www | ||||||
|  |  | ||||||
|  | USER $user | ||||||
|  |  | ||||||
|  | WORKDIR /home/$user | ||||||
|  | RUN git clone https://github.com/otland/forgottenserver.git | ||||||
|  |  | ||||||
|  | COPY --chown=www-data:www-data docker/config.lua /home/$user/forgottenserver | ||||||
|  | COPY --chown=www-data:www-data docker/config.local.php /var/www/html | ||||||
|  |  | ||||||
|  | #WORKDIR /home/$user/forgottenserver | ||||||
|  |  | ||||||
|  | WORKDIR /var/www/html | ||||||
|  |  | ||||||
|  | COPY --chown=www-data:www-data . . | ||||||
|  | RUN composer install | ||||||
|  | RUN npm install | ||||||
							
								
								
									
										4
									
								
								docker/config.local.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								docker/config.local.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | <?php | ||||||
|  | $config['installed'] = false; | ||||||
|  | $config['server_path'] = '/home/www-data/forgottenserver'; | ||||||
|  | $config['install_ignore_ip_check'] = true; | ||||||
							
								
								
									
										12
									
								
								docker/config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								docker/config.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | serverName = "Forgotten" | ||||||
|  | mysqlHost = "db" | ||||||
|  | mysqlUser = "myaac" | ||||||
|  | mysqlPass = "myaac" | ||||||
|  | mysqlDatabase = "myaac" | ||||||
|  | mysqlPort = 3306 | ||||||
|  | mysqlSock = "" | ||||||
|  |  | ||||||
|  | ip = "192.168.176.1" | ||||||
|  | statusPort = 7171 | ||||||
|  | statusTimeout = 2000 | ||||||
|  |  | ||||||
							
								
								
									
										384
									
								
								docker/tfs_schema.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										384
									
								
								docker/tfs_schema.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,384 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `accounts` ( | ||||||
|  |   `id` int NOT NULL AUTO_INCREMENT, | ||||||
|  |   `name` varchar(32) NOT NULL, | ||||||
|  |   `password` char(40) NOT NULL, | ||||||
|  |   `secret` char(16) DEFAULT NULL, | ||||||
|  |   `type` int NOT NULL DEFAULT '1', | ||||||
|  |   `premium_ends_at` int unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `email` varchar(255) NOT NULL DEFAULT '', | ||||||
|  |   `creation` int NOT NULL DEFAULT '0', | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   UNIQUE KEY `name` (`name`) | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `players` ( | ||||||
|  |   `id` int NOT NULL AUTO_INCREMENT, | ||||||
|  |   `name` varchar(255) NOT NULL, | ||||||
|  |   `group_id` int NOT NULL DEFAULT '1', | ||||||
|  |   `account_id` int NOT NULL DEFAULT '0', | ||||||
|  |   `level` int NOT NULL DEFAULT '1', | ||||||
|  |   `vocation` int NOT NULL DEFAULT '0', | ||||||
|  |   `health` int NOT NULL DEFAULT '150', | ||||||
|  |   `healthmax` int NOT NULL DEFAULT '150', | ||||||
|  |   `experience` bigint unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `lookbody` int NOT NULL DEFAULT '0', | ||||||
|  |   `lookfeet` int NOT NULL DEFAULT '0', | ||||||
|  |   `lookhead` int NOT NULL DEFAULT '0', | ||||||
|  |   `looklegs` int NOT NULL DEFAULT '0', | ||||||
|  |   `looktype` int NOT NULL DEFAULT '136', | ||||||
|  |   `lookaddons` int NOT NULL DEFAULT '0', | ||||||
|  |   `lookmount` int NOT NULL DEFAULT '0', | ||||||
|  |   `lookmounthead` int NOT NULL DEFAULT '0', | ||||||
|  |   `lookmountbody` int NOT NULL DEFAULT '0', | ||||||
|  |   `lookmountlegs` int NOT NULL DEFAULT '0', | ||||||
|  |   `lookmountfeet` int NOT NULL DEFAULT '0', | ||||||
|  |   `randomizemount` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   `direction` tinyint unsigned NOT NULL DEFAULT '2', | ||||||
|  |   `maglevel` int NOT NULL DEFAULT '0', | ||||||
|  |   `mana` int NOT NULL DEFAULT '0', | ||||||
|  |   `manamax` int NOT NULL DEFAULT '0', | ||||||
|  |   `manaspent` bigint unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `soul` int unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `town_id` int NOT NULL DEFAULT '1', | ||||||
|  |   `posx` int NOT NULL DEFAULT '0', | ||||||
|  |   `posy` int NOT NULL DEFAULT '0', | ||||||
|  |   `posz` int NOT NULL DEFAULT '0', | ||||||
|  |   `conditions` blob DEFAULT NULL, | ||||||
|  |   `cap` int NOT NULL DEFAULT '400', | ||||||
|  |   `sex` int NOT NULL DEFAULT '0', | ||||||
|  |   `lastlogin` bigint unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `lastip` varbinary(16) NOT NULL DEFAULT '0', | ||||||
|  |   `save` tinyint NOT NULL DEFAULT '1', | ||||||
|  |   `skull` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   `skulltime` bigint NOT NULL DEFAULT '0', | ||||||
|  |   `lastlogout` bigint unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `blessings` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   `onlinetime` bigint NOT NULL DEFAULT '0', | ||||||
|  |   `deletion` bigint NOT NULL DEFAULT '0', | ||||||
|  |   `balance` bigint unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `offlinetraining_time` smallint unsigned NOT NULL DEFAULT '43200', | ||||||
|  |   `offlinetraining_skill` int NOT NULL DEFAULT '-1', | ||||||
|  |   `stamina` smallint unsigned NOT NULL DEFAULT '2520', | ||||||
|  |   `skill_fist` int unsigned NOT NULL DEFAULT 10, | ||||||
|  |   `skill_fist_tries` bigint unsigned NOT NULL DEFAULT 0, | ||||||
|  |   `skill_club` int unsigned NOT NULL DEFAULT 10, | ||||||
|  |   `skill_club_tries` bigint unsigned NOT NULL DEFAULT 0, | ||||||
|  |   `skill_sword` int unsigned NOT NULL DEFAULT 10, | ||||||
|  |   `skill_sword_tries` bigint unsigned NOT NULL DEFAULT 0, | ||||||
|  |   `skill_axe` int unsigned NOT NULL DEFAULT 10, | ||||||
|  |   `skill_axe_tries` bigint unsigned NOT NULL DEFAULT 0, | ||||||
|  |   `skill_dist` int unsigned NOT NULL DEFAULT 10, | ||||||
|  |   `skill_dist_tries` bigint unsigned NOT NULL DEFAULT 0, | ||||||
|  |   `skill_shielding` int unsigned NOT NULL DEFAULT 10, | ||||||
|  |   `skill_shielding_tries` bigint unsigned NOT NULL DEFAULT 0, | ||||||
|  |   `skill_fishing` int unsigned NOT NULL DEFAULT 10, | ||||||
|  |   `skill_fishing_tries` bigint unsigned NOT NULL DEFAULT 0, | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   UNIQUE KEY `name` (`name`), | ||||||
|  |   FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE, | ||||||
|  |   KEY `vocation` (`vocation`) | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `account_bans` ( | ||||||
|  |   `account_id` int NOT NULL, | ||||||
|  |   `reason` varchar(255) NOT NULL, | ||||||
|  |   `banned_at` bigint NOT NULL, | ||||||
|  |   `expires_at` bigint NOT NULL, | ||||||
|  |   `banned_by` int NOT NULL, | ||||||
|  |   PRIMARY KEY (`account_id`), | ||||||
|  |   FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, | ||||||
|  |   FOREIGN KEY (`banned_by`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `account_ban_history` ( | ||||||
|  |   `id` int unsigned NOT NULL AUTO_INCREMENT, | ||||||
|  |   `account_id` int NOT NULL, | ||||||
|  |   `reason` varchar(255) NOT NULL, | ||||||
|  |   `banned_at` bigint NOT NULL, | ||||||
|  |   `expired_at` bigint NOT NULL, | ||||||
|  |   `banned_by` int NOT NULL, | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, | ||||||
|  |   FOREIGN KEY (`banned_by`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `account_storage` ( | ||||||
|  |   `account_id` int NOT NULL, | ||||||
|  |   `key` int unsigned NOT NULL, | ||||||
|  |   `value` int NOT NULL, | ||||||
|  |   PRIMARY KEY (`account_id`, `key`), | ||||||
|  |   FOREIGN KEY (`account_id`) REFERENCES `accounts`(`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `ip_bans` ( | ||||||
|  |   `ip` varbinary(16) NOT NULL, | ||||||
|  |   `reason` varchar(255) NOT NULL, | ||||||
|  |   `banned_at` bigint NOT NULL, | ||||||
|  |   `expires_at` bigint NOT NULL, | ||||||
|  |   `banned_by` int NOT NULL, | ||||||
|  |   PRIMARY KEY (`ip`), | ||||||
|  |   FOREIGN KEY (`banned_by`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `player_namelocks` ( | ||||||
|  |   `player_id` int NOT NULL, | ||||||
|  |   `reason` varchar(255) NOT NULL, | ||||||
|  |   `namelocked_at` bigint NOT NULL, | ||||||
|  |   `namelocked_by` int NOT NULL, | ||||||
|  |   PRIMARY KEY (`player_id`), | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, | ||||||
|  |   FOREIGN KEY (`namelocked_by`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `account_viplist` ( | ||||||
|  |   `account_id` int NOT NULL COMMENT 'id of account whose viplist entry it is', | ||||||
|  |   `player_id` int NOT NULL COMMENT 'id of target player of viplist entry', | ||||||
|  |   `description` varchar(128) NOT NULL DEFAULT '', | ||||||
|  |   `icon` tinyint unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `notify` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   UNIQUE KEY `account_player_index` (`account_id`,`player_id`), | ||||||
|  |   FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE, | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players` (`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `guilds` ( | ||||||
|  |   `id` int NOT NULL AUTO_INCREMENT, | ||||||
|  |   `name` varchar(255) NOT NULL, | ||||||
|  |   `ownerid` int NOT NULL, | ||||||
|  |   `creationdata` int NOT NULL, | ||||||
|  |   `motd` varchar(255) NOT NULL DEFAULT '', | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   UNIQUE KEY (`name`), | ||||||
|  |   UNIQUE KEY (`ownerid`), | ||||||
|  |   FOREIGN KEY (`ownerid`) REFERENCES `players`(`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `guild_invites` ( | ||||||
|  |   `player_id` int NOT NULL DEFAULT '0', | ||||||
|  |   `guild_id` int NOT NULL DEFAULT '0', | ||||||
|  |   PRIMARY KEY (`player_id`,`guild_id`), | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players` (`id`) ON DELETE CASCADE, | ||||||
|  |   FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `guild_ranks` ( | ||||||
|  |   `id` int NOT NULL AUTO_INCREMENT, | ||||||
|  |   `guild_id` int NOT NULL COMMENT 'guild', | ||||||
|  |   `name` varchar(255) NOT NULL COMMENT 'rank name', | ||||||
|  |   `level` int NOT NULL COMMENT 'rank level - leader, vice, member, maybe something else', | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `guild_membership` ( | ||||||
|  |   `player_id` int NOT NULL, | ||||||
|  |   `guild_id` int NOT NULL, | ||||||
|  |   `rank_id` int NOT NULL, | ||||||
|  |   `nick` varchar(15) NOT NULL DEFAULT '', | ||||||
|  |   PRIMARY KEY (`player_id`), | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, | ||||||
|  |   FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, | ||||||
|  |   FOREIGN KEY (`rank_id`) REFERENCES `guild_ranks` (`id`) ON DELETE CASCADE ON UPDATE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `guild_wars` ( | ||||||
|  |   `id` int NOT NULL AUTO_INCREMENT, | ||||||
|  |   `guild1` int NOT NULL DEFAULT '0', | ||||||
|  |   `guild2` int NOT NULL DEFAULT '0', | ||||||
|  |   `name1` varchar(255) NOT NULL, | ||||||
|  |   `name2` varchar(255) NOT NULL, | ||||||
|  |   `status` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   `started` bigint NOT NULL DEFAULT '0', | ||||||
|  |   `ended` bigint NOT NULL DEFAULT '0', | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   KEY `guild1` (`guild1`), | ||||||
|  |   KEY `guild2` (`guild2`) | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `guildwar_kills` ( | ||||||
|  |   `id` int NOT NULL AUTO_INCREMENT, | ||||||
|  |   `killer` varchar(50) NOT NULL, | ||||||
|  |   `target` varchar(50) NOT NULL, | ||||||
|  |   `killerguild` int NOT NULL DEFAULT '0', | ||||||
|  |   `targetguild` int NOT NULL DEFAULT '0', | ||||||
|  |   `warid` int NOT NULL DEFAULT '0', | ||||||
|  |   `time` bigint NOT NULL, | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   FOREIGN KEY (`warid`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `houses` ( | ||||||
|  |   `id` int NOT NULL AUTO_INCREMENT, | ||||||
|  |   `owner` int NOT NULL, | ||||||
|  |   `paid` int unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `warnings` int NOT NULL DEFAULT '0', | ||||||
|  |   `name` varchar(255) NOT NULL, | ||||||
|  |   `rent` int NOT NULL DEFAULT '0', | ||||||
|  |   `town_id` int NOT NULL DEFAULT '0', | ||||||
|  |   `bid` int NOT NULL DEFAULT '0', | ||||||
|  |   `bid_end` int NOT NULL DEFAULT '0', | ||||||
|  |   `last_bid` int NOT NULL DEFAULT '0', | ||||||
|  |   `highest_bidder` int NOT NULL DEFAULT '0', | ||||||
|  |   `size` int NOT NULL DEFAULT '0', | ||||||
|  |   `beds` int NOT NULL DEFAULT '0', | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   KEY `owner` (`owner`), | ||||||
|  |   KEY `town_id` (`town_id`) | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `house_lists` ( | ||||||
|  |   `house_id` int NOT NULL, | ||||||
|  |   `listid` int NOT NULL, | ||||||
|  |   `list` text NOT NULL, | ||||||
|  |   FOREIGN KEY (`house_id`) REFERENCES `houses` (`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `market_history` ( | ||||||
|  |   `id` int unsigned NOT NULL AUTO_INCREMENT, | ||||||
|  |   `player_id` int NOT NULL, | ||||||
|  |   `sale` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   `itemtype` smallint unsigned NOT NULL, | ||||||
|  |   `amount` smallint unsigned NOT NULL, | ||||||
|  |   `price` bigint unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `expires_at` bigint unsigned NOT NULL, | ||||||
|  |   `inserted` bigint unsigned NOT NULL, | ||||||
|  |   `state` tinyint unsigned NOT NULL, | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   KEY `player_id` (`player_id`, `sale`), | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `market_offers` ( | ||||||
|  |   `id` int unsigned NOT NULL AUTO_INCREMENT, | ||||||
|  |   `player_id` int NOT NULL, | ||||||
|  |   `sale` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   `itemtype` smallint unsigned NOT NULL, | ||||||
|  |   `amount` smallint unsigned NOT NULL, | ||||||
|  |   `created` bigint unsigned NOT NULL, | ||||||
|  |   `anonymous` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   `price` bigint unsigned NOT NULL DEFAULT '0', | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   KEY `sale` (`sale`,`itemtype`), | ||||||
|  |   KEY `created` (`created`), | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `players_online` ( | ||||||
|  |   `player_id` int NOT NULL, | ||||||
|  |   PRIMARY KEY (`player_id`) | ||||||
|  | ) ENGINE=MEMORY DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `player_deaths` ( | ||||||
|  |   `player_id` int NOT NULL, | ||||||
|  |   `time` bigint unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `level` int NOT NULL DEFAULT '1', | ||||||
|  |   `killed_by` varchar(255) NOT NULL, | ||||||
|  |   `is_player` tinyint NOT NULL DEFAULT '1', | ||||||
|  |   `mostdamage_by` varchar(100) NOT NULL, | ||||||
|  |   `mostdamage_is_player` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   `unjustified` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   `mostdamage_unjustified` tinyint NOT NULL DEFAULT '0', | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE, | ||||||
|  |   KEY `killed_by` (`killed_by`), | ||||||
|  |   KEY `mostdamage_by` (`mostdamage_by`) | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `player_depotitems` ( | ||||||
|  |   `player_id` int NOT NULL, | ||||||
|  |   `sid` int NOT NULL COMMENT 'any given range eg 0-100 will be reserved for depot lockers and all > 100 will be then normal items inside depots', | ||||||
|  |   `pid` int NOT NULL DEFAULT '0', | ||||||
|  |   `itemtype` smallint unsigned NOT NULL, | ||||||
|  |   `count` smallint NOT NULL DEFAULT '0', | ||||||
|  |   `attributes` blob NOT NULL, | ||||||
|  |   UNIQUE KEY `player_id_2` (`player_id`, `sid`), | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `player_inboxitems` ( | ||||||
|  |   `player_id` int NOT NULL, | ||||||
|  |   `sid` int NOT NULL, | ||||||
|  |   `pid` int NOT NULL DEFAULT '0', | ||||||
|  |   `itemtype` smallint unsigned NOT NULL, | ||||||
|  |   `count` smallint NOT NULL DEFAULT '0', | ||||||
|  |   `attributes` blob NOT NULL, | ||||||
|  |   UNIQUE KEY `player_id_2` (`player_id`, `sid`), | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `player_storeinboxitems` ( | ||||||
|  |   `player_id` int NOT NULL, | ||||||
|  |   `sid` int NOT NULL, | ||||||
|  |   `pid` int NOT NULL DEFAULT '0', | ||||||
|  |   `itemtype` smallint unsigned NOT NULL, | ||||||
|  |   `count` smallint NOT NULL DEFAULT '0', | ||||||
|  |   `attributes` blob NOT NULL, | ||||||
|  |   UNIQUE KEY `player_id_2` (`player_id`, `sid`), | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `player_items` ( | ||||||
|  |   `player_id` int NOT NULL DEFAULT '0', | ||||||
|  |   `pid` int NOT NULL DEFAULT '0', | ||||||
|  |   `sid` int NOT NULL DEFAULT '0', | ||||||
|  |   `itemtype` smallint unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `count` smallint NOT NULL DEFAULT '0', | ||||||
|  |   `attributes` blob NOT NULL, | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE, | ||||||
|  |   KEY `sid` (`sid`) | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `player_spells` ( | ||||||
|  |   `player_id` int NOT NULL, | ||||||
|  |   `name` varchar(255) NOT NULL, | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `player_storage` ( | ||||||
|  |   `player_id` int NOT NULL DEFAULT '0', | ||||||
|  |   `key` int unsigned NOT NULL DEFAULT '0', | ||||||
|  |   `value` int NOT NULL DEFAULT '0', | ||||||
|  |   PRIMARY KEY (`player_id`,`key`), | ||||||
|  |   FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `server_config` ( | ||||||
|  |   `config` varchar(50) NOT NULL, | ||||||
|  |   `value` varchar(256) NOT NULL DEFAULT '', | ||||||
|  |   PRIMARY KEY `config` (`config`) | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `tile_store` ( | ||||||
|  |   `house_id` int NOT NULL, | ||||||
|  |   `data` longblob NOT NULL, | ||||||
|  |   FOREIGN KEY (`house_id`) REFERENCES `houses` (`id`) ON DELETE CASCADE | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS `towns` ( | ||||||
|  |   `id` int NOT NULL AUTO_INCREMENT, | ||||||
|  |   `name` varchar(255) NOT NULL, | ||||||
|  |   `posx` int NOT NULL DEFAULT '0', | ||||||
|  |   `posy` int NOT NULL DEFAULT '0', | ||||||
|  |   `posz` int NOT NULL DEFAULT '0', | ||||||
|  |   PRIMARY KEY (`id`), | ||||||
|  |   UNIQUE KEY `name` (`name`) | ||||||
|  | ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8; | ||||||
|  |  | ||||||
|  | INSERT INTO `server_config` (`config`, `value`) VALUES ('db_version', '35'), ('players_record', '0'); | ||||||
|  |  | ||||||
|  | DROP TRIGGER IF EXISTS `ondelete_players`; | ||||||
|  | DROP TRIGGER IF EXISTS `oncreate_guilds`; | ||||||
|  |  | ||||||
|  | DELIMITER // | ||||||
|  | CREATE TRIGGER `ondelete_players` BEFORE DELETE ON `players` | ||||||
|  |  FOR EACH ROW BEGIN | ||||||
|  |     UPDATE `houses` SET `owner` = 0 WHERE `owner` = OLD.`id`; | ||||||
|  | END | ||||||
|  | // | ||||||
|  | CREATE TRIGGER `oncreate_guilds` AFTER INSERT ON `guilds` | ||||||
|  |  FOR EACH ROW BEGIN | ||||||
|  |     INSERT INTO `guild_ranks` (`name`, `level`, `guild_id`) VALUES ('the Leader', 3, NEW.`id`); | ||||||
|  |     INSERT INTO `guild_ranks` (`name`, `level`, `guild_id`) VALUES ('a Vice-Leader', 2, NEW.`id`); | ||||||
|  |     INSERT INTO `guild_ranks` (`name`, `level`, `guild_id`) VALUES ('a Member', 1, NEW.`id`); | ||||||
|  | END | ||||||
|  | // | ||||||
|  | DELIMITER ; | ||||||
| @@ -195,7 +195,7 @@ if(is_writable(CACHE) && (MYAAC_OS != 'WINDOWS' || win_is_writable(CACHE))) { | |||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		if(!$allow) | 		if(!$allow && !config('install_ignore_ip_check')) | ||||||
| 		{ | 		{ | ||||||
| 			$content = warning('In file <b>install/ip.txt</b> must be your IP!<br/> | 			$content = warning('In file <b>install/ip.txt</b> must be your IP!<br/> | ||||||
| 			In file is:<br /><b>' . nl2br($file_content) . '</b><br/> | 			In file is:<br /><b>' . nl2br($file_content) . '</b><br/> | ||||||
|   | |||||||
| @@ -11,6 +11,7 @@ foreach($config['clients'] as $client) { | |||||||
| } | } | ||||||
|  |  | ||||||
| $twig->display('install.config.html.twig', array( | $twig->display('install.config.html.twig', array( | ||||||
|  | 	'config' => $config, | ||||||
| 	'clients' => $clients, | 	'clients' => $clients, | ||||||
| 	'timezones' => DateTimeZone::listIdentifiers(), | 	'timezones' => DateTimeZone::listIdentifiers(), | ||||||
| 	'locale' => $locale, | 	'locale' => $locale, | ||||||
|   | |||||||
| @@ -41,6 +41,9 @@ if(!$error) { | |||||||
| 	$configToSave['cache_engine'] = 'auto'; | 	$configToSave['cache_engine'] = 'auto'; | ||||||
| 	$configToSave['cache_prefix'] = 'myaac_' . generateRandomString(8, true, false, true); | 	$configToSave['cache_prefix'] = 'myaac_' . generateRandomString(8, true, false, true); | ||||||
| 	$configToSave['database_auto_migrate'] = true; | 	$configToSave['database_auto_migrate'] = true; | ||||||
|  | 	if (isset($config['install_ignore_ip_check'])) { | ||||||
|  | 		$configToSave['install_ignore_ip_check'] = $config['install_ignore_ip_check']; | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	if(!$error) { | 	if(!$error) { | ||||||
| 		$content = ''; | 		$content = ''; | ||||||
| @@ -77,7 +80,7 @@ if(!$error) { | |||||||
| 			$_SESSION['config_content'] = $content; | 			$_SESSION['config_content'] = $content; | ||||||
| 			unset($_SESSION['saved']); | 			unset($_SESSION['saved']); | ||||||
|  |  | ||||||
| 			$locale['step_database_error_file'] = str_replace('$FILE$', '<b>' . BASE . 'config.php</b>', $locale['step_database_error_file']); | 					$locale['step_database_error_file'] = str_replace('$FILE$', '<b>' . BASE . 'config.local.php</b>', $locale['step_database_error_file']); | ||||||
| 			error($locale['step_database_error_file'] . '<br/> | 			error($locale['step_database_error_file'] . '<br/> | ||||||
| 				<textarea cols="70" rows="10">' . $content . '</textarea>'); | 				<textarea cols="70" rows="10">' . $content . '</textarea>'); | ||||||
| 		} | 		} | ||||||
|   | |||||||
| @@ -10,9 +10,13 @@ | |||||||
| 	<input type="hidden" name="step" id="step" value="database" /> | 	<input type="hidden" name="step" id="step" value="database" /> | ||||||
|  |  | ||||||
| 	{% for value in ['server_path'] %} | 	{% for value in ['server_path'] %} | ||||||
|  | 		{% if value == 'server_path' and config.server_path is not null %} | ||||||
|  | 			{% set server_path = { 'var_server_path': config.server_path } %} | ||||||
|  | 			{% set session = session | merge (server_path) %} | ||||||
|  | 		{% endif %} | ||||||
| 	<div class="form-group mb-2"> | 	<div class="form-group mb-2"> | ||||||
| 		<label for="vars_{{ value }}">{{ locale['step_config_' ~ value]  }}</label> | 		<label for="vars_{{ value }}">{{ locale['step_config_' ~ value]  }}</label> | ||||||
| 		<input class="form-control" type="{% if value == 'mail_admin' %}email{% else %}text{% endif %}" name="vars[{{ value }}]" id="vars_{{ value }}"{% if session['var_' ~ value] is not null %} value="{{ session['var_' ~ value] }}"{% endif %}/> | 		<input class="form-control" type="text" name="vars[{{ value }}]" id="vars_{{ value }}"{% if session['var_' ~ value] is not null %} value="{{ session['var_' ~ value] }}"{% endif %}/> | ||||||
| 		<small class="form-text text-muted">{{ locale['step_config_' ~ value ~ '_desc'] }}</small> | 		<small class="form-text text-muted">{{ locale['step_config_' ~ value ~ '_desc'] }}</small> | ||||||
| 	</div> | 	</div> | ||||||
| 	{% endfor %} | 	{% endfor %} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user